12012-10-02  Simon Fraser  <simon.fraser@apple.com>
2
3        Make TiledBacking slightly less aware of scrolling
4        https://bugs.webkit.org/show_bug.cgi?id=98216
5
6        Reviewed by Anders Carlsson.
7
8        TiledBacking shouldn't really care about there being scrollbars;
9        recast this in terms of "tile coverage", described by a bitfield
10        that has flags for coverage optimized for horizontal and vertical
11        scrolling. This allows for additional tile coverage behaviors later.
12
13        * page/FrameView.cpp:
14        (WebCore::FrameView::performPostLayoutTasks):
15        * platform/graphics/TiledBacking.h:
16        * platform/graphics/ca/mac/TileCache.h:
17        * platform/graphics/ca/mac/TileCache.mm:
18        (WebCore::TileCache::TileCache): Initialize m_isInWindow to false to
19        be more conservative. It gets explicitly set by the only caller now, so this is
20        not a behavior change.
21        (WebCore::TileCache::setIsInWindow):
22        (WebCore::TileCache::setTileCoverage):
23        (WebCore::TileCache::tileCoverageRect):
24        * rendering/RenderLayerBacking.cpp:
25        (WebCore::RenderLayerBacking::RenderLayerBacking):
26
272012-10-02  Dean Jackson  <dino@apple.com>
28
29        Expose some GPU Information
30        https://bugs.webkit.org/show_bug.cgi?id=97813
31
32        Reviewed by Sam Weinig, Ken Russell and Tim Horton.
33
34        Currently there are a few places in the WebGL code (and elsewhere, like CSS filters)
35        where we do some feature detection by examining the GPU vendor and its capabilities.
36        This patch puts this detection into our shared Extensions3D object.
37
38        Covered by existing tests. No new functionality.
39
40        * platform/graphics/Extensions3D.h: Adds the new methods for detecting vendor and features.
41        * platform/graphics/GraphicsContext3D.h:
42        (GraphicsContext3D): No longer needs function to detect multisampling on ATI.
43        * platform/graphics/chromium/Extensions3DChromium.h: Stub implementations of all
44        the new methods. Chromium does its detection elsewhere.
45        (WebCore::Extensions3DChromium::isNVIDIA):
46        (WebCore::Extensions3DChromium::isAMD):
47        (WebCore::Extensions3DChromium::isIntel):
48        (WebCore::Extensions3DChromium::vendor):
49        (Extensions3DChromium):
50        (WebCore::Extensions3DChromium::maySupportMultisampling):
51        (WebCore::Extensions3DChromium::requiresBuiltInFunctionEmulation):
52        * platform/graphics/filters/FECustomFilter.cpp:
53        (WebCore::FECustomFilter::createMultisampleBuffer): Add test for system multisampling to
54        custom filter code.
55        * platform/graphics/gpu/DrawingBuffer.cpp:
56        (WebCore::DrawingBuffer::create): Add test for system multisampling to drawing buffer's
57        creation code.
58        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon): Detects all the features
60        as the object is created.
61        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Can now simply ask
62        itself if it needs to turn on built-in function translation.
63        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
64        (Extensions3DOpenGLCommon):
65        (WebCore::Extensions3DOpenGLCommon::isNVidia):
66        (WebCore::Extensions3DOpenGLCommon::isAMD):
67        (WebCore::Extensions3DOpenGLCommon::isIntel):
68        (WebCore::Extensions3DOpenGLCommon::vendor):
69        (WebCore::Extensions3DOpenGLCommon::maySupportMultisampling):
70        (WebCore::Extensions3DOpenGLCommon::requiresBuiltInFunctionEmulation):
71        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
72        (WebCore::GraphicsContext3D::validateAttributes): Ask the extension object instead of
73        testing directly.
74        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
75        (WebCore::GraphicsContext3D::validateDepthStencil): Ask the extension object instead
76        of testing directly.
77
782012-10-02  Kenichi Ishibashi  <bashi@chromium.org>
79
80        [Chromium] Introduce caches for HarfBuzzShaper
81        https://bugs.webkit.org/show_bug.cgi?id=97993
82
83        Reviewed by Tony Chang.
84
85        - Implement canRenderCombiningCharacterSequence() for ports which use
86        HarfBuzzShaper. This function caches the result and will improve the
87        performance of HarfBuzzShaper::collectHarfBuzzRuns.
88        - Add a HashMap to HarfBuzzNGFace. It is used as a cache that holds
89        glyph indexes of codepoints. It reduces the number of
90        SkPaint::textToGlyphs() calls.
91
92        This patch makes the intl2 page cycler 4.4% faster on my machine.
93
94        No new tests. No changes in behavior.
95
96        * platform/graphics/SimpleFontData.h:
97        (SimpleFontData): Enabled canRenderCombiningCharacterSequence() if USE(HARFBUZZ_NG) is enabled.
98        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
99        (WebCore):
100        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence): Added.
101        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
102        (WebCore):
103        (FaceCacheEntry): Added.
104        (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
105        Lookup the cache entry in harfBuzzFaceCache. Create the entry if there is no entry in the cache.
106        Increment the ref count of the entry and set cache entry values to member variables.
107        (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
108        Decrement the ref count of the cache entry. Remove the entry if no one refers the cache.
109        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
110        (HarfBuzzNGFace):
111        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
112        (HarfBuzzFontData): Added. Used as |userData| of harfbuzz callback functions.
113        (WebCore):
114        (WebCore::SkiaGetGlyphWidthAndExtents):
115        (WebCore::harfbuzzGetGlyph):
116        Look up the glyphChache first. If the cache entry doesn't exist, call
117        SkPaint::textToGlyphs() to get glyph index and store it to the cache.
118        (WebCore::harfbuzzGetGlyphHorizontalAdvance):
119        (WebCore::harfbuzzGetGlyphExtents):
120        (WebCore::destroyHarfBuzzFontData): Added.
121        (WebCore::HarfBuzzNGFace::createFont):
122        Create HarfBuzzFontData and pass it to harfbuzz.
123        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
124        (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult):
125        Don't initialize m_glyphToCharacterIndexes here.
126        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
127        Use SimpleFontData::canRenderCombiningCharacterSequence() instead of
128        fontDataForCombiningCharacterSequence().
129        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
130        Set glyphToCharacterIndexes of the current HarfBuzzRun.
131        * platform/graphics/skia/SimpleFontDataSkia.cpp:
132        (WebCore):
133        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence): Added.
134
1352012-10-02  Beth Dakin  <bdakin@apple.com>
136
137        https://bugs.webkit.org/show_bug.cgi?id=98182
138        REGRESSION (r130091): Scroll wheel no longer scrolls within div
139
140        Reviewed by Simon Fraser.
141
142        Forgot to initialize m_nonFastScrollableRegion in this copy 
143        constructor.
144        * page/scrolling/ScrollingStateScrollingNode.cpp:
145        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
146
1472012-10-02  Nate Chapin  <japhet@chromium.org>
148
149        iframes with scrolling=no can't scroll to anchors
150        https://bugs.webkit.org/show_bug.cgi?id=96539
151
152        Reviewed by Antonio Gomes.
153
154        This appears to have regressed in r106730. This patch matches Firefox's behavior.
155
156        Test: fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe.html
157
158        * page/EventHandler.h:
159        * rendering/RenderLayer.cpp:
160        (WebCore::RenderLayer::scrollRectToVisible): Currently scrolls are always forbidden
161           if scrollbars are explicitly disabled. This adds an exception for scrolls that
162           are not user-initiated and are not autoscrolls.
163
1642012-10-02  Simon Fraser  <simon.fraser@apple.com>
165
166        Restore the virtual purity of TileBacking
167        https://bugs.webkit.org/show_bug.cgi?id=98208
168
169        Reviewed by Anders Carlsson.
170
171        Remove the data member on TileBacking, make the logging methods
172        virtual, and move the implememtation to TileCache.
173
174        * platform/graphics/TiledBacking.h:
175        * platform/graphics/ca/mac/TileCache.h:
176        * platform/graphics/ca/mac/TileCache.mm:
177        (WebCore::TileCache::TileCache):
178        * platform/graphics/ca/mac/WebTileLayer.mm:
179        (-[WebTileLayer drawInContext:]): Have to cast to call the public
180        method on the base class.
181
1822012-10-02  Ojan Vafai  <ojan@chromium.org>
183
184        isMainThread() should only be called by NoEventDispatchAssertion in debug builds
185        https://bugs.webkit.org/show_bug.cgi?id=98191
186
187        This fixes a performance regression and matches the original code from
188        before the refactor in http://trac.webkit.org/changeset/130077.
189
190        * dom/ContainerNode.h:
191        (WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion):
192        (WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion):
193
1942012-10-02  Erik Arvidsson  <arv@chromium.org>
195
196        createHTMLDocument() should not create a title element if the title argument is left out
197        https://bugs.webkit.org/show_bug.cgi?id=96694
198
199        Reviewed by Darin Adler.
200
201        In case the argument is not passed to createHTMLDocument we use a null string and check
202        for that before creating a title element.
203
204        Test: fast/dom/DOMImplementation/createHTMLDocument-optional-title.html
205
206        * dom/DOMImplementation.cpp:
207        (WebCore::DOMImplementation::createHTMLDocument):
208        * dom/DOMImplementation.idl:
209
2102012-10-02  David Grogan  <dgrogan@chromium.org>
211
212        IndexedDB: Don't wedge if page reloads with pending upgradeneeded
213        https://bugs.webkit.org/show_bug.cgi?id=98091
214
215        Reviewed by Tony Chang.
216
217        Test: storage/indexeddb/dont-wedge.html
218
219        * Modules/indexeddb/IDBOpenDBRequest.cpp:
220        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
221        This got the same treatment as IDBRequest::onSuccess(Transaction).
222        Explicitly tell the backend objects that they are going away so that
223        m_runningVersionChangeTransaction is cleared and connectionCount()
224        decreases.
225
2262012-10-02  David Grogan  <dgrogan@chromium.org>
227
228        http/tests/inspector/indexeddb/database-structure.html start to crash after r124675
229        https://bugs.webkit.org/show_bug.cgi?id=93225
230
231        Reviewed by Tony Chang.
232
233        Tests - the disabled indexeddb inspector tests are re-enabled.
234
235        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
236        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
237        (WebCore::IDBDatabaseBackendImpl::close):
238        Detect re-entrancy and bail.
239
240        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
241        (IDBDatabaseBackendImpl):
242
2432012-10-02  Michael Saboff  <msaboff@apple.com>
244
245        HTMLConstructionSite::insertTextNode isn't optimized for 8 bit strings
246        https://bugs.webkit.org/show_bug.cgi?id=97740
247
248        Reviewed by Darin Adler.
249
250        Changed parserAppendData to take a string instead of a UChar*.  Also added an optional offset
251        argument to handle string+offset.  The actual string append now uses the appropriate string
252        size.
253
254        * dom/CharacterData.cpp:
255        (WebCore::CharacterData::parserAppendData):
256        * dom/CharacterData.h:
257        (CharacterData):
258        * dom/Text.cpp:
259        (WebCore::Text::createWithLengthLimit):
260        * html/parser/HTMLConstructionSite.cpp:
261        (WebCore::HTMLConstructionSite::insertTextNode):
262
2632012-10-02  Ojan Vafai  <ojan@chromium.org>
264
265        Unreviewed, rolling out r130103 and r130125.
266        http://trac.webkit.org/changeset/130103
267        http://trac.webkit.org/changeset/130125
268        https://bugs.webkit.org/show_bug.cgi?id=97974
269
270        Causes performance regressions on Dromaeo dom modify tests.
271
272        * bindings/v8/IntrusiveDOMWrapperMap.h:
273        (WebCore):
274        (ChunkedTable):
275        (WebCore::ChunkedTable::ChunkedTable):
276        (WebCore::ChunkedTable::add):
277        (WebCore::ChunkedTable::remove):
278        (WebCore::ChunkedTable::clear):
279        (WebCore::ChunkedTable::visit):
280        (WebCore::ChunkedTable::reportMemoryUsage):
281        (WebCore::ChunkedTable::Chunk::Chunk):
282        (Chunk):
283        (WebCore::ChunkedTable::clearEntries):
284        (WebCore::ChunkedTable::visitEntries):
285        (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
286        (WebCore::IntrusiveDOMWrapperMap::get):
287        (WebCore::IntrusiveDOMWrapperMap::set):
288        (WebCore::IntrusiveDOMWrapperMap::contains):
289        (WebCore::IntrusiveDOMWrapperMap::visit):
290        (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
291        (IntrusiveDOMWrapperMap):
292        (WebCore::IntrusiveDOMWrapperMap::clear):
293        (ChunkedTableTraits):
294        (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::move):
295        (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::clear):
296        (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::visit):
297        * bindings/v8/ScriptWrappable.h:
298        (WebCore::ScriptWrappable::ScriptWrappable):
299        (WebCore::ScriptWrappable::wrapper):
300        (WebCore::ScriptWrappable::setWrapper):
301        (WebCore::ScriptWrappable::clearWrapper):
302        (WebCore::ScriptWrappable::reportMemoryUsage):
303        (ScriptWrappable):
304        * bindings/v8/V8DOMWrapper.h:
305        (WebCore::V8DOMWrapper::getCachedWrapper):
306
3072012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
308
309        Web Inspector: NMI: switch to non intrusive instrumentation of ParsedURL.
310        https://bugs.webkit.org/show_bug.cgi?id=98150
311
312        Reviewed by Yury Semikhatsky.
313
314        Style changes.
315
316        * platform/KURLWTFURLImpl.h:
317        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
318
3192012-10-02  Anders Carlsson  <andersca@apple.com>
320
321        Add new GraphicsLayer::create overload to all ports
322        https://bugs.webkit.org/show_bug.cgi?id=98082
323
324        Reviewed by Andreas Kling.
325
326        Add the GraphicsLayer::create variant that takes a factory to all ports.
327
328        * platform/graphics/GraphicsLayer.cpp:
329        (WebCore):
330        (WebCore::GraphicsLayer::setGraphicsLayerFactory):
331        * platform/graphics/GraphicsLayer.h:
332        (GraphicsLayer):
333        Rename the GraphicsLayerFactory function typedef to GraphicsLayerFactoryCallback to avoid collisions.
334
335        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
336        (WebCore::GraphicsLayer::create):
337        (WebCore):
338        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
339        (WebCore::GraphicsLayer::create):
340        (WebCore):
341        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
342        (WebCore::GraphicsLayer::create):
343        (WebCore):
344        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
345        (WebCore::GraphicsLayer::create):
346        (WebCore):
347
3482012-10-02  Takashi Sakamoto  <tasak@google.com>
349
350        [Shadow] ShadowRoot should know whether <shadow> in its treescope
351        https://bugs.webkit.org/show_bug.cgi?id=97184
352
353        Reviewed by Dimitri Glazkov.
354
355        To quickly know whether some shadow dom subtree has any shadow element
356        or not, added hasShadowRootInsertionPoint, registerShadowElement and
357        unregisterShadowElement to class ShadowRoot. The register method or
358        unregister method is used when a shadow element is inserted into
359        document or removed from document. hasShadowInsertionPoint returns true
360        if any shadow element is still registered with the given shadow root.
361        Otherwise returns false. To test hasShadowInsertionPoint, added
362        hasShadowInsertionPoint to Internals.
363
364        Test: fast/dom/shadow/has-shadow-insertion-point.html
365
366        * dom/ShadowRoot.cpp:
367        (WebCore::ShadowRoot::ShadowRoot):
368        Initializes number of shadow elements.
369        * dom/ShadowRoot.h:
370        (WebCore::ShadowRoot::registerShadowElement):
371        Increases number of shadow elements in shadow dom subtree by 1.
372        (WebCore::ShadowRoot::unregisterShadowElement):
373        Decreases number of shadow elements in shadow dom subtree by 1.
374        (WebCore::ShadowRoot::hasShadowInsertionPoint):
375        If number of shadow elements in shadow dom subtree is not equal to 0,
376        returns true. Otherwise, returns false.
377        * html/shadow/HTMLShadowElement.cpp:
378        (WebCore::HTMLShadowElement::HTMLShadowElement):
379        (WebCore::HTMLShadowElement::insertedInto):
380        If a shadow element is inserted into document, register the shadow
381        element with its shadow root.
382        (WebCore::HTMLShadowElement::removedFrom):
383         If a shadow element is removed from document, unregister the shadow
384        element with its shadow root.
385        * html/shadow/HTMLShadowElement.h:
386        Added a new member variable which has information about whether
387        this shadow element has been already registered with its shadow root
388        or not.
389        * testing/Internals.cpp:
390        (WebCore::Internals::hasShadowInsertionPoint):
391        Added a new testing method which returns whether the given shadow
392        root has any shadow element or not.
393        * testing/Internals.h:
394        (Internals):
395        * testing/Internals.idl:
396
3972012-10-02  Vsevolod Vlasov  <vsevik@chromium.org>
398
399        Web Inspector: [Regression] DevToolsExtensionTest.TestContentScriptIsPresent fails
400        https://bugs.webkit.org/show_bug.cgi?id=98161
401
402        Reviewed by Pavel Feldman.
403
404        Content scripts should be also added by NetworkUISourceCodeProvider. This patch fixes that.
405
406        * inspector/front-end/NetworkUISourceCodeProvider.js:
407        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
408
4092012-10-02  Patrick Gansterer  <paroga@webkit.org>
410
411        [WINCE] Remove FontPlatformData::averageCharWidth()
412        https://bugs.webkit.org/show_bug.cgi?id=97883
413
414        Reviewed by Andreas Kling.
415
416        Use SimpleFontData::avgCharWidth() instead to remove duplicated code.
417
418        * platform/graphics/wince/FontPlatformData.cpp:
419        (WebCore::FixedSizeFontData::create):
420        * platform/graphics/wince/FontPlatformData.h:
421        (FontPlatformData):
422        * platform/graphics/wince/GraphicsContextWinCE.cpp:
423        (WebCore::GraphicsContext::drawText):
424
4252012-10-02  Stephen Chenney  <schenney@chromium.org>
426
427        Refactor WebCore::FontData handling to clarify pointer ownership
428        https://bugs.webkit.org/show_bug.cgi?id=95866
429
430        Reviewed by Eric Seidel.
431
432        Re-commit for a rolled-out original, now with Chromium Windows build fix.
433
434        This patch makes all FontData and derived classes ref-counted in all
435        code paths that lead to caching or other retention of a
436        pointer. The goal is to avert crashes and memory leaks, and to bring
437        the code more in line with current WebKit practices.
438
439        Specifically, this patch allows us to use ref pointers for all the
440        FontData stored in FontFallbackList objects. The FontFallbackList can
441        then own custom font data and manage its lifetime (forthcoming patch).
442        Currently Document owns custom font data and does an end run around
443        FontFallbackList in deleting glyph pages and custom font data, leaving
444        FontFallbackList with invalid pointers.
445
446        All FontData derived classes have been switched to use static create
447        methods with private constructors.
448
449        All caches that hold FontData now use RefPtrs.
450
451        All methods that construct new font data now return PassRefPtr, with the
452        exception of code only used to generate temporary data for text run layout.
453
454        All methods that handle FontData in a call stack that passes through
455        FontFallbackList::fontDataAt return PassRefPtr.
456
457        Performance tested with both WebKit Perf-o-matic, which showed
458        performance changes in the noise, and Chrome's page cycling tests with
459        the acid3 benchmark set, which showed no performance difference at all.
460
461        No new tests as this is refactoring code only and has no impact on functionality.
462
463        * css/CSSFontFace.cpp:
464        (WebCore::CSSFontFace::getFontData):
465        * css/CSSFontFace.h:
466        (CSSFontFace):
467        * css/CSSFontFaceSource.cpp:
468        (WebCore::CSSFontFaceSource::getFontData):
469        * css/CSSFontFaceSource.h:
470        (CSSFontFaceSource):
471        * css/CSSFontSelector.cpp:
472        (WebCore::fontDataForGenericFamily):
473        (WebCore::CSSFontSelector::getFontData):
474        * css/CSSFontSelector.h:
475        * css/CSSSegmentedFontFace.cpp:
476        (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading):
477        (WebCore::CSSSegmentedFontFace::getFontData):
478        * css/CSSSegmentedFontFace.h:
479        (CSSSegmentedFontFace):
480        * dom/Document.cpp:
481        (WebCore::Document::registerCustomFont):
482        * dom/Document.h:
483        (Document):
484        * platform/graphics/Font.h:
485        (WebCore):
486        * platform/graphics/FontCache.cpp:
487        (WebCore):
488        (WebCore::FontCache::getCachedFontData):
489        (WebCore::FontCache::getNonRetainedLastResortFallbackFont):
490        (WebCore::FontCache::releaseFontData):
491        (WebCore::FontCache::purgeInactiveFontData):
492        (WebCore::FontCache::getFontData):
493        * platform/graphics/FontCache.h:
494        (FontCache):
495        * platform/graphics/FontData.h:
496        * platform/graphics/FontFallbackList.cpp:
497        (WebCore::FontFallbackList::releaseFontData):
498        (WebCore::FontFallbackList::fontDataAt):
499        (WebCore::FontFallbackList::setPlatformFont):
500        * platform/graphics/FontFallbackList.h:
501        (FontFallbackList):
502        * platform/graphics/FontFastPath.cpp:
503        (WebCore::Font::glyphDataAndPageForCharacter):
504        * platform/graphics/FontSelector.h:
505        (FontSelector):
506        * platform/graphics/GlyphPageTreeNode.cpp:
507        (WebCore::GlyphPageTreeNode::initializePage):
508        * platform/graphics/SegmentedFontData.cpp:
509        (WebCore::SegmentedFontData::fontDataForCharacter):
510        * platform/graphics/SegmentedFontData.h:
511        (WebCore::FontDataRange::FontDataRange):
512        (WebCore::FontDataRange::fontData):
513        (FontDataRange):
514        (WebCore::SegmentedFontData::create):
515        (SegmentedFontData):
516        (WebCore::SegmentedFontData::SegmentedFontData):
517        * platform/graphics/SimpleFontData.cpp:
518        (WebCore::SimpleFontData::verticalRightOrientationFontData):
519        (WebCore::SimpleFontData::uprightOrientationFontData):
520        (WebCore::SimpleFontData::brokenIdeographFontData):
521        * platform/graphics/SimpleFontData.h:
522        (WebCore::SimpleFontData::create):
523        (SimpleFontData):
524        (WebCore::SimpleFontData::variantFontData):
525        (DerivedFontData):
526        * platform/graphics/chromium/FontCacheAndroid.cpp:
527        (WebCore::FontCache::getFontDataForCharacters):
528        (WebCore::FontCache::getSimilarFontPlatformData):
529        (WebCore::FontCache::getLastResortFallbackFont):
530        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
531        (WebCore::FontCache::fontDataFromDescriptionAndLogFont):
532        (GetLastResortFallbackFontProcData):
533        (WebCore::FontCache::getFontDataForCharacters):
534        (WebCore::FontCache::getSimilarFontPlatformData):
535        (WebCore::FontCache::getLastResortFallbackFont):
536        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
537        (WebCore::SimpleFontData::createScaledFontData):
538        (WebCore::SimpleFontData::smallCapsFontData):
539        (WebCore::SimpleFontData::emphasisMarkFontData):
540        * platform/graphics/freetype/FontCacheFreeType.cpp:
541        (WebCore::FontCache::getFontDataForCharacters):
542        (WebCore::FontCache::getSimilarFontPlatformData):
543        (WebCore::FontCache::getLastResortFallbackFont):
544        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
545        (WebCore::SimpleFontData::createScaledFontData):
546        (WebCore::SimpleFontData::smallCapsFontData):
547        (WebCore::SimpleFontData::emphasisMarkFontData):
548        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
549        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
550        * platform/graphics/mac/FontCacheMac.mm:
551        (WebCore::FontCache::getFontDataForCharacters):
552        (WebCore::FontCache::getSimilarFontPlatformData):
553        (WebCore::FontCache::getLastResortFallbackFont):
554        * platform/graphics/mac/FontComplexTextMac.cpp:
555        (WebCore::Font::fontDataForCombiningCharacterSequence):
556        * platform/graphics/mac/SimpleFontDataMac.mm:
557        (WebCore::SimpleFontData::platformDestroy):
558        (WebCore::SimpleFontData::createScaledFontData):
559        (WebCore::SimpleFontData::smallCapsFontData):
560        (WebCore::SimpleFontData::emphasisMarkFontData):
561        * platform/graphics/pango/FontCachePango.cpp:
562        (WebCore::FontCache::getFontDataForCharacters):
563        (WebCore::FontCache::getSimilarFontPlatformData):
564        (WebCore::FontCache::getLastResortFallbackFont):
565        * platform/graphics/pango/SimpleFontDataPango.cpp:
566        (WebCore::SimpleFontData::createScaledFontData):
567        (WebCore::SimpleFontData::smallCapsFontData):
568        (WebCore::SimpleFontData::emphasisMarkFontData):
569        * platform/graphics/qt/FontCacheQt.cpp:
570        (WebCore::FontCache::getFontDataForCharacters):
571        (WebCore::FontCache::getSimilarFontPlatformData):
572        (WebCore::FontCache::getLastResortFallbackFont):
573        * platform/graphics/qt/SimpleFontDataQt.cpp:
574        (WebCore::SimpleFontData::createScaledFontData):
575        (WebCore::SimpleFontData::smallCapsFontData):
576        (WebCore::SimpleFontData::emphasisMarkFontData):
577        * platform/graphics/skia/FontCacheSkia.cpp:
578        (WebCore::FontCache::getFontDataForCharacters):
579        (WebCore::FontCache::getSimilarFontPlatformData):
580        (WebCore::FontCache::getLastResortFallbackFont):
581        * platform/graphics/skia/SimpleFontDataSkia.cpp:
582        (WebCore::SimpleFontData::createScaledFontData):
583        (WebCore::SimpleFontData::smallCapsFontData):
584        (WebCore::SimpleFontData::emphasisMarkFontData):
585        * platform/graphics/win/FontCacheWin.cpp:
586        (WebCore::FontCache::getFontDataForCharacters):
587        (WebCore::FontCache::getSimilarFontPlatformData):
588        (WebCore::FontCache::fontDataFromDescriptionAndLogFont):
589        (WebCore::FontCache::getLastResortFallbackFont):
590        * platform/graphics/win/SimpleFontDataWin.cpp:
591        (WebCore::SimpleFontData::createScaledFontData):
592        (WebCore::SimpleFontData::smallCapsFontData):
593        (WebCore::SimpleFontData::emphasisMarkFontData):
594        * platform/graphics/wince/FontCacheWinCE.cpp:
595        (WebCore::FontCache::getFontDataForCharacters):
596        (WebCore::FontCache::getSimilarFontPlatformData):
597        (WebCore::FontCache::getLastResortFallbackFont):
598        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
599        (WebCore::SimpleFontData::createScaledFontData):
600        (WebCore::SimpleFontData::smallCapsFontData):
601        (WebCore::SimpleFontData::emphasisMarkFontData):
602        * platform/graphics/wx/FontCacheWx.cpp:
603        (WebCore::FontCache::getFontDataForCharacters):
604        (WebCore::FontCache::getSimilarFontPlatformData):
605        (WebCore::FontCache::getLastResortFallbackFont):
606        * platform/graphics/wx/SimpleFontDataWx.cpp:
607        (WebCore::SimpleFontData::createScaledFontData):
608        (WebCore::SimpleFontData::smallCapsFontData):
609        (WebCore::SimpleFontData::emphasisMarkFontData):
610
6112012-10-02  Christophe Dumez  <christophe.dumez@intel.com>
612
613        [XMLHttpRequest] overrideMimeType(mime) does not update the response's "Content-Type" header
614        https://bugs.webkit.org/show_bug.cgi?id=98137
615
616        Reviewed by Kentaro Hara.
617
618        According to the XMLHttpRequest specification, overrideMimeType(mime) sets the
619        "Content-Type" header for the response to mime. However, with the current
620        implementation, calling overrideMimeType(mime) does not affect the value
621        returned by client.getResponseHeader("Content-Type"). This patch makes sure
622        the response's "Content-Type" header is properly updated with the override
623        MIME type.
624
625        Test: http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header.html
626
627        * xml/XMLHttpRequest.cpp:
628        (WebCore::XMLHttpRequest::didReceiveResponse):
629
6302012-10-02  Vsevolod Vlasov  <vsevik@chromium.org>
631
632        Web Inspector: Move UISourceCode creation out from ResourceScriptMapping.
633        https://bugs.webkit.org/show_bug.cgi?id=97680
634
635        Reviewed by Pavel Feldman.
636
637        UISourceCodes for scripts having sourceURL are now created by NetworkUISourceCodeProvider.
638        UISourceCodes for anonymous, dynamic and concatenated scripts are now created on demand only.
639        All UISourceCodes created by ResourceScriptMapping are now "temporary".
640        Temporary UISourceCodes are not stored in workspace and removed when a normal UISourceCode with the same url is available.
641        UISourceCodeReplaced event was replaced with TemporaryUISourceCodeAdded/Removed events.
642
643        * inspector/front-end/BreakpointManager.js:
644        (WebInspector.BreakpointManager):
645        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
646        (WebInspector.BreakpointManager.Breakpoint.prototype.remove):
647        * inspector/front-end/NavigatorView.js:
648        * inspector/front-end/NetworkUISourceCodeProvider.js:
649        (WebInspector.NetworkUISourceCodeProvider):
650        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
651        * inspector/front-end/ResourceScriptMapping.js:
652        (WebInspector.ResourceScriptMapping):
653        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
654        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
655        (WebInspector.ResourceScriptMapping.prototype.uiLocationToRawLocation):
656        (WebInspector.ResourceScriptMapping.prototype.addScript):
657        (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
658        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
659        (WebInspector.ResourceScriptMapping.prototype._isDynamicScript):
660        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
661        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
662        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
663        (WebInspector.ResourceScriptMapping.prototype._reset):
664        * inspector/front-end/RevisionHistoryView.js:
665        (WebInspector.RevisionHistoryView):
666        * inspector/front-end/ScriptsNavigator.js:
667        * inspector/front-end/ScriptsPanel.js:
668        (WebInspector.ScriptsPanel):
669        * inspector/front-end/TabbedEditorContainer.js:
670        (WebInspector.TabbedEditorContainer.prototype.removeUISourceCode.get if):
671        (WebInspector.TabbedEditorContainer.prototype.removeUISourceCode):
672        * inspector/front-end/UISourceCode.js:
673        * inspector/front-end/Workspace.js:
674        (WebInspector.Project.prototype.addTemporaryUISourceCode):
675        (WebInspector.Project.prototype.removeTemporaryUISourceCode):
676
6772012-10-02  Pavel Feldman  <pfeldman@chromium.org>
678
679        Web Inspector: fix front-end compilation
680        https://bugs.webkit.org/show_bug.cgi?id=98135
681
682        Reviewed by Vsevolod Vlasov.
683
684        Fixing front-end compilation errors.
685
686        * inspector/InjectedScriptCanvasModuleSource.js:
687        (.):
688        * inspector/InjectedScriptSource.js:
689        (.):
690        * inspector/front-end/DOMExtension.js:
691        (Element.prototype.pruneEmptyTextNodes):
692        * inspector/front-end/DatabaseQueryView.js:
693        * inspector/front-end/ExtensionAPI.js:
694        * inspector/front-end/JavaScriptSource.js:
695        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
696        * inspector/front-end/RuntimeModel.js:
697        * inspector/front-end/StylesSidebarPane.js:
698        * inspector/front-end/TextPrompt.js:
699        (WebInspector.TextPrompt.SuggestBox.prototype._updateItems):
700        * inspector/front-end/treeoutline.js:
701        (TreeElement.prototype.expandRecursively):
702
7032012-10-02  Jochen Eisinger  <jochen@chromium.org>
704
705        [chromium] ASSERT that the embedder has set a default locale
706        https://bugs.webkit.org/show_bug.cgi?id=98001
707
708        Reviewed by Adam Barth.
709
710        The callsites assume that the default language is always defined, e.g.
711        Document::getCachedLocalizer. Add an ASSERT() statement so an embedder
712        doesn't have to guess what they did wrong.
713
714        * platform/chromium/LanguageChromium.cpp:
715        (WebCore::platformLanguage):
716
7172012-10-02  Vsevolod Vlasov  <vsevik@chromium.org>
718
719        Web Inspector: Fix JavaScriptSource error found by compiler
720        https://bugs.webkit.org/show_bug.cgi?id=98143
721
722        Reviewed by Pavel Feldman.
723
724        * inspector/front-end/JavaScriptSource.js:
725        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
726
7272012-10-02  Mike West  <mkwst@chromium.org>
728
729        Add call stacks to Content Security Policy checks when relevant.
730        https://bugs.webkit.org/show_bug.cgi?id=94433
731
732        Reviewed by Adam Barth.
733
734        Previously, we generated stack traces only for eval-related CSP
735        violations. As it turns out, we can call createScriptCallStack from
736        practically anywhere. This patch takes advantage of that to generate
737        stack traces whenever a warning is logged to the console. If we're in
738        a JavaScript stack, brilliant: we get a detailed warning. If not, the
739        stack trace is empty, and we don't pass it into the console logging
740        method.
741
742        This has the advantage of giving us good developer-facing logging for
743        any and all violations that result from script-based injection of
744        resources. Yay!
745
746        Tests: http/tests/inspector/csp-injected-content-warning-contains-stacktrace.html
747               http/tests/inspector/csp-inline-warning-contains-stacktrace.html
748               http/tests/inspector/csp-setInterval-warning-contains-stacktrace.html
749               http/tests/inspector/csp-setTimeout-warning-contains-stacktrace.html
750
751        * bindings/js/ScheduledAction.cpp:
752        (WebCore::ScheduledAction::create):
753            Replacing the generated stack trace with the current script state,
754            which will enable us to generate the stack trace inside
755            ContentSecurityPolicy::reportViolation if it's relevant.
756        * bindings/v8/ScriptCallStackFactory.cpp:
757        (WebCore::createScriptCallStackForConsole):
758        (WebCore):
759        * bindings/v8/ScriptCallStackFactory.h:
760        (WebCore):
761            Adding a dummy interface to createScriptCallStackForConsole that
762            allows ScriptState to be passed in, which matches JSC's interface.
763        * bindings/v8/custom/V8DOMWindowCustom.cpp:
764        (WebCore::WindowSetTimeoutImpl):
765        * bindings/v8/custom/V8WorkerContextCustom.cpp:
766        (WebCore::SetTimeoutOrInterval):
767            Dropping stack trace from call to ContentSecurityPolicy::allowEval.
768        * page/ContentSecurityPolicy.cpp:
769        (CSPDirectiveList):
770        (WebCore::CSPDirectiveList::reportViolation):
771        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
772        (WebCore::CSPDirectiveList::allowEval):
773            Piping script state through from CSPDirectiveList::allowEval rather
774            than a full stack trace.
775        (WebCore):
776        (WebCore::isAllowedByAll):
777        (WebCore::isAllowedByAllWithState):
778        (WebCore::ContentSecurityPolicy::allowEval):
779        (WebCore::ContentSecurityPolicy::reportViolation):
780        (WebCore::ContentSecurityPolicy::logToConsole):
781            Piping script state through from ContentSecurityPolicy::allowEval
782            rather than a full stack trace. Now, we can simply generate the
783            stack trace just before logging it, and only pass it into
784            addConsoleMessage if it's non-empty.
785        * page/ContentSecurityPolicy.h:
786        (JSC):
787        (WebCore):
788            Including 'ScriptState.h' to normalize V8 and JSC's JS state objects.
789
7902012-10-02  Pavel Feldman  <pfeldman@chromium.org>
791
792        Web Inspector: migrate from WebInspector.Foo.prototype.__proto__ = to __proto__: syntax
793        https://bugs.webkit.org/show_bug.cgi?id=98127
794
795        Reviewed by Vsevolod Vlasov.
796
797        Converted with the regex matcher.
798
799        * inspector/InjectedScriptCanvasModuleSource.js:
800        (.):
801        * inspector/compile-front-end.py:
802        * inspector/front-end/AdvancedSearchController.js:
803        (WebInspector.SearchView.prototype._onAction):
804        (WebInspector.FileBasedSearchResultsPane.prototype._createContentSpan):
805        * inspector/front-end/ApplicationCacheItemsView.js:
806        * inspector/front-end/ApplicationCacheModel.js:
807        (WebInspector.ApplicationCacheModel.prototype._networkStateUpdated):
808        * inspector/front-end/AuditCategories.js:
809        (WebInspector.AuditCategories.PagePerformance.prototype.initialize):
810        (WebInspector.AuditCategories.NetworkUtilization.prototype.initialize):
811        * inspector/front-end/AuditLauncherView.js:
812        (WebInspector.AuditLauncherView.prototype._updateButton):
813        * inspector/front-end/AuditResultView.js:
814        (WebInspector.AuditCategoryResultPane.prototype._appendResult):
815        * inspector/front-end/AuditRules.js:
816        (WebInspector.AuditRules.GzipRule.prototype._shouldCompress):
817        (WebInspector.AuditRules.CombineExternalResourcesRule.prototype.doRun):
818        (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
819        (WebInspector.AuditRules.ParallelizeDownloadRule.prototype.doRun):
820        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun):
821        (WebInspector.AuditRules.CacheControlRule.prototype.isCacheableResource):
822        (WebInspector.AuditRules.BrowserCacheControlRule.prototype._oneYearExpirationCheck):
823        (WebInspector.AuditRules.ProxyCacheControlRule.prototype._setCookieCacheableCheck):
824        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
825        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun):
826        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun):
827        (WebInspector.AuditRules.CSSRuleBase.prototype.visitProperty):
828        (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.visitProperty):
829        (WebInspector.AuditRules.CookieRuleBase.prototype._callbackForResourceCookiePairs):
830        (WebInspector.AuditRules.CookieSizeRule.prototype.processCookies):
831        (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
832        * inspector/front-end/AuditsPanel.js:
833        (WebInspector.AuditsPanel.prototype._clearButtonClicked):
834        (WebInspector.AuditsSidebarTreeElement.prototype.refresh):
835        (WebInspector.AuditResultSidebarTreeElement.prototype.get selectable):
836        * inspector/front-end/BottomUpProfileDataGridTree.js:
837        (WebInspector.BottomUpProfileDataGridNode.prototype._willHaveChildren):
838        * inspector/front-end/BreakpointManager.js:
839        (WebInspector.BreakpointManager.prototype._uiLocationRemoved):
840        * inspector/front-end/BreakpointsSidebarPane.js:
841        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.reset):
842        (WebInspector.XHRBreakpointsSidebarPane.prototype.set _restoreBreakpoints):
843        (WebInspector.EventListenerBreakpointsSidebarPane.prototype.set _restoreBreakpoints):
844        * inspector/front-end/CPUProfileView.js:
845        (WebInspector.CPUProfileView.prototype._assignParentsInProfile):
846        (WebInspector.CPUProfileType.prototype.createProfile):
847        (WebInspector.CPUProfileHeader.prototype.createView):
848        * inspector/front-end/CSSNamedFlowCollectionsView.js:
849        (WebInspector.CSSNamedFlowCollectionsView.prototype.willHide):
850        (WebInspector.FlowTreeElement.prototype.setOverset):
851        * inspector/front-end/CSSNamedFlowView.js:
852        (WebInspector.CSSNamedFlowView.prototype._update):
853        * inspector/front-end/CSSSelectorProfileView.js:
854        (WebInspector.CSSSelectorDataGridNode.prototype.createCell):
855        (WebInspector.CSSSelectorProfileType.prototype.createTemporaryProfile):
856        (WebInspector.CSSProfileHeader.prototype.createView):
857        * inspector/front-end/CSSStyleModel.js:
858        (WebInspector.CSSStyleModel.prototype._rawLocationToUILocation):
859        * inspector/front-end/CallStackSidebarPane.js:
860        (WebInspector.CallStackSidebarPane.prototype._keyDown):
861        (WebInspector.CallStackSidebarPane.Placard.prototype._restartFrame):
862        * inspector/front-end/CanvasProfileView.js:
863        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
864        (WebInspector.CanvasProfileType.prototype.createProfile):
865        (WebInspector.CanvasProfileHeader.prototype.createView):
866        * inspector/front-end/CodeMirrorTextEditor.js:
867        (WebInspector.CodeMirrorTextEditor.prototype._toRange):
868        * inspector/front-end/ConsoleMessage.js:
869        (WebInspector.ConsoleMessageImpl.prototype.clone):
870        * inspector/front-end/ConsoleModel.js:
871        (WebInspector.ConsoleModel.prototype._messageRepeatCountUpdated):
872        * inspector/front-end/ConsolePanel.js:
873        (WebInspector.ConsolePanel.prototype._consoleCleared):
874        * inspector/front-end/ConsoleView.js:
875        (WebInspector.ConsoleView.prototype._dumpMemory):
876        (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
877        * inspector/front-end/ContentProviders.js:
878        (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
879        (WebInspector.CompilerSourceMappingContentProvider.prototype.searchInContent):
880        (WebInspector.StaticContentProvider.prototype.searchInContent):
881        * inspector/front-end/ContextMenu.js:
882        (WebInspector.ContextSubMenuItem.prototype._buildDescriptor):
883        (WebInspector.ContextMenu.prototype.appendApplicableItems):
884        * inspector/front-end/CookieItemsView.js:
885        (WebInspector.CookieItemsView.prototype._contextMenu):
886        (WebInspector.SimpleCookiesTable.prototype.setCookies):
887        * inspector/front-end/CookiesTable.js:
888        (WebInspector.CookiesTable.prototype._onDeleteFromGrid):
889        * inspector/front-end/DOMAgent.js:
890        (WebInspector.DOMAgent.prototype.redo):
891        * inspector/front-end/DOMBreakpointsSidebarPane.js:
892        (WebInspector.DOMBreakpointsSidebarPane.prototype.set restoreBreakpoints):
893        * inspector/front-end/DOMStorage.js:
894        (WebInspector.DOMStorageModel.prototype.storages):
895        * inspector/front-end/DOMStorageItemsView.js:
896        (WebInspector.DOMStorageItemsView.prototype._deleteCallback):
897        * inspector/front-end/DataGrid.js:
898        (WebInspector.DataGridNode.prototype.restorePosition):
899        (WebInspector.CreationDataGridNode.prototype.makeNormal):
900        * inspector/front-end/Database.js:
901        (WebInspector.DatabaseModel.prototype._addDatabase):
902        * inspector/front-end/DatabaseQueryView.js:
903        (WebInspector.DatabaseQueryView.prototype._appendQueryResult):
904        * inspector/front-end/DatabaseTableView.js:
905        (WebInspector.DatabaseTableView.prototype._refreshButtonClicked):
906        * inspector/front-end/DebuggerModel.js:
907        (WebInspector.DebuggerModel.prototype.callStackModified):
908        * inspector/front-end/DefaultTextEditor.js:
909        (WebInspector.DefaultTextEditor.prototype.willHide):
910        (WebInspector.TextEditorGutterPanel.prototype.removeDecoration):
911        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDiv):
912        * inspector/front-end/Dialog.js:
913        (WebInspector.DialogDelegate.prototype.willHide):
914        * inspector/front-end/DirectoryContentView.js:
915        (WebInspector.DirectoryContentView.prototype._sort):
916        (WebInspector.DirectoryContentView.Node.prototype._metadataReceived):
917        * inspector/front-end/ElementsPanel.js:
918        (WebInspector.ElementsPanel.prototype.appendApplicableItems):
919        * inspector/front-end/ElementsPanelDescriptor.js:
920        (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
921        * inspector/front-end/ElementsTreeOutline.js:
922        (WebInspector.ElementsTreeOutline.prototype._selectNodeAfterEdit):
923        (WebInspector.ElementsTreeOutline.PseudoStateDecorator.prototype.decorateAncestor):
924        * inspector/front-end/EmptyView.js:
925        * inspector/front-end/EventListenersSidebarPane.js:
926        (WebInspector.EventListenersSidebarPane.prototype):
927        * inspector/front-end/ExtensionAPI.js:
928        (injectedExtensionAPI.PanelWithSidebarImpl.prototype.createSidebarPane):
929        (injectedExtensionAPI.ExtensionPanelImpl.prototype.show):
930        * inspector/front-end/ExtensionPanel.js:
931        (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
932        (WebInspector.ExtensionSidebarPane.prototype._setObject):
933        * inspector/front-end/ExtensionView.js:
934        (WebInspector.ExtensionView.prototype._onLoad):
935        (WebInspector.ExtensionNotifierView.prototype.willHide):
936        * inspector/front-end/FileContentView.js:
937        (WebInspector.FileContentView.prototype.refresh):
938        * inspector/front-end/FileManager.js:
939        (WebInspector.FileManager.prototype.appendedToURL):
940        * inspector/front-end/FileSystemModel.js:
941        (WebInspector.FileSystemModel.prototype._removeFileSystem):
942        (WebInspector.FileSystemModel.Directory.prototype.requestDirectoryContent):
943        (WebInspector.FileSystemModel.File.prototype.requestFileContent):
944        * inspector/front-end/FileSystemView.js:
945        (WebInspector.FileSystemView.prototype._delete):
946        (WebInspector.FileSystemView.EntryTreeElement.prototype._deletionCompleted):
947        * inspector/front-end/FilteredItemSelectionDialog.js:
948        (WebInspector.FilteredItemSelectionDialog.prototype._itemElementInViewport):
949        (WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery):
950        (WebInspector.OpenResourceDialog.prototype.rewriteQuery):
951        * inspector/front-end/FontView.js:
952        (WebInspector.FontView.prototype.updateFontPreviewSize):
953        * inspector/front-end/GoToLineDialog.js:
954        (WebInspector.GoToLineDialog.prototype.onEnter):
955        * inspector/front-end/HandlerRegistry.js:
956        (WebInspector.HandlerRegistry.prototype._appendHrefItems):
957        * inspector/front-end/HeapSnapshot.js:
958        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort):
959        (WebInspector.HeapSnapshotNodesProvider.prototype.sort):
960        * inspector/front-end/HeapSnapshotDataGrids.js:
961        (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave):
962        (WebInspector.HeapSnapshotViewportDataGrid.prototype._onScroll):
963        (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
964        (WebInspector.HeapSnapshotDiffDataGrid.prototype._populateChildren):
965        (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId):
966        * inspector/front-end/HeapSnapshotGridNodes.js:
967        (WebInspector.HeapSnapshotGridNode.prototype.sort):
968        (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
969        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
970        (WebInspector.HeapSnapshotInstanceNode.prototype.get isDeletedNode):
971        (WebInspector.HeapSnapshotConstructorNode.prototype.get _shallowSizePercent):
972        (WebInspector.HeapSnapshotDiffNode.prototype.get data):
973        (WebInspector.HeapSnapshotDominatorObjectNode.prototype._emptyData):
974        * inspector/front-end/HeapSnapshotProxy.js:
975        (WebInspector.HeapSnapshotWorkerWrapper.prototype.terminate):
976        (WebInspector.HeapSnapshotRealWorker.prototype.terminate):
977        (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
978        (WebInspector.HeapSnapshotWorker.prototype._postMessage):
979        (WebInspector.HeapSnapshotLoaderProxy.prototype.close):
980        (WebInspector.HeapSnapshotProxy.prototype.get uid):
981        (WebInspector.HeapSnapshotProviderProxy.prototype.sortAndRewind):
982        * inspector/front-end/HeapSnapshotView.js:
983        (WebInspector.HeapSnapshotView.prototype._updateFilterOptions):
984        (WebInspector.HeapSnapshotProfileType.prototype.createProfile):
985        (WebInspector.HeapProfileHeader.prototype._createFileReader):
986        * inspector/front-end/HelpScreen.js:
987        (WebInspector.HelpScreen.prototype._onBlur):
988        * inspector/front-end/ImageView.js:
989        (WebInspector.ImageView.prototype._openInNewTab):
990        * inspector/front-end/IndexedDBModel.js:
991        (WebInspector.IndexedDBModel.prototype._requestData):
992        * inspector/front-end/IndexedDBViews.js:
993        (WebInspector.IDBDataView.prototype.clear):
994        (WebInspector.IDBDataGridNode.prototype._formatValue):
995        * inspector/front-end/InspectorFrontendHostStub.js:
996        (.WebInspector.ClipboardAccessDeniedScreen):
997        * inspector/front-end/InspectorView.js:
998        (WebInspector.InspectorView.prototype.showPanelForAnchorNavigation):
999        * inspector/front-end/JavaScriptSource.js:
1000        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
1001        * inspector/front-end/JavaScriptSourceFrame.js:
1002        (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
1003        * inspector/front-end/Linkifier.js:
1004        (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
1005        * inspector/front-end/MemoryStatistics.js:
1006        (WebInspector.SwatchCheckbox.prototype._toggleCheckbox):
1007        * inspector/front-end/MetricsSidebarPane.js:
1008        (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
1009        * inspector/front-end/NativeBreakpointsSidebarPane.js:
1010        (WebInspector.NativeBreakpointsSidebarPane.prototype._reset):
1011        * inspector/front-end/NativeMemorySnapshotView.js:
1012        (WebInspector.NativeMemorySnapshotView.prototype.get profile):
1013        (WebInspector.NativeMemoryProfileType.prototype.createProfile):
1014        (WebInspector.NativeMemoryProfileHeader.prototype.createView):
1015        (WebInspector.NativeMemoryPieChart.prototype._clear):
1016        (WebInspector.NativeMemoryBarChart.prototype._updateView):
1017        * inspector/front-end/NavigatorView.js:
1018        (WebInspector.NavigatorView.prototype.handleContextMenu):
1019        (WebInspector.NavigatorTreeOutline.prototype.searchFinished):
1020        (WebInspector.BaseNavigatorTreeElement.prototype.matchesSearchText):
1021        (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
1022        (WebInspector.NavigatorSourceTreeElement.prototype._handleContextMenuEvent):
1023        * inspector/front-end/NetworkItemView.js:
1024        (WebInspector.NetworkItemView.prototype.set request):
1025        (WebInspector.RequestContentView.prototype.highlightLine):
1026        * inspector/front-end/NetworkManager.js:
1027        (WebInspector.NetworkManager.prototype._userAgentSettingChanged):
1028        * inspector/front-end/NetworkPanel.js:
1029        (WebInspector.NetworkLogView.prototype._highlightNode):
1030        (WebInspector.NetworkPanel.prototype.appendApplicableItems):
1031        (WebInspector.NetworkTimeCalculator.prototype._upperBound):
1032        (WebInspector.NetworkTransferTimeCalculator.prototype._upperBound):
1033        (WebInspector.NetworkTransferDurationCalculator.prototype._upperBound):
1034        (WebInspector.NetworkDataGridNode.prototype._refreshLabelPositions):
1035        (WebInspector.NetworkDataGridNode.RequestPropertyComparator):
1036        * inspector/front-end/NetworkPanelDescriptor.js:
1037        (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
1038        * inspector/front-end/NetworkRequest.js:
1039        (WebInspector.NetworkRequest.prototype._pushFrame):
1040        * inspector/front-end/ObjectPopoverHelper.js:
1041        (WebInspector.ObjectPopoverHelper.prototype._updateHTMLId):
1042        * inspector/front-end/ObjectPropertiesSection.js:
1043        (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
1044        (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
1045        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
1046        (WebInspector.ScopeTreeElement.prototype.onpopulate):
1047        (WebInspector.ArrayGroupingTreeElement.prototype.onattach):
1048        * inspector/front-end/Panel.js:
1049        (WebInspector.Panel.prototype.unregisterShortcut):
1050        * inspector/front-end/PanelEnablerView.js:
1051        (WebInspector.PanelEnablerView.prototype.get alwaysEnabled):
1052        * inspector/front-end/ProfileDataGridTree.js:
1053        (WebInspector.ProfileDataGridNode.prototype._merge):
1054        * inspector/front-end/ProfileLauncherView.js:
1055        (WebInspector.ProfileLauncherView.prototype.profileFinished):
1056        * inspector/front-end/ProfilesPanel.js:
1057        (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
1058        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
1059        (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
1060        (WebInspector.ProfilesSidebarTreeElement.prototype.get selectable):
1061        * inspector/front-end/ProgressIndicator.js:
1062        (WebInspector.ProgressIndicator.prototype.worked):
1063        * inspector/front-end/PropertiesSection.js:
1064        * inspector/front-end/PropertiesSidebarPane.js:
1065        (WebInspector.PropertiesSidebarPane.prototype.update):
1066        * inspector/front-end/RequestCookiesView.js:
1067        (WebInspector.RequestCookiesView.prototype._refreshCookies):
1068        * inspector/front-end/RequestHTMLView.js:
1069        (WebInspector.RequestHTMLView.prototype._createIFrame):
1070        * inspector/front-end/RequestHeadersView.js:
1071        (WebInspector.RequestHeadersView.prototype._createHeadersToggleButton):
1072        * inspector/front-end/RequestJSONView.js:
1073        (WebInspector.RequestJSONView.parseJSON.WebInspector.RequestJSONView.prototype._initialize):
1074        * inspector/front-end/RequestPreviewView.js:
1075        (WebInspector.RequestPreviewView.prototype._createPreviewView):
1076        * inspector/front-end/RequestResponseView.js:
1077        (WebInspector.RequestResponseView.prototype.contentLoaded):
1078        * inspector/front-end/RequestTimingView.js:
1079        (WebInspector.RequestTimingView.prototype._refresh):
1080        (WebInspector.RequestTimingView.createTimingTable):
1081        * inspector/front-end/RequestView.js:
1082        (WebInspector.RequestView.prototype.hasContent):
1083        * inspector/front-end/Resource.js:
1084        (WebInspector.Resource.prototype.isHidden):
1085        * inspector/front-end/ResourceTreeModel.js:
1086        (WebInspector.ResourceTreeModel.prototype._createResourceFromFramePayload):
1087        * inspector/front-end/ResourceView.js:
1088        (WebInspector.ResourceView.prototype.hasContent):
1089        (WebInspector.ResourceSourceFrame.prototype.populateTextAreaContextMenu):
1090        * inspector/front-end/ResourceWebSocketFrameView.js:
1091        * inspector/front-end/ResourcesPanel.js:
1092        (WebInspector.ResourcesPanel.prototype._onmouseout):
1093        (WebInspector.BaseStorageTreeElement.prototype.get searchMatchesCount):
1094        (WebInspector.StorageCategoryTreeElement.prototype.set oncollapse):
1095        (WebInspector.FrameTreeElement.prototype._insertInPresentationOrder):
1096        (WebInspector.FrameResourceTreeElement.prototype.sourceView):
1097        (WebInspector.DatabaseTreeElement.prototype._updateChildren):
1098        (WebInspector.DatabaseTableTreeElement.prototype.onselect):
1099        (WebInspector.IndexedDBTreeElement.prototype._idbDatabaseTreeElement):
1100        (WebInspector.FileSystemListTreeElement.prototype._refreshFileSystem):
1101        (WebInspector.IDBDatabaseTreeElement.prototype.clear):
1102        (WebInspector.IDBObjectStoreTreeElement.prototype.clear):
1103        (WebInspector.IDBIndexTreeElement.prototype.clear):
1104        (WebInspector.DOMStorageTreeElement.prototype.onselect):
1105        (WebInspector.CookieTreeElement.prototype.onselect):
1106        (WebInspector.ApplicationCacheManifestTreeElement.prototype.onselect):
1107        (WebInspector.ApplicationCacheFrameTreeElement.prototype.onselect):
1108        (WebInspector.FileSystemTreeElement.prototype.clear):
1109        (WebInspector.StorageCategoryView.prototype.setText):
1110        * inspector/front-end/RevisionHistoryView.js:
1111        (WebInspector.RevisionHistoryView.prototype._reset):
1112        (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert):
1113        * inspector/front-end/RuntimeModel.js:
1114        (WebInspector.RuntimeModel.prototype._reportCompletions):
1115        (WebInspector.FrameExecutionContextList.prototype.get displayName):
1116        * inspector/front-end/ScopeChainSidebarPane.js:
1117        (WebInspector.ScopeChainSidebarPane.prototype.update):
1118        (WebInspector.ScopeVariableTreeElement.prototype.get propertyPath):
1119        * inspector/front-end/Script.js:
1120        (WebInspector.Script.Location.prototype.dispose):
1121        * inspector/front-end/ScriptFormatterWorker.js:
1122        (HTMLScriptFormatter.prototype.styleSheetEnded):
1123        * inspector/front-end/ScriptSnippetModel.js:
1124        (WebInspector.ScriptSnippetModel.prototype._projectDidReset):
1125        (WebInspector.SnippetJavaScriptSource.prototype.workingCopyChanged):
1126        * inspector/front-end/ScriptsNavigator.js:
1127        (WebInspector.ScriptsNavigator.prototype.reset):
1128        (WebInspector.SnippetsNavigatorView.prototype._snippetCreationRequested):
1129        * inspector/front-end/ScriptsPanel.js:
1130        (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
1131        * inspector/front-end/ScriptsPanelDescriptor.js:
1132        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
1133        * inspector/front-end/ScriptsSearchScope.js:
1134        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
1135        * inspector/front-end/SettingsScreen.js:
1136        (WebInspector.SettingsScreen.prototype.willHide):
1137        (WebInspector.SettingsTab.prototype._createCustomSetting):
1138        (WebInspector.GenericSettingsTab.prototype._javaScriptDisabledChanged):
1139        (WebInspector.UserAgentSettingsTab.prototype._createDeviceOrientationOverrideElement):
1140        (WebInspector.ExperimentsSettingsTab.prototype._createExperimentCheckbox):
1141        * inspector/front-end/ShowMoreDataGridNode.js:
1142        (WebInspector.ShowMoreDataGridNode.prototype.dispose):
1143        * inspector/front-end/SidebarPane.js:
1144        (WebInspector.SidebarPane.prototype._onTitleKeyDown):
1145        * inspector/front-end/SidebarTreeElement.js:
1146        (WebInspector.SidebarSectionTreeElement.prototype.onreveal):
1147        (WebInspector.SidebarTreeElement.prototype.onreveal):
1148        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
1149        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
1150        * inspector/front-end/SnippetStorage.js:
1151        (WebInspector.Snippet.prototype.serializeToObject):
1152        * inspector/front-end/SourceCSSTokenizer.js:
1153        (WebInspector.SourceCSSTokenizer.prototype.nextToken):
1154        * inspector/front-end/SourceCSSTokenizer.re2js:
1155        * inspector/front-end/SourceFrame.js:
1156        (WebInspector.SourceFrame.prototype._commitEditing):
1157        (WebInspector.TextEditorDelegateForSourceFrame.prototype.createLink):
1158        * inspector/front-end/SourceHTMLTokenizer.js:
1159        (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
1160        * inspector/front-end/SourceHTMLTokenizer.re2js:
1161        * inspector/front-end/SourceJavaScriptTokenizer.js:
1162        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
1163        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
1164        * inspector/front-end/Spectrum.js:
1165        (WebInspector.Spectrum.prototype._onKeyDown):
1166        * inspector/front-end/SplitView.js:
1167        (WebInspector.SplitView.prototype.set elementsToRestoreScrollPositionsFor):
1168        * inspector/front-end/StatusBarButton.js:
1169        (WebInspector.StatusBarButton.prototype._showOptions):
1170        * inspector/front-end/StyleSheetOutlineDialog.js:
1171        (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):
1172        * inspector/front-end/StyleSource.js:
1173        (WebInspector.StyleSource.prototype._clearIncrementalUpdateTimer):
1174        * inspector/front-end/StylesSidebarPane.js:
1175        (WebInspector.StylesSidebarPane.prototype.willHide):
1176        (WebInspector.ComputedStyleSidebarPane.prototype.expand):
1177        (WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled):
1178        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
1179        (WebInspector.BlankStylePropertiesSection.prototype.makeNormal):
1180        (WebInspector.StylePropertyTreeElement.prototype):
1181        * inspector/front-end/TabbedEditorContainer.js:
1182        (WebInspector.TabbedEditorContainer.prototype.currentFile):
1183        (WebInspector.TabbedEditorContainer.HistoryItem.prototype.serializeToObject):
1184        (WebInspector.TabbedEditorContainer.History.prototype.set _serializeToObject):
1185        * inspector/front-end/TabbedPane.js:
1186        (WebInspector.TabbedPane.prototype._insertBefore):
1187        * inspector/front-end/TextEditorModel.js:
1188        (WebInspector.TextEditorModel.endsWithBracketRegex.):
1189        * inspector/front-end/TextPrompt.js:
1190        (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
1191        * inspector/front-end/TimelineManager.js:
1192        (WebInspector.TimelineManager.prototype._stopped):
1193        * inspector/front-end/TimelineModel.js:
1194        (WebInspector.TimelineModel.prototype.recordOffsetInSeconds):
1195        * inspector/front-end/TimelineOverviewPane.js:
1196        (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh):
1197        (WebInspector.TimelineOverviewWindow.prototype._zoom):
1198        (WebInspector.TimelineFrameOverview.prototype.getWindowTimes):
1199        * inspector/front-end/TimelinePanel.js:
1200        (WebInspector.TimelinePanel.prototype.performSearch):
1201        * inspector/front-end/TimelinePresentationModel.js:
1202        (WebInspector.TimelinePresentationModel.prototype.isVisible):
1203        (WebInspector.TimelineCategory.prototype.set hidden):
1204        * inspector/front-end/TopDownProfileDataGridTree.js:
1205        (WebInspector.TopDownProfileDataGridNode.prototype._exclude):
1206        * inspector/front-end/UISourceCode.js:
1207        (WebInspector.UISourceCode.prototype.setSourceMapping):
1208        * inspector/front-end/UISourceCodeFrame.js:
1209        (WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu):
1210        * inspector/front-end/View.js:
1211        (WebInspector.View.prototype.focus):
1212        * inspector/front-end/WatchExpressionsSidebarPane.js:
1213        (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
1214        (WebInspector.WatchExpressionsSection.prototype._updateHoveredElement):
1215        (WebInspector.WatchExpressionTreeElement.prototype.applyExpression):
1216        * inspector/front-end/WorkerManager.js:
1217        (WebInspector.WorkerManager.prototype._disconnectedFromWorker):
1218        (WebInspector.WorkerTerminatedScreen.prototype.willHide):
1219        * inspector/front-end/WorkersSidebarPane.js:
1220        (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
1221        * inspector/front-end/Workspace.js:
1222        (WebInspector.Workspace.prototype.uiSourceCodes):
1223
12242012-10-02  Vsevolod Vlasov  <vsevik@chromium.org>
1225
1226        Unreviewed r130146 follow-up, added method was not called.
1227
1228        * inspector/front-end/JavaScriptSource.js:
1229        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
1230
12312012-10-02  Yoshifumi Inoue  <yosin@chromium.org>
1232
1233        [Forms] Multiple fields datetime/datetime-local input UI
1234        https://bugs.webkit.org/show_bug.cgi?id=97997
1235
1236        Reviewed by Kent Tamura.
1237
1238        This patch introduces multiple fields "datetime" and "datetime-local"
1239        input UI in DRT. We'll enable these features once we add tests.
1240
1241        No new tests. To reduce size of this patch, other patches add tests
1242        for multiple fields datetime/datetime-local input UI.
1243
1244        Note: Actual outputs of four tests
1245          - fast/forms/datetime/datetime-input-visible-string.html
1246          - fast/forms/datetime/datetime-stepup-stepdown-from-renderer.html
1247          - fast/forms/datetimelocal/datetimelocal-input-visible-string.html
1248          - fast/forms/datetimelocal/datetimelocal-stepup-stepdown-from-renderer.html
1249        are different.
1250
1251        * bindings/generic/RuntimeEnabledFeatures.cpp:
1252        (WebCore):
1253        * css/html.css:
1254        (input::-webkit-datetime-edit-day-field): Added for field appearance.
1255        (input::-webkit-datetime-edit-day-field:focus):  Added to remove focus ring.
1256        * html/DateTimeInputType.cpp:
1257        (WebCore::DateTimeInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
1258        (WebCore::DateTimeInputType::setupLayoutParameters): Added to set layout of multiple fields.
1259        * html/DateTimeInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseDateTimeInputType typedef.
1260        (WebCore::DateTimeInputType::DateTimeInputType): Changed base class name to BaseDateTimeInputType.
1261        (DateTimeInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
1262        * html/DateTimeLocalInputType.cpp:
1263        (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
1264        (WebCore::DateTimeLocalInputType::setupLayoutParameters):  Added to set layout of multiple fields.
1265        * html/DateTimeLocalInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseDateTimeLocalInputType typedef.
1266        (WebCore::DateTimeLocalInputType::DateTimeLocalInputType): Changed base class name to BaseDateTimeLocalInputType.
1267        (DateTimeLocalInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
1268        * html/shadow/DateTimeEditElement.cpp:
1269        (DateTimeEditBuilder): Changed to add member variable m_placeholderForDay.
1270        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed to initialize m_placeholderForDay.
1271        (WebCore::DateTimeEditBuilder::visitField): Changed to support week field.
1272        * html/shadow/DateTimeEditElement.h:
1273        (LayoutParameters): Changed to add placeholderForDay member variable.
1274
12752012-10-02  Vsevolod Vlasov  <vsevik@chromium.org>
1276
1277        Web Inspector: [Regression] Breakpoints restored from storage are not set in debugger.
1278        https://bugs.webkit.org/show_bug.cgi?id=98132
1279
1280        Reviewed by Pavel Feldman.
1281
1282        Added hasDivergedFromVM attribute to UISourceCode for breakpoint
1283        manager to know if breakpoints should be set in the debugger.
1284
1285        * inspector/front-end/BreakpointManager.js:
1286        (WebInspector.BreakpointManager.hasDivergedFromVM):
1287        (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
1288        * inspector/front-end/JavaScriptSource.js:
1289        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
1290        * inspector/front-end/ScriptSnippetModel.js:
1291        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
1292
12932012-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
1294
1295        Web Inspector: NMI make String* instrumentation non intrusive
1296        https://bugs.webkit.org/show_bug.cgi?id=97964
1297
1298        Reviewed by Yury Semikhatsky.
1299
1300        MemoryInstrumentationString.h include was added.
1301
1302        * dom/WebCoreMemoryInstrumentation.h:
1303
13042012-10-02  Vsevolod Vlasov  <vsevik@chromium.org>
1305
1306        Web Inspector: inspector/debugger/script-snippet-model.html fails
1307        https://bugs.webkit.org/show_bug.cgi?id=98129
1308
1309        Reviewed by Pavel Feldman.
1310
1311        * inspector/front-end/ScriptSnippetModel.js:
1312        (WebInspector.ScriptSnippetModel.prototype._runScript):
1313        (WebInspector.ScriptSnippetModel.prototype._printRunScriptResult):
1314
13152012-10-02  Yury Semikhatsky  <yurys@chromium.org>
1316
1317        Remove anonymous namespace from StyleBuilder.cpp for better debugging experience
1318        https://bugs.webkit.org/show_bug.cgi?id=98124
1319
1320        Reviewed by Alexander Pavlov.
1321
1322        * css/StyleBuilder.cpp: removed anonymous namespace.
1323        (WebCore):
1324
13252012-10-02  Nikita Vasilyev  <me@elv1s.ru>
1326
1327        Web Inspector: CSS property names autocomplete: Suggest most used rather than alphabeticaly first
1328        https://bugs.webkit.org/show_bug.cgi?id=96763
1329
1330        Reviewed by Alexander Pavlov.
1331
1332        Implement selection of non-first item in WebInspector.TextPrompt.SuggestBox.
1333
1334        * inspector/front-end/CSSCompletions.js:
1335        (WebInspector.CSSCompletions.Weight): Collect most used CSS property names. Rarely used properties are not presented.
1336        (WebInspector.CSSCompletions.prototype.firstStartsWith): Remove unused function.
1337        (WebInspector.CSSCompletions.prototype.mostUsedOf):
1338        * inspector/front-end/StylesSidebarPane.js:
1339        * inspector/front-end/TextPrompt.js:
1340        (WebInspector.TextPrompt.prototype._completionsReady):
1341        (WebInspector.TextPrompt.prototype.pageDownKeyPressed):
1342        (WebInspector.TextPrompt.SuggestBox): Introduce _length and _selectedIndex to remove unnecessary DOM traversals.
1343            Simplify canShowForSingleItem logic.
1344        (WebInspector.TextPrompt.SuggestBox.prototype._selectClosest): _onPreviousItem and _onNextItem had some logic 
1345            duplication so I replaced them with this method.
1346        (WebInspector.TextPrompt.SuggestBox.prototype.updateSuggestions):
1347        (WebInspector.TextPrompt.SuggestBox.prototype._updateItems):
1348        (WebInspector.TextPrompt.SuggestBox.prototype._selectItem):
1349        (WebInspector.TextPrompt.SuggestBox.prototype._completionsReady):
1350        (WebInspector.TextPrompt.SuggestBox.prototype.upKeyPressed):
1351        (WebInspector.TextPrompt.SuggestBox.prototype.downKeyPressed):
1352        (WebInspector.TextPrompt.SuggestBox.prototype.pageUpKeyPressed):
1353        (WebInspector.TextPrompt.SuggestBox.prototype.pageDownKeyPressed):
1354
13552012-10-02  Keishi Hattori  <keishi@webkit.org>
1356
1357        Web Inspector: Modifications in a shadow tree don't update the Elements panel.
1358        https://bugs.webkit.org/show_bug.cgi?id=97056
1359
1360        Reviewed by Pavel Feldman.
1361
1362        Send characterDataModified event for shadow dom nodes too so they update the elements panel.
1363
1364        Test: inspector/elements/shadow-dom-modify-chardata.html
1365
1366        * dom/CharacterData.cpp:
1367        (WebCore::CharacterData::dispatchModifiedEvent):
1368
13692012-09-20  Vsevolod Vlasov  <vsevik@chromium.org>
1370
1371        Web Inspector: Provide a way to distinguish scripts having sourceURL from standalone scripts.
1372        https://bugs.webkit.org/show_bug.cgi?id=97231
1373
1374        Reviewed by Pavel Feldman.
1375
1376        DebuggerAgent now scans scripts for sourceURL comment and provides
1377        hasSourceURL flag for each non-inline script with such a comment.
1378
1379        * bindings/js/ScriptDebugServer.cpp:
1380        (WebCore::ScriptDebugServer::dispatchDidParseSource):
1381        * inspector/Inspector.json:
1382        * inspector/InspectorDebuggerAgent.cpp:
1383        (WebCore::InspectorDebuggerAgent::didParseSource):
1384        * inspector/front-end/DebuggerModel.js:
1385        (WebInspector.DebuggerModel.prototype._parsedScriptSource):
1386        (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
1387        * inspector/front-end/Script.js:
1388        (WebInspector.Script):
1389
13902012-10-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1391
1392        Unreviewed, rolling out r130129.
1393        http://trac.webkit.org/changeset/130129
1394        https://bugs.webkit.org/show_bug.cgi?id=98125
1395
1396        broke 4 webkit_unit_tests
1397        (MemoryInstrumentationTest.hashMapWith*) (Requested by caseq
1398        on #webkit).
1399
1400        * dom/WebCoreMemoryInstrumentation.h:
1401        * platform/KURL.cpp:
1402        * platform/KURLGoogle.cpp:
1403        * platform/PlatformMemoryInstrumentation.h:
1404
14052012-10-02  Pavel Feldman  <pfeldman@chromium.org>
1406
1407        Web Inspector: move runScript into the snippets model
1408        https://bugs.webkit.org/show_bug.cgi?id=98122
1409
1410        Reviewed by Vsevolod Vlasov.
1411
1412        - Moves runScript into the SnippetsModel
1413        - Drive-by: annotates more RuntimeModel methods
1414        - common, sdk, ui, components, elements, network, resources, network,
1415          scripts, console, timeline, workers, tests
1416          modules now compile with no errors in dedicated compilation mode.
1417
1418        * inspector/compile-front-end.py:
1419        * inspector/front-end/ConsoleView.js:
1420        * inspector/front-end/DatabaseQueryView.js:
1421        * inspector/front-end/RuntimeModel.js:
1422        (WebInspector.RuntimeModel.prototype.completionsForTextPrompt):
1423        * inspector/front-end/ScriptSnippetModel.js:
1424        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
1425        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
1426        (WebInspector.ScriptSnippetModel.prototype._runScript):
1427        * inspector/front-end/StylesSidebarPane.js:
1428        * inspector/front-end/TextPrompt.js:
1429        (WebInspector.TextPrompt.prototype.complete):
1430        * inspector/front-end/externs.js:
1431
14322012-10-02  Yoshifumi Inoue  <yosin@chromium.org>
1433
1434        [Forms] Adding DateTimeDayFieldElement for multiple fields "date", "datetime", "datetime-local" input UI
1435        https://bugs.webkit.org/show_bug.cgi?id=97998
1436
1437        Reviewed by Kent Tamura.
1438
1439        This patch introduces DateTimeDayFieldElement class for implementing
1440        multiple fields "date", "datetime", and "datetime-local" input UI.
1441
1442        No new tests. This patch doesn't change behavior.
1443
1444        * html/shadow/DateTimeFieldElements.cpp:
1445        (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Added.
1446        (WebCore::DateTimeDayFieldElement::create): Added.
1447        (WebCore::DateTimeDayFieldElement::populateDateTimeFieldsState): Added.
1448        (WebCore::DateTimeDayFieldElement::setValueAsDate): Added.
1449        (WebCore::DateTimeDayFieldElement::setValueAsDateTimeFieldsState): Added.
1450        * html/shadow/DateTimeFieldElements.h:
1451        (DateTimeDayFieldElement): Added.
1452
14532012-10-02  Yoshifumi Inoue  <yosin@chromium.org>
1454
1455        LocalzeNone::dateFormat() should have right date format.
1456        https://bugs.webkit.org/show_bug.cgi?id=98123
1457
1458        Reviewed by Kent Tamura.
1459
1460        This patch changes date format in LocaleNone for multiple fields
1461        date/datetime/datetime-local input UI.
1462
1463        No new tests. Other patch for ports which use LocaleNone and multiple
1464        fields date/time input UI will have tests.
1465
1466        * platform/text/LocaleNone.cpp:
1467        (WebCore::LocaleNone::dateFormat): Changed month specifier to "MM".
1468
14692012-10-02  Pavel Feldman  <pfeldman@chromium.org>
1470
1471        Web Inspector: move cookies model out of the items view (into sdk component).
1472        https://bugs.webkit.org/show_bug.cgi?id=98022
1473
1474        Reviewed by Yury Semikhatsky.
1475
1476        Otherwise Audits require code that belongs to the resources component.
1477
1478        * inspector/front-end/CookieItemsView.js:
1479        * inspector/front-end/CookieParser.js:
1480        (WebInspector.Cookies.getCookiesAsync):
1481        (WebInspector.Cookies.buildCookiesFromString):
1482        (WebInspector.Cookies.cookieMatchesResourceURL):
1483        (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
1484
14852012-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
1486
1487        Web Inspector: NMI make String* instrumentation non intrusive
1488        https://bugs.webkit.org/show_bug.cgi?id=97964
1489
1490        Reviewed by Yury Semikhatsky.
1491
1492        MemoryInstrumentationString.h include was added.
1493
1494        * dom/WebCoreMemoryInstrumentation.h:
1495
14962012-10-01  Brady Eidson  <beidson@apple.com>
1497
1498        Remove the Safari 2 -> Safari 3 icon database import code.
1499        https://bugs.webkit.org/show_bug.cgi?id=98113
1500
1501        Reviewed by Maciej Stachowiak.
1502
1503        Remove notions of "importing an old database format" from the IconDatabase.
1504
1505        No new tests - Feature removed, and no previous tests covered it.
1506
1507        * loader/icon/IconDatabase.cpp:
1508        (DefaultIconDatabaseClient):
1509        (WebCore::IconDatabase::IconDatabase):
1510        (WebCore):
1511        (WebCore::IconDatabase::iconDatabaseSyncThread):
1512        * loader/icon/IconDatabase.h:
1513        (IconDatabase):
1514        * loader/icon/IconDatabaseBase.h:
1515        * loader/icon/IconDatabaseClient.h:
1516        * WebCore.exp.in:
1517
15182012-10-01  Yoshifumi Inoue  <yosin@chromium.org>
1519
1520        Adding Localizer::dateFormat() for multiple fields date/datetime input UI
1521        https://bugs.webkit.org/show_bug.cgi?id=98109
1522
1523        Reviewed by Kent Tamura.
1524
1525        This patch introduces Localizer::dateFormat() function for multiple
1526        fields date/datetime/datetime-local input UI inside ENABLE_INPUT_MULTIPLE_FIELDS_UI.
1527
1528        We'll have platform specific implementations in LocaleICU, LocaleMac,
1529        and LocaleWin.
1530
1531        No new tests. Other patches will add tests for this change.
1532
1533        * platform/text/LocaleICU.cpp:
1534        (WebCore::LocaleICU::dateFormat): Added a stub.
1535        * platform/text/LocaleICU.h:
1536        (LocaleICU):  Changed to add a declaration of dateFormat().
1537        * platform/text/LocaleNone.cpp:
1538        (LocaleNone):  Changed to add a declaration of dateFormat().
1539        (WebCore::LocaleNone::dateFormat): Added.
1540        * platform/text/LocaleWin.cpp:
1541        (WebCore::LocaleWin::dateFormat): Added.
1542        * platform/text/LocaleWin.h:
1543        (LocaleWin): Changed to add a declaration of dateFormat().
1544        * platform/text/Localizer.h: Updates Unicode TR35 URI in a comment.
1545        (Localizer): Changed to add a declaration of dateFormat().
1546        * platform/text/mac/LocaleMac.h:
1547        (LocaleMac): Changed to add a declaration of dateFormat().
1548        * platform/text/mac/LocaleMac.mm:
1549        (WebCore::LocaleMac::dateFormat): Added a stub.
1550
15512012-10-01  Adam Barth  <abarth@webkit.org>
1552
1553        Unreviewed. Fix ASSERT introduced in
1554        http://trac.webkit.org/changeset/130103. It turns out this case can
1555        occur. This patch causes us to handle it the same way we did
1556        previously.
1557
1558        * bindings/v8/IntrusiveDOMWrapperMap.h:
1559        (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
1560
15612012-10-01  Shinya Kawanaka  <shinyak@chromium.org>
1562
1563        [Refactoring] DOMSelection should not use shadowAncestorNode
1564        https://bugs.webkit.org/show_bug.cgi?id=97872
1565
1566        Reviewed by Ryosuke Niwa.
1567
1568        Since Node::shadowAncestorNode is deprecated, it should not be used.
1569        Here, we should use TreeScope::ancestorInThisScope instead.
1570
1571        No new tests, covered by existing test.
1572
1573        * page/DOMSelection.cpp:
1574        (WebCore::selectionShadowAncestor):
1575
15762012-10-01  Tim Horton  <timothy_horton@apple.com>
1577
1578        ScrollView::setScrollPosition is overridden by FrameView, but is not virtual
1579        https://bugs.webkit.org/show_bug.cgi?id=98064
1580
1581        Reviewed by Simon Fraser.
1582
1583        Virtualize ScrollView::setScrollPosition, and override it in FrameView.
1584
1585        No new tests, this causes subtle behavior differences in currently-untestable code.
1586
1587        * page/FrameView.h:
1588        (FrameView):
1589        * platform/ScrollView.h:
1590        (ScrollView):
1591
15922012-10-01  David Barton  <dbarton@mathscribe.com>
1593
1594        Restore WebCore/ChangeLog lines deleted in r130097
1595        https://bugs.webkit.org/show_bug.cgi?id=98112
1596
1597        Reviewed by Eric Seidel.
1598
15992012-10-01  Shinya Kawanaka  <shinyak@chromium.org>
1600
1601        TreeScope should not use node->shadowAncetorNode()
1602        https://bugs.webkit.org/show_bug.cgi?id=97869
1603
1604        Reviewed by Ryosuke Niwa.
1605
1606        TreeScope uses shadowAncestorNode(), but we should use shadowHost() here. shadowAncestorNode() is deprecated.
1607
1608        No new tests, simple refactoring.
1609
1610        * dom/TreeScope.cpp:
1611        (WebCore::TreeScope::ancestorInThisScope):
1612
16132012-10-01  Pavel Feldman  <pfeldman@chromium.org>
1614
1615        Web Inspector: move completions calculation into RuntimeModel (part 1)
1616        https://bugs.webkit.org/show_bug.cgi?id=98053
1617
1618        Reviewed by Yury Semikhatsky.
1619
1620        - moves current execution context state into runtime model
1621        - moves completionsForTextPrompt and its private helpers into runtime model
1622        - makes text prompt use generic expression stop characters by default
1623
1624        * inspector/front-end/ConsoleView.js:
1625        (WebInspector.ConsoleView.prototype._frameChanged):
1626        (WebInspector.ConsoleView.prototype._appendContextOption):
1627        (WebInspector.ConsoleView.prototype._contextChanged):
1628        * inspector/front-end/DatabaseQueryView.js:
1629        (WebInspector.DatabaseQueryView):
1630        * inspector/front-end/ObjectPropertiesSection.js:
1631        (WebInspector.ObjectPropertyPrompt):
1632        * inspector/front-end/RuntimeModel.js:
1633        (WebInspector.RuntimeModel.prototype.setCurrentExecutionContext):
1634        (WebInspector.RuntimeModel.prototype.currentExecutionContext):
1635        (WebInspector.RuntimeModel.prototype._executionContextCreated):
1636        (WebInspector.RuntimeModel.prototype.evaluate.evalCallback):
1637        (WebInspector.RuntimeModel.prototype.evaluate):
1638        (WebInspector.RuntimeModel.prototype.completionsForTextPrompt):
1639        (WebInspector.RuntimeModel.prototype._completionsForExpression.evaluated.getCompletions):
1640        (WebInspector.RuntimeModel.prototype._completionsForExpression.evaluated):
1641        (WebInspector.RuntimeModel.prototype._completionsForExpression.receivedPropertyNamesFromEval):
1642        (WebInspector.RuntimeModel.prototype._completionsForExpression.receivedPropertyNames):
1643        (WebInspector.RuntimeModel.prototype._completionsForExpression):
1644        (WebInspector.RuntimeModel.prototype._reportCompletions):
1645        * inspector/front-end/TextPrompt.js:
1646        (WebInspector.TextPrompt):
1647        * inspector/front-end/WatchExpressionsSidebarPane.js:
1648        (WebInspector.WatchExpressionsSection.prototype.update):
1649
16502012-10-01  Dongwoo Joshua Im  <dw.im@samsung.com>
1651
1652        The static function 'deleteFileSystem' in the LocalFileSystem.cpp should have another name.
1653        https://bugs.webkit.org/show_bug.cgi?id=98106
1654
1655        Reviewed by Yuta Kitamura.
1656
1657        A build error occurs because there are two functions which have same name in the LocalFileSystem.cpp file.
1658        One is member function of the class, and the other is a static function which is called by the member function.
1659        So, I've tried to change the name of the static function from 'deleteFileSystem' to 'performDeleteFileSystem'.
1660
1661        No new functionality, no new test.
1662
1663        * Modules/filesystem/LocalFileSystem.cpp:
1664        (WebCore::performDeleteFileSystem): The name of function is changed from 'deleteFileSystem'.
1665        (WebCore::LocalFileSystem::requestFileSystem):
1666        (WebCore::LocalFileSystem::deleteFileSystem):
1667
16682012-10-01  Yoshifumi Inoue  <yosin@chromium.org>
1669
1670        Week specifiers defined in DateTimeFormat class are wrong.
1671        https://bugs.webkit.org/show_bug.cgi?id=98104
1672
1673        Reviewed by Kent Tamura.
1674
1675        This patch changes week of year and week of month format specifiers
1676        defined in DateTimeFormat class to match with Unicode technical
1677        standard 35, LDML, Locale Data Markup Language, (http://www.unicode.org/reports/tr35/).
1678
1679        No new tests. Following existing tests cover this change:
1680          - fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic.html
1681          - fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes.html
1682          - fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements.html
1683          - fast/forms/month-multiple-fields/month-multiple-fields-appearance-style.html
1684
1685        * html/WeekInputType.cpp:
1686        (WebCore::WeekInputType::setupLayoutParameters): Changed to use 'w' instead of 'W'.
1687        * platform/text/DateTimeFormat.cpp: Changed elements in lowerCaseToFieldTypeMap and upperCaseToFieldTypeMap.
1688        * platform/text/DateTimeFormat.h: Changed FieldTypeWeekOfMonth to 'W' and FieldTypeWeekOfYear to 'w'.
1689
16902012-10-01  Glenn Adams  <glenn@skynav.com>
1691
1692        Add other <string> typed tokens to YYDEBUG token output
1693        https://bugs.webkit.org/show_bug.cgi?id=98102
1694
1695        Reviewed by Simon Fraser.
1696
1697        Add other <string> typed tokens to YYPRINT macro expansion. Minor cleanup of cast.
1698
1699        No new tests. For CSS lexer/parser debug usage only.
1700
1701        * css/CSSGrammar.y:
1702        Add other <string> typed tokens to YYPRINT macro expansion.
1703        Change C-type cast to function-call style cast (per darin).
1704
17052012-10-01  Keishi Hattori  <keishi@webkit.org>
1706
1707        Calendar picker should use zero as default step base
1708        https://bugs.webkit.org/show_bug.cgi?id=97976
1709
1710        Reviewed by Kent Tamura.
1711
1712        Calendar picker should be using zero as default step base for input type=date.
1713        The spec says to use zero unless specified otherwise.
1714        Since input type=week has another default step base, I am adding step base
1715        to DateTimeChooserParameters.
1716
1717        Test: fast/forms/date/calendar-picker-with-step.html
1718
1719        * Resources/pagepopups/calendarPicker.js:
1720        (handleArgumentsTimeout):
1721        (CalendarPicker):
1722        (CalendarPicker.prototype.stepMismatch): Use the new this.stepBase.
1723        * html/shadow/PickerIndicatorElement.cpp:
1724        (WebCore::PickerIndicatorElement::openPopup): Gets step base from step range.
1725        * platform/DateTimeChooser.h:
1726        (DateTimeChooserParameters): Added stepBase.
1727
17282012-10-01  Tony Chang  <tony@chromium.org>
1729
1730        flexbox does wrong baseline item alignment in columns
1731        https://bugs.webkit.org/show_bug.cgi?id=97948
1732
1733        Reviewed by Ojan Vafai.
1734
1735        For columns, baseline alignment should just be flex-start.  We were previously
1736        moving the logical left edge by the ascent.
1737
1738        Test: css3/flexbox/align-baseline.html
1739
1740        * rendering/RenderFlexibleBox.cpp:
1741        (WebCore::RenderFlexibleBox::alignmentForChild): Map baseline to flex-start for orthogonal children.
1742        (WebCore::RenderFlexibleBox::alignChildren): Add FIXME for bug in baseline alignment.
1743        * rendering/RenderFlexibleBox.h:
1744
17452012-10-01  Keishi Hattori  <keishi@webkit.org>
1746
1747        Rename CalendarPickerElement to PickerIndicatorElement
1748        https://bugs.webkit.org/show_bug.cgi?id=98096
1749
1750        Reviewed by Kent Tamura.
1751
1752        Renaming CalendarPickerElement to PickerIndicatorElement because we want to use it for other input types like time, week, month, datetime.
1753
1754        No new tests. Just a rename.
1755
1756        * GNUmakefile.list.am:
1757        * WebCore.gypi:
1758        * html/DateInputType.cpp:
1759        (WebCore::DateInputType::createShadowSubtree):
1760        * html/DateInputType.h:
1761        (WebCore):
1762        (DateInputType):
1763        * html/shadow/PickerIndicatorElement.cpp: Renamed from Source/WebCore/html/shadow/CalendarPickerElement.cpp.
1764        (WebCore):
1765        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
1766        (WebCore::PickerIndicatorElement::create):
1767        (WebCore::PickerIndicatorElement::~PickerIndicatorElement):
1768        (WebCore::PickerIndicatorElement::createRenderer):
1769        (WebCore::PickerIndicatorElement::hostInput):
1770        (WebCore::PickerIndicatorElement::defaultEventHandler):
1771        (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
1772        (WebCore::PickerIndicatorElement::didChooseValue):
1773        (WebCore::PickerIndicatorElement::didEndChooser):
1774        (WebCore::PickerIndicatorElement::openPopup):
1775        (WebCore::PickerIndicatorElement::closePopup):
1776        (WebCore::PickerIndicatorElement::detach):
1777        * html/shadow/PickerIndicatorElement.h: Renamed from Source/WebCore/html/shadow/CalendarPickerElement.h.
1778        (WebCore):
1779        (PickerIndicatorElement):
1780
17812012-10-01  Ojan Vafai  <ojan@chromium.org>
1782
1783        Unreviewed, rolling out r130079.
1784        http://trac.webkit.org/changeset/130079
1785        https://bugs.webkit.org/show_bug.cgi?id=95866
1786
1787        Broke the chomium windows compile.
1788
1789        * css/CSSFontFace.cpp:
1790        (WebCore::CSSFontFace::getFontData):
1791        * css/CSSFontFace.h:
1792        (CSSFontFace):
1793        * css/CSSFontFaceSource.cpp:
1794        (WebCore::CSSFontFaceSource::getFontData):
1795        * css/CSSFontFaceSource.h:
1796        (CSSFontFaceSource):
1797        * css/CSSFontSelector.cpp:
1798        (WebCore::fontDataForGenericFamily):
1799        (WebCore::CSSFontSelector::getFontData):
1800        * css/CSSFontSelector.h:
1801        * css/CSSSegmentedFontFace.cpp:
1802        (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading):
1803        (WebCore::CSSSegmentedFontFace::getFontData):
1804        * css/CSSSegmentedFontFace.h:
1805        (CSSSegmentedFontFace):
1806        * dom/Document.cpp:
1807        (WebCore::Document::registerCustomFont):
1808        * dom/Document.h:
1809        (Document):
1810        * platform/graphics/Font.h:
1811        (WebCore):
1812        * platform/graphics/FontCache.cpp:
1813        (WebCore):
1814        (WebCore::FontCache::getCachedFontData):
1815        (WebCore::FontCache::getNonRetainedLastResortFallbackFont):
1816        (WebCore::FontCache::releaseFontData):
1817        (WebCore::FontCache::purgeInactiveFontData):
1818        (WebCore::FontCache::getFontData):
1819        * platform/graphics/FontCache.h:
1820        (FontCache):
1821        * platform/graphics/FontData.h:
1822        * platform/graphics/FontFallbackList.cpp:
1823        (WebCore::FontFallbackList::releaseFontData):
1824        (WebCore::FontFallbackList::fontDataAt):
1825        (WebCore::FontFallbackList::setPlatformFont):
1826        * platform/graphics/FontFallbackList.h:
1827        (FontFallbackList):
1828        * platform/graphics/FontFastPath.cpp:
1829        (WebCore::Font::glyphDataAndPageForCharacter):
1830        * platform/graphics/FontSelector.h:
1831        (FontSelector):
1832        * platform/graphics/GlyphPageTreeNode.cpp:
1833        (WebCore::GlyphPageTreeNode::initializePage):
1834        * platform/graphics/SegmentedFontData.cpp:
1835        (WebCore::SegmentedFontData::fontDataForCharacter):
1836        * platform/graphics/SegmentedFontData.h:
1837        (WebCore::FontDataRange::FontDataRange):
1838        (WebCore::FontDataRange::fontData):
1839        (FontDataRange):
1840        (SegmentedFontData):
1841        * platform/graphics/SimpleFontData.cpp:
1842        (WebCore::SimpleFontData::verticalRightOrientationFontData):
1843        (WebCore::SimpleFontData::uprightOrientationFontData):
1844        (WebCore::SimpleFontData::brokenIdeographFontData):
1845        * platform/graphics/SimpleFontData.h:
1846        (SimpleFontData):
1847        (WebCore::SimpleFontData::variantFontData):
1848        (DerivedFontData):
1849        * platform/graphics/chromium/FontCacheAndroid.cpp:
1850        (WebCore::FontCache::getFontDataForCharacters):
1851        (WebCore::FontCache::getSimilarFontPlatformData):
1852        (WebCore::FontCache::getLastResortFallbackFont):
1853        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
1854        (WebCore::FontCache::fontDataFromDescriptionAndLogFont):
1855        (GetLastResortFallbackFontProcData):
1856        (WebCore::FontCache::getFontDataForCharacters):
1857        (WebCore::FontCache::getSimilarFontPlatformData):
1858        (WebCore::FontCache::getLastResortFallbackFont):
1859        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
1860        (WebCore::SimpleFontData::createScaledFontData):
1861        (WebCore::SimpleFontData::smallCapsFontData):
1862        (WebCore::SimpleFontData::emphasisMarkFontData):
1863        * platform/graphics/freetype/FontCacheFreeType.cpp:
1864        (WebCore::FontCache::getFontDataForCharacters):
1865        (WebCore::FontCache::getSimilarFontPlatformData):
1866        (WebCore::FontCache::getLastResortFallbackFont):
1867        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
1868        (WebCore::SimpleFontData::createScaledFontData):
1869        (WebCore::SimpleFontData::smallCapsFontData):
1870        (WebCore::SimpleFontData::emphasisMarkFontData):
1871        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
1872        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
1873        * platform/graphics/mac/FontCacheMac.mm:
1874        (WebCore::FontCache::getFontDataForCharacters):
1875        (WebCore::FontCache::getSimilarFontPlatformData):
1876        (WebCore::FontCache::getLastResortFallbackFont):
1877        * platform/graphics/mac/FontComplexTextMac.cpp:
1878        (WebCore::Font::fontDataForCombiningCharacterSequence):
1879        * platform/graphics/mac/SimpleFontDataMac.mm:
1880        (WebCore::SimpleFontData::platformDestroy):
1881        (WebCore::SimpleFontData::createScaledFontData):
1882        (WebCore::SimpleFontData::smallCapsFontData):
1883        (WebCore::SimpleFontData::emphasisMarkFontData):
1884        * platform/graphics/pango/FontCachePango.cpp:
1885        (WebCore::FontCache::getFontDataForCharacters):
1886        (WebCore::FontCache::getSimilarFontPlatformData):
1887        (WebCore::FontCache::getLastResortFallbackFont):
1888        * platform/graphics/pango/SimpleFontDataPango.cpp:
1889        (WebCore::SimpleFontData::createScaledFontData):
1890        (WebCore::SimpleFontData::smallCapsFontData):
1891        (WebCore::SimpleFontData::emphasisMarkFontData):
1892        * platform/graphics/qt/FontCacheQt.cpp:
1893        (WebCore::FontCache::getFontDataForCharacters):
1894        (WebCore::FontCache::getSimilarFontPlatformData):
1895        (WebCore::FontCache::getLastResortFallbackFont):
1896        * platform/graphics/qt/SimpleFontDataQt.cpp:
1897        (WebCore::SimpleFontData::createScaledFontData):
1898        (WebCore::SimpleFontData::smallCapsFontData):
1899        (WebCore::SimpleFontData::emphasisMarkFontData):
1900        * platform/graphics/skia/FontCacheSkia.cpp:
1901        (WebCore::FontCache::getFontDataForCharacters):
1902        (WebCore::FontCache::getSimilarFontPlatformData):
1903        (WebCore::FontCache::getLastResortFallbackFont):
1904        * platform/graphics/skia/SimpleFontDataSkia.cpp:
1905        (WebCore::SimpleFontData::createScaledFontData):
1906        (WebCore::SimpleFontData::smallCapsFontData):
1907        (WebCore::SimpleFontData::emphasisMarkFontData):
1908        * platform/graphics/win/FontCacheWin.cpp:
1909        (WebCore::FontCache::getFontDataForCharacters):
1910        (WebCore::FontCache::getSimilarFontPlatformData):
1911        (WebCore::FontCache::fontDataFromDescriptionAndLogFont):
1912        (WebCore::FontCache::getLastResortFallbackFont):
1913        * platform/graphics/win/SimpleFontDataWin.cpp:
1914        (WebCore::SimpleFontData::createScaledFontData):
1915        (WebCore::SimpleFontData::smallCapsFontData):
1916        (WebCore::SimpleFontData::emphasisMarkFontData):
1917        * platform/graphics/wince/FontCacheWinCE.cpp:
1918        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
1919        (WebCore::SimpleFontData::createScaledFontData):
1920        (WebCore::SimpleFontData::smallCapsFontData):
1921        (WebCore::SimpleFontData::emphasisMarkFontData):
1922        * platform/graphics/wx/FontCacheWx.cpp:
1923        (WebCore::FontCache::getFontDataForCharacters):
1924        (WebCore::FontCache::getSimilarFontPlatformData):
1925        (WebCore::FontCache::getLastResortFallbackFont):
1926        * platform/graphics/wx/SimpleFontDataWx.cpp:
1927        (WebCore::SimpleFontData::createScaledFontData):
1928        (WebCore::SimpleFontData::smallCapsFontData):
1929        (WebCore::SimpleFontData::emphasisMarkFontData):
1930
19312012-10-01  Beth Dakin  <bdakin@apple.com>
1932
1933        Speculative GTK build fix after http://trac.webkit.org/changeset/130091
1934
1935        * GNUmakefile.list.am:
1936
19372012-10-01  Adam Barth  <abarth@webkit.org>
1938
1939        [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-traverse gets 4% faster)
1940        https://bugs.webkit.org/show_bug.cgi?id=97974
1941
1942        Reviewed by Kentaro Hara.
1943
1944        Previously, we stored a pointer to a handle to a wrapper in Node. That
1945        is an extra layer of indirection that slows down finding the wrapper
1946        for the node. A handle is just a pointer, so we might as we just store
1947        the handle in the Node directly. That speeds up dom-traverse by about 4%.
1948
1949        We were using the extra layer of indirection in IntrusiveDOMWrapperMap
1950        to make removal more efficient. Rather than using a chunked table, we
1951        now use a HashSet, which also lets us remove elements quickly.
1952
1953        * bindings/v8/IntrusiveDOMWrapperMap.h:
1954        (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
1955        (WebCore::IntrusiveDOMWrapperMap::get):
1956        (WebCore::IntrusiveDOMWrapperMap::set):
1957        (WebCore::IntrusiveDOMWrapperMap::contains):
1958        (WebCore::IntrusiveDOMWrapperMap::visit):
1959        (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
1960        (WebCore::IntrusiveDOMWrapperMap::clear):
1961        * bindings/v8/ScriptWrappable.h:
1962        (WebCore::ScriptWrappable::ScriptWrappable):
1963        (WebCore::ScriptWrappable::wrapper):
1964        (WebCore::ScriptWrappable::setWrapper):
1965        (WebCore::ScriptWrappable::disposeWrapper):
1966        (WebCore::ScriptWrappable::reportMemoryUsage):
1967        (ScriptWrappable):
1968        * bindings/v8/V8DOMWrapper.h:
1969        (WebCore::V8DOMWrapper::getCachedWrapper):
1970
19712012-10-01  Ojan Vafai  <ojan@chromium.org>
1972
1973        Unreviewed, rolling out r130062.
1974        http://trac.webkit.org/changeset/130062
1975        https://bugs.webkit.org/show_bug.cgi?id=98001
1976
1977        Causes a ton of gtest failures on the chromium bots.
1978
1979        * platform/chromium/LanguageChromium.cpp:
1980        (WebCore::platformLanguage):
1981
19822012-10-01  David Barton  <dbarton@mathscribe.com>
1983
1984        [MathML] Baseline wrong for fractions or munder/mover with padding
1985        https://bugs.webkit.org/show_bug.cgi?id=97990
1986
1987        Reviewed by Eric Seidel.
1988
1989        We include any border or padding in our baseline computation. We also take this opportunity
1990        to quit adding extra left & right padding to numerators and denominators, making our output
1991        tighter and also more compatible with Firefox and TeX, since we are rebaselining some
1992        fraction pixel tests now anyway.
1993
1994        Tests added to LayoutTests/mathml/presentation/{over,row-alignment}.xhtml
1995
1996        * rendering/mathml/RenderMathMLFraction.cpp:
1997        (WebCore::RenderMathMLFraction::fixChildStyle):
1998        (WebCore::RenderMathMLFraction::paint):
1999        (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
2000        * rendering/mathml/RenderMathMLUnderOver.cpp:
2001        (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
2002
20032012-10-01  Joshua Bell  <jsbell@chromium.org>
2004
2005        IndexedDB: Fire error rather than raising on request creation if transaction aborts asynchronously.
2006        https://bugs.webkit.org/show_bug.cgi?id=93054
2007
2008        Reviewed by Tony Chang.
2009
2010        All IDB data operations are asynchronous, producing IDBRequest objects. This was implemented
2011        by passing all data from the front-end to the back-end synchronously, and synchronously
2012        returning an exception code back if the request was invalid. Previous changes have moved
2013        request validation to the front-end except for the case of the back-end transaction having
2014        asynchronously aborted in the mean time.
2015
2016        To eliminate that case (which would allow front-end to back-end communication to be
2017        asynchronous in multi-process ports), change from returning an exception code to relying on
2018        the front-end to abort the request when the abort event finally arrives.
2019
2020        The difference would be noticeable in scripts - in a multi-process environment:
2021
2022        var request1 = store.get(0);
2023        request1.onerror = errorHandler; // (A)
2024        // (B)
2025        var request2 = store.get(0); // (C)
2026        request2.onerror = errorHandler; // (D)
2027
2028        If the transaction back-end were to asynchronously abort at exactly point (B), then prior to
2029        this patch an exception would be thrown at (C). With this patch, no exception but (D) would
2030        fire, same as (A).
2031
2032        The back-end explicitly fires an error callback as well, as intermediate layers may rely on
2033        this to stop tracking the pending callback.
2034
2035        No new layout tests - change is not observable in single-process ports.
2036        Added webkit_unit_test IDBRequestTest.AbortErrorAfterAbort to verify that IDBRequest
2037        is resilient to this pattern, but it was previous.
2038
2039        * Modules/indexeddb/IDBCursor.cpp:
2040        (WebCore::IDBCursor::advance): Back end should never fail a request.
2041        (WebCore::IDBCursor::continueFunction): Ditto.
2042        (WebCore::IDBCursor::deleteFunction): Ditto, and also move "is key cursor" test
2043        here from back-end.
2044        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
2045        (WebCore::IDBCursorBackendImpl::continueFunction): Change from EC to firing error.
2046        (WebCore::IDBCursorBackendImpl::advance): Ditto.
2047        (WebCore::IDBCursorBackendImpl::deleteFunction): Ditto, and remove test moved to FE.
2048        (WebCore::IDBCursorBackendImpl::prefetchContinue): Ditto.
2049        * Modules/indexeddb/IDBDatabaseError.cpp:
2050        (WebCore::IDBDatabaseError::create): Add overload that looks up message via code.
2051        (WebCore::IDBDatabaseError::IDBDatabaseError): Look up message via exception table.
2052        * Modules/indexeddb/IDBDatabaseException.h: Add getErrorDescription.
2053        * Modules/indexeddb/IDBDatabaseException.cpp: Implementation of getErrorDescription.
2054        * Modules/indexeddb/IDBIndex.cpp:
2055        (WebCore::IDBIndex::openCursor): Back end should never fail a request.
2056        (WebCore::IDBIndex::count): Ditto.
2057        (WebCore::IDBIndex::openKeyCursor): Ditto.
2058        (WebCore::IDBIndex::get): Ditto.
2059        (WebCore::IDBIndex::getKey): Ditto.
2060        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
2061        (WebCore::IDBIndexBackendImpl::openCursor): Change from EC to firing error.
2062        (WebCore::IDBIndexBackendImpl::openKeyCursor): Ditto.
2063        (WebCore::IDBIndexBackendImpl::count): Ditto.
2064        (WebCore::IDBIndexBackendImpl::get): Ditto.
2065        (WebCore::IDBIndexBackendImpl::getKey): Ditto.
2066        * Modules/indexeddb/IDBObjectStore.cpp:
2067        (WebCore::IDBObjectStore::get): Back end should never fail a request.
2068        (WebCore::IDBObjectStore::put): Ditto.
2069        (WebCore::IDBObjectStore::deleteFunction): Ditto.
2070        (WebCore::IDBObjectStore::clear): Ditto.
2071        (WebCore): Ditto.
2072        (WebCore::IDBObjectStore::openCursor): Ditto.
2073        (WebCore::IDBObjectStore::count): Ditto.
2074        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2075        (WebCore::IDBObjectStoreBackendImpl::get): Change from EC to firing error.
2076        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto.
2077        (WebCore):
2078        (WebCore::IDBObjectStoreBackendImpl::deleteFunction): Ditto.
2079        (WebCore::IDBObjectStoreBackendImpl::clear): Ditto.
2080        (WebCore::IDBObjectStoreBackendImpl::openCursor): Ditto.
2081        (WebCore::IDBObjectStoreBackendImpl::count): Ditto.
2082
20832012-10-01  Ryosuke Niwa  <rniwa@webkit.org>
2084
2085        Build fix. Clearly, these objects could be instantiated in worker threads.
2086        Not sure why my patch asserted that we're in the main thread.
2087
2088        * dom/ContainerNode.h:
2089        (WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion):
2090        (WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion):
2091
20922012-10-01  Beth Dakin  <bdakin@apple.com>
2093
2094        https://bugs.webkit.org/show_bug.cgi?id=97365
2095        ScrollingTreeState needs to be a tree of nodes
2096
2097        Reviewed by Simon Fraser.
2098
2099        This patch should not change any behavior.
2100
2101        Prior to this patch, ScrollingTreeState attempted to contain all of 
2102        the state information needed for the whole scrolling tree in one 
2103        object. But in the future when there are multiple nodes in the 
2104        scrolling tree, a single state object will not be sufficient. 
2105        ScrollingState should also be represented by a tree. This patch makes 
2106        scrolling state into a tree. The old ScrollingTreeState class has 
2107        become the ScrollingStateScrollingNode class since the majority of 
2108        the class represents scroll state that is specific to ScrollableAreas 
2109        and will not be applicable to fixed or sticky layers.
2110
2111        Some new files and some moved files.
2112        * WebCore.xcodeproj/project.pbxproj:
2113
2114        Everything that used to refer to the ScrollingTreeState should now 
2115        refer to the ScrollingStateTree instead. Right now, all of this code 
2116        continues to deal with only the root node of the tree. In the future, 
2117        it will have to deal with all of the nodes.
2118        * page/scrolling/ScrollingCoordinator.cpp:
2119        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
2120        (WebCore::ScrollingCoordinator::pageDestroyed):
2121        (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
2122        (WebCore::ScrollingCoordinator::setScrollLayer):
2123        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
2124        (WebCore::ScrollingCoordinator::setScrollParameters):
2125        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
2126        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
2127        (WebCore::ScrollingCoordinator::scheduleTreeStateCommit):
2128        (WebCore::ScrollingCoordinator::scrollingStateTreeCommitterTimerFired):
2129        (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
2130        (WebCore::ScrollingCoordinator::commitTreeState):
2131        * page/scrolling/ScrollingCoordinator.h:
2132        (WebCore):
2133        (ScrollingCoordinator):
2134
2135        This is a new abstract base class for the nodes in the 
2136        ScrollingStateTree.
2137        * page/scrolling/ScrollingStateNode.cpp: Added.
2138        (WebCore):
2139        (WebCore::ScrollingStateNode::ScrollingStateNode):
2140        (WebCore::ScrollingStateNode::~ScrollingStateNode):
2141        (WebCore::ScrollingStateNode::appendChild):
2142        (WebCore::ScrollingStateNode::cloneChildNodes):
2143        (WebCore::ScrollingStateNode::traverseNext):
2144        * page/scrolling/ScrollingStateNode.h: Added.
2145        (WebCore):
2146        (ScrollingStateNode):
2147        (WebCore::ScrollingStateNode::scrollLayerDidChange):
2148        (WebCore::ScrollingStateNode::setScrollLayerDidChange):
2149        (WebCore::ScrollingStateNode::scrollingStateTree):
2150        (WebCore::ScrollingStateNode::parent):
2151        (WebCore::ScrollingStateNode::firstChild):
2152        (WebCore::ScrollingStateNode::nextSibling):
2153        (WebCore::ScrollingStateNode::setParent):
2154        (WebCore::ScrollingStateNode::setFirstChild):
2155        (WebCore::ScrollingStateNode::setNextSibling):
2156        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2157        * page/scrolling/mac/ScrollingStateNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeStateMac.mm.
2158        (WebCore::ScrollingStateNode::platformScrollLayer):
2159        (WebCore::ScrollingStateNode::setScrollLayer):
2160        (WebCore):
2161
2162        Right now, the ScrollingStateScrollingNode is the only type of 
2163        ScrollingStateNode. In the future there will be, for example, 
2164        ScrollingStateFixedNodes that will have a different set of state 
2165        information to keep track of.
2166        * page/scrolling/ScrollingStateScrollingNode.cpp: Copied from page/scrolling/ScrollingTreeState.cpp.
2167        (WebCore::ScrollingStateScrollingNode::create):
2168        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
2169        (WebCore):
2170        (WebCore::ScrollingStateScrollingNode::~ScrollingStateScrollingNode):
2171        (WebCore::ScrollingStateScrollingNode::cloneNode):
2172        (WebCore::ScrollingStateScrollingNode::setViewportRect):
2173        (WebCore::ScrollingStateScrollingNode::setContentsSize):
2174        (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
2175        (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
2176        (WebCore::ScrollingStateScrollingNode::setShouldUpdateScrollLayerPositionOnMainThread):
2177        (WebCore::ScrollingStateScrollingNode::setHorizontalScrollElasticity):
2178        (WebCore::ScrollingStateScrollingNode::setVerticalScrollElasticity):
2179        (WebCore::ScrollingStateScrollingNode::setHasEnabledHorizontalScrollbar):
2180        (WebCore::ScrollingStateScrollingNode::setHasEnabledVerticalScrollbar):
2181        (WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarMode):
2182        (WebCore::ScrollingStateScrollingNode::setVerticalScrollbarMode):
2183        (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
2184        (WebCore::ScrollingStateScrollingNode::setScrollOrigin):
2185        * page/scrolling/ScrollingStateScrollingNode.h: Copied from page/scrolling/ScrollingTreeState.h.
2186        (ScrollingStateScrollingNode):
2187        * page/scrolling/ScrollingStateTree.cpp: Added.
2188        (WebCore):
2189        (WebCore::ScrollingStateTree::create):
2190        (WebCore::ScrollingStateTree::ScrollingStateTree):
2191        (WebCore::ScrollingStateTree::~ScrollingStateTree):
2192        (WebCore::ScrollingStateTree::commit):
2193
2194        The ScrollingStateTree manages the nodes in the tree via the root 
2195        node. It is responsible for cloning the tree and sending it over to 
2196        the scrolling thread.
2197        * page/scrolling/ScrollingStateTree.h: Added.
2198        (WebCore):
2199        (ScrollingStateTree):
2200        (WebCore::ScrollingStateTree::rootStateNode):
2201        (WebCore::ScrollingStateTree::setHasChangedProperties):
2202        (WebCore::ScrollingStateTree::hasChangedProperties):
2203        (WebCore::ScrollingStateTree::setRootStateNode):
2204
2205        Everything that used to refer to the ScrollingTreeState should now 
2206        refer to the ScrollingStateTree instead. Right now, all of this code 
2207        continues to deal with only the root node of the tree. In the future, 
2208        it will have to deal with all of the nodes.
2209        * page/scrolling/ScrollingTree.cpp:
2210        (WebCore::ScrollingTree::commitNewTreeState):
2211        * page/scrolling/ScrollingTree.h:
2212        (WebCore):
2213        * page/scrolling/ScrollingTreeNode.cpp:
2214        (WebCore::ScrollingTreeNode::update):
2215        * page/scrolling/ScrollingTreeNode.h:
2216        (WebCore):
2217        (ScrollingTreeNode):
2218        * page/scrolling/mac/ScrollingTreeNodeMac.h:
2219        (ScrollingTreeNodeMac):
2220        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
2221        (WebCore::ScrollingTreeNodeMac::update):
2222
2223        ScrollingTreeState.cpp --> ScrollingStateScrollingNode.cpp
2224        * page/scrolling/ScrollingTreeState.cpp: Removed.
2225
2226        ScrollingTreeState.h --> ScrollingStateScrollingNode.h
2227        * page/scrolling/ScrollingTreeState.h: Removed.
2228
2229        ScrollingTreeStateMac.mm --> ScrollingStateNodeMac.mm
2230        * page/scrolling/mac/ScrollingTreeStateMac.mm: Removed.
2231
22322012-10-01  Dimitri Glazkov  <dglazkov@chromium.org>
2233
2234        Kill transitive effects of SelectorChecker::checkOneSelector.
2235        https://bugs.webkit.org/show_bug.cgi?id=97953
2236
2237        Reviewed by Eric Seidel.
2238
2239        The dynamicPseudo/hasUnknownPseudoelements by-ref parameters that are passed into checkOneSelector make the logic harder to understand and aren't needed. Refactor the code to rid of them, replacing them instead with two flags in SelectorCheckingContext.
2240
2241        No change in behavior, covered by existing tests.
2242
2243        * css/SelectorChecker.cpp:
2244        (WebCore::SelectorChecker::checkSelector): Rolled pseudo-element-checking code out of checkOneSelector into here, since that is where t
2245        (WebCore::SelectorChecker::checkOneSelector): Changed to use SelectorCheckingContext rather than transitive params.
2246        * css/SelectorChecker.h:
2247        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): Added two new flags.
2248        (SelectorCheckingContext): Ditto.
2249
2250
22512012-10-01  Andreas Kling  <kling@webkit.org>
2252
2253        349kB below SelectorDataList::initialize() on Membuster3.
2254        <http://webkit.org/b/98072>
2255        <rdar://problem/12408605>
2256
2257        Reviewed by Anders Carlsson.
2258
2259        Make a separate pass over the CSSSelectorList to figure out the capacity needed for SelectorDataList::m_selectors.
2260        Reduces memory consumption by 322kB on Membuster3.
2261
2262        * dom/SelectorQuery.cpp:
2263        (WebCore::SelectorDataList::initialize):
2264
22652012-10-01  Anders Carlsson  <andersca@apple.com>
2266
2267        Add a GraphicsLayerFactory getter to ChromeClient
2268        https://bugs.webkit.org/show_bug.cgi?id=98069
2269
2270        Reviewed by Andreas Kling.
2271
2272        * page/ChromeClient.h:
2273        (WebCore::ChromeClient::graphicsLayerFactory):
2274        New function that can be overridden by ports to customize the layer type created for a page.
2275
2276        * rendering/RenderLayerCompositor.cpp:
2277        (WebCore::RenderLayerCompositor::graphicsLayerFactory):
2278        * rendering/RenderLayerCompositor.h:
2279        Add helper getter that's unused for now but will be called by RenderLayerBacking when creating graphics layers.
2280
22812012-10-01  Ryosuke Niwa  <rniwa@webkit.org>
2282
2283        Rename AssertNoEventDispatch to NoEventDispatchAssertion
2284        https://bugs.webkit.org/show_bug.cgi?id=98075
2285
2286        Reviewed by Abhishek Arya.
2287
2288        Renamed the class.
2289
2290        * dom/ContainerNode.cpp:
2291        (WebCore):
2292        (WebCore::ContainerNode::insertBeforeCommon):
2293        (WebCore::ContainerNode::replaceChild):
2294        (WebCore::ContainerNode::removeBetween):
2295        (WebCore::ContainerNode::removeChildren):
2296        (WebCore::ContainerNode::appendChild):
2297        (WebCore::ContainerNode::parserAppendChild):
2298        (WebCore::dispatchChildInsertionEvents):
2299        (WebCore::dispatchChildRemovalEvents):
2300        * dom/ContainerNode.h:
2301        (WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion):
2302        (WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion):
2303        * dom/ContainerNodeAlgorithms.h:
2304        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
2305        (WebCore::ChildNodeInsertionNotifier::notify):
2306        (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
2307        * dom/Document.cpp:
2308        (WebCore::Document::dispatchWindowEvent):
2309        (WebCore::Document::dispatchWindowLoadEvent):
2310        * dom/EventDispatcher.cpp:
2311        (WebCore::EventDispatcher::dispatchEvent):
2312        * dom/EventTarget.cpp:
2313        (WebCore::EventTarget::fireEventListeners):
2314        * dom/Node.cpp:
2315        (WebCore::Node::dispatchSubtreeModifiedEvent):
2316        (WebCore::Node::dispatchFocusInEvent):
2317        (WebCore::Node::dispatchFocusOutEvent):
2318        (WebCore::Node::dispatchDOMActivateEvent):
2319        * dom/WebKitNamedFlow.cpp:
2320        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
2321        * html/HTMLMediaElement.cpp:
2322        (WebCore::HTMLMediaElement::loadInternal):
2323
23242012-10-01  Stephen Chenney  <schenney@chromium.org>
2325
2326        Rename Font::m_fontList to avoid confusion
2327        https://bugs.webkit.org/show_bug.cgi?id=95867
2328
2329        Reviewed by Eric Seidel.
2330
2331       Renames Font::m_fontList to Font::m_fontFallbackList to avoid confusion
2332       with FontFallbackList::m_fontList.
2333
2334        No new tests as behavior is absolutely not different.
2335
2336        * platform/graphics/Font.cpp:
2337        (WebCore::Font::Font):
2338        (WebCore::Font::operator=):
2339        (WebCore::Font::operator==):
2340        (WebCore::Font::update):
2341        * platform/graphics/Font.h:
2342        (WebCore::Font::fontList):
2343        (WebCore::Font::loadingCustomFonts):
2344        (Font):
2345        (WebCore::Font::primaryFont):
2346        (WebCore::Font::fontDataAt):
2347        (WebCore::Font::isFixedPitch):
2348        (WebCore::Font::fontSelector):
2349        * platform/graphics/FontFastPath.cpp:
2350        (WebCore::Font::glyphDataAndPageForCharacter):
2351
23522012-10-01  Florin Malita  <fmalita@chromium.org>
2353
2354        Refactor layer-related logic out of RenderBoxModelObject
2355        https://bugs.webkit.org/show_bug.cgi?id=86022
2356
2357        Reviewed by David Hyatt.
2358
2359        This patch extracts layer-related logic into a dedicated class
2360        (RenderLayerModelObject) and refactors dependent code to make use
2361        of the new type instead of RenderBoxModelObject. This is in preparation
2362        of adding non-RenderBoxModelObject layer supprt.
2363
2364        All methods that were using RenderBoxModelObject for layer-related
2365        functionality are updated to work with RenderLayerModelObject
2366        instead (a RenderLayer's renderer() can no longer be assumed to be
2367        a RenderBoxModelObject).
2368
2369        No new tests: refactoring with no behavior changes.
2370
2371        * CMakeLists.txt:
2372        * GNUmakefile.list.am:
2373        * Target.pri:
2374        * WebCore.exp.in:
2375        * WebCore.gypi:
2376        * WebCore.order:
2377        * WebCore.vcproj/WebCore.vcproj:
2378        * WebCore.xcodeproj/project.pbxproj:
2379        * rendering/LayoutRepainter.h:
2380        (WebCore):
2381        (LayoutRepainter):
2382        * rendering/RenderBR.h:
2383        * rendering/RenderBlock.cpp:
2384        (WebCore::RenderBlock::selectionGapRectsForRepaint):
2385        (WebCore::RenderBlock::rectWithOutlineForRepaint):
2386        * rendering/RenderBlock.h:
2387        (RenderBlock):
2388        * rendering/RenderBox.cpp:
2389        (WebCore::RenderBox::styleDidChange):
2390        (WebCore::RenderBox::updateFromStyle):
2391        (WebCore::RenderBox::outlineBoundsForRepaint):
2392        (WebCore::RenderBox::mapLocalToContainer):
2393        (WebCore::RenderBox::pushMappingToContainer):
2394        (WebCore::RenderBox::clippedOverflowRectForRepaint):
2395        (WebCore::RenderBox::computeRectForRepaint):
2396        (WebCore::RenderBox::enclosingFloatPaintingLayer):
2397        * rendering/RenderBox.h:
2398        (RenderBox):
2399        * rendering/RenderBoxModelObject.cpp:
2400        (WebCore):
2401        (WebCore::RenderBoxModelObject::RenderBoxModelObject):
2402        (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
2403        (WebCore::RenderBoxModelObject::willBeDestroyed):
2404        (WebCore::RenderBoxModelObject::updateFromStyle):
2405        * rendering/RenderBoxModelObject.h:
2406        (RenderBoxModelObject):
2407        * rendering/RenderGeometryMap.cpp:
2408        (WebCore::RenderGeometryMap::pushMappingsToAncestor):
2409        (WebCore::RenderGeometryMap::popMappingsToAncestor):
2410        * rendering/RenderGeometryMap.h:
2411        (RenderGeometryMap):
2412        * rendering/RenderInline.cpp:
2413        (WebCore::RenderInline::updateFromStyle):
2414        (WebCore::RenderInline::clippedOverflowRectForRepaint):
2415        (WebCore::RenderInline::rectWithOutlineForRepaint):
2416        (WebCore::RenderInline::computeRectForRepaint):
2417        (WebCore::RenderInline::mapLocalToContainer):
2418        (WebCore::RenderInline::pushMappingToContainer):
2419        * rendering/RenderInline.h:
2420        (RenderInline):
2421        * rendering/RenderLayer.cpp:
2422        (WebCore::RenderLayer::RenderLayer):
2423        (WebCore::RenderLayer::updateLayerPositions):
2424        (WebCore::RenderLayer::computeRepaintRects):
2425        (WebCore::checkContainingBlockChainForPagination):
2426        (WebCore::RenderLayer::updateLayerPosition):
2427        (WebCore::isPositionedContainer):
2428        (WebCore::RenderLayer::hasAncestorWithFilterOutsets):
2429        (WebCore::RenderLayer::scrollTo):
2430        (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants):
2431        * rendering/RenderLayer.h:
2432        (RenderLayer):
2433        (WebCore::RenderLayer::renderer):
2434        * rendering/RenderLayerBacking.h:
2435        (WebCore::RenderLayerBacking::renderer):
2436        * rendering/RenderLayerCompositor.cpp:
2437        (WebCore::RenderLayerCompositor::updateBacking):
2438        (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
2439        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
2440        (WebCore::RenderLayerCompositor::reasonForCompositing):
2441        * rendering/RenderListMarker.cpp:
2442        (WebCore::RenderListMarker::selectionRectForRepaint):
2443        * rendering/RenderListMarker.h:
2444        (RenderListMarker):
2445        * rendering/RenderObject.cpp:
2446        (WebCore::RenderObject::addChild):
2447        (WebCore::addLayers):
2448        (WebCore::RenderObject::removeLayers):
2449        (WebCore::RenderObject::moveLayers):
2450        (WebCore::RenderObject::findNextLayer):
2451        (WebCore::RenderObject::enclosingLayer):
2452        (WebCore::RenderObject::setLayerNeedsFullRepaint):
2453        (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout):
2454        (WebCore::RenderObject::containerForRepaint):
2455        (WebCore::RenderObject::repaintUsingContainer):
2456        (WebCore::RenderObject::repaint):
2457        (WebCore::RenderObject::repaintRectangle):
2458        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2459        (WebCore::RenderObject::rectWithOutlineForRepaint):
2460        (WebCore::RenderObject::clippedOverflowRectForRepaint):
2461        (WebCore::RenderObject::computeRectForRepaint):
2462        (WebCore::RenderObject::computeFloatRectForRepaint):
2463        (WebCore::RenderObject::adjustStyleDifference):
2464        (WebCore::RenderObject::mapLocalToContainer):
2465        (WebCore::RenderObject::pushMappingToContainer):
2466        (WebCore::RenderObject::shouldUseTransformFromContainer):
2467        (WebCore::RenderObject::getTransformFromContainer):
2468        (WebCore::RenderObject::localToContainerQuad):
2469        (WebCore::RenderObject::localToContainerPoint):
2470        (WebCore::RenderObject::container):
2471        (WebCore::RenderObject::willBeDestroyed):
2472        (WebCore::RenderObject::isComposited):
2473        * rendering/RenderObject.h:
2474        (WebCore):
2475        (WebCore::RenderObject::isLayerModelObject):
2476        (RenderObject):
2477        (WebCore::RenderObject::selectionRectForRepaint):
2478        (WebCore::RenderObject::outlineBoundsForRepaint):
2479        * rendering/RenderReplaced.cpp:
2480        (WebCore::RenderReplaced::selectionRectForRepaint):
2481        (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
2482        * rendering/RenderReplaced.h:
2483        (RenderReplaced):
2484        * rendering/RenderSelectionInfo.h:
2485        (WebCore::RenderSelectionInfoBase::repaintContainer):
2486        (RenderSelectionInfoBase):
2487        * rendering/RenderTableCell.cpp:
2488        (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
2489        (WebCore::RenderTableCell::computeRectForRepaint):
2490        * rendering/RenderTableCell.h:
2491        (RenderTableCell):
2492        * rendering/RenderTableCol.cpp:
2493        (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
2494        * rendering/RenderTableCol.h:
2495        (RenderTableCol):
2496        * rendering/RenderTableRow.cpp:
2497        (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
2498        * rendering/RenderTableRow.h:
2499        (RenderTableRow):
2500        * rendering/RenderText.cpp:
2501        (WebCore::RenderText::clippedOverflowRectForRepaint):
2502        (WebCore::RenderText::selectionRectForRepaint):
2503        * rendering/RenderText.h:
2504        (RenderText):
2505        * rendering/RenderLayerModelObject.cpp: Added.
2506        (WebCore):
2507        (WebCore::RenderLayerModelObject::RenderLayerModelObject):
2508        (WebCore::RenderLayerModelObject::~RenderLayerModelObject):
2509        (WebCore::RenderLayerModelObject::destroyLayer):
2510        (WebCore::RenderLayerModelObject::ensureLayer):
2511        (WebCore::RenderLayerModelObject::hasSelfPaintingLayer):
2512        (WebCore::RenderLayerModelObject::willBeDestroyed):
2513        (WebCore::RenderLayerModelObject::styleWillChange):
2514        (WebCore::RenderLayerModelObject::styleDidChange):
2515        * rendering/RenderLayerModelObject.h: Added.
2516        (WebCore):
2517        (RenderLayerModelObject):
2518        (WebCore::RenderLayerModelObject::layer):
2519        (WebCore::RenderLayerModelObject::updateFromStyle):
2520        (WebCore::toRenderLayerModelObject):
2521        * rendering/RenderView.cpp:
2522        (WebCore::RenderView::mapLocalToContainer):
2523        (WebCore::RenderView::pushMappingToContainer):
2524        (WebCore::isComposited):
2525        (WebCore::RenderView::computeRectForRepaint):
2526        (WebCore::RenderView::absoluteRects):
2527        (WebCore::RenderView::absoluteQuads):
2528        (WebCore::RenderView::selectionBounds):
2529        (WebCore::RenderView::setSelection):
2530        (WebCore::RenderView::clearSelection):
2531        * rendering/RenderView.h:
2532        (RenderView):
2533        * rendering/RenderingAllInOne.cpp:
2534        * rendering/svg/RenderSVGBlock.cpp:
2535        (WebCore::RenderSVGBlock::updateFromStyle):
2536        * rendering/svg/RenderSVGBlock.h:
2537        (RenderSVGBlock):
2538        * rendering/svg/RenderSVGForeignObject.cpp:
2539        (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
2540        (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
2541        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
2542        (WebCore::RenderSVGForeignObject::pushMappingToContainer):
2543        * rendering/svg/RenderSVGForeignObject.h:
2544        (RenderSVGForeignObject):
2545        * rendering/svg/RenderSVGGradientStop.h:
2546        * rendering/svg/RenderSVGHiddenContainer.h:
2547        * rendering/svg/RenderSVGInline.cpp:
2548        (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
2549        (WebCore::RenderSVGInline::computeFloatRectForRepaint):
2550        (WebCore::RenderSVGInline::mapLocalToContainer):
2551        (WebCore::RenderSVGInline::pushMappingToContainer):
2552        * rendering/svg/RenderSVGInline.h:
2553        (RenderSVGInline):
2554        * rendering/svg/RenderSVGModelObject.cpp:
2555        (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
2556        (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
2557        (WebCore::RenderSVGModelObject::mapLocalToContainer):
2558        (WebCore::RenderSVGModelObject::pushMappingToContainer):
2559        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
2560        * rendering/svg/RenderSVGModelObject.h:
2561        (RenderSVGModelObject):
2562        * rendering/svg/RenderSVGRoot.cpp:
2563        (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
2564        (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
2565        (WebCore::RenderSVGRoot::mapLocalToContainer):
2566        (WebCore::RenderSVGRoot::pushMappingToContainer):
2567        * rendering/svg/RenderSVGRoot.h:
2568        (RenderSVGRoot):
2569        * rendering/svg/RenderSVGText.cpp:
2570        (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
2571        (WebCore::RenderSVGText::computeRectForRepaint):
2572        (WebCore::RenderSVGText::computeFloatRectForRepaint):
2573        (WebCore::RenderSVGText::mapLocalToContainer):
2574        (WebCore::RenderSVGText::pushMappingToContainer):
2575        * rendering/svg/RenderSVGText.h:
2576        (RenderSVGText):
2577        * rendering/svg/SVGRenderSupport.cpp:
2578        (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
2579        (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
2580        (WebCore::SVGRenderSupport::mapLocalToContainer):
2581        (WebCore::SVGRenderSupport::pushMappingToContainer):
2582        * rendering/svg/SVGRenderSupport.h:
2583        (WebCore):
2584        (SVGRenderSupport):
2585
25862012-10-01  Stephen Chenney  <schenney@chromium.org>
2587
2588        Refactor WebCore::FontData handling to clarify pointer ownership
2589        https://bugs.webkit.org/show_bug.cgi?id=95866
2590
2591        Reviewed by Eric Seidel.
2592
2593        This patch makes all FontData and derived classes ref-counted in all
2594        code paths that lead to caching or other retention of a
2595        pointer. The goal is to avert crashes and memory leaks, and to bring
2596        the code more in line with current WebKit practices.
2597
2598        Specifically, this patch allows us to use ref pointers for all the
2599        FontData stored in FontFallbackList objects. The FontFallbackList can
2600        then own custom font data and manage its lifetime (forthcoming patch).
2601        Currently Document owns custom font data and does an end run around
2602        FontFallbackList in deleting glyph pages and custom font data, leaving
2603        FontFallbackList with invalid pointers.
2604
2605        All FontData derived classes have been switched to use static create
2606        methods with private constructors.
2607
2608        All caches that hold FontData now use RefPtrs.
2609
2610        All methods that construct new font data now return PassRefPtr, with the
2611        exception of code only used to generate temporary data for text run layout.
2612
2613        All methods that handle FontData in a call stack that passes through
2614        FontFallbackList::fontDataAt return PassRefPtr.
2615
2616        Performance tested with both WebKit Perf-o-matic, which showed
2617        performance changes in the noise, and Chrome's page cycling tests with
2618        the acid3 benchmark set, which showed no performance difference at all.
2619
2620        No new tests as this is refactoring code only and has no impact on functionality.
2621
2622        * css/CSSFontFace.cpp:
2623        (WebCore::CSSFontFace::getFontData):
2624        * css/CSSFontFace.h:
2625        (CSSFontFace):
2626        * css/CSSFontFaceSource.cpp:
2627        (WebCore::CSSFontFaceSource::getFontData):
2628        * css/CSSFontFaceSource.h:
2629        (CSSFontFaceSource):
2630        * css/CSSFontSelector.cpp:
2631        (WebCore::fontDataForGenericFamily):
2632        (WebCore::CSSFontSelector::getFontData):
2633        * css/CSSFontSelector.h:
2634        * css/CSSSegmentedFontFace.cpp:
2635        (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading):
2636        (WebCore::CSSSegmentedFontFace::getFontData):
2637        * css/CSSSegmentedFontFace.h:
2638        (CSSSegmentedFontFace):
2639        * dom/Document.cpp:
2640        (WebCore::Document::registerCustomFont):
2641        * dom/Document.h:
2642        (Document):
2643        * platform/graphics/Font.h:
2644        (WebCore):
2645        * platform/graphics/FontCache.cpp:
2646        (WebCore):
2647        (WebCore::FontCache::getCachedFontData):
2648        (WebCore::FontCache::getNonRetainedLastResortFallbackFont):
2649        (WebCore::FontCache::releaseFontData):
2650        (WebCore::FontCache::purgeInactiveFontData):
2651        (WebCore::FontCache::getFontData):
2652        * platform/graphics/FontCache.h:
2653        (FontCache):
2654        * platform/graphics/FontData.h:
2655        * platform/graphics/FontFallbackList.cpp:
2656        (WebCore::FontFallbackList::releaseFontData):
2657        (WebCore::FontFallbackList::fontDataAt):
2658        (WebCore::FontFallbackList::setPlatformFont):
2659        * platform/graphics/FontFallbackList.h:
2660        (FontFallbackList):
2661        * platform/graphics/FontFastPath.cpp:
2662        (WebCore::Font::glyphDataAndPageForCharacter):
2663        * platform/graphics/FontSelector.h:
2664        (FontSelector):
2665        * platform/graphics/GlyphPageTreeNode.cpp:
2666        (WebCore::GlyphPageTreeNode::initializePage):
2667        * platform/graphics/SegmentedFontData.cpp:
2668        (WebCore::SegmentedFontData::fontDataForCharacter):
2669        * platform/graphics/SegmentedFontData.h:
2670        (WebCore::FontDataRange::FontDataRange):
2671        (WebCore::FontDataRange::fontData):
2672        (FontDataRange):
2673        (WebCore::SegmentedFontData::create):
2674        (SegmentedFontData):
2675        (WebCore::SegmentedFontData::SegmentedFontData):
2676        * platform/graphics/SimpleFontData.cpp:
2677        (WebCore::SimpleFontData::verticalRightOrientationFontData):
2678        (WebCore::SimpleFontData::uprightOrientationFontData):
2679        (WebCore::SimpleFontData::brokenIdeographFontData):
2680        * platform/graphics/SimpleFontData.h:
2681        (WebCore::SimpleFontData::create):
2682        (SimpleFontData):
2683        (WebCore::SimpleFontData::variantFontData):
2684        (DerivedFontData):
2685        * platform/graphics/chromium/FontCacheAndroid.cpp:
2686        (WebCore::FontCache::getFontDataForCharacters):
2687        (WebCore::FontCache::getSimilarFontPlatformData):
2688        (WebCore::FontCache::getLastResortFallbackFont):
2689        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2690        (WebCore::FontCache::fontDataFromDescriptionAndLogFont):
2691        (GetLastResortFallbackFontProcData):
2692        (WebCore::FontCache::getFontDataForCharacters):
2693        (WebCore::FontCache::getSimilarFontPlatformData):
2694        (WebCore::FontCache::getLastResortFallbackFont):
2695        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2696        (WebCore::SimpleFontData::createScaledFontData):
2697        (WebCore::SimpleFontData::smallCapsFontData):
2698        (WebCore::SimpleFontData::emphasisMarkFontData):
2699        * platform/graphics/freetype/FontCacheFreeType.cpp:
2700        (WebCore::FontCache::getFontDataForCharacters):
2701        (WebCore::FontCache::getSimilarFontPlatformData):
2702        (WebCore::FontCache::getLastResortFallbackFont):
2703        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2704        (WebCore::SimpleFontData::createScaledFontData):
2705        (WebCore::SimpleFontData::smallCapsFontData):
2706        (WebCore::SimpleFontData::emphasisMarkFontData):
2707        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2708        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
2709        * platform/graphics/mac/FontCacheMac.mm:
2710        (WebCore::FontCache::getFontDataForCharacters):
2711        (WebCore::FontCache::getSimilarFontPlatformData):
2712        (WebCore::FontCache::getLastResortFallbackFont):
2713        * platform/graphics/mac/FontComplexTextMac.cpp:
2714        (WebCore::Font::fontDataForCombiningCharacterSequence):
2715        * platform/graphics/mac/SimpleFontDataMac.mm:
2716        (WebCore::SimpleFontData::platformDestroy):
2717        (WebCore::SimpleFontData::createScaledFontData):
2718        (WebCore::SimpleFontData::smallCapsFontData):
2719        (WebCore::SimpleFontData::emphasisMarkFontData):
2720        * platform/graphics/pango/FontCachePango.cpp:
2721        (WebCore::FontCache::getFontDataForCharacters):
2722        (WebCore::FontCache::getSimilarFontPlatformData):
2723        (WebCore::FontCache::getLastResortFallbackFont):
2724        * platform/graphics/pango/SimpleFontDataPango.cpp:
2725        (WebCore::SimpleFontData::createScaledFontData):
2726        (WebCore::SimpleFontData::smallCapsFontData):
2727        (WebCore::SimpleFontData::emphasisMarkFontData):
2728        * platform/graphics/qt/FontCacheQt.cpp:
2729        (WebCore::FontCache::getFontDataForCharacters):
2730        (WebCore::FontCache::getSimilarFontPlatformData):
2731        (WebCore::FontCache::getLastResortFallbackFont):
2732        * platform/graphics/qt/SimpleFontDataQt.cpp:
2733        (WebCore::SimpleFontData::createScaledFontData):
2734        (WebCore::SimpleFontData::smallCapsFontData):
2735        (WebCore::SimpleFontData::emphasisMarkFontData):
2736        * platform/graphics/skia/FontCacheSkia.cpp:
2737        (WebCore::FontCache::getFontDataForCharacters):
2738        (WebCore::FontCache::getSimilarFontPlatformData):
2739        (WebCore::FontCache::getLastResortFallbackFont):
2740        * platform/graphics/skia/SimpleFontDataSkia.cpp:
2741        (WebCore::SimpleFontData::createScaledFontData):
2742        (WebCore::SimpleFontData::smallCapsFontData):
2743        (WebCore::SimpleFontData::emphasisMarkFontData):
2744        * platform/graphics/win/FontCacheWin.cpp:
2745        (WebCore::FontCache::getFontDataForCharacters):
2746        (WebCore::FontCache::getSimilarFontPlatformData):
2747        (WebCore::FontCache::fontDataFromDescriptionAndLogFont):
2748        (WebCore::FontCache::getLastResortFallbackFont):
2749        * platform/graphics/win/SimpleFontDataWin.cpp:
2750        (WebCore::SimpleFontData::createScaledFontData):
2751        (WebCore::SimpleFontData::smallCapsFontData):
2752        (WebCore::SimpleFontData::emphasisMarkFontData):
2753        * platform/graphics/wince/FontCacheWinCE.cpp:
2754        (WebCore::FontCache::getFontDataForCharacters):
2755        (WebCore::FontCache::getSimilarFontPlatformData):
2756        (WebCore::FontCache::getLastResortFallbackFont):
2757        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
2758        (WebCore::SimpleFontData::createScaledFontData):
2759        (WebCore::SimpleFontData::smallCapsFontData):
2760        (WebCore::SimpleFontData::emphasisMarkFontData):
2761        * platform/graphics/wx/FontCacheWx.cpp:
2762        (WebCore::FontCache::getFontDataForCharacters):
2763        (WebCore::FontCache::getSimilarFontPlatformData):
2764        (WebCore::FontCache::getLastResortFallbackFont):
2765        * platform/graphics/wx/SimpleFontDataWx.cpp:
2766        (WebCore::SimpleFontData::createScaledFontData):
2767        (WebCore::SimpleFontData::smallCapsFontData):
2768        (WebCore::SimpleFontData::emphasisMarkFontData):
2769
27702012-10-01  Ryosuke Niwa  <rniwa@webkit.org>
2771
2772        Turn forbidEventDispatch and allowEventDispatch into a RAII object
2773        https://bugs.webkit.org/show_bug.cgi?id=96717
2774
2775        Reviewed by Abhishek Arya.
2776
2777        Replaced forbidEventDispatch and allowEventDispatch by AssertNoEventDispatch.
2778
2779        * dom/ContainerNode.cpp:
2780        (WebCore):
2781        (WebCore::ContainerNode::insertBeforeCommon):
2782        (WebCore::ContainerNode::replaceChild):
2783        (WebCore::ContainerNode::removeBetween):
2784        (WebCore::ContainerNode::removeChildren):
2785        (WebCore::ContainerNode::appendChild):
2786        (WebCore::ContainerNode::parserAddChild):
2787        (WebCore::dispatchChildInsertionEvents):
2788        (WebCore::dispatchChildRemovalEvents):
2789        * dom/ContainerNode.h:
2790        (AssertNoEventDispatch):
2791        (WebCore::AssertNoEventDispatch::AssertNoEventDispatch):
2792        (WebCore::AssertNoEventDispatch::~AssertNoEventDispatch):
2793        (WebCore::AssertNoEventDispatch::isEventDispatchForbidden):
2794        (WebCore):
2795        * dom/ContainerNodeAlgorithms.h:
2796        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
2797        (WebCore::ChildNodeInsertionNotifier::notify):
2798        (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
2799        * dom/Document.cpp:
2800        (WebCore::Document::dispatchWindowEvent):
2801        (WebCore::Document::dispatchWindowLoadEvent):
2802        * dom/EventDispatcher.cpp:
2803        (WebCore::EventDispatcher::dispatchEvent):
2804        * dom/EventTarget.cpp:
2805        (WebCore):
2806        (WebCore::EventTarget::fireEventListeners):
2807        * dom/EventTarget.h:
2808        (WebCore):
2809        * dom/Node.cpp:
2810        (WebCore::Node::dispatchSubtreeModifiedEvent):
2811        (WebCore::Node::dispatchFocusInEvent):
2812        (WebCore::Node::dispatchFocusOutEvent):
2813        (WebCore::Node::dispatchDOMActivateEvent):
2814        * dom/WebKitNamedFlow.cpp:
2815        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
2816        * html/HTMLMediaElement.cpp:
2817        (WebCore::HTMLMediaElement::loadInternal):
2818
28192012-10-01  Anders Carlsson  <andersca@apple.com>
2820
2821        Would like a way to customize the type of GraphicsLayers created on a per page basis
2822        https://bugs.webkit.org/show_bug.cgi?id=98051
2823
2824        Reviewed by Simon Fraser.
2825
2826        Add a GraphicsLayerFactory abstract class and a new GraphicsLayer::create overload that takes
2827        a factory object. Eventually, all calls to the old GraphicsLayer::create will be replaced with
2828        the new version that takes an optional factory.
2829
2830        * WebCore.xcodeproj/project.pbxproj:
2831        * platform/graphics/GraphicsLayer.h:
2832        (WebCore):
2833        (GraphicsLayer):
2834        * platform/graphics/GraphicsLayerFactory.h: Added.
2835        (WebCore):
2836        (GraphicsLayerFactory):
2837        (WebCore::GraphicsLayerFactory::~GraphicsLayerFactory):
2838        * platform/graphics/ca/GraphicsLayerCA.cpp:
2839        (WebCore::GraphicsLayer::create):
2840        (WebCore):
2841
28422012-10-01  Adam Klein  <adamk@chromium.org>
2843
2844        Consolidate more MutationObserverRegistration logic in Node
2845        https://bugs.webkit.org/show_bug.cgi?id=98058
2846
2847        Reviewed by Ryosuke Niwa.
2848
2849        One remaining oddity of Node's MutationObserver-related interface was
2850        that registerMutationObserver returned the resulting MutationObserverRegistration
2851        object.
2852
2853        Instead, Node now internally handles resetting the observation
2854        if the registration already exists, and updating the Document's list of
2855        mutation observer types.
2856
2857        No change in behavior, refactoring only.
2858
2859        * dom/MutationObserver.cpp:
2860        (WebCore::MutationObserver::observe): Simplified to just call
2861        Node::registerMutationObserver; nothing else is needed.
2862        * dom/MutationObserverRegistration.cpp:
2863        (WebCore::MutationObserverRegistration::create): Take options and attributeFilter,
2864        avoiding an unnecessary call to resetObservation().
2865        (WebCore::MutationObserverRegistration::MutationObserverRegistration): ditto
2866        * dom/MutationObserverRegistration.h:
2867        (MutationObserverRegistration):
2868        * dom/Node.cpp:
2869        (WebCore::Node::registerMutationObserver): Handle observation
2870        resetting if that observer's already registered, and update the list
2871        of active MutationObserver types in the Document.
2872        * dom/Node.h:
2873        (Node):
2874
28752012-10-01  Glenn Adams  <glenn@skynav.com>
2876
2877        YYDEBUG doesn't print token values
2878        https://bugs.webkit.org/show_bug.cgi?id=97896
2879
2880        Reviewed by Simon Fraser.
2881
2882        Define YYPRINT macro to print token values when YYDEBUG is set.
2883
2884        No new tests. For CSS lexer/parser debug usage only.
2885
2886        * css/CSSGrammar.y:
2887        Define YYPRINT macro to output IDENT and STRING typed tokens. Others can be added
2888        in the future.
2889
28902012-10-01  Jochen Eisinger  <jochen@chromium.org>
2891
2892        [chromium] ASSERT that the embedder has set a default locale
2893        https://bugs.webkit.org/show_bug.cgi?id=98001
2894
2895        Reviewed by Adam Barth.
2896
2897        The callsites assume that the default language is always defined, e.g.
2898        Document::getCachedLocalizer. Add an ASSERT() statement so an embedder
2899        doesn't have to guess what they did wrong.
2900
2901        * platform/chromium/LanguageChromium.cpp:
2902        (WebCore::platformLanguage):
2903
29042012-10-01  Christophe Dumez  <christophe.dumez@intel.com>
2905
2906        Fix compilation warnings
2907        https://bugs.webkit.org/show_bug.cgi?id=98020
2908
2909        Reviewed by Gyuyoung Kim.
2910
2911        Fix compilation warnings in PluginView code.
2912
2913        No new tests, no behavior change.
2914
2915        * plugins/PluginView.cpp:
2916        (WebCore::PluginView::newStream):
2917        (WebCore::PluginView::write):
2918        (WebCore::PluginView::getAuthenticationInfo):
2919        * plugins/efl/PluginViewEfl.cpp:
2920        (WebCore::PluginView::setNPWindowRect):
2921        (WebCore::PluginView::invalidateRegion):
2922
29232012-10-01  Arpita Bahuguna  <arpitabahuguna@gmail.com>
2924
2925        RenderBlock incorrectly calculates pref width when a replaced object follows a RenderInline with width
2926        https://bugs.webkit.org/show_bug.cgi?id=84624
2927
2928        Reviewed by Levi Weintraub.
2929
2930        For the specific scenario, wherein an inline replaced element (image)
2931        follows an inline flow object within a render block, we should allow
2932        for that block to grow to accomodate the replaced element so as to
2933        avoid it's overflow.
2934
2935        This quirk is handled well by other browsers.
2936
2937        Test: fast/block/block-with-inline-replaced-child.html
2938
2939        * rendering/RenderBlock.cpp:
2940        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2941        We should not cause our line to break for the scenario wherein an inline
2942        replaced element follows an inline flow object.
2943
2944        For handling the same have introduced a flag: isPrevChildInlineFlow which
2945        shall be set for an inline flow element.
2946        Based on this, while handling the inline replaced elements, we either
2947        terminate the line (for minWidth calculation) or not depending upon
2948        this flag.
2949
29502012-10-01  Yury Semikhatsky  <yurys@chromium.org>
2951
2952        Unreviewed. Chromium build fix.
2953
2954        * bindings/v8/V8DOMMap.h: included Node.h as reportMemoryUsage now uses Node definition.
2955
29562012-10-01  Yury Semikhatsky  <yurys@chromium.org>
2957
2958        Web Inspector: provide memory instrumentation for HashMap
2959        https://bugs.webkit.org/show_bug.cgi?id=98005
2960
2961        Reviewed by Pavel Feldman.
2962
2963        Updated all call sites of MemoryInstrumentation::addHashMap to use generic
2964        method of reporting memory footprint instead. 
2965
2966        * bindings/v8/ScopedDOMDataStore.cpp:
2967        * bindings/v8/V8Binding.cpp:
2968        (WebCore::StringCache::reportMemoryUsage):
2969        * bindings/v8/V8DOMMap.h:
2970        * bindings/v8/V8PerIsolateData.cpp:
2971        (WebCore::V8PerIsolateData::reportMemoryUsage):
2972        * css/CSSImageGeneratorValue.cpp:
2973        (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
2974        * css/PropertySetCSSStyleDeclaration.cpp:
2975        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
2976        * css/StyleResolver.cpp:
2977        (WebCore::StyleResolver::collectMatchingRulesForList):
2978        * css/StyleSheetContents.cpp:
2979        (WebCore::StyleSheetContents::reportMemoryUsage):
2980        * dom/Document.cpp:
2981        (WebCore::Document::reportMemoryUsage):
2982        * loader/DocumentLoader.cpp:
2983        (WebCore::DocumentLoader::reportMemoryUsage):
2984        * loader/cache/CachedResourceLoader.cpp:
2985        (WebCore::CachedResourceLoader::reportMemoryUsage):
2986        * loader/cache/MemoryCache.cpp:
2987        (WebCore::MemoryCache::reportMemoryUsage):
2988        * platform/network/ResourceRequestBase.cpp:
2989        (WebCore::ResourceRequestBase::reportMemoryUsage):
2990        * platform/network/ResourceResponseBase.cpp:
2991        (WebCore::ResourceResponseBase::reportMemoryUsage):
2992        * rendering/style/StyleRareNonInheritedData.cpp:
2993
29942012-10-01  Yury Semikhatsky  <yurys@chromium.org>
2995
2996        Put implementation details of StyleBuilder.cpp into anonymous namespace
2997        https://bugs.webkit.org/show_bug.cgi?id=98028
2998
2999        Reviewed by Pavel Feldman.
3000
3001        All types that are declared and used only inside StyleBuilder were moved
3002        into anonymous namespace to avoid name conflicts with the rest of WebCore.
3003
3004        * css/StyleBuilder.cpp:
3005        (WebCore::StyleBuilder::StyleBuilder): renamed BorderImageType::Image into BorderImageType::BorderImage
3006        as otherwise there is an ambiguity at placess where setPropertyHandler is called.
3007
30082012-10-01  Andrei Bucur  <abucur@adobe.com>
3009
3010        [CSS Regions] Remove the deprecated API Document.webkitGetFlowByName
3011        https://bugs.webkit.org/show_bug.cgi?id=97657
3012
3013        Reviewed by Andreas Kling.
3014
3015        The Document.getFlowByName() API has been deprecated in favor of the NamedFlowCollection.namedItem(DOMString).
3016        Link to spec: http://www.w3.org/TR/css3-regions/#the-namedflow-interface
3017
3018        Tests: The old tests have been adapted to use the new API.
3019
3020        * dom/Document.cpp:
3021        (WebCore):
3022        * dom/Document.h:
3023        (Document):
3024        * dom/Document.idl:
3025
30262012-09-27  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
3027
3028        Make sure that the history position is applied correctly when using delegatesScrolling
3029        https://bugs.webkit.org/show_bug.cgi?id=97778
3030
3031        Reviewed by Kenneth Rohde Christiansen.
3032
3033        The position is applied asynchronously and the UI process is the one holding the current
3034        state. For this reason we can't rely in WebCore on ScrollView::scrollPosition holding
3035        the current position in that case.
3036
3037        * page/Page.cpp:
3038        (WebCore::Page::setPageScaleFactor):
3039
30402012-09-27  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
3041
3042        [Qt] Decide when to apply a scrolled position to the viewport based on the rect covered by the tiles
3043        https://bugs.webkit.org/show_bug.cgi?id=97777
3044
3045        Reviewed by Kenneth Rohde Christiansen.
3046
3047        * platform/graphics/TiledBackingStore.cpp:
3048        (WebCore::TiledBackingStore::createTiles):
3049        * platform/graphics/TiledBackingStore.h:
3050        (WebCore::TiledBackingStore::coverRect):
3051        (WebCore::TiledBackingStore::setCoverRect):
3052        (TiledBackingStore):
3053
30542012-10-01  Carlos Garcia Campos  <cgarcia@igalia.com>
3055
3056        Unreviewed. Fix make distcheck.
3057
3058        * GNUmakefile.list.am: ClipPathOperation.h was moved.
3059
30602012-10-01  Arko Saha  <arko@motorola.com>
3061
3062        Microdata: names.item() must return null for out of range indexes.
3063        https://bugs.webkit.org/show_bug.cgi?id=97898
3064
3065        Reviewed by Kentaro Hara.
3066
3067        DOMStringList.item() must return null for an invalid index.
3068        Spec: http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList
3069        Removed [IsIndex] extended IDL attribute from item() method's index
3070        parameter in DOMStringList interface.
3071        Firefox and Opera's behavior is consistent with the spec. Both
3072        returns null for invalid index.
3073
3074        Test: fast/dom/MicroData/names-item-out-of-range-index.html
3075
3076        * dom/DOMStringList.idl:
3077
30782012-10-01  Yoshifumi Inoue  <yosin@chromium.org>
3079
3080        [Forms] Multiple fields week input UI
3081        https://bugs.webkit.org/show_bug.cgi?id=97877
3082
3083        Reviewed by Kent Tamura.
3084
3085        This patch introduces multiple fields "week" input UI in DRT. We'll
3086        enable this feature once we add tests.
3087
3088        Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_WEEK
3089        and ENABLE_INPUT_MULTIPLE_FIELDS_UI.
3090
3091        No new tests. To reduce size of this patch, other patches add tests
3092        for multiple fields week input UI.
3093
3094        Note: Actual outputs of two tests
3095          - fast/forms/week/week-input-visible-string.html
3096          - fast/forms/week/week-stepup-stepdown-from-renderer.html
3097        are different.
3098
3099        * css/thml.css:
3100        (input::-webkit-datetime-edit-week-field): Added for field appearance.
3101        (input::-webkit-datetime-edit-week-field:focus): Added to remove focus ring.
3102        * html/WeekInputType.cpp:
3103        (WebCore::WeekInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
3104        (WebCore::WeekInputType::setupLayoutParameters):  Added to set layout of multiple fields.
3105        * html/WeekInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseWeekInputType typedef.
3106        (WebCore::WeekInputType::WeekInputType): Changed base class name to BaseWeekInputType.
3107        (WeekInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
3108        * html/shadow/DateTimeEditElement.cpp:
3109        (WebCore::DateTimeEditBuilder::visitField): Changed to support week field.
3110
31112012-10-01  Pavel Feldman  <pfeldman@chromium.org>
3112
3113        Web Inspector: do not use InspectorInstrumentation::hasFrontends() check when collecting stacks
3114        https://bugs.webkit.org/show_bug.cgi?id=96730
3115
3116        Reviewed by Vsevolod Vlasov.
3117
3118        - Introduced InspectorInstrumentation::console|timeline|runtime|canvasAgentEnabled
3119        - Using it all over the place instead of the hasFrontend (the latter is now only used once to guard hot path)
3120        - Introduced explicit "enabled" state of the console and runtime agents
3121
3122        * bindings/js/JSHTMLCanvasElementCustom.cpp:
3123        (WebCore::JSHTMLCanvasElement::getContext):
3124        * bindings/js/JSMainThreadExecState.h:
3125        (WebCore::JSMainThreadExecState::instrumentFunctionCall):
3126        * bindings/js/ScheduledAction.cpp:
3127        (WebCore::ScheduledAction::create):
3128        * bindings/js/ScriptCallStackFactory.cpp:
3129        (WebCore::createScriptCallStackForConsole):
3130        * bindings/js/ScriptCallStackFactory.h:
3131        (WebCore):
3132        * bindings/scripts/CodeGeneratorJS.pm:
3133        (GenerateCallWith):
3134        * bindings/scripts/CodeGeneratorV8.pm:
3135        (GenerateCallWith):
3136        * bindings/scripts/test/JS/JSTestObj.cpp:
3137        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
3138        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
3139        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
3140        * bindings/scripts/test/V8/V8TestObj.cpp:
3141        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
3142        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
3143        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
3144        * bindings/v8/ScriptCallStackFactory.cpp:
3145        (WebCore::createScriptCallStackForConsole):
3146        * bindings/v8/ScriptCallStackFactory.h:
3147        (WebCore):
3148        * bindings/v8/ScriptController.cpp:
3149        (WebCore::ScriptController::callFunctionWithInstrumentation):
3150        * bindings/v8/V8DOMWindowShell.cpp:
3151        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
3152        * bindings/v8/V8WorkerContextEventListener.cpp:
3153        (WebCore::V8WorkerContextEventListener::callListenerFunction):
3154        * bindings/v8/custom/V8DOMWindowCustom.cpp:
3155        (WebCore::WindowSetTimeoutImpl):
3156        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3157        (WebCore::V8HTMLCanvasElement::getContextCallback):
3158        * bindings/v8/custom/V8WorkerContextCustom.cpp:
3159        (WebCore::SetTimeoutOrInterval):
3160        * inspector/Inspector.json:
3161        * inspector/InspectorConsoleAgent.cpp:
3162        (WebCore):
3163        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
3164        (WebCore::InspectorConsoleAgent::enable):
3165        (WebCore::InspectorConsoleAgent::disable):
3166        (WebCore::InspectorConsoleAgent::clearMessages):
3167        (WebCore::InspectorConsoleAgent::clearFrontend):
3168        (WebCore::InspectorConsoleAgent::addConsoleMessage):
3169        * inspector/InspectorConsoleAgent.h:
3170        (WebCore::InspectorConsoleAgent::enabled):
3171        (InspectorConsoleAgent):
3172        * inspector/InspectorController.cpp:
3173        (WebCore::InspectorController::connectFrontend):
3174        (WebCore::InspectorController::disconnectFrontend):
3175        * inspector/InspectorInstrumentation.cpp:
3176        (WebCore):
3177        (WebCore::InspectorInstrumentation::canvasAgentEnabled):
3178        (WebCore::InspectorInstrumentation::consoleAgentEnabled):
3179        (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
3180        (WebCore::InspectorInstrumentation::timelineAgentEnabled):
3181        * inspector/InspectorInstrumentation.h:
3182        (InspectorInstrumentation):
3183        (WebCore::InspectorInstrumentation::canvasAgentEnabled):
3184        (WebCore::InspectorInstrumentation::consoleAgentEnabled):
3185        (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
3186        (WebCore::InspectorInstrumentation::timelineAgentEnabled):
3187        * inspector/InspectorRuntimeAgent.cpp:
3188        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
3189        * inspector/InspectorRuntimeAgent.h:
3190        (WebCore::InspectorRuntimeAgent::enabled):
3191        (WebCore::InspectorRuntimeAgent::enable):
3192        (WebCore::InspectorRuntimeAgent::disable):
3193        (InspectorRuntimeAgent):
3194        * inspector/PageRuntimeAgent.cpp:
3195        (PageRuntimeAgentState):
3196        (WebCore::PageRuntimeAgent::clearFrontend):
3197        (WebCore::PageRuntimeAgent::restore):
3198        (WebCore):
3199        (WebCore::PageRuntimeAgent::enable):
3200        (WebCore::PageRuntimeAgent::disable):
3201        (WebCore::PageRuntimeAgent::didClearWindowObject):
3202        (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
3203        (WebCore::PageRuntimeAgent::reportExecutionContextCreation):
3204        * inspector/PageRuntimeAgent.h:
3205        (PageRuntimeAgent):
3206        * inspector/WorkerRuntimeAgent.cpp:
3207        * inspector/WorkerRuntimeAgent.h:
3208        * inspector/front-end/RuntimeModel.js:
3209        (WebInspector.RuntimeModel.prototype._didLoadCachedResources):
3210        * page/DOMWindow.cpp:
3211        (WebCore::DOMWindow::postMessage):
3212
32132012-10-01  Kenichi Ishibashi  <bashi@chromium.org>
3214
3215        [WebSocket] Setting wrong value to binaryType should not raise exception
3216        https://bugs.webkit.org/show_bug.cgi?id=97999
3217
3218        Reviewed by Yuta Kitamura.
3219
3220        Don't raise exception when binaryType is the wrong value.
3221        Instead, show an error message to console.
3222
3223        No new tests. Updated existing test.
3224
3225        * Modules/websockets/WebSocket.cpp:
3226        (WebCore::WebSocket::setBinaryType): See the description.
3227        * Modules/websockets/WebSocket.h:
3228        (WebSocket): Removed ExceptionCode argument of setBinaryType().
3229        * Modules/websockets/WebSocket.idl:
3230        Removed "setter raises(DOMException)" and "[TreatReturnedNullStringAs=Undefined]".
3231        They are no longer needed.
3232
32332012-10-01  Yoshifumi Inoue  <yosin@chromium.org>
3234
3235        [Forms] Adding DateTimeWeekFieldElement for multiple fields "week" input UI
3236        https://bugs.webkit.org/show_bug.cgi?id=97992
3237
3238        Reviewed by Kent Tamura.
3239
3240        This patch introduces DateTimeWeekFieldElement class for implementing
3241        multiple fields "week" input UI.
3242
3243        No new tests. This patch doesn't change behavior.
3244
3245        * html/shadow/DateTimeFieldElements.cpp:
3246        (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement): Added.
3247        (WebCore::DateTimeWeekFieldElement::create): Added.
3248        (WebCore::DateTimeWeekFieldElement::populateDateTimeFieldsState): Added.
3249        (WebCore::DateTimeWeekFieldElement::setValueAsDate): Added.
3250        (WebCore::DateTimeWeekFieldElement::setValueAsDateTimeFieldsState): Added.
3251        * html/shadow/DateTimeFieldElements.h:
3252        (DateTimeWeekFieldElement): Added.
3253        * platform/DateComponents.h:
3254        (WebCore::DateComponents): Added declarations of static const member variables, DateComponents::maximumWeekNumber and minimumWeekNumber.
3255        * platform/DateComponents.cpp: Added definitions of DateComponents::maximumWeekNumber and minimumWeekNumber.
3256        (WebCore::DateComponents::maxWeekNumberInYear): Changed to use maximumWeekNumber.
3257        (WebCore::DateComponents::parseWeek): Changed to use minimumWeekNumber.
3258
32592012-09-30  Vsevolod Vlasov  <vsevik@chromium.org>
3260
3261        Web Inspector: Separate CSSStyleModelResourceBinding into resource and content binding.
3262        https://bugs.webkit.org/show_bug.cgi?id=97994
3263
3264        Reviewed by Pavel Feldman.
3265
3266        Extracted StyleContentBinding from CSSStyleModelResourceBinding.
3267        Now CSSStyleModelResourceBinding is responsible for mapping between stylesheets and resources.
3268        StyleContentBinding is now responsible for synchronization between stylesheet content and uiSourceCode content.
3269
3270        * inspector/front-end/CSSStyleModel.js:
3271        (WebInspector.CSSStyleModelResourceBinding):
3272        (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
3273        (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
3274        * inspector/front-end/StyleSource.js:
3275        (WebInspector.StyleSource.prototype._commitIncrementalEdit):
3276        * inspector/front-end/StylesSourceMapping.js:
3277        (WebInspector.StyleContentBinding):
3278        (WebInspector.StyleContentBinding.prototype.setStyleContent.callback):
3279        (WebInspector.StyleContentBinding.prototype.setStyleContent):
3280        (WebInspector.StyleContentBinding.prototype._innerSetContent.callback):
3281        (WebInspector.StyleContentBinding.prototype._innerSetContent):
3282        (WebInspector.StyleContentBinding.prototype._styleSheetChanged.callback):
3283        (WebInspector.StyleContentBinding.prototype._styleSheetChanged):
3284        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
3285        * inspector/front-end/inspector.js:
3286
32872012-10-01  Alexander Pavlov  <apavlov@chromium.org>
3288
3289        Web Inspector: [Device Metrics] Remove the gutter overlay moving its functionality into the InspectorOverlay
3290        https://bugs.webkit.org/show_bug.cgi?id=97799
3291
3292        Reviewed by Pavel Feldman.
3293
3294        Re-applying r129746 with test flakiness fixed.
3295
3296        In order to reduce the amount of port-specific code, the gutter overlay painted in the device metrics emulation mode
3297        has been replaced by the respective functionality in the HTML-based InspectorOverlay in WebCore. The InspectorOverlay
3298        now covers the entire WebView rather than the FrameView only.
3299
3300        * inspector/InspectorController.cpp:
3301        (WebCore::InspectorController::webViewResized):
3302        (WebCore):
3303        * inspector/InspectorController.h:
3304        (WebCore):
3305        (InspectorController):
3306        * inspector/InspectorOverlay.cpp:
3307        (WebCore::InspectorOverlay::InspectorOverlay):
3308        (WebCore::InspectorOverlay::paint):
3309        (WebCore::InspectorOverlay::resize):
3310        (WebCore):
3311        (WebCore::InspectorOverlay::update):
3312        (WebCore::InspectorOverlay::drawGutter):
3313        (WebCore::InspectorOverlay::reset):
3314        * inspector/InspectorOverlay.h:
3315        (InspectorOverlay):
3316        * inspector/InspectorOverlayPage.html: Introduce the gutter painting functionality previously found in the Chromium's
3317        DeviceMetricsSupport class, which used to implement WebPageOverlay.
3318
33192012-10-01  Carlos Garcia Campos  <cgarcia@igalia.com>
3320
3321        Unreviewed. Fix GTK+ build after r129908.
3322
3323        * GNUmakefile.list.am: Add new files to compilation.
3324
33252012-10-01  Philip Rogers  <pdr@google.com>
3326
3327        Remove overzealous assert in SVGElement::localAttributeToPropertyMap
3328        https://bugs.webkit.org/show_bug.cgi?id=97291
3329
3330        Reviewed by Nikolas Zimmermann.
3331
3332        This patch removes an assert where we did not expect
3333        SVGElement::localAttributeToPropertyMap where we did not to be called. This
3334        function turns out to be useful and this patch removes that assert.
3335
3336        If we encounter a non-SVG tag during SVG parsing (e.g. <svg><price></svg>) we return a
3337        vanilla SVGElement instance from SVGElementFactory::createSVGElement. Previously,
3338        trying to animate this would ASSERT because it was not possible to determine the
3339        animated type. After this patch, an empty localAttributeToPropertyMap is used so
3340        that the animated type returned from SVGAnimateElement::determineAnimatedPropertyType
3341        is AnimatedUnknown.
3342
3343        This patch simply removes an ASSERT so no test is provided.
3344
3345        * svg/SVGElement.cpp:
3346        (WebCore::SVGElement::localAttributeToPropertyMap):
3347
33482012-10-01  Sheriff Bot  <webkit.review.bot@gmail.com>
3349
3350        Unreviewed, rolling out r130004.
3351        http://trac.webkit.org/changeset/130004
3352        https://bugs.webkit.org/show_bug.cgi?id=97996
3353
3354        Test shadow-dom-modify-chardata.html is failing (Requested by
3355        keishi on #webkit).
3356
3357        * dom/CharacterData.cpp:
3358        (WebCore::CharacterData::dispatchModifiedEvent):
3359
33602012-10-01  Keishi Hattori  <keishi@webkit.org>
3361
3362        REGRESSION(r127727): Calendar picker is ignoring step
3363        https://bugs.webkit.org/show_bug.cgi?id=97893
3364
3365        Reviewed by Kent Tamura.
3366
3367        There were two mistakes:
3368        - An if-statement to check step attribute validity was wrong, and
3369        - DateTiemChooserParameters.step was milleseconds when it should be number of days.
3370        This will be changing the DateTimeChooserParameters.step to milliseconds so we can handle steps for other input types in the future.
3371
3372        Test: fast/forms/date/calendar-picker-appearance-with-step.html
3373
3374        * Resources/pagepopups/calendarPicker.js:
3375        (CalendarPicker):
3376        * html/shadow/CalendarPickerElement.cpp:
3377        (WebCore::CalendarPickerElement::openPopup): If statement was wrong.
3378
33792012-09-30  Glenn Adams  <glenn@skynav.com>
3380
3381        Sign in front of keyframe selector causes stylesheet parsing to abort
3382        https://bugs.webkit.org/show_bug.cgi?id=96844
3383
3384        Reviewed by Simon Fraser.
3385
3386        Allow optional unary operator (+|-) on PERCENTAGE in keyframe selector.
3387
3388        Test: animations/keyframe-selector-negative-percentage.html
3389
3390        * css/CSSGrammar.y:
3391        Add maybe_unary_operator to PERCENTAGE on keyframe selector. Negative keyframe
3392        selector value is already ignored in StyleKeyframe::parseKeyString.
3393
33942012-09-30  MORITA Hajime  <morrita@google.com>
3395
3396        https://bugs.webkit.org/show_bug.cgi?id=97988
3397        Crash on FrameTree::scopedChildCount()
3398
3399        Reviewed by Kent Tamura.
3400
3401        The series of crash reports says that there are some null pointer
3402        access in scopedChildCount(). This change added a null guard
3403        against Frame::document(), that can return null.
3404
3405        No new tests. This is tied to some specific timing and is hard to reproduce.
3406
3407        * page/FrameTree.cpp:
3408        (WebCore::FrameTree::scopedChildCount):
3409        (WebCore::FrameTree::scopedChild):
3410        (WebCore):
3411
34122012-09-30  Yoshifumi Inoue  <yosin@chromium.org>
3413
3414        Make multiple fields date/time input UI related files to available all ports
3415        https://bugs.webkit.org/show_bug.cgi?id=97989
3416
3417        Reviewed by Kent Tamura.
3418
3419        This patch adds multiple fields date/time input UI related files for
3420        ports not using WebCore.gyp and simplifies include directive in
3421        MonthInputType.h and TimeInputType.h.
3422
3423        Added files are:
3424          - html/BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
3425          - html/shadow/DateTimeEditElement.{cpp,h}
3426          - html/shadow/DateTimeFieldElement.{cpp,h}
3427          - html/shadow/DateTimeFieldElements.{cpp,h}
3428          - html/shadow/DateTimeNumericFieldElement.{cpp,h}
3429          - html/shadow/DateTimeSymbolicFieldElement.{cpp,h}
3430
3431        No new tests. This patch doesn't change behavior.
3432
3433        * CMakeLists.txt: Changed to add multiple fields date/time input UI related files.
3434        * GNUmakefile.list.am: ditto
3435        * Target.pri: ditto
3436        * WebCore.vcproj/WebCore.vcproj: ditto
3437        * WebCore.xcodeproj/project.pbxproj: ditto
3438        * html/MonthInputType.h: Changed to simplify include directive for base class.
3439        * html/TimeInputType.h: ditto
3440
34412012-09-30  Keishi Hattori  <keishi@webkit.org>
3442
3443        Web Inspector: Modifications in a shadow tree don't update the Elements panel.
3444        https://bugs.webkit.org/show_bug.cgi?id=97056
3445
3446        Reviewed by Pavel Feldman.
3447
3448        Send characterDataModified event for shadow dom nodes too so they update the elements panel.
3449
3450        Test: inspector/elements/shadow-dom-modify-chardata.html
3451
3452        * dom/CharacterData.cpp:
3453        (WebCore::CharacterData::dispatchModifiedEvent):
3454
34552012-09-30  Andreas Kling  <kling@webkit.org>
3456
3457        Split EventTargetData out of NodeRareData to reduce memory use.
3458        <http://webkit.org/b/97987>
3459        <rdar://problem/12403258>
3460
3461        Reviewed by Anders Carlsson.
3462
3463        Move EventTargetData to its own Node-flag/hashmap instead of piggybacking on NodeRareData.
3464        This reduces memory consumption by 1.06MB on Membuster3. Note that NodeRareData shrinks by
3465        one pointer as well.
3466
3467        * dom/Node.cpp:
3468        (WebCore::Node::~Node):
3469        (WebCore::eventTargetDataMap):
3470        (WebCore::Node::eventTargetData):
3471        (WebCore::Node::ensureEventTargetData):
3472        (WebCore::Node::clearEventTargetData):
3473        (WebCore::Node::handleLocalEvents):
3474        * dom/Node.h:
3475        (WebCore::Node::hasEventTargetData):
3476        (WebCore::Node::setHasEventTargetData):
3477        * dom/NodeRareData.h:
3478        (NodeRareData):
3479
34802012-09-30  Andreas Kling  <kling@webkit.org>
3481
3482        444kB below CSSParser::parseDeprecatedGradient() on Membuster3.
3483        <http://webkit.org/b/97981>
3484        <rdar://problem/12403058>
3485
3486        Reviewed by Anders Carlsson.
3487
3488        Slap an inline capacity of 2 on the Vector<CSSGradientColorStop> in CSSGradientValue.
3489        This covers the majority of gradient values, and reduces memory consumption by ~250kB on Membuster3.
3490
3491        * css/CSSGradientValue.h:
3492        (WebCore::CSSGradientValue::stopCount):
3493        * css/CSSParser.cpp:
3494        (WebCore::CSSParser::parseLinearGradient):
3495        (WebCore::CSSParser::parseGradientColorStops):
3496
34972012-09-30  Mike West  <mkwst@chromium.org>
3498
3499        Remove FIXME comments refering to non-existent code in JSDOMBinding.cpp
3500        https://bugs.webkit.org/show_bug.cgi?id=97977
3501
3502        Reviewed by Adam Barth.
3503
3504        I did a quick grep through the code to determine where these FIXME
3505        comments were suggesting that code should be merged. So far as I can
3506        tell, 'immediatelyReportUnsafeAccessTo' only exists in these comments.
3507
3508        Just cleanup, no functional change.
3509
3510        * bindings/js/JSDOMBinding.cpp:
3511        (WebCore::shouldAllowAccessToFrame):
3512        (WebCore::shouldAllowAccessToDOMWindow):
3513
35142012-09-30  Martin Robinson  <mrobinson@igalia.com>
3515
3516        [TextureMapper] [WebKit2] Crash in WebCore::BitmapTextureGL::updateContents
3517        https://bugs.webkit.org/show_bug.cgi?id=97394
3518
3519        Reviewed by Noam Rosenthal.
3520
3521        When a TextureMapper is destroyed, layers can still contain references
3522        to textures obtained from that TextureMapper's texture pool. Trying to
3523        access an unreffed TextureMapper in the BitmapTexture's destructor
3524        causes a crash.
3525
3526        Instead of storing a raw pointer to a TextureMapper, we can simply store
3527        a reference to the underlying GraphicsContext3D. All TextureMapper
3528        implementations use the current GL context at this moment, so one GC3D
3529        referencing the current context is the same as any other.
3530
3531        * platform/graphics/texmap/TextureMapper.h: Remove the clearTexturePool
3532        method. It's no longer used.
3533        (WebCore::BitmapTexture::applyFilters): Add a TextureMapper* argument.
3534        * platform/graphics/texmap/TextureMapperGL.cpp:
3535        (WebCore::BitmapTextureGL::BitmapTextureGL): Keep a reference to the
3536        GraphicsContext3D instead of the TextureMapper.
3537        (WebCore::BitmapTextureGL::didReset): Use the GC3D reference.
3538        (WebCore::BitmapTextureGL::updateContents): Ditto.
3539        (WebCore::BitmapTextureGL::applyFilters): Accept the TextureMapper as an argument.
3540        (WebCore::BitmapTextureGL::initializeStencil): Use the GC3D reference.
3541        (WebCore::BitmapTextureGL::clearIfNeeded): Ditto.
3542        (WebCore::BitmapTextureGL::createFboIfNeeded): Ditto.
3543        (WebCore::BitmapTextureGL::bind): Accept the TextureMapper as an argument.
3544        (WebCore::BitmapTextureGL::~BitmapTextureGL): Use the GC3D reference.
3545        (WebCore::TextureMapperGL::~TextureMapperGL): Remove the call to clearTexturePool
3546        as it's no longer necessary.
3547        (WebCore::TextureMapperGL::bindSurface): Ditto.
3548        * platform/graphics/texmap/TextureMapperGL.h:
3549        (BitmapTextureGL): Keep a GC3D reference instead of a TextureMapper pointer.
3550        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
3551        (WebCore::BitmapTextureImageBuffer::applyFilters): Add a TextureMapper argument.
3552        * platform/graphics/texmap/TextureMapperImageBuffer.h:
3553        (BitmapTextureImageBuffer):
3554        * platform/graphics/texmap/TextureMapperLayer.cpp:
3555        (WebCore::applyFilters): Ditto.
3556
35572012-09-29  Dongwoo Joshua Im  <dw.im@samsung.com>
3558
3559        AsyncFileSystem::openFileSystem should have FileSystemType as a parameter.
3560        https://bugs.webkit.org/show_bug.cgi?id=97963
3561
3562        Reviewed by Gyuyoung Kim.
3563
3564        FileSystemType is an important information to maintain the file system,
3565        and AsyncFileSystem::openFileSystem need to get the type as a parameter.
3566        And, there are "FIXME" comments about that in WebCore source codes.
3567
3568        No new functionality, no new tests.
3569
3570        * Modules/filesystem/LocalFileSystem.cpp: Add FileSystemType as a parameter of AsyncFileSystem::openFileSystem.
3571        (WebCore::openFileSystem):
3572        (WebCore::LocalFileSystem::readFileSystem):
3573        (WebCore::LocalFileSystem::requestFileSystem):
3574        * platform/AsyncFileSystem.cpp: ditto.
3575        (WebCore::AsyncFileSystem::openFileSystem):
3576        * platform/AsyncFileSystem.h: ditto.
3577        (AsyncFileSystem):
3578        * platform/blackberry/AsyncFileSystemBlackBerry.cpp: ditto.
3579        (WebCore::AsyncFileSystem::openFileSystem):
3580        * platform/gtk/AsyncFileSystemGtk.cpp: ditto.
3581        (WebCore::AsyncFileSystem::openFileSystem):
3582
35832012-09-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3584
3585        Unreviewed, rolling out r129965.
3586        http://trac.webkit.org/changeset/129965
3587        https://bugs.webkit.org/show_bug.cgi?id=97970
3588
3589        Causes ASSERTs in workers (Requested by abarth on #webkit).
3590
3591        * bindings/v8/DOMData.cpp:
3592        (WebCore::DOMData::getCurrentStore):
3593        * bindings/v8/ScopedPersistent.h:
3594        * bindings/v8/ScriptController.cpp:
3595        (WebCore::ScriptController::resetIsolatedWorlds):
3596        (WebCore::ScriptController::evaluateInIsolatedWorld):
3597        (WebCore::ScriptController::currentWorldContext):
3598        * bindings/v8/V8Binding.cpp:
3599        (WebCore::perContextDataForCurrentWorld):
3600        * bindings/v8/V8DOMWindowShell.cpp:
3601        (WebCore::setIsolatedWorldField):
3602        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
3603        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
3604        (WebCore):
3605        (WebCore::isolatedContextWeakCallback):
3606        (WebCore::V8DOMWindowShell::disposeContext):
3607        (WebCore::V8DOMWindowShell::initializeIfNeeded):
3608        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
3609        * bindings/v8/V8DOMWindowShell.h:
3610        (V8DOMWindowShell):
3611        (WebCore::V8DOMWindowShell::getEntered):
3612        * bindings/v8/V8DOMWrapper.h:
3613        (WebCore::V8DOMWrapper::getCachedWrapper):
3614        * bindings/v8/WorldContextHandle.cpp:
3615        (WebCore::WorldContextHandle::WorldContextHandle):
3616        * bindings/v8/custom/V8DocumentCustom.cpp:
3617        (WebCore::toV8):
3618        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3619        (WebCore::toV8):
3620        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3621        (WebCore::toV8):
3622        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
3623        (WebCore::V8XMLHttpRequest::constructorCallback):
3624
36252012-09-29  Emil A Eklund  <eae@chromium.org>
3626
3627        Unreviewed build fix for chromium/clank.
3628
3629        * platform/FractionalLayoutUnit.h:
3630        (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
3631
36322012-09-29  Byungwoo Lee  <bw80.lee@samsung.com>
3633
3634        Fix build warning : -Wparentheses.
3635        https://bugs.webkit.org/show_bug.cgi?id=97961
3636
3637        Reviewed by Kentaro Hara.
3638
3639        Explicit braces are added around the && statement to fix -Wparentheses warning.
3640
3641        * mathml/MathMLElement.h:
3642        (WebCore::toMathMLElement):
3643
36442012-09-29  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3645
3646        Scroll offset of flex items lost during relayout
3647        https://bugs.webkit.org/show_bug.cgi?id=97706
3648
3649        Reviewed by Tony Chang.
3650
3651        Test: fast/flexbox/overflow-keep-scrollpos.html
3652
3653        Flex box does a second pass layout of the flex children.
3654
3655        We layout the child without scrollbars (to get the size
3656        used for flexing), then we relayout the child at its final size.
3657
3658        We must not apply the scroll position during the first pass,
3659        as it will be clamped to 0 (no scrolling possible).
3660
3661        * rendering/RenderBlock.h:
3662        (RenderBlock):
3663
3664        Make updateScrollInfoAfterLayout public
3665
3666        * rendering/RenderFlexibleBox.cpp:
3667        (WebCore::RenderFlexibleBox::layoutBlock):
3668
3669        Delay applying scroll info until we clamp the size of the child
3670        and get scrollbars back again. For this to work we use
3671        RenderBlock::updateScrollInfoAfterLayout instead of the non-guarded
3672        RenderLayer::updateScrollInfoAfterLayout.
3673
3674        * rendering/RenderBlock.cpp:
3675        (WebCore::RenderBlock::updateScrollInfoAfterLayout):
3676
3677        Add workaround for now to keep passing css3/flexbox/child-overflow.html
3678
3679        Basically do not postpone applying scroll changes for RenderBlocks
3680        with opposite writing mode, as they need to have their content
3681        overflow in the right direction.
3682
36832012-09-29  Dimitri Glazkov  <dglazkov@chromium.org>
3684
3685        Slightly improve clarity of the patch in bug 78595.
3686        https://bugs.webkit.org/show_bug.cgi?id=97944
3687
3688        Reviewed by Andreas Kling.
3689
3690        Since all types of relations, except SubSelector are effectively ignoring the calculated value of pseudoId, make the code reflect that a bit more clearly. 
3691
3692        No change in behavior, covered by test in bug 78595.
3693
3694        * css/SelectorChecker.cpp:
3695        (WebCore::SelectorChecker::checkSelector): Added ignoreDynamicPseudo value that's given to all callsites that should ignore the result.
3696
36972012-09-29  Kent Tamura  <tkent@chromium.org>
3698
3699        Remove LocalizedDate*.*
3700        https://bugs.webkit.org/show_bug.cgi?id=97957
3701
3702        Reviewed by Kentaro Hara.
3703
3704        The functions declared in LocalizedDate.h are replaced with member
3705        functions of Localizer. LocalizedDate.h and its implementations
3706        are not needed any more.
3707
3708        No new tests. This should not change any behavior.
3709
3710        * GNUmakefile.list.am: Remove LocalizedDate.h and LocalizedDateNode.cpp
3711        * WebCore.vcproj/WebCore.vcproj: ditto.
3712        * WebCore.xcodeproj/project.pbxproj: ditto.
3713        * CMakeLists.txt: Remove LocalizedDateNone.cpp
3714        * Target.pri: ditto.
3715        * WebCore.gyp/WebCore.gyp: Remove LocalizedDate*.*. Update a comment.
3716        * WebCore.gypi: Remove LocalizedDate*.*.
3717
3718        * html/BaseDateAndTimeInputType.cpp: Use Localizer functions.
3719        (WebCore::BaseDateAndTimeInputType::localizeValue):
3720        (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
3721        * html/DateInputType.cpp: ditto.
3722        (WebCore::DateInputType::fixedPlaceholder):
3723
3724        * platform/text/Localizer.h:
3725        (Localizer): Move comments from LocalziedDate.h.
3726        * platform/text/mac/LocaleMac.mm:
3727        Remove unnecessary include of LocalizedDate.h.
3728
3729        * platform/text/LocalizedDate.h: Removed.
3730        * platform/text/LocalizedDateICU.cpp: Removed.
3731        * platform/text/LocalizedDateNone.cpp: Removed.
3732        * platform/text/LocalizedDateWin.cpp: Removed.
3733        * platform/text/mac/LocalizedDateMac.cpp: Removed.
3734
37352012-09-28  Adam Barth  <abarth@webkit.org>
3736
3737        [V8] The concept of forceNewObject is unneeded (dom-traverse gets 3% faster)
3738        https://bugs.webkit.org/show_bug.cgi?id=97943
3739
3740        Reviewed by Kentaro Hara.
3741
3742        We don't need the concept of forceNewObject. It doesn't do anything
3743        useful and it makes the bindings slower.
3744
3745        * bindings/scripts/CodeGeneratorV8.pm:
3746        (GenerateHeader):
3747        (GenerateToV8Converters):
3748        (NativeToJSValue):
3749        * bindings/v8/custom/V8DocumentCustom.cpp:
3750        (WebCore::toV8):
3751        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3752        (WebCore::toV8):
3753        * bindings/v8/custom/V8HTMLElementCustom.cpp:
3754        (WebCore::toV8):
3755        * bindings/v8/custom/V8NodeCustom.cpp:
3756        (WebCore::toV8Slow):
3757        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3758        (WebCore::toV8):
3759        * bindings/v8/custom/V8SVGElementCustom.cpp:
3760        (WebCore::toV8):
3761        * dom/make_names.pl:
3762        (printWrapperFactoryCppFile):
3763        (printWrapperFactoryHeaderFile):
3764
37652012-09-28  Elliott Sprehn  <esprehn@chromium.org>
3766
3767        Allow any kind of v8::Handle in invokeCallback instead of requiring a v8::Persistent.
3768        https://bugs.webkit.org/show_bug.cgi?id=97956
3769
3770        Reviewed by Adam Barth.
3771
3772        Use v8::Handle instead of v8::Persistent for the callback argument on invokeCallback.
3773        There doesn't seem to be any reason for requiring a Persistent, and it makes it harder
3774        to use this API.
3775
3776        This is factored out of http://wkbug.com/93661
3777
3778        No new tests, this is functionally equivalent.
3779
3780        * bindings/v8/V8Callback.cpp:
3781        (WebCore::invokeCallback):
3782        * bindings/v8/V8Callback.h:
3783        (WebCore):
3784
37852012-09-28  Anders Carlsson  <andersca@apple.com>
3786
3787        Remove support for method overloading from bridge code
3788        https://bugs.webkit.org/show_bug.cgi?id=97959
3789
3790        Reviewed by Dan Bernstein.
3791
3792        The method overloading handling was only in place for the (now removed) Java bridge. 
3793        Replace MethodList everywhere with a single Method pointer.
3794
3795        * GNUmakefile.am:
3796        * GNUmakefile.list.am:
3797        * WebCore.exp.in:
3798        * bridge/c/c_class.cpp:
3799        (JSC::Bindings::CClass::methodNamed):
3800        * bridge/c/c_class.h:
3801        (CClass):
3802        * bridge/c/c_instance.cpp:
3803        (JSC::Bindings::CRuntimeMethod::create):
3804        (JSC::Bindings::CRuntimeMethod::CRuntimeMethod):
3805        (JSC::Bindings::CInstance::getMethod):
3806        (JSC::Bindings::CInstance::invokeMethod):
3807        * bridge/jsc/BridgeJSC.h:
3808        (Bindings):
3809        (Class):
3810        * bridge/objc/objc_class.h:
3811        (ObjcClass):
3812        * bridge/objc/objc_class.mm:
3813        (JSC::Bindings::ObjcClass::methodNamed):
3814        * bridge/objc/objc_instance.mm:
3815        (ObjCRuntimeMethod::create):
3816        (ObjCRuntimeMethod::ObjCRuntimeMethod):
3817        (ObjcInstance::invokeMethod):
3818        * bridge/qt/qt_class.cpp:
3819        (JSC::Bindings::QtClass::methodNamed):
3820        * bridge/qt/qt_class.h:
3821        (QtClass):
3822        * bridge/qt/qt_instance.cpp:
3823        (JSC::Bindings::QtInstance::getMethod):
3824        * bridge/runtime_method.cpp:
3825        (JSC::RuntimeMethod::RuntimeMethod):
3826        (JSC::RuntimeMethod::lengthGetter):
3827        (JSC::callRuntimeMethod):
3828        * bridge/runtime_method.h:
3829        (JSC::RuntimeMethod::create):
3830        (JSC::RuntimeMethod::method):
3831        (RuntimeMethod):
3832        * bridge/runtime_object.cpp:
3833        (JSC::Bindings::RuntimeObject::getOwnPropertySlot):
3834        (JSC::Bindings::RuntimeObject::getOwnPropertyDescriptor):
3835
38362012-09-28  Elliott Sprehn  <esprehn@chromium.org>
3837
3838        Fix compilation of V8DependentRetained and JSDependentRetained.
3839        https://bugs.webkit.org/show_bug.cgi?id=97955
3840
3841        Reviewed by Kentaro Hara.
3842
3843        Fix bad usage of putDirect and removeDirect from JSDependentRetained and fix
3844        incorrect assumptions about how weak handles work in V8. This is refactored
3845        out of the patch on http://wkbug.com/93661
3846
3847        No tests needed, this just fixes the compile and wrong usage of ScopedPersistent.
3848
3849        * bindings/js/JSDependentRetained.h:
3850        (WebCore::JSDependentRetained::JSDependentRetained):
3851        (WebCore::JSDependentRetained::retain):
3852        (WebCore::JSDependentRetained::release):
3853        (JSDependentRetained):
3854        * bindings/v8/V8DependentRetained.h:
3855        (WebCore::V8DependentRetained::V8DependentRetained):
3856        (WebCore::V8DependentRetained::retain):
3857        (WebCore::V8DependentRetained::weakCallback):
3858
38592012-09-28  Ojan Vafai  <ojan@chromium.org>
3860
3861        Fix chromium build after http://trac.webkit.org/changeset/129964.
3862        * WebCore.gypi:
3863
38642012-09-28  Simon Fraser  <simon.fraser@apple.com>
3865
3866        Crash re-entering Document layout with frame flattening enabled
3867        https://bugs.webkit.org/show_bug.cgi?id=97841
3868
3869        Reviewed by Brady Eidson.
3870
3871        When creating a CachedFrame, clearTimers on the Frame later; it has to
3872        be done after documentWillSuspendForPageCache(), because the style
3873        changes that HTMLPlugInImageElement::documentWillSuspendForPageCache()
3874        do can schedule a layout on the FrameView, and we don't want this layout
3875        timer to fire while the page is in the page cache.
3876
3877        Add an assertion in FrameView::layout() that the document is not in
3878        the page cache. Without the above change, this would assert in
3879        the plugins/frameset-with-plugin-frame.html test.
3880
3881        * history/CachedFrame.cpp:
3882        (WebCore::CachedFrame::CachedFrame):
3883        * page/FrameView.cpp:
3884        (WebCore::FrameView::layout):
3885
38862012-09-28  Dan Carney  <dcarney@google.com>
3887
3888        Remove V8DOMWindowShell::getEntered
3889        https://bugs.webkit.org/show_bug.cgi?id=96637
3890
3891        Reviewed by Adam Barth.
3892
3893        V8DOMWindowShell::getEntered was refactored so that the window shell
3894        no longer has to be kept alive by a v8 context but rather a smaller
3895        object.
3896
3897        No new tests. No change in functionality.
3898
3899        * bindings/v8/DOMData.cpp:
3900        (WebCore::DOMData::getCurrentStore):
3901        * bindings/v8/ScopedPersistent.h:
3902        (WebCore::ScopedPersistent::leakHandle):
3903        (ScopedPersistent):
3904        * bindings/v8/ScriptController.cpp:
3905        (WebCore::ScriptController::resetIsolatedWorlds):
3906        (WebCore::ScriptController::evaluateInIsolatedWorld):
3907        (WebCore::ScriptController::currentWorldContext):
3908        * bindings/v8/V8Binding.cpp:
3909        (WebCore::perContextDataForCurrentWorld):
3910        * bindings/v8/V8DOMWindowShell.cpp:
3911        (WebCore::setIsolatedWorldField):
3912        (WebCore::V8DOMWindowShell::toIsolatedContextData):
3913        (WebCore::isolatedContextWeakCallback):
3914        (WebCore::V8DOMWindowShell::disposeContext):
3915        (WebCore::V8DOMWindowShell::clearIsolatedShell):
3916        (WebCore):
3917        (WebCore::V8DOMWindowShell::initializeIfNeeded):
3918        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
3919        * bindings/v8/V8DOMWindowShell.h:
3920        (V8DOMWindowShell):
3921        (IsolatedContextData):
3922        (WebCore::V8DOMWindowShell::IsolatedContextData::create):
3923        (WebCore::V8DOMWindowShell::IsolatedContextData::world):
3924        (WebCore::V8DOMWindowShell::IsolatedContextData::perContextData):
3925        (WebCore::V8DOMWindowShell::IsolatedContextData::setSecurityOrigin):
3926        (WebCore::V8DOMWindowShell::IsolatedContextData::securityOrigin):
3927        (WebCore::V8DOMWindowShell::IsolatedContextData::IsolatedContextData):
3928        (WebCore::V8DOMWindowShell::enteredIsolatedContext):
3929        (WebCore::V8DOMWindowShell::enteredIsolatedContextData):
3930        * bindings/v8/V8DOMWrapper.h:
3931        (WebCore::V8DOMWrapper::getCachedWrapper):
3932        * bindings/v8/WorldContextHandle.cpp:
3933        (WebCore::WorldContextHandle::WorldContextHandle):
3934        * bindings/v8/custom/V8DocumentCustom.cpp:
3935        (WebCore::toV8):
3936        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3937        (WebCore::toV8):
3938        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3939        (WebCore::toV8):
3940        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
3941        (WebCore::V8XMLHttpRequest::constructorCallback):
3942
39432012-09-28  Anders Carlsson  <andersca@apple.com>
3944
3945        Remove Java bridge
3946        https://bugs.webkit.org/show_bug.cgi?id=97954
3947
3948        Reviewed by Sam Weinig.
3949
3950        The Java bridge is not used by any port; Mac now has a NPAPI Java plug-in.
3951
3952        * WebCore.exp.in:
3953        * WebCore.xcodeproj/project.pbxproj:
3954        * bindings/js/ScriptController.cpp:
3955        (WebCore::ScriptController::ScriptController):
3956        * bindings/js/ScriptController.h:
3957        (ScriptController):
3958        * bindings/js/ScriptControllerMac.mm:
3959        (WebCore::ScriptController::createScriptInstanceForWidget):
3960        * bridge/jni/JNIUtility.cpp: Removed.
3961        * bridge/jni/JNIUtility.h: Removed.
3962        * bridge/jni/JavaType.h: Removed.
3963        * bridge/jni/JobjectWrapper.cpp: Removed.
3964        * bridge/jni/JobjectWrapper.h: Removed.
3965        * bridge/jni/jni_jsobject.h: Removed.
3966        * bridge/jni/jni_jsobject.mm: Removed.
3967        * bridge/jni/jni_objc.mm: Removed.
3968        * bridge/jni/jsc/JNIUtilityPrivate.cpp: Removed.
3969        * bridge/jni/jsc/JNIUtilityPrivate.h: Removed.
3970        * bridge/jni/jsc/JavaArrayJSC.cpp: Removed.
3971        * bridge/jni/jsc/JavaArrayJSC.h: Removed.
3972        * bridge/jni/jsc/JavaClassJSC.cpp: Removed.
3973        * bridge/jni/jsc/JavaClassJSC.h: Removed.
3974        * bridge/jni/jsc/JavaFieldJSC.cpp: Removed.
3975        * bridge/jni/jsc/JavaFieldJSC.h: Removed.
3976        * bridge/jni/jsc/JavaInstanceJSC.cpp: Removed.
3977        * bridge/jni/jsc/JavaInstanceJSC.h: Removed.
3978        * bridge/jni/jsc/JavaMethodJSC.cpp: Removed.
3979        * bridge/jni/jsc/JavaMethodJSC.h: Removed.
3980        * bridge/jni/jsc/JavaRuntimeObject.cpp: Removed.
3981        * bridge/jni/jsc/JavaRuntimeObject.h: Removed.
3982        * bridge/jni/jsc/JavaStringJSC.h: Removed.
3983        * bridge/runtime_root.h:
3984        * loader/FrameLoaderClient.h:
3985        (FrameLoaderClient):
3986
39872012-09-28  Dimitri Glazkov  <dglazkov@chromium.org>
3988
3989        Remove unused parameter in SelectorChecker::checkScrollbarPseudoClass.
3990        https://bugs.webkit.org/show_bug.cgi?id=97941
3991
3992        Reviewed by Kentaro Hara.
3993
3994        The last parameter in checkScrollbarPseudoClass was unused, so I removed it. 
3995
3996        No change in behavior, just refactoring.
3997
3998        * css/SelectorChecker.cpp:
3999        (WebCore::SelectorChecker::checkOneSelector): Changed the callsite to accommodate the change.
4000        (WebCore::SelectorChecker::checkScrollbarPseudoClass): Removed last param.
4001        * css/SelectorChecker.h: Ditto.
4002
40032012-09-27  Alpha Lam  <hclam@chromium.org>
4004
4005        REGRESSION(r122215) - CachedImage::likelyToBeUsedSoon crashes on accessing a deleted CachedImageClient
4006        https://bugs.webkit.org/show_bug.cgi?id=97749
4007
4008        Reviewed by James Robinson.
4009
4010        All implementations of Clipboard set themselves as clients to CachedImage
4011        through the JS API setDrageImage() but they do not detach during destruction.
4012        This causes memory corruption when CachedImage tries to access a deleted client
4013        when MemoryCache prunes and calls CachedImage::likelyToUsedSoon().
4014
4015        Manual test added: ManualTests/drag-image-no-crash.html
4016
4017        * platform/chromium/ClipboardChromium.cpp:
4018        (WebCore::ClipboardChromium::~ClipboardChromium):
4019        * platform/gtk/ClipboardGtk.cpp:
4020        (WebCore::ClipboardGtk::~ClipboardGtk):
4021        * platform/mac/ClipboardMac.mm:
4022        (WebCore::ClipboardMac::~ClipboardMac):
4023        * platform/win/ClipboardWin.cpp:
4024        (WebCore::ClipboardWin::~ClipboardWin):
4025
40262012-09-28  Anders Carlsson  <andersca@apple.com>
4027
4028        Remove Instance::setDidExecuteFunction
4029        https://bugs.webkit.org/show_bug.cgi?id=97952
4030
4031        Reviewed by Alexey Proskuryakov.
4032
4033        Instance::setDidExecuteFunction was added over 8 years ago to fix a bug where Objective-C
4034        DOM calls weren't updating the document correctly. Nowadays we correctly invalidate the DOM tree
4035        when these calls are made so we don't need an extra step to do so.
4036
4037        * bindings/js/ScriptControllerMac.mm:
4038        (WebCore):
4039        (WebCore::ScriptController::initJavaJSBindings):
4040        * bindings/objc/WebScriptObject.mm:
4041        (-[WebScriptObject callWebScriptMethod:withArguments:]):
4042        (-[WebScriptObject evaluateWebScript:]):
4043        (-[WebScriptObject setValue:forKey:]):
4044        (-[WebScriptObject valueForKey:]):
4045        (-[WebScriptObject removeWebScriptKey:]):
4046        (-[WebScriptObject hasWebScriptKey:]):
4047        (-[WebScriptObject stringRepresentation]):
4048        (-[WebScriptObject webScriptValueAtIndex:]):
4049        (-[WebScriptObject setWebScriptValueAtIndex:value:]):
4050        * bridge/jsc/BridgeJSC.cpp:
4051        * bridge/jsc/BridgeJSC.h:
4052        (Instance):
4053
40542012-09-28  Emil A Eklund  <eae@chromium.org>
4055
4056        Improve saturation arithmetic support in FractionalLayoutUnit
4057        https://bugs.webkit.org/show_bug.cgi?id=97938
4058
4059        Reviewed by Levi Weintraub.
4060
4061        Fix bug in FractionalLayoutUnit::setValue where greater than or
4062        equals is used instead of greater than to clamp the values. 
4063        Add SATURATED_LAYOUT_ARITHMETIC support to round preventing it
4064        from overflowing when adding the fraction.
4065
4066        Test: fast/sub-pixel/large-sizes.html
4067
4068        * platform/FractionalLayoutUnit.h:
4069        (WebCore::FractionalLayoutUnit::round):
4070        (WebCore::FractionalLayoutUnit::setValue):
4071
40722012-09-28  Luiz Agostini  <luiz.agostini@nokia.com>
4073
4074        TextureMapperGL destructor crashes
4075        https://bugs.webkit.org/show_bug.cgi?id=97942
4076
4077        Reviewed by Noam Rosenthal.
4078
4079        BitmapTextureGL destructor uses a TextureMapperGL instance. The problem is that 
4080        BitmapTextureGL objects are destroyed on TextureMapper destructor and at that 
4081        time TextureMapperGL specific methods and data are not available any more.
4082
4083        This patch creates a new protected method TextureMapper::clearTexturePool()
4084        that is called in TextureMapperGL's destructor.
4085
4086        * platform/graphics/texmap/TextureMapper.h:
4087        (WebCore::TextureMapper::clearTexturePool):
4088        * platform/graphics/texmap/TextureMapperGL.cpp:
4089        (WebCore::TextureMapperGL::~TextureMapperGL):
4090
40912012-09-28  Julien Chaffraix  <jchaffraix@webkit.org>
4092
4093        REGRESSION(r124168): Null crash in RenderLayer::createScrollbar
4094        https://bugs.webkit.org/show_bug.cgi?id=96863
4095
4096        Reviewed by Abhishek Arya.
4097
4098        After r124168, we synchronously create any overflow:scroll scrollbar on the first style change - we used to wait
4099        until layout was called. The issue is that the logic in RenderLayer assumes that our node is completely attached
4100        when the style change is dispatched. The crash occured because the 'content' image code path in
4101        RenderObject::createObject triggered a style change too early.
4102
4103        Test: scrollbars/scrollbar-content-crash.html
4104
4105        * rendering/RenderObject.cpp:
4106        (WebCore::RenderObject::createObject):
4107        We need a style associated with the new RenderImage to call setImageResource but we don't need to trigger a
4108        style change.
4109
41102012-09-28  Ben Wagner  <bungeman@chromium.org>
4111
4112        Chromium should respect 'text-rendering:geometricPrecision' by disabling hinting.
4113        https://bugs.webkit.org/show_bug.cgi?id=97932
4114
4115        Reviewed by Stephen White.
4116
4117        When text-redering:geometricPrecision css property is present, the specification states that hinting should be disabled. This change does so.
4118
4119        This also provides users a more stable and sane means of achieving the result webkit-font-smoothing:antialiased has been providing by accident.
4120        See http://crbug.com/152304 . 
4121
4122        * platform/graphics/skia/FontSkia.cpp:
4123        (WebCore::setupPaint):
4124
41252012-09-28  Simon Fraser  <simon.fraser@apple.com>
4126
4127        Crash re-entering Document layout with frame flattening enabled
4128        https://bugs.webkit.org/show_bug.cgi?id=97841
4129
4130        Reviewed by Kenneth Rohde Christiansen.
4131
4132        Walking up to parent FrameViews when doing a frame-flattening
4133        layout should walk via the Frame tree, not the Widget hierarchy.
4134        Walking via the Frame tree ensures that we don't walk up to the
4135        root Frame when laying out a subframe that is in the page cache.
4136        That's bad, because the root Frame is reused for the new
4137        page, and laying it out from a frame in the page cache causes
4138        re-entrant layout.
4139
4140        Test: plugins/frameset-with-plugin-frame.html
4141
4142        * page/FrameView.cpp:
4143        (WebCore::FrameView::parentFrameView):
4144
41452012-09-28  Sheriff Bot  <webkit.review.bot@gmail.com>
4146
4147        Unreviewed, rolling out r129911.
4148        http://trac.webkit.org/changeset/129911
4149        https://bugs.webkit.org/show_bug.cgi?id=97933
4150
4151        Inspector test crashes on win debug (Requested by jsbell on
4152        #webkit).
4153
4154        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
4155        (WebCore::IDBTransactionBackendImpl::abort):
4156        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
4157
41582012-09-28  Yong Li  <yoli@rim.com>
4159
4160        [HarfBuzz] harfbuzz expects log_clusters to have same length as other buffers.
4161        https://bugs.webkit.org/show_bug.cgi?id=97725
4162
4163        Reviewed by Tony Chang.
4164
4165        log_clusters should have same length as other buffers, which is number of glyphs.
4166
4167        Test: fast/text/international/harfbuzz-buffer-overrun.html
4168
4169        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
4170        (WebCore::ComplexTextController::ComplexTextController):
4171        (WebCore::ComplexTextController::~ComplexTextController):
4172        (WebCore::ComplexTextController::deleteGlyphArrays):
4173        (WebCore::ComplexTextController::createGlyphArrays):
4174
41752012-09-28  Brian Salomon  <bsalomon@google.com>
4176
4177        Add canvas to set of elements that do not allow style sharing in order to provoke RenderLayer creation
4178        https://bugs.webkit.org/show_bug.cgi?id=97013
4179
4180        Reviewed by James Robinson.
4181
4182        This allows RenderLayers to be created for canvas elements when they are accelerated. Otherwise, we can exit out of RenderObject::setStyle before the layer is created.
4183
4184        Test: fast/canvas/canvas-render-layer.html
4185
4186        * css/StyleResolver.cpp:
4187        (WebCore::StyleResolver::collectMatchingRulesForList):
4188        * rendering/RenderObject.cpp:
4189        (WebCore::RenderObject::adjustStyleDifference):
4190        (WebCore::RenderObject::setStyle):
4191
41922012-09-28  Fady Samuel  <fsamuel@chromium.org>
4193
4194        [V8] Make v8NPObjectMap per Context
4195        https://bugs.webkit.org/show_bug.cgi?id=97703
4196
4197        Reviewed by Adam Barth.
4198
4199        V8NPObject is a V8Object wrapper for use by the npruntime.
4200
4201        staticV8NPObjectMap is used for keeping record of V8NPObjects as they are created and destroyed
4202        to ensure that an existing V8NPObject wrapper is returned for a V8Object in npCreateV8ScriptObject.
4203        
4204        Once a context is gone, the NPObjects for the context are no longer valid and that record keeping
4205        no longer makes sense so we clear the map.
4206
4207        However, because the map was static, it existed for all pages across contexts. Clearing the
4208        map if one context is gone should not impact the V8NPObject map of other contexts.
4209
4210        Thus, this patch makes the V8NPObject map per context.
4211
4212        * bindings/v8/NPV8Object.cpp:
4213        (WebCore::freeV8NPObject):
4214        (WebCore::npCreateV8ScriptObject):
4215        * bindings/v8/V8PerContextData.h:
4216        (WebCore):
4217        (WebCore::V8PerContextData::v8NPObjectMap):
4218        (V8PerContextData):
4219
42202012-09-28  Alberto Garcia  <agarcia@igalia.com>
4221
4222        TextureMapperGL: fix -Wsign-compare compilation warning.
4223        https://bugs.webkit.org/show_bug.cgi?id=97928
4224
4225        Reviewed by Martin Robinson.
4226
4227        Use size_t rather than int to iterate over FilterOperations.
4228
4229        * platform/graphics/texmap/TextureMapperGL.cpp:
4230        (WebCore::BitmapTextureGL::applyFilters):
4231
42322012-09-28  Anders Carlsson  <andersca@apple.com>
4233
4234        Fix build.
4235
4236        * WebCore.xcodeproj/project.pbxproj:
4237
42382012-09-28  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
4239
4240        Code inside FrameLoaderClient::canShowMIMEType() implementations can be shared among different WK ports
4241        https://bugs.webkit.org/show_bug.cgi?id=97547
4242
4243        Reviewed by Adam Barth.
4244
4245        Added MIMETypeRegistry::canShowMIMEType() function which should to be used
4246        to detect whether a given MIME type can be shown in a page.
4247
4248        No new tests. No new functionality.
4249
4250        * WebCore.exp.in: Added MIMETypeRegistry::canShowMIMEType(). Removed MIMETypeRegistry functions that no longer need to be exported.
4251        * platform/MIMETypeRegistry.cpp:
4252        (WebCore::MIMETypeRegistry::canShowMIMEType):
4253        (WebCore):
4254        * platform/MIMETypeRegistry.h:
4255        (MIMETypeRegistry):
4256
42572012-09-27  Tony Chang  <tony@chromium.org>
4258
4259        flexbox assert fails with auto-sized item with padding
4260        https://bugs.webkit.org/show_bug.cgi?id=97606
4261
4262        Reviewed by Ojan Vafai.
4263
4264        Depending on the denominator of FractionalLayoutUnit, we can lose precision when
4265        converting to a float.  This would cause a rounding error in flex-shrink to trigger an ASSERT.
4266        To avoid this problem in the future, switch to using doubles for flex-shrink and flex-grow
4267        at layout time.  The CSS values themselves are still floats.
4268
4269        Test: css3/flexbox/negative-flex-rounding-assert.html
4270
4271        * rendering/RenderFlexibleBox.cpp:
4272        (WebCore::RenderFlexibleBox::layoutFlexItems): Use doubles for local variables.
4273        (WebCore::RenderFlexibleBox::computeNextFlexLine): Pass in doubles.
4274        (WebCore::RenderFlexibleBox::freezeViolations): Pass in doubles.
4275        (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Pass in doubles.
4276        * rendering/RenderFlexibleBox.h:
4277
42782012-09-28  Sheriff Bot  <webkit.review.bot@gmail.com>
4279
4280        Unreviewed, rolling out r129751.
4281        http://trac.webkit.org/changeset/129751
4282        https://bugs.webkit.org/show_bug.cgi?id=97921
4283
4284        Causes crashes on mac and win (Requested by vsevik on
4285        #webkit).
4286
4287        * bindings/js/JSHTMLCanvasElementCustom.cpp:
4288        (WebCore::JSHTMLCanvasElement::getContext):
4289        * bindings/js/JSMainThreadExecState.h:
4290        (WebCore::JSMainThreadExecState::instrumentFunctionCall):
4291        * bindings/js/ScheduledAction.cpp:
4292        (WebCore::ScheduledAction::create):
4293        * bindings/js/ScriptCallStackFactory.cpp:
4294        (WebCore::createScriptCallStackForInspector):
4295        * bindings/js/ScriptCallStackFactory.h:
4296        (WebCore):
4297        * bindings/scripts/CodeGeneratorJS.pm:
4298        (GenerateCallWith):
4299        * bindings/scripts/CodeGeneratorV8.pm:
4300        (GenerateCallWith):
4301        * bindings/scripts/test/JS/JSTestObj.cpp:
4302        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
4303        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
4304        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
4305        * bindings/scripts/test/V8/V8TestObj.cpp:
4306        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
4307        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
4308        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
4309        * bindings/v8/ScriptCallStackFactory.cpp:
4310        (WebCore::createScriptCallStackForInspector):
4311        * bindings/v8/ScriptCallStackFactory.h:
4312        (WebCore):
4313        * bindings/v8/ScriptController.cpp:
4314        (WebCore::ScriptController::callFunctionWithInstrumentation):
4315        * bindings/v8/V8DOMWindowShell.cpp:
4316        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
4317        * bindings/v8/V8WorkerContextEventListener.cpp:
4318        (WebCore::V8WorkerContextEventListener::callListenerFunction):
4319        * bindings/v8/custom/V8DOMWindowCustom.cpp:
4320        (WebCore::WindowSetTimeoutImpl):
4321        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
4322        (WebCore::V8HTMLCanvasElement::getContextCallback):
4323        * bindings/v8/custom/V8WorkerContextCustom.cpp:
4324        (WebCore::SetTimeoutOrInterval):
4325        * inspector/Inspector.json:
4326        * inspector/InspectorConsoleAgent.cpp:
4327        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
4328        (WebCore::InspectorConsoleAgent::enable):
4329        (WebCore::InspectorConsoleAgent::disable):
4330        (WebCore::InspectorConsoleAgent::clearMessages):
4331        (WebCore::InspectorConsoleAgent::clearFrontend):
4332        (WebCore::InspectorConsoleAgent::addConsoleMessage):
4333        * inspector/InspectorConsoleAgent.h:
4334        (InspectorConsoleAgent):
4335        * inspector/InspectorController.cpp:
4336        (WebCore::InspectorController::connectFrontend):
4337        (WebCore::InspectorController::disconnectFrontend):
4338        * inspector/InspectorInstrumentation.cpp:
4339        (WebCore):
4340        (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
4341        * inspector/InspectorInstrumentation.h:
4342        (InspectorInstrumentation):
4343        (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
4344        * inspector/InspectorRuntimeAgent.cpp:
4345        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
4346        * inspector/InspectorRuntimeAgent.h:
4347        (InspectorRuntimeAgent):
4348        * inspector/PageRuntimeAgent.cpp:
4349        (PageRuntimeAgentState):
4350        (WebCore::PageRuntimeAgent::clearFrontend):
4351        (WebCore::PageRuntimeAgent::restore):
4352        (WebCore::PageRuntimeAgent::setReportExecutionContextCreation):
4353        (WebCore::PageRuntimeAgent::didClearWindowObject):
4354        (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
4355        * inspector/PageRuntimeAgent.h:
4356        (PageRuntimeAgent):
4357        * inspector/WorkerRuntimeAgent.cpp:
4358        (WebCore::WorkerRuntimeAgent::setReportExecutionContextCreation):
4359        (WebCore):
4360        * inspector/WorkerRuntimeAgent.h:
4361        (WorkerRuntimeAgent):
4362        * inspector/front-end/RuntimeModel.js:
4363        (WebInspector.RuntimeModel.prototype._didLoadCachedResources):
4364        * page/DOMWindow.cpp:
4365        (WebCore::DOMWindow::postMessage):
4366
43672012-09-28  Kent Tamura  <tkent@chromium.org>
4368
4369        Add parseDateTime, formatDateTime, and dateFormatText to Localizer
4370        https://bugs.webkit.org/show_bug.cgi?id=97885
4371
4372        Reviewed by Kentaro Hara.
4373
4374        This is a preparation to remove LocalizedData.h.
4375
4376        Add the following pure virtual member functions to Localizer.
4377          parseDateTime
4378          formatDateTime
4379          dateFormatText.
4380
4381        We rename existing parse/format functions for type=date in Locale*
4382        classes, and extend their functionality so that they support other
4383        date/time types. They override the new functions of Localizer.
4384
4385        No new tests. This should not change any behavior.
4386
4387        * platform/text/Localizer.h:
4388        (Localizer): Add parseDateTime, formatDateTime, and dateFormatText.
4389
4390        * platform/text/LocaleICU.h:
4391        (LocaleICU):
4392        - Rename parseLocalizedDate to parseDateTime
4393        - Add type argument to parseDateTime
4394        - Rename formatLocalizedDate to formatDateTime
4395        - Rename localizedDateFormatText to dateFormatText
4396        - Make parseDateTime/formatDateTime/dateFormatText virtual.
4397        * platform/text/LocaleICU.cpp:
4398        (WebCore::LocaleICU::parseDateTime):
4399        Renamed. Reject non-date types.
4400        (WebCore::LocaleICU::formatDateTime): ditto.
4401        (WebCore::LocaleICU::dateFormatText): Renamed.
4402        * platform/text/LocalizedDateICU.cpp: Moved some code to LocaleICU.cpp.
4403        (WebCore::parseLocalizedDate):
4404        (WebCore::formatLocalizedDate):
4405
4406        * platform/text/LocaleNone.cpp:
4407        Add empty implementations of parseDateTime, formatDateTime, and
4408        dateFormatText.
4409        (LocaleNone):
4410        (WebCore::LocaleNone::parseDateTime):
4411        (WebCore::LocaleNone::formatDateTime):
4412        (WebCore::LocaleNone::dateFormatText):
4413
4414        * platform/text/LocaleWin.h:
4415        (LocaleWin):
4416        - Rename parseDate to parseDateTime
4417        - Add type argument to parseDateTime
4418        - Rename formatDate to formatDateTime
4419        - Make parseDateTime/formatDateTime/dateFormatText virtual.
4420        * platform/text/LocaleWin.cpp:
4421        (WebCore::LocaleWin::parseDateTime):
4422        Renamed. Reject non-date types.
4423        (WebCore::LocaleWin::formatDateTime): ditto.
4424        * platform/text/LocalizedDateWin.cpp: Moved some code to LocaleWin.cpp.
4425        (WebCore::parseLocalizedDate):
4426        (WebCore::formatLocalizedDate):
4427
4428        * platform/text/mac/LocaleMac.h:
4429        (LocaleMac):
4430        - Rename parseDate to parseDateTime
4431        - Add type argument to parseDateTime
4432        - Rename formatDate to formatDateTime
4433        - Make parseDateTime/formatDateTime/dateFormatText virtual.
4434        * platform/text/mac/LocaleMac.mm:
4435        (WebCore::LocaleMac::parseDateTime):
4436        Renamed. Reject non-date types.
4437        (WebCore::LocaleMac::formatDateTime): ditto.
4438        * platform/text/mac/LocalizedDateMac.cpp: Moved some code to LocaleMac.mm.
4439        (WebCore::parseLocalizedDate):
4440        (WebCore::formatLocalizedDate):
4441
44422012-09-28  Joshua Bell  <jsbell@chromium.org>
4443
4444        IndexedDB: Run multiple tasks per transaction tick
4445        https://bugs.webkit.org/show_bug.cgi?id=97738
4446
4447        Reviewed by Tony Chang.
4448
4449        Process multiple tasks from the pending queue(s) when the timer fires. The
4450        task may initiate new tasks that change which queue is active (e.g. indexing
4451        operations) so the loop must re-check each tick which queue to use.
4452
4453        In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
4454        in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
4455
4456        No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
4457
4458        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
4459        (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
4460        (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
4461
44622012-09-28  Harald Tveit Alvestrand  <harald@alvestrand.no>
4463        
4464        Implement the GetStats interface on PeerConnection
4465        https://bugs.webkit.org/show_bug.cgi?id=95193
4466
4467        Specification:
4468        http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
4469
4470        Reviewed by Adam Barth.
4471
4472        The implementation consists of a pure virtual platform object
4473        (RTCStatsRequest) that is implemented in WebCore, and stores
4474        its information in a straightforward data hierarchy.
4475        This patch adds the call path and the storage structures.
4476        It does not add filling in data.
4477
4478        Test: fast/mediastream/RTCPeerConnection-stats.html
4479
4480        * CMakeLists.txt:
4481        * Modules/mediastream/RTCPeerConnection.cpp:
4482        (WebCore::RTCPeerConnection::getStats):
4483        (WebCore):
4484        * Modules/mediastream/RTCPeerConnection.h:
4485        (WebCore):
4486        (RTCPeerConnection):
4487        * Modules/mediastream/RTCPeerConnection.idl:
4488        * Modules/mediastream/RTCStatsCallback.h: Added.
4489        (WebCore):
4490        (RTCStatsCallback):
4491        (WebCore::RTCStatsCallback::~RTCStatsCallback):
4492        * Modules/mediastream/RTCStatsCallback.idl: Added.
4493        * Modules/mediastream/RTCStatsElement.cpp: Added.
4494        (WebCore):
4495        (WebCore::RTCStatsElement::create):
4496        (WebCore::RTCStatsElement::RTCStatsElement):
4497        (WebCore::RTCStatsElement::stat):
4498        * Modules/mediastream/RTCStatsElement.h: Added.
4499        (WebCore):
4500        (RTCStatsElement):
4501        * Modules/mediastream/RTCStatsElement.idl: Added.
4502        * Modules/mediastream/RTCStatsReport.cpp: Added.
4503        (WebCore):
4504        (WebCore::RTCStatsReport::create):
4505        (WebCore::RTCStatsReport::RTCStatsReport):
4506        * Modules/mediastream/RTCStatsReport.h: Added.
4507        (WebCore):
4508        (RTCStatsReport):
4509        (WebCore::RTCStatsReport::local):
4510        (WebCore::RTCStatsReport::remote):
4511        * Modules/mediastream/RTCStatsReport.idl: Added.
4512        * Modules/mediastream/RTCStatsRequestImpl.cpp: Added.
4513        (WebCore):
4514        (WebCore::RTCStatsRequestImpl::create):
4515        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
4516        (WebCore::RTCStatsRequestImpl::~RTCStatsRequestImpl):
4517        (WebCore::RTCStatsRequestImpl::requestSucceeded):
4518        (WebCore::RTCStatsRequestImpl::stop):
4519        (WebCore::RTCStatsRequestImpl::clear):
4520        * Modules/mediastream/RTCStatsRequestImpl.h: Added.
4521        (WebCore):
4522        (RTCStatsRequestImpl):
4523        * Modules/mediastream/RTCStatsResponse.cpp: Added.
4524        (WebCore):
4525        (WebCore::RTCStatsResponse::create):
4526        (WebCore::RTCStatsResponse::RTCStatsResponse):
4527        * Modules/mediastream/RTCStatsResponse.h: Added.
4528        (WebCore):
4529        (RTCStatsResponse):
4530        (WebCore::RTCStatsResponse::result):
4531        * Modules/mediastream/RTCStatsResponse.idl: Added.
4532        * WebCore.gypi:
4533        * platform/chromium/support/WebRTCStatsRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
4534        (WebKit):
4535        (WebKit::WebRTCStatsRequest::WebRTCStatsRequest):
4536        (WebKit::WebRTCStatsRequest::assign):
4537        (WebKit::WebRTCStatsRequest::reset):
4538        (WebKit::WebRTCStatsRequest::requestSucceeded):
4539        * platform/mediastream/RTCPeerConnectionHandler.h:
4540        (WebCore):
4541        (RTCPeerConnectionHandler):
4542        * platform/mediastream/RTCStatsRequest.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
4543        (WebCore):
4544        (RTCStatsRequest):
4545        (WebCore::RTCStatsRequest::~RTCStatsRequest):
4546        (WebCore::RTCStatsRequest::RTCStatsRequest):
4547        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
4548        (WebCore::RTCPeerConnectionHandlerChromium::getStats):
4549        (WebCore):
4550        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
4551        (RTCPeerConnectionHandlerChromium):
4552
45532012-09-28  Andreas Kling  <kling@webkit.org>
4554
4555        471kB below StyleSheetContents::parserAppendRule() on Membuster3.
4556        <http://webkit.org/b/97916>
4557
4558        Reviewed by Anders Carlsson.
4559
4560        Shrink-to-fit the StyleSheetContents rule vectors at the end of CSSParser::parseSheet().
4561        ~100kB progression on Membuster3.
4562
4563        * css/StyleSheetContents.h:
4564        * css/StyleSheetContents.cpp:
4565        (WebCore::StyleSheetContents::shrinkToFit):
4566        * css/CSSParser.cpp:
4567        (WebCore::CSSParser::parseSheet):
4568
45692012-09-28  Kent Tamura  <tkent@chromium.org>
4570
4571        Clean up Localizer-related functions
4572        https://bugs.webkit.org/show_bug.cgi?id=97899
4573
4574        Reviewed by Kentaro Hara.
4575
4576        - Rename Document::getLocalizer to getCachedLocalizer
4577        - Add default argument to getCachedLocalizer
4578        - Add Element::localizer to reduce code size
4579        - Rename DateTimeNumericFieldElement::localizer to localizerForOwner to
4580          avoid conflict with Element::localizer
4581        - Add Localizer::createDefault to improve code readability
4582
4583        No new tests. This shouldn't make any behavior change.
4584
4585        * dom/Document.h:
4586        (Document): Rename getLocalizer to getCachedLocalizer, and add default
4587        argument.
4588        * dom/Document.cpp:
4589        (WebCore::Document::getCachedLocalizer): ditto.
4590
4591        * dom/Element.h:
4592        (Element): Add localizer function.
4593        * dom/Element.cpp:
4594        (WebCore::Element::localizer): Added
4595
4596        * html/shadow/DateTimeNumericFieldElement.h:
4597        (DateTimeNumericFieldElement): Rename localizer to localizerForOwner.
4598        * html/shadow/DateTimeNumericFieldElement.cpp: ditto.
4599        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
4600        (WebCore::DateTimeNumericFieldElement::localizerForOwner):
4601        (WebCore::DateTimeNumericFieldElement::value):
4602
4603        * platform/text/Localizer.h:
4604        (Localizer): Add createDefault
4605        (WebCore::Localizer::createDefault): Implemented.
4606
4607        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
4608        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
4609        Use Element::localizer.
4610        * html/NumberInputType.cpp:
4611        (WebCore::NumberInputType::localizeValue): ditto.
4612        (WebCore::NumberInputType::convertFromVisibleValue): ditto.
4613
46142012-09-28  Pavel Feldman  <pfeldman@chromium.org>
4615
4616        Web Inspector: define ChunkedReader interface for compilation
4617        https://bugs.webkit.org/show_bug.cgi?id=97904
4618
4619        Reviewed by Alexander Pavlov.
4620
4621        Otherwise, it is unclear what "source" is in the OutputStreamDelegate.
4622
4623        * inspector/front-end/FileUtils.js:
4624        (WebInspector.OutputStreamDelegate.prototype.onTransferStarted):
4625        (WebInspector.OutputStreamDelegate.prototype.onTransferFinished):
4626        (WebInspector.OutputStreamDelegate.prototype.onChunkTransferred):
4627        (WebInspector.OutputStreamDelegate.prototype.onError):
4628        (WebInspector.ChunkedReader):
4629        (WebInspector.ChunkedReader.prototype.fileSize):
4630        (WebInspector.ChunkedReader.prototype.loadedSize):
4631        (WebInspector.ChunkedReader.prototype.fileName):
4632        (WebInspector.ChunkedReader.prototype.cancel):
4633        (WebInspector.ChunkedFileReader.prototype.start):
4634        (WebInspector.ChunkedFileReader.prototype._onChunkLoaded):
4635        (WebInspector.ChunkedXHRReader.prototype.start):
4636        (WebInspector.ChunkedXHRReader.prototype._onLoad):
4637        * inspector/front-end/HeapSnapshotView.js:
4638        (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onTransferStarted):
4639        (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onChunkTransferred):
4640        (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onTransferFinished):
4641        (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onError):
4642        * inspector/front-end/TimelineModel.js:
4643        (WebInspector.TimelineModelLoadFromFileDelegate.prototype.onTransferStarted):
4644
46452012-09-28  Florin Malita  <fmalita@chromium.org>
4646
4647        [Chromium] Incorrect resampling of clipped/masked images.
4648        https://bugs.webkit.org/show_bug.cgi?id=97409
4649
4650        Reviewed by Stephen White.
4651
4652        Currently, high-quality resampling is used for translate/scale-only transforms, but when
4653        the scale is negative the resampling subset ends up positioned incorrectly.
4654        ImageSkia.cpp:drawResampledBitmap needs to account for negative scaling factors, and apply
4655        only absolute values when calculating the resampling subregion in bitmap coordinates.
4656
4657        Thanks pdr@google.com for isolating the regression.
4658
4659        Test: svg/custom/clip-mask-negative-scale.svg
4660
4661        * platform/graphics/skia/ImageSkia.cpp:
4662        (WebCore::drawResampledBitmap):
4663
46642012-09-28  Sheriff Bot  <webkit.review.bot@gmail.com>
4665
4666        Unreviewed, rolling out r129882.
4667        http://trac.webkit.org/changeset/129882
4668        https://bugs.webkit.org/show_bug.cgi?id=97913
4669
4670        Repaint is incorrect on many tests (Requested by schenney on
4671        #webkit).
4672
4673        * inspector/InspectorController.cpp:
4674        * inspector/InspectorController.h:
4675        (WebCore):
4676        (InspectorController):
4677        * inspector/InspectorOverlay.cpp:
4678        (WebCore::InspectorOverlay::paint):
4679        (WebCore::InspectorOverlay::update):
4680        (WebCore::buildObjectForPoint):
4681        (WebCore::buildArrayForQuad):
4682        (WebCore::buildObjectForHighlight):
4683        (WebCore::InspectorOverlay::reset):
4684        * inspector/InspectorOverlay.h:
4685        (InspectorOverlay):
4686        * inspector/InspectorOverlayPage.html:
4687
46882012-09-28  Kentaro Hara  <haraken@chromium.org>
4689
4690        Unreviewed, rolling out r129825.
4691        http://trac.webkit.org/changeset/129825
4692        https://bugs.webkit.org/show_bug.cgi?id=97474
4693
4694        DOMWindow.resizeTo() is broken. Asked by Mark Pilgrim.
4695
4696        * WebCore.gypi:
4697        * platform/Widget.h:
4698        * platform/chromium/PageClientChromium.h: Removed.
4699        * platform/chromium/PlatformScreenChromium.cpp:
4700        (WebCore::screenHorizontalDPI):
4701        (WebCore::screenVerticalDPI):
4702        (WebCore::screenDepth):
4703        (WebCore::screenDepthPerComponent):
4704        (WebCore::screenIsMonochrome):
4705        (WebCore::screenRect):
4706        (WebCore::screenAvailableRect):
4707        * platform/chromium/PlatformSupport.h:
4708        (PlatformSupport):
4709
47102012-09-28  Christophe Dumez  <christophe.dumez@intel.com>
4711
4712        [WebDatabase] Error code should be CONSTRAINT_ERR if a statement fails due to a constraint failure
4713        https://bugs.webkit.org/show_bug.cgi?id=97897
4714
4715        Reviewed by Kenneth Rohde Christiansen.
4716
4717        Use CONSTRAINT_ERR error code instead of the generic DATABASE_ERR
4718        when a statement fails due to a constraint failure. This is documented
4719        in the W3C specification:
4720        http://dev.w3.org/html5/webdatabase/#dom-sqlexception-code-constraint
4721
4722        Tests: storage/websql/sql-error-codes.html
4723
4724        * Modules/webdatabase/SQLStatement.cpp:
4725        (WebCore::SQLStatement::execute):
4726        * Modules/webdatabase/SQLStatementSync.cpp:
4727        (WebCore::SQLStatementSync::execute):
4728        * platform/sql/SQLiteDatabase.cpp:
4729        (WebCore):
4730        * platform/sql/SQLiteDatabase.h:
4731        (WebCore):
4732
47332012-09-28  Pavel Feldman  <pfeldman@chromium.org>
4734
4735        Web Inspector: split ProgressBar.js into Progress.js and ProgressIndicator.js
4736        https://bugs.webkit.org/show_bug.cgi?id=97902
4737
4738        Reviewed by Alexander Pavlov.
4739
4740        One is model, the other is UI component.
4741
4742        * WebCore.gypi:
4743        * WebCore.vcproj/WebCore.vcproj:
4744        * inspector/compile-front-end.py:
4745        * inspector/front-end/Progress.js: Copied from Source/WebCore/inspector/front-end/ProgressBar.js.
4746        * inspector/front-end/ProgressIndicator.js: Renamed from Source/WebCore/inspector/front-end/ProgressBar.js.
4747        * inspector/front-end/UserAgentSupport.js:
4748        * inspector/front-end/WebKit.qrc:
4749        * inspector/front-end/externs.js:
4750        * inspector/front-end/inspector.html:
4751
47522012-09-27  Alexander Pavlov  <apavlov@chromium.org>
4753
4754        Web Inspector: [Device Metrics] Remove the gutter overlay moving its functionality into the InspectorOverlay
4755        https://bugs.webkit.org/show_bug.cgi?id=97799
4756
4757        Reviewed by Pavel Feldman.
4758
4759        In order to reduce the amount of port-specific code, the gutter overlay painted in the device metrics emulation mode
4760        has been replaced by the respective functionality in the HTML-based InspectorOverlay in WebCore. The InspectorOverlay
4761        now covers the entire WebView rather than the FrameView only.
4762
4763        * inspector/InspectorController.cpp:
4764        (WebCore::InspectorController::webViewResized):
4765        (WebCore):
4766        * inspector/InspectorController.h:
4767        (WebCore):
4768        (InspectorController):
4769        * inspector/InspectorOverlay.cpp:
4770        (WebCore::InspectorOverlay::InspectorOverlay):
4771        (WebCore::InspectorOverlay::paint):
4772        (WebCore::InspectorOverlay::resize):
4773        (WebCore):
4774        (WebCore::InspectorOverlay::update):
4775        (WebCore::InspectorOverlay::drawGutter):
4776        (WebCore::InspectorOverlay::reset):
4777        * inspector/InspectorOverlay.h:
4778        (InspectorOverlay):
4779        * inspector/InspectorOverlayPage.html: Introduce the gutter painting functionality previously found in the Chromium's
4780        DeviceMetricsSupport class, which used to implement WebPageOverlay.
4781
47822012-09-28  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
4783
4784        editing/pasteboard/paste-removing-iframe.html crashes on EFL bots
4785        https://bugs.webkit.org/show_bug.cgi?id=97892
4786
4787        Reviewed by Kenneth Rohde Christiansen.
4788
4789        Added missing null check to avoid a crash if the document inside
4790        iframe is removed during the editing operation.
4791
4792        Test: editing/pasteboard/paste-removing-iframe.html
4793
4794        * editing/Editor.cpp:
4795        (WebCore::Editor::changeSelectionAfterCommand):
4796
47972012-09-28  Arvid Nilsson  <anilsson@rim.com>
4798
4799        [BlackBerry] Destroy thread-specific data for Platform::Graphics::Buffer on the right thread
4800        https://bugs.webkit.org/show_bug.cgi?id=97674
4801
4802        Reviewed by Rob Buis.
4803
4804        A new API was added to BlackBerry::Platform::Graphics for destroying
4805        thread-specific data generated on the compositing thread when we blit
4806        buffers. The buffers are otherwise created and destroyed on the WebKit
4807        thread, which doesn't give platform any opportunity to destroy the
4808        thread-specific data.
4809
4810        This patch adds calls to the new API to avoid leaking resources.
4811
4812        Reviewed internally by Jakob Petsovits and Filip Spacek.
4813
4814        PR 214644
4815
4816        Verified using manual testing.
4817
4818        * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
4819        (WebCore::PluginViewPrivate::createBuffers):
4820        (WebCore::PluginViewPrivate::destroyBuffers):
4821
48222012-09-28  Andrey Adaikin  <aandrey@chromium.org>
4823
4824        Web Inspector: [Canvas] log property setters too along with function calls
4825        https://bugs.webkit.org/show_bug.cgi?id=97776
4826
4827        Reviewed by Pavel Feldman.
4828
4829        Trace logs should also contain property setter calls.
4830
4831        * inspector/InjectedScriptCanvasModuleSource.js:
4832        (.):
4833        * inspector/Inspector.json:
4834        * inspector/front-end/CanvasProfileView.js:
4835        (WebInspector.CanvasProfileView.prototype._showTraceLog):
4836
48372012-09-28  Kent Tamura  <tkent@chromium.org>
4838
4839        Remove LocalizedNumber*.*
4840        https://bugs.webkit.org/show_bug.cgi?id=97876
4841
4842        Reviewed by Yuta Kitamura.
4843
4844        LocalizedNumber.h functions are replaced with Localizer class.
4845
4846        * CMakeLists.txt: Remove LocalizedNumberNone.*.
4847        * GNUmakefile.list.am: ditto.
4848        * Target.pri: ditto.
4849        * WebCore.vcpproj/WebCore.vcproj: ditto.
4850        * WebCore.gyp/WebCore.gyp: Remove LocalizedNumber*.*.
4851        * WebCore.gypi: ditto.
4852        * WebCore.xcodeproj/project.pbxproj: ditto.
4853
4854        * html/NumberInputType.cpp: Use Localizer for the element locale.
4855        (WebCore::NumberInputType::localizeValue):
4856        (WebCore::NumberInputType::convertFromVisibleValue):
4857
4858        * platform/text/Localizer.h: Move some comments from LocalizedNumber.h
4859
4860        * platform/text/LocalizedNumber.h: Removed.
4861        * platform/text/LocalizedNumberICU.cpp: Removed.
4862        * platform/text/LocalizedNumberNone.cpp: Removed.
4863        * platform/text/mac/LocalizedNumberMac.mm: Removed.
4864        * platform/text/win/LocalizedNumberWin.cpp: Removed.
4865
48662012-09-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
4867
4868        Unreviewed, rolling out r129863.
4869        http://trac.webkit.org/changeset/129863
4870        https://bugs.webkit.org/show_bug.cgi?id=97173
4871
4872        WK2 layout test on debug is broken by this patch.
4873
4874        * platform/efl/RunLoopEfl.cpp:
4875        (WebCore::RunLoop::RunLoop):
4876        (WebCore::RunLoop::~RunLoop):
4877
48782012-09-28  Vsevolod Vlasov  <vsevik@chromium.org>
4879
4880        Web Inspector: Formatting on load is broken
4881        https://bugs.webkit.org/show_bug.cgi?id=97880
4882
4883        Reviewed by Alexander Pavlov.
4884
4885        Bound formatted callback on UISourceCode and fixed callback call.
4886
4887        * inspector/front-end/UISourceCode.js:
4888        (WebInspector.UISourceCode.prototype._fireContentAvailable.formattedCallback):
4889        (WebInspector.UISourceCode.prototype._fireContentAvailable):
4890
48912012-09-28  Yoshifumi Inoue  <yosin@chromium.org>
4892
4893        [Forms] Multiple fields month input UI
4894        https://bugs.webkit.org/show_bug.cgi?id=97299
4895
4896        Reviewed by Kent Tamura.
4897
4898        This patch introduces multiple fields "month" input UI in DRT. We'll
4899        enable this feature once we add tests.
4900
4901        Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_MONTH
4902        and ENABLE_INPUT_MULTIPLE_FIELDS_UI.
4903
4904        No new tests. To reduce size of this patch, other patches add tests
4905        for multiple fields month input UI.
4906
4907        Note: Actual outputs of two tests
4908            - fast/forms/month/month-input-visible-string.html
4909            - fast/forms/month/month-stepup-stepdown-from-renderer.html
4910        are different.
4911
4912        * css/html.css:
4913        (input::-webkit-datetime-edit-month-field): Added for field appearance.
4914        (input::-webkit-datetime-edit-year-field): ditto.
4915        (input::-webkit-datetime-edit-month-field:focus): Added to remove focus ring.
4916        (input::-webkit-datetime-edit-year-field:focus): ditto.
4917        * html/MonthInputType.cpp:
4918        (WebCore::MonthInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
4919        (WebCore::MonthInputType::setupLayoutParameters): Added to set layout of multiple fields.
4920        * html/MonthInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseMonthInputType typedef.
4921        (WebCore::MonthInputType::MonthInputType): Changed base class name to BaseMonthInputType.
4922        (MonthInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
4923        * html/shadow/DateTimeEditElement.cpp:
4924        (DateTimeEditBuilder): Changed to have copy of object in m_stepRange and m_dateValue member variables for being robust.
4925        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed to add initialize m_placeholderForMonth and m_placeholderForYear.
4926        (WebCore::DateTimeEditBuilder::visitField): Changed to support month field and year field.
4927        * html/shadow/DateTimeEditElement.h:
4928        (LayoutParameters): Changed to add member variables, placeholderForMonth and placeholderForYear. Changed to have copy of object in stepRange member variable for being robust.
4929
49302012-09-28  Eunmi Lee  <eunmi15.lee@samsung.com>
4931
4932        [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
4933        https://bugs.webkit.org/show_bug.cgi?id=97173
4934
4935        Reviewed by Gyuyoung Kim.
4936
4937        Remove codes to initialize and shutdown the EFL libraries from
4938        RunLoopEfl.cpp. Initialization and shutdown will be done in the
4939        ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
4940        process.
4941
4942        No new tests. This patch doesn't change behavior.
4943
4944        * platform/efl/RunLoopEfl.cpp:
4945        (WebCore::RunLoop::RunLoop):
4946        (WebCore::RunLoop::~RunLoop):
4947
49482012-09-19  Vsevolod Vlasov  <vsevik@chromium.org>
4949
4950        Web Inspector: Prepare UISourceCode to transformation into File.
4951        https://bugs.webkit.org/show_bug.cgi?id=97113
4952
4953        Reviewed by Pavel Feldman.
4954
4955        This patch moves methods and fields from UISourceCode descendants except for the modification bindings.
4956
4957        * inspector/front-end/BreakpointManager.js:
4958        (WebInspector.BreakpointManager.breakpointStorageId):
4959        (WebInspector.BreakpointManager.isDivergedFromVM):
4960        (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
4961        (WebInspector.BreakpointManager.Breakpoint):
4962        (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
4963        (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
4964        (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
4965        (set WebInspector.BreakpointManager.Storage.Item):
4966        * inspector/front-end/JavaScriptSource.js:
4967        (WebInspector.JavaScriptSource):
4968        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
4969        * inspector/front-end/JavaScriptSourceFrame.js:
4970        (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
4971        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
4972        (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
4973        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointsBeforeEditing):
4974        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
4975        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
4976        (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
4977        * inspector/front-end/SASSSourceMapping.js:
4978        * inspector/front-end/ScriptSnippetModel.js:
4979        (WebInspector.ScriptSnippetModel):
4980        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
4981        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
4982        (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
4983        (WebInspector.SnippetJavaScriptSource):
4984        (WebInspector.SnippetJavaScriptSource.prototype.workingCopyChanged):
4985        * inspector/front-end/ScriptsNavigator.js:
4986        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
4987        * inspector/front-end/ScriptsPanel.js:
4988        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
4989        (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
4990        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
4991        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
4992        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
4993        * inspector/front-end/StyleSource.js:
4994        * inspector/front-end/UISourceCode.js:
4995        (WebInspector.UISourceCode.prototype.searchInContent):
4996        (WebInspector.UISourceCode.prototype._fireContentAvailable.formattedCallback):
4997        (WebInspector.UISourceCode.prototype._fireContentAvailable):
4998        (WebInspector.UISourceCode.prototype.setFormatted.if):
4999        (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
5000        (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
5001        (WebInspector.UISourceCode.prototype.setFormatted):
5002        (WebInspector.UISourceCode.prototype.setSourceMapping):
5003
50042012-09-28  MORITA Hajime  <morrita@google.com>
5005
5006        Move Shadow DOM inspection feature out from experiments
5007        https://bugs.webkit.org/show_bug.cgi?id=94274
5008
5009        Reviewed by Pavel Feldman.
5010
5011        This chagne turns the showShadowDOM experiments into a settings,
5012        adding aSettingsScreen entry for that.
5013
5014        * English.lproj/localizedStrings.js:
5015        * inspector/front-end/DOMAgent.js:
5016        * inspector/front-end/Settings.js:
5017        (WebInspector.ExperimentsSettings):
5018        * inspector/front-end/SettingsScreen.js:
5019        (WebInspector.GenericSettingsTab):
5020
50212012-09-27  Kent Tamura  <tkent@chromium.org>
5022
5023        Use Localizer in PagePopupController
5024        https://bugs.webkit.org/show_bug.cgi?id=97862
5025
5026        Reviewed by Hajime Morita.
5027
5028        No new tests. This doesn't change any behavior.
5029
5030        * page/PagePopupClient.h:
5031        (WebCore):
5032        (PagePopupClient): Add "localizer" member function.
5033        * page/PagePopupController.cpp:
5034        (WebCore::PagePopupController::localizeNumberString):
5035        Use a Localizer object provided by PagePopupClient.
5036
50372012-09-28  Kent Tamura  <tkent@chromium.org>
5038
5039        Switch monthLabels, weekDayShortLabels, and firstDayOfWeek to Localizer
5040        https://bugs.webkit.org/show_bug.cgi?id=97874
5041
5042        Reviewed by Kentaro Hara.
5043
5044        No new tests. This change shouldn't change any behavior.
5045
5046        * platform/text/Localizer.h:
5047        (Localizer): Add monthLabels, weekDayShortLabels, and firstDayOfWeek.
5048        * platform/text/LocalizedDate.h:
5049        (WebCore): Remove them.
5050        * platform/text/LocalizedDateICU.cpp:
5051        (WebCore::localizedDateFormatText): ditto.
5052        * platform/text/LocalizedDateWin.cpp:
5053        (WebCore::localizedDateFormatText): ditto.
5054        * platform/text/mac/LocalizedDateMac.cpp:
5055        (WebCore::localizedDateFormatText): ditto.
5056
5057        * platform/text/LocaleICU.h:
5058        (LocaleICU): Add virtual and OVERRIDE.
5059        * platform/text/LocaleWin.h:
5060        (LocaleWin):
5061        - Add virtual and OVERRIDE.
5062        - Move the content of firstDayOfWeek to LocaleWin.cpp because inline
5063        definition of a virtual function is not efficient.
5064        * platform/text/LocaleWin.cpp:
5065        (WebCore::LocaleWin::firstDayOfWeek): See above.
5066        * platform/text/mac/LocaleMac.h:
5067        (LocaleMac): Add virtual and OVERRIDE.
5068
50692012-09-28  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5070
5071        Web Inspector: Elements: Show entities in edit as HTML.
5072        https://bugs.webkit.org/show_bug.cgi?id=97798
5073
5074        Reviewed by Alexander Pavlov.
5075
5076        In elements tree entities like "&emsp;", "&ensp;" are shown.
5077        But in "Edit as HTML" mode they are replaced by Unicode chars.
5078
5079        For better consistency, these chars should be rendered the same
5080        way both in tree and edit field.
5081
5082        * inspector/front-end/ElementsTreeOutline.js:
5083        Replaced invisible chars with entities.
5084
50852012-09-28  Yoshifumi Inoue  <yosin@chromium.org>
5086
5087        [Forms] Adding DateTimeMonthFieldElement and DateTimeYearFieldElement
5088        https://bugs.webkit.org/show_bug.cgi?id=97864
5089
5090        Reviewed by Kent Tamura.
5091
5092        This patch is a part of preparation of implementing multiple fields
5093        date/time input UI.
5094
5095        This patch introduces DateTimeMonthFieldElement and DateTimeYearFieldElement
5096        classes for implementing multiple fields "month" input type.
5097
5098        Multiple fields "month" input type uses two fields for month and year
5099        in locale dependent order. Month field display month as two digit.
5100        Year field display year as four digits in usual case and can display
5101        up to 6 digits to support maximum year 275760, defined in HTML5
5102        specification.
5103
5104        This patch also changes default value for step down and up on empty
5105        field to better UI in year field. Year field displays current year
5106        when step down and up on empty field rather than minimum year 1, or
5107        maximum year 275760.
5108
5109        Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME
5110        and ENABLE_INPUT_MULTIPLE_FIELDS_UI.
5111
5112        No new tests. This patch doesn't change behavior.
5113
5114        * html/shadow/DateTimeFieldElements.cpp:
5115        (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement): Added.
5116        (WebCore::DateTimeMonthFieldElement::create): Added.
5117        (WebCore::DateTimeMonthFieldElement::populateDateTimeFieldsState): Added.
5118        (WebCore::DateTimeMonthFieldElement::setValueAsDate): Added.
5119        (WebCore::DateTimeMonthFieldElement::setValueAsDateTimeFieldsState): Added.
5120        (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): Added.
5121        (WebCore::DateTimeYearFieldElement::create): Added.
5122        (WebCore::DateTimeYearFieldElement::defaultValueForStepDown): Added.
5123        (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Added.
5124        (WebCore::DateTimeYearFieldElement::populateDateTimeFieldsState): Added.
5125        (WebCore::DateTimeYearFieldElement::setValueAsDate): Added.
5126        (WebCore::DateTimeYearFieldElement::setValueAsDateTimeFieldsState): Added.
5127        * html/shadow/DateTimeFieldElements.h:
5128        (DateTimeMonthFieldElement): Added.
5129        (DateTimeYearFieldElement): Added.
5130        * html/shadow/DateTimeNumericFieldElement.cpp:
5131        (WebCore::DateTimeNumericFieldElement::Range::isInRange): Added for ease of checking value is in range.
5132        (WebCore::DateTimeNumericFieldElement::defaultValueForStepDown): Added for default behavior.
5133        (WebCore::DateTimeNumericFieldElement::defaultValueForStepUp): ditto.
5134        (WebCore::DateTimeNumericFieldElement::stepDown): Changed to use defaultValueForStepDown instead of maximum field value.
5135        (WebCore::DateTimeNumericFieldElement::stepUp):  Changed to use defaultValueForStepUp minium field value.
5136        (WebCore::DateTimeNumericFieldElement::value): Changed to use "%04d" when maximum field value is greater than 999 for year field.
5137        * html/shadow/DateTimeNumericFieldElement.h:
5138        (DateTimeNumericFieldElement): Changed to add declarations of defaultValueForStepDown() and defaultValueForStepUp().
5139
51402012-09-27  Yoshifumi Inoue  <yosin@chromium.org>
5141
5142        [Forms] Adding placeholder feature to DateTimeNumericElement, and update its existing subclasses.
5143        https://bugs.webkit.org/show_bug.cgi?id=97863
5144
5145        Reviewed by Kent Tamura.
5146
5147        This patch is a part of preparation of implementing multiple fields
5148        date/time input UI.
5149
5150        This patch introduces placeholder feature to DateTimeNumericElement
5151        to display date format guide in field, e.g. displaying "dd/mm/yyyy".
5152
5153        Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
5154        ENABLE_INPUT_MULTIPLE_FIELDS_UI.
5155
5156        No new tests. This patch doesn't change behavior.
5157
5158        * html/shadow/DateTimeFieldElements.cpp:
5159        (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Changed to pass placeholder class to base class.
5160        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): ditto
5161        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): ditto
5162        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): ditto
5163        * html/shadow/DateTimeNumericFieldElement.cpp: Removed no more needed static function displaySizeOfNumbre().
5164        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Changed to add new parameter to take placeholder.
5165        (WebCore::DateTimeNumericFieldElement::visibleValue): Changed to use m_placholder.
5166        * html/shadow/DateTimeNumericFieldElement.h:
5167        (DateTimeNumericFieldElement): Changed to add a member variable m_placholder to hold placholder to DateTimeNumbericElement class.
5168
51692012-09-27  Kent Tamura  <tkent@chromium.org>
5170
5171        Make sure Localizer class is not copyable
5172        https://bugs.webkit.org/show_bug.cgi?id=97857
5173
5174        Reviewed by Kentaro Hara.
5175
5176        We don't intent Localizer obejcts are copyable.
5177
5178        * platform/text/Localizer.h:
5179        (Localizer): Add WTF_MAKE_NONCOPYABLE.
5180
51812012-09-27  Nico Weber  <thakis@chromium.org>
5182
5183        Delete some unused code. Found by -Wunused-function.
5184        https://bugs.webkit.org/show_bug.cgi?id=97858
5185
5186        Reviewed by Anders Carlsson.
5187
5188        No intended behavior change.
5189
5190        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
5191        (WebCore):
5192        * platform/graphics/chromium/CrossProcessFontLoading.mm:
5193        * platform/graphics/skia/GraphicsContextSkia.cpp:
5194        * platform/mac/ScrollbarThemeMac.mm:
5195        (WebCore):
5196
51972012-09-27  Kentaro Hara  <haraken@chromium.org>
5198
5199        [V8] StringCache::v8ExternalString() can return a stale persistent handle
5200        https://bugs.webkit.org/show_bug.cgi?id=97767
5201
5202        Reviewed by Adam Barth.
5203
5204        For details, see the Chromium bug: http://code.google.com/p/chromium/issues/detail?id=151902
5205
5206        StringCache::v8ExternalString() can return a stale persistent handle
5207        in the following scenario:
5208
5209        (1) Assume that StringImpl A with value "foo" is in m_stringCache.
5210        (2) StringImpl B with value "foo" is accessed. At this point, m_lastStringImpl
5211        points to B, and m_lastV8String points to B's handle.
5212        (3) A minor GC is triggered and a weak callback is called back for StringImpl A.
5213        At this point, "foo" is removed from m_stringCache. A's handle is disposed.
5214        However, m_lastV8String is not cleared because m_lastStringImpl (i.e. StringImpl B)
5215        is not equal to StringImpl A. As a result, m_lastV8String points to a stale
5216        persistent handle.
5217        (4) The persistent handle is eventually reused in V8 and made weak again.
5218        (5) StringImpl B with value "foo" is accessed. Then StringCache::v8ExternalString()
5219        returns the stale persistent handle, which is already used for another purpose.
5220
5221        To solve the problem, we need to clear m_stringImpl and m_lastV8String when any
5222        string wrapper is disposed. Specifically, we need to change the code like this:
5223
5224          static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
5225          {
5226            StringImpl* stringImpl = static_cast<StringImpl*>(parameter);
5227            V8PerIsolateData::current()->stringCache()->remove(stringImpl);
5228            wrapper.Dispose();
5229            stringImpl->deref();
5230          }
5231
5232          void StringCache::remove(StringImpl* stringImpl)
5233          {
5234            m_stringCache.remove(stringImpl);
5235            if (m_lastStringImpl.get() == stringImpl) {  // Remove this line.
5236                m_lastStringImpl = 0;
5237                m_lastV8String.Clear();
5238            }
5239          }
5240
5241        Note: Removing the line might be stronger than is needed. Instead of removing
5242        the line, we can just replace the line with 'if (m_lastV8String == wrapper)'.
5243        However, just in case (for correctness), I'd prefer removing the line.
5244        Given that GC won't happen so frequently, clearing the cache in every weak callback
5245        won't affect performance.
5246
5247        No tests because it depends on the GC behavior and I couldn't reproduce the bug.
5248
5249        * bindings/v8/V8ValueCache.cpp:
5250        (WebCore::StringCache::remove):
5251
52522012-09-26  Antti Koivisto  <antti@apple.com>
5253
5254        CSSComputedStyleDeclaration::getPropertyCSSValue() triggering unnecessary relayouts and style recalcs
5255        https://bugs.webkit.org/show_bug.cgi?id=97760
5256
5257        Reviewed by Andreas Kling.
5258
5259        Currently getPropertyCSSValue() (which is also used to implement the more common getPropertyValue()) 
5260        calls Document::updateLayoutIgnorePendingStylesheets() unconditionally. However only a few properties 
5261        are actually layout dependent, making many of these relayouts unnecessary. Moreover, triggering full 
5262        style recalc is also often unnecessary as the current node may already have valid style even if some 
5263        other parts of the tree require recalc.
5264        
5265        - Only trigger relayouts for layout dependent properties.
5266        - Trigger style recalc only if the style of the current element or its ancestors is dirty.
5267        
5268        This is a significant (several percent) progression on some real world web content based page loading
5269        benchmarks.
5270
5271        * css/CSSComputedStyleDeclaration.cpp:
5272        (WebCore::isLayoutDependentProperty):
5273        (WebCore):
5274        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
5275        * css/StyleResolver.h:
5276        (WebCore::StyleResolver::hasViewportDependentMediaQueries):
5277        * dom/Document.cpp:
5278        (WebCore::Document::hasPendingStyleRecalc):
5279        
5280            Renamed for consistency.
5281
5282        (WebCore::Document::hasPendingForcedStyleRecalc):
5283        (WebCore):
5284        * dom/Document.h:
5285        (Document):
5286        * rendering/RenderImage.cpp:
5287        (WebCore::RenderImage::imageChanged):
5288
52892012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5290
5291        [Chromium] Remove unused PlatformSupport reference in DraggedIsolatedFileSystem
5292        https://bugs.webkit.org/show_bug.cgi?id=97851
5293
5294        Reviewed by Kentaro Hara.
5295
5296        Part of a refactoring series. See tracking bug 82948.
5297
5298        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
5299
53002012-09-27  Andrew Lo  <anlo@rim.com>
5301
5302        requestAnimationFrame broken with subframes (DisplayRefreshMonitorManager::registerClient fails to register client)
5303        https://bugs.webkit.org/show_bug.cgi?id=95360
5304
5305        Reviewed by Simon Fraser.
5306
5307        Remove unnecessary code introduced in http://trac.webkit.org/changeset/129808.
5308
5309        No new tests because it's already covered by fast/animation/request-animation-frame-iframe2.html.
5310
5311        * platform/graphics/DisplayRefreshMonitor.cpp:
5312        (WebCore::DisplayRefreshMonitor::addClient):
5313        (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
5314
53152012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5316
5317        [Chromium] Remove unused PlatformSupport reference in FontCacheSkia
5318        https://bugs.webkit.org/show_bug.cgi?id=97850
5319
5320        Reviewed by Kentaro Hara.
5321
5322        Part of a refactoring series. See tracking bug 82948.
5323
5324        * platform/graphics/skia/FontCacheSkia.cpp:
5325
53262012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5327
5328        [Chromium][Android] Remove unused PlatformSupport reference in ScrollbarThemeChromiumAndroid
5329        https://bugs.webkit.org/show_bug.cgi?id=97846
5330
5331        Reviewed by Kentaro Hara.
5332
5333        Part of a refactoring series. See tracking bug 82948.
5334
5335        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
5336
53372012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5338
5339        [Chromium] Remove unused PlatformSupport reference in ClipboardChromium
5340        https://bugs.webkit.org/show_bug.cgi?id=97840
5341
5342        Reviewed by Kentaro Hara.
5343
5344        Part of a refactoring series. See tracking bug 82948.
5345
5346        * platform/chromium/ClipboardChromium.cpp:
5347
53482012-09-27  Kent Tamura  <tkent@chromium.org>
5349
5350        DateTimeNumericFieldElement should use Localizer functions.
5351        https://bugs.webkit.org/show_bug.cgi?id=97318
5352
5353        Reviewed by Hajime Morita.
5354
5355        Source/WebCore:
5356
5357        Use Localizer functions instead of functions in LocalizedNumber to test
5358        i18n behavior. This affects only layout tests because
5359        Document::getLocalizer() always returns a Localizer for the browser
5360        locale.
5361
5362        To obtain a Localizer object for <input>'s locale from a deep shadow node,
5363        we add localeIdentifier() function to DateTimeFieldElement::FieldOwner
5364        and DateTimeEditElement::EditControlOwner interfaces.
5365
5366        Tests: fast/forms/time-multiple-fields/time-multiple-fields-localization.html
5367
5368        * html/shadow/DateTimeFieldElement.h:
5369        (FieldOwner): Add localeIdentifier callback.
5370        (DateTimeFieldElement): Add localeIdentifier().
5371        * html/shadow/DateTimeFieldElement.cpp:
5372        (WebCore::DateTimeFieldElement::localeIdentifier):
5373        Added. Returns FieldOwner::localeIdentifier if m_fieldOwner is available.
5374
5375        * html/shadow/DateTimeNumericFieldElement.h:
5376        (DateTimeNumericFieldElement): Declare localizer().
5377        * html/shadow/DateTimeNumericFieldElement.cpp:
5378        (WebCore::DateTimeNumericFieldElement::localizer):
5379        Returns a Localizer for DateTimeFieldElement::localeIdentifier()
5380        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Use localizer().
5381        (WebCore::DateTimeNumericFieldElement::value): Use localizer().
5382
5383        * html/shadow/DateTimeEditElement.h:
5384        (EditControlOwner): Add localeIdentifier() callback.
5385        (DateTimeEditElement):
5386        Declare localeIdentifier(), which implements FieldOwner::localeIdentifier().
5387        * html/shadow/DateTimeEditElement.cpp:
5388        (WebCore::DateTimeEditElement::localeIdentifier):
5389        Added. Returns EditControlOwner::localeIdentifier if m_editControlOwner is available.
5390
5391        * html/BaseMultipleFieldsDateAndTimeInputType.h:
5392        (BaseMultipleFieldsDateAndTimeInputType): Declare localeIdentifier(),
5393        which implements EditControlOwner::localeIdentifier().
5394        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
5395        (WebCore::BaseMultipleFieldsDateAndTimeInputType::localeIdentifier):
5396        Added. Returns <input>'s inherited locale identifier.
5397
53982012-09-27  Luke Macpherson   <macpherson@chromium.org>
5399
5400        Implement reviewer feedback that I missed on bug 95930.
5401        https://bugs.webkit.org/show_bug.cgi?id=97752
5402
5403        Reviewed by Alexey Proskuryakov.
5404
5405        This patch updates the indentation of function parameters in a few places,
5406        and reserves an appropriate amount of space when using StringBuilder.
5407
5408        * css/CSSBasicShapes.cpp:
5409        (WebCore::buildRectangleString):
5410        (WebCore::CSSBasicShapeRectangle::cssText):
5411        (WebCore::CSSBasicShapeRectangle::serializeResolvingVariables):
5412        (WebCore::CSSBasicShapeCircle::serializeResolvingVariables):
5413        (WebCore::CSSBasicShapeEllipse::serializeResolvingVariables):
5414        (WebCore::buildPolygonString):
5415        * css/Rect.h:
5416        (WebCore::Rect::serializeResolvingVariables):
5417        (WebCore::Quad::serializeResolvingVariables):
5418        (WebCore::Quad::generateCSSString):
5419
54202012-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
5421
5422        Unreviewed, rolling out r129823.
5423        http://trac.webkit.org/changeset/129823
5424        https://bugs.webkit.org/show_bug.cgi?id=97837
5425
5426        Cause a bunch of pixel failures on Chrome Linux that look like
5427        real regressions (Requested by ojan on #webkit).
5428
5429        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
5430        (WebCore::Font::drawGlyphs):
5431        (WebCore::Font::drawComplexText):
5432        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
5433        (WebCore::FontPlatformData::setupPaint):
5434        * platform/graphics/skia/SimpleFontDataSkia.cpp:
5435        (WebCore::SimpleFontData::platformWidthForGlyph):
5436
54372012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5438
5439        [Chromium] Remove screen-related functions from PlatformSupport
5440        https://bugs.webkit.org/show_bug.cgi?id=97474
5441
5442        Reviewed by Adam Barth.
5443
5444        Part of a refactoring series. See tracking bug 82948.
5445        Screen-related functions like screenHorizontalDPI that
5446        used to be on PlatformSupport are now accessed through a new
5447        PlatformPageClient attached to Widget in WebCore-land, which is
5448        implemented by ChromeClientImpl in WebKit-land, which proxies
5449        calls to WebWidgetClient, which is actually implemented in
5450        Chromium-land.
5451
5452        * WebCore.gypi:
5453        * platform/Widget.h:
5454        * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
5455        (PageClientChromium):
5456        * platform/chromium/PlatformScreenChromium.cpp:
5457        (WebCore::toPlatformPageClient):
5458        (WebCore):
5459        (WebCore::screenHorizontalDPI):
5460        (WebCore::screenVerticalDPI):
5461        (WebCore::screenDepth):
5462        (WebCore::screenDepthPerComponent):
5463        (WebCore::screenIsMonochrome):
5464        (WebCore::screenRect):
5465        (WebCore::screenAvailableRect):
5466        * platform/chromium/PlatformSupport.h:
5467        (PlatformSupport):
5468
54692012-09-27  Kenichi Ishibashi  <bashi@chromium.org>
5470
5471        [Chromium] FontHarfBuzz.cpp should not use drawTextOnPath().
5472        https://bugs.webkit.org/show_bug.cgi?id=97676
5473
5474        Reviewed by Tony Chang.
5475
5476        Use drawPosText() if possible for vertical text.
5477        Use drawTextOnPath() only if the font doesn't have vhea/vmtx table.
5478
5479        No new tests. No change in behavior on LayoutTests.
5480        Confirmed improvement in vertical text positioning using ipafont and Skia r5677.
5481
5482        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
5483        (WebCore::drawVerticalTextWithBrokenIdeographs): Added.
5484        (WebCore):
5485        (WebCore::Font::drawGlyphs): Draw vertical text by drawPosText() in a similar manner of FontSkia.cpp.
5486        (WebCore::Font::drawComplexText): Disable setVerticalText(). Complex path doesn't support it now.
5487        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
5488        (WebCore::FontPlatformData::setupPaint): Call setVertialText().
5489        * platform/graphics/skia/SimpleFontDataSkia.cpp:
5490        (WebCore::SimpleFontData::platformWidthForGlyph): Disable setVerticalText() if the font doesn't have vertical metrics.
5491
54922012-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
5493
5494        Unreviewed, rolling out r129806.
5495        http://trac.webkit.org/changeset/129806
5496        https://bugs.webkit.org/show_bug.cgi?id=97831
5497
5498        Broke windows build due to missing header (Requested by jsbell
5499        on #webkit).
5500
5501        * Modules/indexeddb/IDBLevelDBCoding.cpp:
5502        (WebCore::IDBLevelDBCoding::encodeString):
5503        (WebCore::IDBLevelDBCoding::decodeString):
5504
55052012-09-27  Levi Weintraub  <leviw@chromium.org>
5506
5507        REGRESSION(r129186): Pressing enter at the end of a line deletes the line
5508        https://bugs.webkit.org/show_bug.cgi?id=97763
5509
5510        Reviewed by Ryosuke Niwa.
5511
5512        r129186 exposed incorrect behavior in RenderText whereby RenderText's lines were
5513        dirtied but the renderer wasn't marked for layout. Rich text editing in GMail exposed
5514        this behavior. RenderText::setTextWithOffset is called with a text string identical
5515        to the current text. It still dirties lines, then calls setText, which has a check
5516        for the case when the strings are the same and returns early and doesn't mark us as
5517        needing layout.
5518
5519        This change adds the same early bailing logic in setText to setTextWithOffset, but
5520        forces setText to work its magic whenever we dirty lines there (and avoid double-
5521        checking that the strings are equal).
5522
5523        * rendering/RenderText.cpp:
5524        (WebCore::RenderText::setTextWithOffset):
5525
55262012-09-27  Andrew Lo  <anlo@rim.com>
5527
5528        requestAnimationFrame broken with subframes (DisplayRefreshMonitorManager::registerClient fails to register client)
5529        https://bugs.webkit.org/show_bug.cgi?id=95360
5530
5531        Reviewed by Simon Fraser.
5532
5533        DisplayRefreshMonitorManager::ensureMonitorForClient currently only adds the DisplayRefreshMonitorClient
5534        to the appropriate DisplayRefreshMonitor when a new monitor is created.
5535        It should also do so when it finds an existing monitor.
5536
5537        Test: fast/animation/request-animation-frame-iframe2.html
5538
5539        * platform/graphics/DisplayRefreshMonitor.cpp:
5540        (WebCore::DisplayRefreshMonitor::addClient):
5541        (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
5542
55432012-09-27  Erik Arvidsson  <arv@chromium.org>
5544        Unreviewed Chromium debug build fix.
5545
5546        Two fixes makes one breakage
5547
5548        http://trac.webkit.org/changeset/129785
5549        http://trac.webkit.org/changeset/129798
5550
5551        * bindings/v8/V8Binding.h:
5552        (WebCore::toNativeArguments):
5553
55542012-09-27  Joshua Bell  <jsbell@chromium.org>
5555
5556        IndexedDB: Optimize encodeString/decodeString
5557        https://bugs.webkit.org/show_bug.cgi?id=97794
5558
5559        Reviewed by Tony Chang.
5560
5561        Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
5562        The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
5563        isn't sufficient, but the code used StringBuilder::append() character-by-character
5564        and custom byte-swapping which was slow.
5565
5566        Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
5567        and putting it 20k times and getting it 20k times. On my test box, mean time before the
5568        patch was 8.2s, mean time after the patch was 4.6s.
5569
5570        Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
5571
5572        * Modules/indexeddb/IDBLevelDBCoding.cpp:
5573        (WebCore::IDBLevelDBCoding::encodeString):
5574        (WebCore::IDBLevelDBCoding::decodeString):
5575
55762012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5577
5578        [Chromium][Mac] Move Mac-specific theme functions out of PlatformSupport
5579        https://bugs.webkit.org/show_bug.cgi?id=97817
5580
5581        Reviewed by Adam Barth.
5582
5583        Part of a refactoring series. See tracking bug 82948. We're calling WebThemeEngine directly now instead of proxying through PlatformSupport.
5584
5585        * platform/chromium/PlatformSupport.h:
5586        (PlatformSupport):
5587        * platform/chromium/ScrollbarThemeChromiumMac.mm:
5588        (WebCore::scrollbarStateToThemeState):
5589        (WebCore):
5590        (WebCore::ScrollbarThemeChromiumMac::paint):
5591
55922012-09-27  Erik Arvidsson  <arv@chromium.org>
5593
5594        Fix issue with ClassList which was hitting an assert in debug mode
5595        https://bugs.webkit.org/show_bug.cgi?id=97820
5596
5597        Reviewed by Ojan Vafai.
5598
5599        http://trac.webkit.org/changeset/129779 hit asserts in debug mode when trying to use fastGetAttribute on an SVG element.
5600
5601        No new tests. No change in behavior.
5602
5603        * bindings/v8/V8Binding.h:
5604        (WebCore::toNativeArguments):
5605        * html/ClassList.h:
5606
56072012-09-27  Philip Rogers  <pdr@google.com>
5608
5609        Rewrite multithreaded filter job dispatching
5610        https://bugs.webkit.org/show_bug.cgi?id=97500
5611
5612        Reviewed by Dean Jackson.
5613
5614        This patch solves the problem of splitting up images into subregions for multithreaded
5615        filters. This fixes the way we partition the image array into equal-sized chunks.
5616        If we have an array of length N and want to split it into K chunks, we calculate:
5617          int jobSize = N / K; // integer division, so this is floored
5618          int jobSizeExtra = N % K; // modulus produces the remainder
5619        We then split the array into jobSizeExtra number of jobs with size jobSize + 1
5620        and (K - jobSizeExtra) number of jobs with size jobSize. This pattern
5621        is used in each of the 5 filters in this patch.
5622
5623        This patch primarily fixes an error in FEMorphology::platformApply where
5624        the image array was partitioned into (1 + (N / K)) pieces with the last job
5625        taking the remainder. Unfortunately, this can cause overruns in the 2nd-to-last job.
5626        Consider N = 2373 and K = 64 jobs. Job 0 would take indices 0...38, job 1 would take
5627        38...76, etc. Unfortunately the 62nd job takes 2356...2394 which overruns.
5628
5629        To prevent similar issues elsewhere this patch updates all of the filters
5630        to use the same pattern as FEMorphology.
5631
5632        Test: svg/filters/feMorphology-crash.html
5633
5634        * platform/graphics/filters/FEConvolveMatrix.cpp:
5635        (WebCore::FEConvolveMatrix::platformApplySoftware):
5636        * platform/graphics/filters/FEGaussianBlur.cpp:
5637        (WebCore::FEGaussianBlur::platformApply):
5638        * platform/graphics/filters/FELighting.cpp:
5639        (WebCore::FELighting::platformApplyGeneric):
5640        * platform/graphics/filters/FEMorphology.cpp:
5641        (WebCore::FEMorphology::platformApply):
5642
5643            Some special care is taken for Gaussian Blur because there is an
5644            extraHeight parameter for sampling outside the image's dimensions.
5645            This means we use the same partitioning algorithm but add
5646            extraHeight padding on the lower and upper bounds.
5647
5648        * platform/graphics/filters/FETurbulence.cpp:
5649        (WebCore::FETurbulence::platformApplySoftware):
5650
56512012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
5652
5653        [Chromium] Move UNIX-specific theme functions out of PlatformSupport
5654        https://bugs.webkit.org/show_bug.cgi?id=96516
5655
5656        Reviewed by Adam Barth.
5657
5658        Call WebThemeEngine functions and use WebThemeEngine enums
5659        directly from the new Platform/ directly; remove all
5660        intermediate functions and enums and conversion functions from
5661        PlatformSupport.
5662        Part of a refactoring series; see tracking bug 82948.
5663
5664        * WebCore.gyp/WebCore.gyp:
5665        * platform/chromium/PlatformSupport.h:
5666        (PlatformSupport):
5667        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
5668        (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
5669        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
5670        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
5671        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
5672        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
5673        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
5674        * rendering/RenderThemeChromiumAndroid.cpp:
5675        (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
5676        (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
5677        * rendering/RenderThemeChromiumLinux.cpp:
5678        (WebCore::getWebThemeState):
5679        (WebCore):
5680        (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
5681        (WebCore::RenderThemeChromiumLinux::paintCheckbox):
5682        (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
5683        (WebCore::RenderThemeChromiumLinux::paintRadio):
5684        (WebCore::RenderThemeChromiumLinux::setRadioSize):
5685        (WebCore::RenderThemeChromiumLinux::paintButton):
5686        (WebCore::RenderThemeChromiumLinux::paintTextField):
5687        (WebCore::RenderThemeChromiumLinux::paintMenuList):
5688        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
5689        (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
5690        (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
5691        (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
5692        (WebCore::RenderThemeChromiumLinux::paintProgressBar):
5693
56942012-09-27  Bear Travis  <betravis@adobe.com>
5695
5696        [CSS Exclusions] Rename RenderStyle::wrapShapeInside/Outside to shapeInside/Outside
5697        https://bugs.webkit.org/show_bug.cgi?id=97707
5698
5699        Reviewed by Antti Koivisto.
5700
5701        The exclusions specification has renamed wrap-shape-inside and wrap-shape-outside
5702        to shape-inside and shape-outside. We should rename the getter/setter functions
5703        in RenderStyle, and update the derived variable and function names accordingly.
5704        For more information, see: http://dev.w3.org/csswg/css3-exclusions/#declaring-shapes
5705
5706        Covered by existing tests. No new functionality.
5707
5708        * css/CSSComputedStyleDeclaration.cpp:
5709        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
5710        * css/StyleBuilder.cpp:
5711        (WebCore::ApplyPropertyExclusionShape::applyValue):
5712        (WebCore::StyleBuilder::StyleBuilder):
5713        * rendering/ExclusionShapeInsideInfo.cpp:
5714        (WebCore::ExclusionShapeInsideInfo::exclusionShapeInsideInfoForRenderBlock):
5715        (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
5716        (WebCore::ExclusionShapeInsideInfo::removeExclusionShapeInsideInfoForRenderBlock):
5717        (WebCore::ExclusionShapeInsideInfo::computeShapeSize):
5718        * rendering/RenderBlock.cpp:
5719        (WebCore::RenderBlock::styleDidChange):
5720        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
5721        * rendering/RenderBlock.h:
5722        (WebCore::RenderBlock::exclusionShapeInsideInfo):
5723        * rendering/style/RenderStyle.cpp:
5724        (WebCore::RenderStyle::diff):
5725        * rendering/style/RenderStyle.h:
5726        * rendering/style/StyleRareNonInheritedData.cpp:
5727        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
5728        (WebCore::StyleRareNonInheritedData::operator==):
5729        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
5730        * rendering/style/StyleRareNonInheritedData.h:
5731        (StyleRareNonInheritedData):
5732
57332012-09-27  Michael Saboff  <msaboff@apple.com>
5734
5735        ApplicationCacheStorage does not optimally handle 8 bit strings
5736        https://bugs.webkit.org/show_bug.cgi?id=97733
5737
5738        Reviewed by Alexey Proskuryakov.
5739
5740        Added 8 bit string paths.
5741
5742        No functional change, therefore no new tests.
5743
5744        * loader/appcache/ApplicationCacheStorage.cpp:
5745        (WebCore::urlHostHash):
5746        (WebCore::ApplicationCacheStorage::store):
5747        (WebCore::parseHeader):
5748        (WebCore::parseHeaders):
5749
57502012-09-27  Stephen Chenney  <schenney@chromium.org>
5751
5752        Unreviewed Chromium debug build fix.
5753
5754        ASSERT contains an inequality of unmatched types. A cast should do the trick.
5755
5756        * bindings/v8/V8Binding.h:
5757        (WebCore::toNativeArguments):
5758
57592012-09-27  Adam Klein  <adamk@chromium.org>
5760
5761        Simplify and clarify MutationObserverRegistration interface and usage
5762        https://bugs.webkit.org/show_bug.cgi?id=97742
5763
5764        Reviewed by Ojan Vafai.
5765
5766        Minor cleanups in MutationObserverRegistration: make const methods explicitly const,
5767        use C++ templates to avoid duplicating logic, improve usage of raw pointers vs PassRefPtr,
5768        remove the declaration of a no-longer-existing method.
5769
5770        No change in behavior.
5771
5772        * dom/MutationObserverRegistration.cpp:
5773        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach): Take a raw pointer because we don't always ref the node.
5774        (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom): Make this a const method.
5775        * dom/MutationObserverRegistration.h:
5776        (MutationObserverRegistration): Removed declaration of non-existent caseInsensitiveAttributeFilter method.
5777        (WebCore::MutationObserverRegistration::hasTransientRegistrations): const method.
5778        (WebCore::MutationObserverRegistration::isSubtree): Remove superfluous "inline" keyword.
5779        (WebCore::MutationObserverRegistration::observer): const method.
5780        * dom/Node.cpp:
5781        (WebCore):
5782        (WebCore::collectMatchingObserversForMutation): Add a templatized function to reduce duplicated code.
5783        (WebCore::Node::getRegisteredMutationObserversOfType):
5784        (WebCore::Node::registerMutationObserver): Take a raw pointer because we don't always ref the observer.
5785        * dom/Node.h:
5786        (Node): Remove old method, replaced by templatized static function.
5787
57882012-09-27  Erik Arvidsson  <arv@chromium.org>
5789
5790        DOM4: Add support for rest parameters to DOMTokenList
5791        https://bugs.webkit.org/show_bug.cgi?id=97335
5792
5793        Reviewed by Ojan Vafai.
5794
5795        This adds support for rest paramaters to DOMTokenList add and remove.
5796        http://dom.spec.whatwg.org/#domtokenlist
5797
5798        The code generator has been updated to understand variadic methods.
5799        When a method has a rest parameter the remaining arguments are collected
5800        into a WTF::Vector.
5801
5802        DOMTokenList, DOMSettableTokenList and ClassList were restructured a bit to
5803        allow code to be shared better.
5804
5805        Updated existing tests and includes new binding tests.
5806
5807        * bindings/js/JSDOMBinding.h:
5808        (WebCore::toNativeArray):
5809        (WebCore):
5810        (WebCore::toNativeArguments): Similar to toNativeArray but extracts the arguments instead.
5811        * bindings/scripts/CodeGeneratorJS.pm:
5812        (GenerateArgumentsCountCheck): Updated to treat rest paramaters as optional.
5813        (GenerateParametersCheck): Generate code for rest params.
5814        * bindings/scripts/CodeGeneratorV8.pm:
5815        (GenerateFunctionParametersCheck): Updated to treat rest paramaters as optional.
5816        (GenerateArgumentsCountCheck): Ditto.
5817        (GenerateParametersCheck):  Generate code for rest params.
5818        * bindings/scripts/IDLParser.pm:
5819        (parseOptionalOrRequiredArgument):
5820        * bindings/scripts/IDLStructure.pm:
5821        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
5822        (WebDOMTestObj::variadicStringMethod):
5823        (WebDOMTestObj::variadicDoubleMethod):
5824        (WebDOMTestObj::variadicNodeMethod):
5825        * bindings/scripts/test/CPP/WebDOMTestObj.h:
5826        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
5827        (webkit_dom_test_obj_variadic_string_method):
5828        (webkit_dom_test_obj_variadic_double_method):
5829        (webkit_dom_test_obj_variadic_node_method):
5830        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
5831        * bindings/scripts/test/JS/JSTestObj.cpp:
5832        (WebCore):
5833        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
5834        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
5835        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
5836        * bindings/scripts/test/JS/JSTestObj.h:
5837        (WebCore):
5838        * bindings/scripts/test/ObjC/DOMTestObj.h:
5839        * bindings/scripts/test/ObjC/DOMTestObj.mm:
5840        (-[DOMTestObj variadicStringMethod:tail:]):
5841        (-[DOMTestObj variadicDoubleMethod:tail:]):
5842        (-[DOMTestObj variadicNodeMethod:tail:]):
5843        * bindings/scripts/test/TestObj.idl:
5844        * bindings/scripts/test/V8/V8TestObj.cpp:
5845        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
5846        (TestObjV8Internal):
5847        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
5848        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
5849        (WebCore):
5850        (WebCore::ConfigureV8TestObjTemplate):
5851        * bindings/v8/V8Binding.h:
5852        (WebCore::toNativeArray):
5853        (WebCore):
5854        (WebCore::toNativeArguments): Similar to toNativeArray but extracts the arguments instead.
5855        * html/ClassList.cpp:
5856        (WebCore::ClassList::ClassList):
5857        * html/ClassList.h:
5858        (WebCore):
5859        (ClassList):
5860        * html/DOMSettableTokenList.cpp:
5861        (WebCore::DOMSettableTokenList::containsInternal):
5862        (WebCore::DOMSettableTokenList::add):
5863        (WebCore::DOMSettableTokenList::addInternal):
5864        (WebCore::DOMSettableTokenList::remove):
5865        (WebCore::DOMSettableTokenList::removeInternal):
5866        (WebCore::DOMSettableTokenList::setValue):
5867        * html/DOMSettableTokenList.h:
5868        (DOMSettableTokenList):
5869        * html/DOMTokenList.cpp:
5870        (WebCore::DOMTokenList::validateTokens):
5871        (WebCore):
5872        (WebCore::DOMTokenList::contains): Moved implementation to base class to allow code sharing.
5873        (WebCore::DOMTokenList::add): Ditto.
5874        (WebCore::DOMTokenList::remove): Ditto.
5875        (WebCore::DOMTokenList::toggle): Ditto.
5876        (WebCore::DOMTokenList::addInternal): Ditto.
5877        (WebCore::DOMTokenList::removeInternal): Ditto.
5878        (WebCore::DOMTokenList::addToken): Ditto.
5879        (WebCore::DOMTokenList::addTokens):
5880        (WebCore::DOMTokenList::removeToken): Ditto.
5881        (WebCore::DOMTokenList::removeTokens):
5882        * html/DOMTokenList.h:
5883        (DOMTokenList):
5884        (WebCore::DOMTokenList::toString):
5885        * html/DOMTokenList.idl:
5886
58872012-09-27  Andreas Kling  <kling@webkit.org>
5888
5889        332kB below DocumentEventQueue::create() on Membuster3.
5890        <http://webkit.org/b/97712>
5891
5892        Reviewed by Anders Carlsson.
5893
5894        Give DocumentEventQueue::m_queuedEvents an inline capacity of 16 (the default is 256.)
5895        312kB progression on Membuster3.
5896
5897        * dom/DocumentEventQueue.h:
5898        * dom/DocumentEventQueue.cpp:
5899        (WebCore::DocumentEventQueue::pendingEventTimerFired):
5900
59012012-09-27  Vsevolod Vlasov  <vsevik@chromium.org>
5902
5903        Web Inspector: [REGRESSION] Breakpoints are not always shown in breakpoints sidebar pane.
5904        https://bugs.webkit.org/show_bug.cgi?id=97783
5905
5906        Reviewed by Pavel Feldman.
5907
5908        BreakpointSidebarPane now explicitly adds all breakpoints that are available at the moment of its creation.
5909
5910        * inspector/front-end/BreakpointManager.js:
5911        (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
5912        (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
5913        (WebInspector.BreakpointManager.prototype.allBreakpointLocations):
5914        * inspector/front-end/BreakpointsSidebarPane.js:
5915        (WebInspector.JavaScriptBreakpointsSidebarPane):
5916        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
5917
59182012-09-27  Mike West  <mkwst@chromium.org>
5919
5920        Dropping JSC references from InspectorInstrumentation.h by including 'ScriptState.h'
5921        https://bugs.webkit.org/show_bug.cgi?id=97759
5922
5923        Reviewed by Adam Barth.
5924
5925        InspectorInstrumentation.h includes two '#if USE(JSC)' blocks, which
5926        I've been reliably informed should not appear in WebCore[1]. This patch
5927        drops both blocks, and includes 'ScriptState.h' instead, which should
5928        have the same practical effect.
5929
5930        There's no functional change, so this should be covered by existing tests.
5931
5932        [1]: https://bugs.webkit.org/show_bug.cgi?id=94433#c55
5933
5934        * inspector/InspectorInstrumentation.h:
5935        (WebCore):
5936
59372012-09-27  Erik Arvidsson  <arv@chromium.org>
5938
5939        Remove unused regular expressions from IDLStructure.pm
5940        https://bugs.webkit.org/show_bug.cgi?id=97790
5941
5942        Reviewed by Kentaro Hara.
5943
5944        After http://trac.webkit.org/changeset/129723 these regular expressions are no longer used.
5945
5946        No new tests, run-binding-tests generates the same output.
5947
5948        * bindings/scripts/IDLStructure.pm:
5949
59502012-09-27  Tommy Widenflycht  <tommyw@google.com>
5951
5952        MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data
5953        https://bugs.webkit.org/show_bug.cgi?id=97559
5954
5955        Reviewed by Adam Barth.
5956
5957        Instead of just returning the names, return a pair of name and value.
5958
5959        Existing tests cover this patch.
5960
5961        * Modules/mediastream/MediaConstraintsImpl.cpp:
5962        (WebCore::MediaConstraintsImpl::initialize):
5963        (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
5964        (WebCore::MediaConstraintsImpl::getOptionalConstraints):
5965        (WebCore::MediaConstraintsImpl::getOptionalConstraintValue):
5966        * Modules/mediastream/MediaConstraintsImpl.h:
5967        (MediaConstraintsImpl):
5968        * platform/chromium/support/WebMediaConstraints.cpp:
5969        (WebKit::WebMediaConstraint::WebMediaConstraint):
5970        (WebKit):
5971        (WebKit::WebMediaConstraints::getMandatoryConstraints):
5972        (WebKit::WebMediaConstraints::getOptionalConstraints):
5973        * platform/mediastream/MediaConstraints.h:
5974        (WebCore::MediaConstraint::MediaConstraint):
5975        (MediaConstraint):
5976        (WebCore):
5977        (MediaConstraints):
5978
59792012-09-27  Ilya Tikhonovsky  <loislo@chromium.org>
5980
5981        Web Inspector: NMI: move visited and countObjectSize methods implementation into separate class.
5982        https://bugs.webkit.org/show_bug.cgi?id=97461
5983
5984        Reviewed by Yury Semikhatsky.
5985
5986        These methods and the data collected by them need to be used in the instrumentation code for other components.
5987        As example when we are visiting bitmaps we need to visit platform specific objects.
5988        These objects will be instrumented with help of component's own instrumentation code
5989        but we have to keep the single set of visited objects and the map of counters.
5990
5991        * inspector/InspectorMemoryAgent.cpp:
5992        (WebCore):
5993        (WebCore::collectDomTreeInfo):
5994        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
5995        * inspector/MemoryInstrumentationImpl.cpp:
5996        (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
5997        (WebCore):
5998        (WebCore::MemoryInstrumentationClientImpl::visited):
5999        (WebCore::MemoryInstrumentationImpl::selfSize):
6000        * inspector/MemoryInstrumentationImpl.h:
6001        (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
6002        (WebCore::MemoryInstrumentationClientImpl::selfSize):
6003        (MemoryInstrumentationClientImpl):
6004        (WebCore::MemoryInstrumentationClientImpl::visitedObjects):
6005        (WebCore):
6006        (MemoryInstrumentationImpl):
6007        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
6008        (WebCore::MemoryInstrumentationImpl::checkInstrumentedObjects):
6009
60102012-09-27  Jinwoo Song  <jinwoo7.song@samsung.com>
6011
6012        [CMAKE] Remove unnecessary header files from CMakeLists.txt
6013        https://bugs.webkit.org/show_bug.cgi?id=97771
6014
6015        Reviewed by Kentaro Hara.
6016
6017        Remove the header files which are added in the source file list.
6018
6019        * CMakeLists.txt:
6020
60212012-09-27  Andrey Kosyakov  <caseq@chromium.org>
6022
6023        Unreviewed, re-landing r129633 with the proper order of calls.
6024        https://bugs.webkit.org/show_bug.cgi?id=97659
6025
6026        * inspector/InspectorOverlay.cpp:
6027        (WebCore::InspectorOverlay::paint):
6028
60292012-09-27  Andrey Kosyakov  <caseq@chromium.org>
6030
6031        Unreviewed, rolling out r129633.
6032        http://trac.webkit.org/changeset/129633
6033        https://bugs.webkit.org/show_bug.cgi?id=97659
6034
6035        Breaks inspector overlay in non-composited mode
6036
6037        * inspector/InspectorOverlay.cpp:
6038        (WebCore::InspectorOverlay::paint):
6039
60402012-09-27  Christophe Dumez  <christophe.dumez@intel.com>
6041
6042        [EFL] Remove duplicated CSS between mediaControlsEfl.css and mediaControlsEflFullscreen.css
6043        https://bugs.webkit.org/show_bug.cgi?id=97770
6044
6045        Reviewed by Kenneth Rohde Christiansen.
6046
6047        Some CSS rules were duplicated between mediaControlsEfl.css and mediaControlsEflFullscreen.css
6048        for no reason. This is an issue because it is easy to update mediaControlsEfl.css and forget
6049        to make the same update to mediaControlsEflFullscreen.css. As a matter of fact, the timeline
6050        display in fullscreen is currently off by a few pixels because its fullscreen CSS is not in
6051        sync with what is in mediaControlsEfl.css.
6052
6053        We need to include in mediaControlsEflFullscreen.css only the CSS rules that are specific to
6054        fullscreen mode, that is to say, the hiding of some controls.
6055
6056        No new tests, no behavior change for layout tests.
6057
6058        * css/mediaControlsEflFullscreen.css:
6059
60602012-09-27  Vsevolod Vlasov  <vsevik@chromium.org>
6061
6062        Web Inspector: Open resource dialog should assume implicit wildcard in the beginning of the query.
6063        https://bugs.webkit.org/show_bug.cgi?id=97768
6064
6065        Reviewed by Pavel Feldman.
6066
6067        Open resource dialog now assumes implicit wildcard in the beginning of the query.
6068
6069        * inspector/front-end/FilteredItemSelectionDialog.js:
6070        (WebInspector.FilteredItemSelectionDialog.prototype._innerCreateSearchRegExp):
6071
60722012-09-27  Pavel Feldman  <pfeldman@chromium.org>
6073
6074        Web Inspector: do not use InspectorInstrumentation::hasFrontends() check when collecting stacks
6075        https://bugs.webkit.org/show_bug.cgi?id=96730
6076
6077        Reviewed by Vsevolod Vlasov.
6078
6079        - Introduced InspectorInstrumentation::console|timeline|runtime|canvasAgentEnabled
6080        - Using it all over the place instead of the hasFrontend (the latter is now only used once to guard hot path)
6081        - Introduced explicit "enabled" state of the console and runtime agents
6082
6083        * bindings/js/JSHTMLCanvasElementCustom.cpp:
6084        (WebCore::JSHTMLCanvasElement::getContext):
6085        * bindings/js/JSMainThreadExecState.h:
6086        (WebCore::JSMainThreadExecState::instrumentFunctionCall):
6087        * bindings/js/ScheduledAction.cpp:
6088        (WebCore::ScheduledAction::create):
6089        * bindings/js/ScriptCallStackFactory.cpp:
6090        (WebCore::createScriptCallStackForConsole):
6091        * bindings/js/ScriptCallStackFactory.h:
6092        (WebCore):
6093        * bindings/scripts/CodeGeneratorJS.pm:
6094        (GenerateCallWith):
6095        * bindings/scripts/CodeGeneratorV8.pm:
6096        (GenerateCallWith):
6097        * bindings/scripts/test/JS/JSTestObj.cpp:
6098        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
6099        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
6100        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
6101        * bindings/scripts/test/V8/V8TestObj.cpp:
6102        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
6103        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
6104        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
6105        * bindings/v8/ScriptCallStackFactory.cpp:
6106        (WebCore::createScriptCallStackForConsole):
6107        * bindings/v8/ScriptCallStackFactory.h:
6108        (WebCore):
6109        * bindings/v8/ScriptController.cpp:
6110        (WebCore::ScriptController::callFunctionWithInstrumentation):
6111        * bindings/v8/V8DOMWindowShell.cpp:
6112        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
6113        * bindings/v8/V8WorkerContextEventListener.cpp:
6114        (WebCore::V8WorkerContextEventListener::callListenerFunction):
6115        * bindings/v8/custom/V8DOMWindowCustom.cpp:
6116        (WebCore::WindowSetTimeoutImpl):
6117        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
6118        (WebCore::V8HTMLCanvasElement::getContextCallback):
6119        * bindings/v8/custom/V8WorkerContextCustom.cpp:
6120        (WebCore::SetTimeoutOrInterval):
6121        * inspector/Inspector.json:
6122        * inspector/InspectorConsoleAgent.cpp:
6123        (WebCore):
6124        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
6125        (WebCore::InspectorConsoleAgent::enable):
6126        (WebCore::InspectorConsoleAgent::disable):
6127        (WebCore::InspectorConsoleAgent::clearMessages):
6128        (WebCore::InspectorConsoleAgent::clearFrontend):
6129        (WebCore::InspectorConsoleAgent::addConsoleMessage):
6130        * inspector/InspectorConsoleAgent.h:
6131        (WebCore::InspectorConsoleAgent::enabled):
6132        (InspectorConsoleAgent):
6133        * inspector/InspectorController.cpp:
6134        (WebCore::InspectorController::connectFrontend):
6135        (WebCore::InspectorController::disconnectFrontend):
6136        * inspector/InspectorInstrumentation.cpp:
6137        (WebCore):
6138        (WebCore::InspectorInstrumentation::canvasAgentEnabled):
6139        (WebCore::InspectorInstrumentation::consoleAgentEnabled):
6140        (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
6141        (WebCore::InspectorInstrumentation::timelineAgentEnabled):
6142        * inspector/InspectorInstrumentation.h:
6143        (InspectorInstrumentation):
6144        (WebCore::InspectorInstrumentation::canvasAgentEnabled):
6145        (WebCore::InspectorInstrumentation::consoleAgentEnabled):
6146        (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
6147        (WebCore::InspectorInstrumentation::timelineAgentEnabled):
6148        * inspector/InspectorRuntimeAgent.cpp:
6149        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
6150        * inspector/InspectorRuntimeAgent.h:
6151        (WebCore::InspectorRuntimeAgent::enabled):
6152        (WebCore::InspectorRuntimeAgent::enable):
6153        (WebCore::InspectorRuntimeAgent::disable):
6154        (InspectorRuntimeAgent):
6155        * inspector/PageRuntimeAgent.cpp:
6156        (PageRuntimeAgentState):
6157        (WebCore::PageRuntimeAgent::clearFrontend):
6158        (WebCore::PageRuntimeAgent::restore):
6159        (WebCore):
6160        (WebCore::PageRuntimeAgent::enable):
6161        (WebCore::PageRuntimeAgent::disable):
6162        (WebCore::PageRuntimeAgent::didClearWindowObject):
6163        (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
6164        (WebCore::PageRuntimeAgent::reportExecutionContextCreation):
6165        * inspector/PageRuntimeAgent.h:
6166        (PageRuntimeAgent):
6167        * inspector/WorkerRuntimeAgent.cpp:
6168        * inspector/WorkerRuntimeAgent.h:
6169        * inspector/front-end/RuntimeModel.js:
6170        (WebInspector.RuntimeModel.prototype._didLoadCachedResources):
6171        * page/DOMWindow.cpp:
6172        (WebCore::DOMWindow::postMessage):
6173
61742012-09-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
6175
6176        Unify event handling of middle mouse button.
6177        https://bugs.webkit.org/show_bug.cgi?id=97690
6178
6179        Reviewed by Tony Chang.
6180
6181        Implement a unified version of middle mouse button press that can be shared between
6182        all the ports with X11 support.
6183
6184        * page/EventHandler.cpp:
6185        (WebCore::EventHandler::handleMousePressEventSingleClick):
6186        (WebCore::EventHandler::handleMouseReleaseEvent):
6187        (WebCore::EventHandler::handlePasteGlobalSelection):
6188        * page/EventHandler.h:
6189        (EventHandler):
6190
61912012-09-27  Tommy Widenflycht  <tommyw@google.com>
6192
6193        MediaStream API: Update getUserMedia to match the latest specification
6194        https://bugs.webkit.org/show_bug.cgi?id=97540
6195
6196        Reviewed by Adam Barth.
6197
6198        http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia
6199        Navigator.getUserMedia is changed so that the audio and video members can either
6200        be a bool or a constraints object.
6201
6202        Existing tests expanded to cover the new change.
6203
6204        * Modules/mediastream/MediaConstraintsImpl.cpp:
6205        (WebCore::MediaConstraintsImpl::create):
6206        (WebCore):
6207        * Modules/mediastream/MediaConstraintsImpl.h:
6208        (MediaConstraintsImpl):
6209        * Modules/mediastream/NavigatorMediaStream.cpp:
6210        (WebCore::NavigatorMediaStream::webkitGetUserMedia):
6211        * Modules/mediastream/UserMediaRequest.cpp:
6212        (WebCore::parseOptions):
6213        (WebCore):
6214        (WebCore::UserMediaRequest::create):
6215        (WebCore::UserMediaRequest::UserMediaRequest):
6216        (WebCore::UserMediaRequest::audio):
6217        (WebCore::UserMediaRequest::video):
6218        (WebCore::UserMediaRequest::audioConstraints):
6219        (WebCore::UserMediaRequest::videoConstraints):
6220        * Modules/mediastream/UserMediaRequest.h:
6221        (WebCore):
6222        (UserMediaRequest):
6223        * platform/chromium/support/WebMediaConstraints.cpp:
6224        (WebKit::WebMediaConstraints::WebMediaConstraints):
6225        (WebKit):
6226
62272012-09-27  Vsevolod Vlasov  <vsevik@chromium.org>
6228
6229        Unreviewed inspector front-end closure compilation fix.
6230
6231        * inspector/front-end/UISourceCode.js:
6232        (WebInspector.UISourceCode.prototype.revertToOriginal):
6233        (WebInspector.UISourceCode.prototype.revertAndClearHistory):
6234
62352012-09-25  Alexander Pavlov  <apavlov@chromium.org>
6236
6237        CollectingRules and QueryingRules modes of SelectorChecker miss some complex selectors with pseudo elements
6238        https://bugs.webkit.org/show_bug.cgi?id=78595
6239
6240        Reviewed by Antti Koivisto.
6241
6242        Do not use the same dynamicPseudo reference when recursively invoking checkSelector() for non-SubSelector selectors.
6243
6244        Test: fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex.html
6245
6246        * css/SelectorChecker.cpp:
6247        (WebCore::SelectorChecker::checkSelector): Use new NOPSEUDO dynamic pseudoId values
6248        for each non-SubSelector selector further in the tag history.
6249
62502012-09-27  Christophe Dumez  <christophe.dumez@intel.com>
6251
6252        [EFL] No way to exit video fullscreen mode once entered
6253        https://bugs.webkit.org/show_bug.cgi?id=97631
6254
6255        Reviewed by Kenneth Rohde Christiansen.
6256
6257        Show fullscreen media control in fullscreen so that
6258        we now have a way to exit fullscreen mode.
6259
6260        No new tests, no behavior change for layout tests.
6261
6262        * css/mediaControlsEflFullscreen.css:
6263        * platform/efl/RenderThemeEfl.cpp:
6264        (WebCore::RenderThemeEfl::emitMediaButtonSignal):
6265        (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
6266
62672012-09-27  Yoshifumi Inoue  <yosin@chromium.org>
6268
6269        [Forms] BaseMultipleFieldsDateAndTimeInputType class should inherit DateTimeEditElement::EditControlOwner rather than containing
6270        https://bugs.webkit.org/show_bug.cgi?id=97756
6271
6272        Reviewed by Kent Tamura.
6273
6274        This patch changes class hierarchy of BaseMultipleFieldsDateAndTimeInputType
6275        to inherit from DateTimeEditElement::EditControlOwner rather than
6276        containing an instance of DateTimeEditElement::EditControlOwner for
6277        saving memory, although one pointer, and one memory fetch on using
6278        HTMLInputElement.
6279
6280        Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
6281        ENABLE_INPUT_MULTIPLE_FIELDS_UI.
6282
6283        No new tests. This patch doesn't change behavior.
6284
6285        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: DateTimeEditElement::EditControlOwner::DateTimeformatDateTimeFieldsState was removed. We no longer need to redirection. Each date/time input type classe implements it.
6286        (WebCore::BaseMultipleFieldsDateAndTimeInputType::didBlurFromControl): Moved from DateTimeEditControlOwnerImpl and removed reference of m_dateTimeInputType.
6287        (WebCore::BaseMultipleFieldsDateAndTimeInputType::didFocusOnControl): ditto.
6288        (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged): ditto.
6289        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled): ditto.
6290        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly): ditto.
6291        (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto.
6292        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Changed to pass BaseMultipleFieldsDateAndTimeInputType instead of DateTimeEditControlOwnerImpl.
6293        * html/BaseMultipleFieldsDateAndTimeInputType.h: Changed base class to have DateTImeEditElement::EditControlOwner.
6294        (BaseMultipleFieldsDateAndTimeInputType): Removed DateTimeEditControlOwnerImpl class and member variable m_dateTimeEditControlOwner.
6295
62962012-09-27  Keishi Hattori  <keishi@webkit.org>
6297
6298        SuggestionPicker should support rtl
6299        https://bugs.webkit.org/show_bug.cgi?id=97555
6300
6301        Reviewed by Kent Tamura.
6302
6303        Add support for rtl to SuggestionPicker. We add another parameter
6304        because text direction for the calendar picker should depend on the UI
6305        language but the text direction for suggestion picker should depend on
6306        the input element style.
6307
6308        Test: platform/chromium/fast/forms/date/date-suggestion-picker-appearance-rtl.html
6309
6310        * Resources/pagepopups/calendarPicker.js:
6311        (CalendarPicker.prototype._layout):
6312        * Resources/pagepopups/pickerCommon.css:
6313        (.rtl): Added so we can change styles when in rtl mode.
6314        * Resources/pagepopups/suggestionPicker.css:
6315        (.suggestion-list-entry .label):
6316        (.rtl .suggestion-list-entry .label): Change float direction to left.
6317        * Resources/pagepopups/suggestionPicker.js:
6318        (SuggestionPicker.prototype._layout):
6319        * html/shadow/CalendarPickerElement.cpp:
6320        (WebCore::CalendarPickerElement::openPopup): Set isAnchorElementRTL to true if the input element is rtl.
6321        * platform/DateTimeChooser.h:
6322        (DateTimeChooserParameters): Added isAnchorElementRTL.
6323
63242012-09-27  Takashi Sakamoto  <tasak@google.com>
6325
6326        Follow-up to r129723 to once more allow parsing of scoped names in IDL files.
6327
6328        Reviewed by Kentaro Hara.
6329
6330        This functionality was supported by the old IDL parser but was lost in the rewrite of the parser
6331        in r129723. It is being reinstated to unbreak clients that currently depend on it, but will likely
6332        be removed in the future once those clients have a chance to adopt an approach that more closely
6333        follows the WebIDL syntax.
6334
6335        * bindings/scripts/IDLParser.pm:
6336        (parseDefinition):
6337        (parseInheritance):
6338        (parseImplementsStatement):
6339        (parseExtendedAttribute):
6340        (parseExtendedAttribute2):
6341        (parseExtendedAttributeRest2):
6342        (parseExtendedAttributeRest3):
6343        (parseScopedNameListNoComma):
6344        (parseNonAnyType):
6345        (parseExceptionList):
6346        (parseDefinitionOld):
6347        (parseScopedName):
6348        (parseAbsoluteScopedName):
6349        (parseRelativeScopedName):
6350        (parseScopedNameParts):
6351        (parseScopedNameList):
6352        (parseScopedNames):
6353
63542012-09-27  Yury Semikhatsky  <yurys@chromium.org>
6355
6356        Web Inspector: expose debug memory instrumentation debug data through the protocol
6357        https://bugs.webkit.org/show_bug.cgi?id=97683
6358
6359        Reviewed by Pavel Feldman.
6360
6361        Memory.getProcessMemoryDistribution command now returns number of instrumented
6362        objects that were found and the number of the objects that were counted by
6363        the instrumentation but were not actually allocated by the memory allocator.
6364        These numbers are only added to the response if embedder provides access to the
6365        set of all live heap objects. These numbers are intended to be used for testing
6366        memory instrumentation.
6367
6368        * inspector/InspectorMemoryAgent.cpp:
6369        (WebCore::collectDomTreeInfo):
6370        * inspector/MemoryInstrumentationImpl.cpp:
6371        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
6372        (WebCore::MemoryInstrumentationImpl::checkCountedObject):
6373        * inspector/MemoryInstrumentationImpl.h:
6374        (WebCore::MemoryInstrumentationImpl::checkInstrumentedObjects):
6375        (WebCore::MemoryInstrumentationImpl::totalCountedObjects):
6376        (WebCore::MemoryInstrumentationImpl::totalObjectsNotInAllocatedSet):
6377        (MemoryInstrumentationImpl):
6378
63792012-09-27  Mihnea Ovidenie  <mihnea@adobe.com>
6380
6381        [CSSRegions]Refactor RenderFlowThread::contentLogical(Width/Height/Left)OfFirstRegion
6382        https://bugs.webkit.org/show_bug.cgi?id=97577
6383
6384        Reviewed by Andreas Kling.
6385
6386        RenderFlowThread methods contentLogicalWidthOfFirstRegion, contentLogicalHeightOfFirstRegion, contentLogicalLeftOfFirstRegion
6387        were using code to get the first valid region associated with the flow. We can use RenderFlowThread::firstRegion() method instead.
6388
6389        No new tests as this is just refactoring of existing code, the change is covered by existing regions tests.
6390
6391        * rendering/RenderFlowThread.cpp:
6392        (WebCore::RenderFlowThread::contentLogicalWidthOfFirstRegion):
6393        (WebCore::RenderFlowThread::contentLogicalHeightOfFirstRegion):
6394        (WebCore):
6395        (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
6396        (WebCore::RenderFlowThread::firstRegion):
6397        (WebCore::RenderFlowThread::lastRegion):
6398        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
6399        (WebCore::RenderFlowThread::objectInFlowRegion):
6400        (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
6401
64022012-09-27  Patrick Gansterer  <paroga@webkit.org>
6403
6404        Build fix for !USE(ICU_UNICODE) after r129662.
6405
6406        Convert LChar to UChar so we can call the existing function until the
6407        other TextBreakIterator implemenations provide an overload for LChar.
6408
6409        * platform/text/TextBreakIterator.cpp:
6410        (WebCore):
6411        (WebCore::acquireLineBreakIterator):
6412
64132012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
6414
6415        [Forms] Move multiple fields related functions to BaseDateAndTimeInputType from TimeInputType
6416        https://bugs.webkit.org/show_bug.cgi?id=97521
6417
6418        Reviewed by Kent Tamura.
6419
6420        This patch introduces new class BaseMultipleFieldsDateAndTimeInputType
6421        for sharing code among multiple fields date/time input UI.
6422
6423        Member functions in BaseMultipleFieldsDateAndTimeInputType are moved
6424        from TimeInputType. BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
6425        were copied from TimeInputType.{cpp,h} by r129721.
6426
6427        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
6428        ENABLE_INPUT_MULTIPLE_FIELDS_UI.
6429
6430        No new tests. This patch doesn't change behavior.
6431
6432        * WebCore.gypi: Changed to have html/BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
6433        * html/BaseDateAndTimeInputType.h:
6434        (BaseDateAndTimeInputType): Exposed setMillisecondToDateComponents as protected for BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState().
6435        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
6436        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl): Moved from TimeInputType::DateTimeEditControlOwnerImpl.
6437        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl): ditto.
6438        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didBlurFromControl): ditto.
6439        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didFocusOnControl): ditto.
6440        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged): ditto.
6441        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::formatDateTimeFieldsState): Moved from TimeInputType::DateTimeEditControlOwnerImpl and changed to call formatDateTimeFieldsState() in BaseMultipleFieldsDateAndTimeInputTypeInputType class.
6442        (WebCore::BaseMultipleFieldsDateAndTimeInputType::hasCustomFocusLogic): Moved from TimeInputType.
6443        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled): ditto.
6444        (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly): ditto.
6445        (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto.
6446        (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType): ditto.
6447        (WebCore::BaseMultipleFieldsDateAndTimeInputType::blur): ditto.
6448        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer): ditto.
6449        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): ditto.
6450        (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree): ditto.
6451        (WebCore::BaseMultipleFieldsDateAndTimeInputType::focus): ditto.
6452        (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent): ditto.
6453        (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged): ditto.
6454        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): ditto.
6455        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable): ditto.
6456        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isMouseFocusable): ditto.
6457        (WebCore::BaseMultipleFieldsDateAndTimeInputType::minOrMaxAttributeChanged): ditto.
6458        (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): ditto.
6459        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isTextField): ditto.
6460        (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState): ditto.
6461        (WebCore::BaseMultipleFieldsDateAndTimeInputType::saveFormControlState): ditto.
6462        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue): ditto.
6463        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldUseInputMethod): ditto.
6464        (WebCore::BaseMultipleFieldsDateAndTimeInputType::stepAttributeChanged): ditto.
6465        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Moved from TimeInputType and changed to call setupLayoutParameters() to set date/time format by each input type.
6466        * html/BaseMultipleFieldsDateAndTimeInputType.h:
6467        (BaseMultipleFieldsDateAndTimeInputType): Added.
6468        (DateTimeEditControlOwnerImpl): Moved from TimeInputType.
6469        * html/TimeInputType.cpp: Moved multiple fields UI related functions to BaseMultipleFieldsDateAndTimeInputType.
6470        (WebCore::TimeInputType::TimeInputType): Changed base class name to BaseTimeInput.
6471        (WebCore::TimeInputType::formatDateTimeFieldsState): Moved from TimeINput::DateTImeEditControlOwnerImpl class.
6472        (WebCore::TimeInputType::setupLayoutParameters): Added for set time format.
6473        * html/TimeInputType.h:
6474        (TimeInputType): Chaned base class to BaseTimeInput which is alias of BaseDateAndTimeInputType or BaseMultipleFieldsDateAndTimeInputType.
6475
64762012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
6477
6478        [Forms] Adding localization texts for multiple fields date/time input UI
6479        https://bugs.webkit.org/show_bug.cgi?id=97633
6480
6481        Reviewed by Kent Tamura.
6482
6483        This patch adds function declarations for getting localized strings
6484        used in multiple fields date/time input UI inside ENABLE_INPUT_MULTIPLE_FIELDS_UI.
6485
6486        New functions are:
6487         - placeholderForDayOfMonthField()
6488            It returns localized placeholder text, e.g. "dd", for date field
6489            used in multiple fields "date", "datetime", and "datetime-local"
6490            input UI instead "--".
6491
6492        - placeholderForfMonthField()
6493            It returns localized placeholder text, e.g. "mm", for month field
6494            used in multiple fields "date", "datetime", and "datetime-local"
6495            input UI instead "--".
6496
6497        - placeholderForYearField()
6498            It returns localized placeholder text, e.g. "yyyy", for year field
6499            used in multiple fields "date", "datetime", and "datetime-local"
6500            input UI instead "----".
6501
6502        - monthFormatInLDML()
6503            It returns month and year format in LDML, Unicode technical
6504            standard 35, Locale Data Markup Language, e.g. "MM-yyyyy" for
6505            "month" input type.
6506
6507        - monthFormatInLDML()
6508            It returns week and year format in LDML, e.g. "WW-yyyyy" for
6509            "week" input type.
6510
6511        No new tests. This patch doesn't change behavior.
6512
6513        * platform/LocalizedStrings.h:
6514        (WebCore): Added declarations of placeholderForDayOfMonthField(), placeholderForMonthField(),
6515        placeholderForYearField(), monthFormatInLDML() and weekFormatInLDML().
6516
65172012-09-26  Huang Dongsung  <luxtella@company100.net>
6518
6519        [CSS Shaders] Remove an unused member variable m_program in FECustomFilter.h
6520        https://bugs.webkit.org/show_bug.cgi?id=97755
6521
6522        Reviewed by Kentaro Hara.
6523
6524        No new tests. This patch doesn't change behavior.
6525
6526        * platform/graphics/filters/FECustomFilter.h:
6527        (WebCore):
6528
65292012-08-09  Takashi Sakamoto  <tasak@google.com>
6530
6531        Move IDL extended attributes to the location specified in WebIDL
6532        https://bugs.webkit.org/show_bug.cgi?id=26398
6533
6534        Reviewed by Kentaro Hara.
6535
6536        Recreated a new IDLParser based on the WebIDL spec:
6537        http://dev.w3.org/2006/webapi/WebIDL/
6538
6539        Firstly merges two grammars (editors draft and WebKit current IDL) and
6540        generates IDL parser by using python script. The generated parser is
6541        modified to generate the same outputs as the previous IDLParser.pm.
6542        The new IDLParser.pm can parse both WebIDL grammar.
6543
6544        No new tests. Tested by comparing with sources generated by
6545        the previous IDLParser.pm.
6546
6547        * bindings/scripts/IDLParser.pm:
6548        (new):
6549        (assertTokenValue):
6550        (assertTokenType):
6551        (assertUnexpectedToken):
6552        (Parse):
6553        A method to start parsing a IDL file. Arguments and return values are
6554        the same as the previous IDLParser.pm's Parse method.
6555        (nextToken):
6556        Implemented to see a next token, because of LL(1).
6557        (getToken):
6558        Returns current token, and update next and current token.
6559        (getTokenInternal):
6560        According to the regular expressions defined in WebIDL spec, extracts
6561        one new token from a text string. The order of the regular expressions
6562        to be tested is important, i.e. "0." should be considered as a float
6563        token, but if firstly checks the integer regular expression, "0." is
6564        considered as "0" and ".".
6565        (parseDefinition):
6566        (parseCallbackOrInterface):
6567        (parseCallbackRestOrInterface):
6568        (parseInterface):
6569        (parsePartial):
6570        (parsePartialDefinition):
6571        (parsePartialInterface):
6572        (parseInterfaceMember):
6573        (parseDictionary):
6574        (parseDictionaryMember):
6575        (parsePartialDictionary):
6576        (parseDefaultValue):
6577        (parseException):
6578        (parseExceptionMembers):
6579        (parseEnum):
6580        (parseEnumValueList):
6581        (parseCallbackRest):
6582        (parseTypedef):
6583        (parseImplementsStatement):
6584        (parseConst):
6585        (parseConstValue):
6586        (parseBooleanLiteral):
6587        (parseFloatLiteral):
6588        (parseAttributeOrOperationOrIterator):
6589        (parseSerializer):
6590        (parseSerializationPattern):
6591        (parseQualifier):
6592        (parseAttributeOrOperationRest):
6593        (parseAttribute):
6594        (parseAttributeRest):
6595        (parseOperationOrIterator):
6596        (parseSpecialOperation):
6597        (parseSpecial):
6598        (parseOperationOrIteratorRest):
6599        (parseIteratorRest):
6600        (parseOptionalIteratorInterfaceOrObject):
6601        (parseOperationRest):
6602        (parseArguments):
6603        (parseArgument):
6604        (parseOptionalOrRequiredArgument):
6605        (parseArgumentName):
6606        (parseExceptionMember):
6607        (parseExceptionField):
6608        (parseExtendedAttributeList):
6609        (parseExtendedAttribute):
6610        (parseExtendedAttributeRest2):
6611        (parseArgumentNameKeyword):
6612        (parseType):
6613        (parseSingleType):
6614        (parseUnionType):
6615        (parseNonAnyType):
6616        (parsePrimitiveType):
6617        (parseUnrestrictedFloatType):
6618        (parseFloatType):
6619        (parseUnsignedIntegerType):
6620        (parseNull):
6621        (parseGet):
6622        (parseInheritsGetter):
6623        (parseSetGetRaises):
6624        (parseGetRaises2):
6625        (parseSetRaises):
6626        (parseSetRaises3):
6627        (parseDefinitionOld):
6628        (parseModule):
6629        (parseInterfaceOld):
6630        (parseInterfaceMemberOld):
6631        (parseDictionaryOld):
6632        (parseDictionaryMemberOld):
6633        (parseExceptionOld):
6634        (parseEnumOld):
6635        (parseAttributeOrOperationOrIteratorOld):
6636        (parseAttributeOrOperationRestOld):
6637        (parseAttributeOld):
6638        (parseIn):
6639        (parseOptionalSemicolon):
6640        (applyMemberList):
6641        (applyExtendedAttributeList):
6642        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
6643        (WebDOMTestObj::longAttr):
6644        (WebDOMTestObj::setLongAttr):
6645        (WebDOMTestObj::voidMethodWithArgs):
6646        (WebDOMTestObj::longMethod):
6647        (WebDOMTestObj::longMethodWithArgs):
6648        (WebDOMTestObj::objMethodWithArgs):
6649        (WebDOMTestObj::convert1):
6650        (WebDOMTestObj::convert2):
6651        (WebDOMTestObj::convert3):
6652        (WebDOMTestObj::convert4):
6653        (WebDOMTestObj::convert5):
6654        * bindings/scripts/test/CPP/WebDOMTestObj.h:
6655        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
6656        (webkit_dom_test_obj_set_property):
6657        (webkit_dom_test_obj_get_property):
6658        (webkit_dom_test_obj_class_init):
6659        (webkit_dom_test_obj_void_method_with_args):
6660        (webkit_dom_test_obj_long_method):
6661        (webkit_dom_test_obj_long_method_with_args):
6662        (webkit_dom_test_obj_obj_method_with_args):
6663        (webkit_dom_test_obj_convert1):
6664        (webkit_dom_test_obj_convert2):
6665        (webkit_dom_test_obj_convert3):
6666        (webkit_dom_test_obj_convert4):
6667        (webkit_dom_test_obj_convert5):
6668        (webkit_dom_test_obj_get_long_attr):
6669        (webkit_dom_test_obj_set_long_attr):
6670        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
6671        * bindings/scripts/test/JS/JSTestObj.cpp:
6672        (WebCore):
6673        (WebCore::jsTestObjLongAttr):
6674        (WebCore::setJSTestObjLongAttr):
6675        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
6676        (WebCore::jsTestObjPrototypeFunctionLongMethod):
6677        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
6678        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
6679        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
6680        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
6681        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
6682        (WebCore::jsTestObjPrototypeFunctionConvert1):
6683        (WebCore::jsTestObjPrototypeFunctionConvert2):
6684        (WebCore::jsTestObjPrototypeFunctionConvert3):
6685        (WebCore::jsTestObjPrototypeFunctionConvert4):
6686        (WebCore::jsTestObjPrototypeFunctionConvert5):
6687        * bindings/scripts/test/JS/JSTestObj.h:
6688        (WebCore):
6689        * bindings/scripts/test/ObjC/DOMTestObj.h:
6690        * bindings/scripts/test/ObjC/DOMTestObj.mm:
6691        (-[DOMTestObj longAttr]):
6692        (-[DOMTestObj setLongAttr:]):
6693        (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
6694        (-[DOMTestObj longMethod]):
6695        (-[DOMTestObj longMethodWithArgs:strArg:objArg:]):
6696        (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
6697        (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
6698        (-[DOMTestObj convert1:]):
6699        (-[DOMTestObj convert2:]):
6700        (-[DOMTestObj convert3:]):
6701        (-[DOMTestObj convert4:]):
6702        (-[DOMTestObj convert5:]):
6703        * bindings/scripts/test/TestObj.idl:
6704        Removed the line which has only "JSC, V8".
6705        Added argument to convert1, ... convert5.
6706        * bindings/scripts/test/V8/V8TestObj.cpp:
6707        (WebCore::TestObjV8Internal::longAttrAttrGetter):
6708        (WebCore::TestObjV8Internal::longAttrAttrSetter):
6709        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
6710        (WebCore::TestObjV8Internal::longMethodCallback):
6711        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
6712        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
6713        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
6714        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
6715        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
6716        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
6717        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
6718        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
6719        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
6720        (WebCore::TestObjV8Internal::convert1Callback):
6721        (WebCore::TestObjV8Internal::convert2Callback):
6722        (WebCore::TestObjV8Internal::convert3Callback):
6723        (WebCore::TestObjV8Internal::convert4Callback):
6724        (WebCore::TestObjV8Internal::convert5Callback):
6725        (WebCore):
6726        (WebCore::ConfigureV8TestObjTemplate):
6727        * Modules/webaudio/AudioBufferSourceNode.idl:
6728        As only restricted extended attribute syntax is supported, modify the
6729        idl from [...] [...] to [..., ...].
6730
67312012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
6732
6733        [Forms] Copy TimeInputType.{cpp,h} to BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
6734        https://bugs.webkit.org/show_bug.cgi?id=97649
6735
6736        Reviewed by Kent Tamura.
6737
6738        This patch copies TimeInput.{cpp,h} to BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
6739        for sharing code related to multiple fields date/time input UI among date/time related
6740        input types, such as "date", "datetime", "month", "time" and "week".
6741
6742        No new tests. This patch doesn't change behavior.
6743
6744        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Copied from Source/WebCore/html/TimeInputType.cpp.
6745        * html/BaseMultipleFieldsDateAndTimeInputType.h: Copied from Source/WebCore/html/TimeInputType.h.
6746
67472012-09-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
6748
6749        [Texmap][EFL] Accelerated compositing support using TextureMapper on EFL port
6750        https://bugs.webkit.org/show_bug.cgi?id=73111
6751
6752        Reviewed by Gyuyoung Kim.
6753
6754        Remove unneeded files
6755
6756        * PlatformEfl.cmake: Do not add the files any more.
6757        * platform/graphics/efl/GraphicsLayerEfl.cpp: Removed.
6758        * platform/graphics/efl/GraphicsLayerEfl.h: Removed.
6759
67602012-09-26  Simon Fraser  <simon.fraser@apple.com>
6761
6762        Rename Page::frameCount() to subframeCount(), and related
6763        https://bugs.webkit.org/show_bug.cgi?id=97729
6764
6765        Reviewed by Alexey Proskuryakov.
6766
6767        Rename member functions and variables on Page that refer to
6768        "frame count" to use "subframe count", since the main frame is
6769        not included in the count.
6770
6771        * history/CachedFrame.cpp:
6772        (WebCore::CachedFrame::CachedFrame):
6773        (WebCore::CachedFrame::open):
6774        * history/CachedPage.cpp:
6775        (WebCore::CachedPage::restore):
6776        * html/HTMLFrameElementBase.cpp:
6777        (WebCore::HTMLFrameElementBase::isURLAllowed):
6778        * html/HTMLPlugInImageElement.cpp:
6779        (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
6780        * loader/FrameLoader.cpp:
6781        (WebCore::FrameLoader::closeAndRemoveChild):
6782        * page/Frame.cpp:
6783        (WebCore::Frame::Frame):
6784        (WebCore::Frame::disconnectOwnerElement):
6785        * page/Page.cpp:
6786        (WebCore::Page::Page):
6787        (WebCore::Page::checkSubframeCountConsistency):
6788        * page/Page.h:
6789        (WebCore::Page::incrementSubframeCount):
6790        (WebCore::Page::decrementSubframeCount):
6791        (WebCore::Page::subframeCount):
6792        (WebCore::Page::checkSubframeCountConsistency):
6793
67942012-09-26  Michael Saboff  <msaboff@apple.com>
6795
6796        Unreviewed speculative build fix for clang.
6797
6798        Added explicit static_cast from int64_t to int32_t.
6799
6800        * platform/text/TextBreakIteratorICU.cpp:
6801        (WebCore::uTextLatin1Clone):
6802        (WebCore::uTextLatin1Extract):
6803        (WebCore::uTextLatin1MapNativeIndexToUTF16):
6804
68052012-09-26  Sheriff Bot  <webkit.review.bot@gmail.com>
6806
6807        Unreviewed, rolling out r129673.
6808        http://trac.webkit.org/changeset/129673
6809        https://bugs.webkit.org/show_bug.cgi?id=97723
6810
6811        Causing window build breakage (Requested by alecf on #webkit).
6812
6813        * platform/chromium/PlatformSupport.h:
6814        (PlatformSupport):
6815        * platform/graphics/skia/SkiaFontWin.cpp:
6816        (WebCore::paintSkiaText):
6817
68182012-09-26  David Barton  <dbarton@mathscribe.com>
6819
6820        [MathML] Implement <mtd> rowspan and columnspan attributes
6821        https://bugs.webkit.org/show_bug.cgi?id=97401
6822
6823        Reviewed by Eric Seidel.
6824
6825        These should behave like rowspan and colspan for HTMLTableCell. As in that case,
6826        RenderTableCell accesses these attributes of its element as needed.
6827
6828        Tested by modifications to LayoutTests/mathml/presentation/tables.xhtml.
6829
6830        * mathml/MathMLElement.cpp:
6831        (WebCore::MathMLElement::colSpan):
6832        (WebCore::MathMLElement::rowSpan):
6833        (WebCore::MathMLElement::parseAttribute):
6834        * mathml/MathMLElement.h:
6835        (MathMLElement):
6836        (WebCore::toMathMLElement):
6837        * mathml/mathattrs.in:
6838        * mathml/mathtags.in:
6839        * rendering/RenderTableCell.cpp:
6840        (WebCore::RenderTableCell::RenderTableCell):
6841        (WebCore::isMathMLElement):
6842        (WebCore::RenderTableCell::colSpan):
6843        (WebCore::RenderTableCell::rowSpan):
6844        (WebCore::RenderTableCell::colSpanOrRowSpanChanged):
6845        * rendering/RenderTableCell.h:
6846        (RenderTableCell):
6847            - Changed m_hasAssociatedTableCellElement to m_hasHTMLTableCellElement.
6848
68492012-09-26  Marcelo Lira  <marcelo.lira@openbossa.org>
6850
6851        [Qt] load event fires on XMLHttpRequestUpload twice with Qt5
6852        https://bugs.webkit.org/show_bug.cgi?id=92669
6853
6854        Reviewed by Kenneth Rohde Christiansen.
6855
6856        When finishing, after the upload have already been done, Qt5's
6857        QNetworkReply emits an uploadProgress signal with total bytes set to
6858        zero. Since 0 of 0 bytes doesn't make any sense as progress, a
6859        conditional was added to QNetworkReplyHandler::uploadProgress to make
6860        do nothing with such values.
6861
6862        Unskip XMLHttpRequestUpload tests.
6863
6864        * platform/network/qt/QNetworkReplyHandler.cpp:
6865        (WebCore::QNetworkReplyHandler::uploadProgress):
6866
68672012-09-26  Bear Travis  <betravis@adobe.com>
6868
6869        [CSS Exclusions] Rename WrapShapeInfo to ExclusionShapeInfo
6870        https://bugs.webkit.org/show_bug.cgi?id=96157
6871
6872        Reviewed by Dirk Schulze.
6873
6874        Rename WrapShapeInfo to the more specific ExclusionShapeInsideInfo, which is the only
6875        information the class is currently tracking. This patch updates build files, class
6876        instances and variable names. When shape-outside is added, there may be an additional
6877        ExclusionShapeOutsideInfo class that shares a common parent class with 
6878        ExclusionShapeInsideInfo. This patch only changes names, there is no new functionality.
6879
6880        Covered by existing tests
6881
6882        * CMakeLists.txt: Rename files from WrapShapeInfo to ExclusionShapeInsideInfo.
6883        * GNUmakefile.list.am: Ditto.
6884        * Target.pri: Ditto.
6885        * WebCore.gypi: Ditto.
6886        * WebCore.vcproj/WebCore.vcproj: Ditto.
6887        * WebCore.xcodeproj/project.pbxproj: Ditto.
6888        * rendering/ExclusionShapeInsideInfo.cpp: Renamed from Source/WebCore/rendering/WrapShapeInfo.cpp.
6889        (WebCore):  Renaming functions and variables to use ExclusionShapeInsideInfo rather than
6890        WrapShapeInfo.
6891        (WebCore::exclusionShapeInsideInfoMap):
6892        (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo):
6893        (WebCore::ExclusionShapeInsideInfo::~ExclusionShapeInsideInfo):
6894        (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
6895        (WebCore::ExclusionShapeInsideInfo::exclusionShapeInsideInfoForRenderBlock):
6896        (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
6897        (WebCore::ExclusionShapeInsideInfo::removeExclusionShapeInsideInfoForRenderBlock):
6898        (WebCore::ExclusionShapeInsideInfo::computeShapeSize):
6899        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
6900        * rendering/ExclusionShapeInsideInfo.h: Renamed from Source/WebCore/rendering/WrapShapeInfo.h.
6901        (WebCore):
6902        (ExclusionShapeInsideInfo):
6903        (WebCore::ExclusionShapeInsideInfo::create):
6904        (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop):
6905        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):
6906        (WebCore::ExclusionShapeInsideInfo::hasSegments):
6907        (WebCore::ExclusionShapeInsideInfo::segments):
6908        (WebCore::ExclusionShapeInsideInfo::dirtyShapeSize):
6909        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):
6910        * rendering/LayoutState.cpp:
6911        (WebCore::LayoutState::LayoutState):
6912        * rendering/LayoutState.h:
6913        (WebCore):
6914        (WebCore::LayoutState::LayoutState):
6915        (WebCore::LayoutState::exclusionShapeInsideInfo):
6916        (LayoutState):
6917        * rendering/RenderBlock.cpp:
6918        (WebCore::RenderBlock::willBeDestroyed):
6919        (WebCore::RenderBlock::styleDidChange):
6920        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
6921        (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize):
6922        (WebCore::RenderBlock::computeExclusionShapeSize):
6923        * rendering/RenderBlock.h:
6924        (WebCore::RenderBlock::exclusionShapeInsideInfo):
6925        (RenderBlock):
6926        * rendering/RenderBlockLineLayout.cpp:
6927        (WebCore::layoutExclusionShapeInsideInfo):
6928        (WebCore::LineWidth::LineWidth):
6929        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
6930        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
6931        * rendering/RenderView.h:
6932        (WebCore::RenderView::pushLayoutState):
6933
69342012-09-26  Christophe Dumez  <christophe.dumez@intel.com>
6935
6936        [EFL] Volume button should not be shown for videos without audio
6937        https://bugs.webkit.org/show_bug.cgi?id=97574
6938
6939        Reviewed by Kenneth Rohde Christiansen.
6940
6941        The volume control is no longer shown for videos with
6942        no audio.
6943
6944        No new tests, already tested by media/video-no-audio.html.
6945
6946        * platform/efl/RenderThemeEfl.cpp:
6947        (WebCore::RenderThemeEfl::hasOwnDisabledStateHandlingFor):
6948        (WebCore):
6949        * platform/efl/RenderThemeEfl.h:
6950        (RenderThemeEfl):
6951
69522012-09-26  Gavin Barraclough  <barraclough@apple.com>
6953
6954        Generalize JSGlobalThis as JSProxy
6955        https://bugs.webkit.org/show_bug.cgi?id=97716
6956
6957        Reviewed by Oliver Hunt.
6958
6959        This patch moves window shell functionality up to JSC::JSProxy.
6960
6961        * ForwardingHeaders/runtime/JSGlobalThis.h: Removed.
6962        * ForwardingHeaders/runtime/JSProxy.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSGlobalThis.h.
6963        * bindings/js/JSDOMGlobalObject.cpp:
6964        (WebCore::JSDOMGlobalObject::finishCreation):
6965            - JSGlobalThis -> JSObject
6966        * bindings/js/JSDOMGlobalObject.h:
6967        (JSDOMGlobalObject):
6968            - JSGlobalThis -> JSObject
6969        * bindings/js/JSDOMWindowBase.cpp:
6970        (WebCore):
6971            - Hoist toThisObject up into JSC.
6972        * bindings/js/JSDOMWindowBase.h:
6973        (JSDOMWindowBase):
6974            - Hoist toThisObject up into JSC.
6975        * bindings/js/JSDOMWindowShell.cpp:
6976        (WebCore):
6977            - JSGlobalThis -> JSProxy
6978            - moved JSObject callbacks to JSProxy
6979        * bindings/js/JSDOMWindowShell.h:
6980        (JSDOMWindowShell):
6981            - JSGlobalThis -> JSProxy
6982            - moved JSObject callbacks to JSProxy
6983        (WebCore::JSDOMWindowShell::window):
6984            - unwrappedObject() -> target()
6985        (WebCore::JSDOMWindowShell::setWindow):
6986            - setUnwrappedObject() -> setTarget()
6987        (WebCore::JSDOMWindowShell::createStructure):
6988            - GlobalThisType -> ProxyType
6989
69902012-09-26  Andreas Kling  <kling@webkit.org>
6991
6992        4.95MB below RenderBlock::insertIntoTrackedRendererMaps() on Membuster3.
6993        <http://webkit.org/b/97687>
6994
6995        Reviewed by Anders Carlsson.
6996
6997        Give the TrackedRendererListHashSet typedef an inline capacity of 16 (the default is 256.)
6998        Browsing around the web, I saw almost no cases with more than 20 entries in these lists,
6999        and this simple change saves us ~4.68MB on the Membuster3 benchmark.
7000
7001        * rendering/RenderBlock.h:
7002
70032012-09-26  Chris Rogers  <crogers@google.com>
7004
7005        DelayNode must take sample-accurate delay times into account
7006        https://bugs.webkit.org/show_bug.cgi?id=97609
7007
7008        Reviewed by Kenneth Russell.
7009
7010        Currently DelayNode simply uses a coarse-grained k-rate smoothing of .delayTime
7011        It should also be capable of supporting audio-rate control of .delayTime
7012
7013        * Modules/webaudio/DelayDSPKernel.cpp:
7014        (WebCore::DelayDSPKernel::DelayDSPKernel):
7015        (WebCore::DelayDSPKernel::process):
7016        * Modules/webaudio/DelayDSPKernel.h:
7017        (DelayDSPKernel):
7018
70192012-09-26  Mark Pilgrim  <pilgrim@chromium.org>
7020
7021        [Chromium][Win] Remove ensureFontLoaded from PlatformSupport
7022        https://bugs.webkit.org/show_bug.cgi?id=97696
7023
7024        Reviewed by Adam Barth.
7025
7026        Part of a refactoring series. See tracking bug 82948.
7027
7028        * platform/chromium/PlatformSupport.h:
7029        (PlatformSupport):
7030        * platform/graphics/skia/SkiaFontWin.cpp:
7031        (WebCore::paintSkiaText):
7032
70332012-09-26  Sheriff Bot  <webkit.review.bot@gmail.com>
7034
7035        Unreviewed, rolling out r129654.
7036        http://trac.webkit.org/changeset/129654
7037        https://bugs.webkit.org/show_bug.cgi?id=97702
7038
7039        breaks chromium windows build (Requested by schenney on
7040        #webkit).
7041
7042        * CMakeLists.txt:
7043        * GNUmakefile.list.am:
7044        * Modules/mediastream/RTCPeerConnection.cpp:
7045        * Modules/mediastream/RTCPeerConnection.h:
7046        (WebCore):
7047        (RTCPeerConnection):
7048        * Modules/mediastream/RTCPeerConnection.idl:
7049        * Modules/mediastream/RTCStatsCallback.h: Removed.
7050        * Modules/mediastream/RTCStatsCallback.idl: Removed.
7051        * Modules/mediastream/RTCStatsElement.cpp: Removed.
7052        * Modules/mediastream/RTCStatsElement.h: Removed.
7053        * Modules/mediastream/RTCStatsElement.idl: Removed.
7054        * Modules/mediastream/RTCStatsReport.cpp: Removed.
7055        * Modules/mediastream/RTCStatsReport.h: Removed.
7056        * Modules/mediastream/RTCStatsReport.idl: Removed.
7057        * Modules/mediastream/RTCStatsRequestImpl.cpp: Removed.
7058        * Modules/mediastream/RTCStatsRequestImpl.h: Removed.
7059        * Modules/mediastream/RTCStatsResponse.cpp: Removed.
7060        * Modules/mediastream/RTCStatsResponse.h: Removed.
7061        * Modules/mediastream/RTCStatsResponse.idl: Removed.
7062        * WebCore.gypi:
7063        * platform/chromium/support/WebRTCStatsRequest.cpp: Removed.
7064        * platform/mediastream/RTCPeerConnectionHandler.cpp:
7065        (RTCPeerConnectionHandlerDummy):
7066        * platform/mediastream/RTCPeerConnectionHandler.h:
7067        (WebCore):
7068        (RTCPeerConnectionHandler):
7069        * platform/mediastream/RTCStatsRequest.h: Removed.
7070        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7071        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7072        (RTCPeerConnectionHandlerChromium):
7073
70742012-09-26  Philip Rogers  <pdr@google.com>
7075
7076        Refactor SMILTimeContainer to maintain animation information instead of recalculating it every frame
7077        https://bugs.webkit.org/show_bug.cgi?id=96697
7078
7079        Reviewed by Eric Seidel.
7080
7081        SVGTimeContainer can be improved by maintaining extra information about
7082        animations during schedule/unschedule instead of re-calculating it
7083        every frame.
7084
7085        After this patch, SMILTimeContainer maintains a GroupedAnimationsMap instead of
7086        just a Vector. This map maps a list of animations to the specific ElementAttributePair
7087        that will be animated.
7088
7089        On schedule/unschedule we modify this map instead of creating it in updateAnimations.
7090        As a result, we need to be careful about always notifying (or, re-scheduling) the
7091        time container when either an animation's target changes or an animation's attributeName
7092        changes. This notification is managed by tracking changes with targetElementWillChange
7093        and setAttributeName.
7094
7095        After this patch, updateAnimations only iterates over m_scheduledAnimations.
7096        Furthermore, the sorting of animations by priority is now done over each Vector of
7097        SVGSMILElements affecting a {SVGElement*, QualifiedName} pair instead of over all the
7098        SVGSMILElements at once.
7099
7100        Lastly, a guard (m_preventScheduledAnimationsChanges) has been added
7101        to prove that we do not modify the scheduled animations map out
7102        from under ourselves.
7103
7104        No new tests as this is just a refactoring.
7105
7106        * svg/SVGAnimateElement.cpp:
7107        (WebCore::SVGAnimateElement::hasValidAttributeType):
7108
7109        * svg/SVGAnimateMotionElement.cpp:
7110        (WebCore::SVGAnimateMotionElement::hasValidAttributeName):
7111
7112            Per the spec, AnimateMotion is not affected by attributeName. Instead
7113            of having a special case for this in SMILTimeContainer::updateAnimations
7114            we simply implement this method.
7115
7116        (WebCore):
7117        * svg/SVGAnimateMotionElement.h:
7118        (SVGAnimateMotionElement):
7119        * svg/SVGAnimationElement.cpp:
7120        (WebCore::SVGAnimationElement::updateAnimation):
7121        * svg/animation/SMILTimeContainer.cpp:
7122        (WebCore):
7123        (WebCore::SMILTimeContainer::SMILTimeContainer):
7124        (WebCore::SMILTimeContainer::~SMILTimeContainer):
7125
7126            This method now cleans up the map since we have dynamically allocated
7127            Vectors in it.
7128
7129        (WebCore::SMILTimeContainer::schedule):
7130
7131            Here we are just adding an entry to the map. There is some special handling
7132            for creating the Vector of one does not exist.
7133
7134        (WebCore::SMILTimeContainer::unschedule):
7135        (WebCore::SMILTimeContainer::notifyIntervalsChanged):
7136        (WebCore::SMILTimeContainer::setElapsed):
7137        (WebCore::SMILTimeContainer::startTimer):
7138        (WebCore::SMILTimeContainer::updateAnimations):
7139        * svg/animation/SMILTimeContainer.h:
7140        (WebCore::SMILTimeContainer::create):
7141        (SMILTimeContainer):
7142        * svg/animation/SVGSMILElement.cpp:
7143        (WebCore::SVGSMILElement::~SVGSMILElement):
7144        (WebCore::SVGSMILElement::insertedInto):
7145        (WebCore::SVGSMILElement::removedFrom):
7146        (WebCore):
7147        (WebCore::SVGSMILElement::hasValidAttributeName):
7148        (WebCore::SVGSMILElement::svgAttributeChanged):
7149        (WebCore::SVGSMILElement::setAttributeName):
7150        (WebCore::SVGSMILElement::targetElementWillChange):
7151        (WebCore::SVGSMILElement::resetTargetElement):
7152        (WebCore::SVGSMILElement::resolveFirstInterval):
7153        (WebCore::SVGSMILElement::beginListChanged):
7154        (WebCore::SVGSMILElement::endListChanged):
7155        (WebCore::SVGSMILElement::progress):
7156        * svg/animation/SVGSMILElement.h:
7157        (SVGSMILElement):
7158
71592012-09-26  Michael Saboff  <msaboff@apple.com>
7160
7161        Update SVGFontData for 8 bit TextRun changes
7162        https://bugs.webkit.org/show_bug.cgi?id=97379
7163
7164        Reviewed by Geoffrey Garen.
7165
7166        Educated applySVGGlyphSelection to be 8 / 16 bit TextRun aware.
7167
7168        No change in funcitonality, therefore no new tests.
7169
7170        * svg/SVGFontData.cpp:
7171        (WebCore::SVGFontData::applySVGGlyphSelection):
7172
71732012-09-26  Michael Saboff  <msaboff@apple.com>
7174
7175        Update ComplexTextController for 8 bit TextRun changes
7176        https://bugs.webkit.org/show_bug.cgi?id=97378
7177
7178        Reviewed by Geoffrey Garen.
7179
7180        Since the ComplextTextController code is primarily used for UChar data, just upconvert an 8 bit
7181        TextRun into a new String and hold on to the String with a vector for the life of the controller.
7182
7183        No change in functionality, therefore no new tests.
7184
7185        * platform/graphics/mac/ComplexTextController.cpp:
7186        (WebCore::ComplexTextController::ComplexTextController):
7187        (WebCore::ComplexTextController::collectComplexTextRuns):
7188        * platform/graphics/mac/ComplexTextController.h:
7189        (ComplexTextController):
7190
71912012-09-26  Michael Saboff  <msaboff@apple.com>
7192
7193        Add Latin-1 Line Break Iterator to TextBreakIteratorICU.cpp
7194        https://bugs.webkit.org/show_bug.cgi?id=96935
7195
7196        Reviewed by Geoffrey Garen.
7197
7198        Added a Latin-1 UText implementation for the ICU library to use.  Added a new acquireLineBreakIterator() for
7199        8 bit strings that uses the Latin-1 UText implementation.  This code path is not being called with the current 
7200        ToT code.  Subsequent changes will enable calling the new code.
7201
7202        * platform/text/TextBreakIterator.h:
7203        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
7204        (LazyLineBreakIterator):
7205        (WebCore::LazyLineBreakIterator::string):
7206        (WebCore::LazyLineBreakIterator::get):
7207        (WebCore::LazyLineBreakIterator::reset):
7208        * platform/text/TextBreakIteratorICU.cpp:
7209        (WebCore::uTextLatin1Clone):
7210        (WebCore::uTextLatin1NativeLength):
7211        (WebCore::uTextLatin1Access):
7212        (WebCore::uTextLatin1Extract):
7213        (WebCore::uTextLatin1MapOffsetToNative):
7214        (WebCore::uTextLatin1MapNativeIndexToUTF16):
7215        (WebCore::uTextLatin1Close):
7216        (WebCore::UTextOpenLatin1):
7217        (WebCore::acquireLineBreakIterator):
7218        * rendering/RenderBlockLineLayout.cpp:
7219        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
7220        * rendering/RenderText.cpp:
7221        (WebCore::RenderText::computePreferredLogicalWidths):
7222        * rendering/break_lines.cpp:
7223        (WebCore::nextBreakablePosition):
7224        (WebCore::nextBreakablePositionIgnoringNBSP):
7225
72262012-09-26  Otto Derek Cheung  <otcheung@rim.com>
7227
7228        [BlackBerry] Reverting implementation for 407 error pages
7229        https://bugs.webkit.org/show_bug.cgi?id=97455
7230
7231        Reviewed by Rob Buis.
7232
7233        Last fix to NetworkJob to invoke AuthenticationChallenge by resetting 
7234        BlackBerryPlatformSettings's proxy credentials to "" if authentication
7235        failed.
7236
7237        * platform/network/blackberry/NetworkJob.cpp:
7238        (WebCore::NetworkJob::sendRequestWithCredentials):
7239
72402012-09-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7241
7242        Reorder Cairo WebCore includes
7243        https://bugs.webkit.org/show_bug.cgi?id=97679
7244
7245        Reviewed by Simon Hausmann.
7246
7247        * platform/graphics/cairo/FontCairo.cpp:
7248        * platform/graphics/cairo/GraphicsContextCairo.cpp:
7249        * platform/graphics/cairo/TransformationMatrixCairo.cpp:
7250        * platform/wx/wxcode/cairo/non-kerned-drawing.cpp:
7251
72522012-09-25  Emil A Eklund  <eae@chromium.org>
7253
7254        Change FractionalLayoutUnit denominator to 64 to reduce precision loss when converting to floating point
7255        https://bugs.webkit.org/show_bug.cgi?id=96139
7256
7257        Reviewed by Eric Seidel.
7258
7259        We currently use a denominator of 60 in FractionalLayoutUnit,
7260        this causes a loss of precision when converting to floating
7261        point.
7262        
7263        By changing the denominator to 64 the values can better be
7264        represented as floating point (without loosing any precision for
7265        many values), this in turn allows us to remove the tolerance
7266        hack in the line break logic and avoids problems caused by this
7267        precision for web sites that do their own layout based on
7268        element measurements.
7269
7270        Test: fast/sub-pixel/float-precision.html
7271
7272        * platform/FractionalLayoutUnit.h:
7273        Change denominator to 64.
7274        * rendering/RenderBlockLineLayout.cpp:
7275        (WebCore::LineWidth::fitsOnLine):
7276        Remove epsilon tolerance hack.
7277
72782012-09-26  Csaba Osztrogonác  <ossy@webkit.org>
7279
7280        [Qt] Unreviewed buildfix after r129647.
7281
7282        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: Revert incorrect include reordering.
7283
72842012-09-26  Harald Tveit Alvestrand  <harald@alvestrand.no>
7285        
7286        Implement the GetStats interface on PeerConnection
7287        https://bugs.webkit.org/show_bug.cgi?id=95193
7288
7289        Specification:
7290        http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
7291
7292        Reviewed by Adam Barth.
7293
7294        The implementation consists of a pure virtual platform object
7295        (RTCStatsRequest) that is implemented in WebCore, and stores
7296        its information in a straightforward data hierarchy.
7297        This patch adds the call path and the storage structures.
7298        It does not add filling in data.
7299
7300        Test: fast/mediastream/RTCPeerConnection-stats.html
7301
7302        * CMakeLists.txt:
7303        * Modules/mediastream/RTCPeerConnection.cpp:
7304        (WebCore::RTCPeerConnection::getStats):
7305        (WebCore):
7306        * Modules/mediastream/RTCPeerConnection.h:
7307        (WebCore):
7308        (RTCPeerConnection):
7309        * Modules/mediastream/RTCPeerConnection.idl:
7310        * Modules/mediastream/RTCStatsCallback.h: Added.
7311        (WebCore):
7312        (RTCStatsCallback):
7313        (WebCore::RTCStatsCallback::~RTCStatsCallback):
7314        * Modules/mediastream/RTCStatsCallback.idl: Added.
7315        * Modules/mediastream/RTCStatsElement.cpp: Added.
7316        (WebCore):
7317        (WebCore::RTCStatsElement::create):
7318        (WebCore::RTCStatsElement::RTCStatsElement):
7319        (WebCore::RTCStatsElement::stat):
7320        * Modules/mediastream/RTCStatsElement.h: Added.
7321        (WebCore):
7322        (RTCStatsElement):
7323        * Modules/mediastream/RTCStatsElement.idl: Added.
7324        * Modules/mediastream/RTCStatsReport.cpp: Added.
7325        (WebCore):
7326        (WebCore::RTCStatsReport::create):
7327        (WebCore::RTCStatsReport::RTCStatsReport):
7328        * Modules/mediastream/RTCStatsReport.h: Added.
7329        (WebCore):
7330        (RTCStatsReport):
7331        (WebCore::RTCStatsReport::local):
7332        (WebCore::RTCStatsReport::remote):
7333        * Modules/mediastream/RTCStatsReport.idl: Added.
7334        * Modules/mediastream/RTCStatsRequestImpl.cpp: Added.
7335        (WebCore):
7336        (WebCore::RTCStatsRequestImpl::create):
7337        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
7338        (WebCore::RTCStatsRequestImpl::~RTCStatsRequestImpl):
7339        (WebCore::RTCStatsRequestImpl::requestSucceeded):
7340        (WebCore::RTCStatsRequestImpl::stop):
7341        (WebCore::RTCStatsRequestImpl::clear):
7342        * Modules/mediastream/RTCStatsRequestImpl.h: Added.
7343        (WebCore):
7344        (RTCStatsRequestImpl):
7345        * Modules/mediastream/RTCStatsResponse.cpp: Added.
7346        (WebCore):
7347        (WebCore::RTCStatsResponse::create):
7348        (WebCore::RTCStatsResponse::RTCStatsResponse):
7349        * Modules/mediastream/RTCStatsResponse.h: Added.
7350        (WebCore):
7351        (RTCStatsResponse):
7352        (WebCore::RTCStatsResponse::result):
7353        * Modules/mediastream/RTCStatsResponse.idl: Added.
7354        * WebCore.gypi:
7355        * platform/chromium/support/WebRTCStatsRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
7356        (WebKit):
7357        (WebKit::WebRTCStatsRequest::WebRTCStatsRequest):
7358        (WebKit::WebRTCStatsRequest::assign):
7359        (WebKit::WebRTCStatsRequest::reset):
7360        (WebKit::WebRTCStatsRequest::requestSucceeded):
7361        * platform/mediastream/RTCPeerConnectionHandler.h:
7362        (WebCore):
7363        (RTCPeerConnectionHandler):
7364        * platform/mediastream/RTCStatsRequest.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
7365        (WebCore):
7366        (RTCStatsRequest):
7367        (WebCore::RTCStatsRequest::~RTCStatsRequest):
7368        (WebCore::RTCStatsRequest::RTCStatsRequest):
7369        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7370        (WebCore::RTCPeerConnectionHandlerChromium::getStats):
7371        (WebCore):
7372        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7373        (RTCPeerConnectionHandlerChromium):
7374
73752012-09-26  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
7376
7377        [WK2][WTR] Policy client: dumping from decidePolicyForResponse callback
7378        https://bugs.webkit.org/show_bug.cgi?id=97034
7379
7380        Reviewed by Kenneth Rohde Christiansen.
7381
7382        Exported WebCore::ResourceResponseBase::isAttachment() method for MAC port.
7383
7384        No new tests. No functionality added.
7385
7386        * WebCore.exp.in:
7387
73882012-09-26  Brady Eidson  <beidson@apple.com>
7389
7390        (Threaded scrolling) WebKit not scrolling to the correct location upon going back on macsurfer.com
7391        <rdar://problem/12039913> and https://bugs.webkit.org/show_bug.cgi?id=97617
7392
7393        Reviewed by Anders Carlsson.
7394
7395        In the asynchronous land of threaded scrolling we lose the information about whether or not a scroll
7396        is programmatic.
7397
7398        This caused all scrolls to be treated as user scrolls and to generated scroll events.
7399
7400        We can fix this by passing the programmatic bit to the scrolling thread and re-applying it back in the main thread.
7401
7402        Unable to test threaded scrolling at this time.
7403
7404        Include the "Is programmatic scroll" bit in the scroll state:
7405        * page/scrolling/ScrollingTreeState.cpp:
7406        (WebCore::ScrollingTreeState::ScrollingTreeState):
7407        (WebCore::ScrollingTreeState::setRequestedScrollPosition): Also set whether or not this represents a programmatic scroll.
7408        * page/scrolling/ScrollingTreeState.h:
7409        (ScrollingTreeState):
7410        (WebCore::ScrollingTreeState::requestedScrollPositionRepresentsProgrammaticScroll):
7411
7412        Pass that bit back to the ScrollingCoordinator:
7413        * page/scrolling/ScrollingTree.cpp:
7414        (WebCore::ScrollingTree::ScrollingTree):
7415        (WebCore::ScrollingTree::commitNewTreeState):
7416        (WebCore::ScrollingTree::updateMainFrameScrollPosition):
7417        * page/scrolling/ScrollingTree.h:
7418
7419        * page/scrolling/ScrollingCoordinator.cpp:
7420        (WebCore::ScrollingCoordinator::requestScrollPositionUpdate): Pass the "is programmatic scroll" bit to the scrolling thread.
7421        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition): Reset the "is programmatic scroll" bit on the FrameView.
7422        * page/scrolling/ScrollingCoordinator.h:
7423        (ScrollingCoordinator):
7424
7425        * page/FrameView.h:
7426        (FrameView):
7427        (WebCore::FrameView::inProgrammaticScroll): Expose setter/getters for the programmatic scroll flag.
7428        (WebCore::FrameView::setInProgrammaticScroll):
7429
74302012-09-26  Martin Robinson  <mrobinson@igalia.com>
7431
7432        [GTK] Use XDamage to simplify RedirectedXCompositeWindow
7433        https://bugs.webkit.org/show_bug.cgi?id=97267
7434
7435        Reviewed by Alejandro G. Castro.
7436
7437        Use XDamage to queue redraws of the widget when redirecting accelerated compositing
7438        to an offscreen window. This allows removing a finicky timer-based approach, improves
7439        performance, and allows simplifying things greatly.
7440
7441        No new tests. This is covered by existing tests.
7442
7443        * GNUmakefile.am: Add the XDamage CFLAGS in the appropriate place.
7444        * platform/gtk/RedirectedXCompositeWindow.cpp:
7445        (WebCore::getWindowHashMap): Added.
7446        (WebCore::filterXDamageEvent): Added.
7447        (WebCore::supportsXDamageAndXComposite): Added.
7448        (WebCore::RedirectedXCompositeWindow::create): Fail to create the window if
7449        the XServer doesn't support XDamage and XComposite.
7450        (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Add XDamage support and
7451        remove the m_usable size distinction. Add the window the window HashMap now.
7452        (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow): Remove the window
7453        from the window HashMap.
7454        (WebCore::RedirectedXCompositeWindow::resize): Now just immediately update the size.
7455        (WebCore::RedirectedXCompositeWindow::callDamageNotifyCallback): Added.
7456        * platform/gtk/RedirectedXCompositeWindow.h:
7457        (WebCore::RedirectedXCompositeWindow::setDamageNotifyCallback): Added.
7458
74592012-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
7460
7461        Web Inspector: NMI: replace manual JS external resources counting with MemoryInstrumentation
7462        https://bugs.webkit.org/show_bug.cgi?id=97662
7463
7464        Reviewed by Yury Semikhatsky.
7465
7466        Old schema uses sizeInBytes method on StringImpl. This method works incorrect for substrings.
7467        Also we'd like to know exact pointers to strings and buffers for verification purposes.
7468
7469        * dom/WebCoreMemoryInstrumentation.cpp:
7470        (WebCore):
7471        * dom/WebCoreMemoryInstrumentation.h:
7472        (WebCoreMemoryTypes):
7473        * inspector/InspectorMemoryAgent.cpp:
7474        (MemoryBlockName):
7475        (WebCore):
7476        (WebCore::collectDomTreeInfo):
7477        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
7478
74792012-09-26  Vsevolod Vlasov  <vsevik@chromium.org>
7480
7481        Web Inspector: [REGRESSION] Revision support problems: revert and apply original content  cause exceptions
7482        https://bugs.webkit.org/show_bug.cgi?id=97669
7483
7484        Reviewed by Pavel Feldman.
7485
7486        Added missed callback parameters.
7487
7488        Test: inspector/uisourcecode-revisions.html
7489
7490        * inspector/front-end/UISourceCode.js:
7491        (WebInspector.UISourceCode.prototype.revertToOriginal):
7492        (WebInspector.UISourceCode.prototype.revertAndClearHistory):
7493
74942012-09-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7495
7496        Reorder Qt WebCore includes
7497        https://bugs.webkit.org/show_bug.cgi?id=97678
7498
7499        Reviewed by Noam Rosenthal.
7500
7501        * bridge/qt/qt_instance.cpp:
7502        * bridge/qt/qt_instance.h:
7503        * bridge/qt/qt_pixmapruntime.cpp:
7504        * bridge/qt/qt_runtime.cpp:
7505        * platform/graphics/qt/FontCacheQt.cpp:
7506        * platform/graphics/qt/FontCustomPlatformData.h:
7507        * platform/graphics/qt/ImageDecoderQt.cpp:
7508        * platform/graphics/qt/ImageDecoderQt.h:
7509        * platform/graphics/qt/PathQt.cpp:
7510        * platform/graphics/qt/TransformationMatrixQt.cpp:
7511        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
7512        * platform/network/qt/DnsPrefetchHelper.h:
7513        * platform/network/qt/QNetworkReplyHandler.cpp:
7514        * platform/network/qt/ResourceHandleQt.cpp:
7515        * platform/qt/ClipboardQt.cpp:
7516        * platform/qt/GamepadsQt.cpp:
7517        * platform/qt/PasteboardQt.cpp:
7518        * platform/qt/PlatformScreenQt.cpp:
7519        * platform/qt/RenderThemeQt.cpp:
7520        * platform/text/qt/TextBoundariesQt.cpp:
7521        * plugins/qt/PluginPackageQt.cpp:
7522        * plugins/qt/PluginViewQt.cpp:
7523
75242012-09-26  Christophe Dumez  <christophe.dumez@intel.com>
7525
7526        [EFL] mediaControlsEflFullscreen.css overrides regular media controls styling
7527        https://bugs.webkit.org/show_bug.cgi?id=97671
7528
7529        Reviewed by Kenneth Rohde Christiansen.
7530
7531        Add missing ":-webkit-full-screen" in mediaControlsEflFullscreen.css so
7532        that regular media controls styling is not overridden by full screen
7533        styling when switching to full screen mode. This was causing a lot of
7534        flakiness in our media tests.
7535
7536        No new tests, already covered by existing media tests.
7537
7538        * css/mediaControlsEflFullscreen.css:
7539        (video:-webkit-full-screen::-webkit-media-controls-panel):
7540        (video:-webkit-full-screen:-webkit-full-page-media::-webkit-media-controls-panel):
7541        (video:-webkit-full-screen::-webkit-media-controls-mute-button):
7542        (video:-webkit-full-screen::-webkit-media-controls-play-button):
7543        (video:-webkit-full-screen::-webkit-media-controls-timeline-container):
7544        (video:-webkit-full-screen::-webkit-media-controls-current-time-display):
7545        (video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
7546        (video:-webkit-full-screen::-webkit-media-controls-timeline):
7547        (video:-webkit-full-screen::-webkit-media-controls-volume-slider-container):
7548        (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
7549        (video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
7550        (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
7551        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button):
7552        (video:-webkit-full-screen::-webkit-media-controls-rewind-button):
7553        (video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button):
7554        (video:-webkit-full-screen::-webkit-media-controls-toggle-closed-captions-button):
7555
75562012-09-26  Andrey Kosyakov  <caseq@chromium.org>
7557
7558        Web Inspector: display stack of last layout invalidation instead of first one
7559        https://bugs.webkit.org/show_bug.cgi?id=97677
7560
7561        Reviewed by Vsevolod Vlasov.
7562
7563        - add a call to InspectorInstrumentation::didInvalidateLayout() when upgrading relayout root;
7564        - do not suppress timeline's Invalidate Layout records other than first.
7565
7566        * inspector/InspectorTimelineAgent.cpp:
7567        (WebCore::InspectorTimelineAgent::didInvalidateLayout):
7568        * page/FrameView.cpp:
7569        (WebCore::FrameView::scheduleRelayoutOfSubtree):
7570
75712012-09-25  Antti Koivisto  <antti@apple.com>
7572
7573        Optimize stylesheet insertions
7574        https://bugs.webkit.org/show_bug.cgi?id=97627
7575
7576        Reviewed by Andreas Kling.
7577
7578        We currently do scope analysis for stylesheets that are added to the end of the active stylesheet list to avoid unnecessary style
7579        recalcs and StyleResolver rebuilding. However it is somewhat common to insert <style> elements dynamically to positions other than last.
7580        In this case we currently simply force full style recalc. We should do scope analysis and partial style recalcs also in these cases.
7581        
7582        PerformanceTests/CSS/StyleSheetInsert.html microbenchmark shows ~20x progression from the patch.
7583
7584        * css/StyleResolver.cpp:
7585        (WebCore::StyleResolver::StyleResolver):
7586        (WebCore::StyleResolver::resetAuthorStyle):
7587        
7588            Add a way to reset author RuleSet without deleting the whole StyleResolver.
7589
7590        (WebCore):
7591        * css/StyleResolver.h:
7592        (StyleResolver):
7593        * dom/DocumentStyleSheetCollection.cpp:
7594        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
7595        
7596            Check if there have been insertions to the stylesheet list. If so we need to reset
7597            the StyleResolver (to handle rule position changes) but don't need to force full
7598            style recalc. Do scope analysis for inserted stylesheets as well.
7599
7600        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
7601        * dom/DocumentStyleSheetCollection.h:
7602
76032012-09-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
7604
7605        Gesture tap highlighting entire first line
7606        https://bugs.webkit.org/show_bug.cgi?id=97668
7607
7608        Reviewed by Kenneth Rohde Christiansen.
7609
7610        Keep better track if which part is the first, middle or last, and adjust the X-edges accordingly.
7611
7612        * page/GestureTapHighlighter.cpp:
7613
76142012-09-26  Vsevolod Vlasov  <vsevik@chromium.org>
7615
7616        Web Inspector: DefaultTextEditor throws exception sometimes.
7617        https://bugs.webkit.org/show_bug.cgi?id=97681
7618
7619        Reviewed by Alexander Pavlov.
7620
7621        Added a check that line number does not exceed text model line count.
7622
7623        * inspector/front-end/DefaultTextEditor.js:
7624        (WebInspector.TextEditorMainPanel.prototype._positionToSelection):
7625
76262012-09-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7627
7628        [TextureMapper] Remove unused method
7629        https://bugs.webkit.org/show_bug.cgi?id=97675
7630
7631        Reviewed by Simon Hausmann.
7632
7633        * platform/graphics/texmap/TextureMapperGL.h: Remove uidForImage()
7634
76352012-09-25  Ilya Tikhonovsky  <loislo@chromium.org>
7636
7637        Web Inspector: extract HashSet instrumentation from core NMI code and put it into MemoryInstrumentationHashSet.h
7638        https://bugs.webkit.org/show_bug.cgi?id=97198
7639
7640        Reviewed by Yury Semikhatsky.
7641
7642        Current implementation has overloads for HashSet.
7643        This prevents us from instrumenting complex cases like Vector<HashSet<...> >.
7644
7645        * css/CSSCursorImageValue.cpp:
7646        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
7647        * css/StyleResolver.cpp:
7648        (WebCore::StyleResolver::Features::reportMemoryUsage):
7649        (WebCore::StyleResolver::collectMatchingRulesForList):
7650        * dom/Document.cpp:
7651        (WebCore::Document::reportMemoryUsage):
7652        * dom/DocumentEventQueue.cpp:
7653        (WebCore::DocumentEventQueue::reportMemoryUsage):
7654        * loader/DocumentLoader.cpp:
7655        (WebCore::DocumentLoader::reportMemoryUsage):
7656        * loader/FrameLoader.cpp:
7657        (WebCore::FrameLoader::reportMemoryUsage):
7658        * loader/cache/CachedResource.cpp:
7659        (WebCore::CachedResource::reportMemoryUsage):
7660        * loader/cache/CachedResourceLoader.cpp:
7661        (WebCore::CachedResourceLoader::reportMemoryUsage):
7662
76632012-09-26  Dominik Röttsches  <dominik.rottsches@intel.com>
7664
7665        [soup] Obey setTimeoutInterval in soup backend
7666        https://bugs.webkit.org/show_bug.cgi?id=94796
7667
7668        Reviewed by Gustavo Noronha Silva.
7669
7670        Implementing ResourceHandle's setTimeoutInterval support for the soup backend.
7671        This is preparatory work for bug 74802, timeout support for XHR2. The patch
7672        has been successfully tested in combination with my work-in-progress
7673        for that bug.
7674
7675        No new tests yet, tests will be added with the patch in bug 74802.
7676
7677        * platform/network/ResourceHandleInternal.h:
7678        (WebCore::ResourceHandleInternal::ResourceHandleInternal): Adding a timeout source.
7679        (ResourceHandleInternal):
7680        * platform/network/soup/ResourceHandleSoup.cpp:
7681        (WebCore):
7682        (WebCore::cleanupSoupRequestOperation): Resetting the timer.
7683        (WebCore::sendRequestCallback): Stopping the timer.
7684        (WebCore::startHTTPRequest): Starting a timeout timer before the async request.
7685        (WebCore::ResourceHandle::platformSetDefersLoading): Starting a timeout timer before the async request.
7686        (WebCore::requestTimeoutCallback): Preparing a corresponding resource error and notifying clients of failure.
7687        (WebCore::startNonHTTPRequest): Starting a timeout timer before the async request.
7688
76892012-09-26  Andrey Kosyakov  <caseq@chromium.org>
7690
7691        Web Inspector: paint inspector overlay on a transparency layer
7692        https://bugs.webkit.org/show_bug.cgi?id=97659
7693
7694        Reviewed by Pavel Feldman.
7695
7696        Set composite operation to copy and begin transparency layer before painting the
7697            frame view of overlay page, so that text on transparent background is properly rendered.
7698
7699        * inspector/InspectorOverlay.cpp:
7700        (WebCore::InspectorOverlay::paint):
7701
77022012-09-26  Marcelo Lira  <marcelo.lira@openbossa.org>
7703
7704        [Qt] Make use of ASCIILiteral in PlatformKeyboardEventQt.cpp
7705        https://bugs.webkit.org/show_bug.cgi?id=97612
7706
7707        Reviewed by Jocelyn Turcotte.
7708
7709        String literals returned by keyIdentifierForQtKeyCode and
7710        keyTextForKeyEvent now make use of more efficient ASCIILiteral.
7711
7712        * platform/qt/PlatformKeyboardEventQt.cpp:
7713        (WebCore::keyIdentifierForQtKeyCode):
7714        (WebCore::keyTextForKeyEvent):
7715
77162012-09-26  Yury Semikhatsky  <yurys@chromium.org>
7717
7718        Unreviewed. Roll out http://trac.webkit.org/changeset/129502 since it broke cookie table.
7719        https://bugs.webkit.org/show_bug.cgi?id=97471
7720
7721        * inspector/front-end/CookieParser.js:
7722        (WebInspector.Cookie.prototype.expires):
7723        * inspector/front-end/CookiesTable.js:
7724        (WebInspector.CookiesTable.prototype._createGridNode):
7725
77262012-09-25  Vsevolod Vlasov  <vsevik@chromium.org>
7727
7728        Web Inspector: Remove resource() getter from UISourceCode.
7729        https://bugs.webkit.org/show_bug.cgi?id=97557
7730
7731        Reviewed by Pavel Feldman.
7732
7733        Resource getter removed from UISourceCode. Resource could be fetched from ResourceTreeModel directly.
7734
7735        * inspector/front-end/CSSStyleModel.js:
7736        (WebInspector.CSSStyleModelResourceBinding.prototype.setStyleContent):
7737        * inspector/front-end/CompilerScriptMapping.js:
7738        * inspector/front-end/JavaScriptSource.js:
7739        (WebInspector.JavaScriptSource):
7740        * inspector/front-end/NetworkUISourceCodeProvider.js:
7741        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
7742        * inspector/front-end/ResourceScriptMapping.js:
7743        (WebInspector.ResourceScriptMapping.prototype._addOrReplaceTemporaryUISourceCode):
7744        * inspector/front-end/SASSSourceMapping.js:
7745        (WebInspector.SASSSource):
7746        * inspector/front-end/ScriptSnippetModel.js:
7747        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
7748        (WebInspector.SnippetJavaScriptSource):
7749        * inspector/front-end/ScriptsPanel.js:
7750        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
7751        * inspector/front-end/StyleSource.js:
7752        (WebInspector.StyleSource):
7753        * inspector/front-end/UISourceCode.js:
7754        (WebInspector.UISourceCode):
7755
77562012-09-26  Vsevolod Vlasov  <vsevik@chromium.org>
7757
7758        Web Inspector: Fix closure compilation errors.
7759        https://bugs.webkit.org/show_bug.cgi?id=97666
7760
7761        Reviewed by Alexander Pavlov.
7762
7763        Fixed closure compilation errors.
7764        Changed contentProvider contentURL() method return type to string.
7765        Removed redundant () in CookieTable.
7766
7767        * inspector/front-end/CSSStyleModel.js:
7768        * inspector/front-end/ContentProvider.js:
7769        * inspector/front-end/ContentProviders.js:
7770        (WebInspector.ConcatenatedScriptsContentProvider.prototype.contentURL):
7771        (WebInspector.StaticContentProvider.prototype.contentURL):
7772        * inspector/front-end/CookiesTable.js:
7773        (WebInspector.CookiesTable.prototype._createGridNode):
7774        * inspector/front-end/DOMAgent.js:
7775        (WebInspector.DOMDocument):
7776        * inspector/front-end/FileContentView.js:
7777        * inspector/front-end/NetworkRequest.js:
7778        * inspector/front-end/Resource.js:
7779        * inspector/front-end/Script.js:
7780        * inspector/front-end/ScriptsPanel.js:
7781        * inspector/front-end/UISourceCode.js:
7782
77832012-09-26  Yury Semikhatsky  <yurys@chromium.org>
7784
7785        Web Inspector: compare objects counted by the memory instrumentation with those allocated in the heap
7786        https://bugs.webkit.org/show_bug.cgi?id=97641
7787
7788        Reviewed by Pavel Feldman.
7789
7790        Added code that allows to check if all objects counted by the memory instrumentation
7791        were allocated by the underlying memory allocator. It requires support
7792        from the memory allocator. The code works only if the set of allocated objects
7793        is not empty and should only be used for debugging purposes.
7794
7795        * inspector/InspectorClient.h:
7796        (InspectorClient):
7797        (WebCore::InspectorClient::getAllocatedObjects):
7798        * inspector/InspectorController.cpp:
7799        (WebCore::InspectorController::InspectorController):
7800        * inspector/InspectorMemoryAgent.cpp:
7801        (WebCore::collectDomTreeInfo):
7802        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
7803        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
7804        * inspector/InspectorMemoryAgent.h:
7805        (WebCore):
7806        (WebCore::InspectorMemoryAgent::create):
7807        (InspectorMemoryAgent):
7808        * inspector/MemoryInstrumentationImpl.cpp:
7809        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
7810        (WebCore::MemoryInstrumentationImpl::countObjectSize):
7811        (WebCore):
7812        (WebCore::MemoryInstrumentationImpl::checkCountedObject):
7813        * inspector/MemoryInstrumentationImpl.h:
7814        (MemoryInstrumentationImpl):
7815
78162012-09-26  Keishi Hattori  <keishi@webkit.org>
7817
7818        SuggestionPicker min width is two pixels wider than it should be
7819        https://bugs.webkit.org/show_bug.cgi?id=97645
7820
7821        Reviewed by Kent Tamura.
7822
7823        Suggestion picker's minimum width should match inputWidth.
7824
7825        No new tests. Added later in Bug 97645.
7826
7827        * Resources/pagepopups/suggestionPicker.js:
7828        (SuggestionPicker.prototype._measureMaxContentWidth):
7829        (SuggestionPicker.prototype._fixWindowSize): We shouldn't be adding ListBorder to inputWidth.
7830
78312012-09-26  Andrey Adaikin  <aandrey@chromium.org>
7832
7833        Web Inspector: [TextEditor] fix tab unindent selection restore
7834        https://bugs.webkit.org/show_bug.cgi?id=97462
7835
7836        Reviewed by Vsevolod Vlasov.
7837
7838        Selection would be wrongly restored on tab unindent when the last line does not need to be unindented unlike the others.
7839
7840        * inspector/front-end/DefaultTextEditor.js:
7841        (WebInspector.TextEditorMainPanel.prototype._unindentLines.get var):
7842        (WebInspector.TextEditorMainPanel.prototype._unindentLines):
7843
78442012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
7845
7846        Rename ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS to ENABLE_INPUT_MULTIPLE_FIELDS_UI
7847        https://bugs.webkit.org/show_bug.cgi?id=97640
7848
7849        This patch renames ENABLE_INPUT_TYPE_TIME MULTIPLE_FIELDS feature
7850        flag to ENABLE_INPUT_MULTIPLE_FIELDS_UI for implementing multiple
7851        fields date/time input UI other than input type "time".
7852
7853        No new tests. This patch doesn't change behavior.
7854
7855        * css/html.css:
7856        * css/themeWin.css:
7857        * html/DateTimeFieldsState.cpp:
7858        * html/DateTimeFieldsState.h:
7859        * html/TimeInputType.cpp:
7860        (WebCore):
7861        * html/TimeInputType.h:
7862        (TimeInputType):
7863        * html/shadow/DateTimeEditElement.cpp:
7864        * html/shadow/DateTimeEditElement.h:
7865        * html/shadow/DateTimeFieldElement.cpp:
7866        * html/shadow/DateTimeFieldElement.h:
7867        * html/shadow/DateTimeFieldElements.cpp:
7868        * html/shadow/DateTimeFieldElements.h:
7869        * html/shadow/DateTimeNumericFieldElement.cpp:
7870        * html/shadow/DateTimeNumericFieldElement.h:
7871        * html/shadow/DateTimeSymbolicFieldElement.cpp:
7872        * html/shadow/DateTimeSymbolicFieldElement.h:
7873        * platform/LocalizedStrings.h:
7874        (WebCore):
7875        * platform/text/DateTimeFormat.cpp:
7876        * platform/text/DateTimeFormat.h:
7877        * platform/text/LocaleICU.cpp:
7878        (WebCore::LocaleICU::LocaleICU):
7879        (WebCore::LocaleICU::~LocaleICU):
7880        (WebCore):
7881        * platform/text/LocaleICU.h:
7882        (LocaleICU):
7883        * platform/text/LocaleWin.cpp:
7884        (WebCore):
7885        * platform/text/LocaleWin.h:
7886        (LocaleWin):
7887        * platform/text/LocalizedNumber.h:
7888        (WebCore):
7889        * platform/text/LocalizedNumberICU.cpp:
7890        (WebCore):
7891        * platform/text/LocalizedNumberNone.cpp:
7892        (WebCore):
7893        * platform/text/Localizer.cpp:
7894        (WebCore):
7895        * platform/text/Localizer.h:
7896        (Localizer):
7897        * platform/text/mac/LocaleMac.h:
7898        (LocaleMac):
7899        * platform/text/mac/LocaleMac.mm:
7900        (WebCore):
7901        * platform/text/mac/LocalizedNumberMac.mm:
7902        (WebCore):
7903        * platform/text/win/LocalizedNumberWin.cpp:
7904        (WebCore):
7905
79062012-09-26  Zan Dobersek  <zandobersek@gmail.com>
7907
7908        [GTK] Enable some of the unstable CSS features
7909        https://bugs.webkit.org/show_bug.cgi?id=97572
7910
7911        Reviewed by Martin Robinson.
7912
7913        Enable the CSS sticky position, CSS3 text decoration and <style scoped>
7914        features by default but disable them if unstable features are not meant
7915        to be enabled.
7916
7917        No new tests - the related tests are being unskipped or are having failure
7918        expectations removed.
7919
7920        * GNUmakefile.am:
7921        * GNUmakefile.features.am:
7922
79232012-09-26  Dongwoo Joshua Im  <dw.im@samsung.com>
7924
7925        Fix potential build error on LocalFileSystem::deleteFileSystem
7926        https://bugs.webkit.org/show_bug.cgi?id=97632
7927
7928        Reviewed by Yuta Kitamura.
7929
7930        Non-Chrome build of WebKit with FILE_SYSTEM flag will be broken at LocalFileSystem::deleteFileSystem.
7931        Type of the third parameter is PassOwnPtr<AsyncFileSystemCallbacks> in header file,
7932        but PassRefPtr<AsyncFileSystemCallbacks> in cpp file.
7933
7934        Non-Chrome WebKit build with FILE_SYSTEM should be finished successfully.
7935
7936        * Modules/filesystem/LocalFileSystem.cpp:
7937        (WebCore::LocalFileSystem::deleteFileSystem):
7938
79392012-09-25  Patrick Gansterer  <paroga@webkit.org>
7940
7941        [WIN] Fix ASSERT in BString after r128988.
7942
7943        * platform/win/BString.cpp:
7944        (WebCore::BString::~BString):
7945        (WebCore::BString::adoptBSTR):
7946        (WebCore::BString::clear): Set pointer to 0 after freeing.
7947
79482012-09-25  Yoshifumi Inoue  <yosin@chromium.org>
7949
7950        [Forms] We should disconnect DateTimeEditElement and DateTimeFieldElement on layout()
7951        https://bugs.webkit.org/show_bug.cgi?id=97438
7952
7953        Reviewed by Kent Tamura.
7954
7955        This patch is for code cleanup. It is better to disconnect DateTimeFieldElement
7956        from DateTimeEditElement when DateTimeEditElement doesn't have
7957        pointers to DateTimeFieldElement.
7958
7959        No new tests. This patch doesn't change behavior.
7960
7961        * html/shadow/DateTimeEditElement.cpp:
7962        (WebCore::DateTimeEditElement::resetFields): Changed to call DateTimeFieldElement::removeEventHandler()
7963        for existing fields to disconnect DateTimeEditElement and DateTimeFieldElement.
7964
79652012-09-25  Bear Travis  <betravis@adobe.com>
7966
7967        [CSS Exclusions] shape-inside line segment layout should be based on line position and height
7968        https://bugs.webkit.org/show_bug.cgi?id=95479
7969
7970        Reviewed by Levi Weintraub.
7971
7972        This patch adds line height to line top to calculate line segments using the line's upper
7973        and lower logical edges. The last line in a shape is allowed to overflow the shape,
7974        using line top and shape bottom to calculate the available line segments. Overflow
7975        behavior will develop in greater detail as the specification advances. For more on
7976        overflow, see:
7977        - http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property and
7978        - https://www.w3.org/Bugs/Public/show_bug.cgi?id=16460
7979
7980        As more shapes are added, line positions within a shape are no longer guaranteed to
7981        have segments (eg, the first line in a circular shape inside), and so many instances
7982        of lineState were replaced with hasSegments. Layout code also uses lineOverlapsShapeBounds
7983        rather than lineState, now that lines may partially overlap a shape without being
7984        completely contained by it. Because layout begins at the shape's logical top, however,
7985        we only run into this edge case laying out the last line within a shape-inside.
7986
7987        Test: fast/exclusions/shape-inside/shape-inside-rounded-rectangle.html
7988
7989        * rendering/RenderBlockLineLayout.cpp:
7990        (WebCore::LineWidth::LineWidth): Use WrapShapeInfo::hasSegments rather than
7991        WrapShapeInfo::lineState, as line positions within a shape are no longer
7992        guaranteed to always have line segments. 
7993        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
7994        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Pass lineBottom as well as lineTop
7995        to computeSegmentsForLine.
7996        * rendering/WrapShapeInfo.cpp:
7997        (WebCore::WrapShapeInfo::computeSegmentsForLine): Pass lineBottom as well as lineTop
7998        to ExclusionShape::getInsideIntervals.
7999        * rendering/WrapShapeInfo.h:
8000        (WrapShapeInfo):
8001        (WebCore::WrapShapeInfo::shapeLogicalBottom): Calculate the logical bottom of an
8002        Exclusion Shape.
8003        (WebCore::WrapShapeInfo::hasSegments): Allow hasSegments to be called even when
8004        a line does not overlap a shape.
8005        (WebCore::WrapShapeInfo::lineOverlapsShapeBounds): Test whether a line's top/bottom
8006        overlap a shape's top/bottom. This includes lines that begin before or end after
8007        a shape but still overlap it.
8008
80092012-09-25  Adam Barth  <abarth@webkit.org>
8010
8011        [Chromium] Network requests without a networking context can be started
8012        https://bugs.webkit.org/show_bug.cgi?id=97498
8013
8014        Reviewed by Eric Seidel.
8015
8016        We shouldn't try to start network requests without a networking
8017        context. Other ports have a similar null check.
8018
8019        * platform/network/chromium/ResourceHandle.cpp:
8020        (WebCore::ResourceHandle::start):
8021
80222012-09-25  Justin Schuh  <jschuh@chromium.org>
8023
8024        Mask RenderArena freelist entries.
8025        https://bugs.webkit.org/show_bug.cgi?id=97494
8026
8027        Reviewed by Julien Chaffraix.
8028
8029        This is a mitigation for freelist spraying. See http://download.crowdstrike.com/papers/hes-exploiting-a-coalmine.pdf.
8030
8031        No new tests. This is a hardening measure. Found no measurable performance impact with Dromaeo.
8032
8033        * rendering/RenderArena.cpp:
8034        (MaskPtr):
8035        (WebCore::RenderArena::allocate):
8036        (WebCore::RenderArena::free):
8037
80382012-09-25  Luke Macpherson   <macpherson@chromium.org>
8039
8040        Ensure variables are resolved for specialized CSS primitive value types.
8041        https://bugs.webkit.org/show_bug.cgi?id=95930
8042
8043        Reviewed by Tony Chang.
8044
8045        Sometimes CSSPrimitiveValue contains a collection of other CSSPrimitiveValues (eg. 2, 4 or n).
8046        This patch makes sure any variables contained inside those child values are resolved.
8047
8048        Tests: fast/css/variables/root-background-size.html
8049               fast/css/variables/var-inside-pair.html
8050               fast/css/variables/var-inside-quad.html
8051               fast/css/variables/var-inside-shape.html
8052
8053        * css/CSSBasicShapes.cpp:
8054        (WebCore::buildRectangleString):
8055        (WebCore::CSSBasicShapeRectangle::cssText):
8056        (WebCore):
8057        (WebCore::CSSBasicShapeRectangle::serializeResolvingVariables):
8058        Generates a string representation of this value with variables resolved from the provided HashMap of variables.
8059        (WebCore::CSSBasicShapeRectangle::hasVariableReference):
8060        Returns true if any of the values used to describe the rectange depend on the value of a variable.
8061        (WebCore::buildCircleString):
8062        (WebCore::CSSBasicShapeCircle::cssText):
8063        (WebCore::CSSBasicShapeCircle::serializeResolvingVariables):
8064        (WebCore::CSSBasicShapeCircle::hasVariableReference):
8065        (WebCore::buildEllipseString):
8066        (WebCore::CSSBasicShapeEllipse::cssText):
8067        (WebCore::CSSBasicShapeEllipse::serializeResolvingVariables):
8068        (WebCore::CSSBasicShapeEllipse::hasVariableReference):
8069        (WebCore::CSSBasicShapePolygon::serializeResolvingVariables):
8070        (WebCore::CSSBasicShapePolygon::hasVariableReference):
8071        * css/CSSBasicShapes.h:
8072        (CSSBasicShapeRectangle):
8073        (CSSBasicShapeCircle):
8074        (CSSBasicShapeEllipse):
8075        (CSSBasicShapePolygon):
8076        * css/CSSPrimitiveValue.cpp:
8077        (WebCore::CSSPrimitiveValue::customCssText):
8078        Move the logic for generating the strings for Rects, Quads, Pairs and Shapes into their respective classes.
8079        (WebCore::CSSPrimitiveValue::customSerializeResolvingVariables):
8080        Handle Rects, Quads, Pairs and Shapes when they contain variables, by calling their serializeResolvingVariables method.
8081        (WebCore):
8082        (WebCore::CSSPrimitiveValue::hasVariableReference):
8083        Handle Rects, Quads, Pairs and Shapes by calling their respective hasVariableReference methods.
8084        * css/CSSPrimitiveValue.h:
8085        (CSSPrimitiveValue):
8086        * css/Pair.h:
8087        (WebCore::Pair::pairString):
8088        (Pair):
8089        (WebCore::Pair::cssText):
8090        (WebCore::Pair::serializeResolvingVariables):
8091        (WebCore::Pair::hasVariableReference):
8092        * css/Rect.h:
8093        (RectBase):
8094        (WebCore::RectBase::hasVariableReference):
8095        (WebCore::Rect::rectString):
8096        (Rect):
8097        (WebCore::Rect::cssText):
8098        (WebCore::Rect::serializeResolvingVariables):
8099        (WebCore::Quad::quadString):
8100        (Quad):
8101        (WebCore::Quad::cssText):
8102        (WebCore::Quad::serializeResolvingVariables):
8103        * css/StyleResolver.cpp:
8104        (WebCore::StyleResolver::collectMatchingRulesForList):
8105
81062012-09-25  Filip Pizlo  <fpizlo@apple.com>
8107
8108        JSC bindings appear to sometimes ignore the possibility of arrays being in sparse mode
8109        https://bugs.webkit.org/show_bug.cgi?id=95610
8110
8111        Reviewed by Oliver Hunt.
8112
8113        Fix all of the cases I found where we were using getIndexQuickly(), which was wrong
8114        if we were in sparse mode.
8115
8116        * bindings/js/ArrayValue.cpp:
8117        (WebCore::ArrayValue::get):
8118        * bindings/js/JSBlobCustom.cpp:
8119        (WebCore::JSBlobConstructor::constructJSBlob):
8120        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
8121        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
8122        * bindings/js/JSDOMStringListCustom.cpp:
8123        (WebCore::toDOMStringList):
8124        * bindings/js/JSInspectorFrontendHostCustom.cpp:
8125        (WebCore::populateContextMenuItems):
8126        * bindings/js/JSWebSocketCustom.cpp:
8127        (WebCore::JSWebSocketConstructor::constructJSWebSocket):
8128        * bindings/js/ScriptValue.cpp:
8129        (WebCore::jsToInspectorValue):
8130        * bindings/js/SerializedScriptValue.cpp:
8131        (CloneSerializer):
8132        (WebCore::CloneSerializer::serialize):
8133
81342012-09-25  Tim Horton  <timothy_horton@apple.com>
8135
8136        Load the linearized sRGB profile via NSData instead of CoreFoundation
8137        https://bugs.webkit.org/show_bug.cgi?id=97616
8138
8139        Reviewed by Dan Bernstein.
8140
8141        * platform/graphics/cg/GraphicsContextCG.cpp:
8142        (WebCore::linearRGBColorSpaceRef):
8143        * platform/graphics/mac/GraphicsContextMac.mm:
8144        (WebCore::linearRGBColorSpaceRef):
8145
81462012-09-25  Mike West  <mkwst@chromium.org>
8147
8148        CSP logging: Be more developer-friendly when 'default-src' is violated.
8149        https://bugs.webkit.org/show_bug.cgi?id=97597
8150
8151        Reviewed by Adam Barth.
8152
8153        Developers unfamiliar with the details of Content Security Policy might
8154        be confused when 'default-src' is used as a fallback for a directive
8155        otherwise absent from the policy they've set. This patch adds an
8156        explicit explanation to the permission warning in such a situation.
8157
8158        New warning string is covered by rebaselining existing tests.
8159
8160        * page/ContentSecurityPolicy.cpp:
8161        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
8162        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
8163        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
8164            If the operative directive is 'default-src', output a warning,
8165            using the type information present in the report to specify which
8166            directive is falling back to the default values.
8167
81682012-09-25  Beth Dakin  <bdakin@apple.com>
8169
8170        https://bugs.webkit.org/show_bug.cgi?id=97615
8171        fast/loader/scroll-position-restored-on-back.html failing after 
8172        didFirstLayout/didFirstVisuallyNonEmptyLayout change
8173
8174        Reviewed by Sam Weinig.
8175
8176        http://trac.webkit.org/changeset/129545 made it so we only dispatch 
8177        the layout callbacks when the client has opted into them. This is a 
8178        problem for a bit of work that used to be done, prior to that patch, 
8179        in FrameLoader::didFirstLayout(). Because that function did some work 
8180        with scroll position and the state machine, and that is work that we 
8181        want to do even when the client has not opted into the didFirstLayout 
8182        callback. We are seeing this bug in DRT and WTR since those clients 
8183        do not opt into the callback. And they shouldn't have to to get this 
8184        scroll position and state machine work done. 
8185
8186        * loader/FrameLoader.cpp:
8187        (WebCore::FrameLoader::didLayout):
8188        (WebCore::FrameLoader::didFirstLayout):
8189        * loader/FrameLoader.h:
8190        (FrameLoader):
8191        * page/FrameView.cpp:
8192        (WebCore::FrameView::performPostLayoutTasks):
8193
81942012-09-24  Simon Fraser  <simon.fraser@apple.com>
8195
8196        <rdar://problem/12351906> Have DumpRenderTree and WebKitTestRunner crash logs show which test crashed
8197
8198        Reviewed by Mark Rowe.
8199
8200        Use a new WebKitSytemInterface function to add data to crash logs about which 
8201        test was running when the crash happened.
8202
8203        * WebCore.exp.in: Export wkSetCrashReportApplicationSpecificInformation
8204        * platform/mac/WebCoreSystemInterface.h: Add wkSetCrashReportApplicationSpecificInformation.
8205        * platform/mac/WebCoreSystemInterface.mm: Ditto.
8206
82072012-09-25  Adam Klein  <adamk@chromium.org>
8208
8209        Remove unused DOMAttrModified from EventsNames and Document::ListenerType
8210        https://bugs.webkit.org/show_bug.cgi?id=97591
8211
8212        Reviewed by Ojan Vafai.
8213
8214        WebKit does not, and will never, fire DOMAttrModified events, so
8215        there's no need to create the "DOMAttrModified" event name.
8216
8217        The only use of the name was to set the DOMATTRMODIFIED_LISTENER bit
8218        on Document; with the name gone, the enum value can be removed as well.
8219
8220        * dom/Document.cpp:
8221        (WebCore::Document::addListenerTypeIfNeeded):
8222        * dom/Document.h: Remove DOMATTRMODIFIED_LISTENER, and switch this
8223        enum to use shift-left instead of hex values, so as to be easier to
8224        update in future.
8225        * dom/EventNames.h:
8226        (WebCore):
8227
82282012-09-25  Leo Yang  <leoyang@rim.com>
8229
8230        GraphicsContext3D::compileShader is using incorrect string length in GraphicsContext3DOpenGLCommon.cpp
8231        https://bugs.webkit.org/show_bug.cgi?id=97476
8232
8233        Reviewed by Dean Jackson.
8234
8235        No new tests because it's not testable in webkit test runner.
8236
8237        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
8238        (WebCore::GraphicsContext3D::compileShader):
8239        Use translatedShaderCString.length() instead of translatedShaderSource.length()
8240        for the shader source length because we are using translatedShaderCString.data()
8241        for glShaderSource().
8242
82432012-09-25  Huang Dongsung  <luxtella@company100.net>
8244
8245        Use USE(3D_GRAPHICS) in CSS SHADERS code when ENABLE(WEBGL) is true.
8246        https://bugs.webkit.org/show_bug.cgi?id=97543
8247
8248        Reviewed by Dean Jackson.
8249
8250        This patch cleans remaining ENABLE(WEBGL) guards in CSS SHADERS code after
8251        r122175, which made USE(3D_GRAPHICS) default to true when ENABLE(WEBGL) is true.
8252
8253        No new tests because of no behavior changes.
8254
8255        * rendering/FilterEffectRenderer.cpp:
8256        (WebCore):
8257        (WebCore::FilterEffectRenderer::build):
8258        * rendering/RenderView.cpp:
8259        (WebCore):
8260        * rendering/RenderView.h:
8261        (WebCore):
8262        (RenderView):
8263
82642012-09-25  Beth Dakin  <bdakin@apple.com>
8265
8266        https://bugs.webkit.org/show_bug.cgi?id=95397
8267        Need to merge didFirstVisuallyNonEmptyLayout and 
8268        didNewFirstVisuallyNonEmptyLayout
8269        -and corresponding-
8270        <rdar://problem/10791680>
8271
8272        Reviewed by Sam Weinig.
8273
8274        This patch merges didFirstLayout, didFirstVisuallyNonEmptyLayout, 
8275        and didNewFirstVisuallyNonEmptyLayout. Page keeps track of which 
8276        layout milestones we are interested in with a bit mask, so that 
8277        different ports/clients can opt-into different milestones. This 
8278        will allow us to safely add more layout milestones in the future 
8279        if that seems worthwhile.
8280
8281        Include new file LayoutMilestoneOptions.h
8282        * GNUmakefile.list.am:
8283        * Target.pri:
8284        * WebCore.exp.in:
8285        * WebCore.gypi:
8286        * WebCore.xcodeproj/project.pbxproj:
8287
8288        Remove dispatchDidFirstLayout, 
8289        dispatchDidFirstVisuallyNonEmptyLayout, and 
8290        dispatchDidNewFirstVisuallyNonEmptyLayout. They are now replaced 
8291        by dispatchDidLayout(LayoutMilestoneOptions)
8292        * loader/EmptyClients.h:
8293        (WebCore::EmptyFrameLoaderClient::dispatchDidLayout):
8294        * loader/FrameLoader.cpp:
8295        (WebCore::FrameLoader::didLayout):
8296        * loader/FrameLoader.h:
8297        (FrameLoader):
8298        * loader/FrameLoaderClient.h:
8299        (FrameLoaderClient):
8300        (WebCore::FrameLoaderClient::dispatchDidLayout):
8301        * page/LayoutMilestoneOptions.h: Added.
8302        (WebCore):
8303
8304        Check with Page to find out which layout milestones the client is 
8305        interested in, and then dispatch the notifications when 
8306        appropriate.
8307        * page/FrameView.cpp:
8308        (WebCore::FrameView::performPostLayoutTasks):
8309
8310        Remove setRelevantRepaintedObjectsCounterThreshold(). Instead keep 
8311        track of the layout milestones bit mask.
8312        * page/Page.cpp:
8313        (WebCore::Page::Page):
8314        (WebCore::Page::addLayoutMilestones):
8315        (WebCore):
8316        (WebCore::Page::isCountingRelevantRepaintedObjects):
8317        (WebCore::Page::addRelevantRepaintedObject):
8318        * page/Page.h:
8319        (Page):
8320        (WebCore::Page::layoutMilestones):
8321
83222012-09-25  Andreas Kling  <kling@webkit.org>
8323
8324        StylePropertySet: Use subclasses to manage varying object layouts.
8325        <http://webkit.org/b/97470>
8326
8327        Reviewed by Antti Koivisto.
8328
8329        Add two StylePropertySet subclasses:
8330
8331            - MutableStylePropertySet
8332            - ImmutableStylePropertySet
8333
8334        The StylePropertySet::m_isMutable bit determines which subclass to cast to when accessing
8335        the property storage. Added mutablePropertyVector() and immutablePropertyArray() helpers
8336        to StylePropertySet (with appropriate assertions.)
8337
8338        This patch removes one heap allocation (and one step of indirection) in the mutable case,
8339        since the Vector<CSSProperty> is no longer heap-allocated, but part of MutableStylePropertySet.
8340
8341        Override RefCounted::deref() in StylePropertySet to make sure that the correct subclass
8342        destructor gets called.
8343
8344        * WebCore.exp.in:
8345        * css/StylePropertySet.cpp:
8346        (WebCore::immutableStylePropertySetSize):
8347        (WebCore::StylePropertySet::createImmutable):
8348        (WebCore::StylePropertySet::immutableCopyIfNeeded):
8349        (WebCore::MutableStylePropertySet::MutableStylePropertySet):
8350        (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
8351        (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
8352        (WebCore::StylePropertySet::~StylePropertySet):
8353        (WebCore::StylePropertySet::removeProperty):
8354        (WebCore::StylePropertySet::parseDeclaration):
8355        (WebCore::StylePropertySet::addParsedProperties):
8356        (WebCore::StylePropertySet::removePropertiesInSet):
8357        (WebCore::StylePropertySet::removeEquivalentProperties):
8358        (WebCore::StylePropertySet::copy):
8359        (WebCore::StylePropertySet::reportMemoryUsage):
8360        (WebCore::StylePropertySet::append):
8361        (WebCore::StylePropertySet::create):
8362        * css/StylePropertySet.h:
8363        (StylePropertySet):
8364        (WebCore::StylePropertySet::StylePropertySet):
8365        (ImmutableStylePropertySet):
8366        (MutableStylePropertySet):
8367        (WebCore::MutableStylePropertySet::MutableStylePropertySet):
8368        (WebCore::StylePropertySet::mutablePropertyVector):
8369        (WebCore::StylePropertySet::immutablePropertyArray):
8370        (WebCore::StylePropertySet::propertyAt):
8371        (WebCore::StylePropertySet::propertyCount):
8372        (WebCore::StylePropertySet::deref):
8373
83742012-09-25  Joshua Bell  <jsbell@chromium.org>
8375
8376        IndexedDB: One transaction coordinator per database
8377        https://bugs.webkit.org/show_bug.cgi?id=97501
8378
8379        Reviewed by Tony Chang.
8380
8381        Per the IDB spec, transactions only need to be sequenced within databases.
8382        The implementation was using one coordinator per factory backend (effectively
8383        a singleton), which would prevent parallel execution of transactions in different
8384        databases. Moved ownership of the transaction coordinator to the database backend.
8385
8386        Tests: storage/indexeddb/transaction-coordination-across-databases.html
8387               storage/indexeddb/transaction-readwrite-exclusive.html
8388
8389        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
8390        (WebCore::IDBDatabaseBackendImpl::create):
8391        (WebCore):
8392        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
8393        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
8394        (IDBDatabaseBackendImpl):
8395        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
8396        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
8397        (WebCore::IDBFactoryBackendImpl::open):
8398        * Modules/indexeddb/IDBFactoryBackendImpl.h:
8399        (WebCore):
8400        (IDBFactoryBackendImpl):
8401        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
8402        (WebCore::IDBTransactionCoordinator::create):
8403        (WebCore::IDBTransactionCoordinator::IDBTransactionCoordinator):
8404        * Modules/indexeddb/IDBTransactionCoordinator.h:
8405        (IDBTransactionCoordinator):
8406
84072012-09-25  Sheriff Bot  <webkit.review.bot@gmail.com>
8408
8409        Unreviewed, rolling out r129517.
8410        http://trac.webkit.org/changeset/129517
8411        https://bugs.webkit.org/show_bug.cgi?id=97582
8412
8413        Link errors in chromium (Requested by alecf on #webkit).
8414
8415        * Modules/mediastream/MediaConstraintsImpl.cpp:
8416        * Modules/mediastream/MediaConstraintsImpl.h:
8417        * Modules/mediastream/NavigatorMediaStream.cpp:
8418        (WebCore::NavigatorMediaStream::webkitGetUserMedia):
8419        * Modules/mediastream/UserMediaRequest.cpp:
8420        (WebCore::UserMediaRequest::create):
8421        (WebCore::UserMediaRequest::UserMediaRequest):
8422        * Modules/mediastream/UserMediaRequest.h:
8423        (WebCore):
8424        (UserMediaRequest):
8425        (WebCore::UserMediaRequest::audio):
8426        (WebCore::UserMediaRequest::video):
8427        * platform/chromium/support/WebMediaConstraints.cpp:
8428
84292012-09-25  Bear Travis  <betravis@adobe.com>
8430
8431        [CSS Exclusions] Enable css exclusions for multiple blocks per element
8432        https://bugs.webkit.org/show_bug.cgi?id=89993
8433
8434        Reviewed by Julien Chaffraix.
8435
8436        Similar to multi-column layout, a parent RenderBlock's WrapShapeInfo may affect
8437        the inline content of its children. This patch follows the example of ColumnInfo
8438        and adds WrapShapeInfo to LayoutState, which tracks the current shape-inside that
8439        inline content should respect.
8440
8441        Tests: fast/exclusions/shape-inside/shape-inside-multiple-blocks.html
8442               fast/exclusions/shape-inside/shape-inside-multiple-blocks-vertical.html
8443
8444        * rendering/LayoutState.cpp:
8445        (WebCore::LayoutState::LayoutState): Initialize m_wrapShapeInfo.
8446        * rendering/LayoutState.h:
8447        (WebCore):
8448        (WebCore::LayoutState::LayoutState): Initialize m_wrapShapeInfo.
8449        (LayoutState):
8450        (WebCore::LayoutState::wrapShapeInfo): Getter for m_wrapShapeInfo.
8451        * rendering/RenderBlockLineLayout.cpp:
8452        (WebCore::LineWidth::LineWidth): Use LayoutState to lookup WrapShapeInfo.
8453        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
8454        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Ditto.
8455        * rendering/RenderView.h:
8456        (WebCore::RenderView::pushLayoutState): Push LayoutState if a WrapShapeInfo
8457        is present.
8458
84592012-09-24  Emil A Eklund  <eae@chromium.org>
8460
8461        [chromium] REGRESSION: Incorrect preferred width calculation for table cells
8462        https://bugs.webkit.org/show_bug.cgi?id=97497
8463
8464        Reviewed by Levi Weintraub.
8465
8466        In fixing bug 93911 r125694 caused a problem with the preferred
8467        width calculations for table cells with a fractional padding
8468        where the logic to ensure that the cell is wide enough for the
8469        content returns different results for cells with a fixed width
8470        and cells with an automatic width.
8471
8472        Test: fast/sub-pixel/table-cells-have-stable-width.html
8473
8474        * rendering/AutoTableLayout.cpp:
8475        (WebCore::AutoTableLayout::recalcColumn):
8476        * rendering/RenderBlock.cpp:
8477        (WebCore::RenderBlock::computePreferredLogicalWidths):
8478        Move the logic that ensures that a cell is wide enough from AutoTableLayout::recalcColumn to RenderBlock::computePreferredLogicalWidths to. This way it also applies to FixedTableLayout which had the same problem.
8479
84802012-09-25  Dominic Mazzoni  <dmazzoni@google.com>
8481
8482        AX: Chromium doesn't pass accessibility text range and line number tests
8483        https://bugs.webkit.org/show_bug.cgi?id=97246
8484
8485        Reviewed by Chris Fleizach.
8486
8487        Adds a method to get all line breaks at once, so retrieving all
8488        line breaks isn't an O(n^2) operation for Chromium.
8489
8490        Enables four existing tests to pass on Chromium:
8491        Tests: accessibility/textarea-insertion-point-line-number.html
8492               accessibility/textarea-line-for-index.html
8493               accessibility/textarea-selected-text-range.html
8494               accessibility/textbox-role-reports-selection.html
8495
8496        * accessibility/AccessibilityObject.h:
8497        (WebCore::AccessibilityObject::lineBreaks):
8498        * accessibility/AccessibilityRenderObject.cpp:
8499        (WebCore::AccessibilityRenderObject::lineBreaks):
8500        (WebCore):
8501        * accessibility/AccessibilityRenderObject.h:
8502        (AccessibilityRenderObject):
8503
85042012-09-25  Mike West  <mkwst@google.com>
8505
8506        CSP paths: Ignore invalid path components, rather than dropping the source completely.
8507        https://bugs.webkit.org/show_bug.cgi?id=97538
8508
8509        Reviewed by Adam Barth.
8510
8511        Content Security Policy directives that accept source lists currently
8512        handle soure URI paths containing '?' or '#' in a draconian fashion by
8513        dropping the entire source expression. We should be slightly friendlier,
8514        and ignore simply the portion of the source expression that we know to
8515        be invalid, just as we previously ignored everything after and including
8516        a '/' in source expressions before we supported paths.
8517
8518        The new behavior is covered by existing tests, and two test-cases added
8519        to http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02.html.
8520
8521        * page/ContentSecurityPolicy.cpp:
8522        (WebCore::CSPSourceList::parsePath):
8523            Report an error to the console, rather than ignoring a path that
8524            contains an invalid fragment or query.
8525        (WebCore::ContentSecurityPolicy::reportInvalidPathCharacter):
8526        (WebCore):
8527        * page/ContentSecurityPolicy.h:
8528            Add a new warning type to cover this case.
8529
85302012-09-25  commit-queue@webkit.org  <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
8531
8532        [BlackBerry] Reverting implementation for 407 error pages
8533        https://bugs.webkit.org/show_bug.cgi?id=97455
8534
8535        Reviewed by Rob Buis.
8536
8537        Adding additional fixes to NetworkJob since BlackBerry::Platform::Client
8538        is no longer avaliable. Using BlackBerryPlatformSettings to get proxy
8539        information instead.
8540
8541        BlackBerryPlatformClient was deleted in PR 170160.
8542
8543        * platform/network/blackberry/NetworkJob.cpp:
8544        (WebCore::NetworkJob::sendRequestWithCredentials):
8545
85462012-09-25  Hans Wennborg  <hans@chromium.org>
8547
8548        GIFImageReader: fix tautological compare
8549        https://bugs.webkit.org/show_bug.cgi?id=97563
8550
8551        Reviewed by Adam Barth.
8552
8553        The frame_reader->disposal_method field is of type
8554        ImageFrame::FrameDisposalMethod, which has a range of 0--3. Therefore,
8555        recent versions of Clang concludes that the expression
8556        frame_reader->disposal_method == 4
8557        will never be true, and warns about it.
8558
8559        This patch fixes the code by doing the comparison before storing the
8560        value in the enum.
8561
8562        No new functionality, no new tests.
8563
8564        * platform/image-decoders/gif/GIFImageReader.cpp:
8565        (GIFImageReader::read):
8566
85672012-09-25  Tommy Widenflycht  <tommyw@google.com>
8568
8569        MediaStream API: Update getUserMedia to match the latest specification
8570        https://bugs.webkit.org/show_bug.cgi?id=97540
8571
8572        Reviewed by Adam Barth.
8573
8574        http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia
8575        Navigator.getUserMedia is changed so that the audio and video members can either
8576        be a bool or a constraints object.
8577
8578        Existing tests expanded to cover the new change.
8579
8580        * Modules/mediastream/MediaConstraintsImpl.cpp:
8581        (WebCore::MediaConstraintsImpl::create):
8582        (WebCore):
8583        * Modules/mediastream/MediaConstraintsImpl.h:
8584        (MediaConstraintsImpl):
8585        * Modules/mediastream/NavigatorMediaStream.cpp:
8586        (WebCore::NavigatorMediaStream::webkitGetUserMedia):
8587        * Modules/mediastream/UserMediaRequest.cpp:
8588        (WebCore::parseOptions):
8589        (WebCore):
8590        (WebCore::UserMediaRequest::create):
8591        (WebCore::UserMediaRequest::UserMediaRequest):
8592        (WebCore::UserMediaRequest::audio):
8593        (WebCore::UserMediaRequest::video):
8594        (WebCore::UserMediaRequest::audioConstraints):
8595        (WebCore::UserMediaRequest::videoConstraints):
8596        * Modules/mediastream/UserMediaRequest.h:
8597        (WebCore):
8598        (UserMediaRequest):
8599        * platform/chromium/support/WebMediaConstraints.cpp:
8600        (WebKit::WebMediaConstraints::WebMediaConstraints):
8601        (WebKit):
8602
86032012-09-25  mire  <mbudaes@adobe.com>
8604
8605        Web Inspector: yellow on-hover pop-up won't go if another pane asynchronously opens
8606        https://bugs.webkit.org/show_bug.cgi?id=97120
8607
8608        Reviewed by Alexander Pavlov.
8609
8610        Add mouseout event listener to popover element so that the pop-up will go when moving to another panel.
8611
8612        No new tests.
8613
8614        * inspector/front-end/Popover.js:
8615        (WebInspector.Popover.prototype.show):
8616        (WebInspector.PopoverHelper.prototype._mouseOut):
8617
86182012-09-25  Otto Derek Cheung  <otcheung@rim.com>
8619
8620        [BlackBerry] Reverting implementation for 407 error pages
8621        https://bugs.webkit.org/show_bug.cgi?id=97455
8622
8623        Reviewed by Rob Buis.
8624
8625        Revert "[BlackBerry] Show custom error page when 407 is received"
8626        This reverts commit f6fe97ec3f1841a151e4ebdde21f710a6185f9d6.
8627
8628        * platform/network/blackberry/NetworkJob.cpp:
8629        (WebCore::NetworkJob::handleNotifyStatusReceived):
8630        (WebCore::NetworkJob::notifyAuthReceived):
8631        (WebCore::NetworkJob::sendRequestWithCredentials):
8632
86332012-09-25  Otto Derek Cheung  <otcheung@rim.com>
8634
8635        Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
8636        https://bugs.webkit.org/show_bug.cgi?id=97471
8637
8638        Reviewed by Yury Semikhatsky.
8639
8640        The original implementation is trying to create a new Date object
8641        using another Date object, which is invalid. Also, Date.toGMTString is
8642        deprecated.
8643
8644        The fix replaces toGMTString with toUTCString and fixes cookie.expire
8645        so it won't crash when an empty requestDate is passed in.
8646
8647        Following RFC 6265, Max-age attributes now take precedence over expiresi
8648        attribute in CookieParser.
8649
8650        Manual testing on inspector to make sure the CookiesTable is properly generated.
8651
8652        * inspector/front-end/CookieParser.js:
8653        (WebInspector.Cookie.prototype.expires):
8654        * inspector/front-end/CookiesTable.js:
8655        (WebInspector.CookiesTable.prototype._createGridNode):
8656
86572012-09-25  Keishi Hattori  <keishi@webkit.org>
8658
8659        [Chromium] Enable datalist UI for input type=date
8660        https://bugs.webkit.org/show_bug.cgi?id=97541
8661
8662        Reviewed by Kent Tamura.
8663
8664        This enables datalist UI for input type=date on Chromium.
8665
8666        No new tests. Adding tests in Bug 97551.
8667
8668        * rendering/RenderThemeChromiumCommon.cpp:
8669        (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
8670
86712012-09-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
8672
8673        [WK2] Supported media MIME types are not included to the list of shown MIME types.
8674        https://bugs.webkit.org/show_bug.cgi?id=97552
8675
8676        Reviewed by Kenneth Rohde Christiansen.
8677
8678        Exported WebCore::MIMETypeRegistry::isSupportedMediaMIMEType() for MAC.
8679
8680        No new tests. No new functionality.
8681
8682        * WebCore.exp.in:
8683
86842012-09-25  Vsevolod Vlasov  <vsevik@chromium.org>
8685
8686        Web Inspector: ResourceScriptMapping should no steal scripts from other mappings.
8687        https://bugs.webkit.org/show_bug.cgi?id=97453
8688
8689        Reviewed by Pavel Feldman.
8690
8691        Exposed sourceMapping getter on Script so that resource mapping could check it.
8692
8693        * inspector/front-end/ResourceScriptMapping.js:
8694        (WebInspector.ResourceScriptMapping):
8695        (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
8696        (WebInspector.ResourceScriptMapping.prototype._reset):
8697
86982012-09-25  Keishi Hattori  <keishi@webkit.org>
8699
8700        REGRESSION(r129448): multiple fields time input UI doesn't use system time format settings on Chromium-Mac
8701        https://bugs.webkit.org/show_bug.cgi?id=97517
8702
8703        Reviewed by Kent Tamura.
8704
8705        We need to locale [NSLocale currentLocale] if browser language/@lang equals [[NSLocal currentLocale] localeIdentifier]. Otherwise it won't use the custom time format that the user has set.
8706
8707        No new tests. Unable to test because we need to change system locale settings.
8708
8709        * platform/text/mac/LocaleMac.h:
8710        (LocaleMac):
8711        * platform/text/mac/LocaleMac.mm:
8712        (WebCore::languageFromLocale): Moved to top.
8713        (WebCore):
8714        (WebCore::determineLocale): Modified so it takes a locale as an argument.
8715        (WebCore::Localizer::create):
8716        (WebCore::LocaleMac::LocaleMac): Added checks for invalid locales to this constructor and removed the other one so we don't have duplicated code.
8717        (WebCore::LocaleMac::create):
8718        (WebCore::LocaleMac::currentLocale):
8719
87202012-09-20  Alexander Pavlov  <apavlov@chromium.org>
8721
8722        Web Inspector: Relative URL Link Tooltips do not respect <base>
8723        https://bugs.webkit.org/show_bug.cgi?id=43434
8724
8725        Reviewed by Pavel Feldman.
8726
8727        New "baseURL" field added into the DOM.Node payload for document nodes and is made use of while resolving and completing URLs.
8728
8729        * inspector/Inspector.json:
8730        * inspector/InspectorDOMAgent.cpp:
8731        (WebCore::documentBaseURLString):
8732        (WebCore):
8733        (WebCore::InspectorDOMAgent::buildObjectForNode):
8734        * inspector/front-end/AuditRules.js:
8735        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
8736        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived):
8737        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived):
8738        * inspector/front-end/DOMAgent.js:
8739        (WebInspector.DOMNode.prototype.resolveURL):
8740        (WebInspector.DOMDocument):
8741
87422012-09-25  Peter Wang  <peter.wang@torchmobile.com.cn>
8743
8744        Web Inspector:  The JS code injected by worker inspector shouldn't be evaluated through JSMainThreadExecState
8745        https://bugs.webkit.org/show_bug.cgi?id=95341
8746
8747        Reviewed by Yury Semikhatsky.
8748
8749        Add extra code to "JSC::InjectedScriptManager" and "JSC::ScriptFunctionCall" to make sure the
8750        interfaces of JSMainThreadExecState are invoked only in main thread.
8751
8752        No new test case for this bug. Without this patch, opening worker inspector will meet failed assert statements.   
8753
8754        * bindings/js/JSInjectedScriptManager.cpp:
8755        (WebCore::InjectedScriptManager::createInjectedScript):
8756        * bindings/js/ScriptFunctionCall.cpp:
8757        (WebCore::ScriptFunctionCall::call):
8758
87592012-09-25  Andreas Kling  <kling@webkit.org>
8760
8761        CSSParserString: Avoid pointless String refcount churn in init().
8762        <http://webkit.org/b/94748>
8763
8764        Reviewed by Sam Weinig.
8765
8766        Have CSSParserString::init() take a const String& instead of a String.
8767
8768        * css/CSSParserValues.h:
8769        (WebCore::CSSParserString::init):
8770
87712012-09-25  Alexander Pavlov  <apavlov@chromium.org>
8772
8773        Web Inspector: [Styles] For group selectors, transmit their segments with the "matches" flag
8774        https://bugs.webkit.org/show_bug.cgi?id=96999
8775
8776        Reviewed by Pavel Feldman.
8777
8778        The CSSRule protocol object has been modified to include a SelectorList object that contains selector-related data.
8779        CSSAgent methods that return CSS rule matches will return RuleMatch objects that encapsulate matching CSSRules
8780        with indices of matching selectors on the associated selector list, so the additional backend roundtrips
8781        from StylesSidebarPane are no longer necessary.
8782
8783        * inspector/Inspector.json:
8784        * inspector/InspectorCSSAgent.cpp:
8785        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
8786        (WebCore::InspectorCSSAgent::buildObjectForRule):
8787        (WebCore):
8788        (WebCore::InspectorCSSAgent::buildArrayForRuleList):
8789        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
8790        * inspector/InspectorCSSAgent.h:
8791        (InspectorCSSAgent):
8792        * inspector/InspectorStyleSheet.cpp:
8793        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
8794        (WebCore):
8795        (WebCore::InspectorStyleSheet::buildObjectForRule):
8796        * inspector/InspectorStyleSheet.h:
8797        (InspectorStyleSheet):
8798        * inspector/front-end/CSSStyleModel.js:
8799        (WebInspector.CSSStyleModel.parseRuleMatchArrayPayload):
8800        (WebInspector.CSSStyleModel.prototype.getMatchedStylesAsync):
8801        (WebInspector.CSSRule):
8802        (WebInspector.CSSRule.parsePayload):
8803        * inspector/front-end/StylesSidebarPane.js:
8804        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
8805        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
8806        (WebInspector.StylePropertiesSection.prototype._markSelectorMatches):
8807        (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector):
8808        (WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled):
8809
88102012-09-25  MORITA Hajime  <morrita@google.com>
8811
8812        adoptNode() shouldn't reset ownerDocument if the source node failed to remove itself
8813        https://bugs.webkit.org/show_bug.cgi?id=97527
8814
8815        Reviewed by Ryosuke Niwa.
8816
8817        Document::adoptNode() overlooked an error which can happen in Node::removeChild().
8818        Which results an assertion failure. This change adds an error check for that code path.
8819
8820        Test: fast/dom/adopt-node-prevented.html
8821
8822        * dom/Document.cpp:
8823        (WebCore::Document::adoptNode):
8824
88252012-09-21  Ilya Tikhonovsky  <loislo@chromium.org>
8826
8827        Web Inspector: extract Vector instrumentation from core NMI code into MemoryInstrumentationVector.h header.
8828        https://bugs.webkit.org/show_bug.cgi?id=96650
8829
8830        Reviewed by Vsevolod Vlasov.
8831
8832        addInstrumentedVector and addInstrumentedVectorPtr were replaced with addMember.
8833        The same thing happens with addVector and addVectorPtr.
8834
8835        * css/CSSGradientValue.cpp:
8836        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
8837        * css/CSSImageSetValue.cpp:
8838        (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
8839        * css/CSSMediaRule.cpp:
8840        (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
8841        * css/CSSRuleList.cpp:
8842        (WebCore::StaticCSSRuleList::reportMemoryUsage):
8843        * css/CSSStyleSheet.cpp:
8844        (WebCore::CSSStyleSheet::reportMemoryUsage):
8845        * css/CSSValueList.cpp:
8846        (WebCore::CSSValueList::reportDescendantMemoryUsage):
8847        * css/MediaList.cpp:
8848        (WebCore::MediaQuerySet::reportMemoryUsage):
8849        * css/MediaQuery.cpp:
8850        (WebCore::MediaQuery::reportMemoryUsage):
8851        * css/StyleResolver.cpp:
8852        (WebCore::StyleResolver::collectMatchingRulesForList):
8853        * css/StyleRule.cpp:
8854        (WebCore::StyleRuleBlock::reportDescendantMemoryUsage):
8855        * css/StyleSheetContents.cpp:
8856        (WebCore::StyleSheetContents::reportMemoryUsage):
8857        * css/WebKitCSSKeyframesRule.cpp:
8858        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
8859        (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
8860        * css/WebKitCSSRegionRule.cpp:
8861        (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
8862        * dom/Document.cpp:
8863        (WebCore::Document::reportMemoryUsage):
8864        * loader/DocumentLoader.cpp:
8865        (WebCore::DocumentLoader::reportMemoryUsage):
8866        * platform/network/ResourceRequestBase.cpp:
8867        (WebCore::ResourceRequestBase::reportMemoryUsage):
8868
88692012-09-25  Vivek Galatage  <vivekgalatage@gmail.com>
8870
8871        REGRESSION(r129346): It broke !ENABLE(INSPECTOR) build
8872        https://bugs.webkit.org/show_bug.cgi?id=97490
8873
8874        Reviewed by Csaba Osztrogonác.
8875
8876        The dummy class implementation must be under the ENABLE(INSPECTOR)
8877        guard. Added them to prevent from braking the build with --minimal
8878        option for build-webkit
8879
8880        No new tests as caused by missing compile guard.
8881
8882        * testing/Internals.cpp:
8883        (WebCore):
8884
88852012-09-24  Bo Liu  <boliu@chromium.org>
8886
8887        Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
8888        https://bugs.webkit.org/show_bug.cgi?id=97055
8889
8890        Reviewed by Adam Barth.
8891
8892        Relanding 128780, 128676, 128645. Was reverted in 128914 due to
8893        performance regression in Chromium.
8894
8895        New changes in addition to previously reverted patches:
8896
8897        Refactored CachedResource::requestResource, loadResource, and
8898        revalidateResource. Moved CachedResource::load method to end of
8899        requestResource so there is one place where load is called for all
8900        resources.
8901
8902        Added a enum parameter for requestResource and
8903        determineRevalidationPolicy so that FrameLoaderClient::allowImage call
8904        do not need to be called multiple times.
8905
8906        Removed CachedImage::load call in requestImage so it is not called
8907        twice.
8908
8909        Removed unnecessary Frame.h includes in CachedResource and
8910        CachedImage.
8911
8912        Removed dead load() method declaration in CachedImage.
8913
8914        Updated text expectation for two image-permissions tests to reflect
8915        the removed calls to allowImage.
8916
8917        Tests: fast/loader/display-image-unset-allows-cached-image-load.html
8918               fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html
8919               fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html
8920
8921        * WebCore.exp.in:
8922        * loader/FrameLoader.cpp:
8923        (WebCore::FrameLoader::didBeginDocument):
8924        * loader/SubresourceLoader.cpp:
8925        (WebCore::SubresourceLoader::willSendRequest):
8926        * loader/cache/CachedImage.cpp:
8927        * loader/cache/CachedImage.h:
8928        * loader/cache/CachedResource.cpp:
8929        (WebCore::CachedResource::didAddClient):
8930        * loader/cache/CachedResource.h:
8931        (WebCore):
8932        (WebCore::CachedResource::stillNeedsLoad):
8933        * loader/cache/CachedResourceLoader.cpp:
8934        (WebCore::CachedResourceLoader::CachedResourceLoader):
8935        (WebCore::CachedResourceLoader::requestImage):
8936        (WebCore::CachedResourceLoader::canRequest):
8937        (WebCore::CachedResourceLoader::requestResource):
8938        (WebCore::CachedResourceLoader::revalidateResource):
8939        (WebCore::CachedResourceLoader::loadResource):
8940        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
8941        (WebCore::CachedResourceLoader::setAutoLoadImages):
8942        (WebCore):
8943        (WebCore::CachedResourceLoader::setImagesEnabled):
8944        (WebCore::CachedResourceLoader::clientDefersImage):
8945        (WebCore::CachedResourceLoader::shouldDeferImageLoad):
8946        (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
8947        * loader/cache/CachedResourceLoader.h:
8948        (CachedResourceLoader):
8949        * page/Settings.cpp:
8950        (WebCore::setImageLoadingSettings):
8951        (WebCore::Settings::Settings):
8952        (WebCore::Settings::setLoadsImagesAutomatically):
8953        (WebCore::Settings::imageLoadingSettingsTimerFired):
8954        (WebCore::Settings::setImagesEnabled):
8955        * page/Settings.h:
8956        (Settings):
8957        * testing/InternalSettings.cpp:
8958        (WebCore::InternalSettings::Backup::Backup):
8959        (WebCore::InternalSettings::Backup::restoreTo):
8960        (WebCore::InternalSettings::setImagesEnabled):
8961        (WebCore):
8962        * testing/InternalSettings.h:
8963        (Backup):
8964        (InternalSettings):
8965        * testing/InternalSettings.idl:
8966
89672012-09-24  Filip Pizlo  <fpizlo@apple.com>
8968
8969        SerializedScriptValue isn't aware of indexed storage, but should be
8970        https://bugs.webkit.org/show_bug.cgi?id=97515
8971        <rdar://problem/12361874>
8972
8973        Reviewed by Sam Weinig.
8974
8975        New test: fast/js/post-message-numeric-property.html
8976
8977        * bindings/js/SerializedScriptValue.cpp:
8978        (WebCore::CloneDeserializer::putProperty):
8979
89802012-09-24  Gavin Barraclough  <barraclough@apple.com>
8981
8982        Remove JSObject::unwrappedGlobalObject(), JSObject::unwrappedObject()
8983        https://bugs.webkit.org/show_bug.cgi?id=97519
8984
8985        Reviewed by Geoff Garen.
8986
8987        JSDOMWindowShell::setWindow should update the structure's globalObject.
8988
8989        * bindings/js/JSDOMWindowShell.h:
8990        (WebCore::JSDOMWindowShell::setWindow):
8991            - Update the JSDOMWindowShell's structure's globalObject when the
8992              window changes.
8993
89942012-09-24  Yoshifumi Inoue  <yosin@chromium.org>
8995
8996        [Forms] We should remove DateTimeEditElement::valueAsDouble()
8997        https://bugs.webkit.org/show_bug.cgi?id=97327
8998
8999        Reviewed by Kent Tamura.
9000
9001        This patch removes unused function DateTimeEditElement::valueAsDouble()
9002        and related functions in DateTimeFieldElement.
9003
9004        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
9005        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
9006
9007        No new tests. This patch doesn't change behavior.
9008
9009        * html/shadow/DateTimeEditElement.cpp: Removed valueAsDouble() implementation.
9010        * html/shadow/DateTimeEditElement.h: Removed valueAsDouble() declaration.
9011        (DateTimeEditElement):
9012        * html/shadow/DateTimeFieldElement.cpp: Removed valueAsDouble() implementation.
9013        * html/shadow/DateTimeFieldElement.h: Removed unitInMillisecond() and valueAsDouble() declarations.
9014        (DateTimeFieldElement):
9015        * html/shadow/DateTimeFieldElements.cpp: Removed unitInMillisecond() implementations.
9016        * html/shadow/DateTimeFieldElements.h:
9017        (DateTimeAMPMFieldElement): Removed unitInMillisecond() declaration.
9018        (DateTimeHourFieldElement): ditto.
9019        (DateTimeMillisecondFieldElement): ditto.
9020        (DateTimeMinuteFieldElement): ditto.
9021        (DateTimeSecondFieldElement): ditto.
9022
90232012-09-24  Antti Koivisto  <antti@apple.com>
9024
9025        Don't use StyleSheetList internally.
9026        https://bugs.webkit.org/show_bug.cgi?id=97504
9027
9028        Reviewed by Ryosuke Niwa.
9029
9030        StyleSheetList is a DOM type and should not be used internally. Use plain Vector instead and construct StyleSheetList on DOM access only.
9031
9032        * css/StyleResolver.cpp:
9033        (WebCore::StyleResolver::StyleResolver):
9034        (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
9035        (WebCore::StyleResolver::collectMatchingRulesForList):
9036        * css/StyleSheetList.cpp:
9037        (WebCore::StyleSheetList::StyleSheetList):
9038        (WebCore::StyleSheetList::styleSheets):
9039        (WebCore):
9040        (WebCore::StyleSheetList::detachFromDocument):
9041        
9042            Use live stylesheet vector of the documents stylesheet collection as long as we are attached to a document. 
9043            When detached copy the stylesheet vector to a member field and use that instead.
9044
9045        (WebCore::StyleSheetList::length):
9046        (WebCore::StyleSheetList::item):
9047        (WebCore::StyleSheetList::getNamedItem):
9048        * css/StyleSheetList.h:
9049        
9050            Removed StyleSheetVector typedef as Vector<RefPtr<StyleSheet> > is less opaque and not much longer.
9051    
9052        (WebCore):
9053        (WebCore::StyleSheetList::create):
9054        (StyleSheetList):
9055        (WebCore::StyleSheetList::document):
9056        * dom/Document.cpp:
9057        (WebCore::Document::~Document):
9058        (WebCore::Document::setCompatibilityMode):
9059        (WebCore::Document::styleSheets):
9060        * dom/Document.h:
9061        (Document):
9062        * dom/DocumentStyleSheetCollection.cpp:
9063        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
9064        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
9065        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
9066        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
9067        * dom/DocumentStyleSheetCollection.h:
9068        (WebCore::DocumentStyleSheetCollec
9069
90702012-09-24  Laszlo Gombos  <l.gombos@samsung.com>
9071
9072        [GTK][EFL] Remove cairo prefix from include statements 
9073        https://bugs.webkit.org/show_bug.cgi?id=97509
9074
9075        Reviewed by Gyuyoung Kim.
9076
9077        Make the build system consistent by always assuming that directory
9078        that includes the cairo headers is included in the include path.
9079
9080        No new tests as there is no new functionality.
9081
9082        * platform/cairo/WidgetBackingStoreCairo.cpp:
9083        * platform/gtk/GtkWidgetBackingStoreX11.cpp:
9084        * plugins/gtk/PluginViewGtk.cpp:
9085
90862012-09-24  Yoshifumi Inoue  <yosin@chromium.org>
9087
9088        Document::adoptNode for multiple fields time input UI should not crash
9089        https://bugs.webkit.org/show_bug.cgi?id=97428
9090
9091        Reviewed by Dimitri Glazkov.
9092
9093        This patch changes Document::removeFocusedNodeOfSubtree() to check
9094        focused node in shadow DOM tree for avoiding Document::m_focusedNode
9095        not to have dangling pointer to field owner in DateTimeFieldElement.
9096
9097        Test:
9098         - fast/dom/shadow/shadow-removechild-and-blur-event.html: test for removeChild dispatches blur event.
9099         - fast/forms/time-multiple-fields/time-multiple-fields-crash-after-adoptnode.html: test for adoptNode not to crash.
9100         - fast/forms/time-multiple-fields/time-multiple-fields-state-change-on-focus-or-blur.html: removeChild of input type "time" dispatches blur event, existing test.
9101
9102        * dom/Document.cpp:
9103        (WebCore::Document::removeFocusedNodeOfSubtree): Changed to check
9104        focused node in shadow DOM tree in addition to descendant node.
9105
91062012-09-24  Robin Cao  <robin.cao@torchmobile.com.cn>
9107
9108        [Blackberry] Add a software rendering path for media player
9109        https://bugs.webkit.org/show_bug.cgi?id=97443
9110
9111        Reviewed by Yong Li.
9112
9113        This patch adds a software rendering path for media player. When accelerated rendering
9114        is not supported by the media engine for the current media, the rendering will fallback
9115        to this software path.
9116
9117        PR #212386
9118        Reviewed internally by Max Feil.
9119
9120        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
9121        (WebCore::MediaPlayerPrivate::paint):
9122        (WebCore::MediaPlayerPrivate::updateStates):
9123        (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering):
9124        (WebCore):
9125        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
9126        (MediaPlayerPrivate):
9127
91282012-09-24  Benjamin Poulain  <bpoulain@apple.com>
9129
9130        Fix Geolocation error reporting in the test support
9131        https://bugs.webkit.org/show_bug.cgi?id=97386
9132
9133        Reviewed by Sam Weinig.
9134
9135        GeolocationController currently expose GeolocationError which can be either
9136        PermissionDenied or PositionUnavailable.
9137
9138        In practice, only PositionUnavailable is supported and tested, only Chrome
9139        somewhat expose PermissionDenied.
9140        The correct way to deny the permission is through Geolocation::setIsAllowed().
9141
9142        This patch does some of the initial cleanup toward that goal, reducing how
9143        far GeolocationError is spread.
9144
9145        * WebCore.exp.in:
9146        * WebCore.xcodeproj/project.pbxproj:
9147        Mac does not use GeolocationClientMock, it should not be compiled in WebCore.
9148
9149        * platform/mock/GeolocationClientMock.cpp:
9150        (WebCore::GeolocationClientMock::GeolocationClientMock):
9151        (WebCore::GeolocationClientMock::setPosition):
9152        (WebCore::GeolocationClientMock::setPositionUnavailableError):
9153        This method replace setError(). It is limited to PositionUnavailable errors.
9154
9155        (WebCore::GeolocationClientMock::reset):
9156        (WebCore::GeolocationClientMock::controllerTimerFired):
9157        (WebCore):
9158        (WebCore::GeolocationClientMock::clearError):
9159        * platform/mock/GeolocationClientMock.h:
9160        (WebCore):
9161        (GeolocationClientMock):
9162
91632012-09-24  Kent Tamura  <tkent@chromium.org>
9164
9165        [Chromium] Implement ValidationMessageClient for Chromium
9166        https://bugs.webkit.org/show_bug.cgi?id=97167
9167
9168        Reviewed by Hajime Morita.
9169
9170        * page/ValidationMessageClient.h:
9171        Add forward declaration for WTF::String.
9172
91732012-09-24  Yoshifumi Inoue  <yosin@chromium.org>
9174
9175        [Forms] DateTimeEditElement should return string value for ease of implementing other date/time input types.
9176        https://bugs.webkit.org/show_bug.cgi?id=97303
9177
9178        Reviewed by Kent Tamura.
9179
9180        This patch introduces a function DateTimeEditElement::value() for
9181        setting internal text value of TimeInputType with new function
9182        EditControlOwner::formatDateTimeFieldsState() to utilize this protocl
9183        in other date time input types.
9184
9185        We used DateTimeEditElement::valueAsDouble() and and BaseDateAndTimeInputType::serialize()
9186        to make string value then setting internal text value of multiple
9187        fields time input UI. Although, this steps doesn't work well for
9188        other date/time input types.
9189
9190        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
9191        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
9192
9193        No new tests. This patch doesn't change behavior.
9194
9195        * html/DateTimeFieldsState.cpp:
9196        (WebCore::DateTimeFieldsState::hour23): Added to convert 1 to 12 hour value to 0 to 23 hour.
9197        * html/DateTimeFieldsState.h:
9198        (DateTimeFieldsState): Added declaration of hour23().
9199        * html/TimeInputType.cpp:
9200        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged): Changed to use DateTimeEditElement::value() instead of DateTimeEditElement::valueAsDouble().
9201        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::formatDateTimeFieldsState): Added to format time.
9202        (WebCore::TimeInputType::restoreFormControlState): Changed to use DateTimeEditElement::value() instead of DateTimeEditElement::valueAsDouble().
9203        * html/TimeInputType.h:
9204        (DateTimeEditControlOwnerImpl): Added a declaration of formatDateTimeFieldsState().
9205        * html/shadow/DateTimeEditElement.cpp:
9206        (WebCore::DateTimeEditElement::value): Added.
9207        * html/shadow/DateTimeEditElement.h:
9208        (EditControlOwner): Added a declaration of formatDateTimeFieldsState().
9209        (DateTimeEditElement): Added a declaration of value().
9210
92112012-09-24  Dean Jackson  <dino@apple.com>
9212
9213        [WebGL] Intel Mac needs built-in function emulation
9214        https://bugs.webkit.org/show_bug.cgi?id=96140
9215
9216        Reviewed by Sam Weinig.
9217
9218        Temporarily turn on built-in function emulation for Intel GPUs
9219        on OS X. This is a work-around for a driver bug, and
9220        will be removed once the driver is updated:
9221        https://bugs.webkit.org/show_bug.cgi?id=97503
9222
9223        This can be tested using the Khronos WebGL conformance
9224        suite, in particular:
9225
9226        conformance/glsl/functions/glsl-function-dot.html
9227        conformance/glsl/functions/glsl-function-length.html
9228        conformance/glsl/functions/glsl-function-normalize.html
9229        conformance/glsl/functions/glsl-function-reflect.html
9230
9231        Note that the faceforward built-in will still cause
9232        problems on Intel GPUs, but this would require an unnecessary
9233        change in the ANGLE project (remember, we're going to
9234        remove this code once the driver is fixed).
9235
9236        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
9237        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
9238            Temporarily add "Intel" to the list of GPUs we do translation
9239            for in the shader compiler.
9240
92412012-09-24  Peter Wang  <peter.wang@torchmobile.com.cn>
9242
9243        There is a mistake in InspectorProfilerAgent::enable(bool skipRecompile)
9244        https://bugs.webkit.org/show_bug.cgi?id=97450
9245
9246        Reviewed by Yury Semikhatsky.
9247
9248        The "InspectorProfilerAgent::enable()" should invokes "PageScriptDebugServer" in
9249        no-worker thread.
9250
9251        No new test case.
9252
9253        * inspector/InspectorProfilerAgent.cpp:
9254        (WebCore::PageProfilerAgent::recompileScript):
9255        (PageProfilerAgent):
9256        (WebCore::WorkerProfilerAgent::recompileScript):
9257        (WorkerProfilerAgent):
9258        (WebCore::InspectorProfilerAgent::disable):
9259        (WebCore::InspectorProfilerAgent::enable):
9260        * inspector/InspectorProfilerAgent.h:
9261        (InspectorProfilerAgent):
9262
92632012-09-24  Patrick Gansterer  <paroga@webkit.org>
9264
9265        Remove String::operator+=()
9266        https://bugs.webkit.org/show_bug.cgi?id=96172
9267
9268        Reviewed by Benjamin Poulain.
9269
9270        Replace the last usage with String::append() in Gtk.
9271
9272        * platform/gtk/GtkInputMethodFilter.cpp:
9273        (WebCore::GtkInputMethodFilter::handleCommit):
9274
92752012-09-24  Mark Pilgrim  <pilgrim@chromium.org>
9276
9277        [Chromium][Mac] Remove loadFont from PlatformSupport
9278        https://bugs.webkit.org/show_bug.cgi?id=97360
9279
9280        Reviewed by Adam Barth.
9281
9282        Part of a refactoring series. See tracking bug 82948.
9283
9284        * platform/chromium/PlatformSupport.h:
9285        (PlatformSupport):
9286        * platform/graphics/chromium/CrossProcessFontLoading.mm:
9287
92882012-09-24  Tony Chang  <tony@chromium.org>
9289
9290        Replace 2 uses of updateLogicalHeight with computeLogicalHeight
9291        https://bugs.webkit.org/show_bug.cgi?id=97486
9292
9293        Reviewed by Ojan Vafai.
9294
9295        More work for bug 96804.  This is just a refactoring.
9296
9297        No new tests, behavior should be the same as before.
9298
9299        * rendering/RenderFlowThread.cpp:
9300        (WebCore::RenderFlowThread::computeLogicalHeight):
9301        * rendering/RenderFlowThread.h:
9302        * rendering/RenderMultiColumnFlowThread.cpp:
9303        (WebCore::RenderMultiColumnFlowThread::computeLogicalHeight):
9304        (WebCore):
9305        * rendering/RenderMultiColumnFlowThread.h:
9306        (RenderMultiColumnFlowThread):
9307
93082012-09-21  Kenneth Russell  <kbr@google.com>
9309
9310        [V8] ArrayBuffer code should not pass a negative length to SetIndexedPropertiesToExternalArrayData()
9311        https://bugs.webkit.org/show_bug.cgi?id=96703
9312
9313        Reviewed by Adam Barth.
9314
9315        Check length arguments that may be passed to SetIndexedPropertiesToExternalArrayData.
9316
9317        No tests because it is not guaranteed that buffers this large can actually be allocated.
9318
9319        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
9320        (WebCore::wrapArrayBufferView):
9321        (WebCore::constructWebGLArrayWithArrayBufferArgument):
9322        (WebCore::constructWebGLArray):
9323
93242012-09-24  Antti Koivisto  <antti@apple.com>
9325
9326        Split stylesheet related code out from Document 
9327        https://bugs.webkit.org/show_bug.cgi?id=97353
9328
9329        Reviewed by Andreas Kling.
9330
9331        Document is big and unwieldy. The code related to tracking active stylesheets can be factored out.
9332        
9333        The patch moves stylesheet upkeep, collection and invalidation code from Document to a separate
9334        DocumentStyleSheetCollection class. There are no functional changes.
9335        
9336        The usesLinkRules stylesheet feature bit and the related code is removed as no one was using it.
9337
9338        * WebCore.xcodeproj/project.pbxproj:
9339        * css/SelectorChecker.cpp:
9340        (WebCore::SelectorChecker::checkOneSelector):
9341        * css/StyleResolver.cpp:
9342        (WebCore::StyleResolver::StyleResolver):
9343        (WebCore::StyleResolver::Features::Features):
9344        (WebCore::StyleResolver::Features::add):
9345        (WebCore::StyleResolver::Features::clear):
9346        (WebCore::StyleResolver::collectMatchingRulesForList):
9347        * css/StyleResolver.h:
9348        (WebCore::StyleResolver::usesBeforeAfterRules):
9349        (Features):
9350        * dom/Document.cpp:
9351        (WebCore::Document::Document):
9352        (WebCore::Document::~Document):
9353        (WebCore::Document::setCompatibilityMode):
9354        (WebCore::Document::recalcStyle):
9355        (WebCore):
9356        (WebCore::Document::createStyleResolver):
9357        (WebCore::Document::seamlessParentUpdatedStylesheets):
9358        (WebCore::Document::didRemoveAllPendingStylesheet):
9359        (WebCore::Document::processHttpEquiv):
9360        (WebCore::Document::styleSheets):
9361        (WebCore::Document::preferredStylesheetSet):
9362        (WebCore::Document::selectedStylesheetSet):
9363        (WebCore::Document::setSelectedStylesheetSet):
9364        (WebCore::Document::styleResolverChanged):
9365        (WebCore::Document::reportMemoryUsage):
9366        (WebCore::Document::haveStylesheetsLoaded):
9367        * dom/Document.h:
9368        (WebCore):
9369        (Document):
9370        (WebCore::Document::styleSheetCollection):
9371        (WebCore::Document::hasNodesWithPlaceholderStyle):
9372        (WebCore::Document::setNeedsNotifyRemoveAllPendingStylesheet):
9373        (WebCore::Document::inStyleRecalc):
9374        * dom/DocumentStyleSheetCollection.cpp: Added.
9375        (WebCore):
9376        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
9377        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
9378        (WebCore::DocumentStyleSheetCollection::pageUserSheet):
9379        (WebCore::DocumentStyleSheetCollection::clearPageUserSheet):
9380        (WebCore::DocumentStyleSheetCollection::updatePageUserSheet):
9381        (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
9382        (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
9383        (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
9384        (WebCore::DocumentStyleSheetCollection::addUserSheet):
9385        (WebCore::DocumentStyleSheetCollection::removePendingSheet):
9386        (WebCore::DocumentStyleSheetCollection::addStyleSheetCandidateNode):
9387        (WebCore::DocumentStyleSheetCollection::removeStyleSheetCandidateNode):
9388        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
9389        (WebCore::DocumentStyleSheetCollection::testAddedStyleSheetRequiresStyleRecalc):
9390        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
9391        (WebCore::styleSheetsUseRemUnits):
9392        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
9393        (WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
9394        (WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
9395        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
9396        * dom/DocumentStyleSheetCollection.h: Added.
9397        (WebCore):
9398        (DocumentStyleSheetCollection):
9399        (WebCore::DocumentStyleSheetCollection::authorStyleSheets):
9400        (WebCore::DocumentStyleSheetCollection::documentUserSheets):
9401        (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
9402        (WebCore::DocumentStyleSheetCollection::preferredStylesheetSetName):
9403        (WebCore::DocumentStyleSheetCollection::selectedStylesheetSetName):
9404        (WebCore::DocumentStyleSheetCollection::setPreferredStylesheetSetName):
9405        (WebCore::DocumentStyleSheetCollection::setSelectedStylesheetSetName):
9406        (WebCore::DocumentStyleSheetCollection::addPendingSheet):
9407        (WebCore::DocumentStyleSheetCollection::hasPendingSheets):
9408        (WebCore::DocumentStyleSheetCollection::usesSiblingRules):
9409        (WebCore::DocumentStyleSheetCollection::setUsesSiblingRulesOverride):
9410        (WebCore::DocumentStyleSheetCollection::usesFirstLineRules):
9411        (WebCore::DocumentStyleSheetCollection::usesFirstLetterRules):
9412        (WebCore::DocumentStyleSheetCollection::setUsesFirstLetterRules):
9413        (WebCore::DocumentStyleSheetCollection::usesBeforeAfterRules):
9414        (WebCore::DocumentStyleSheetCollection::setUsesBeforeAfterRulesOverride):
9415        (WebCore::DocumentStyleSheetCollection::usesRemUnits):
9416        (WebCore::DocumentStyleSheetCollection::setUsesRemUnit):
9417        * dom/Element.cpp:
9418        (WebCore::Element::recalcStyle):
9419        * dom/ProcessingInstruction.cpp:
9420        (WebCore::ProcessingInstruction::~ProcessingInstruction):
9421        (WebCore::ProcessingInstruction::checkStyleSheet):
9422        (WebCore::ProcessingInstruction::sheetLoaded):
9423        (WebCore::ProcessingInstruction::insertedInto):
9424        (WebCore::ProcessingInstruction::removedFrom):
9425        * dom/StyleElement.cpp:
9426        (WebCore::StyleElement::insertedIntoDocument):
9427        (WebCore::StyleElement::removedFromDocument):
9428        (WebCore::StyleElement::clearDocumentData):
9429        (WebCore::StyleElement::createSheet):
9430        (WebCore::StyleElement::sheetLoaded):
9431        (WebCore::StyleElement::startLoadingDynamicSheet):
9432        * html/HTMLLinkElement.cpp:
9433        (WebCore::HTMLLinkElement::~HTMLLinkElement):
9434        (WebCore::HTMLLinkElement::insertedInto):
9435        (WebCore::HTMLLinkElement::removedFrom):
9436        (WebCore::HTMLLinkElement::addPendingSheet):
9437        (WebCore::HTMLLinkElement::removePendingSheet):
9438        * html/HTMLQuoteElement.cpp:
9439        (WebCore::HTMLQuoteElement::insertedInto):
9440        * html/HTMLViewSourceDocument.cpp:
9441        (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
9442        * mathml/MathMLMathElement.cpp:
9443        (WebCore::MathMLMathElement::insertedInto):
9444        * page/Page.cpp:
9445        (WebCore::Page::userStyleSheetLocationChanged):
9446        * page/PageGroup.cpp:
9447        (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
9448        * rendering/RenderBR.cpp:
9449        (WebCore::RenderBR::lineHeight):
9450        * rendering/RenderBlock.cpp:
9451        (WebCore::RenderBlock::styleDidChange):
9452        (WebCore::RenderBlock::splitBlocks):
9453        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
9454        (WebCore::RenderBlock::lineHeight):
9455        (WebCore::RenderBlock::updateFirstLetter):
9456        * rendering/RenderInline.cpp:
9457        (WebCore::RenderInline::styleDidChange):
9458        (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
9459        (WebCore::RenderInline::addChildIgnoringContinuation):
9460        (WebCore::RenderInline::splitInlines):
9461        (WebCore::RenderInline::lineHeight):
9462        * rendering/RenderObject.cpp:
9463        (WebCore::RenderObject::uncachedFirstLineStyle):
9464        (WebCore::RenderObject::firstLineStyleSlowCase):
9465        * rendering/RenderObject.h:
9466        (WebCore::RenderObject::firstLineStyle):
9467        * rendering/RenderObjectChildList.cpp:
9468        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
9469        * rendering/RenderTableRow.cpp:
9470        (WebCore::RenderTableRow::updateBeforeAndAfterContent):
9471        * rendering/RootInlineBox.cpp:
9472        (WebCore::RootInlineBox::verticalPositionForBox):
9473
94742012-09-24  Otto Derek Cheung  <otcheung@rim.com>
9475
9476        [BlackBerry] Reverting implementation for 407 error pages
9477        https://bugs.webkit.org/show_bug.cgi?id=97455
9478
9479        Reviewed by Rob Buis.
9480
9481        Revert "[BlackBerry] Reverting implementation for 407 error pages"
9482        This reverts commit fda0a1b6ac40c06c03bb6293b4a7d7353c3ca238.
9483
9484        This revert also reverts commit 0cffe01961fb80204138505bcec29a83818efb73
9485        due to dependency issues.
9486
9487        * PlatformBlackBerry.cmake:
9488        * platform/blackberry/AuthenticationChallengeManager.cpp: Removed.
9489        * platform/blackberry/AuthenticationChallengeManager.h:
9490        * platform/blackberry/PageClientBlackBerry.h:
9491        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
9492        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
9493        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
9494        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
9495        (WebCore::MediaPlayerPrivate::notifyChallengeResult):
9496        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
9497        (MediaPlayerPrivate):
9498        * platform/network/blackberry/NetworkJob.cpp:
9499        (WebCore::NetworkJob::NetworkJob):
9500        (WebCore::NetworkJob::handleNotifyStatusReceived):
9501        (WebCore::NetworkJob::notifyAuthReceived):
9502        (WebCore::NetworkJob::handleNotifyClose):
9503        (WebCore::NetworkJob::sendRequestWithCredentials):
9504        (WebCore::NetworkJob::notifyChallengeResult):
9505        * platform/network/blackberry/NetworkJob.h:
9506        (NetworkJob):
9507
95082012-09-24  Chris Rogers  <crogers@google.com>
9509
9510        [REGRESSION] Layout Test webaudio/biquad-getFrequencyResponse.html is failing
9511        https://bugs.webkit.org/show_bug.cgi?id=97439
9512
9513        Reviewed by Kenneth Russell.
9514
9515        Fixes uninitialized member variable.
9516
9517        This should fix flaky failing test: webaudio/biquad-getFrequencyResponse.html
9518
9519        * Modules/webaudio/BiquadProcessor.cpp:
9520        (WebCore::BiquadProcessor::BiquadProcessor):
9521
95222012-09-24  Tony Chang  <tony@chromium.org>
9523
9524        flex-grow should be 1 when omitted from flex shorthand
9525        https://bugs.webkit.org/show_bug.cgi?id=97480
9526
9527        Reviewed by Ojan Vafai.
9528
9529        We were using 0, based on an outdated version of the spec.
9530
9531        Tests: css3/flexbox/flex-property-parsing.html
9532               css3/flexbox/flex-algorithm.html: New test case.
9533
9534        * css/CSSParser.cpp:
9535        (WebCore::CSSParser::parseFlex):
9536
95372012-09-24  Benjamin Poulain  <benjamin@webkit.org>
9538
9539        Add support for query encoding to WTFURL
9540        https://bugs.webkit.org/show_bug.cgi?id=97422
9541
9542        Reviewed by Adam Barth.
9543
9544        Add the Charset conversion on WebCore side.
9545
9546        * platform/KURLWTFURL.cpp:
9547        (WebCore::KURL::KURL):
9548        (CharsetConverter):
9549        (WebCore::CharsetConverter::CharsetConverter):
9550        * platform/mac/KURLMac.mm:
9551        (WebCore::KURL::KURL):
9552
95532012-09-24  Benjamin Poulain  <benjamin@webkit.org>
9554
9555        Integrate most of GoogleURL in WTFURL
9556        https://bugs.webkit.org/show_bug.cgi?id=97405
9557
9558        Reviewed by Adam Barth.
9559
9560        Loosen KURLWTFURL to be able to run most tests in Debug.
9561
9562        * platform/KURLWTFURL.cpp:
9563        (WebCore::KURL::KURL):
9564        (WebCore::KURL::hasPort):
9565        (WebCore::KURL::user):
9566        (WebCore::KURL::pass):
9567        (WebCore::KURL::hasPath):
9568        (WebCore::KURL::path):
9569        (WebCore::KURL::query):
9570        (WebCore::KURL::fragmentIdentifier):
9571        (WebCore::KURL::fileSystemPath):
9572
95732012-09-24  Hans Muller  <hmuller@adobe.com>
9574
9575        [CSS Exclusions] ExclusionShape API should use logical coordinates for input/output
9576        https://bugs.webkit.org/show_bug.cgi?id=96156
9577
9578        Reviewed by Dirk Schulze.
9579
9580        Correct how ExclusionShapes deal with logical coordinates and enable
9581        shape-inside exclusion layout for vertical writing-modes.
9582
9583        BasicShape's are defined in physical cooordinates, incoming line and box
9584        dimensions are logical coordinates, and the ExclusionShape internals assume
9585        that lines are aligned with the Y axis. The createExclusionShape() method
9586        is responsible for converting the BasicShape to the internal coordinate
9587        system when the writing-mode is vertical. Similarly, the getInclude,ExcludedIntervals()
9588        methods are responsible for converting their logical line parameters to Y
9589        values in the internal coordinate system. The min,maxYForLogicalLine()
9590        methods do the conversion, based on the WritingMode the ExclusionShape
9591        was created with. The getInclude,ExcludedIntervals() methods return the
9592        logical left and right edges of line segments. No transformation is needed for this.
9593
9594        The ExclusionShape's internal coordinate system is essentially the
9595        "logical" one, except that top/bottom always map to Y, no matter what
9596        the writing-mode is.  This is just to simplify writing geometrical shape
9597        algorithms, notably the complex ones for polygons. The bug report includes a
9598        pair of diagrams that clarify how internal coordinates are related to logical
9599        and physical coordinates.
9600
9601        Test: fast/exclusions/shape-inside/shape-inside-vertical-text.html
9602
9603        * rendering/ExclusionRectangle.cpp:
9604        (WebCore::ExclusionRectangle::getExcludedIntervals): rename more accurately reflects return value
9605        (WebCore::ExclusionRectangle::getIncludedIntervals): rename for consistency with "excluded" version
9606        * rendering/ExclusionRectangle.h:
9607        * rendering/ExclusionShape.cpp:
9608        (WebCore):
9609        (WebCore::ExclusionShape::createExclusionShape):
9610        * rendering/ExclusionShape.h:
9611        (LineSegment):
9612        (WebCore::LineSegment::LineSegment): relocated from WrapShapeInfo.h
9613        (WebCore):
9614        (ExclusionShape):
9615        (WebCore::ExclusionShape::minYForLogicalLine):
9616        (WebCore::ExclusionShape::maxYForLogicalLine):
9617        (WebCore::ExclusionShape::internalToLogicalBoundingBox):
9618        * rendering/WrapShapeInfo.cpp:
9619        (WebCore::WrapShapeInfo::isWrapShapeInfoEnabledForRenderBlock):
9620        (WebCore::WrapShapeInfo::computeShapeSize): pass writingMode to createExclusionShape()
9621        (WebCore::WrapShapeInfo::computeSegmentsForLine): removed short-circuit for vertical writing-modes
9622        * rendering/WrapShapeInfo.h:
9623        (WebCore):
9624
96252012-09-24  Tony Chang  <tony@chromium.org>
9626
9627        Replace RenderMeter::updateLogicalHeight to RenderMeter::computeLogicalHeight
9628        https://bugs.webkit.org/show_bug.cgi?id=97475
9629
9630        Reviewed by Ojan Vafai.
9631
9632        Using RenderMeter::computeLogicalHeight is part of bug 96804.
9633        Also fix some code to be vertical writing mode aware. This doesn't actually cause
9634        a behavioral difference because we use percentage heights/widths which don't depend on
9635        updateLogicalWidth or computeLogicalHeight.  You can still see bugs if you try to set
9636        the min-width on a <meter> node in a vertical writing mode.
9637
9638        No new tests, no behavioral changes.
9639
9640        * rendering/RenderMeter.cpp:
9641        (WebCore::RenderMeter::updateLogicalWidth): Make vertical writing mode aware.
9642        (WebCore::RenderMeter::computeLogicalHeight): Switch from updateLogicalHeight and make vertical writing mode aware.
9643        * rendering/RenderMeter.h:
9644        (RenderMeter):
9645
96462012-09-24  Dimitri Glazkov  <dglazkov@chromium.org>
9647
9648        Remove unbaked support for :scope pseudo-class.
9649        https://bugs.webkit.org/show_bug.cgi?id=97467
9650
9651        Reviewed by Antti Koivisto.
9652
9653        It turns out, the Selectors 4 require ":scope" to match contextual reference element set, which would be the root node in querySelector:
9654        http://dev.w3.org/csswg/selectors4/#the-scope-pseudo
9655
9656        Right now, we simply make ":scope" equivalent to ":root", which is not correct. Let's remove the partial implementation until we have
9657        time/energy to fully implement it.
9658
9659        No new tests, removing half-baked feature.
9660
9661        * css/CSSSelector.cpp:
9662        (WebCore::CSSSelector::pseudoId): Removed all mentions of PseudoScope
9663        (WebCore::nameToPseudoTypeMap): Ditto.
9664        (WebCore::CSSSelector::extractPseudoType): Ditto.
9665        * css/CSSSelector.h: Ditto.
9666        * css/SelectorChecker.cpp:
9667        (WebCore::SelectorChecker::checkOneSelector): Ditto.
9668
96692012-09-24  Ryosuke Niwa  <rniwa@webkit.org>
9670
9671        suspend/resumeWidgetHierarchyUpdates should be a RAII object
9672        https://bugs.webkit.org/show_bug.cgi?id=96706
9673
9674        Reviewed by Simon Fraser.
9675
9676        Replaced suspendWidgetHierarchyUpdates and resumeWidgetHierarchyUpdates by WidgetHierarchyUpdatesSuspensionScope.
9677
9678        * WebCore.exp.in: Export new symbols.
9679        * dom/ContainerNode.cpp:
9680        (WebCore::ContainerNode::removeChild):
9681        (WebCore::ContainerNode::removeChildren):
9682        * dom/Document.cpp:
9683        (WebCore::Document::recalcStyle):
9684        * dom/Element.cpp:
9685        (WebCore::Element::attach):
9686        (WebCore::Element::detach):
9687        * page/mac/EventHandlerMac.mm:
9688        (WebCore::EventHandler::passMouseDownEventToWidget):
9689        * rendering/RenderWidget.cpp:
9690        (WebCore):
9691        (WebCore::WidgetHierarchyUpdatesSuspensionScope::widgetNewParentMap):
9692        (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
9693        (WebCore::moveWidgetToParentSoon):
9694        * rendering/RenderWidget.h:
9695        (WidgetHierarchyUpdatesSuspensionScope):
9696        (WebCore::WidgetHierarchyUpdatesSuspensionScope::WidgetHierarchyUpdatesSuspensionScope):
9697        (WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope):
9698        (WebCore::WidgetHierarchyUpdatesSuspensionScope::isSuspended):
9699        (WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove):
9700        (WebCore):
9701        (RenderWidget):
9702
97032012-09-24  Otto Derek Cheung  <otcheung@rim.com>
9704
9705        [BlackBerry] Reverting implementation for 407 error pages
9706        https://bugs.webkit.org/show_bug.cgi?id=97455
9707
9708        Reviewed by Rob Buis.
9709
9710        Revert "[BlackBerry] Show custom error page when 407 is received"
9711        This reverts commit e6d14529428fe47916fcb997528095b8acad2f2b.
9712
9713        * platform/network/blackberry/NetworkJob.cpp:
9714        (WebCore::NetworkJob::handleNotifyStatusReceived):
9715        (WebCore::NetworkJob::notifyAuthReceived):
9716        (WebCore::NetworkJob::sendRequestWithCredentials):
9717
97182012-09-24  Sheriff Bot  <webkit.review.bot@gmail.com>
9719
9720        Unreviewed, rolling out r129388.
9721        http://trac.webkit.org/changeset/129388
9722        https://bugs.webkit.org/show_bug.cgi?id=97477
9723
9724        Caused an assertion in a WebKit2 unit test (Requested by
9725        abarth on #webkit).
9726
9727        * WebCore.exp.in:
9728        * loader/FrameLoader.cpp:
9729        (WebCore::FrameLoader::didBeginDocument):
9730        * loader/SubresourceLoader.cpp:
9731        (WebCore::SubresourceLoader::willSendRequest):
9732        * loader/cache/CachedImage.cpp:
9733        * loader/cache/CachedImage.h:
9734        (WebCore::CachedImage::stillNeedsLoad):
9735        (CachedImage):
9736        * loader/cache/CachedResource.cpp:
9737        (WebCore::CachedResource::didAddClient):
9738        * loader/cache/CachedResource.h:
9739        (WebCore):
9740        * loader/cache/CachedResourceLoader.cpp:
9741        (WebCore::CachedResourceLoader::CachedResourceLoader):
9742        (WebCore::CachedResourceLoader::requestImage):
9743        (WebCore::CachedResourceLoader::canRequest):
9744        (WebCore::CachedResourceLoader::requestResource):
9745        (WebCore::CachedResourceLoader::revalidateResource):
9746        (WebCore::CachedResourceLoader::loadResource):
9747        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
9748        (WebCore::CachedResourceLoader::setAutoLoadImages):
9749        * loader/cache/CachedResourceLoader.h:
9750        (CachedResourceLoader):
9751        * page/Settings.cpp:
9752        (WebCore::setLoadsImagesAutomaticallyInAllFrames):
9753        (WebCore::Settings::Settings):
9754        (WebCore::Settings::setLoadsImagesAutomatically):
9755        (WebCore::Settings::loadsImagesAutomaticallyTimerFired):
9756        (WebCore::Settings::setImagesEnabled):
9757        * page/Settings.h:
9758        (Settings):
9759        * testing/InternalSettings.cpp:
9760        (WebCore::InternalSettings::Backup::Backup):
9761        (WebCore::InternalSettings::Backup::restoreTo):
9762        * testing/InternalSettings.h:
9763        (Backup):
9764        (InternalSettings):
9765        * testing/InternalSettings.idl:
9766
97672012-09-24  Erik Arvidsson  <arv@chromium.org>
9768
9769        DOM4 remove method
9770        https://bugs.webkit.org/show_bug.cgi?id=73885
9771
9772        Reviewed by Ojan Vafai.
9773
9774        This adds the DOM 4 remove method.
9775        
9776        http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-childnode-remove
9777        
9778        The remove method removes the node from its parent if it has a parent.
9779
9780        Tests: fast/dom/Comment/remove.html
9781               fast/dom/DocumentType/remove.html
9782               fast/dom/Element/remove.html
9783               fast/dom/Text/remove.html
9784
9785        * dom/CharacterData.idl:
9786        * dom/DocumentType.idl:
9787        * dom/Element.idl:
9788        * dom/Node.cpp:
9789        (WebCore::Node::remove): The spec says to do nothing if the node has no parent.
9790        * html/parser/HTMLTreeBuilder.cpp:
9791        (WebCore::HTMLTreeBuilder::processStartTagForInBody): Cleanup.
9792        * html/track/TextTrackCue.cpp:
9793        (WebCore::TextTrackCue::removeDisplayTree): No need to check parenNode twice.
9794
97952012-09-24  Tommy Widenflycht  <tommyw@google.com>
9796
9797        MediaStream API: Fix the incorrectly spelled RTCPeerConnection::onnegotiationneeded callback
9798        https://bugs.webkit.org/show_bug.cgi?id=97456
9799
9800        Reviewed by Adam Barth.
9801
9802        Renamed onnegotationneeded to onnegotiationneeded.
9803
9804        Existing test updated. 
9805
9806        * Modules/mediastream/RTCPeerConnection.cpp:
9807        (WebCore::RTCPeerConnection::negotiationNeeded):
9808        * Modules/mediastream/RTCPeerConnection.h:
9809        (RTCPeerConnection):
9810        * Modules/mediastream/RTCPeerConnection.idl:
9811        * dom/EventNames.h:
9812        (WebCore):
9813
98142012-09-24  Peter Beverloo  <peter@chromium.org>
9815
9816        Android's mock scrollbars shows up as a difference in layout test results
9817        https://bugs.webkit.org/show_bug.cgi?id=96382
9818
9819        Reviewed by Adam Barth.
9820
9821        Remove the exceptions made for layout tests in Android's scrollbar theme.
9822        This will make our actual scrollbars show up in layout test pixel results,
9823        bringing the tests closer to what we actually ship.
9824
9825        An important difference with other platforms is that scrollbars do not
9826        take any width on Android, they're rendered on top of the content. Therefore
9827        each test that has a visible scrollbar does not just need a new pixel
9828        result, but will also need a new text result. This will be handled as part
9829        of a larger rebaselining process.
9830
9831        Will be exercised by every layout test that has a scrollbar.
9832
9833        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
9834        (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
9835        (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
9836        (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
9837        * platform/chromium/ScrollbarThemeChromiumAndroid.h:
9838        (ScrollbarThemeChromiumAndroid):
9839
98402012-09-24  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
9841
9842        [BlackBerry] Basic authentication challenge credentials for stored credentials again after restarting browser
9843        https://bugs.webkit.org/show_bug.cgi?id=96362
9844
9845        Reviewed by Rob Buis.
9846
9847        Fix a mistake of the commit 11fdc73c7c74bbd736ed4160248ff59636a01864
9848        Trunk has been changed during reviewing that patch.
9849
9850        No new tests, this is to correct a build error.
9851
9852        * platform/network/blackberry/CredentialBackingStore.cpp:
9853        (WebCore::CredentialBackingStore::getProtectionSpace):
9854
98552012-09-24  Dan Bernstein  <mitz@apple.com>
9856
9857        Reverted r129176, the fix for <http://webkit.org/b/97269>, because it introduced a
9858        discrepancy between line breaking and max width computation.
9859
9860        Rubber-stamped by Anders Carlsson.
9861
9862        * platform/graphics/mac/ComplexTextController.cpp:
9863        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
9864
98652012-09-24  Bo Liu  <boliu@chromium.org>
9866
9867        Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
9868        https://bugs.webkit.org/show_bug.cgi?id=97055
9869
9870        Reviewed by Adam Barth.
9871
9872        Relanding 128780, 128676, 128645. Was reverted in 128914 due to
9873        performance regression in Chromium.
9874
9875        New changes in addition to previously reverted patches:
9876
9877        Refactored CachedResource::requestResource, loadResource, and
9878        revalidateResource. Moved CachedResource::load method to end of
9879        requestResource so there is one place where load is called for all
9880        resources.
9881
9882        Added a enum parameter for requestResource and
9883        determineRevalidationPolicy so that FrameLoaderClient::allowImage call
9884        do not need to be called multiple times.
9885
9886        Removed CachedImage::load call in requestImage so it is not called
9887        twice.
9888
9889        Removed unnecessary Frame.h includes in CachedResource and
9890        CachedImage.
9891
9892        Removed dead load() method declaration in CachedImage.
9893
9894        Updated text expectation for two image-permissions tests to reflect
9895        the removed calls to allowImage.
9896
9897        Tests: fast/loader/display-image-unset-allows-cached-image-load.html
9898               fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html
9899               fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html
9900
9901        * WebCore.exp.in:
9902        * loader/FrameLoader.cpp:
9903        (WebCore::FrameLoader::didBeginDocument):
9904        * loader/SubresourceLoader.cpp:
9905        (WebCore::SubresourceLoader::willSendRequest):
9906        * loader/cache/CachedImage.cpp:
9907        * loader/cache/CachedImage.h:
9908        * loader/cache/CachedResource.cpp:
9909        (WebCore::CachedResource::didAddClient):
9910        * loader/cache/CachedResource.h:
9911        (WebCore):
9912        (WebCore::CachedResource::stillNeedsLoad):
9913        * loader/cache/CachedResourceLoader.cpp:
9914        (WebCore::CachedResourceLoader::CachedResourceLoader):
9915        (WebCore::CachedResourceLoader::requestImage):
9916        (WebCore::CachedResourceLoader::canRequest):
9917        (WebCore::CachedResourceLoader::requestResource):
9918        (WebCore::CachedResourceLoader::revalidateResource):
9919        (WebCore::CachedResourceLoader::loadResource):
9920        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
9921        (WebCore::CachedResourceLoader::setAutoLoadImages):
9922        (WebCore):
9923        (WebCore::CachedResourceLoader::setImagesEnabled):
9924        (WebCore::CachedResourceLoader::clientDefersImage):
9925        (WebCore::CachedResourceLoader::shouldDeferImageLoad):
9926        (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
9927        * loader/cache/CachedResourceLoader.h:
9928        (CachedResourceLoader):
9929        * page/Settings.cpp:
9930        (WebCore::setImageLoadingSettings):
9931        (WebCore::Settings::Settings):
9932        (WebCore::Settings::setLoadsImagesAutomatically):
9933        (WebCore::Settings::imageLoadingSettingsTimerFired):
9934        (WebCore::Settings::setImagesEnabled):
9935        * page/Settings.h:
9936        (Settings):
9937        * testing/InternalSettings.cpp:
9938        (WebCore::InternalSettings::Backup::Backup):
9939        (WebCore::InternalSettings::Backup::restoreTo):
9940        (WebCore::InternalSettings::setImagesEnabled):
9941        (WebCore):
9942        * testing/InternalSettings.h:
9943        (Backup):
9944        (InternalSettings):
9945        * testing/InternalSettings.idl:
9946
99472012-09-24  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
9948
9949        [GTK] Implement GraphicsLayer using Clutter
9950        https://bugs.webkit.org/show_bug.cgi?id=73767
9951
9952        Reviewed by Martin Robinson.
9953        
9954        This patch is needed for enabling Accelerated Compositing(Clutter backend) 
9955        with the patches submitted in bug 92045 and 91940.
9956        
9957        No new tests. This will be covered by pixel tests for Qt/GTK+ accelerated
9958        compositing and 3D transforms.
9959
9960        * GNUmakefile.list.am:
9961        * platform/clutter/GRefPtrClutter.cpp: Removed.
9962        * platform/clutter/GRefPtrClutter.h: Removed.
9963        * platform/graphics/clutter/PlatformClutterLayerClient.h: Added.
9964        (WebCore):
9965        (PlatformClutterLayerClient):
9966        (WebCore::PlatformClutterLayerClient::~PlatformClutterLayerClient):
9967        * platform/graphics/clutter/TransformationMatrixClutter.cpp: Added to convert CoglMatrix to 
9968        TransformationMatrix.
9969        (WebCore):
9970        (WebCore::TransformationMatrix::operator CoglMatrix):
9971        * platform/graphics/transforms/TransformationMatrix.h:
9972        (TransformationMatrix):
9973
99742012-09-24  David Grogan  <dgrogan@chromium.org>
9975
9976        Unprefix IndexedDB
9977        https://bugs.webkit.org/show_bug.cgi?id=96548
9978
9979        Reviewed by Adam Barth.
9980
9981        We are largely compatible with the FF implementation and the w3c test
9982        suite submitted by MS. The w3c test suite doesn't yet check
9983        for lack of prefix; this is mostly to signal to devs that we think our
9984        implementation is stable.
9985
9986        This patch uses the new FeatureObserver to get data about prefixed
9987        vs unprefixed usage.
9988
9989        Tests: storage/indexeddb/unprefix-workers.html
9990               storage/indexeddb/unprefix.html
9991
9992        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
9993        (WebCore::DOMWindowIndexedDatabase::indexedDB):
9994        * Modules/indexeddb/DOMWindowIndexedDatabase.h:
9995        (DOMWindowIndexedDatabase):
9996        * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
9997        * Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
9998        (WebCore::WorkerContextIndexedDatabase::indexedDB):
9999        * Modules/indexeddb/WorkerContextIndexedDatabase.h:
10000        (WorkerContextIndexedDatabase):
10001        * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
10002        * bindings/generic/RuntimeEnabledFeatures.h:
10003        Making the auxiliary objects RuntimeEnabled didn't make much sense as
10004        they are useless without the factory, so always enable them.
10005
10006        (WebCore::RuntimeEnabledFeatures::indexedDBEnabled):
10007        * bindings/scripts/CodeGeneratorGObject.pm:
10008        (SkipAttribute):
10009        * page/FeatureObserver.h:
10010
100112012-09-24  Andrey Adaikin  <aandrey@chromium.org>
10012
10013        Web Inspector: [WebGL] First step towards 2D canvas instrumentation in injected script
10014        https://bugs.webkit.org/show_bug.cgi?id=96746
10015
10016        Reviewed by Pavel Feldman.
10017
10018        First step towards the 2D canvas instrumentation from the WebGL injected script module side.
10019        We trace and save all calls that affect the 2D canvas context state and it's resources (Gradient and Pattern)
10020        so that we could replay the context and resources states later.
10021        The 2D canvas context state consists of:
10022        - current transformation matrix
10023        - current default path
10024        - current clipping region (affected by the "clip" command)
10025        - current values of the context attributes (like strokeStyle, fillStyle, etc.)
10026        - a stack of saved drawing states (affected by the "save" and "restore" commands)
10027
10028        * inspector/InjectedScriptCanvasModuleSource.js:
10029        (.):
10030
100312012-09-24  Andrey Adaikin  <aandrey@chromium.org>
10032
10033        Web Inspector: [TextEditor] conditional breakpoint popup not showing up the first time
10034        https://bugs.webkit.org/show_bug.cgi?id=97442
10035
10036        Reviewed by Pavel Feldman.
10037
10038        1) The conditional breakpoint popup may not show up the first time we click on the gutter.
10039        This was the case because the popup decoration element would be deleted from the line while
10040        it was being highlighted and appended afterwards. Now we do not remove decorations from the
10041        DOM while highlighting.
10042
10043        2) Also the popup will close itself on any mouse click event, even if it's targeted to the
10044        input box itself. This was due to pointer-events: none; CSS style for the parent element.
10045        Now we just override this style for the input box.
10046
10047        * inspector/front-end/DefaultTextEditor.js:
10048        (WebInspector.TextEditorMainPanel.prototype._paintLine):
10049        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
10050        (WebInspector.TextEditorMainPanel.prototype._insertTextNodeBefore):
10051        * inspector/front-end/inspector.css:
10052        (.source-frame-breakpoint-condition):
10053
100542012-09-24  Andrey Adaikin  <aandrey@chromium.org>
10055
10056        Web Inspector: [Canvas] set CanvasAgent in InstrumentingAgents upon calling enable command
10057        https://bugs.webkit.org/show_bug.cgi?id=97331
10058
10059        Reviewed by Yury Semikhatsky.
10060
10061        We should set CanvasAgent in InstrumentingAgents from enable() command and remove from disable(), instead of doing this in constructor and destructor.
10062
10063        * inspector/InspectorCanvasAgent.cpp:
10064        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
10065        (WebCore::InspectorCanvasAgent::~InspectorCanvasAgent):
10066        (WebCore::InspectorCanvasAgent::restore):
10067        (WebCore::InspectorCanvasAgent::enable):
10068        (WebCore::InspectorCanvasAgent::disable):
10069        * inspector/InspectorCanvasAgent.h:
10070        (InspectorCanvasAgent):
10071        * inspector/InspectorCanvasInstrumentation.h:
10072        (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
10073        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
10074
100752012-09-24  Patrick Gansterer  <paroga@webkit.org>
10076
10077        Remove remaining WTF_DEPRECATED_STRING_OPERATORS from cpp files
10078        https://bugs.webkit.org/show_bug.cgi?id=97412
10079
10080        Reviewed by Adam Barth.
10081
10082        * css/StylePropertySet.cpp: Removed useless define.
10083
100842012-09-20  Emil A Eklund  <eae@chromium.org>
10085
10086        snapToSize rounds the incorrectly for negative locations
10087        https://bugs.webkit.org/show_bug.cgi?id=97265
10088
10089        Reviewed by Eric Seidel.
10090
10091        Change snapSizeToPixel to preserve sign for location which
10092        affects rounding.
10093
10094        Test: fast/sub-pixel/snap-negative-location.html
10095
10096        * platform/FractionalLayoutUnit.h:
10097        (WebCore::snapSizeToPixel):
10098
100992012-09-24  Jonathan Liu  <net147@gmail.com>
10100
10101        Use unsigned char for bitfield instead of unsigned.
10102        https://bugs.webkit.org/show_bug.cgi?id=97447
10103
10104        Reviewed by Andreas Kling.
10105
10106        Not all compilers will pad an unsigned bitfield to the smallest size.
10107        Use unsigned char instead of unsigned to reduce padding for compilers
10108        that pad to the underlying type.
10109
10110        No new tests. There is already a compile-time assertion.
10111
10112        * css/CSSRule.cpp:
10113        (SameSizeAsCSSRule):
10114        * css/CSSRule.h:
10115        (CSSRule):
10116
101172012-09-24  Peter Rybin  <peter.rybin@gmail.com>
10118
10119        Web Inspector: don't allow exception in front-end when expanding function scope
10120        https://bugs.webkit.org/show_bug.cgi?id=97346
10121
10122        Reviewed by Yury Semikhatsky.
10123
10124        A missing guard condition is added.
10125
10126        * inspector/front-end/ObjectPropertiesSection.js:
10127        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
10128        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
10129
101302012-09-24  Arvid Nilsson  <anilsson@rim.com>
10131
10132        [BlackBerry] Add cookie database API
10133        https://bugs.webkit.org/show_bug.cgi?id=97102
10134
10135        Reviewed by Antonio Gomes.
10136
10137        Add a CookieManager method that takes a list of strings to parse
10138        instead of just one string. Expose CookieParser::parseOneCookie.
10139
10140        Reviewed internally by Otto D. Cheung.
10141
10142        No change in behavior, no new tests.
10143
10144        * platform/blackberry/CookieManager.cpp:
10145        (WebCore::CookieManager::setCookies):
10146        (WebCore):
10147        * platform/blackberry/CookieManager.h:
10148        * platform/blackberry/CookieParser.cpp:
10149        (WebCore::CookieParser::parseOneCookie):
10150        (WebCore):
10151        * platform/blackberry/CookieParser.h:
10152        (CookieParser):
10153
101542012-09-24  Vsevolod Vlasov  <vsevik@chromium.org>
10155
10156        Web Inspector: Open resource dialog has too many false positive matches.
10157        https://bugs.webkit.org/show_bug.cgi?id=97332
10158
10159        Reviewed by Alexander Pavlov.
10160
10161        Improved open resource dialog filtering to make the amount of false
10162        positive search results less.
10163
10164        * inspector/front-end/FilteredItemSelectionDialog.js:
10165        (WebInspector.FilteredItemSelectionDialog.prototype._innerCreateSearchRegExp):
10166        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItem.get var):
10167        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItem):
10168
101692012-09-24  Andrey Adaikin  <aandrey@chromium.org>
10170
10171        Web Inspector: [Canvas] support 2D canvas instrumentation from the inspector C++ code
10172        https://bugs.webkit.org/show_bug.cgi?id=97203
10173
10174        Reviewed by Yury Semikhatsky.
10175
10176        Implements wrapping a 2D canvas context through the injected canvas module script facility.
10177
10178        * bindings/js/JSHTMLCanvasElementCustom.cpp:
10179        (WebCore::JSHTMLCanvasElement::getContext):
10180        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
10181        (WebCore::V8HTMLCanvasElement::getContextCallback):
10182        * inspector/InjectedScriptCanvasModule.cpp:
10183        (WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
10184        (WebCore):
10185        (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
10186        (WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
10187        * inspector/InjectedScriptCanvasModule.h:
10188        (InjectedScriptCanvasModule):
10189        * inspector/InspectorCanvasAgent.cpp:
10190        (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
10191        (WebCore):
10192        * inspector/InspectorCanvasAgent.h:
10193        (InspectorCanvasAgent):
10194        * inspector/InspectorCanvasInstrumentation.h:
10195        (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
10196        (WebCore):
10197        * inspector/InspectorInstrumentation.h:
10198        (InspectorInstrumentation):
10199
102002012-09-24  Pavel Feldman  <pfeldman@chromium.org>
10201
10202        Web Inspector:EXC_BAD_ACCESS upon closing page with node highlighted
10203        https://bugs.webkit.org/show_bug.cgi?id=97446
10204
10205        Reviewed by Alexander Pavlov.
10206
10207        Added 0 check on frame view.
10208
10209        * inspector/InspectorOverlay.cpp:
10210        (WebCore::InspectorOverlay::update):
10211
102122012-09-21  Alexander Pavlov  <apavlov@chromium.org>
10213
10214        Web Inspector: [REGRESSION] Cmd-Shift-C doesn't enable element inspection mode when inspector hidden
10215        https://bugs.webkit.org/show_bug.cgi?id=97249
10216
10217        Reviewed by Yury Semikhatsky.
10218
10219        Fix regression from r125871.
10220
10221        * inspector/front-end/InspectorFrontendAPI.js:
10222        (InspectorFrontendAPI.enterInspectElementMode):
10223        * inspector/front-end/inspector.js:
10224        (WebInspector._createGlobalStatusBarItems):
10225        (WebInspector.documentKeyDown):
10226
102272012-09-24  Alexander Pavlov  <apavlov@chromium.org>
10228
10229        Web Inspector: Disable persistence of master switches in the "Overrides" settings tab
10230        https://bugs.webkit.org/show_bug.cgi?id=97440
10231
10232        Reviewed by Yury Semikhatsky.
10233
10234        Disables enforcement of device metrics, geolocation, and device orientation overrides on Web Inspector start.
10235
10236        * inspector/InspectorPageAgent.cpp:
10237        (WebCore::InspectorPageAgent::restore):
10238        * inspector/front-end/SettingsScreen.js:
10239        (WebInspector.UserAgentSettingsTab.prototype._onMetricsCheckboxClicked):
10240        (WebInspector.UserAgentSettingsTab.prototype._onGeolocationOverrideCheckboxClicked):
10241        (WebInspector.UserAgentSettingsTab.prototype._onDeviceOrientationOverrideCheckboxClicked):
10242        * inspector/front-end/UserAgentSupport.js:
10243        (WebInspector.UserAgentSupport):
10244        (WebInspector.UserAgentSupport.prototype.toggleDeviceMetricsOverride):
10245        (WebInspector.UserAgentSupport.prototype.toggleGeolocationPositionOverride):
10246        (WebInspector.UserAgentSupport.prototype.toggleDeviceOrientationOverride):
10247        * inspector/front-end/externs.js:
10248
102492012-09-24  Vivek Galatage  <vivekgalatage@gmail.com>
10250
10251        Web Inspector: implement testing harness for pure protocol tests.
10252        https://bugs.webkit.org/show_bug.cgi?id=90675
10253
10254        Reviewed by Yury Semikhatsky.
10255
10256        Implementing the testing harness as the APIs of Internals object not
10257        only reduced platform specific patching of DRTs but also minimized the
10258        the effort required to open up the new dummy inspector Frontend. 
10259        
10260        The openDummyInspectorFrontend method will return the handle to newly 
10261        created DOMWindow. This DOMWindow object can be utilized inside the test 
10262        case to communicate using postMessage WebAPI.
10263        
10264        The newly created DOMWindow will host the protocol-test.html which
10265        will seed the necessary JS libraries to communicate with the
10266        InspectorBackend.
10267
10268        Test: inspector-protocol/css-getSupportedCSSProperties.html
10269
10270        * WebCore.exp.in:
10271        * WebCore.gypi:
10272        * inspector/InspectorClient.h:
10273        (InspectorClient):
10274        * testing/Internals.cpp:
10275        (InspectorFrontendClientDummy):
10276        (WebCore::InspectorFrontendClientDummy::~InspectorFrontendClientDummy):
10277        (WebCore):
10278        (WebCore::InspectorFrontendClientDummy::InspectorFrontendClientDummy):
10279        (InspectorFrontendChannelDummy):
10280        (WebCore::InspectorFrontendChannelDummy::~InspectorFrontendChannelDummy):
10281        (WebCore::InspectorFrontendChannelDummy::InspectorFrontendChannelDummy):
10282        (WebCore::InspectorFrontendChannelDummy::sendMessageToFrontend):
10283        (WebCore::Internals::consoleMessageArgumentCounts):
10284        (WebCore::Internals::openDummyInspectorFrontend):
10285        (WebCore::Internals::closeDummyInspectorFrontend):
10286        * testing/Internals.h:
10287        (WebCore):
10288        (Internals):
10289        * testing/Internals.idl:
10290
102912012-09-24  Keishi Hattori  <keishi@webkit.org>
10292
10293        REGRESSION(r127727): Calendar picker focus doesn't loop in calendar-picker.html
10294        https://bugs.webkit.org/show_bug.cgi?id=97183
10295
10296        Reviewed by Kent Tamura.
10297
10298        Fixing bug calendar-picker.html. The page popup behaves fine because
10299        this code is only necessary in calendar-picker.html where the focus can
10300        move outside of the picker because we are just using an iframe.
10301
10302        No new tests. Added tests to calendar-picker-key-operations.html.
10303
10304        * Resources/pagepopups/calendarPicker.js:
10305        (YearMonthController.prototype.attachTo):
10306        (CalendarPicker.prototype._handleBodyKeyDown):
10307
103082012-09-24  Andrey Kosyakov  <caseq@chromium.org>
10309
10310        Unreviewed follow-up to r129336 -- fixed closure compiler warnings.
10311
10312        * inspector/front-end/HAREntry.js:
10313        * inspector/front-end/TimelineModel.js:
10314
103152012-09-24  Andrey Adaikin  <aandrey@chromium.org>
10316
10317        Web Inspector: [TextEditor] Line numbers out of sync after closing breakpoint condition editor
10318        https://bugs.webkit.org/show_bug.cgi?id=96510
10319
10320        Reviewed by Vsevolod Vlasov.
10321
10322        Sync line heights on adding/removing decorations.
10323
10324        * inspector/front-end/DefaultTextEditor.js:
10325        (WebInspector.TextEditorGutterChunk):
10326        (WebInspector.TextEditorGutterChunk.prototype.addDecoration):
10327        (WebInspector.TextEditorGutterChunk.prototype.removeDecoration):
10328        (WebInspector.TextEditorGutterChunk.prototype.set expanded):
10329        (WebInspector.TextEditorGutterChunk.prototype.get height):
10330        (WebInspector.TextEditorGutterChunk.prototype._createRow):
10331        (WebInspector.TextEditorMainChunk.prototype.addDecoration):
10332        (WebInspector.TextEditorMainChunk.prototype.removeDecoration):
10333        (WebInspector.TextEditorMainChunk.prototype.removeAllDecorations):
10334
103352012-09-21  Andrey Kosyakov  <caseq@chromium.org>
10336
10337        Web Inspector: support saving HAR with resources content
10338        https://bugs.webkit.org/show_bug.cgi?id=97341
10339
10340        Reviewed by Vsevolod Vlasov.
10341
10342        - add WebInspector.HARWriter that writes HAR with content to a stream;
10343        - replace Save all as HAR with Save all with Content as HAR in network's panel context menu;
10344        - remove entries for copying/saving of individual request items to reduce clutter in context menu;
10345        - a drive-by fix of an exception when invoking context menu not on a network item;
10346
10347        Test: http/tests/inspector/network/har-content.html
10348
10349        * English.lproj/localizedStrings.js:
10350        * inspector/front-end/FileUtils.js:
10351        * inspector/front-end/HAREntry.js:
10352        (WebInspector.HAREntry.prototype._buildPostData):
10353        (WebInspector.HARLog.prototype.build):
10354        (WebInspector.HARLog.prototype._creator):
10355        (WebInspector.HARWriter):
10356        (WebInspector.HARWriter.prototype.write):
10357        (WebInspector.HARWriter.prototype._onContentAvailable):
10358        (WebInspector.HARWriter.prototype._beginWrite):
10359        (WebInspector.HARWriter.prototype._writeNextChunk):
10360        * inspector/front-end/NetworkPanel.js:
10361        (WebInspector.NetworkLogView.prototype.get statusBarItems):
10362        (WebInspector.NetworkLogView.prototype._createStatusBarItems):
10363        (WebInspector.NetworkLogView.prototype._contextMenu):
10364        (WebInspector.NetworkLogView.prototype._exportAll.openCallback):
10365        (WebInspector.NetworkLogView.prototype._exportAll):
10366
103672012-09-24  Nico Weber  <thakis@chromium.org>
10368
10369        [chromium] Remove BitLockerSkia. It's apparently not used.
10370        https://bugs.webkit.org/show_bug.cgi?id=97434
10371
10372        Reviewed by Kent Tamura.
10373
10374        * platform/graphics/skia/BitLockerSkia.cpp: Removed.
10375        * platform/graphics/skia/BitLockerSkia.h: Removed.
10376
103772012-09-24  Matt Falkenhagen  <falken@chromium.org>
10378
10379        Skeleton implementation of dialog.showModal()
10380        https://bugs.webkit.org/show_bug.cgi?id=97425
10381
10382        Reviewed by Kent Tamura.
10383
10384        This adds a basic implementation of showModal(), so it later can be
10385        used to test the top layer, once it is implemented. The main features
10386        of showModal(), modality and the top layer, are not yet implemented.
10387
10388        Test: fast/dom/HTMLDialogElement/dialog-show-modal.html
10389
10390        * html/HTMLDialogElement.cpp:
10391        (WebCore::HTMLDialogElement::showModal): The same as show(), but throws an error in the cases specified in the spec.
10392        (WebCore):
10393        * html/HTMLDialogElement.h:
10394        (HTMLDialogElement):
10395        * html/HTMLDialogElement.idl:
10396
103972012-09-24  Ryuan Choi  <ryuan.choi@samsung.com>
10398
10399        [EFL] Regression after r129328
10400        https://bugs.webkit.org/show_bug.cgi?id=97429
10401
10402        Unreviewed, rolling out r129328.
10403
10404        * platform/efl/RenderThemeEfl.cpp:
10405        (WebCore::RenderTheme::themeForPage):
10406
104072012-09-23  Ryuan Choi  <ryuan.choi@samsung.com>
10408
10409        [EFL] Duplicated RenderThemeEfl creation for same page
10410        https://bugs.webkit.org/show_bug.cgi?id=88391
10411
10412        Reviewed by Gyuyoung Kim.
10413
10414        Other ports return one or two RenderTheme regardless of page.
10415        But, WebKit/Efl can create different theme for each page and
10416        themeForPage creates new RenderTheme whenever it is called with page.
10417        So more than one RenderTheme can be created for a page.
10418
10419        This patches checks whether page already has RenderTheme not to create new
10420        RenderTheme for same page.
10421
10422        * platform/efl/RenderThemeEfl.cpp:
10423        (WebCore::RenderTheme::themeForPage):
10424
104252012-09-23  Keishi Hattori  <keishi@webkit.org>
10426
10427        Add suggestionPicker to CalendarPicker
10428        https://bugs.webkit.org/show_bug.cgi?id=97201
10429
10430        Reviewed by Kent Tamura.
10431
10432        This adds the suggestionPicker to CalendarPicker. It is not available yet as a datalist UI but it can be used inside ManualTests/forms/calendar-picker.html.
10433
10434        No new tests. Suggestion Picker can be tested in ManualTests/forms/calendar-picker.html.
10435
10436        * Resources/pagepopups/calendarPicker.js:
10437        (initialize):
10438        (openSuggestionPicker):
10439        * Resources/pagepopups/pickerCommon.js:
10440        (enclosingNodeOrSelfWithClass):
10441        * Resources/pagepopups/suggestionPicker.css: Added.
10442        (.suggestion-list):
10443        (.suggestion-list-entry):
10444        (.suggestion-list-entry:focus):
10445        (.suggestion-list-entry:focus .label):
10446        (.suggestion-list-entry .content):
10447        (.suggestion-list-entry .title):
10448        (.suggestion-list-entry .label):
10449        (.measuring-width .suggestion-list-entry .label):
10450        (.suggestion-list .separator):
10451        * Resources/pagepopups/suggestionPicker.js: Added.
10452        (SuggestionPicker):
10453        (SuggestionPicker.validateConfig):
10454        (SuggestionPicker.prototype.cleanup):
10455        (SuggestionPicker.prototype._setColors): Creates css rules that sets highlight colors.
10456        (SuggestionPicker.prototype._createSuggestionEntryElement): Creates an entry that when selected submits the value.
10457        (SuggestionPicker.prototype._createActionEntryElement): Creates an entry that causes an action. (e.x. "Other...")
10458        (SuggestionPicker.prototype._measureMaxContentWidth): Temporarily left align everything to measure the width.
10459        (SuggestionPicker.prototype._fixWindowSize):
10460        (SuggestionPicker.prototype._layout):
10461        (SuggestionPicker.prototype.selectEntry):
10462        (SuggestionPicker.prototype._handleEntryClick):
10463        (SuggestionPicker.prototype._findFirstVisibleEntry):
10464        (SuggestionPicker.prototype._findLastVisibleEntry):
10465        (SuggestionPicker.prototype._handleBodyKeyDown):
10466        (SuggestionPicker.prototype._handleEntryMouseOver):
10467        (SuggestionPicker.prototype._handleMouseOut):
10468        * WebCore.gyp/WebCore.gyp:
10469
104702012-09-23  Andreas Kling  <kling@webkit.org>
10471
10472        REGRESSION(r128239): Mutable ElementAttributeData leak their Attribute vectors.
10473        <http://webkit.org/b/97423>
10474
10475        Reviewed by Anders Carlsson.
10476
10477        r128239 added a WTF::deleteOwnedPtr() override for ElementAttributeData*, but ElementAttributeData is
10478        a ref-counted object. Fixed this by overriding deref() instead to call the appropriate subclass destructor.
10479
10480        * dom/ElementAttributeData.h:
10481        (WebCore::ElementAttributeData::deref):
10482
104832012-09-23  Byungwoo Lee  <bw80.lee@gmail.com>
10484
10485        Fix build warnings : -Wunused-parameter, -Wparentheses, -Wuninitialized.
10486        https://bugs.webkit.org/show_bug.cgi?id=97306
10487
10488        Reviewed by Benjamin Poulain.
10489
10490        Fix build warning about -Wunused-parameter on ImageBufferCairo.cpp,
10491        ImageDecoder.h by using ASSERT_UNUSED() macro.
10492
10493        * platform/graphics/cairo/ImageBufferCairo.cpp:
10494        (WebCore::encodeImage):
10495        * platform/image-decoders/ImageDecoder.h:
10496        (WebCore::ImageDecoder::rgbColorProfile):
10497        (WebCore::ImageDecoder::inputDeviceColorProfile):
10498
104992012-09-23  Andreas Kling  <kling@webkit.org>
10500
10501        Enable ElementAttributeData sharing for non-HTML elements.
10502        <http://webkit.org/b/97413>
10503
10504        Reviewed by Anders Carlsson.
10505
10506        Use the whole qualified tag name when creating the ElementAttributeData cache key
10507        instead of just the localName(). This allows sharing and caching of attribute data
10508        for non-HTML elements and makes the code a little cleaner.
10509
10510        * dom/Element.cpp:
10511        (WebCore::Element::parserSetAttributes):
10512
10513            Enable the ElementAttributeData sharing path for non-HTML elements.
10514
10515        * dom/ElementAttributeData.h:
10516
10517            Make immutableAttributeArray() public so Document can call it instead of getting
10518            the raw data address from a const_cast'ed attributeItem(0).
10519
10520        * dom/Document.cpp:
10521        (WebCore::ImmutableAttributeDataCacheKey::ImmutableAttributeDataCacheKey):
10522        (WebCore::ImmutableAttributeDataCacheKey::operator!=):
10523        (WebCore::ImmutableAttributeDataCacheKey::hash):
10524        (ImmutableAttributeDataCacheKey):
10525        (WebCore::ImmutableAttributeDataCacheEntry::ImmutableAttributeDataCacheEntry):
10526        (ImmutableAttributeDataCacheEntry):
10527        (WebCore::Document::cachedImmutableAttributeData):
10528
10529            Let the immutable attribute data cache use a QualifiedName/attributes key
10530            instead of the AtomicString/attributes we were using before. We still grab the
10531            existingHash() from the QualifiedName::localName() and use that for the actual
10532            HashMap key.
10533
105342012-09-23  Mike West  <mkwst@chromium.org>
10535
10536        Measure the usage of the "X-WebKit-CSP" header in the hopes of dropping the prefix completely.
10537        https://bugs.webkit.org/show_bug.cgi?id=97408
10538
10539        Reviewed by Adam Barth.
10540
10541        We plan on landing the unprefixed header in webkit.org/b/96765 once the
10542        spec moves to CR. Though we plan to use it for experimentation in the
10543        near future, we'll want to drop the prefixed header completely at some
10544        point in the future. Starting to measure its usage now will give us a
10545        good baseline when we start contemplating that decision.
10546
10547        No new functionality, so no new tests.
10548
10549        * page/ContentSecurityPolicy.cpp:
10550        (WebCore::ContentSecurityPolicy::didReceiveHeader):
10551        * page/FeatureObserver.h:
10552
105532012-09-22  Dominic Mazzoni  <dmazzoni@google.com>
10554
10555        AX: Layout tests would be easier to write if AccessibilityController could find an element by id
10556        https://bugs.webkit.org/show_bug.cgi?id=97301
10557
10558        Reviewed by Chris Fleizach.
10559
10560        Add a method to get the DOM "id" attribute from an accessible object, only for layout tests.
10561
10562        Makes existing test more cross-platform:
10563        Tests: accessibility/aria-hidden-with-elements.html
10564
10565        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
10566        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
10567
105682012-09-22  Thierry Reding  <thierry.reding@avionic-design.de>
10569
10570        [GTK] Build is broken with GLib Unicode backend
10571        https://bugs.webkit.org/show_bug.cgi?id=97308.
10572
10573        Reviewed by Carlos Garcia Campos.
10574
10575        The TextBreakIteratorGtk implementation uses ubrk_close() to delete
10576        the iterator. However that function is ICU specific and not declared
10577        when using the GLib backend. Instead the iterator can simply be freed
10578        using the delete operator.
10579
10580        This commit is based on work by Martin Schlemmer who posted a fix for
10581        this here:
10582
10583            http://permalink.gmane.org/gmane.os.opendarwin.webkit.gtk/1210
10584
10585        No new tests.
10586
10587        * platform/text/gtk/TextBreakIteratorGtk.cpp:
10588        (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator):
10589        Free iterator using delete instead of ubrk_close().
10590
105912012-09-21  Ami Fischman  <fischman@chromium.org>
10592
10593        HTMLMediaElement isn't garbage collected between document reloads
10594        https://bugs.webkit.org/show_bug.cgi?id=97020
10595
10596        Reviewed by Eric Carlson.
10597
10598        JS-created (as opposed to DOM-created) Audio nodes never got collected, because they
10599        appear to always hasPendingActivity(), because m_playing is never set to false.
10600
10601        Manual test added: ManualTests/audio-freed-during-reload.html
10602
10603        * html/HTMLMediaElement.cpp:
10604        (WebCore::HTMLMediaElement::stop): set m_playing = false; explicitly.
10605
106062012-09-21  Simon Fraser  <simon.fraser@apple.com>
10607
10608        RenderMarquee causes ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) : WebCore::FloatRect WebCore::RenderGeometryMap::absoluteRect(const WebCore::FloatRect &) const
10609        https://bugs.webkit.org/show_bug.cgi?id=92464
10610
10611        Reviewed by Sam Weinig.
10612
10613        Marquees could cause an updateCompositingLayersAfterScroll() to be called when
10614        we're in the middle of updating layer positions. updateCompositingLayersAfterScroll()
10615        does a full RenderLayer tree walk, but its use of RenderGeomeryMap reveals that
10616        it's using layers whose positions haven't been updated yet.
10617        
10618        Fix by avoiding the updateCompositingLayersAfterScroll() if we're in the process
10619        of updating a marquee when updating layer positions. We'll do a compositing update
10620        soon anyway.
10621
10622        Tested by fast/events/tabindex-focus-blur-all.html
10623
10624        * rendering/RenderLayer.cpp:
10625        (WebCore::RenderLayer::RenderLayer):
10626        (WebCore::RenderLayer::updateLayerPositions):
10627        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
10628        (WebCore::RenderLayer::scrollTo):
10629        * rendering/RenderLayer.h:
10630        (RenderLayer):
10631
106322012-09-21  Adam Klein  <adamk@chromium.org>
10633
10634        Remove bogus assertions from ChildListMutationScope
10635        https://bugs.webkit.org/show_bug.cgi?id=97372
10636
10637        Reviewed by Ryosuke Niwa.
10638
10639        Some asserts (and their accompanying comment) were trying to enforce
10640        proper usage of ChildListMutationScope from WebCore, but in the
10641        presence of MutationEvents they could fail due to arbitrary script
10642        execution.
10643
10644        This change gets rid of those asserts and adds tests exercising
10645        the (pre-existing) codepaths for handling these out-of-order cases.
10646        Without this patch, these tests ASSERT in debug builds.
10647
10648        Tests: fast/mutation/added-out-of-order.html
10649               fast/mutation/removed-out-of-order.html
10650
10651        * dom/ChildListMutationScope.cpp:
10652        (WebCore::ChildListMutationAccumulator::childAdded):
10653        (WebCore::ChildListMutationAccumulator::willRemoveChild):
10654        * dom/ChildListMutationScope.h:
10655        (WebCore):
10656
106572012-09-21  Dan Bernstein  <mitz@apple.com>
10658
10659        REGRESSION (r129176): Incorrect line breaking when kerning occurs between a space and the following character
10660        https://bugs.webkit.org/show_bug.cgi?id=97377
10661
10662        Reviewed by Enrica Casucci.
10663
10664        Test: fast/text/kerning-with-TextLayout.html
10665
10666        When kerning is enabled, the last character in a word may have its advance shortened because
10667        of its trailing space. To account for that, words are measured along with the trailing space,
10668        then the width of a space is subtracted from the result. This doesn’t work when the trailing
10669        space itself has its advance shortened due to the character following it, which can happen
10670        when using the TextLayout optimization. However, when the optimization is used, the advance
10671        of the last character of the word is already adjusted for the trailing space, so there is no
10672        need to measure with that space and subtract its advance.
10673
10674        * rendering/RenderBlockLineLayout.cpp:
10675        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to not use the trailingSpaceWidth
10676        mechanism when TextLayout is being used.
10677
106782012-09-21  Adam Klein  <adamk@chromium.org>
10679
10680        Simplify and optimize ChildListMutationScope
10681        https://bugs.webkit.org/show_bug.cgi?id=97352
10682
10683        Reviewed by Ryosuke Niwa.
10684
10685        ChildListMutationScope is one of the most complicated bits of
10686        MutationObserver implementation. This patch aims to simplify it for
10687        clarity and improve its performance (mostly by just doing less).
10688
10689        The big change is to remove the MutationAccumulatorRouter class,
10690        replacing it with lifetime-management logic in ChildListMutationAccumulator
10691        ChildListMutationScope is expected to call getOrCreate() in
10692        its constructor, and each scope holds a RefPtr to the accumulator.
10693        When the last scope holding such a RefPtr is destroyed,
10694        ChildListMutationAccumulator's destructor enqueues the accumulated record.
10695
10696        This greatly reduces the number of lines of code, and condenses
10697        two HashMaps into one. It also reduces hash lookups, which now
10698        occur only on scope creation and when the refcount for a given
10699        accumulator reaches 0 (previously, each childAdded and willRemoveChild
10700        call could result in two hash lookups each).
10701
10702        There are some minor changes as well: the ChildListMutationAccumulator::clear()
10703        method is gone, as it was doing more work than necessary;
10704        DEFINE_STATIC_LOCAL is now used instead of hand-rolled static-management
10705        code; ChildListMutationAccumulator::m_lastAdded is no longer a RefPtr, since it
10706        always points at a Node that's already being ref'd by the accumulator.
10707        Also various minor syntactic cleanups.
10708
10709        No new tests, no change in behavior.
10710
10711        * dom/ChildListMutationScope.cpp:
10712        (WebCore::accumulatorMap): Reduced two maps to one, and manage its lifetime with DEFINE_STATIC_LOCAL.
10713        (WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator): Remove unnecessary call to clear() (which itself has been removed).
10714        (WebCore::ChildListMutationAccumulator::~ChildListMutationAccumulator): Enqueue record if not empty at destruction, and have the accumulator
10715        remove itself from the map.
10716        (WebCore::ChildListMutationAccumulator::getOrCreate): Replaces half of MutationAccumulatorRouter's job.
10717        (WebCore::ChildListMutationAccumulator::childAdded): Minor RefPtr usage improvements.
10718        (WebCore::ChildListMutationAccumulator::isRemovedNodeInOrder): Simplify RefPtr syntax.
10719        (WebCore::ChildListMutationAccumulator::willRemoveChild): Minor RefPtr usage improvements.
10720        (WebCore::ChildListMutationAccumulator::enqueueMutationRecord): Replace call to clear() with clearing m_lastAdded,
10721        since it's the only bit not cleared by the MutationRecord creation call. Also remove
10722        isEmpty check and replace with asserts now that it's a private method.
10723        (WebCore::ChildListMutationAccumulator::isEmpty): Added more assertions about emptiness.
10724        * dom/ChildListMutationScope.h:
10725        (WebCore):
10726        (ChildListMutationAccumulator): Extract the inner class to make everything easier to read.
10727        (WebCore::ChildListMutationScope::ChildListMutationScope): Store m_accumulator rather than m_target.
10728        (WebCore::ChildListMutationScope::~ChildListMutationScope): ditto
10729        (WebCore::ChildListMutationScope::childAdded): ditto
10730        (WebCore::ChildListMutationScope::willRemoveChild): ditto
10731        (ChildListMutationScope):
10732        * html/HTMLElement.cpp: Remove unused ChildListMutationScope.h #include.
10733
107342012-09-21  Chris Rogers  <crogers@google.com>
10735
10736        BiquadFilterNode must take audio-rate parameter changes into account
10737        https://bugs.webkit.org/show_bug.cgi?id=97369
10738
10739        Reviewed by Kenneth Russell.
10740
10741        BiquadFilterNode is currently ignoring any timeline or audio-rate changes to its parameters.
10742        We now check if any of its parameters have timeline or audio-rate changes and, if so, take
10743        them into account.  Otherwise, we use ordinary parameter smoothing/de-zippering which is
10744        the case when the parameters are adjusted, for example, from a knob or slider in the UI.
10745
10746        * Modules/webaudio/BiquadDSPKernel.cpp:
10747        (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
10748        * Modules/webaudio/BiquadProcessor.cpp:
10749        (WebCore::BiquadProcessor::checkForDirtyCoefficients):
10750        * Modules/webaudio/BiquadProcessor.h:
10751        (WebCore::BiquadProcessor::hasSampleAccurateValues):
10752        (BiquadProcessor):
10753
107542012-09-21  Brandon Jones  <bajones@google.com>
10755
10756        Add support for OES_vertex_array_object in chromium
10757        https://bugs.webkit.org/show_bug.cgi?id=96578
10758
10759        Reviewed by Kenneth Russell.
10760
10761        Adding basic reference counting to WebGLBuffer objects to satisfy spec requirements
10762        for the OES_vertex_array_object extension. Added code to allow calls to the
10763        OES_vertex_array_object extension to interface properly with the chromium WebGL
10764        implementation.
10765
10766        Test: fast/canvas/webgl/oes-vertex-array-object.html
10767
10768        * html/canvas/WebGLRenderingContext.cpp:
10769        (WebCore):
10770        (WebCore::WebGLRenderingContext::deleteBuffer):
10771        (WebCore::WebGLRenderingContext::vertexAttribPointer):
10772        * html/canvas/WebGLVertexArrayObjectOES.cpp:
10773        (WebCore::WebGLVertexArrayObjectOES::setElementArrayBuffer):
10774        (WebCore):
10775        * html/canvas/WebGLVertexArrayObjectOES.h:
10776        (WebGLVertexArrayObjectOES):
10777        (WebCore::WebGLVertexArrayObjectOES::getVertexAttribStateSize):
10778        * platform/chromium/support/Extensions3DChromium.cpp:
10779        (WebCore::Extensions3DChromium::createVertexArrayOES):
10780        (WebCore::Extensions3DChromium::deleteVertexArrayOES):
10781        (WebCore::Extensions3DChromium::isVertexArrayOES):
10782        (WebCore::Extensions3DChromium::bindVertexArrayOES):
10783
107842012-09-21  Kenichi Ishibashi  <bashi@chromium.org>
10785
10786        [Chromium] Use OpenTypeVerticalData on Linux
10787        https://bugs.webkit.org/show_bug.cgi?id=97277
10788
10789        Reviewed by Tony Chang.
10790
10791        Remove HarfBuzz dependency from GlyphPageTreeNodeSkia. Use OpenTypeVerticalData instead.
10792
10793        No new tests. Rebaselined existing tests.
10794
10795        * WebCore.gyp/WebCore.gyp: Added OpenTypeTypes.h and OpenTypeVerticalData.(cpp|h) for linux and android.
10796        * platform/graphics/FontCache.cpp:
10797        Inserted a space between > and > in typedef of FontVerticalDataCache so that making some compilers happy.
10798        (WebCore):
10799        * platform/graphics/SimpleFontData.h:
10800        (SimpleFontData): Moved declaration of m_verticalData to avoid compile warnings.
10801        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
10802        (WebCore):
10803        (WebCore::FontPlatformData::verticalData): Added.
10804        (WebCore::FontPlatformData::openTypeTable): Added.
10805        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
10806        (WebCore):
10807        (FontPlatformData):
10808        * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Removed substituteWithVerticalGlyphs().
10809        (WebCore::GlyphPage::fill):
10810
108112012-09-21  Jeremy Apthorp  <jeremya@chromium.org>
10812
10813        Crash in WebCore::Document::fullScreenChangeDelayTimerFired
10814        https://bugs.webkit.org/show_bug.cgi?id=97367
10815
10816        Reviewed by Abhishek Arya.
10817
10818        The document could be destroyed during the processing of the
10819        fullscreenchange event, if the document was destroyed as a result of
10820        one of the dispatchEvent calls.
10821
10822        This bug isn't reliably reproducible, so no new tests.
10823
10824        * dom/Document.cpp:
10825        (WebCore::Document::fullScreenChangeDelayTimerFired):
10826
108272012-09-21  Pratik Solanki  <psolanki@apple.com>
10828
10829        No need to pass order file for WebCoreTestSupport build
10830        https://bugs.webkit.org/show_bug.cgi?id=97363
10831
10832        Reviewed by David Kilzer.
10833
10834        No new tests because no functional change.
10835
10836        * Configurations/WebCoreTestSupport.xcconfig:
10837
108382012-09-21  Chris Rogers  <crogers@google.com>
10839
10840        Add Web Audio support for deprecated/legacy APIs
10841        https://bugs.webkit.org/show_bug.cgi?id=97050
10842
10843        Reviewed by Eric Carlson.
10844
10845        The Web Audio API specification has undergone much review and some small API changes
10846        have been made (mostly naming-related changes).  This patch adds an ENABLE_LEGACY_WEB_AUDIO
10847        build option to allow ports to support the old names.
10848
10849        Tests changed:
10850        audiobuffersource-playbackrate.html
10851        audiobuffersource.html
10852        note-grain-on-testing.js
10853        oscillator-testing.js
10854
10855        * Configurations/FeatureDefines.xcconfig:
10856        * GNUmakefile.features.am:
10857        * Modules/webaudio/AudioBufferSourceNode.cpp:
10858        (WebCore::AudioBufferSourceNode::startGrain):
10859        (WebCore):
10860        (WebCore::AudioBufferSourceNode::noteGrainOn):
10861        * Modules/webaudio/AudioBufferSourceNode.h:
10862        (AudioBufferSourceNode):
10863        * Modules/webaudio/AudioBufferSourceNode.idl:
10864        * Modules/webaudio/AudioScheduledSourceNode.cpp:
10865        (WebCore::AudioScheduledSourceNode::start):
10866        (WebCore::AudioScheduledSourceNode::stop):
10867        (WebCore):
10868        (WebCore::AudioScheduledSourceNode::noteOn):
10869        (WebCore::AudioScheduledSourceNode::noteOff):
10870        * Modules/webaudio/AudioScheduledSourceNode.h:
10871        * Modules/webaudio/Oscillator.idl:
10872        * page/FeatureObserver.h:
10873
108742012-09-21  Mark Pilgrim  <pilgrim@chromium.org>
10875
10876        [Chromium] remove getFontFamilyForCharacters from PlatformSupport
10877        https://bugs.webkit.org/show_bug.cgi?id=96282
10878
10879        Reviewed by Tony Chang.
10880
10881        Migrating away from PlatformSupport. getFontFamilyForCharacters is
10882        moved to FontCache.h and overridden by the two platforms that
10883        need it (Chromium Linux and Blackberry). New files for the overrides.
10884        Part of a larger refactoring series. See tracking bug 82948.
10885
10886        * PlatformBlackBerry.cmake:
10887        * WebCore.gypi:
10888        * platform/chromium/PlatformSupport.h:
10889        (PlatformSupport):
10890        * platform/graphics/FontCache.h:
10891        (SimpleFontFamily):
10892        (FontCache):
10893        * platform/graphics/blackberry/FontCacheBlackberry.cpp: Added.
10894        (WebCore):
10895        (WebCore::FontCache::getFontFamilyForCharacters):
10896        * platform/graphics/blackberry/skia/PlatformSupport.cpp:
10897        (WebCore):
10898        * platform/graphics/blackberry/skia/PlatformSupport.h:
10899        (PlatformSupport):
10900        * platform/graphics/chromium/FontCacheAndroid.cpp:
10901        (WebCore::FontCache::getFontDataForCharacters):
10902        * platform/graphics/chromium/FontCacheChromiumLinux.cpp: Added.
10903        (WebCore):
10904        (WebCore::FontCache::getFontFamilyForCharacters):
10905        * platform/graphics/skia/FontCacheSkia.cpp:
10906        (WebCore::FontCache::getFontDataForCharacters):
10907
109082012-09-21  Chris Fleizach  <cfleizach@apple.com>
10909
10910        AX: WebKit exposes incorrect bounds for embedded SVG in HTML
10911        https://bugs.webkit.org/show_bug.cgi?id=96168
10912
10913        Reviewed by Eric Seidel.
10914
10915        Override absoluteFocusRingQuads() for SVG objects because the default
10916        implementation relies on addFocusRingRects(). In addFocusRingRects(), SVG 
10917        objects adds local positions for its rects instead of absolute positions.
10918
10919        Test: accessibility/svg-bounds.html
10920
10921        * rendering/RenderObject.h:
10922        (RenderObject):
10923        * rendering/svg/RenderSVGModelObject.cpp:
10924        (WebCore):
10925        (WebCore::RenderSVGModelObject::absoluteFocusRingQuads):
10926        * rendering/svg/RenderSVGModelObject.h:
10927        (RenderSVGModelObject):
10928
109292012-09-21  Lianghui Chen  <liachen@rim.com>
10930
10931        [BlackBerry] Really fix bug 95488 that user can get the authentication challenge dialog while the other tab has focus.
10932        https://bugs.webkit.org/show_bug.cgi?id=97348
10933        Internal PR: 186597.
10934
10935        Internally reviewed by Yong Li, Joe Mason.
10936        Reviewed by Yong Li.
10937
10938        Add a singleton AuthenticationChallengeManager to manage authentication
10939        challenge dialog. It does following things:
10940        Record page creation/deletion, so it knows what page is present or not.
10941        Record page visibility change so it knows when to display a dialog or not.
10942        Accept authentication challenge, and decide whether to postpone the
10943            challenge dialog based on whether there is active authentication challenge
10944            dialog already and whether its page is visible or not.
10945        When a challenge result comes back, notify the result to all clients
10946            authenticating for the same protection space, and then start the next
10947            authentication challenge from the same page, if there is one.
10948        When a page becomes visible, start the first authentication challenge
10949            dialog that has been blocked before.
10950
10951        And to support this new AuthenticationChallengeManager, and making the
10952            challenge really asynchronous, NetworkJob has been updated to support
10953            the concept of "freeze", which means buffering all network loading status
10954            change but don't send them to NetworkJob clients.
10955        This is necessary when authentication challenge is asynchronous, as the
10956            previous network loading status will likely come before user make any
10957            decision.
10958
10959        No new tests for platform specific internal change.
10960
10961        * PlatformBlackBerry.cmake:
10962        * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
10963        (WebCore):
10964        (ChallengeInfo):
10965        (WebCore::ChallengeInfo::ChallengeInfo):
10966        (AuthenticationChallengeManagerPrivate):
10967        (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
10968        (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
10969        (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
10970        (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
10971        (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
10972        (WebCore::AuthenticationChallengeManager::pageCreated):
10973        (WebCore::AuthenticationChallengeManager::pageDeleted):
10974        (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
10975        (WebCore::AuthenticationChallengeManager::authenticationChallenge):
10976        (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
10977        (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
10978        (WebCore::AuthenticationChallengeManager::instance):
10979        (WebCore::AuthenticationChallengeManager::init):
10980        * platform/blackberry/AuthenticationChallengeManager.h:
10981        (WebCore):
10982        (AuthenticationChallengeManager):
10983        * platform/blackberry/PageClientBlackBerry.h:
10984        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
10985        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
10986        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
10987        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
10988        (WebCore::MediaPlayerPrivate::notifyChallengeResult):
10989        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
10990        (MediaPlayerPrivate):
10991        * platform/network/blackberry/NetworkJob.cpp:
10992        (WebCore::NetworkJob::NetworkJob):
10993        (WebCore::NetworkJob::~NetworkJob):
10994        (WebCore):
10995        (WebCore::NetworkJob::handleNotifyStatusReceived):
10996        (WebCore::NetworkJob::handleNotifyClose):
10997        (WebCore::NetworkJob::sendRequestWithCredentials):
10998        (WebCore::NetworkJob::notifyChallengeResult):
10999        * platform/network/blackberry/NetworkJob.h:
11000        (NetworkJob):
11001
110022012-09-21  Simon Hausmann  <simon.hausmann@digia.com>
11003
11004        Unreviewed, rolling out r129248.
11005        http://trac.webkit.org/changeset/129248
11006        https://bugs.webkit.org/show_bug.cgi?id=96000
11007
11008        Broke win build
11009
11010        * Target.pri:
11011        * WebCore.vcproj/WebCore.vcproj:
11012        * rendering/RenderingAllInOne.cpp:
11013
110142012-09-21  Simon Hausmann  <simon.hausmann@nokia.com>
11015
11016        Make RenderingAllInOne.cpp usable for ports other than Apple/Win
11017        https://bugs.webkit.org/show_bug.cgi?id=96000
11018
11019        Reviewed by Ryosuke Niwa.
11020
11021        RenderingAllInOne.cpp unconditionally includes RenderThemeWin. This patch separates
11022        it out from the file.
11023
11024        * Target.pri: Add RenderingAllInOne.cpp to the list of supported all-in-one files.
11025        * WebCore.vcproj/WebCore.vcproj: Compile RenderThemeWin.cpp separately.
11026        * rendering/RenderingAllInOne.cpp: Don't include RenderThemeWin.cpp here.
11027
110282012-09-21  Joanmarie Diggs  <jdiggs@igalia.com>
11029
11030        REGRESSION (r127882): accessibility/spinbutton-value.html failing on GTK
11031        https://bugs.webkit.org/show_bug.cgi?id=96196
11032
11033        Reviewed by Martin Robinson.
11034
11035        The "regression" is that a new test was added but the support was missing
11036        in the Gtk port for spin buttons.
11037
11038        No new tests. Instead the new test which had been skipped was unskipped
11039        as part of this fix.
11040
11041        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
11042        (atkRole): Map SpinButtonRole to ATK_ROLE_SPIN_BUTTON
11043        (getInterfaceMaskFromObject): Add SpinButtonRole to the roles implementing
11044        the AtkValue interface.
11045
110462012-09-21  Joanmarie Diggs  <jdiggs@igalia.com>
11047
11048        [GTK] [Stable] Infinite recursion in WebCore::AXObjectCache::getOrCreate
11049        https://bugs.webkit.org/show_bug.cgi?id=96932
11050
11051        Reviewed by Martin Robinson.
11052
11053        Make the decision based on RenderObjects rather than AccessibilityObjects
11054        to avoid the infinite recursion which occurs when remapAriaRoleDueToParent
11055        gets called.
11056
11057        Test: platform/gtk/accessibility/remapped-aria-crash.html
11058
11059        * accessibility/gtk/AccessibilityObjectAtk.cpp:
11060        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
11061
110622012-09-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
11063
11064        [BlackBerry] HTML5 media does not handle SSL certificate failures
11065        https://bugs.webkit.org/show_bug.cgi?id=93324
11066
11067        Reviewed by Eric Carlson.
11068
11069        RIM PR: 116205
11070        Passed FrameLoaderClientBlackBerry's playerId to MMRPlayer::load()
11071        because MMRPlayer::load() added playerId as a new parameter, which
11072        is required to initiate a MediaSSLHandlerStream to deal with
11073        certificate failure when loading a "https" media url.
11074
11075        Internally reviewed by Joe Mason <jmason@rim.com>.
11076
11077        No new tests since there's no functional change.
11078
11079        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
11080        (WebCore::MediaPlayerPrivate::load):
11081
110822012-09-21  Evan Wallace  <evan.exe@gmail.com>
11083
11084        [WebSocket] Receiving a large message is really slow
11085        https://bugs.webkit.org/show_bug.cgi?id=97237
11086
11087        Reviewed by Alexey Proskuryakov.
11088
11089        WebSocketChannel always reallocates its internal buffer when it receives
11090        and appends new data which causes dramatic slowdowns for messages over
11091        2 MB in size. This patch changes the internal buffer of WebSocketChannel
11092        from a raw char array to a Vector<char> and uses its amortized append()
11093        method. This brings the time to receive a 5 MB message from 5.2 seconds
11094        to 0.25 seconds.
11095
11096        This patch is only for optimization. No new tests are needed.
11097
11098        * Modules/websockets/WebSocketChannel.cpp:
11099        (WebCore::WebSocketChannel::WebSocketChannel):
11100        (WebCore::WebSocketChannel::~WebSocketChannel):
11101        (WebCore::WebSocketChannel::fail):
11102        (WebCore::WebSocketChannel::resume):
11103        (WebCore::WebSocketChannel::didReceiveSocketStreamData):
11104        (WebCore::WebSocketChannel::appendToBuffer):
11105        (WebCore::WebSocketChannel::skipBuffer):
11106        (WebCore::WebSocketChannel::processBuffer):
11107        (WebCore::WebSocketChannel::resumeTimerFired):
11108        (WebCore::WebSocketChannel::processFrame):
11109        * Modules/websockets/WebSocketChannel.h:
11110
111112012-09-21  Andrey Adaikin  <aandrey@chromium.org>
11112
11113        Fix build with ENABLE_WEBGL=false
11114        https://bugs.webkit.org/show_bug.cgi?id=97309
11115
11116        Reviewed by Eric Seidel.
11117
11118        WebKit no longer builds when WEBGL is not enabled.
11119
11120        * rendering/FilterEffectRenderer.h:
11121        (FilterEffectRenderer):
11122
111232012-09-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
11124
11125        [BlackBerry] Media player won't resize for the following source when first source fail to load
11126        https://bugs.webkit.org/show_bug.cgi?id=97342
11127
11128        Reviewed by Yong Li.
11129
11130        As platformPlayer will notify MediaPlayerPrivate for size change
11131        when loading metadata failed (in this case hasVideo() is false),
11132        we should prevent MediaPlayerPrivate to set width and height
11133        attribute of media element, otherwise we won't get the correct
11134        dimension for the following media sources.
11135
11136        Internally reviewed by Max Feil.
11137
11138        Test case: media/video-size.html
11139
11140        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
11141        (WebCore::MediaPlayerPrivate::resizeSourceDimensions):
11142
111432012-09-21  Dan Bernstein  <mitz@apple.com>
11144
11145        REGRESSION (r126763): Incorrect line breaking when both kerning and word spacing are enabled
11146        https://bugs.webkit.org/show_bug.cgi?id=97280
11147
11148        Reviewed by Adele Peterson.
11149
11150        Font::width() never applies word spacing to the first character in the TextRun. The
11151        TextLayout optimization tried to achieve this behavior by not applying word spacing to
11152        any character, which led to this bug.
11153
11154        Test: fast/text/word-space-with-kerning-2.html
11155
11156        * platform/graphics/mac/ComplexTextController.cpp:
11157        (WebCore::TextLayout::TextLayout): Changed to use the given font rather than a version
11158        without word spacing.
11159        (WebCore::TextLayout::width): Added a check if the run starts with a space at a non-zero
11160        offset. If that is the case, then the ComplexTextController has added word spacing to that
11161        space, so subtract it here in order to maintain the behavior described above.
11162
111632012-09-21  Sheriff Bot  <webkit.review.bot@gmail.com>
11164
11165        Unreviewed, rolling out r129219.
11166        http://trac.webkit.org/changeset/129219
11167        https://bugs.webkit.org/show_bug.cgi?id=97338
11168
11169        Presumably broke Apple Mac compilation (Requested by yurys_ on
11170        #webkit).
11171
11172        * bindings/js/JSHTMLCanvasElementCustom.cpp:
11173        (WebCore::JSHTMLCanvasElement::getContext):
11174        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
11175        (WebCore::V8HTMLCanvasElement::getContextCallback):
11176        * inspector/InjectedScriptCanvasModule.cpp:
11177        (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
11178        (WebCore):
11179        * inspector/InjectedScriptCanvasModule.h:
11180        (InjectedScriptCanvasModule):
11181        * inspector/InspectorCanvasAgent.cpp:
11182        * inspector/InspectorCanvasAgent.h:
11183        * inspector/InspectorCanvasInstrumentation.h:
11184        * inspector/InspectorInstrumentation.h:
11185        (InspectorInstrumentation):
11186
111872012-09-21  Andrey Adaikin  <aandrey@chromium.org>
11188
11189        Web Inspector: [Canvas] support 2D canvas instrumentation from the inspector C++ code
11190        https://bugs.webkit.org/show_bug.cgi?id=97203
11191
11192        Reviewed by Yury Semikhatsky.
11193
11194        Implements wrapping a 2D canvas context through the injected canvas module script facility.
11195
11196        * bindings/js/JSHTMLCanvasElementCustom.cpp:
11197        (WebCore::JSHTMLCanvasElement::getContext):
11198        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
11199        (WebCore::V8HTMLCanvasElement::getContextCallback):
11200        * inspector/InjectedScriptCanvasModule.cpp:
11201        (WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
11202        (WebCore):
11203        (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
11204        (WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
11205        * inspector/InjectedScriptCanvasModule.h:
11206        (InjectedScriptCanvasModule):
11207        * inspector/InspectorCanvasAgent.cpp:
11208        (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
11209        (WebCore):
11210        * inspector/InspectorCanvasAgent.h:
11211        (InspectorCanvasAgent):
11212        * inspector/InspectorCanvasInstrumentation.h:
11213        (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
11214        (WebCore):
11215        * inspector/InspectorInstrumentation.h:
11216        (InspectorInstrumentation):
11217
112182012-09-20  Andrey Kosyakov  <caseq@chromium.org>
11219
11220        Web Inspector: [refactoring] simplify interface to FileOutputStream
11221        https://bugs.webkit.org/show_bug.cgi?id=97226
11222
11223        Reviewed by Yury Semikhatsky.
11224
11225        - change OutputStream interface to match that of stream;
11226        - fix OutputStream implementations (FileOutputStream and those in heap profiler);
11227        - fix usages in Timeline and HeapProfiler.
11228
11229        * inspector/front-end/FileUtils.js:
11230        (WebInspector.OutputStream.prototype.write):
11231        (WebInspector.OutputStream.prototype.close):
11232        (WebInspector.ChunkedFileReader.prototype.start):
11233        (WebInspector.ChunkedFileReader.prototype._onChunkLoaded):
11234        (WebInspector.ChunkedXHRReader.prototype.start):
11235        (WebInspector.ChunkedXHRReader.prototype._onProgress):
11236        (WebInspector.ChunkedXHRReader.prototype._onLoad):
11237        (WebInspector.FileOutputStream):
11238        (WebInspector.FileOutputStream.prototype.open.callbackWrapper):
11239        (WebInspector.FileOutputStream.prototype.open):
11240        (WebInspector.FileOutputStream.prototype.write):
11241        (WebInspector.FileOutputStream.prototype.close):
11242        (WebInspector.FileOutputStream.prototype._onAppendDone):
11243        * inspector/front-end/HeapSnapshotLoader.js:
11244        (WebInspector.HeapSnapshotLoader.prototype.close):
11245        (WebInspector.HeapSnapshotLoader.prototype.write):
11246        * inspector/front-end/HeapSnapshotProxy.js:
11247        (WebInspector.HeapSnapshotLoaderProxy.prototype.startTransfer):
11248        (WebInspector.HeapSnapshotLoaderProxy.prototype.write):
11249        (WebInspector.HeapSnapshotLoaderProxy.prototype.close):
11250        * inspector/front-end/HeapSnapshotView.js:
11251        (WebInspector.HeapProfileHeader):
11252        (WebInspector.HeapProfileHeader.prototype.load):
11253        (WebInspector.HeapProfileHeader.prototype._setupWorker):
11254        (WebInspector.HeapProfileHeader.prototype.dispose):
11255        (WebInspector.HeapProfileHeader.prototype.transferChunk.callback):
11256        (WebInspector.HeapProfileHeader.prototype.transferChunk):
11257        (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
11258        (WebInspector.HeapProfileHeader.prototype.saveToFile.onOpen):
11259        (WebInspector.HeapProfileHeader.prototype.saveToFile):
11260        * inspector/front-end/TimelineModel.js:
11261        (WebInspector.TimelineModel.prototype._createFileWriter):
11262        (WebInspector.TimelineModel.prototype.saveToFile.callback):
11263        (WebInspector.TimelineModel.prototype.saveToFile):
11264        (WebInspector.TimelineModelLoader):
11265        (WebInspector.TimelineModelLoader.prototype.write):
11266        (WebInspector.TimelineModelLoader.prototype.close):
11267        (WebInspector.TimelineSaver):
11268        (WebInspector.TimelineSaver.prototype.save):
11269        (WebInspector.TimelineSaver.prototype._writeNextChunk):
11270
112712012-09-21  Alexandru Chiculita  <achicu@adobe.com>
11272
11273        -webkit-clip-path is applied on elements that are not descendant of the container
11274        https://bugs.webkit.org/show_bug.cgi?id=97217
11275
11276        Reviewed by Dirk Schulze.
11277
11278        The clip-path was set on the GraphicsContext, but was never restored, thus making all the layers
11279        rendered in the same "group" of save/restore state use the same clip-path.
11280
11281        Test: css3/masking/clip-path-restore.html
11282
11283        * css/StyleResolver.cpp:
11284        (WebCore::StyleResolver::collectMatchingRulesForList):
11285        clip-path property should create a stacking-context, otherwise the RenderLayers will not be nested,
11286        meaning that the clip-path of the parent is not going to apply correctly.
11287
11288        * rendering/RenderLayer.cpp:
11289        (WebCore::RenderLayer::paintLayerContents):
11290
112912012-09-21  Kent Tamura  <tkent@chromium.org>
11292
11293        Remove unused functions of LocalizedDate.h
11294        https://bugs.webkit.org/show_bug.cgi?id=97311
11295
11296        Reviewed by Kentaro Hara.
11297
11298        WebCore::localizedTimeFormatText, WebCore::localizedShortTimeFormatText,
11299        and WebCore::timeAMPMLabels are not used any more because we switched to
11300        the corresponding functions of Localizer.
11301
11302        No new tests because of no behavior changes.
11303
11304        * platform/text/Localizer.h:
11305        (Localizer): Moved comments from LocalizedDate.h.
11306        * platform/text/LocalizedDate.h:
11307        (WebCore): Removed localizedTimeFormatText,
11308        localizedShortTimeFormatText, and timeAMPMLabels.
11309        * platform/text/LocalizedDateICU.cpp:
11310        (WebCore): ditto.
11311        * platform/text/LocalizedDateWin.cpp:
11312        (WebCore): ditto.
11313        * platform/text/mac/LocalizedDateMac.cpp:
11314        (WebCore): ditto.
11315
113162012-09-21  Keishi Hattori  <keishi@webkit.org>
11317
11318        Add datalist suggestions into DateTimeChooserParameters
11319        https://bugs.webkit.org/show_bug.cgi?id=97292
11320
11321        Reviewed by Kent Tamura.
11322
11323        We read datalist suggestions, add them to DateTimeChooserParameters,
11324        and pass them to the page popup.
11325
11326        No new tests. No behavior change yet.
11327
11328        * html/shadow/CalendarPickerElement.cpp:
11329        (WebCore::CalendarPickerElement::openPopup): Read datalist suggestions and add them to DateTimeChooserParameters
11330        * platform/DateTimeChooser.h:
11331        (DateTimeChooserParameters): Added localizedSuggestionValues so we can show localized values inside the page popup.
11332
113332012-09-21  Yoshifumi Inoue  <yosin@chromium.org>
11334
11335        [Forms] DateTimeEditElement::layout() should take date time format as a parameter
11336        https://bugs.webkit.org/show_bug.cgi?id=97300
11337
11338        Reviewed by Kent Tamura.
11339
11340        This patch introduces DateTimeEditElement::LayoutParameters struct for
11341        passing four parameters to DateTimeEditElement::layout() for passing
11342        date time format from client of DateTimeEditElement instead of
11343        DateTimeEditElement::layout() takes time or short time format.
11344
11345        This patch is a part of preparation of introducing multiple fields
11346        date/datetime/month/week input UI.
11347
11348        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
11349        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
11350
11351        No new tests. This patch doesn't change behavior.
11352
11353        * html/TimeInputType.cpp:
11354        (WebCore::TimeInputType::updateInnerTextValue): Changed to use LayoutParmeters.
11355        * html/shadow/DateTimeEditElement.cpp:  Removed unused include files, LocalizedDate.h and LocalizedNumber.h.
11356        (DateTimeEditBuilder):
11357        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed parameters to LayoutParmeters.
11358        (WebCore::DateTimeEditElement::LayoutParameters::shouldHaveSecondField): Moved from DateTimeEditBuilder::needSecondField().
11359        (WebCore::DateTimeEditElement::layout): Changed to take LayoutParameters.
11360        (WebCore::DateTimeEditElement::setValueAsDate): ditto
11361        (WebCore::DateTimeEditElement::setEmptyValue): ditto
11362        * html/shadow/DateTimeEditElement.h: Removed unused classe declarations DateComponents and DateTimeEditLayouter.
11363        (LayoutParameters):  Added to bundle parameters for layout().
11364        (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Added.
11365
113662012-09-20  Pavel Feldman  <pfeldman@chromium.org>
11367
11368        Web Inspector: render grid scale to the right / at bottom in case box is close to 0 on that axis.
11369        https://bugs.webkit.org/show_bug.cgi?id=97219
11370
11371        Reviewed by Vsevolod Vlasov.
11372
11373        Otherwise, it is hard to inspect objects close to (0, 0)
11374
11375        * inspector/InspectorOverlayPage.html:
11376
113772012-09-21  Sheriff Bot  <webkit.review.bot@gmail.com>
11378
11379        Unreviewed, rolling out r129086.
11380        http://trac.webkit.org/changeset/129086
11381        https://bugs.webkit.org/show_bug.cgi?id=97312
11382
11383        Broke input rendering (Requested by shinyak on #webkit).
11384
11385        * html/BaseButtonInputType.cpp:
11386        (WebCore):
11387        * html/BaseButtonInputType.h:
11388        (WebCore::BaseButtonInputType::BaseButtonInputType):
11389        (BaseButtonInputType):
11390        * html/FileInputType.cpp:
11391        (WebCore::UploadButtonElement::create):
11392        (WebCore::UploadButtonElement::createForMultiple):
11393        * html/HTMLInputElement.cpp:
11394        (WebCore::HTMLInputElement::parseAttribute):
11395        * html/InputType.cpp:
11396        * html/InputType.h:
11397        (InputType):
11398        * rendering/RenderButton.cpp:
11399        (WebCore::RenderButton::RenderButton):
11400        (WebCore::RenderButton::styleDidChange):
11401        (WebCore::RenderButton::updateFromElement):
11402        (WebCore):
11403        (WebCore::RenderButton::setText):
11404        (WebCore::RenderButton::text):
11405        * rendering/RenderButton.h:
11406        (RenderButton):
11407
114082012-09-21  Kihong Kwon  <kihong.kwon@samsung.com>
11409
11410        Remove useless class prototypes from Vibration.h
11411        https://bugs.webkit.org/show_bug.cgi?id=97304
11412
11413        Reviewed by Kentaro Hara.
11414
11415        Remove two useless class prototype statements in the Vibration.h
11416
11417        * Modules/vibration/Vibration.h:
11418
114192012-09-21  Keishi Hattori  <keishi@webkit.org>
11420
11421        Prepare CalendarPicker so we can add another picker, SuggetionPicker
11422        https://bugs.webkit.org/show_bug.cgi?id=97193
11423
11424        Reviewed by Kent Tamura.
11425
11426        Preparation so we can add another picker to CalendarPicker and switch
11427        between them.
11428
11429        No new tests. No behavior change.
11430
11431        * Resources/pagepopups/calendarPicker.css:
11432        (.calendar-picker): Added so we can apply these styles just to calendar picker.
11433        * Resources/pagepopups/calendarPicker.js:
11434        (CalendarPicker.validateConfig): Renamed so each picker can validate the config object.
11435        (initialize):
11436        (closePicker): Call Picker.cleanup().
11437        (openCalendarPicker):
11438        (CalendarPicker):
11439        (CalendarPicker.prototype.cleanup): Cleanup event listener on document.body.
11440        * Resources/pagepopups/pickerCommon.js:
11441        (Picker.prototype.cleanup):
11442
114432012-09-20  John Mellor  <johnme@chromium.org>
11444
11445        Text Autosizing: Cluster text at flow roots, for consistency and to avoid autosizing headers/footers.
11446        https://bugs.webkit.org/show_bug.cgi?id=97025
11447
11448        Reviewed by Julien Chaffraix.
11449
11450        This patch has 3 main changes:
11451
11452        1. All text within a "cluster" (roughly equivalent to a CSS flow root /
11453           block formatting context) must have a uniform textAutosizingMultiplier,
11454           except for subtrees which are themselves clusters. This improves the
11455           consistency of the final output, since sibling blocks are now more
11456           likely to have the same multiplier (hence grow in proportion).
11457
11458        2. Clusters must contain a minimum amount of text in order to be
11459           autosized (4 lines of text, assuming each char is 1em wide, so about
11460           2 lines of text in practice). This is to reduce the likelihood of
11461           autosizing things like headers and footers, which can be quite
11462           visually distracting. The rationale is that if a cluster contains
11463           very few lines of text then it's ok to have to zoom in and pan from
11464           side to side to read each line, since if there are very few lines of
11465           text you'll only need to pan across once or twice.
11466
11467        3. To avoid adding a 3rd tree traversal, processSubtree/processBox were
11468           refactored such that all of Text Autosizing now happens as a single
11469           tree traversal (hence halving the number of tree traversals done).
11470
11471        Tests: fast/text-autosizing/cluster-narrow-in-wide.html
11472               fast/text-autosizing/cluster-wide-in-narrow.html
11473               fast/text-autosizing/clusters-insufficient-text.html
11474               fast/text-autosizing/clusters-insufficient-width.html
11475               fast/text-autosizing/clusters-sufficient-text-except-in-root.html
11476               fast/text-autosizing/clusters-sufficient-width.html
11477
11478        * rendering/TextAutosizer.cpp:
11479        (TextAutosizingWindowInfo):
11480
11481            Added this struct to bundle together the various sizes that
11482            processSubtree needs to pass to every recursive call to
11483            processCluster and processContainer.
11484
11485        (WebCore::TextAutosizer::processSubtree):
11486
11487            - Bundle windowSize and minLayoutSize together as a single struct,
11488              TextAutosizingWindowInfo, rather than passing them separately.
11489            - Walk up the tree to find the current cluster and container, rather
11490              than (incorrectly) assuming that the layoutRoot is always a
11491              container.
11492            - Call processCluster instead of traversing the tree.
11493
11494        (WebCore::TextAutosizer::processCluster):
11495
11496            Calculates the multiplier based on the width of the cluster (moved
11497            the calculation here from processBox, since now the multiplier is
11498            fixed per cluster), and delegates to processContainer for the actual
11499            tree traversal (since clusters are also containers).
11500
11501        (WebCore::contentHeightIsConstrained):
11502
11503            Changed parameter to RenderBlock.
11504
11505        (WebCore::TextAutosizer::processContainer):
11506
11507            This now takes care of the whole tree traversal, recursively calling
11508            processCluster/processContainer when it encounters such an object,
11509            and setMultiplier on RenderText objects (as processBox used to).
11510            Also added a check that the RenderText's multiplier is not already
11511            equal to the target multiplier (to save needlessly setting it).
11512
11513        (WebCore::TextAutosizer::isContainer):
11514
11515            - Changed to be a positive (is) instead of negative (isNot) check.
11516            - Require objects to be RenderBlocks so it's easier to find them
11517              using containingBlock, and there don't seem to be many interesting
11518              RenderBoxes that aren't RenderBlocks.
11519
11520        (WebCore::TextAutosizer::isAutosizingCluster):
11521
11522            A container that is also a flow root / block formatting context
11523            (approximately), hence demarcates an independent region of the page,
11524            within which we want consistent autosizing.
11525
11526        (WebCore::TextAutosizer::clusterShouldBeAutosized):
11527
11528            Uses measureDescendantTextWidth and to check whether the cluster
11529            contains enough text to be worth autosizing.
11530
11531        (WebCore::TextAutosizer::measureDescendantTextWidth):
11532
11533            Recursively traverse the cluster, skipping constrained height
11534            containers as processContainer does, to measure how much autosizable
11535            text it contains. Early out as soon as the minimum text width is
11536            reached.
11537
11538        (WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):
11539
11540            Replaces nextInPreOrderMatchingFilter. The filter is now fixed to
11541            isContainer (we no longer need an isAutosizingCluster filter, since
11542            I consolidated the tree traversal), and filtered objects are
11543            actually returned (so they can in turn be recursively traversed),
11544            it's just their descendants that get skipped.
11545
11546        * rendering/TextAutosizer.h:
11547        (TextAutosizer):
11548
11549            - Deleted RenderObjectFilterFunctor, since the filter of
11550              nextInPreOrderSkippingDescendantsOfContainers is now fixed.
11551
115522012-09-20  Yoshifumi Inoue  <yosin@chromium.org>
11553
11554        [Platform] There are memory leak in LocaleICU
11555        https://bugs.webkit.org/show_bug.cgi?id=97289
11556
11557        Reviewed by Kent Tamura.
11558
11559        This patch adds udt_close() calls for medium time format and short
11560        time format data used in LocaleICU class to avoid memory leak.
11561
11562        This memory leak is found by external tool Valgrind and reported in
11563        Chromium bug repositry(http://crbug.com/151006) with stack trace of
11564        call path of leaked memory.
11565
11566        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
11567        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
11568
11569        No new tests. External tool such as Valgrind will check this memory leak.
11570
11571        * platform/text/LocaleICU.cpp:
11572        (WebCore::LocaleICU::~LocaleICU): Added to call udt_close() for m_mediumTimeFormat
11573        and m_shortTimeFormat which have UDateFormat objects.
11574
115752012-09-20  Kenichi Ishibashi  <bashi@chromium.org>
11576
11577        Chromium mac cannot display AppleColorEmoji
11578        https://bugs.webkit.org/show_bug.cgi?id=97286
11579
11580        Reviewed by Kent Tamura.
11581
11582        Disable AppleColorEmoji for now. We will re-enable it after Skia supports CTFontDrawGlyphs().
11583
11584        No new tests. Fallback fonts should be used for emoji codepoints.
11585
11586        * platform/graphics/mac/FontCacheMac.mm:
11587        (WebCore::FontCache::getFontDataForCharacters):
11588
115892012-09-20  Luke Macpherson   <macpherson@chromium.org>
11590
11591        Fix use-after free when using a variable to specify a -webkit-filter.
11592        https://bugs.webkit.org/show_bug.cgi?id=97153
11593
11594        Reviewed by Abhishek Arya.
11595
11596        Make StyleResolver's m_pendingSVGDocuments a hashmap of RefPtr instead of raw pointers such that the document values cannot be freed prematurely.
11597        Present assumption is that storing raw pointers is ok because CSSValues will live as long as the StyleResolver instance, however that it no longer
11598        true when variables are used, so we must ensure we increment the reference counter to ensure the CSSValues are not freed prematurely.
11599
11600        Test: fast/css/variables/var-filter.html
11601
11602        * css/StyleResolver.cpp:
11603        (WebCore::StyleResolver::collectMatchingRulesForList):
11604        * css/StyleResolver.h:
11605        (StyleResolver):
11606
116072012-09-20  Levi Weintraub  <leviw@chromium.org>
11608
11609        Prevent reading stale data from InlineTextBoxes
11610        https://bugs.webkit.org/show_bug.cgi?id=94750
11611
11612        Reviewed by Abhishek Arya.
11613
11614        Text from dirty InlineTextBoxes should never be read or used. This change
11615        enforces this design goal by forcefully zero-ing out the start and length
11616        of InlineTextBoxes when they're being marked dirty. Ideally, we'd also
11617        add asserts to the accessors for this data, but there are still several
11618        places in editing that cause this. https://bugs.webkit.org/show_bug.cgi?id=97264
11619        tracks these cases.
11620
11621        This change involves making markDirty virtual. Running the line-layout
11622        performance test as well as profiling resizing the html5 spec showed
11623        negligable impact with this change.
11624
11625        No new tests as this doesn't change any proper behavior.
11626
11627        * dom/Position.cpp:
11628        (WebCore::Position::downstream): Adding a FIXME.
11629        * rendering/InlineBox.h:
11630        (WebCore::InlineBox::markDirty): Marking virtual to allow InlineTextBox to
11631        overload and zero out its start and length.
11632        * rendering/InlineTextBox.cpp:
11633        (WebCore::InlineTextBox::markDirty): Zeroing out the start and length when
11634        we mark the box dirty.
11635        * rendering/InlineTextBox.h:
11636        * rendering/RenderText.cpp:
11637        (WebCore::RenderText::setTextWithOffset): Adding a FIXME.
11638
116392012-09-20  Adam Barth  <abarth@webkit.org>
11640
11641        Measure how often web pages use Worker and SharedWorker
11642        https://bugs.webkit.org/show_bug.cgi?id=97273
11643
11644        Reviewed by Ojan Vafai.
11645
11646        We're not considering removing these features, but it will give us a
11647        baseline idea of how often they're used.
11648
11649        * page/FeatureObserver.h:
11650        * workers/SharedWorker.cpp:
11651        (WebCore::SharedWorker::create):
11652        * workers/Worker.cpp:
11653        (WebCore::Worker::create):
11654
116552012-09-20  Tony Chang  <tony@chromium.org>
11656
11657        [chromium] Enable more clang warnings
11658        https://bugs.webkit.org/show_bug.cgi?id=97257
11659
11660        Reviewed by James Robinson.
11661
11662        Add -Wunused-parameter to WebCore targets. Apple's Mac compile already
11663        warns on this and it's a common source of error for Chromium patches.
11664
11665        No new tests, should compile cleanly.
11666
11667        * WebCore.gyp/WebCore.gyp:
11668
116692012-09-20  Dan Bernstein  <mitz@apple.com>
11670
11671        Kerning never occurs between a space and the following glyph
11672        https://bugs.webkit.org/show_bug.cgi?id=97269
11673
11674        Reviewed by Tim Horton.
11675
11676        Covered by several existing tests.
11677
11678        * platform/graphics/mac/ComplexTextController.cpp:
11679        (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Changed to not reset the advance
11680        of a space, and added a comment about how this also needs to be fixed for other characters
11681        that are treated as spaces.
11682
116832012-09-20  Kenichi Ishibashi  <bashi@chromium.org>
11684
11685        [Chromium] Improve glyph selection of HarfBuzzShaper
11686        https://bugs.webkit.org/show_bug.cgi?id=97164
11687
11688        Reviewed by Tony Chang.
11689
11690        Take into account clusters for selection.
11691
11692        Test: fast/text/international/hebrew-selection.html
11693
11694        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
11695        (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Removed m_logClusters.
11696        m_logCluster is no longer used.
11697        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
11698        - If targetX is in the left side of the first cluster, return the leftmost character index.
11699        - If targetX is in the right side of the last cluster, return the rightmost character index.
11700        - If targetX is between the right side of the cluster N and the left side of the cluster N+1, then:
11701          - return N+1 for LTR.
11702          - return N for RTL.
11703        (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
11704        Find the cluster of index in question, then:
11705        - return the left side boundary of the cluster for LTR.
11706        - return the right side boundary of the cluster for RTL.
11707        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
11708        (HarfBuzzRun):
11709
117102012-09-20  Tony Chang  <tony@chromium.org>
11711
11712        Replace RenderListBox::updateLogicalHeight with RenderListBox::computeLogicalHeight
11713        https://bugs.webkit.org/show_bug.cgi?id=97263
11714
11715        Reviewed by Ojan Vafai.
11716
11717        This is part of making computeLogicalHeight virtual so with any RenderBox pointer, one
11718        can compute the logical height without mutating the RenderBox.
11719
11720        No new tests, this is a refactor and existing list box tests should pass.
11721
11722        * rendering/RenderBox.h:
11723        (RenderBox):
11724        * rendering/RenderListBox.cpp:
11725        (WebCore::RenderListBox::layout): Move layout related logic here.
11726        (WebCore::RenderListBox::computeLogicalHeight): Use const version and remove layout related code.
11727        * rendering/RenderListBox.h:
11728        (RenderListBox): Override computeLogicalHeight.
11729
117302012-09-20  Mike West  <mkwst@chromium.org>
11731
11732        CSP reports should send an empty "blocked-uri" rather than nothing.
11733        https://bugs.webkit.org/show_bug.cgi?id=97256
11734
11735        Reviewed by Adam Barth.
11736
11737        In cases where a Content Security Policy violation report is generated
11738        without blocking a resource at a particular URI (inline scripts, for
11739        example), we currently leave the "blocked-uri" attribute out of the
11740        report entirely. For the same reason that we included the "referrer"
11741        attribute in webkit.org/b/97233, we should include an explicitly empty
11742        "blocked-uri" in these cases.
11743
11744        This new behavior is covered by updates to existing test expectations
11745        around the reporting functionality.
11746
11747        * page/ContentSecurityPolicy.cpp:
11748        (WebCore::ContentSecurityPolicy::reportViolation):
11749            If the 'blocked-uri' is invalid, add a "blocked-uri" attribute that
11750            is explicitly empty.
11751
117522012-09-20  Patrick Gansterer  <paroga@webkit.org>
11753
11754        Add String::numberToFixedPrecisionString()
11755        https://bugs.webkit.org/show_bug.cgi?id=96330
11756
11757        Reviewed by Benjamin Poulain.
11758
11759        * platform/text/TextStream.cpp:
11760        (WebCore::TextStream::operator<<): Use the new function instead of String::number() with flags.
11761
117622012-09-20  Adam Klein  <adamk@chromium.org>
11763
11764        Rename ContainerNode::parserAddChild "parserAppendChild" for consistency
11765        https://bugs.webkit.org/show_bug.cgi?id=97254
11766
11767        Reviewed by Adam Barth.
11768
11769        No functional change, all the below changes are simple renames.
11770
11771        * dom/ContainerNode.cpp:
11772        (WebCore::ContainerNode::takeAllChildrenFrom):
11773        (WebCore::ContainerNode::parserAppendChild):
11774        * dom/ContainerNode.h:
11775        (ContainerNode):
11776        * dom/DOMImplementation.cpp:
11777        (WebCore::DOMImplementation::createDocument):
11778        * editing/markup.cpp:
11779        (WebCore::createFragmentForTransformToFragment):
11780        * html/HTMLViewSourceDocument.cpp:
11781        (WebCore::HTMLViewSourceDocument::createContainingTable):
11782        (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
11783        (WebCore::HTMLViewSourceDocument::addLine):
11784        (WebCore::HTMLViewSourceDocument::finishLine):
11785        (WebCore::HTMLViewSourceDocument::addText):
11786        (WebCore::HTMLViewSourceDocument::addBase):
11787        (WebCore::HTMLViewSourceDocument::addLink):
11788        * html/parser/HTMLConstructionSite.cpp:
11789        (WebCore::executeTask):
11790        * html/parser/HTMLTreeBuilder.cpp:
11791        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
11792        * html/track/WebVTTParser.cpp:
11793        (WebCore::WebVTTParser::constructTreeFromToken):
11794        * xml/XMLErrors.cpp:
11795        (WebCore::createXHTMLParserErrorHeader):
11796        (WebCore::XMLErrors::insertErrorMessageBlock):
11797        * xml/parser/XMLDocumentParser.cpp:
11798        (WebCore::XMLDocumentParser::enterText):
11799        (WebCore::XMLDocumentParser::parseDocumentFragment):
11800        * xml/parser/XMLDocumentParserLibxml2.cpp:
11801        (WebCore::XMLDocumentParser::startElementNs):
11802        (WebCore::XMLDocumentParser::processingInstruction):
11803        (WebCore::XMLDocumentParser::cdataBlock):
11804        (WebCore::XMLDocumentParser::comment):
11805        (WebCore::XMLDocumentParser::internalSubset):
11806        * xml/parser/XMLDocumentParserQt.cpp:
11807        (WebCore::XMLDocumentParser::parseStartElement):
11808        (WebCore::XMLDocumentParser::parseProcessingInstruction):
11809        (WebCore::XMLDocumentParser::parseCdata):
11810        (WebCore::XMLDocumentParser::parseComment):
11811        (WebCore::XMLDocumentParser::parseDtd):
11812        * xml/parser/XMLTreeBuilder.cpp:
11813        (WebCore::XMLTreeBuilder::processDOCTYPE):
11814        (WebCore::XMLTreeBuilder::processStartTag):
11815        (WebCore::XMLTreeBuilder::add):
11816
118172012-09-20  James Robinson  <jamesr@chromium.org>
11818
11819        [chromium] Remove unused copy of chromium compositor implementation files
11820        https://bugs.webkit.org/show_bug.cgi?id=97255
11821
11822        Reviewed by Adam Barth.
11823
11824        Now that use_libcc_for_compositor is set to 1 these files aren't used anywhere.
11825
11826        * WebCore.gyp/WebCore.gyp:
11827        * WebCore.gypi:
11828        * platform/chromium/support/CCThreadImpl.cpp: Removed.
11829        * platform/chromium/support/CCThreadImpl.h: Removed.
11830        * platform/chromium/support/WebCompositorImpl.cpp: Removed.
11831        * platform/chromium/support/WebCompositorImpl.h: Removed.
11832        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp: Removed.
11833        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h: Removed.
11834        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp: Removed.
11835        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h: Removed.
11836        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
11837        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
11838        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
11839        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp: Removed.
11840        * platform/graphics/chromium/CanvasLayerTextureUpdater.h: Removed.
11841        * platform/graphics/chromium/ContentLayerChromium.cpp: Removed.
11842        * platform/graphics/chromium/ContentLayerChromium.h: Removed.
11843        * platform/graphics/chromium/ContentLayerChromiumClient.h: Removed.
11844        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp: Removed.
11845        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h: Removed.
11846        * platform/graphics/chromium/GeometryBinding.cpp: Removed.
11847        * platform/graphics/chromium/GeometryBinding.h: Removed.
11848        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11849        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp: Removed.
11850        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h: Removed.
11851        * platform/graphics/chromium/IOSurfaceLayerChromium.cpp: Removed.
11852        * platform/graphics/chromium/IOSurfaceLayerChromium.h: Removed.
11853        * platform/graphics/chromium/ImageLayerChromium.cpp: Removed.
11854        * platform/graphics/chromium/ImageLayerChromium.h: Removed.
11855        * platform/graphics/chromium/LayerChromium.cpp: Removed.
11856        * platform/graphics/chromium/LayerChromium.h: Removed.
11857        * platform/graphics/chromium/LayerTextureSubImage.cpp: Removed.
11858        * platform/graphics/chromium/LayerTextureSubImage.h: Removed.
11859        * platform/graphics/chromium/LayerTextureUpdater.h: Removed.
11860        * platform/graphics/chromium/PlatformColor.h: Removed.
11861        * platform/graphics/chromium/ProgramBinding.cpp: Removed.
11862        * platform/graphics/chromium/ProgramBinding.h: Removed.
11863        * platform/graphics/chromium/RateLimiter.cpp: Removed.
11864        * platform/graphics/chromium/RateLimiter.h: Removed.
11865        * platform/graphics/chromium/RenderSurfaceChromium.cpp: Removed.
11866        * platform/graphics/chromium/RenderSurfaceChromium.h: Removed.
11867        * platform/graphics/chromium/ScrollbarLayerChromium.cpp: Removed.
11868        * platform/graphics/chromium/ScrollbarLayerChromium.h: Removed.
11869        * platform/graphics/chromium/ShaderChromium.cpp: Removed.
11870        * platform/graphics/chromium/ShaderChromium.h: Removed.
11871        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp: Removed.
11872        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h: Removed.
11873        * platform/graphics/chromium/SolidColorLayerChromium.cpp: Removed.
11874        * platform/graphics/chromium/SolidColorLayerChromium.h: Removed.
11875        * platform/graphics/chromium/TextureCopier.cpp: Removed.
11876        * platform/graphics/chromium/TextureCopier.h: Removed.
11877        * platform/graphics/chromium/TextureLayerChromium.cpp: Removed.
11878        * platform/graphics/chromium/TextureLayerChromium.h: Removed.
11879        * platform/graphics/chromium/TextureLayerChromiumClient.h: Removed.
11880        * platform/graphics/chromium/ThrottledTextureUploader.cpp: Removed.
11881        * platform/graphics/chromium/ThrottledTextureUploader.h: Removed.
11882        * platform/graphics/chromium/TiledLayerChromium.cpp: Removed.
11883        * platform/graphics/chromium/TiledLayerChromium.h: Removed.
11884        * platform/graphics/chromium/TreeSynchronizer.cpp: Removed.
11885        * platform/graphics/chromium/TreeSynchronizer.h: Removed.
11886        * platform/graphics/chromium/UnthrottledTextureUploader.h: Removed.
11887        * platform/graphics/chromium/VideoLayerChromium.cpp: Removed.
11888        * platform/graphics/chromium/VideoLayerChromium.h: Removed.
11889        * platform/graphics/chromium/cc/CCActiveAnimation.cpp: Removed.
11890        * platform/graphics/chromium/cc/CCActiveAnimation.h: Removed.
11891        * platform/graphics/chromium/cc/CCAnimationCurve.cpp: Removed.
11892        * platform/graphics/chromium/cc/CCAnimationCurve.h: Removed.
11893        * platform/graphics/chromium/cc/CCAnimationEvents.h: Removed.
11894        * platform/graphics/chromium/cc/CCAppendQuadsData.h: Removed.
11895        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp: Removed.
11896        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h: Removed.
11897        * platform/graphics/chromium/cc/CCCompletionEvent.h: Removed.
11898        * platform/graphics/chromium/cc/CCDamageTracker.cpp: Removed.
11899        * platform/graphics/chromium/cc/CCDamageTracker.h: Removed.
11900        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Removed.
11901        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h: Removed.
11902        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp: Removed.
11903        * platform/graphics/chromium/cc/CCDebugRectHistory.h: Removed.
11904        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp: Removed.
11905        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h: Removed.
11906        * platform/graphics/chromium/cc/CCDirectRenderer.cpp: Removed.
11907        * platform/graphics/chromium/cc/CCDirectRenderer.h: Removed.
11908        * platform/graphics/chromium/cc/CCDrawQuad.cpp: Removed.
11909        * platform/graphics/chromium/cc/CCDrawQuad.h: Removed.
11910        * platform/graphics/chromium/cc/CCFontAtlas.cpp: Removed.
11911        * platform/graphics/chromium/cc/CCFontAtlas.h: Removed.
11912        * platform/graphics/chromium/cc/CCFrameRateController.cpp: Removed.
11913        * platform/graphics/chromium/cc/CCFrameRateController.h: Removed.
11914        * platform/graphics/chromium/cc/CCFrameRateCounter.cpp: Removed.
11915        * platform/graphics/chromium/cc/CCFrameRateCounter.h: Removed.
11916        * platform/graphics/chromium/cc/CCGraphicsContext.h: Removed.
11917        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp: Removed.
11918        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h: Removed.
11919        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Removed.
11920        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h: Removed.
11921        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp: Removed.
11922        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h: Removed.
11923        * platform/graphics/chromium/cc/CCInputHandler.h: Removed.
11924        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp: Removed.
11925        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h: Removed.
11926        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp: Removed.
11927        * platform/graphics/chromium/cc/CCLayerAnimationController.h: Removed.
11928        * platform/graphics/chromium/cc/CCLayerImpl.cpp: Removed.
11929        * platform/graphics/chromium/cc/CCLayerImpl.h: Removed.
11930        * platform/graphics/chromium/cc/CCLayerIterator.cpp: Removed.
11931        * platform/graphics/chromium/cc/CCLayerIterator.h: Removed.
11932        * platform/graphics/chromium/cc/CCLayerQuad.cpp: Removed.
11933        * platform/graphics/chromium/cc/CCLayerQuad.h: Removed.
11934        * platform/graphics/chromium/cc/CCLayerSorter.cpp: Removed.
11935        * platform/graphics/chromium/cc/CCLayerSorter.h: Removed.
11936        * platform/graphics/chromium/cc/CCLayerTilingData.cpp: Removed.
11937        * platform/graphics/chromium/cc/CCLayerTilingData.h: Removed.
11938        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Removed.
11939        * platform/graphics/chromium/cc/CCLayerTreeHost.h: Removed.
11940        * platform/graphics/chromium/cc/CCLayerTreeHostClient.h: Removed.
11941        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp: Removed.
11942        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h: Removed.
11943        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Removed.
11944        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Removed.
11945        * platform/graphics/chromium/cc/CCMathUtil.cpp: Removed.
11946        * platform/graphics/chromium/cc/CCMathUtil.h: Removed.
11947        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Removed.
11948        * platform/graphics/chromium/cc/CCOcclusionTracker.h: Removed.
11949        * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: Removed.
11950        * platform/graphics/chromium/cc/CCOverdrawMetrics.h: Removed.
11951        * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp: Removed.
11952        * platform/graphics/chromium/cc/CCPageScaleAnimation.h: Removed.
11953        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp: Removed.
11954        * platform/graphics/chromium/cc/CCPrioritizedTexture.h: Removed.
11955        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp: Removed.
11956        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h: Removed.
11957        * platform/graphics/chromium/cc/CCPriorityCalculator.cpp: Removed.
11958        * platform/graphics/chromium/cc/CCPriorityCalculator.h: Removed.
11959        * platform/graphics/chromium/cc/CCProxy.cpp: Removed.
11960        * platform/graphics/chromium/cc/CCProxy.h: Removed.
11961        * platform/graphics/chromium/cc/CCQuadCuller.cpp: Removed.
11962        * platform/graphics/chromium/cc/CCQuadCuller.h: Removed.
11963        * platform/graphics/chromium/cc/CCQuadSink.h: Removed.
11964        * platform/graphics/chromium/cc/CCRenderPass.cpp: Removed.
11965        * platform/graphics/chromium/cc/CCRenderPass.h: Removed.
11966        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp: Removed.
11967        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h: Removed.
11968        * platform/graphics/chromium/cc/CCRenderPassSink.h: Removed.
11969        * platform/graphics/chromium/cc/CCRenderSurface.cpp: Removed.
11970        * platform/graphics/chromium/cc/CCRenderSurface.h: Removed.
11971        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp: Removed.
11972        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.h: Removed.
11973        * platform/graphics/chromium/cc/CCRenderer.h: Removed.
11974        * platform/graphics/chromium/cc/CCRendererGL.cpp: Removed.
11975        * platform/graphics/chromium/cc/CCRendererGL.h: Removed.
11976        * platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
11977        * platform/graphics/chromium/cc/CCResourceProvider.cpp: Removed.
11978        * platform/graphics/chromium/cc/CCResourceProvider.h: Removed.
11979        * platform/graphics/chromium/cc/CCScheduler.cpp: Removed.
11980        * platform/graphics/chromium/cc/CCScheduler.h: Removed.
11981        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp: Removed.
11982        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h: Removed.
11983        * platform/graphics/chromium/cc/CCScopedTexture.cpp: Removed.
11984        * platform/graphics/chromium/cc/CCScopedTexture.h: Removed.
11985        * platform/graphics/chromium/cc/CCScopedThreadProxy.h: Removed.
11986        * platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp: Removed.
11987        * platform/graphics/chromium/cc/CCScrollbarAnimationController.h: Removed.
11988        * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.cpp: Removed.
11989        * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.h: Removed.
11990        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp: Removed.
11991        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h: Removed.
11992        * platform/graphics/chromium/cc/CCScrollbarGeometryStub.cpp: Removed.
11993        * platform/graphics/chromium/cc/CCScrollbarGeometryStub.h: Removed.
11994        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp: Removed.
11995        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h: Removed.
11996        * platform/graphics/chromium/cc/CCSettings.cpp: Removed.
11997        * platform/graphics/chromium/cc/CCSettings.h: Removed.
11998        * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Removed.
11999        * platform/graphics/chromium/cc/CCSharedQuadState.h: Removed.
12000        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: Removed.
12001        * platform/graphics/chromium/cc/CCSingleThreadProxy.h: Removed.
12002        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Removed.
12003        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h: Removed.
12004        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: Removed.
12005        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: Removed.
12006        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Removed.
12007        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h: Removed.
12008        * platform/graphics/chromium/cc/CCTexture.cpp: Removed.
12009        * platform/graphics/chromium/cc/CCTexture.h: Removed.
12010        * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp: Removed.
12011        * platform/graphics/chromium/cc/CCTextureDrawQuad.h: Removed.
12012        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: Removed.
12013        * platform/graphics/chromium/cc/CCTextureLayerImpl.h: Removed.
12014        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp: Removed.
12015        * platform/graphics/chromium/cc/CCTextureUpdateController.h: Removed.
12016        * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp: Removed.
12017        * platform/graphics/chromium/cc/CCTextureUpdateQueue.h: Removed.
12018        * platform/graphics/chromium/cc/CCThread.h: Removed.
12019        * platform/graphics/chromium/cc/CCThreadProxy.cpp: Removed.
12020        * platform/graphics/chromium/cc/CCThreadProxy.h: Removed.
12021        * platform/graphics/chromium/cc/CCThreadTask.h: Removed.
12022        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Removed.
12023        * platform/graphics/chromium/cc/CCTileDrawQuad.h: Removed.
12024        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: Removed.
12025        * platform/graphics/chromium/cc/CCTiledLayerImpl.h: Removed.
12026        * platform/graphics/chromium/cc/CCTimeSource.h: Removed.
12027        * platform/graphics/chromium/cc/CCTimer.cpp: Removed.
12028        * platform/graphics/chromium/cc/CCTimer.h: Removed.
12029        * platform/graphics/chromium/cc/CCTimingFunction.cpp: Removed.
12030        * platform/graphics/chromium/cc/CCTimingFunction.h: Removed.
12031        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: Removed.
12032        * platform/graphics/chromium/cc/CCVideoLayerImpl.h: Removed.
12033        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp: Removed.
12034        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h: Removed.
12035
120362012-09-20  Tony Chang  <tony@chromium.org>
12037
12038        Implement absolutely positioned flex items
12039        https://bugs.webkit.org/show_bug.cgi?id=93798
12040
12041        Reviewed by Ojan Vafai.
12042
12043        Previously, we treated absolutely positioned flex items as a 0x0 placeholder element.
12044        Now we position the 0x0 placeholder where the next item would go. This causes the
12045        following changes:
12046        - justify-content: space-{around,between} no longer change due to the existence of absolutely positioned flex items.
12047        - alignment doesn't change the placement of absolutely positioned flex items.
12048        - auto margins in the alignment direction don't do anything on absolutely positioned flex items.
12049
12050        Test: css3/flexbox/position-absolute-children.html
12051
12052        * rendering/RenderFlexibleBox.cpp:
12053        (WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild): Absolutely positioned flex items should not use this.
12054        (WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis): Absolutely positioned flex items should not use this.
12055        (WebCore::initialJustifyContentOffset): If there are no flex items, space-around should center an absolutely positioned flex item.
12056        (WebCore::RenderFlexibleBox::numberOfInFlowPositionedChildren): Helper method for helping to compute space-between and space-around.
12057        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Fix spacing when space-between or space-around.
12058        (WebCore::RenderFlexibleBox::layoutColumnReverse): Fix spacing when space-between or space-around.
12059        (WebCore::RenderFlexibleBox::alignChildren): Treat absolutely positioned children like flex-start.
12060        * rendering/RenderFlexibleBox.h: numberOfInFlowPositionedChildren method.
12061
120622012-09-20  Sheriff Bot  <webkit.review.bot@gmail.com>
12063
12064        Unreviewed, rolling out r129144.
12065        http://trac.webkit.org/changeset/129144
12066        https://bugs.webkit.org/show_bug.cgi?id=97244
12067
12068        causing lots of assertions in tests (Requested by smfr on
12069        #webkit).
12070
12071        * rendering/InlineBox.h:
12072        (WebCore::InlineBox::markDirty):
12073        * rendering/InlineTextBox.cpp:
12074        * rendering/InlineTextBox.h:
12075        (WebCore::InlineTextBox::start):
12076        (WebCore::InlineTextBox::end):
12077        (WebCore::InlineTextBox::len):
12078        (WebCore::InlineTextBox::offsetRun):
12079
120802012-09-20  Mike West  <mkwst@chromium.org>
12081
12082        CSP reports should send an empty 'referrer' rather than nothing.
12083        https://bugs.webkit.org/show_bug.cgi?id=97233
12084
12085        Reviewed by Adam Barth.
12086
12087        Currently, if a protected resource doesn't have a referrer, then any
12088        Content Security Policy violations send a report that doesn't contain
12089        a referrer attribute. It's arguably friendlier to developers to include
12090        an explicitly empty attribute.
12091
12092        This new behavior is covered by updates to existing test expectations
12093        around the reporting functionality.
12094
12095        * page/ContentSecurityPolicy.cpp:
12096        (WebCore::ContentSecurityPolicy::reportViolation):
12097            Drop the 'if', and always write out a referrer.
12098
120992012-09-20  David Barton  <dbarton@mathscribe.com>
12100
12101        [MathML] Increase visual space around fraction parts, italic variables, and operators
12102        https://bugs.webkit.org/show_bug.cgi?id=97228
12103
12104        Reviewed by Eric Seidel.
12105
12106        This makes MathML more readable, and more in agreement with Firefox and TeX.
12107
12108        Tested by existing tests.
12109
12110        * css/mathml.css:
12111        (mfrac > :first-child):
12112        (mfrac > :last-child):
12113        (mfrac):
12114        (mi):
12115        (msub > mi:first-child, msubsup > mi:first-child):
12116            - Subscripts don't need to move right after an italic <mi>.
12117        (msubsup > mi:first-child + * + *):
12118            - Superscripts do need to move right after an italic <mi>.
12119        (math > mo, mrow > mo, msqrt > mo, mtd > mo):
12120            - These are ok values for now. It will be better to use different values for different operators, as the FIXME says.
12121        (math > mo:last-child, mrow > mo:last-child, msqrt > mo:last-child, mtd > mo:last-child):
12122            - Prefix and postfix operators, including fences, generally get less spacing than infix operators.
12123        
12124        * rendering/mathml/RenderMathMLFenced.cpp:
12125        (WebCore::RenderMathMLFenced::createMathMLOperator):
12126            - Usually the separator is a comma or semicolon, so we only put space after it for now.
12127        (WebCore::RenderMathMLFenced::makeFences):
12128        (WebCore::RenderMathMLFenced::addChild):
12129        (WebCore::RenderMathMLFenced::styleDidChange):
12130        * rendering/mathml/RenderMathMLFenced.h:
12131        (RenderMathMLFenced):
12132        
12133        * rendering/mathml/RenderMathMLFraction.cpp:
12134        (WebCore):
12135        (WebCore::RenderMathMLFraction::updateFromElement):
12136            - gDenominatorPad is now handled by mathml.css.
12137        
12138        * rendering/mathml/RenderMathMLSubSup.cpp:
12139        (WebCore):
12140        (WebCore::RenderMathMLSubSup::fixScriptsStyle):
12141            - gSubsupScriptMargin is now handled by mathml.css.
12142
121432012-09-20  Tommy Widenflycht  <tommyw@google.com>
12144
12145        MediaStream API: Extend UserMediaRequest with a ownerDocument method
12146        https://bugs.webkit.org/show_bug.cgi?id=97095
12147
12148        Reviewed by Adam Barth.
12149
12150        Chromium need to know exactly which frame called getUserMedia so that it can
12151        clean away the stream when the frame goes away.
12152        Since that information is available in webkit add an accessor method.
12153
12154        Chromium mock class extended to test the added method.
12155
12156        * Modules/mediastream/UserMediaRequest.cpp:
12157        (WebCore::UserMediaRequest::ownerDocument):
12158        (WebCore):
12159        * Modules/mediastream/UserMediaRequest.h:
12160        (WebCore):
12161        (UserMediaRequest):
12162
121632012-09-20  Levi Weintraub  <leviw@chromium.org>
12164
12165        Prevent reading stale data from InlineTextBoxes
12166        https://bugs.webkit.org/show_bug.cgi?id=94750
12167
12168        Reviewed by Eric Seidel.
12169
12170        Text from dirty InlineTextBoxes should never be read or used. This change enforces this
12171        design goal by forcefully zero-ing out the start and length of InlineTextBoxes when 
12172        they're being marked dirty. It also adds asserts to accessors for those members.
12173
12174        This change involves making markDirty virtual. Running the line-layout performance test
12175        as well as profiling resizing the html5 spec showed negligable impact with this change.
12176
12177        No new tests as this doesn't change any proper behavior.
12178
12179        * rendering/InlineBox.h:
12180        (WebCore::InlineBox::markDirty): Making virtual to allow InlineTextBox to overload and
12181        zero out its start and length.
12182        * rendering/InlineTextBox.cpp:
12183        (WebCore::InlineTextBox::markDirty): Zeroing out start and length when we mark the box dirty.
12184        * rendering/InlineTextBox.h:
12185        (WebCore::InlineTextBox::start): Adding an assert when we hit this case.
12186        (WebCore::InlineTextBox::end): Ditto.
12187        (WebCore::InlineTextBox::len): Ditto.
12188        (WebCore::InlineTextBox::offsetRun): Ditto.
12189
121902012-09-20  Mike West  <mkwst@chromium.org>
12191
12192        Support paths in Content Security Policy directives.
12193        https://bugs.webkit.org/show_bug.cgi?id=89750
12194
12195        Reviewed by Adam Barth.
12196
12197        In CSP 1.0, paths are simply ignored: 'script-src
12198        http://example.com/path/to/a/file' would allow script to be loaded from
12199        http://example.com/path/to/a/file/javascript.js, but also from
12200        http://example.com/javascript.js.
12201
12202        This patch is an experimental implementation of more granular path
12203        support in CSP source lists as proposed in the current editor's draft of
12204        CSP 1.1. Paths are treated as specifying directories in which resources
12205        can be found, and are implicitly terminated with a '/': in other words,
12206        'script-src http://a.com/path' is the same as
12207        'script-src http://a.com/path/'. Moreover, paths cannot contain either
12208        '?' or '#' characters.
12209
12210        This is implemented outside the CSP_NEXT flag. All ports will be
12211        effected.
12212
12213        Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#matching
12214
12215        Tests: http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html
12216               http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02.html
12217
12218        * page/ContentSecurityPolicy.cpp:
12219        (WebCore::CSPSource::CSPSource):
12220            Store a path along with each CSP source.
12221        (WebCore::CSPSource::matches):
12222            Check the path when comparing a URL to the source.
12223        (WebCore::CSPSource::pathMatches):
12224            Compare the URL-decoded version of the resource to validate against
12225            the source's stored path. If the resource's path begins with the
12226            stored path, then it matches! If not, it doesn't.
12227        (CSPSource):
12228            Store a path along with each CSP source.
12229        (WebCore::CSPSourceList::parse):
12230            Pass a 'path' in when creating CSPSource objects.
12231        (WebCore::CSPSourceList::parsePath):
12232            Actually parse the path, flagging errors if '?' or '#' are present,
12233            URL-decoding the result, and ensuring that a terminal '/' is
12234            added if necessary.
12235        (WebCore::CSPSourceList::addSourceSelf):
12236            Ensure that 'self' sources have an empty path.
12237        * page/ContentSecurityPolicy.h:
12238            Dropping the "ignored path component" console warning.
12239
122402012-09-20  Joanmarie Diggs  <jdiggs@igalia.com>
12241
12242        [GTK] ControlsPanel string is not localized in LocalizedStringsGtk
12243        https://bugs.webkit.org/show_bug.cgi?id=96502
12244
12245        Reviewed by Chris Fleizach.
12246
12247        Adds the ControlsPanel string to the strings localized in LocalizedStringsGtk.
12248
12249        Test: platform/gtk/accessibility/media-controls-panel-title.html
12250
12251        * platform/gtk/LocalizedStringsGtk.cpp:
12252        (WebCore::localizedMediaControlElementString):
12253
122542012-09-20  Julien Chaffraix  <jchaffraix@webkit.org>
12255
12256        Remove isStartColumn in the border collapsing code
12257        https://bugs.webkit.org/show_bug.cgi?id=97024
12258
12259        Reviewed by Abhishek Arya.
12260
12261        isStartColumn is embedding the same information as prevCell. As we need to compute it
12262        in most of the cases, we may as well just reuse them.
12263
12264        While touching this code, I cleaned up the code by removing some unneeded checks and renaming
12265        some variables in preparation for bug 79272.
12266
12267        Refactoring covered by existing collapsing borders tests.
12268
12269        * rendering/RenderTableCell.cpp:
12270        (WebCore::RenderTableCell::computeCollapsedStartBorder):
12271        Removed |isStartColumn|.
12272
12273        (WebCore::RenderTableCell::computeCollapsedEndBorder):
12274        Added a comment about why |isEndColumn| is needed. Also cleaned up this code to be
12275        consistent with computeCollapsedStartBorder.
12276
122772012-09-20  Andrey Adaikin  <aandrey@chromium.org>
12278
12279        Web Inspector: setPropertyValue does not work for non-finite numbers
12280        https://bugs.webkit.org/show_bug.cgi?id=97016
12281
12282        Reviewed by Vsevolod Vlasov.
12283
12284        Fix: setting a property to NaN, Infinity or -Infinity numbers did not work.
12285
12286        * inspector/front-end/RemoteObject.js:
12287        (WebInspector.RemoteObject.prototype.setPropertyValue):
12288
122892012-09-20  Otto Derek Cheung  <otcheung@rim.com>
12290
12291        Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
12292        https://bugs.webkit.org/show_bug.cgi?id=95491
12293
12294        Reviewed by Vsevolod Vlasov.
12295
12296        Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
12297        https://bugs.webkit.org/show_bug.cgi?id=95491
12298
12299        Fixing a typo that causes cookies to appear as a "Session"
12300        cookie in the Networking panel because it can never find a properly named
12301        "expired" header.
12302
12303        This bug exposes another bug where the cookie GMT strings are inproperly
12304        parsed, causing an "invalid date" error to show up in the cookies tab in 
12305        the Networking panel.
12306
12307        Also changed test expectations in LayoutTests/inspector/cookie-parser-expected.txt
12308
12309        * inspector/front-end/CookieParser.js:
12310        (WebInspector.Cookie.prototype.get session):
12311
123122012-09-20  Alexander Pavlov  <apavlov@chromium.org>
12313
12314        Web Inspector: [Elements] Word wrap disablement in the DOM tree broken
12315        https://bugs.webkit.org/show_bug.cgi?id=97185
12316
12317        Reviewed by Pavel Feldman.
12318
12319        Restored the effective "white-space: nowrap" for the tree elements.
12320
12321        * inspector/front-end/inspector.css:
12322        (.nowrap):
12323
123242012-09-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
12325
12326        [TouchAdjustment] Simplify and improve hybrid distance function.
12327        https://bugs.webkit.org/show_bug.cgi?id=96519
12328
12329        Reviewed by Antonio Gomes.
12330
12331        The current distance function is a combination of two functions. One measuring the distance from
12332        the hot-spot in the touch-area to the centerline of the target, and one measuring how much of the
12333        target is covered.
12334
12335        The distance to the center-line was used instead of just the distance to the target, to make it
12336        easier to hit small targets near big targets. The very same feature is however also the reason
12337        measuring how much the target is covered is added. Using the distance to center-line is therefore
12338        redundant now, and can be replaced with the simpler 'distance the hot-spot needs to be adjusted'.
12339
12340        Tested by existing touchadjustment tests.
12341
12342        * page/TouchAdjustment.cpp:
12343        (TouchAdjustment):
12344        (WebCore::TouchAdjustment::hybridDistanceFunction):
12345        * platform/graphics/IntRect.cpp:
12346        * platform/graphics/IntRect.h:
12347        (IntRect):
12348
123492012-09-20  Yoshifumi Inoue  <yosin@chromium.org>
12350
12351        [Forms] HTMLSelectElement should call formStateDidChange on both menulist and lisbox mode
12352        https://bugs.webkit.org/show_bug.cgi?id=97177
12353
12354        Reviewed by Kent Tamura.
12355
12356        This patch makes listbox mode select element to call formStateDidChange()
12357        when selected options are changed.
12358
12359        For this change, this patch moves notifyFormStateChanged() to
12360        HTMLFormControlElementWithState class from HTMLTextFormControlElement
12361        for sharing code HTMLSelectElement class and HTMLInputElement/HTMLTextAreaElement
12362        derived from HTMLTextFormControlElement.
12363
12364        No new tests. We can't test this change in WebKit test tools. Test script
12365        will be implemented in Chromium side.
12366
12367        * html/HTMLFormControlElementWithState.cpp:
12368        (WebCore::HTMLFormControlElementWithState::notifyFormStateChanged):
12369        (WebCore):
12370        * html/HTMLFormControlElementWithState.h: Moved a declaration of notifyFormStateChanged() from HTMLTextFormControlElement.
12371        (HTMLFormControlElementWithState): Moved an implemented of notifyFormStateChanged() from HTMLTextFormControlElement.
12372        * html/HTMLSelectElement.cpp:
12373        (WebCore::HTMLSelectElement::selectOption): Changed to call notifyFormStateChanged() instead of formStateDidChange().
12374        (WebCore::HTMLSelectElement::updateListBoxSelection): Changed to call notifyFormStateChanged().
12375        * html/HTMLTextFormControlElement.cpp: Moved an implemented of notifyFormStateChanged() to HTMLFormControlElementWithState class.
12376        * html/HTMLTextFormControlElement.h: Moved a declaration of notifyFormStateChanged() to HTMLFormControlElementWithState class.
12377
123782012-09-20  Keishi Hattori  <keishi@webkit.org>
12379
12380        REGRESSION(r127727): Can't navigate between months with arrow keys in calendar picker
12381        https://bugs.webkit.org/show_bug.cgi?id=97166
12382
12383        Reviewed by Kent Tamura.
12384
12385        Fixing bug in r127727 so arrow keys work properly.
12386
12387        Test: fast/forms/date/calendar-picker-key-operations.html
12388
12389        * Resources/pagepopups/calendarPicker.js:
12390        (DaysTable.prototype._maybeSetPreviousMonth):
12391        (DaysTable.prototype._maybeSetNextMonth):
12392
123932012-09-18  Alexander Pavlov  <apavlov@chromium.org>
12394
12395        Web Inspector: Use and process the actual ScriptId in the protocol EventListener object
12396        https://bugs.webkit.org/show_bug.cgi?id=93271
12397
12398        Reviewed by Yury Semikhatsky.
12399
12400        - Use the actual script identifier in the "location" object's "scriptId" field
12401          for the DOM.EventListener protocol type, but send the script URL in the new "sourceName" field.
12402        - Use 0-based lines in the "location" object's "lineNumber" field for linkifyRawLocation() to work correctly.
12403        - Fixed formatting of links to listener locations to contain "(program)" rather than empty string.
12404
12405        * bindings/js/ScriptEventListener.cpp:
12406        (WebCore::eventListenerHandlerLocation):
12407        * bindings/js/ScriptEventListener.h:
12408        (WebCore):
12409        * bindings/v8/ScriptEventListener.cpp:
12410        (WebCore::eventListenerHandlerLocation):
12411        * bindings/v8/ScriptEventListener.h:
12412        (WebCore):
12413        * inspector/Inspector.json:
12414        * inspector/InspectorDOMAgent.cpp:
12415        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
12416        * inspector/front-end/BreakpointsSidebarPane.js:
12417        * inspector/front-end/EventListenersSidebarPane.js:
12418        * inspector/front-end/Linkifier.js:
12419        (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
12420        * inspector/front-end/ResourceUtils.js:
12421        (WebInspector.formatLinkText): Use "(program)" if URL is empty.
12422
124232012-09-19  Dan Bernstein  <mitz@apple.com>
12424
12425        WebCore part of adding a setting and API for disabling screen font substitution
12426        https://bugs.webkit.org/show_bug.cgi?id=97168
12427
12428        Reviewed by Tim Horton.
12429
12430        * WebCore.exp.in: Added an entry for Settings::setScreenFontSubstitutionEnabled.
12431        * css/StyleResolver.cpp:
12432        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use printer fonts if
12433        screen font substitution is not enabled.
12434        * page/Settings.cpp:
12435        (WebCore::Settings::Settings): Added initializer for new m_screenFontSubstitutionEnabled
12436        member variable. The initial value is true, matching existing behavior.
12437        (WebCore::Settings::setScreenFontSubstitutionEnabled): Added this setter, which updated the
12438        member variable and forces a style recalc in all pages using this Settings.
12439        * page/Settings.h:
12440        (Settings): Added m_screenFontSubstitutionEnabled boolean member variable.
12441        (WebCore::Settings::screenFontSubstitutionEnabled): Added this getter.
12442
124432012-09-19  Yoshifumi Inoue  <yosin@chromium.org>
12444
12445        [Forms] multiple fields time input UI should call notifyFormStateChanged() when value of field is changed
12446        https://bugs.webkit.org/show_bug.cgi?id=97169
12447
12448        Reviewed by Kent Tamura.
12449
12450        This patch makes multiple fields time input UI calls notifyFormStateChanged()
12451        when field value is changed as other input types do.
12452
12453        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
12454        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
12455
12456        No new tests. We can't test this change in WebKit test tools. Test script
12457        will be implemented in Chromium side.
12458
12459        * html/TimeInputType.cpp:
12460        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
12461
124622012-09-19  Keishi Hattori  <keishi@webkit.org>
12463
12464        REGRESSION(r127727): Calendar picker focus ring should be hidden until key event
12465        https://bugs.webkit.org/show_bug.cgi?id=97165
12466
12467        Reviewed by Kent Tamura.
12468
12469        The regression was caused because NoFocusRing class was being removed
12470        from then main element inside resetMain().
12471
12472        No new tests. Covered by calendar-picker-appearance.html.
12473
12474        * Resources/pagepopups/calendarPicker.js:
12475        (initialize):
12476        (CalendarPicker):
12477        (CalendarPicker.prototype._layout):
12478        (DaysTable.prototype._handleKey):
12479        (CalendarPicker.prototype._handleBodyKeyDown):
12480        (CalendarPicker.prototype.maybeUpdateFocusStyle): Make this a method of CalendarPicker because we don't use it for other pickers.
12481
124822012-09-19  David Grogan  <dgrogan@chromium.org>
12483
12484        IndexedDB: Print console warning about setVersion
12485        https://bugs.webkit.org/show_bug.cgi?id=96575
12486
12487        Reviewed by Tony Chang.
12488
12489        setVersion has been out of the spec for almost a year but there are
12490        still a lot of users.
12491
12492        We show the warning once per database object as an approximation for
12493        once per page.
12494
12495        No new tests, but 150-something rebaselines.
12496
12497        * Modules/indexeddb/IDBDatabase.cpp:
12498        (WebCore::IDBDatabase::IDBDatabase):
12499        (WebCore::IDBDatabase::setVersion):
12500        * Modules/indexeddb/IDBDatabase.h:
12501        (IDBDatabase):
12502
125032012-09-19  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
12504
12505        [BlackBerry] Basic authentication challenge credentials for stored credentials again after restarting browser
12506        https://bugs.webkit.org/show_bug.cgi?id=96362
12507
12508        Reviewed by Rob Buis.
12509
12510        This patch enable reading credentials from the persistent credential storage
12511        when it is not private browsing mode and there is not a credential in the RAM
12512        for the requested resource.
12513
12514        Since we don't load persistent stored credentials into RAM at the starting time,
12515        even we have saved the credentials at the last browsing, after restarting the browser,
12516        it will still challenge for credentials for the requesting resources.
12517
12518        No new tests, it uses the original authentication tests. There is no way to
12519        clear all credentials or restarting browsers to test this feature.
12520
12521        * platform/network/blackberry/CredentialBackingStore.cpp:
12522        (WebCore::CredentialBackingStore::getProtectionSpace):
12523        (WebCore):
12524        * platform/network/blackberry/CredentialBackingStore.h:
12525        (CredentialBackingStore):
12526        * platform/network/blackberry/NetworkManager.cpp:
12527        (WebCore::NetworkManager::startJob):
12528
125292012-09-19  Shinya Kawanaka  <shinyak@chromium.org>
12530
12531        [Refactoring] ButtonInputType of <input> element should have innerElement to make <input> AuthorShadowDOM-ready
12532        https://bugs.webkit.org/show_bug.cgi?id=95939
12533
12534        Reviewed by Dimitri Glazkov.
12535
12536        We had 2 ways to show text in RenderButton. One is to use RenderButton::setText() and the other is to add renderer
12537        as a child of RenderButton. <input type="button"> used the former one, and <button> used the latter one.
12538        The former makes RenderButton a bit messy, and also prevents from making <input> AuthorShadowDOM ready.
12539
12540        So we remove RenderButton::setText() and refactor <input type="button"> to use a Shadow DOM to show text.
12541
12542        Since the text in <input type="button"> should create RenderTextFragment, we introduce TextForButtonInputType
12543        class. RenderText will allow us to select the inner text of <input>, but it should not.
12544
12545        No new tests, existing tests should cover the change.
12546
12547        * html/BaseButtonInputType.cpp:
12548        (TextForButtonInputType): Special Text node which creates RenderTextFragment.
12549        (WebCore):
12550        (WebCore::TextForButtonInputType::create):
12551        (WebCore::TextForButtonInputType::TextForButtonInputType):
12552        (WebCore::TextForButtonInputType::createRenderer):
12553        (WebCore::BaseButtonInputType::BaseButtonInputType):
12554        (WebCore::BaseButtonInputType::createShadowSubtree):
12555        (WebCore::BaseButtonInputType::destroyShadowSubtree):
12556        (WebCore::BaseButtonInputType::valueAttributeChanged): When a button value is changed, we reflect the value to
12557        the text node in ShadowDOM.
12558        * html/BaseButtonInputType.h:
12559        (BaseButtonInputType):
12560        * html/FileInputType.cpp:
12561        (WebCore::UploadButtonElement::create): Creates Shadow DOM subtree.
12562        (WebCore::UploadButtonElement::createForMultiple): Creates Shadow DOM subtree.
12563        * html/HTMLInputElement.cpp:
12564        (WebCore::HTMLInputElement::parseAttribute):
12565        * html/InputType.cpp:
12566        (WebCore::InputType::valueAttributeChanged):
12567        (WebCore):
12568        * html/InputType.h:
12569        (InputType):
12570        * rendering/RenderButton.cpp:
12571        (WebCore::RenderButton::RenderButton):
12572        (WebCore::RenderButton::styleDidChange): Removed unnecessary text related code.
12573        * rendering/RenderButton.h:
12574        (RenderButton):
12575
125762012-09-19  Jason Liu  <jason.liu@torchmobile.com.cn>
12577
12578        [BlackBerry] Get infinite amount of requests after attempting re-authentication basic.
12579        https://bugs.webkit.org/show_bug.cgi?id=96994
12580
12581        Reviewed by Rob Buis.
12582
12583        We should remove the wrong credentials before calling sendRequestWithCredentials again.
12584        #PR 200226
12585        Reviewed internally by Jonathan Dong.
12586
12587        No new tests. It is covered by ManualTests/blackberry/http-auth-challenge.html.
12588
12589
12590        * platform/network/blackberry/NetworkJob.cpp:
12591        (WebCore::NetworkJob::notifyAuthReceived):
12592
125932012-09-19  Adam Barth  <abarth@webkit.org>
12594
12595        Remove Blob.webkitSlice
12596        https://bugs.webkit.org/show_bug.cgi?id=96715
12597
12598        Reviewed by Darin Fisher.
12599
12600        Based on these usage metrics, it appears that it is safe to remove
12601        Blob.webkitSlice. Folks that were previously calling webkitSlice should
12602        just call slice instead. They do the same thing.
12603
12604        Ratio of Blob.webkitSlice calls to Blob.slice: 14.87%
12605        Ratio of Blob.webkitSlice calls to Document creation: 0.0053%
12606
12607        * fileapi/Blob.cpp:
12608        (WebCore::Blob::slice):
12609        * fileapi/Blob.h:
12610        (Blob):
12611        * fileapi/Blob.idl:
12612        * fileapi/File.h:
12613        (File):
12614        * inspector/front-end/FileUtils.js:
12615        (WebInspector.ChunkedFileReader.prototype._loadChunk):
12616
126172012-09-19  Julien Chaffraix  <jchaffraix@webkit.org>
12618
12619        The collapsing border code needs direction-aware border getters
12620        https://bugs.webkit.org/show_bug.cgi?id=96710
12621
12622        Reviewed by Ojan Vafai.
12623
12624        This refactoring is needed to extend our collapsing border support for mixed directionality
12625        at the table cell level (we currently wrongly ignore any direction below the row-group). For
12626        now, the new helpers are dumb and return exactly the old result but they will be made
12627        direction-aware in a follow-up change.
12628
12629        Refactoring covered by existing tests.
12630
12631        * rendering/RenderBox.h:
12632        (WebCore::RenderBox::hasSameDirectionAs):
12633        Added this helper function. For now, it's only used to compare against
12634        the table direction but we will reuse it to compare the current cell
12635        direction against the other table parts.
12636
12637        * rendering/RenderTableCell.h:
12638        (WebCore::RenderTableCell::computeCollapsedStartBorder):
12639        (WebCore::RenderTableCell::computeCollapsedEndBorder):
12640        Transitioned those 2 functions to using the new direction-aware functions.
12641
12642        * rendering/RenderTable.cpp:
12643        (WebCore::RenderTable::tableStartBorderAdjoiningCell):
12644        (WebCore::RenderTable::tableEndBorderAdjoiningCell):
12645        * rendering/RenderTableSection.cpp:
12646        (WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
12647        (WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
12648        * rendering/RenderTableCell.h:
12649        (WebCore::RenderTableCell::borderAdjoiningTableStart):
12650        (WebCore::RenderTableCell::borderAdjoiningTableEnd):
12651        * rendering/RenderTableSection.h:
12652        (WebCore::RenderTableSection::borderAdjoiningTableStart):
12653        (WebCore::RenderTableSection::borderAdjoiningTableEnd):
12654        Updated those call sites to use RenderBox::hasSameDirectionAs.
12655
12656        * rendering/RenderTableCell.h:
12657        (WebCore::RenderTableCell::borderAdjoiningNextCell):
12658        (WebCore::RenderTableCell::borderAdjoiningPreviousCell):
12659        * rendering/RenderTableCol.cpp:
12660        (WebCore::RenderTableCol::borderAdjoiningCellStartBorder):
12661        (WebCore::RenderTableCol::borderAdjoiningCellEndBorder):
12662        (WebCore::RenderTableCol::borderAdjoiningCellBefore):
12663        (WebCore::RenderTableCol::borderAdjoiningCellAfter):
12664        * rendering/RenderTableCol.h:
12665        * rendering/RenderTableRow.cpp:
12666        (WebCore::RenderTableRow::borderAdjoiningStartCell):
12667        (WebCore::RenderTableRow::borderAdjoiningEndCell):
12668        * rendering/RenderTableRow.h:
12669        (WebCore::RenderTableRow::borderAdjoiningTableStart):
12670        (WebCore::RenderTableRow::borderAdjoiningTableEnd):
12671        * rendering/RenderTableSection.cpp:
12672        (WebCore::RenderTableSection::borderAdjoiningStartCell):
12673        (WebCore::RenderTableSection::borderAdjoiningEndCell):
12674        New direction-aware functions. Added some ASSERT to ensure
12675        we don't call them with the wrong parameters.
12676
126772012-09-19  Kentaro Hara  <haraken@chromium.org>
12678
12679        [V8] ScriptController::compileAndRunScript() can crash
12680        https://bugs.webkit.org/show_bug.cgi?id=96567
12681
12682        Reviewed by Adam Barth.
12683
12684        See chromium bug: http://code.google.com/p/chromium/issues/detail?id=146776
12685
12686        The root cause is that v8::PreCompile() can return 0 when the stack of
12687        V8's parser overflows (c.f. http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/src/parser.cc&exact_package=chromium&q=kPreParseStackOverflow&type=cs&l=6021).
12688
12689        This patch adds the 0 check to the caller side. Given that precompileScript()
12690        is just trying to speculatively precompile a script, it's OK to give up
12691        precompiling for such edge cases.
12692
12693        Manually tested with the html generated by the following shell script:
12694
12695          echo '<script language="JavaScript" type="text/javascript" src="asan-crash.js"></script>' > asan-crash.html
12696          echo 'if(wURLF.search("")>=0) {}' > asan-crash.js
12697          for i in `seq 14830`
12698          do
12699            echo 'else if(wURLF.search("")>=0) {}' >> asan-crash.js
12700          done
12701
12702        I didn't add the test because '14380' depends on an environment
12703        and because we don't want to add a huge html test.
12704
12705        * bindings/v8/ScriptSourceCode.cpp:
12706        (WebCore::ScriptSourceCode::precompileScript):
12707
127082012-09-19  Joshua Bell  <jsbell@chromium.org>
12709
12710        IndexedDB: Pending call cleanup
12711        https://bugs.webkit.org/show_bug.cgi?id=96952
12712
12713        Reviewed by Tony Chang.
12714
12715        Replace RefPtr usage with OwnPtr for PendingXXXCalls (since they're never referenced twice)
12716        and replace queue of "second half open" calls with a single item.
12717
12718        No new tests - no functional changes.
12719
12720        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
12721        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
12722        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
12723        (WebCore::IDBDatabaseBackendImpl::PendingDeleteCall::create):
12724        (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::create):
12725        (WebCore::IDBDatabaseBackendImpl::setVersion):
12726        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
12727        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
12728        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
12729        (WebCore::IDBDatabaseBackendImpl::close):
12730        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
12731        (IDBDatabaseBackendImpl):
12732
127332012-09-19  Kenichi Ishibashi  <bashi@chromium.org>
12734
12735        [Chromium] Improve glyph positioning of HarfBuzzShaper
12736        https://bugs.webkit.org/show_bug.cgi?id=97093
12737
12738        Reviewed by Tony Chang.
12739
12740        For proper positioning, HarfBuzzShaper requires the positions(offsets and advance)
12741        of the previous glyph. This mean we need to shape all HarfBuzzRuns before glyph positioning.
12742        Collect and shape HarfBuzzRuns, then set positions of glyphs.
12743
12744        No new tests. Tests that uses spacing for complex text (e.g. fast/text/atsui-negative-spacing-features.html)
12745        should close in the expectations. (not the identical, maybe there are subtle differences between
12746        harfbuzz old and harfbuzz ng)
12747
12748        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
12749        (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Allocate m_offsets.
12750        (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions): Renamed and set offset too.
12751        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
12752        (WebCore::HarfBuzzShaper::shape): Call fillGlyphBuffer() if we need to fill glyphBuffer.
12753        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Removed glyph positioning code.
12754        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Ditto.
12755        (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun): Added.
12756        (WebCore):
12757        (WebCore::HarfBuzzShaper::fillGlyphBuffer): Added.
12758        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
12759        (HarfBuzzRun):
12760        (WebCore::HarfBuzzShaper::HarfBuzzRun::offsets): Added.
12761        (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes): Added.
12762        (HarfBuzzShaper):
12763
127642012-09-19  James Simonsen  <simonjam@chromium.org>
12765
12766        [Chromium] Disable resource load scheduling
12767        https://bugs.webkit.org/show_bug.cgi?id=97131
12768
12769        Reviewed by Nate Chapin.
12770
12771        We'll use Chrome's network stack for scheduling instead.
12772
12773        No new tests.
12774
12775        * loader/ResourceLoadScheduler.cpp:
12776        * loader/cache/CachedResourceLoader.cpp:
12777        (WebCore::CachedResourceLoader::preload):
12778
127792012-09-19  Dan Bernstein  <mitz@apple.com>
12780
12781        When kerning is enabled, word spacing is doubly accounted for in RenderText::computePreferredLogicalWidths
12782        https://bugs.webkit.org/show_bug.cgi?id=97146
12783
12784        Reviewed by Anders Carlsson.
12785
12786        Test: fast/text/word-space-with-kerning.html
12787
12788        * rendering/RenderText.cpp:
12789        (WebCore::RenderText::computePreferredLogicalWidths): When kerning is enabled, words are
12790        measured with their trailing space, if there is one, then the width of a space is subtracted.
12791        Changed that width, stored in the local variable wordTrailingSpaceWidth, to include the
12792        word spacing, since it is included in the result of widthFromCache().
12793
127942012-09-19  Joshua Bell  <jsbell@chromium.org>
12795
12796        IndexedDB: Remove "current transaction" concept from backing store
12797        https://bugs.webkit.org/show_bug.cgi?id=96663
12798
12799        Reviewed by Tony Chang.
12800
12801        IndexedDB should allow multiple transactions to run in parallel within and
12802        across databases within an origin. As an initial step to enabling this, the
12803        backing store should not hold a "current transaction" - instead, operations
12804        should be done relative to a transaction managed by the database.
12805
12806        No new tests - no functional changes.
12807
12808        * Modules/indexeddb/IDBBackingStore.h:
12809        (IDBBackingStore):
12810        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
12811        (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
12812        (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
12813        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
12814        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
12815        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
12816        (IDBDatabaseBackendImpl):
12817        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
12818        (WebCore::IDBIndexBackendImpl::openCursorInternal):
12819        (WebCore::IDBIndexBackendImpl::countInternal):
12820        (WebCore::IDBIndexBackendImpl::count):
12821        (WebCore::IDBIndexBackendImpl::getInternal):
12822        (WebCore::IDBIndexBackendImpl::getKeyInternal):
12823        (WebCore::IDBIndexBackendImpl::get):
12824        (WebCore::IDBIndexBackendImpl::getKey):
12825        * Modules/indexeddb/IDBIndexBackendImpl.h:
12826        (IDBIndexBackendImpl):
12827        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
12828        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
12829        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
12830        (WebCore::IDBLevelDBBackingStore::createObjectStore):
12831        (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
12832        (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
12833        (WebCore):
12834        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
12835        (WebCore::IDBLevelDBBackingStore::clearObjectStore):
12836        (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
12837        (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
12838        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
12839        (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
12840        (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
12841        (WebCore::IDBLevelDBBackingStore::createIndex):
12842        (WebCore::IDBLevelDBBackingStore::deleteIndex):
12843        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
12844        (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
12845        (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
12846        (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
12847        (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
12848        (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
12849        (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
12850        (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
12851        (WebCore::IDBLevelDBBackingStore::openIndexCursor):
12852        (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
12853        (WebCore::IDBLevelDBBackingStore::Transaction::begin):
12854        (WebCore::IDBLevelDBBackingStore::Transaction::commit):
12855        (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
12856        * Modules/indexeddb/IDBLevelDBBackingStore.h:
12857        (IDBLevelDBBackingStore):
12858        (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransaction):
12859        (Transaction):
12860        (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
12861        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
12862        (WebCore::IDBObjectStoreBackendImpl::get):
12863        (WebCore::IDBObjectStoreBackendImpl::getInternal):
12864        (WebCore):
12865        (WebCore::makeIndexWriters):
12866        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
12867        (WebCore::IDBObjectStoreBackendImpl::putInternal):
12868        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
12869        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
12870        (WebCore::IDBObjectStoreBackendImpl::clear):
12871        (WebCore::IDBObjectStoreBackendImpl::clearInternal):
12872        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
12873        (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
12874        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
12875        (WebCore::IDBObjectStoreBackendImpl::count):
12876        (WebCore::IDBObjectStoreBackendImpl::countInternal):
12877        (WebCore::IDBObjectStoreBackendImpl::generateKey):
12878        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
12879        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
12880        (IDBObjectStoreBackendImpl):
12881
128822012-09-19  Terry Anderson  <tdanderson@chromium.org>
12883
12884        [chromium] Store the contents scale factor in PlatformContextSkia on initialization
12885        https://bugs.webkit.org/show_bug.cgi?id=96137
12886
12887        Reviewed by Stephen White.
12888
12889        When the compositor creates a PlatformContextSkia, the scale on |canvas| will 
12890        be equal to the content scale factor (which, without pinch-to-zoom, will be
12891        the same as the device scale factor). Set this value as a member on PlatformContextSkia, 
12892        which will be used to correctly render glyphs when hinting is used and the device
12893        scale factor is not 1.
12894
12895        Tests: added two new unit tests.
12896
12897        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
12898        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
12899        * platform/graphics/skia/PlatformContextSkia.cpp:
12900        (WebCore::PlatformContextSkia::PlatformContextSkia):
12901        (WebCore::PlatformContextSkia::setupPaintCommon):
12902        * platform/graphics/skia/PlatformContextSkia.h:
12903        (PlatformContextSkia):
12904        (WebCore::PlatformContextSkia::setHintingScaleFactor):
12905        (WebCore::PlatformContextSkia::hintingScaleFactor):
12906
129072012-09-19  Kenichi Ishibashi  <bashi@chromium.org>
12908
12909        [Chromium] HarfBuzzShaper should take into account combining characters
12910        https://bugs.webkit.org/show_bug.cgi?id=97069
12911
12912        Reviewed by Tony Chang.
12913
12914        When dividing a text run into HarfBuzzRuns, try to find suitable SimpleFontData for
12915        combining character sequence if there are one or more mark characters are followed.
12916        If there is no combined glyphs in the font, use fallback font for mark characters.
12917
12918        No new tests.
12919        In platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html,
12920        U+0947 (devanagari vowel sign e) should be displayed.
12921        In fast/text/wide-zero-width-space.html, &eacute; and e&#0301; should look identical.
12922
12923        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
12924        (WebCore):
12925        (WebCore::fontDataForCombiningCharacterSequence): Added.
12926        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns): See above description.
12927
129282012-09-19  Tony Chang  <tony@chromium.org>
12929
12930        Remove RenderIFrame::updateLogicalHeight and RenderIFrame::updateLogicalWidth
12931        https://bugs.webkit.org/show_bug.cgi?id=97049
12932
12933        Reviewed by Ojan Vafai.
12934
12935        This is an incremental step in making updateLogicalHeight non-virtual so it's
12936        possible to call computeLogicalHeight on any RenderBox and get the right
12937        version of the function.
12938
12939        The code in RenderIFrame::layout was calling flattenFrame(), which would
12940        query it's bounding box size.  Since we hadn't done a layout yet, the size
12941        is unknown.  The fix is to only call flattenFrame() after calling
12942        updateLogicalWidth and updateLogicalHeight. We can then fixup the size of
12943        the iframe.
12944
12945        No new tests, existing tests in fast/frames/flattening should continue to pass.
12946
12947        * rendering/RenderIFrame.cpp:
12948        (WebCore::RenderIFrame::layout):
12949        * rendering/RenderIFrame.h:
12950        (RenderIFrame):
12951
129522012-09-19  Joshua Bell  <jsbell@chromium.org>
12953
12954        IndexedDB: Free up resources used by completed cursors earlier
12955        https://bugs.webkit.org/show_bug.cgi?id=97023
12956
12957        Reviewed by Tony Chang.
12958
12959        Prior to this patch, IDBCursor objects are kept around by their parent
12960        IDBTransaction until the transaction finishes. It's possible to release
12961        references to them earlier, when the cursor has been "run to the end",
12962        as no further events will fire and all calls to continue() etc should fail.
12963
12964        This change tells the cursor it's done when "null" finally comes through in
12965        the IDBRequest, and the cursor then lets transaction know it can be
12966        forgotten.
12967
12968        The added test doesn't distinguish the new behavior, but does exercise
12969        "finished" cursors and apparently we didn't have tests for these before.
12970
12971        Test: storage/indexeddb/cursor-finished.html
12972
12973        * Modules/indexeddb/IDBCursor.cpp:
12974        (WebCore::IDBCursor::close): Make idempotent; notify transaction.
12975        * Modules/indexeddb/IDBRequest.cpp:
12976        (WebCore::IDBRequest::onSuccess): Tell cursor it's finished before releasing.
12977        * Modules/indexeddb/IDBTransaction.cpp:
12978        (WebCore::IDBTransaction::OpenCursorNotifier::~OpenCursorNotifier):
12979        (WebCore):
12980        (WebCore::IDBTransaction::OpenCursorNotifier::cursorFinished): New method for explicit notification.
12981        * Modules/indexeddb/IDBTransaction.h:
12982        (OpenCursorNotifier):
12983
129842012-09-19  David Grogan  <dgrogan@chromium.org>
12985
12986        IndexedDB: fire upgradeneeded even without an explicit integer version
12987        https://bugs.webkit.org/show_bug.cgi?id=96444
12988
12989        Reviewed by Tony Chang.
12990
12991        Also of note:
12992        - New databases now get a default version of 1 instead of
12993        the empty string when they are opened.
12994        - We now allow databases with an integer version to revert to a string
12995        version by calling setVersion.
12996
12997        Implementation detail: we store both an integer version and string
12998        version for a particular database. If both are set we give preference
12999        to the integer version and assume the db is on the integer track.
13000
13001        Test: storage/indexeddb/intversion-two-opens-no-versions.html
13002
13003        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
13004        (WebCore):
13005        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
13006        (WebCore::IDBDatabaseBackendImpl::setVersion):
13007        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
13008        Now that this can be called even after an int version is set we have
13009        to make it revoke the int version.
13010
13011        (WebCore::IDBDatabaseBackendImpl::openConnection):
13012        Nested ifs were getting deep, so refactor to return early instead.
13013
13014        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
13015        (WebCore::IDBDatabaseBackendImpl::resetVersion):
13016        Now that an int version could have been set before setVersion was
13017        called we have to reset the int version on abort.
13018
13019        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
13020        (IDBDatabaseBackendImpl):
13021        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
13022        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
13023        * Modules/indexeddb/IDBOpenDBRequest.cpp:
13024        0 is now a valid integer version to store to leveldb if an idb
13025        database is reverting to a string version.
13026
13027        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
13028        If the open request did not specify an integer version but
13029        upgradeneeded is called, it means the database was given the default
13030        version of 1.
13031
130322012-09-19  Dominic Mazzoni  <dmazzoni@google.com>
13033
13034        AX: A few control types are returning the wrong answer for isReadOnly
13035        https://bugs.webkit.org/show_bug.cgi?id=96735
13036
13037        Reviewed by Chris Fleizach.
13038
13039        All input types should be read-only except ones that
13040        are text fields. The previous logic was marking things like
13041        checkboxes as not read-only.
13042
13043        Tests: platform/chromium/accessibility/readonly.html
13044               platform/mac/accessibility/form-control-value-settable.html
13045
13046        * accessibility/AccessibilityNodeObject.cpp:
13047        (WebCore::AccessibilityNodeObject::isReadOnly):
13048
130492012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
13050
13051        [Chromium] Remove unused PlatformSupport reference in V8GCController
13052        https://bugs.webkit.org/show_bug.cgi?id=97118
13053
13054        Reviewed by Ryosuke Niwa.
13055
13056        Part of a refactoring series. See tracking bug 82948.
13057        
13058        * bindings/v8/V8GCController.cpp:
13059
130602012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
13061
13062        [Chromium] Remove unused PlatformSupport reference in V8DOMWindowShell
13063        https://bugs.webkit.org/show_bug.cgi?id=97117
13064
13065        Reviewed by Ryosuke Niwa.
13066
13067        Part of a refactoring series. See tracking bug 82948.
13068
13069        * bindings/v8/V8DOMWindowShell.cpp:
13070
130712012-09-19  Kentaro Hara  <haraken@chromium.org>
13072
13073        [V8] Remove WorkerContextExecutionProxy::runScript()
13074        https://bugs.webkit.org/show_bug.cgi?id=97060
13075
13076        Reviewed by Adam Barth.
13077
13078        To kill WorkerContextExecutionProxy, this patch removes
13079        WorkerContextExecutionProxy::runScript() by replacing it
13080        with ScriptRunner::runCompiledScript().
13081
13082        For the replacement, this patch moves TryCatch logic in
13083        runCompiledScript() to the caller side. The reason why
13084        we have to avoid nesting TryCatches is a V8 bug:
13085        http://code.google.com/p/v8/issues/detail?id=2166
13086
13087        No tests. No change in behavior.
13088
13089        * bindings/v8/ScriptController.cpp:
13090        (WebCore::ScriptController::compileAndRunScript):
13091        * bindings/v8/ScriptRunner.cpp:
13092        (WebCore::ScriptRunner::runCompiledScript):
13093        * bindings/v8/WorkerContextExecutionProxy.cpp:
13094        (WebCore::WorkerContextExecutionProxy::evaluate):
13095        * bindings/v8/WorkerContextExecutionProxy.h:
13096        (WorkerContextExecutionProxy):
13097
130982012-09-19  Rob Buis  <rbuis@rim.com>
13099
13100        [BlackBerry] Fix vertical positioning problem for 'X' in search field
13101        https://bugs.webkit.org/show_bug.cgi?id=97126
13102
13103        Reviewed by Antonio Gomes.
13104
13105        We have the same problem as described in bug 30245, so integrate that code.
13106
13107        * platform/blackberry/RenderThemeBlackBerry.cpp:
13108        (WebCore::RenderThemeBlackBerry::convertToPaintingRect):
13109        (WebCore):
13110        (WebCore::RenderThemeBlackBerry::paintSearchFieldCancelButton):
13111
131122012-09-19  Rob Buis  <rbuis@rim.com>
13113
13114        [BlackBerry] Remove custom painting code for searchCancel
13115        https://bugs.webkit.org/show_bug.cgi?id=97119
13116
13117        Reviewed by Antonio Gomes.
13118
13119        Remove the dynamic painting code for searchCancel, we use a png file now.
13120
13121        * platform/graphics/blackberry/ImageBlackBerry.cpp:
13122        (WebCore::Image::loadPlatformResource):
13123
131242012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
13125
13126        [Chromium] Move notifyJSOutOfMemory out of PlatformSupport
13127        https://bugs.webkit.org/show_bug.cgi?id=97116
13128
13129        Reviewed by Adam Barth.
13130
13131        Part of a refactoring series. See tracking bug 82948.
13132
13133        * bindings/v8/V8Binding.cpp:
13134        (WebCore::handleOutOfMemory):
13135        * loader/FrameLoaderClient.h:
13136        (WebCore::FrameLoaderClient::didExhaustMemoryAvailableForScript):
13137        (FrameLoaderClient):
13138        * platform/chromium/PlatformSupport.h:
13139        (PlatformSupport):
13140
131412012-09-18  Dirk Schulze  <krit@webkit.org>
13142
13143        Implement 'mask-type' for <mask>
13144        https://bugs.webkit.org/show_bug.cgi?id=97011
13145
13146        Reviewed by Andreas Kling.
13147
13148        The CSS Masking specification defines the presentation attribute 'mask-type' to
13149        switch between luminance and alpha masking. 'mask-type' just affects the SVG
13150        mask element. The luminance masking is the current behavior of of SVG masking.
13151        Alpha masking is simular to '-webkit-mask-image'.
13152
13153        This patch implements this property and make it possible to switch between both
13154        masking modes. Since the default value is 'luminance', this does not break
13155        exisiting content which is tested with exisiting tests.
13156
13157        http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#the-mask-type
13158
13159        Tests: svg/css/mask-type.html
13160               svg/masking/mask-type-alpha-expected.svg
13161               svg/masking/mask-type-alpha.svg
13162               svg/masking/mask-type-luminance-expected.svg
13163               svg/masking/mask-type-luminance.svg
13164               svg/masking/mask-type-not-set-expected.svg
13165               svg/masking/mask-type-not-set.svg
13166
13167        * css/CSSComputedStyleDeclaration.cpp: Add mask-type property.
13168        (WebCore):
13169        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
13170        * css/CSSPrimitiveValueMappings.h:
13171        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
13172        (WebCore):
13173        (WebCore::CSSPrimitiveValue::operator EMaskType):
13174        * css/CSSProperty.cpp:
13175        (WebCore::CSSProperty::isInheritedProperty):
13176        * css/SVGCSSComputedStyleDeclaration.cpp:
13177        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
13178        * css/SVGCSSParser.cpp:
13179        (WebCore::CSSParser::parseSVGValue):
13180        * css/SVGCSSPropertyNames.in: Add mask-type.
13181        * css/SVGCSSStyleSelector.cpp:
13182        (WebCore::StyleResolver::applySVGProperty):
13183        * css/SVGCSSValueKeywords.in:
13184        * rendering/style/SVGRenderStyle.cpp:
13185        (WebCore::SVGRenderStyle::diff):
13186        * rendering/style/SVGRenderStyle.h:
13187        (WebCore::SVGRenderStyle::initialMaskType):
13188        (WebCore::SVGRenderStyle::setMaskType):
13189        (SVGRenderStyle):
13190        (WebCore::SVGRenderStyle::maskType):
13191        (WebCore::SVGRenderStyle::setBitDefaults):
13192        * rendering/style/SVGRenderStyleDefs.h:
13193        * rendering/svg/RenderSVGResourceMasker.cpp:
13194
13195            Switch between the two masking modes according to the
13196            computed value of mask-type.
13197
13198        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
13199        * svg/SVGStyledElement.cpp:
13200        (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
13201        (WebCore::cssPropertyToTypeMap):
13202        * svg/svgattrs.in: Add the new attribute to the attribute list.
13203
132042012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
13205
13206        [Chromium] Remove unused popupsAllowed function from PlatformSupport
13207        https://bugs.webkit.org/show_bug.cgi?id=96521
13208
13209        Reviewed by Eric Seidel.
13210
13211        Part of a refactoring series. See tracking bug 82948.
13212
13213        * bindings/v8/NPV8Object.cpp:
13214        (WebCore::v8ObjectToNPObject):
13215        (_NPN_Evaluate):
13216        (_NPN_GetProperty):
13217        * platform/chromium/PlatformSupport.h:
13218        (PlatformSupport):
13219
132202012-09-19  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
13221
13222        [BlackBerry] Add function playerId() in class PageClientBlackBerry
13223        https://bugs.webkit.org/show_bug.cgi?id=97099
13224
13225        Reviewed by Yong Li.
13226
13227        Added function playerID() in class PageClientBlackBerry.
13228
13229        Internally reviewed by Charles Wei.
13230
13231        No new tests since there's no functional change.
13232
13233        * platform/blackberry/PageClientBlackBerry.h:
13234
132352012-09-19  Raul Hudea  <rhudea@adobe.com>
13236
13237        [CSSRegions][CSSOM] Make sure all Regions APIs are not visible if CSS_REGIONS is not defined
13238        https://bugs.webkit.org/show_bug.cgi?id=96300
13239
13240        Reviewed by Yury Semikhatsky.
13241
13242        All CSS Regions APIs should be exposed only if CSS_REGIONS is enabled
13243
13244        No new tests because of no behavior changes.
13245
13246        * css/StyleRule.cpp:
13247        (WebCore::StyleRuleBase::reportMemoryUsage): Fix compile without CSS_REGIONS enabled and added an ASSERT_NOT_REACHED as in other functions
13248        * dom/Element.cpp: Compile webkitRegionOverset only if CSS_REGIONS is enabled
13249        (WebCore):
13250        * dom/Element.h:
13251        * dom/Element.idl: Expose webkitRegionOverset only if CSS_REGIONS is enabled
13252
132532012-09-19  Patrick Gansterer  <paroga@webkit.org>
13254
13255        Remove all usages of M_PI from WebCore
13256        https://bugs.webkit.org/show_bug.cgi?id=93109
13257
13258        Reviewed by Dirk Schulze.
13259
13260        <wtf/MathExtras.h> implements many functions dealing with M_PI.
13261        Use them in WebCore instead of duplicating the functionality.
13262
13263        * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
13264        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
13265        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
13266        (PlatformCALayer::setFilters):
13267        * platform/graphics/cairo/GraphicsContextCairo.cpp:
13268        (WebCore::GraphicsContext::drawEllipse):
13269        (WebCore::GraphicsContext::strokeArc):
13270        * platform/graphics/wx/FontPlatformDataWxMac.mm:
13271        * platform/mac/WebWindowAnimation.mm:
13272        (-[WebWindowScaleAnimation currentValue]):
13273        * platform/wx/wxcode/gdiplus/non-kerned-drawing.cpp:
13274        (DegToRad):
13275        (RadToDeg):
13276
132772012-09-10  Vsevolod Vlasov  <vsevik@chromium.org>
13278
13279        Web Inspector: Network request headers text fallback has typo.
13280        https://bugs.webkit.org/show_bug.cgi?id=96280
13281
13282        Reviewed by Pavel Feldman.
13283
13284        * inspector/front-end/NetworkRequest.js:
13285        (WebInspector.NetworkRequest.prototype.get requestHeadersText):
13286        (WebInspector.NetworkRequest.prototype.get responseHeadersText):
13287
132882012-09-19  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
13289
13290        [BlackBerry] remove static_cast which will cause video crash
13291        https://bugs.webkit.org/show_bug.cgi?id=97070
13292
13293        Reviewed by Antonio Gomes.
13294
13295        Removed the static_cast to avoid layering violation which
13296        will cause a runtime crash.
13297        We won't create a real MediaPlayerPrivate object before we call
13298        MediaPlayer::load(), so if we use player()->implementation()
13299        before calling load() in some cases, it points to a
13300        NullMediaPlayerPrivate object. Here we should not use static_cast,
13301        instead we should use HTMLMediaElement::percentLoaded() to
13302        avoid layering violation as we don't have the buffering bug which
13303        the deleted comment refers to.
13304
13305        Internally reviewed by Max Feil.
13306
13307        Test case: media/video-size.html
13308
13309        * platform/blackberry/RenderThemeBlackBerry.cpp:
13310        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13311
133122012-09-19  Rick Byers  <rbyers@chromium.org>
13313
13314        Do touch adjustment on GestureTapDown
13315        https://bugs.webkit.org/show_bug.cgi?id=96677
13316
13317        Reviewed by Antonio Gomes.
13318
13319        Do touch adjustment on GestureTapDown exactly as for GestureTap today.
13320
13321        Test: touchadjustment/touch-links-active.html
13322
13323        * page/EventHandler.cpp:
13324        (WebCore::EventHandler::handleGestureEvent):
13325        (WebCore::EventHandler::adjustGesturePosition):
13326
133272012-09-19  Vsevolod Vlasov  <vsevik@chromium.org>
13328
13329        Unreviewed another follow up Apple Win build fix for r128992.
13330
13331        * inspector/InspectorAllInOne.cpp:
13332
133332012-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>
13334
13335        [GTK] REGRESSION(r128907): it broke several WebKit2 API tests
13336        https://bugs.webkit.org/show_bug.cgi?id=97092
13337
13338        Reviewed by Martin Robinson.
13339
13340        Calling resizeLater() from the constructor of
13341        RedirectedXCompositeWindow can cause the callback to be called
13342        later by the main loop after the RedirectedXCompositeWindow object
13343        has been destroyed. Instead of calling resizeLater(), initialize
13344        the usable size to the given initial size.
13345
13346        * platform/gtk/RedirectedXCompositeWindow.cpp:
13347        (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
13348
133492012-09-19  Vsevolod Vlasov  <vsevik@chromium.org>
13350
13351        Unreviewed follow up Apple Win build fix for r128992.
13352
13353        * inspector/InspectorAllInOne.cpp:
13354
133552012-09-19  Andrey Adaikin  <aandrey@chromium.org>
13356
13357        Web Inspector: [WebGL] -> [Canvas] Rename WebGLAgent to CanvasAgent
13358        https://bugs.webkit.org/show_bug.cgi?id=96917
13359
13360        Reviewed by Vsevolod Vlasov.
13361
13362        Rename WebGLAgent* and WebGLInstrumentation* files to Canvas* as we will support both 2D and 3D/WebGL canvas instrumentation.
13363
13364        * CMakeLists.txt:
13365        * DerivedSources.make:
13366        * DerivedSources.pri:
13367        * GNUmakefile.am:
13368        * GNUmakefile.list.am:
13369        * Target.pri:
13370        * WebCore.gyp/WebCore.gyp:
13371        * WebCore.gypi:
13372        * WebCore.vcproj/WebCore.vcproj:
13373        * WebCore.xcodeproj/project.pbxproj:
13374        * bindings/js/JSHTMLCanvasElementCustom.cpp:
13375        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
13376        * inspector/CodeGeneratorInspector.py:
13377        * inspector/InjectedScriptCanvasModule.cpp: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.cpp.
13378        (WebCore):
13379        (WebCore::InjectedScriptCanvasModule::InjectedScriptCanvasModule):
13380        (WebCore::InjectedScriptCanvasModule::moduleForState):
13381        (WebCore::InjectedScriptCanvasModule::source):
13382        (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
13383        (WebCore::InjectedScriptCanvasModule::captureFrame):
13384        (WebCore::InjectedScriptCanvasModule::dropTraceLog):
13385        (WebCore::InjectedScriptCanvasModule::traceLog):
13386        (WebCore::InjectedScriptCanvasModule::replayTraceLog):
13387        * inspector/InjectedScriptCanvasModule.h: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.h.
13388        (WebCore):
13389        (InjectedScriptCanvasModule):
13390        * inspector/InjectedScriptCanvasModuleSource.js: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModuleSource.js.
13391        (.):
13392        * inspector/Inspector.json:
13393        * inspector/InspectorAllInOne.cpp:
13394        * inspector/InspectorCanvasAgent.cpp: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.cpp.
13395        (WebCore):
13396        (CanvasAgentState):
13397        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
13398        (WebCore::InspectorCanvasAgent::~InspectorCanvasAgent):
13399        (WebCore::InspectorCanvasAgent::setFrontend):
13400        (WebCore::InspectorCanvasAgent::clearFrontend):
13401        (WebCore::InspectorCanvasAgent::restore):
13402        (WebCore::InspectorCanvasAgent::enable):
13403        (WebCore::InspectorCanvasAgent::disable):
13404        (WebCore::InspectorCanvasAgent::dropTraceLog):
13405        (WebCore::InspectorCanvasAgent::captureFrame):
13406        (WebCore::InspectorCanvasAgent::getTraceLog):
13407        (WebCore::InspectorCanvasAgent::replayTraceLog):
13408        (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
13409        (WebCore::InspectorCanvasAgent::injectedScriptCanvasModuleForTraceLogId):
13410        * inspector/InspectorCanvasAgent.h: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.h.
13411        (WebCore):
13412        (InspectorCanvasAgent):
13413        (WebCore::InspectorCanvasAgent::create):
13414        (WebCore::InspectorCanvasAgent::enabled):
13415        * inspector/InspectorCanvasInstrumentation.h: Renamed from Source/WebCore/inspector/InspectorWebGLInstrumentation.h.
13416        (WebCore):
13417        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
13418        * inspector/InspectorController.cpp:
13419        (WebCore::InspectorController::InspectorController):
13420        * inspector/InstrumentingAgents.h:
13421        (WebCore):
13422        (WebCore::InstrumentingAgents::InstrumentingAgents):
13423        (WebCore::InstrumentingAgents::inspectorCanvasAgent):
13424        (WebCore::InstrumentingAgents::setInspectorCanvasAgent):
13425        (InstrumentingAgents):
13426        * inspector/compile-front-end.py:
13427        * inspector/front-end/CanvasProfileView.js: Renamed from Source/WebCore/inspector/front-end/WebGLProfileView.js.
13428        (WebInspector.CanvasProfileView):
13429        (WebInspector.CanvasProfileView.prototype.dispose):
13430        (WebInspector.CanvasProfileView.prototype.get statusBarItems):
13431        (WebInspector.CanvasProfileView.prototype.get profile):
13432        (WebInspector.CanvasProfileView.prototype.wasShown):
13433        (WebInspector.CanvasProfileView.prototype.willHide):
13434        (WebInspector.CanvasProfileView.prototype._showTraceLog):
13435        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick.didReplayTraceLog):
13436        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
13437        (WebInspector.CanvasProfileType):
13438        (WebInspector.CanvasProfileType.prototype.get buttonTooltip):
13439        (WebInspector.CanvasProfileType.prototype.buttonClicked.didStartCapturingFrame):
13440        (WebInspector.CanvasProfileType.prototype.buttonClicked):
13441        (WebInspector.CanvasProfileType.prototype.get treeItemTitle):
13442        (WebInspector.CanvasProfileType.prototype.get description):
13443        (WebInspector.CanvasProfileType.prototype.reset):
13444        (WebInspector.CanvasProfileType.prototype.createTemporaryProfile):
13445        (WebInspector.CanvasProfileType.prototype.createProfile):
13446        (WebInspector.CanvasProfileHeader):
13447        (WebInspector.CanvasProfileHeader.prototype.traceLogId):
13448        (WebInspector.CanvasProfileHeader.prototype.createSidebarTreeElement):
13449        (WebInspector.CanvasProfileHeader.prototype.createView):
13450        * inspector/front-end/ProfilesPanel.js:
13451        (WebInspector.ProfilesPanel):
13452        * inspector/front-end/Settings.js:
13453        (WebInspector.ExperimentsSettings):
13454        * inspector/front-end/WebKit.qrc:
13455        * inspector/front-end/canvasProfiler.css: Renamed from Source/WebCore/inspector/front-end/webGLProfiler.css.
13456        (.canvas-profile-view):
13457        (.canvas-trace-log):
13458        (.canvas-trace-log div):
13459        (#canvas-replay-image-container):
13460        (#canvas-replay-image):
13461
134622012-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>
13463
13464        [GTK] Add API to get/set the security policy of a given URI scheme to WebKit2 GTK+
13465        https://bugs.webkit.org/show_bug.cgi?id=96497
13466
13467        Reviewed by Martin Robinson.
13468
13469        * WebCore.exp.in: Add new exported symbols.
13470
134712012-09-19  Patrick Gansterer  <paroga@webkit.org>
13472
13473        [WIN] Use BString in favour of BSTR to improve memory management
13474        https://bugs.webkit.org/show_bug.cgi?id=93128
13475
13476        Reviewed by Anders Carlsson.
13477
13478        BString automatically calls SysFreeString() in its destructor which helps
13479        avoiding memory leaks. So it should be used instead of BSTR directly.
13480        Add operator& to BString to allow its usage for out parameters too (like COMPtr).
13481        This fixes already a few memory leaks in the existing code.
13482
13483        * platform/win/BString.cpp:
13484        (WebCore::BString::~BString):
13485        (WebCore::BString::adoptBSTR):
13486        (WebCore::BString::clear):
13487        (WebCore):
13488        * platform/win/BString.h:
13489        (BString):
13490        (WebCore::BString::operator&):
13491
134922012-09-19  Simon Hausmann  <simon.hausmann@digia.com>
13493
13494        [Qt] Link failure with bfd linker on --minimal build
13495        https://bugs.webkit.org/show_bug.cgi?id=97075
13496
13497        Reviewed by Tor Arne Vestbø.
13498
13499        Fix two dependency errors triggered by --minimal:
13500
13501        - GStreamerVersioning.cpp uses functions from libgstvideo (gst_video_format_parse_caps), so we need to pull
13502        that module not only when video is enabled by generally when using gstreamer.
13503        - GraphicsSurfaceGLX depends on Xlib (XOpenDisplay, etc.), so we need to do CONFIG += x11 to get that and not
13504        implicitly rely on x11 netscape plugins being enabled.
13505
13506        * WebCore.pri:
13507
135082012-09-19  Tommy Widenflycht  <tommyw@google.com>
13509
13510        MediaStream API: Rename the RTCIceServer uri parameter to url.
13511        https://bugs.webkit.org/show_bug.cgi?id=97086
13512
13513        Reviewed by Hajime Morita.
13514
13515        Either the standard has changed or I can't read.
13516        http://dev.w3.org/2011/webrtc/editor/webrtc.html#dictionary-rtciceserver-members
13517
13518        Existing tests changed to cover this patch.
13519
13520        * Modules/mediastream/RTCPeerConnection.cpp:
13521        (WebCore::RTCPeerConnection::parseConfiguration):
13522
135232012-09-19  Sheriff Bot  <webkit.review.bot@gmail.com>
13524
13525        Unreviewed, rolling out r128976.
13526        http://trac.webkit.org/changeset/128976
13527        https://bugs.webkit.org/show_bug.cgi?id=97083
13528
13529        Breaks compilation on QT, Apple WIn (Requested by vsevik on
13530        #webkit).
13531
13532        * CMakeLists.txt:
13533        * DerivedSources.make:
13534        * DerivedSources.pri:
13535        * GNUmakefile.am:
13536        * GNUmakefile.list.am:
13537        * Target.pri:
13538        * WebCore.gyp/WebCore.gyp:
13539        * WebCore.gypi:
13540        * WebCore.vcproj/WebCore.vcproj:
13541        * WebCore.xcodeproj/project.pbxproj:
13542        * bindings/js/JSHTMLCanvasElementCustom.cpp:
13543        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
13544        * inspector/CodeGeneratorInspector.py:
13545        * inspector/InjectedScriptWebGLModule.cpp: Renamed from Source/WebCore/inspector/InjectedScriptCanvasModule.cpp.
13546        (WebCore):
13547        (WebCore::InjectedScriptWebGLModule::InjectedScriptWebGLModule):
13548        (WebCore::InjectedScriptWebGLModule::moduleForState):
13549        (WebCore::InjectedScriptWebGLModule::source):
13550        (WebCore::InjectedScriptWebGLModule::wrapWebGLContext):
13551        (WebCore::InjectedScriptWebGLModule::captureFrame):
13552        (WebCore::InjectedScriptWebGLModule::dropTraceLog):
13553        (WebCore::InjectedScriptWebGLModule::traceLog):
13554        (WebCore::InjectedScriptWebGLModule::replayTraceLog):
13555        * inspector/InjectedScriptWebGLModule.h: Renamed from Source/WebCore/inspector/InjectedScriptCanvasModule.h.
13556        (WebCore):
13557        (InjectedScriptWebGLModule):
13558        * inspector/InjectedScriptWebGLModuleSource.js: Renamed from Source/WebCore/inspector/InjectedScriptCanvasModuleSource.js.
13559        (.):
13560        * inspector/Inspector.json:
13561        * inspector/InspectorAllInOne.cpp:
13562        * inspector/InspectorController.cpp:
13563        (WebCore::InspectorController::InspectorController):
13564        * inspector/InspectorWebGLAgent.cpp: Renamed from Source/WebCore/inspector/InspectorCanvasAgent.cpp.
13565        (WebCore):
13566        (WebGLAgentState):
13567        (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
13568        (WebCore::InspectorWebGLAgent::~InspectorWebGLAgent):
13569        (WebCore::InspectorWebGLAgent::setFrontend):
13570        (WebCore::InspectorWebGLAgent::clearFrontend):
13571        (WebCore::InspectorWebGLAgent::restore):
13572        (WebCore::InspectorWebGLAgent::enable):
13573        (WebCore::InspectorWebGLAgent::disable):
13574        (WebCore::InspectorWebGLAgent::dropTraceLog):
13575        (WebCore::InspectorWebGLAgent::captureFrame):
13576        (WebCore::InspectorWebGLAgent::getTraceLog):
13577        (WebCore::InspectorWebGLAgent::replayTraceLog):
13578        (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
13579        (WebCore::InspectorWebGLAgent::injectedScriptWebGLModuleForTraceLogId):
13580        * inspector/InspectorWebGLAgent.h: Renamed from Source/WebCore/inspector/InspectorCanvasAgent.h.
13581        (WebCore):
13582        (InspectorWebGLAgent):
13583        (WebCore::InspectorWebGLAgent::create):
13584        (WebCore::InspectorWebGLAgent::enabled):
13585        * inspector/InspectorWebGLInstrumentation.h: Renamed from Source/WebCore/inspector/InspectorCanvasInstrumentation.h.
13586        (WebCore):
13587        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
13588        * inspector/InstrumentingAgents.h:
13589        (WebCore):
13590        (WebCore::InstrumentingAgents::InstrumentingAgents):
13591        (InstrumentingAgents):
13592        (WebCore::InstrumentingAgents::inspectorWebGLAgent):
13593        (WebCore::InstrumentingAgents::setInspectorWebGLAgent):
13594        * inspector/compile-front-end.py:
13595        * inspector/front-end/ProfilesPanel.js:
13596        (WebInspector.ProfilesPanel):
13597        * inspector/front-end/Settings.js:
13598        (WebInspector.ExperimentsSettings):
13599        * inspector/front-end/WebGLProfileView.js: Renamed from Source/WebCore/inspector/front-end/CanvasProfileView.js.
13600        (WebInspector.WebGLProfileView):
13601        (WebInspector.WebGLProfileView.prototype.dispose):
13602        (WebInspector.WebGLProfileView.prototype.get statusBarItems):
13603        (WebInspector.WebGLProfileView.prototype.get profile):
13604        (WebInspector.WebGLProfileView.prototype.wasShown):
13605        (WebInspector.WebGLProfileView.prototype.willHide):
13606        (WebInspector.WebGLProfileView.prototype._showTraceLog):
13607        (WebInspector.WebGLProfileView.prototype._onTraceLogItemClick.didReplayTraceLog):
13608        (WebInspector.WebGLProfileView.prototype._onTraceLogItemClick):
13609        (WebInspector.WebGLProfileType):
13610        (WebInspector.WebGLProfileType.prototype.get buttonTooltip):
13611        (WebInspector.WebGLProfileType.prototype.buttonClicked.didStartCapturingFrame):
13612        (WebInspector.WebGLProfileType.prototype.buttonClicked):
13613        (WebInspector.WebGLProfileType.prototype.get treeItemTitle):
13614        (WebInspector.WebGLProfileType.prototype.get description):
13615        (WebInspector.WebGLProfileType.prototype.reset):
13616        (WebInspector.WebGLProfileType.prototype.createTemporaryProfile):
13617        (WebInspector.WebGLProfileType.prototype.createProfile):
13618        (WebInspector.WebGLProfileHeader):
13619        (WebInspector.WebGLProfileHeader.prototype.traceLogId):
13620        (WebInspector.WebGLProfileHeader.prototype.createSidebarTreeElement):
13621        (WebInspector.WebGLProfileHeader.prototype.createView):
13622        * inspector/front-end/WebKit.qrc:
13623        * inspector/front-end/webGLProfiler.css: Renamed from Source/WebCore/inspector/front-end/canvasProfiler.css.
13624        (.webgl-profile-view):
13625        (.webgl-trace-log):
13626        (.webgl-trace-log div):
13627        (#webgl-replay-image-container):
13628        (#webgl-replay-image):
13629
136302012-09-19  Simon Hausmann  <simon.hausmann@digia.com>
13631
13632        [Qt][Win] Fix rendering of flash content when scrolling
13633        https://bugs.webkit.org/show_bug.cgi?id=92905
13634
13635        Reviewed by Jocelyn Turcotte.
13636
13637        Fix rendering offset similar to r121441.
13638
13639        * plugins/win/PluginViewWin.cpp:
13640        (WebCore::PluginView::paint):
13641        (WebCore::PluginView::setNPWindowRect):
13642
136432012-09-19  Andrey Adaikin  <aandrey@chromium.org>
13644
13645        Web Inspector: [WebGL] -> [Canvas] Rename WebGLAgent to CanvasAgent
13646        https://bugs.webkit.org/show_bug.cgi?id=96917
13647
13648        Reviewed by Vsevolod Vlasov.
13649
13650        Rename WebGLAgent* and WebGLInstrumentation* files to Canvas* as we will support both 2D and 3D/WebGL canvas instrumentation.
13651
13652        * CMakeLists.txt:
13653        * DerivedSources.make:
13654        * DerivedSources.pri:
13655        * GNUmakefile.am:
13656        * GNUmakefile.list.am:
13657        * Target.pri:
13658        * WebCore.gyp/WebCore.gyp:
13659        * WebCore.gypi:
13660        * WebCore.vcproj/WebCore.vcproj:
13661        * WebCore.xcodeproj/project.pbxproj:
13662        * bindings/js/JSHTMLCanvasElementCustom.cpp:
13663        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
13664        * inspector/CodeGeneratorInspector.py:
13665        * inspector/InjectedScriptCanvasModule.cpp: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.cpp.
13666        (WebCore):
13667        (WebCore::InjectedScriptCanvasModule::InjectedScriptCanvasModule):
13668        (WebCore::InjectedScriptCanvasModule::moduleForState):
13669        (WebCore::InjectedScriptCanvasModule::source):
13670        (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
13671        (WebCore::InjectedScriptCanvasModule::captureFrame):
13672        (WebCore::InjectedScriptCanvasModule::dropTraceLog):
13673        (WebCore::InjectedScriptCanvasModule::traceLog):
13674        (WebCore::InjectedScriptCanvasModule::replayTraceLog):
13675        * inspector/InjectedScriptCanvasModule.h: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.h.
13676        (WebCore):
13677        (InjectedScriptCanvasModule):
13678        * inspector/InjectedScriptCanvasModuleSource.js: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModuleSource.js.
13679        (.):
13680        * inspector/Inspector.json:
13681        * inspector/InspectorAllInOne.cpp:
13682        * inspector/InspectorCanvasAgent.cpp: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.cpp.
13683        (WebCore):
13684        (CanvasAgentState):
13685        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
13686        (WebCore::InspectorCanvasAgent::~InspectorCanvasAgent):
13687        (WebCore::InspectorCanvasAgent::setFrontend):
13688        (WebCore::InspectorCanvasAgent::clearFrontend):
13689        (WebCore::InspectorCanvasAgent::restore):
13690        (WebCore::InspectorCanvasAgent::enable):
13691        (WebCore::InspectorCanvasAgent::disable):
13692        (WebCore::InspectorCanvasAgent::dropTraceLog):
13693        (WebCore::InspectorCanvasAgent::captureFrame):
13694        (WebCore::InspectorCanvasAgent::getTraceLog):
13695        (WebCore::InspectorCanvasAgent::replayTraceLog):
13696        (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
13697        (WebCore::InspectorCanvasAgent::injectedScriptCanvasModuleForTraceLogId):
13698        * inspector/InspectorCanvasAgent.h: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.h.
13699        (WebCore):
13700        (InspectorCanvasAgent):
13701        (WebCore::InspectorCanvasAgent::create):
13702        (WebCore::InspectorCanvasAgent::enabled):
13703        * inspector/InspectorCanvasInstrumentation.h: Renamed from Source/WebCore/inspector/InspectorWebGLInstrumentation.h.
13704        (WebCore):
13705        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
13706        * inspector/InspectorController.cpp:
13707        (WebCore::InspectorController::InspectorController):
13708        * inspector/InstrumentingAgents.h:
13709        (WebCore):
13710        (WebCore::InstrumentingAgents::InstrumentingAgents):
13711        (WebCore::InstrumentingAgents::inspectorCanvasAgent):
13712        (WebCore::InstrumentingAgents::setInspectorCanvasAgent):
13713        (InstrumentingAgents):
13714        * inspector/compile-front-end.py:
13715        * inspector/front-end/CanvasProfileView.js: Renamed from Source/WebCore/inspector/front-end/WebGLProfileView.js.
13716        (WebInspector.CanvasProfileView):
13717        (WebInspector.CanvasProfileView.prototype.dispose):
13718        (WebInspector.CanvasProfileView.prototype.get statusBarItems):
13719        (WebInspector.CanvasProfileView.prototype.get profile):
13720        (WebInspector.CanvasProfileView.prototype.wasShown):
13721        (WebInspector.CanvasProfileView.prototype.willHide):
13722        (WebInspector.CanvasProfileView.prototype._showTraceLog):
13723        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick.didReplayTraceLog):
13724        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
13725        (WebInspector.CanvasProfileType):
13726        (WebInspector.CanvasProfileType.prototype.get buttonTooltip):
13727        (WebInspector.CanvasProfileType.prototype.buttonClicked.didStartCapturingFrame):
13728        (WebInspector.CanvasProfileType.prototype.buttonClicked):
13729        (WebInspector.CanvasProfileType.prototype.get treeItemTitle):
13730        (WebInspector.CanvasProfileType.prototype.get description):
13731        (WebInspector.CanvasProfileType.prototype.reset):
13732        (WebInspector.CanvasProfileType.prototype.createTemporaryProfile):
13733        (WebInspector.CanvasProfileType.prototype.createProfile):
13734        (WebInspector.CanvasProfileHeader):
13735        (WebInspector.CanvasProfileHeader.prototype.traceLogId):
13736        (WebInspector.CanvasProfileHeader.prototype.createSidebarTreeElement):
13737        (WebInspector.CanvasProfileHeader.prototype.createView):
13738        * inspector/front-end/ProfilesPanel.js:
13739        (WebInspector.ProfilesPanel):
13740        * inspector/front-end/Settings.js:
13741        (WebInspector.ExperimentsSettings):
13742        * inspector/front-end/WebKit.qrc:
13743        * inspector/front-end/canvasProfiler.css: Renamed from Source/WebCore/inspector/front-end/webGLProfiler.css.
13744        (.canvas-profile-view):
13745        (.canvas-trace-log):
13746        (.canvas-trace-log div):
13747        (#canvas-replay-image-container):
13748        (#canvas-replay-image):
13749
137502012-09-18  Kenichi Ishibashi  <bashi@chromium.org>
13751
13752        [Chromium] SkiaGetGlyphWidthAndExtents() should invert y-axis
13753        https://bugs.webkit.org/show_bug.cgi?id=97067
13754
13755        Reviewed by Yuta Kitamura.
13756
13757        Invert skBounds.fTop and skBounds.height(). Don't call hb_font_set_ppem().
13758
13759        No new tests. Arabic shadda (U+0651) should be placed more higher when Arabic lam (U+0644) follows it.
13760        Tests under svg/W3C-I18N contain such sequences so these tests cover this change.
13761
13762        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
13763        (WebCore::SkiaGetGlyphWidthAndExtents):
13764        (WebCore::HarfBuzzNGFace::createFont):
13765
137662012-09-18  Kenichi Ishibashi  <bashi@chromium.org>
13767
13768        [Chromium] Don't treat tab as spaces for word-end in HarfBuzzShaper
13769        https://bugs.webkit.org/show_bug.cgi?id=97068
13770
13771        Reviewed by Yuta Kitamura.
13772
13773        No new tests. fast/text/wide-zero-width-space.html should cover this change.
13774
13775        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
13776        (WebCore::normalizeCharacters): Don't treat tab as space.
13777
137782012-09-18  Eric Carlson  <eric.carlson@apple.com>
13779
13780        Check settings before registering AVFoundation media engine.
13781        https://bugs.webkit.org/show_bug.cgi?id=97048
13782        <rdar://problem/12313594>
13783
13784        Reviewed by Dan Bernstein.
13785
13786        Fix the bug introduced in r122676.
13787
13788        * platform/graphics/MediaPlayer.cpp:
13789        (WebCore::installedMediaEngines): Uncomment the call to check AVFoundation settings.
13790
137912012-09-18  Sailesh Agrawal  <sail@chromium.org>
13792
13793        Chromium: Scrollbar with tickmarks doesn't respond to clicks
13794        https://bugs.webkit.org/show_bug.cgi?id=96049
13795
13796        Reviewed by Beth Dakin.
13797
13798        Currently when a scrollbar has tickmarks its forced to be visible by setting its alpha to 1.0. The alpha value is reset to its old value at the end of the drawing routine. This approach doesn't work with the hit testing code which relies on the scrollbar's alpha value
13799
13800        Unfortunately there doesn't seem to be anyway to force a scrollbar to be visible. The closest API is -[NSScrollerImpPair lockOverlayScrollerState:]. Unfortunately this locks both the horizontal and vertical scrollbar. It also doesn't expand the knob width.
13801
13802        My fix simply adds a new alphaLocked attribute to the scrollbar. If this attribute is set to true then hit testing will return true.
13803
13804        Test: fast/scrolling/scrollbar-tickmarks-hittest.html
13805
13806        * WebCore.exp.in:
13807        * WebCore.order:
13808        * page/Settings.cpp:
13809        (WebCore):
13810        (WebCore::Settings::setUsesOverlayScrollbars): Sets the usesOverlayScrollbars flag.
13811        (WebCore::Settings::usesOverlayScrollbars): Gets the usesOverlayScrollbars flag.
13812        * page/Settings.h:
13813        (Settings):
13814        * platform/Scrollbar.cpp:
13815        (WebCore::Scrollbar::Scrollbar):
13816        * platform/Scrollbar.h:
13817        (WebCore::Scrollbar::isAlphaLocked):
13818        (WebCore::Scrollbar::setIsAlphaLocked):
13819        (Scrollbar):
13820        * platform/ScrollbarThemeClient.h:
13821        (ScrollbarThemeClient):
13822        * platform/chromium/ScrollbarThemeChromiumMac.mm:
13823        (WebCore::ScrollbarThemeChromiumMac::paint): Updated to set and unset the alphaLocked attribute.
13824        * platform/chromium/support/WebScrollbarImpl.cpp:
13825        (WebKit::WebScrollbarImpl::isAlphaLocked):
13826        (WebKit):
13827        (WebKit::WebScrollbarImpl::setIsAlphaLocked):
13828        * platform/chromium/support/WebScrollbarImpl.h:
13829        (WebScrollbarImpl):
13830        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
13831        (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
13832        (WebCore::CCScrollbarLayerImpl::CCScrollbar::isAlphaLocked):
13833        (WebCore):
13834        (WebCore::CCScrollbarLayerImpl::CCScrollbar::setIsAlphaLocked):
13835        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
13836        (CCScrollbar):
13837        (CCScrollbarLayerImpl):
13838        * platform/mac/NSScrollerImpDetails.mm:
13839        (WebCore::recommendedScrollerStyle): Check the usesOverlayScrollbars setting to see if overlay scrollbars should be forced on.
13840        * platform/mac/ScrollAnimatorMac.mm:
13841        (WebCore::ScrollAnimatorMac::shouldScrollbarParticipateInHitTesting): Updated to check the alphaLocked attribute.
13842        * testing/InternalSettings.cpp:
13843        (WebCore::InternalSettings::reset): Resets the usesOverlayScrollbars setting.
13844        (WebCore::InternalSettings::setUsesOverlayScrollbars): Sets the usesOverlayScrollbars setting.
13845        (WebCore):
13846        * testing/InternalSettings.h:
13847        (InternalSettings):
13848        * testing/InternalSettings.idl: Add a new setUsesOverlayScrollbars function.
13849
138502012-09-18  Kentaro Hara  <haraken@chromium.org>
13851
13852        [V8] Notification.requestPermission(function() {alert();}) crashes
13853        https://bugs.webkit.org/show_bug.cgi?id=94462
13854
13855        Reviewed by Adam Barth.
13856
13857        Since Notification.requestPermission() is a static method,
13858        we need to use getExecutionContext() instead of retrieving a context
13859        from a DOM object.
13860
13861        Test: http/tests/notifications/notification-request-permission.html
13862
13863        * bindings/v8/custom/V8NotificationCustom.cpp:
13864        (WebCore::V8Notification::requestPermissionCallback):
13865
138662012-09-18  Shinya Kawanaka  <shinyak@chromium.org>
13867
13868        [Refactoring] ContentDistributor::distributeSelectionsTo should not change ContentDistribution pool.
13869        https://bugs.webkit.org/show_bug.cgi?id=96993
13870
13871        Reviewed by Dimitri Glazkov.
13872
13873        Since we would like to reuse ContentDistribution pool, it should not be updated in
13874        ContentDistributor::distributeSelectionsTo. Instead, we should have Vector<bool> to indicate an element is
13875        distributed or not.
13876
13877        No new tests, simple refactoring.
13878
13879        * html/shadow/ContentDistributor.cpp:
13880        (WebCore::ContentDistributor::distribute):
13881        (WebCore::ContentDistributor::distributeSelectionsTo):
13882        * html/shadow/ContentDistributor.h:
13883        (ContentDistributor):
13884
138852012-09-18  Byungwoo Lee  <bw80.lee@samsung.com>
13886
13887        Title string should be changed when document.title is set to ''.
13888        https://bugs.webkit.org/show_bug.cgi?id=96793
13889
13890        Reviewed by Kenneth Rohde Christiansen.
13891
13892        DocumentLoader::setTitle() function returns without anything (changing
13893        m_pageTitle and calling FrameLoaderClient::setTitle()) when new title
13894        string is empty.
13895        So, when document.title is set to '', title string of a browser cannot
13896        be changed.
13897        For applying the change of document.title properly, empty string check
13898        should be removed.
13899
13900        Test: fast/dom/title-text-property-assigning-empty-string.html
13901
13902        * loader/DocumentLoader.cpp:
13903        (WebCore::DocumentLoader::setTitle):
13904
139052012-09-18  Simon Fraser  <simon.fraser@apple.com>
13906
13907        fast/forms/search-event-delay.html is asserting in markAllMisspellingsAndBadGrammarInRanges()
13908        https://bugs.webkit.org/show_bug.cgi?id=82761
13909
13910        Reviewed by Ryosuke Niwa.
13911
13912        Speculative fix for this assertion: have InternalSettings save
13913        and restore the value of the "unifiedTextCheckerEnabled" setting
13914        between tests, so that tests change the value of this setting don't
13915        affect later tests.
13916
13917        * testing/InternalSettings.cpp:
13918        (WebCore::InternalSettings::Backup::Backup):
13919        (WebCore::InternalSettings::Backup::restoreTo):
13920        * testing/InternalSettings.h:
13921        (Backup):
13922
139232012-09-18  John Mellor  <johnme@chromium.org>
13924
13925        Text Autosizing: Ignore constrained heights in certain circumstances.
13926        https://bugs.webkit.org/show_bug.cgi?id=96848
13927
13928        Reviewed by Julien Chaffraix.
13929
13930        Ignore constrained heights on html and body elements, as some sites
13931        (e.g. wikipedia) set height:100% on these, without intending to
13932        constrain the height of descendants.
13933
13934        Also ignore constrained heights on ancestors of floats and out-of-flow
13935        positioned elements with no height set, since the height of these is
13936        determined independently from their ancestors.
13937
13938        Test: fast/text-autosizing/constrained-height-body.html
13939              fast/text-autosizing/constrained-out-of-flow.html
13940              fast/text-autosizing/constrained-then-float-ancestors.html
13941              fast/text-autosizing/constrained-then-position-absolute-ancestors.html
13942              fast/text-autosizing/constrained-then-position-fixed-ancestors.html
13943
13944        * rendering/TextAutosizer.cpp:
13945        (WebCore::contentHeightIsConstrained):
13946
13947            Adjusted constrainedness algorithm.
13948
139492012-09-18  Tommy Widenflycht  <tommyw@google.com>
13950
13951        MediaStream API: Create a flag to enable PeerConnection00
13952        https://bugs.webkit.org/show_bug.cgi?id=96989
13953
13954        Reviewed by Adam Barth.
13955
13956        Adding the functionality to separately enable/disable PeerConnection00.
13957        For now it is enabled by default.
13958
13959        Not testable, nor likely to cause issues.
13960
13961        * bindings/generic/RuntimeEnabledFeatures.cpp:
13962        (WebCore):
13963        * bindings/generic/RuntimeEnabledFeatures.h:
13964        (WebCore::RuntimeEnabledFeatures::deprecatedPeerConnectionEnabled):
13965        (WebCore::RuntimeEnabledFeatures::setDeprecatedPeerConnectionEnabled):
13966        (WebCore::RuntimeEnabledFeatures::webkitPeerConnection00Enabled):
13967        (RuntimeEnabledFeatures):
13968
139692012-09-18  Bo Liu  <boliu@chromium.org>
13970
13971        Revert 128780, 128676, 128645
13972        https://bugs.webkit.org/show_bug.cgi?id=97022
13973
13974        Reviewed by Adam Barth.
13975
13976        I made these revisions to add in-place reload behavior to ImagesEnabled setting.
13977        Reverting this for now due to them causing performance regression in
13978        chromium, possibly caused by increased calls to
13979        PermissionClient::imageAllowed.
13980
13981        * WebCore.exp.in:
13982        * loader/FrameLoader.cpp:
13983        (WebCore::FrameLoader::didBeginDocument):
13984        * loader/SubresourceLoader.cpp:
13985        (WebCore::SubresourceLoader::willSendRequest):
13986        * loader/cache/CachedImage.cpp:
13987        (WebCore::CachedImage::load):
13988        * loader/cache/CachedImage.h:
13989        (WebCore::CachedImage::stillNeedsLoad):
13990        * loader/cache/CachedResource.cpp:
13991        (WebCore::CachedResource::didAddClient):
13992        * loader/cache/CachedResource.h:
13993        * loader/cache/CachedResourceLoader.cpp:
13994        (WebCore::CachedResourceLoader::CachedResourceLoader):
13995        (WebCore::CachedResourceLoader::requestImage):
13996        (WebCore::CachedResourceLoader::canRequest):
13997        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
13998        (WebCore::CachedResourceLoader::setAutoLoadImages):
13999        * loader/cache/CachedResourceLoader.h:
14000        (CachedResourceLoader):
14001        * page/Settings.cpp:
14002        (WebCore::setLoadsImagesAutomaticallyInAllFrames):
14003        (WebCore::Settings::Settings):
14004        (WebCore::Settings::setLoadsImagesAutomatically):
14005        (WebCore::Settings::loadsImagesAutomaticallyTimerFired):
14006        (WebCore::Settings::setImagesEnabled):
14007        * page/Settings.h:
14008        (Settings):
14009        * testing/InternalSettings.cpp:
14010        (WebCore::InternalSettings::Backup::Backup):
14011        (WebCore::InternalSettings::Backup::restoreTo):
14012        (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
14013        * testing/InternalSettings.h:
14014        (Backup):
14015        (InternalSettings):
14016        * testing/InternalSettings.idl:
14017
140182012-09-18  John J. Barton  <johnjbarton@chromium.org>
14019
14020        Web Inspector: Set focus on the ExtensionPanel's iframe when it is selected
14021        https://bugs.webkit.org/show_bug.cgi?id=96148
14022
14023        Reviewed by Vsevolod Vlasov.
14024
14025        ExtensionView ctor calls setDefaultFocusedElement with its iframe,
14026        ExtensionPanel ctor calls setDefaultFocusedElement with the extensionView
14027        and ExtensionPanel's setDefaultFocusedElement calls its grandparent impl
14028
14029        Tests: Added hasFocus test to extensions/extension-panel.html
14030
14031        * inspector/front-end/ExtensionPanel.js:
14032        (WebInspector.ExtensionPanel):
14033        (WebInspector.ExtensionPanel.prototype.defaultFocusedElement):
14034        * inspector/front-end/ExtensionView.js:
14035        (WebInspector.ExtensionView):
14036
140372012-09-18  Martin Robinson  <mrobinson@igalia.com>
14038
14039        [GTK] [WebKit2] Use XComposite window for accelerated compositing
14040        https://bugs.webkit.org/show_bug.cgi?id=94417
14041
14042        Reviewed by Carlos Garcia Campos.
14043
14044        Instead of rendering directly to the widget's native window, render to an
14045        offscreen window redirected to a Pixmap with XComposite.
14046
14047        No new tests. This will be covered by the existing accelerated compositing tests,
14048        which should now give correct pixel results.
14049
14050        * platform/gtk/RedirectedXCompositeWindow.cpp:
14051        (WebCore::RedirectedXCompositeWindow::resize): Add a call to XFlush which ensures
14052        that pending X11 operations complete.
14053        * platform/gtk/RedirectedXCompositeWindow.h:
14054        (WebCore::RedirectedXCompositeWindow::windowId): Added this accessor.
14055
140562012-09-18  Julien Chaffraix  <jchaffraix@webkit.org>
14057
14058        Tables without any descendant and auto logical width should have a 0px logical width
14059        https://bugs.webkit.org/show_bug.cgi?id=95521
14060
14061        Reviewed by Abhishek Arya.
14062
14063        The code would wrongly add the border-spacing in the row direction to the table's logical
14064        width even if we didn't have a column. The new behavior matches FireFox and Opera. IE
14065        matches our old behavior for inline tables but our new behavior for normal tables which
14066        is a bug on their side.
14067
14068        Tests: fast/table/empty-table-should-take-no-space.html
14069               fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html
14070
14071        * rendering/RenderTable.h:
14072        (WebCore::RenderTable::borderSpacingInRowDirection):
14073        Added this new helper function to return the right border-spacing. Added a FIXME as the code always
14074        return the horizontal dimension which is wrong in vertical-writing mode.
14075
14076        (WebCore::RenderTable::bordersPaddingAndSpacingInRowDirection):
14077        Changed to call borderSpacingInRowDirection. Added a comment as to why we don't add border-spacing on
14078        border-collapse: separate tables.
14079
140802012-09-18  Zan Dobersek  <zandobersek@gmail.com>
14081
14082        [GTK] Build is broken without option --enable-unstable-features
14083        https://bugs.webkit.org/show_bug.cgi?id=96996
14084
14085        Reviewed by Martin Robinson.
14086
14087        When searching for the bare feature define in feature_defines_unstable or
14088        feature_defines_overrides, search for the bare define followed by = character.
14089        This avoids incorrectly matching the ENABLE_VIDEO define to the ENABLE_VIDEO_TRACK
14090        overriding define (and works as well for other similarly named feature defines).
14091
14092        No new tests - no new functionality.
14093
14094        * GNUmakefile.am:
14095
140962012-09-18  Andrey Kosyakov  <caseq@chromium.org>
14097
14098        Web Inspector: [Extensions API] postpone requests to add extensions until extension server is initialized
14099        https://bugs.webkit.org/show_bug.cgi?id=97012
14100
14101        Reviewed by Vsevolod Vlasov.
14102
14103        - queue extensions being added unless initialization is complete;
14104        - add queued extensions upon completion of initialization;
14105
14106        * inspector/front-end/ExtensionServer.js:
14107        (WebInspector.ExtensionServer.prototype.initExtensions):
14108        (WebInspector.ExtensionServer.prototype._addExtensions):
14109        (WebInspector.ExtensionServer.prototype._addExtension):
14110        (WebInspector.ExtensionServer.prototype._innerAddExtension):
14111
141122012-09-18  Christophe Dumez  <christophe.dumez@intel.com>
14113
14114        [EFL] min-device-width failures in media tests
14115        https://bugs.webkit.org/show_bug.cgi?id=96920
14116
14117        Reviewed by Kenneth Rohde Christiansen.
14118
14119        Return a realistic value (800x600) for screen resolution if
14120        it cannot be detected, instead of returning (0x0).
14121
14122        This allows for some tests to pass on the build bots
14123        where X is not running.
14124
14125        No new tests, already covered by existing tests.
14126
14127        * platform/efl/PlatformScreenEfl.cpp:
14128        (WebCore::screenRect):
14129
141302012-09-18  Simon Hausmann  <simon.hausmann@digia.com>
14131
14132        Fix compilation with Qt 5 on MeeGo 1.2 Harmattan
14133        https://bugs.webkit.org/show_bug.cgi?id=96937
14134
14135        Reviewed by Jocelyn Turcotte.
14136
14137        The gl2ext.h header file on the platform is outdated. Instead use the newer copy from Qt
14138        through implicit inclusion of qopengl.h. Since Qt's declarations are based on newer Khronos
14139        headers, the multi sampling extensions do have the PROC suffix, we need the same workaround
14140        as QNX.
14141
14142        * platform/graphics/opengl/Extensions3DOpenGLES.h:
14143
141442012-09-14  Andrey Kosyakov  <caseq@chromium.org>
14145
14146        Web Inspector: [Extensions API] explicitly manage extension audit progress
14147        https://bugs.webkit.org/show_bug.cgi?id=96803
14148
14149        Reviewed by Alexander Pavlov.
14150
14151        - create a sub-progress per audit category;
14152        - manage audit category progress within the category, not in the panel logic;
14153        - consider audit is done when all categories are done;
14154        - expose AuditResults.updateProgress(worked, totalWork) in the extensions API;
14155        - retain old magic for computing audit progress if extension specifies extension results count.
14156
14157        * inspector/front-end/AuditsPanel.js:
14158        (WebInspector.AuditsPanel.prototype._executeAudit.ruleResultReadyCallback):
14159        (WebInspector.AuditsPanel.prototype._executeAudit):
14160        (WebInspector.AuditCategory.prototype.run.callbackWrapper):
14161        (WebInspector.AuditCategory.prototype.run):
14162        * inspector/front-end/ExtensionAPI.js:
14163        (defineCommonExtensionSymbols):
14164        (injectedExtensionAPI.Audits.prototype.addCategory):
14165        (injectedExtensionAPI.AuditResultImpl.prototype.updateProgress):
14166        * inspector/front-end/ExtensionAuditCategory.js:
14167        (WebInspector.ExtensionAuditCategory.prototype.run):
14168        (WebInspector.ExtensionAuditCategoryResults):
14169        (WebInspector.ExtensionAuditCategoryResults.prototype.done):
14170        (WebInspector.ExtensionAuditCategoryResults.prototype._addResult):
14171        (WebInspector.ExtensionAuditCategoryResults.prototype.updateProgress):
14172        * inspector/front-end/ExtensionServer.js:
14173        (WebInspector.ExtensionServer):
14174        (WebInspector.ExtensionServer.prototype._onUpdateAuditProgress):
14175        (WebInspector.ExtensionServer.prototype._onStopAuditCategoryRun):
14176        * inspector/front-end/ProgressBar.js:
14177        (WebInspector.ProgressIndicator.prototype.done): Assure only first call to done() has effect.
14178
141792012-09-19  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
14180
14181        Revert r127457 and following fixes due to several hit-testing regressions
14182        https://bugs.webkit.org/show_bug.cgi?id=96830
14183
14184        Reviewed by Antonio Gomes.
14185
14186        The revert misssed one related follow-up.
14187
14188        * dom/Document.cpp:
14189        (WebCore::Document::updateHoverActiveState):
14190
14191
141922012-09-18  Mihnea Ovidenie  <mihnea@adobe.com>
14193
14194        [CSSRegions]Flag auto-height regions
14195        https://bugs.webkit.org/show_bug.cgi?id=96267
14196
14197        Reviewed by Julien Chaffraix.
14198
14199        The regions having auto logical height should be flagged so that their height will computed as part of a 2 pass-layout mechanism.
14200        A valid region is flagged as having auto logical height if:
14201        - has auto logical height and is part of the normal flow
14202        - has auto logical height, is not part of normal flow and does not have logical top/bottom specified
14203
14204        An invalid region (part of circular dependency) will not be marked even if its style matches the above situations.
14205
14206        Test: fast/regions/autoheight-regions-mark.html
14207
14208        * rendering/FlowThreadController.cpp: Keep a counter of auto logical height valid regions.
14209        (WebCore::FlowThreadController::FlowThreadController):
14210        (WebCore::FlowThreadController::layoutRenderNamedFlowThreads): Verify that the current number of auto logical height regions is correct by iterating over all the regions attached to the flow threads
14211        and compute the number of auto logical height regions on the spot.
14212        (WebCore):
14213        (WebCore::FlowThreadController::isAutoLogicalHeightRegionsFlagConsistent): Helper function that is used to verify the number of auto logical height regions.
14214        * rendering/FlowThreadController.h:
14215        (WebCore::FlowThreadController::hasAutoLogicalHeightRegions):
14216        (WebCore::FlowThreadController::incrementAutoLogicalHeightRegions):
14217        (WebCore::FlowThreadController::decrementAutoLogicalHeightRegions):
14218        (FlowThreadController):
14219        * rendering/RenderFlowThread.cpp:
14220        (WebCore):
14221        (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount): Helper function that is used to count the number of regions marked as having auto logical height.
14222        * rendering/RenderFlowThread.h:
14223        * rendering/RenderRegion.cpp:
14224        (WebCore::RenderRegion::RenderRegion):
14225        (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
14226        (WebCore):
14227        (WebCore::RenderRegion::styleDidChange): For a region that is attached to a flow thread, verify whether the style change modified its auto logical height appearance.
14228        (WebCore::RenderRegion::attachRegion): Handle the case of attaching region to a flow thread and the detach/attach sequence when the region is moved in the render tree.
14229        (WebCore::RenderRegion::detachRegion):
14230        * rendering/RenderRegion.h:
14231        (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
14232        (WebCore::RenderRegion::hasAutoLogicalHeight):
14233        (RenderRegion):
14234        * rendering/RenderTreeAsText.cpp: For the regions that use auto logical height, modify the output to reflect that.
14235        (WebCore::writeRenderNamedFlowThreads):
14236
142372012-09-18  Shinya Kawanaka  <shinyak@chromium.org>
14238
14239        Disable adding an AuthorShadowRoot to replaced elements.
14240        https://bugs.webkit.org/show_bug.cgi?id=96978
14241
14242        Reviewed by Hajime Morita.
14243
14244        We (people who implement Shadow DOM) have concluded that we don't support adding AuthorShadowRoot to
14245        replaced elements in the current spec, since it turned out that a lot of difficulties exist and it brings
14246        a lot of mess to our codebase.
14247
14248        For now, we just disable adding AuthorShadowRoot to these replaced elements.
14249
14250        Test: fast/dom/shadow/shadow-disable.html
14251
14252        * html/HTMLImageElement.h:
14253        * html/HTMLKeygenElement.h:
14254        * html/HTMLMeterElement.h:
14255        * html/HTMLProgressElement.h:
14256        * html/HTMLTextAreaElement.h:
14257
142582012-09-17  Csaba Osztrogonác  <ossy@webkit.org>
14259
14260        Unreviewed, rolling out r128826 and r128813.
14261
14262        * ForwardingHeaders/runtime/JSDestructibleObject.h: Removed.
14263        * bindings/js/JSDOMWrapper.h:
14264        (WebCore::JSDOMWrapper::JSDOMWrapper):
14265        * bindings/scripts/CodeGeneratorJS.pm:
14266        (GenerateHeader):
14267        * bridge/objc/objc_runtime.h:
14268        (ObjcFallbackObjectImp):
14269        * bridge/objc/objc_runtime.mm:
14270        (Bindings):
14271        (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
14272        * bridge/runtime_array.cpp:
14273        (JSC):
14274        (JSC::RuntimeArray::destroy):
14275        * bridge/runtime_array.h:
14276        (JSC::RuntimeArray::create):
14277        * bridge/runtime_object.cpp:
14278        (Bindings):
14279        (JSC::Bindings::RuntimeObject::RuntimeObject):
14280        * bridge/runtime_object.h:
14281        (RuntimeObject):
14282
142832012-09-17  Kent Tamura  <tkent@chromium.org>
14284
14285        Export RuntimeEnabledFeatures::isLangAttributeAwareFormControlUIEnabled correctly
14286        https://bugs.webkit.org/show_bug.cgi?id=96855
14287
14288        Reviewed by Hajime Morita.
14289
14290        * bindings/generic/RuntimeEnabledFeatures.h:
14291        (RuntimeEnabledFeatures): Add WEBCORE_TESTING.
14292        * testing/InternalSettings.cpp: Remove a workaround.
14293        (WebCore::InternalSettings::Backup::Backup):
14294        (WebCore::InternalSettings::Backup::restoreTo):
14295        (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
14296        * testing/InternalSettings.h: ditto.
14297
142982012-09-17  Vivek Galatage  <vivekgalatage@gmail.com>
14299
14300        [Gtk] Remove the unused variable warning in GamepadsGtk.cpp using ASSERT_UNUSED macro
14301        https://bugs.webkit.org/show_bug.cgi?id=96975
14302
14303        Reviewed by Kentaro Hara.
14304
14305        Replacing a simple ASSERT with ASSERT_UNUSED to avoid the warning.
14306
14307        No new tests as refactoring done.
14308
14309        * platform/gtk/GamepadsGtk.cpp:
14310        (WebCore::GamepadDeviceGtk::readCallback):
14311
143122012-09-17  Roger Fong  <roger_fong@apple.com>
14313
14314        [Win] Null check timing function received from CoreAnimation when calling CACFAnimationGetTimingFunction.
14315        https://bugs.webkit.org/show_bug.cgi?id=96972
14316
14317        Reviewed by Timothy Horton
14318
14319        When paused, some CSS animations cause CoreAnimation to pass back a null timing function when calling CACFAnimationGetTimingFunction.
14320        This patch fixes this simply by ensuring that if the output of this method is null, it does not get passed into CACFAnimationSetTimingFunction
14321        via the PlatformCAAnimation::copyTimingFunctionFrom method.
14322
14323        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
14324        (PlatformCAAnimation::copyTimingFunctionFrom):
14325
143262012-09-17  David Barton  <dbarton@mathscribe.com>
14327
14328        Convert MathML to use flexboxes
14329        https://bugs.webkit.org/show_bug.cgi?id=96843
14330
14331        Reviewed by Eric Seidel.
14332
14333        Using the CSS Flexible Box Model simplifies MathML in many ways. Control over alignment, row vs.
14334        column layout, and child layout order are all much easier. Complexities involving floats,
14335        continuations, and most anonymous boxes are eliminated, as are their potential for crashes and
14336        security vulnerabilities.
14337
14338        In a flexbox, column alignment is done with align-items or align-self, instead of text-align.
14339        vertical-align and baselinePosition() are replaced by the firstLineBoxBaseline() virtual
14340        function.
14341
14342        Tested by existing tests.
14343
14344        * css/mathml.css:
14345        (math):
14346        (math[display="block"]):
14347        (mo, mrow, mfenced, mfrac, msub, msup, msubsup, munder, mover, munderover, msqrt, mroot):
14348        (math, mrow, mfenced, msqrt, mroot):
14349        (msqrt > *):
14350        (mo, mfrac, munder, mover, munderover):
14351        (munder, mover, munderover):
14352        (mfrac > *):
14353        (mfrac[numalign="left"] > :first-child):
14354        (mfrac[numalign="right"] > :first-child):
14355        (mfrac[denomalign="left"] > :last-child):
14356        (mfrac[denomalign="right"] > :last-child):
14357        (msubsup > :last-child, mover > :last-child, munderover > :last-child):
14358        (msub > * + *, msup > * + *, msubsup > * + *, munder > * + *, mover > * + *, munderover > * + *):
14359        (mroot):
14360        (mroot > * + *):
14361        (mtable):
14362        
14363        * mathml/MathMLInlineContainerElement.cpp:
14364        (WebCore::MathMLInlineContainerElement::createRenderer):
14365        * mathml/mathtags.in:
14366        
14367        * rendering/mathml/RenderMathMLBlock.cpp:
14368        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
14369        (WebCore::RenderMathMLBlock::computePreferredLogicalWidths):
14370        (WebCore::RenderMathMLBlock::baselinePosition):
14371        (WebCore::RenderMathMLBlock::renderName):
14372        (WebCore::RenderMathMLBlock::paint):
14373        (WebCore::RenderMathMLTable::firstLineBoxBaseline):
14374        * rendering/mathml/RenderMathMLBlock.h:
14375        (RenderMathMLBlock):
14376        (RenderMathMLTable):
14377        (WebCore::RenderMathMLTable::RenderMathMLTable):
14378            - Change RenderMathMLBlock's base class to RenderFlexibleBox, and its display to FLEX or INLINE_FLEX.
14379            - Add RenderMathMLTable for its firstLineBoxBaseline() function, like { vertical-align: middle }.
14380        
14381        * rendering/mathml/RenderMathMLFenced.cpp:
14382        (WebCore::RenderMathMLFenced::createMathMLOperator):
14383        (WebCore::RenderMathMLFenced::makeFences):
14384            - Use RenderMathMLRow::addChild as a more robust name for RenderBlock::addChild.
14385        (WebCore::RenderMathMLFenced::addChild):
14386            - All inline children of a flexbox are treated as blocks automatically.
14387        
14388        * rendering/mathml/RenderMathMLFraction.cpp:
14389        (WebCore::RenderMathMLFraction::fixChildStyle):
14390        (WebCore::RenderMathMLFraction::updateFromElement):
14391            - numalign and denomalign attributes are now handled by mathml.css.
14392        (WebCore::RenderMathMLFraction::addChild):
14393        (WebCore::RenderMathMLFraction::layout):
14394        (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
14395        * rendering/mathml/RenderMathMLFraction.h:
14396        (RenderMathMLFraction):
14397        
14398        * rendering/mathml/RenderMathMLOperator.cpp:
14399        (WebCore::RenderMathMLOperator::updateFromElement):
14400        (WebCore::RenderMathMLOperator::createStackableStyle):
14401        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
14402        * rendering/mathml/RenderMathMLOperator.h:
14403        * rendering/mathml/RenderMathMLRow.cpp:
14404        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
14405        
14406        * rendering/mathml/RenderMathMLSubSup.cpp:
14407        (WebCore::RenderMathMLSubSup::RenderMathMLSubSup):
14408        (WebCore::RenderMathMLSubSup::fixScriptsStyle):
14409        (WebCore::RenderMathMLSubSup::addChild):
14410        (WebCore::RenderMathMLSubSup::styleDidChange):
14411        (WebCore::RenderMathMLSubSup::layout):
14412        * rendering/mathml/RenderMathMLSubSup.h:
14413            - Rename Sup to Super, to make it more readable vs. Sub.
14414            - Instead of vertical-align, msub and msup now use the m_scripts anonymous box like msubsup does.
14415            - Individual anonymous block wrappers are no longer needed around the superscript and subscript to
14416              lay them out in a column.
14417            - Handle msub and msup layout, and improve msubsup layout, by requiring a superscript's baseline
14418              to be at least (int) fontSize / 3 + 1 above the main baseline, and a subscript's baseline to be
14419              at least (int) fontSize / 5 + 1 below it.
14420        
14421        * rendering/mathml/RenderMathMLUnderOver.cpp:
14422        (WebCore::RenderMathMLUnderOver::unembellishedOperator):
14423        (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
14424        * rendering/mathml/RenderMathMLUnderOver.h:
14425        (RenderMathMLUnderOver):
14426            - RenderMathMLUnderOver no longer needs to use anonymous wrappers for column layout. Centering and
14427              child layout order (overscript first) are also handled by mathml.css.
14428
144292012-09-17  Ryuan Choi  <ryuan.choi@samsung.com>
14430
14431        [EFL] Several key codes are not mapped with evas key name.
14432        https://bugs.webkit.org/show_bug.cgi?id=96915
14433
14434        Reviewed by Gyuyoung Kim.
14435
14436        * platform/efl/EflKeyboardUtilities.cpp:
14437        (WebCore::createWindowsKeyMap):
14438        Added missing items of hashmap for virtual key code.
14439
144402012-09-17  Filip Pizlo  <fpizlo@apple.com>
14441
14442        Unreviewed, fix build.
14443
14444        * css/CSSRule.cpp:
14445        (SameSizeAsCSSRule):
14446
144472012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
14448
14449        Delayed structure sweep can leak structures without bound
14450        https://bugs.webkit.org/show_bug.cgi?id=96546
14451
14452        Reviewed by Gavin Barraclough.
14453
14454        This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
14455        allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
14456        those objects with destructors and with immortal structures, and those objects with destructors that don't have 
14457        immortal structures. All of the objects of the third type (destructors without immortal structures) now 
14458        inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
14459        the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
14460
14461        No new tests.
14462
14463        * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
14464        * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
14465        (JSDOMWrapper):
14466        (WebCore::JSDOMWrapper::JSDOMWrapper):
14467        * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
14468        e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to use the NEEDS_DESTRUCTOR macro.
14469        (GenerateHeader):
14470        * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
14471        (ObjcFallbackObjectImp):
14472        * bridge/objc/objc_runtime.mm:
14473        (Bindings):
14474        (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
14475        * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
14476        (JSC):
14477        (JSC::RuntimeArray::destroy):
14478        * bridge/runtime_array.h:
14479        (JSC::RuntimeArray::create):
14480        (JSC):
14481        * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
14482        (Bindings):
14483        (JSC::Bindings::RuntimeObject::RuntimeObject):
14484        * bridge/runtime_object.h:
14485        (RuntimeObject):
14486
144872012-09-17  Sheriff Bot  <webkit.review.bot@gmail.com>
14488
14489        Unreviewed, rolling out r128809.
14490        http://trac.webkit.org/changeset/128809
14491        https://bugs.webkit.org/show_bug.cgi?id=96958
14492
14493        Broke the Windows build. (Requested by andersca on #webkit).
14494
14495        * platform/win/BString.cpp:
14496        (WebCore::BString::~BString):
14497        (WebCore::BString::adoptBSTR):
14498        * platform/win/BString.h:
14499        (BString):
14500
145012012-09-17  Patrick Gansterer  <paroga@webkit.org>
14502
14503        [WIN] Use BString in favour of BSTR to improve memory management
14504        https://bugs.webkit.org/show_bug.cgi?id=93128
14505
14506        Reviewed by Anders Carlsson.
14507
14508        BString automatically calls SysFreeString() in its destructor which helps
14509        avoiding memory leaks. So it should be used instead of BSTR directly.
14510        Add operator& to BString to allow its usage for out parameters too (like COMPtr).
14511        This fixes already a few memory leaks in the existing code.
14512
14513        * platform/win/BString.cpp:
14514        (WebCore::BString::~BString):
14515        (WebCore::BString::adoptBSTR):
14516        (WebCore::BString::clear):
14517        (WebCore):
14518        * platform/win/BString.h:
14519        (BString):
14520        (WebCore::BString::operator&):
14521
145222012-09-17  Tony Chang  <tony@chromium.org>
14523
14524        Make CSS.PrefixUsage histogram smaller to save memory
14525        https://bugs.webkit.org/show_bug.cgi?id=96941
14526
14527        Reviewed by Ojan Vafai.
14528
14529        Each bucket costs about 12 bytes. This reduces the size of the histogram
14530        from 600 to 384, which will save about 2.5k per renderer and browser
14531        process.
14532
14533        In the long run, we could probably generate a table in makeprop.pl that
14534        only has the webkit prefix values to save even more memory (there are
14535        194 properties that start with -webkit).
14536
14537        No new tests, just refactoring.
14538
14539        * css/CSSParser.cpp:
14540        (WebCore::cssPropertyID):
14541
145422012-09-17  Rob Buis  <rbuis@rim.com>
14543
14544        [BlackBerry] Enable VIDEO_TRACK
14545        https://bugs.webkit.org/show_bug.cgi?id=96949
14546
14547        Reviewed by Antonio Gomes.
14548
14549        Turn on runtime feature for VIDEO_TRACK.
14550
14551        * bindings/generic/RuntimeEnabledFeatures.cpp:
14552        (WebCore):
14553
145542012-09-17  Adam Barth  <abarth@webkit.org>
14555
14556        Measure the usage of window.webkitIndexedDB so we can measure the transition to webkit.indexedDB
14557        https://bugs.webkit.org/show_bug.cgi?id=96943
14558
14559        Reviewed by Ojan Vafai.
14560
14561        We don't yet support window.indexedDB but we will once
14562        https://bugs.webkit.org/show_bug.cgi?id=96548 lands. This metric will
14563        help us measure the transition from the prefixed to the unprefixed API.
14564
14565        * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
14566        * page/FeatureObserver.h:
14567
145682012-09-17  Adam Barth  <abarth@webkit.org>
14569
14570        Measure usage of the legacy WebKitBlobBuilder API in the hopes of being able to remove it
14571        https://bugs.webkit.org/show_bug.cgi?id=96939
14572
14573        Reviewed by Ojan Vafai.
14574
14575        In the course of standardization, the BlobBuilder API was removed in
14576        favor of just using the Blob constructor. This patch adds some
14577        measurement to see how often this legacy API is used. If the API is not
14578        used very much, we might be able to remove it.
14579
14580        * fileapi/WebKitBlobBuilder.cpp:
14581        (WebCore::WebKitBlobBuilder::create):
14582        * page/FeatureObserver.h:
14583
145842012-09-17  Joshua Bell  <jsbell@chromium.org>
14585
14586        IndexedDB: Result of IDBFactory.deleteDatabase() should be undefined, not null
14587        https://bugs.webkit.org/show_bug.cgi?id=96538
14588
14589        Reviewed by Tony Chang.
14590
14591        Trivial implementation change to match the spec.
14592
14593        Tests: storage/indexeddb/factory-deletedatabase-expected.html
14594               storage/indexeddb/intversion-long-queue-expected.html
14595
14596        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
14597        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
14598
145992012-09-17  Rick Byers  <rbyers@chromium.org>
14600
14601        Allow gesture events to set active/hover state.
14602        https://bugs.webkit.org/show_bug.cgi?id=96060
14603
14604        Reviewed by Antonio Gomes.
14605
14606        Adds GestureTapDownCancel as a new PlatformGestureEvent type.  On ports
14607        that support gesture events, use GestureTapDown to trigger active/hover
14608        states, and GestureTap/GestureTapDownCancel to clear them.  This is
14609        superior to using touch events for a number of reasons:
14610          1) some ports (chromium) avoid sending touch events unless absolutely
14611          necessary, since they hurt scroll performance by blocking threaded
14612          scrolling.
14613          2) with touch, and element really shouldn't be 'active' when the user
14614          happens to be touching it while scrolling.  In that case they aren't
14615          'manipulating the element', they're manipulating the page or div that
14616          is scrolling.
14617          3) similarly, there may be other gestures that involve touching the
14618          element which aren't really about manipulating that element (eg.
14619          pinch to zoom).
14620
14621        Test: fast/events/touch/gesture/gesture-tap-active-state.html
14622        Test: fast/events/touch/gesture/gesture-tap-active-state-iframe.html
14623        * dom/GestureEvent.cpp:
14624        (WebCore::GestureEvent::create):
14625        * page/EventHandler.cpp:
14626        (WebCore::EventHandler::handleGestureEvent):
14627        (WebCore::EventHandler::handleTouchEvent):
14628        * platform/PlatformEvent.h:
14629
146302012-09-17  Alec Flett  <alecflett@chromium.org>
14631
14632        IndexedDB: Use ScriptValue instead of SerializedScriptValue for get/openCursor
14633        https://bugs.webkit.org/show_bug.cgi?id=95409
14634
14635        Reviewed by Kentaro Hara.
14636
14637        This reduces a bunch of serialization/deserialization when writing
14638        to objectstores with indexes.
14639
14640        No new tests, as this covers core functionality of IndexedDB, and
14641        almost every test would fail. Some likely tests that would fail
14642        fundamentally include:
14643
14644        storage/indexeddb/objectstore-basics.html
14645        storage/indexeddb/cursor-basics.html
14646        storage/indexeddb/index-basics.html
14647
14648        * Modules/indexeddb/IDBAny.cpp:
14649        (WebCore::IDBAny::scriptValue):
14650        (WebCore::IDBAny::integer):
14651        (WebCore):
14652        (WebCore::IDBAny::set):
14653        * Modules/indexeddb/IDBAny.h:
14654        (WebCore):
14655        (IDBAny):
14656        (WebCore::IDBAny::create):
14657        * Modules/indexeddb/IDBCursor.cpp:
14658        (WebCore::IDBCursor::setValueReady):
14659        * Modules/indexeddb/IDBCursor.h:
14660        (WebCore):
14661        (IDBCursor):
14662        * Modules/indexeddb/IDBDatabase.cpp:
14663        (WebCore::IDBDatabase::version):
14664        * Modules/indexeddb/IDBObjectStore.cpp:
14665        (WebCore):
14666        * Modules/indexeddb/IDBRequest.cpp:
14667        (WebCore::IDBRequest::setResultCursor):
14668        (WebCore::IDBRequest::onSuccess):
14669        (WebCore):
14670        (WebCore::IDBRequest::onSuccessInternal):
14671        (WebCore::IDBRequest::dispatchEvent):
14672        * Modules/indexeddb/IDBRequest.h:
14673        (IDBRequest):
14674        * Modules/indexeddb/IDBTransactionCallbacks.h:
14675        * bindings/v8/IDBBindingUtilities.cpp:
14676        (WebCore::deserializeIDBValue):
14677        (WebCore::injectIDBKeyIntoScriptValue):
14678        * bindings/v8/IDBBindingUtilities.h:
14679        (WebCore):
14680        * bindings/v8/custom/V8IDBAnyCustom.cpp:
14681        (WebCore::toV8):
14682
146832012-09-17  Adam Barth  <abarth@webkit.org>
14684
14685        We should make collecting metrics easier by adding an IDL attribute
14686        https://bugs.webkit.org/show_bug.cgi?id=96837
14687
14688        Reviewed by Kentaro Hara.
14689
14690        Currently it is too hard to set up a good measurement experiment to see
14691        whether we can safely remove a feature (including vendor-prefixed
14692        features). This patch introduces the [V8MeasureAs] IDL attribute to make
14693        that process easier.
14694
14695        When you add the [V8MeasureAs] IDL property to an API, we'll count what
14696        fraction of Page objects used that API.
14697
14698        * Modules/notifications/DOMWindowNotifications.idl:
14699        * bindings/scripts/CodeGeneratorV8.pm:
14700        (GenerateFeatureObservation):
14701        (GenerateNormalAttrGetter):
14702        (GenerateReplaceableAttrSetter):
14703        (GenerateNormalAttrSetter):
14704        (GenerateOverloadedFunctionCallback):
14705        (GenerateFunctionCallback):
14706        (GenerateConstructorCallback):
14707        (GenerateNamedConstructorCallback):
14708        * bindings/scripts/IDLAttributes.txt:
14709        * bindings/scripts/test/TestObj.idl:
14710        * bindings/scripts/test/V8/V8TestObj.cpp:
14711        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
14712        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
14713        (WebCore::TestObjV8Internal::objMethodCallback):
14714        (WebCore):
14715        * page/Page.h:
14716        (WebCore::Page::featureObserver):
14717        (Page):
14718
147192012-09-17  Bear Travis  <betravis@adobe.com>
14720
14721        [CSS Exclusions] Enable shape-inside for percentage lengths based on logical height
14722        https://bugs.webkit.org/show_bug.cgi?id=93547
14723
14724        Reviewed by Levi Weintraub.
14725
14726        Shape-inside needs to be passed the logical size to use when computing percentage
14727        based coordinates. The CSS Regions-specific method computeInitialRegionRangeForBlock
14728        has been generalized to updateRegionsAndExclusionsLogicalSize. This method takes
14729        the pre-child-layout logical width and height, and uses them to compute the logical
14730        width and height that regions and exclusions should use for layout. Regions use a
14731        block's maximum possible logical height to compute a region's maximum extent.
14732        Exclusions use a block's fixed logical width and height, or 0 if one does not exist,
14733        to resolve percentage-based shape lengths. The default logical size used for resolving
14734        percentage based coordinates is tested in shape-inside-percentage-auto.html.
14735
14736        Test: fast/exclusions/shape-inside/shape-inside-percentage.html
14737
14738        * rendering/RenderBlock.cpp:
14739        (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize): Calculates the logical
14740        height regions and exclusions should use, and updates their layout sizes through
14741        computeExclusionShapeSize and computeRegionRangeForBlock.
14742        (WebCore):
14743        (WebCore::RenderBlock::computeExclusionShapeSize): Pass the appropriate logical size
14744        to exclusion shapes so they can resolve percentage based coordinates.
14745        (WebCore::RenderBlock::layoutBlock): Call the new updateRegionsAndExclusionsLogicalSize
14746        method.
14747        * rendering/RenderBlock.h:
14748        (RenderBlock):
14749        * rendering/RenderBox.cpp:
14750        (WebCore::percentageLogicalHeightIsResolvable): Determine if percentage lengths
14751        based on logical height can be resolved.
14752        (WebCore):
14753        (WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock): Added declaration.
14754        * rendering/RenderBox.h:
14755        (RenderBox):
14756        * rendering/RenderDeprecatedFlexibleBox.cpp:
14757        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock): Calling
14758        updateRegionsAndExclusionsLogicalSize rather than computeInitialRegionRangeForBlock.
14759        * rendering/RenderFlexibleBox.cpp:
14760        (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
14761        * rendering/RenderGrid.cpp:
14762        (WebCore::RenderGrid::layoutBlock): Ditto.
14763
147642012-09-17  Vangelis Kokkevis  <vangelis@chromium.org>
14765
14766        [chromium] Add gpu_test trace events tracking the creation of a DrawingBuffer
14767        and Canvas2DLayerBridge. They will be used by browser tests to verify the
14768        existence of WebGL and accelerated canvas.
14769        https://bugs.webkit.org/show_bug.cgi?id=96871
14770
14771        Reviewed by James Robinson.
14772
14773        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
14774        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
14775        * platform/graphics/chromium/DrawingBufferChromium.cpp:
14776        (WebCore::DrawingBuffer::DrawingBuffer):
14777
147782012-09-17  Bo Liu  <boliu@chromium.org>
14779
14780        Fix LoadImagesAutomatically cache behavior
14781        https://bugs.webkit.org/show_bug.cgi?id=96829
14782
14783        Reviewed by Adam Barth.
14784
14785        I broke the caching behavior of LoadImagesAutomatically in
14786        http://trac.webkit.org/changeset/128645
14787
14788        This restores the original behavior that AutoLoadImage does not block
14789        loads from memory cache.
14790
14791        Test: fast/loader/display-image-unset-allows-cached-image-load.html
14792
14793        * loader/cache/CachedResourceLoader.cpp:
14794        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
14795        (WebCore::CachedResourceLoader::clientAllowsImage):
14796        (WebCore::CachedResourceLoader::shouldDeferImageLoad):
14797        * loader/cache/CachedResourceLoader.h:
14798        (CachedResourceLoader):
14799
148002012-09-17  Andrei Poenaru  <poenaru@adobe.com>
14801
14802        Web Inspector: Display Named Flows in the Tabbed Pane of the "CSS Named Flows" Drawer
14803        https://bugs.webkit.org/show_bug.cgi?id=96733
14804
14805        Reviewed by Alexander Pavlov.
14806
14807        Added functionality to the Tabbed Pane from the CSS Named Flows Drawer.
14808
14809        * English.lproj/localizedStrings.js:
14810        * WebCore.gypi:
14811        * WebCore.vcproj/WebCore.vcproj:
14812        * inspector/compile-front-end.py:
14813        * inspector/front-end/CSSNamedFlowCollectionsView.js:
14814        (WebInspector.CSSNamedFlowCollectionsView.prototype._appendNamedFlow):
14815        (WebInspector.CSSNamedFlowCollectionsView.prototype._removeNamedFlow):
14816        (WebInspector.CSSNamedFlowCollectionsView.prototype._updateNamedFlow):
14817        (WebInspector.CSSNamedFlowCollectionsView.prototype._showNamedFlow):
14818        (WebInspector.CSSNamedFlowCollectionsView.prototype._selectNamedFlowInSidebar):
14819        (WebInspector.CSSNamedFlowCollectionsView.prototype._selectNamedFlowTab):
14820        (WebInspector.CSSNamedFlowCollectionsView.prototype._tabSelected):
14821        (WebInspector.CSSNamedFlowCollectionsView.prototype._tabClosed):
14822        (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
14823        (WebInspector.CSSNamedFlowCollectionsView.prototype.willHide):
14824        (WebInspector.FlowTreeElement):
14825        (WebInspector.FlowTreeElement.prototype.setOverset):
14826        * inspector/front-end/CSSNamedFlowView.js: Added.
14827        (WebInspector.CSSNamedFlowView):
14828        (WebInspector.CSSNamedFlowView.prototype._createFlowTreeOutline):
14829        (WebInspector.CSSNamedFlowView.prototype._insertContentNode):
14830        (WebInspector.CSSNamedFlowView.prototype._insertRegion):
14831        (WebInspector.CSSNamedFlowView.prototype.get flow):
14832        (WebInspector.CSSNamedFlowView.prototype.set flow):
14833        (WebInspector.CSSNamedFlowView.prototype._updateRegionOverset):
14834        (WebInspector.CSSNamedFlowView.prototype._mergeContentNodes):
14835        (WebInspector.CSSNamedFlowView.prototype._mergeRegions):
14836        (WebInspector.CSSNamedFlowView.prototype._update):
14837        * inspector/front-end/ElementsPanel.js:
14838        * inspector/front-end/Images/regionEmpty.png: Added.
14839        * inspector/front-end/Images/regionFit.png: Added.
14840        * inspector/front-end/Images/regionOverset.png: Added.
14841        * inspector/front-end/WebKit.qrc:
14842        * inspector/front-end/cssNamedFlows.css:
14843        (.css-named-flow-collections-view .split-view-sidebar-left .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
14844        (.css-named-flow-collections-view .split-view-sidebar-left .named-flow-overflow::before):
14845        (.css-named-flow-collections-view .region-empty::before):
14846        (.css-named-flow-collections-view .region-fit::before):
14847        (.css-named-flow-collections-view .region-overset::before):
14848        (.css-named-flow-collections-view .split-view-contents .named-flow-element):
14849
148502012-09-17  Zan Dobersek  <zandobersek@gmail.com>
14851
14852        [Gtk] Remove configuration options for stable features that are currently enabled
14853        https://bugs.webkit.org/show_bug.cgi?id=96621
14854
14855        Reviewed by Martin Robinson.
14856
14857        Remove Automake conditional checking for features that are being removed in
14858        configure.ac. Unstable features that don't introduce dependencies are now
14859        disabled if necessary by being listed in the unstable feature defines overriding
14860        variable.
14861
14862        No new tests - no new functionality.
14863
14864        * GNUmakefile.am:
14865        * GNUmakefile.features.am:
14866        * bindings/gobject/GNUmakefile.am:
14867
148682012-09-17  Lauro Neto  <lauro.neto@openbossa.org>
14869
14870        [Qt] Cleanup/refactor the user agent detection code
14871        https://bugs.webkit.org/show_bug.cgi?id=96822
14872
14873        Unreviewed build fix.
14874
14875        Build fixes for Windows and Mac OS builds.
14876
14877        * platform/qt/UserAgentQt.cpp:
14878        (WebCore::UserAgentQt::standardUserAgent):
14879
14880            QLatin1String doesn't have a default contructor. Replaced #ifdef with #if.
14881
148822012-09-17  Lauro Neto  <lauro.neto@openbossa.org>
14883
14884        Updates to the useragent patch
14885
14886        [Qt] Cleanup/refactor the user agent detection code
14887        https://bugs.webkit.org/show_bug.cgi?id=96822
14888
14889        Reviewed by Simon Hausmann.
14890
14891        Replaced Q_WS_*/Q_OS_* with WTF OS/CPU detection macros.
14892        Cleanup the check for unsupported OS.
14893        Replaced QString.arg() usage with simple string concatenation.
14894
14895        * platform/qt/UserAgentQt.cpp:
14896        (WebCore::UserAgentQt::standardUserAgent):
14897
148982012-09-17  Sheriff Bot  <webkit.review.bot@gmail.com>
14899
14900        Unreviewed, rolling out r128759.
14901        http://trac.webkit.org/changeset/128759
14902        https://bugs.webkit.org/show_bug.cgi?id=96929
14903
14904        New assertion hit on multiple platforms (Requested by carewolf
14905        on #webkit).
14906
14907        * dom/Document.cpp:
14908        (WebCore::Document::updateHoverActiveState):
14909
149102012-09-17  Ilya Tikhonovsky  <loislo@chromium.org>
14911
14912        Web Inspector: NMI: now when we can detect instrumented classes we can
14913        remove addInstrumentedMember and use addMember for everything.
14914        https://bugs.webkit.org/show_bug.cgi?id=96913
14915
14916        Reviewed by Yury Semikhatsky.
14917
14918        * bindings/v8/DOMDataStore.cpp:
14919        (WebCore::DOMDataStore::reportMemoryUsage):
14920        * bindings/v8/IntrusiveDOMWrapperMap.h:
14921        * bindings/v8/V8PerIsolateData.cpp:
14922        (WebCore::V8PerIsolateData::reportMemoryUsage):
14923        * css/CSSBorderImageSliceValue.cpp:
14924        (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
14925        * css/CSSCalculationValue.cpp:
14926        * css/CSSCanvasValue.cpp:
14927        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
14928        * css/CSSCharsetRule.cpp:
14929        (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
14930        * css/CSSComputedStyleDeclaration.cpp:
14931        (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
14932        * css/CSSCrossfadeValue.cpp:
14933        (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
14934        * css/CSSFontFaceRule.cpp:
14935        (WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
14936        * css/CSSFontFaceSrcValue.cpp:
14937        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
14938        * css/CSSFunctionValue.cpp:
14939        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
14940        * css/CSSGradientValue.cpp:
14941        (WebCore::CSSGradientColorStop::reportMemoryUsage):
14942        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
14943        (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
14944        (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
14945        * css/CSSImageSetValue.cpp:
14946        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
14947        * css/CSSImageValue.cpp:
14948        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
14949        * css/CSSImportRule.cpp:
14950        (WebCore::CSSImportRule::reportDescendantMemoryUsage):
14951        * css/CSSMediaRule.cpp:
14952        (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
14953        * css/CSSPageRule.cpp:
14954        (WebCore::CSSPageRule::reportDescendantMemoryUsage):
14955        * css/CSSPrimitiveValue.cpp:
14956        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
14957        * css/CSSProperty.cpp:
14958        (WebCore::CSSProperty::reportMemoryUsage):
14959        * css/CSSReflectValue.cpp:
14960        (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
14961        * css/CSSRule.cpp:
14962        (WebCore::CSSRule::reportBaseClassMemoryUsage):
14963        * css/CSSRuleList.h:
14964        * css/CSSStyleRule.cpp:
14965        (WebCore::CSSStyleRule::reportDescendantMemoryUsage):
14966        * css/CSSStyleSheet.cpp:
14967        (WebCore::CSSStyleSheet::reportMemoryUsage):
14968        * css/CSSValue.cpp:
14969        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
14970        * css/CSSVariableValue.h:
14971        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
14972        * css/FontFeatureValue.cpp:
14973        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
14974        * css/FontValue.cpp:
14975        (WebCore::FontValue::reportDescendantMemoryUsage):
14976        * css/MediaList.cpp:
14977        (WebCore::MediaList::reportMemoryUsage):
14978        * css/MediaQuery.cpp:
14979        (WebCore::MediaQuery::reportMemoryUsage):
14980        * css/MediaQueryExp.cpp:
14981        (WebCore::MediaQueryExp::reportMemoryUsage):
14982        * css/PropertySetCSSStyleDeclaration.cpp:
14983        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
14984        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
14985        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
14986        * css/ShadowValue.cpp:
14987        (WebCore::ShadowValue::reportDescendantMemoryUsage):
14988        * css/StylePropertySet.cpp:
14989        (WebCore::StylePropertySet::reportMemoryUsage):
14990        * css/StyleResolver.cpp:
14991        (WebCore::StyleResolver::collectMatchingRulesForList):
14992        * css/StyleRule.cpp:
14993        (WebCore::StyleRule::reportDescendantMemoryUsage):
14994        (WebCore::StyleRulePage::reportDescendantMemoryUsage):
14995        (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
14996        (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
14997        (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
14998        * css/StyleRuleImport.cpp:
14999        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
15000        * css/StyleSheetContents.cpp:
15001        (WebCore::StyleSheetContents::reportMemoryUsage):
15002        * css/WebKitCSSKeyframeRule.cpp:
15003        (WebCore::StyleKeyframe::reportMemoryUsage):
15004        (WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
15005        * css/WebKitCSSKeyframesRule.cpp:
15006        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
15007        (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
15008        * css/WebKitCSSRegionRule.cpp:
15009        (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
15010        * css/WebKitCSSSVGDocumentValue.cpp:
15011        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
15012        * css/WebKitCSSShaderValue.cpp:
15013        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
15014        * dom/Attribute.h:
15015        (WebCore::Attribute::reportMemoryUsage):
15016        * dom/CharacterData.cpp:
15017        (WebCore::CharacterData::reportMemoryUsage):
15018        * dom/ContainerNode.h:
15019        (WebCore::ContainerNode::reportMemoryUsage):
15020        * dom/Document.cpp:
15021        (WebCore::Document::reportMemoryUsage):
15022        * dom/Element.h:
15023        (WebCore::Element::reportMemoryUsage):
15024        * dom/ElementAttributeData.cpp:
15025        (WebCore::ElementAttributeData::reportMemoryUsage):
15026        * dom/Event.cpp:
15027        (WebCore::Event::reportMemoryUsage):
15028        * dom/Node.cpp:
15029        (WebCore::Node::reportMemoryUsage):
15030        * dom/QualifiedName.cpp:
15031        (WebCore::QualifiedName::reportMemoryUsage):
15032        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
15033        * html/HTMLImageElement.cpp:
15034        (WebCore::HTMLImageElement::reportMemoryUsage):
15035        * loader/DocumentLoader.cpp:
15036        (WebCore::DocumentLoader::reportMemoryUsage):
15037        * loader/FrameLoader.cpp:
15038        (WebCore::FrameLoader::reportMemoryUsage):
15039        * loader/MainResourceLoader.cpp:
15040        (WebCore::MainResourceLoader::reportMemoryUsage):
15041        * loader/ResourceLoader.cpp:
15042        (WebCore::ResourceLoader::reportMemoryUsage):
15043        * loader/SubresourceLoader.cpp:
15044        (WebCore::SubresourceLoader::reportMemoryUsage):
15045        * loader/SubstituteData.cpp:
15046        (WebCore::SubstituteData::reportMemoryUsage):
15047        * loader/cache/CachedCSSStyleSheet.cpp:
15048        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
15049        * loader/cache/CachedFont.cpp:
15050        (WebCore::CachedFont::reportMemoryUsage):
15051        * loader/cache/CachedImage.cpp:
15052        (WebCore::CachedImage::reportMemoryUsage):
15053        * loader/cache/CachedResource.cpp:
15054        (WebCore::CachedResource::reportMemoryUsage):
15055        * loader/cache/CachedResourceHandle.cpp:
15056        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
15057        * loader/cache/CachedResourceLoader.cpp:
15058        (WebCore::CachedResourceLoader::reportMemoryUsage):
15059        * loader/cache/CachedSVGDocument.cpp:
15060        (WebCore::CachedSVGDocument::reportMemoryUsage):
15061        * loader/cache/CachedScript.cpp:
15062        (WebCore::CachedScript::reportMemoryUsage):
15063        * loader/cache/CachedShader.cpp:
15064        (WebCore::CachedShader::reportMemoryUsage):
15065        * loader/cache/CachedXSLStyleSheet.cpp:
15066        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
15067        * loader/cache/MemoryCache.cpp:
15068        (WebCore::MemoryCache::reportMemoryUsage):
15069        * page/Frame.cpp:
15070        (WebCore::Frame::reportMemoryUsage):
15071        * platform/KURL.cpp:
15072        (WebCore::KURL::reportMemoryUsage):
15073        * platform/KURLGoogle.cpp:
15074        (WebCore::KURLGooglePrivate::reportMemoryUsage):
15075        * platform/KURLWTFURLImpl.h:
15076        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
15077        * platform/TreeShared.h:
15078        (WebCore::TreeShared::reportMemoryUsage):
15079        * platform/graphics/CrossfadeGeneratedImage.cpp:
15080        (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
15081        * platform/graphics/Image.cpp:
15082        (WebCore::Image::reportMemoryUsage):
15083        * platform/network/ResourceRequestBase.cpp:
15084        (WebCore::ResourceRequestBase::reportMemoryUsage):
15085        * platform/network/ResourceResponseBase.cpp:
15086        (WebCore::ResourceResponseBase::reportMemoryUsage):
15087        * rendering/style/DataRef.h:
15088        (WebCore::DataRef::reportMemoryUsage):
15089        * rendering/style/RenderStyle.cpp:
15090        (WebCore::RenderStyle::reportMemoryUsage):
15091        * rendering/style/StyleRareInheritedData.cpp:
15092        (WebCore::StyleRareInheritedData::reportMemoryUsage):
15093        * rendering/style/StyleRareNonInheritedData.cpp:
15094        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
15095        * svg/SVGPaint.cpp:
15096        (WebCore::SVGPaint::reportDescendantMemoryUsage):
15097        * svg/graphics/SVGImage.cpp:
15098        (WebCore::SVGImage::reportMemoryUsage):
15099
151002012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
15101
15102        [TouchAdjustment] Adjusted point outside bounds for non-rectilinear targets
15103        https://bugs.webkit.org/show_bug.cgi?id=96098
15104
15105        Reviewed by Antonio Gomes.
15106
15107        Simplifies how snapTo tries to restrict the adjustment to the touch-area, and 
15108        at the same fix it to give better guarantees.
15109
15110        Test: touchadjustment/rotated-node.html
15111
15112        * page/TouchAdjustment.cpp:
15113        (WebCore::TouchAdjustment::snapTo):
15114
151152012-09-17  Filip Spacek  <fspacek@rim.com>
15116
15117        [BlackBerry] Use glDeleteProgram to delete OpenGL shader programs.
15118        https://bugs.webkit.org/show_bug.cgi?id=96771
15119
15120        Reviewed by Rob Buis.
15121
15122        Reviewed internally by Arvid Nilsson.
15123
15124        * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
15125        (WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
15126        (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
15127        (WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
15128        (WebCore::EGLImageLayerWebKitThread::createShaderIfNeeded):
15129        (WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
15130        * platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
15131        (EGLImageLayerWebKitThread):
15132
151332012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
15134
15135        Revert r127457 and following fixes due to several hit-testing regressions
15136        https://bugs.webkit.org/show_bug.cgi?id=96830
15137
15138        Reviewed by Antonio Gomes.
15139
15140        The revert misssed one related follow-up.
15141
15142        * dom/Document.cpp:
15143        (WebCore::Document::updateHoverActiveState):
15144
151452012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
15146
15147        [TouchAdjustment] Adjusted point outside bounds for non-rectilinear targets
15148        https://bugs.webkit.org/show_bug.cgi?id=96098
15149
15150        Reviewed by Antonio Gomes.
15151
15152        Simplifies how snapTo tries to restrict the adjustment to the touch-area, and 
15153        at the same fix it to give better guarantees.
15154
15155        Test: touchadjustment/rotated-node.html
15156
15157        * page/TouchAdjustment.cpp:
15158        (WebCore::TouchAdjustment::snapTo):
15159
151602012-09-17  Yury Semikhatsky  <yurys@chromium.org>
15161
15162        Unreviewed. Fix Mac compilation.
15163
15164        * bindings/v8/DOMDataStore.h: added missing virtual modifier.
15165        (DOMDataStore):
15166
151672012-09-17  Yury Semikhatsky  <yurys@chromium.org>
15168
15169        Web Inspector: NMI don't double count fields of StaticDOMDataStore
15170        https://bugs.webkit.org/show_bug.cgi?id=96911
15171
15172        Reviewed by Alexander Pavlov.
15173
15174        Provided two separate memory usage reporting routines for static and
15175        scoped DOM data stores.
15176
15177        * bindings/v8/DOMDataStore.cpp:
15178        * bindings/v8/DOMDataStore.h:
15179        (DOMDataStore):
15180        * bindings/v8/ScopedDOMDataStore.cpp:
15181        (WebCore::ScopedDOMDataStore::reportMemoryUsage):
15182        (WebCore):
15183        * bindings/v8/ScopedDOMDataStore.h:
15184        (ScopedDOMDataStore):
15185        * bindings/v8/StaticDOMDataStore.cpp:
15186        (WebCore::StaticDOMDataStore::reportMemoryUsage):
15187        (WebCore):
15188        * bindings/v8/StaticDOMDataStore.h:
15189        (StaticDOMDataStore):
15190
151912012-09-17  Christophe Dumez  <christophe.dumez@intel.com>
15192
15193        [EFL] autoscroll-in-textarea.html fails on EFL
15194        https://bugs.webkit.org/show_bug.cgi?id=94150
15195
15196        Reviewed by Kenneth Rohde Christiansen.
15197
15198        Do not call adjustTextAreaStyle() from RenderThemeEfl::adjustTextAreaStyle().
15199        This is consistent with Mac port implementation.
15200
15201        Calling adjustTextAreaStyle() causes the TextArea in the test to display 6.5
15202        rows instead of the 6 that are requested. This causes the test case to fail
15203        because the top row that is being displayed when scrolling down is different
15204        than the one expected.
15205
15206        Test: fast/events/autoscroll-in-textarea.html
15207
15208        * platform/efl/RenderThemeEfl.cpp:
15209        (WebCore::RenderThemeEfl::adjustTextAreaStyle):
15210
152112012-09-17  Vsevolod Vlasov  <vsevik@chromium.org>
15212
15213        Web Inspector: XHR replay fixes: should remove replayed xhr from memory cache, should not assert.
15214        https://bugs.webkit.org/show_bug.cgi?id=96904
15215
15216        Reviewed by Yury Semikhatsky.
15217
15218        Replayed request is now removed from meory cache before replaying.
15219        Request body is now set to 0 when it was not present in original request.
15220
15221        Test: http/tests/inspector/network/network-xhr-replay.html
15222
15223        * inspector/InspectorResourceAgent.cpp:
15224        (WebCore::InspectorResourceAgent::replayXHR):
15225        * xml/XMLHttpRequest.cpp:
15226        (WebCore::XMLHttpRequest::sendFromInspector):
15227
152282012-09-17  Alejandro Piñeiro  <apinheiro@igalia.com>
15229
15230        AX: Regression (r126369) - toggle buttons no longer return accessible titles
15231        https://bugs.webkit.org/show_bug.cgi?id=94858
15232
15233        Reviewed by Chris Fleizach.
15234
15235        After the addition of the ToggleButtonRole some logic broke because some parts
15236        of the code were assuming/waiting for a ButtonRole
15237
15238        Test: platform/gtk/accessibility/aria-toggle-button-with-title.html
15239
15240        * accessibility/AccessibilityNodeObject.cpp:
15241        (WebCore::AccessibilityNodeObject::isImageButton): using
15242        isButton instead of a ButtonRole comparison
15243        (WebCore::AccessibilityNodeObject::isPressed): using isButton
15244        instead of a ButtonRole comparison
15245        (WebCore::AccessibilityNodeObject::actionElement):
15246        ToggleButtonRole also contemplated in order to call or not toElement
15247        (WebCore::AccessibilityNodeObject::title): ToggleButtonRole also
15248        contemplated in order to call or not textUnderElement
15249        * accessibility/AccessibilityObject.cpp:
15250        (WebCore::AccessibilityObject::actionVerb): buttonAction also
15251        assigned to ToggleButtonRole
15252        (WebCore::AccessibilityObject::isButton): isButton now returns
15253        that an object is a button if it is a ButtonRole, a
15254        PopUpButtonRole or a ToggleButtonRole
15255        * accessibility/AccessibilityObject.h:
15256        (AccessibilityObject): isButton is now implemented on the .c file
15257        * accessibility/AccessibilityRenderObject.cpp:
15258        (WebCore::AccessibilityRenderObject::actionVerb): ToggleButtonRole
15259        also returns a buttonAction
15260
152612012-09-14  Alexander Pavlov  <apavlov@chromium.org>
15262
15263        Web Inspector: Group selectors to highlight matched selector in the Styles pane of Elements Panel
15264        https://bugs.webkit.org/show_bug.cgi?id=96626
15265
15266        Reviewed by Vsevolod Vlasov.
15267
15268        Introduced evaluation of element.webkitMatchesSelector() for every part of a selector group (delimited by commas).
15269        Non-matching selectors in groups are dimmed. If element styles have changed so that the element matches none of the selectors,
15270        the entire group is rendered as matched.
15271
15272        * inspector/front-end/StylesSidebarPane.js:
15273        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate.markCallback):
15274        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
15275        (WebInspector.StylesSidebarPane.prototype._rebuildStyleRules):
15276        (WebInspector.StylePropertiesSection):
15277        (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.mycallback):
15278        (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.trim):
15279        (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.resolvedCallback):
15280        (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup):
15281        (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.matchesCallback):
15282        (WebInspector.StylePropertiesSection.prototype.startEditingSelector):
15283        (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector.markCallback):
15284        (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector):
15285        (WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled):
15286        * inspector/front-end/elementsPanel.css:
15287        (.styles-section .selector):
15288        (.styles-section .selector-matches):
15289
152902012-09-17  Mike West  <mkwst@chromium.org>
15291
15292        Don't GC img elements blocked by CSP until error events fire.
15293        https://bugs.webkit.org/show_bug.cgi?id=94677
15294
15295        Reviewed by Jochen Eisinger.
15296
15297        Currently, the GC checks that no load events are pending for an image
15298        element before reclaiming its memory. It's not, however, checking that
15299        error events are taken care of. This leads to the potential of firing an
15300        event on a DOM element that we've already collected. That's a Bad Thing.
15301
15302        This patch adjusts the check to catch error events as well as load
15303        events, which should ensure that the element isn't collected until it's
15304        really ready. As a drive-by, it also changes the name of the check to
15305        'hasPendingActivity' from 'hasPendingLoadEvent' for clarity.
15306
15307        http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
15308        should no longer crash, and the new
15309        http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html
15310        and fast/events/onerror-img-after-gc.html shouldn't crash either.
15311
15312        Tests: fast/events/onerror-img-after-gc.html
15313               http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html
15314
15315        * bindings/v8/V8GCController.cpp:
15316        (WebCore::calculateGroupId):
15317            Switch to using ImageLoader::hasPendingActivity().
15318        * html/HTMLImageElement.h:
15319        (WebCore::HTMLImageElement::hasPendingActivity):
15320            Switch to using ImageLoader::hasPendingActivity().
15321        * loader/ImageLoader.h:
15322        (WebCore::ImageLoader::hasPendingActivity):
15323            Added a check against pending error events in order to ensure that
15324            elements aren't garbage collected prematurely. Aslo renamed from
15325            ImageLoader::hasPendingLoadEvent for clarity.
15326        * svg/SVGImageElement.cpp:
15327        (WebCore::SVGImageElement::haveLoadedRequiredResources):
15328            Switch to using ImageLoader::hasPendingActivity().
15329
153302012-09-17  Philip Rogers  <pdr@google.com>
15331
15332        Make SVGPathSegList.appendItem O(1) instead of O(n)
15333        https://bugs.webkit.org/show_bug.cgi?id=94048
15334
15335        Reviewed by Nikolas Zimmermann.
15336
15337        Paths in SVG can be specified with a String (with the d attribute) or
15338        with an SVGPathSegList. In SVGPathElement a single representation is
15339        maintained: an SVGPathByteStream. To keep the byte stream synchronized with
15340        the d attribute and the PathSegList, this byte stream is
15341        rebuilt on every operation. As a result, any modification to the
15342        path is an O(n) operation.
15343
15344        This patch takes advantage of the stream aspect of SVGPathByteStream
15345        to make SVGPathSegList.append an O(1) operation instead of O(n).
15346        When an SVGPathSeg is appended to an SVGPathSegList, this patch parses
15347        the SVGPathSeg and directly appends the resulting bytes to the
15348        byte stream.
15349
15350        To achieve this some plumbing has been added to pass more information
15351        about the actual path changes from the SVGPathSegListTearOff to the
15352        SVGPathElement: instead of the generic commitChange() this patch adds
15353        commitChange(ListModification type). If we decide to change our
15354        internal path data structure in the future, this additional commitChange
15355        function can be used to pass the information needed to make
15356        SVGPathSegList synchronization faster.
15357
15358        SVG Path Benchmark (http://bl.ocks.org/1296930) showing just the
15359        appendItem() time used in building a 5000 segment path (avg of 3 runs):
15360        WebKit without patch: 562 ms
15361        Firefox 18.01a:       55 ms
15362        Opera 12.50 internal: 27 ms
15363        WebKit with patch:    7 ms
15364
15365        Test: perf/svg-path-appenditem.html
15366
15367            This test proves the claim: SVGPathSegList.appendItem is now O(1).
15368            Additional tests that appendItem works are covered with existing tests.
15369
15370        * svg/SVGPathByteStream.h:
15371        (WebCore::SVGPathByteStream::append):
15372
15373            This additional append method allows an SVGPathByteStream to be
15374            appended to another.
15375
15376        * svg/SVGPathElement.cpp:
15377        (WebCore::SVGPathElement::pathSegListChanged):
15378
15379            By passing the extra ListModification type to pathSegListChanged,
15380            SVGPathElement is now able to only synchronize the parts of the byte stream
15381            that actually changed. In this patch only append is treated
15382            differently but one can imagine other performance improvements this
15383            additional information allows.
15384
15385        * svg/SVGPathElement.h:
15386        (SVGPathElement):
15387        * svg/SVGPathParser.cpp:
15388        (WebCore::SVGPathParser::parsePathDataFromSource):
15389
15390            During normal SVGPathSegList parsing we enforce that the path start with a moveto
15391            command. This function has been expanded to make that optional so that parsing
15392            can be performed elsewhere in the path (e.g., in the middle).
15393
15394        * svg/SVGPathParser.h:
15395        (SVGPathParser):
15396        * svg/SVGPathSegList.cpp:
15397        (WebCore::SVGPathSegList::commitChange):
15398        * svg/SVGPathSegList.h:
15399        (SVGPathSegList):
15400        * svg/SVGPathSegWithContext.h:
15401        (WebCore::SVGPathSegWithContext::commitChange):
15402        * svg/SVGPathUtilities.cpp:
15403        (WebCore::appendSVGPathByteStreamFromSVGPathSeg):
15404
15405            This function reuses the SVGPathSegList parsing infrastructure
15406            to parse an SVGPathSegList with just the single SVGPathSeg that
15407            is being appended. The resulting byte stream can then be appended
15408            to the result path byte stream.
15409
15410        (WebCore):
15411        * svg/SVGPathUtilities.h:
15412        (WebCore):
15413        * svg/properties/SVGListProperty.h:
15414        (WebCore::SVGListProperty::appendItemValues):
15415        (WebCore::SVGListProperty::appendItemValuesAndWrappers):
15416        (WebCore::SVGListProperty::commitChange):
15417        (SVGListProperty):
15418        * svg/properties/SVGPathSegListPropertyTearOff.h:
15419        (WebCore::SVGPathSegListPropertyTearOff::commitChange):
15420        (SVGPathSegListPropertyTearOff):
15421
154222012-09-16  James Robinson  <jamesr@chromium.org>
15423
15424        Chromium win build fix - listing a file that doesn't exist is a fatal errors in the msvs gyp generator.
15425
15426        * WebCore.gypi:
15427
154282012-09-16  Dan Bernstein  <mitz@apple.com>
15429
15430        REGRESSION (r126763): css1/pseudo/firstline.html fails when using the complex text code path
15431        https://bugs.webkit.org/show_bug.cgi?id=96890
15432
15433        Reviewed by Sam Weinig.
15434
15435        Test: fast/text/stale-TextLayout-from-first-line.html
15436
15437        When a first-line style specifies a font, different pieces of the same RenderText can be
15438        laid out using different fonts, requiring a differet TextLayout for each piece.
15439
15440        * rendering/RenderBlock.h:
15441        (RenderTextInfo): Added m_font data member.
15442        * rendering/RenderBlockLineLayout.cpp:
15443        (WebCore::RenderBlock::RenderTextInfo::RenderTextInfo): Added initializer for new data member.
15444        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Added code to update the text layout in
15445        renderTextInfo if the font has changed.
15446
154472012-09-16  Kalev Lember  <kalevlember@gmail.com>
15448
15449        [GTK] Missing dllexport causing linking errors on Windows platform
15450        https://bugs.webkit.org/show_bug.cgi?id=96888
15451
15452        Reviewed by Kentaro Hara.
15453
15454        Define BUILDING_WebCore during the build to properly mark
15455        FrameDestructionObserver symbols with __declspec(dllexport) attribute.
15456
15457        * GNUmakefile.am:
15458
154592012-09-15  Mike West  <mkwst@chromium.org>
15460
15461        Pause inspector when inline scripts are blocked by Content Security Policy.
15462        https://bugs.webkit.org/show_bug.cgi?id=93865
15463
15464        Reviewed by Pavel Feldman.
15465
15466        When Content Security Policy blocks an inline script that's been
15467        injected after the document is parsed, a fairly unhelpful console
15468        warning is generated; it points at line 1, regardless of where the error
15469        occurred. This patch adjusts CSP to not only warn on the console, but
15470        also to notify the inspector that it should pause execution if the
15471        developer has toggled "Break on Exceptions". Developers will have a
15472        better chance of tracking down the error, as they'll have a complete
15473        call stack to work with.
15474
15475        Tests: inspector/debugger/debugger-pause-on-blocked-event-handler.html
15476               inspector/debugger/debugger-pause-on-blocked-script-injection.html
15477               inspector/debugger/debugger-pause-on-blocked-script-url.html
15478
15479        * English.lproj/localizedStrings.js:
15480            Adding localizable string for the new friendly pause message.
15481        * inspector/Inspector.json:
15482            Add CSPViolation as a recognized reason for pausing execution.
15483        * inspector/InspectorDebuggerAgent.cpp:
15484        (WebCore::InspectorDebuggerAgent::scriptExecutionBlockedByCSP):
15485            Teach the InspectorDebuggerAgent about script blocking. If pause on
15486            exceptions is enabled, call 'InspectorDebuggerAgent::breakProgram',
15487            and pass in an error object with a description that points to CSP
15488            as the culprit.
15489        (WebCore):
15490        * inspector/InspectorDebuggerAgent.h:
15491        (InspectorDebuggerAgent):
15492        * inspector/InspectorInstrumentation.cpp:
15493        (WebCore):
15494        (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSPImpl):
15495            Wire 'InspectorInstrumentation::scriptExecutionBlockedByCSP' to
15496            the InspectorDebuggerAgent backend.
15497        * inspector/InspectorInstrumentation.h:
15498        (InspectorInstrumentation):
15499        (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
15500            The public interface that should be kicked whenever CSP blocks
15501            script execution.
15502        (WebCore):
15503        * inspector/front-end/DebuggerModel.js:
15504            Add CSPViolation as a recognized reason for pausing execution.
15505        * inspector/front-end/ScriptsPanel.js:
15506            Add a friendly call stack status message for CSP violations.
15507        * page/ContentSecurityPolicy.cpp:
15508        (CSPDirectiveList):
15509        (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
15510            If script is blocked because the nonce doesn't match, report the
15511            blocked script to the inspector.
15512        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
15513            If inline script is blocked, report the blocked script to the
15514            inspector. This requires adding a bool parameter to differentiate
15515            blocking inline script from inline style.
15516        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
15517            Tell 'checkInlineAndReportViolation' that we're dealing with script.
15518        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
15519            Tell 'checkInlineAndReportViolation' that we're dealing with script.
15520        (WebCore::CSPDirectiveList::allowInlineScript):
15521            Tell 'checkInlineAndReportViolation' that we're dealing with script.
15522        (WebCore::CSPDirectiveList::allowInlineStyle):
15523            Tell 'checkInlineAndReportViolation' that we're not dealing with script.
15524        (WebCore::ContentSecurityPolicy::reportBlockedScriptExecutionToInspector):
15525            Public interface for the various CSP* classes to poke the inspector.
15526        (WebCore):
15527        * page/ContentSecurityPolicy.h:
15528
155292012-09-15  Florin Malita  <fmalita@chromium.org>
15530
15531        <use> not working when the SVG doc is embedded as <object> data
15532        https://bugs.webkit.org/show_bug.cgi?id=96816
15533
15534        Reviewed by Dirk Schulze.
15535
15536        Updated SVGURIReference::isExternalURIReference() to correctly classify fragment-only URIs.
15537        Also, since the fragment-only test is cheap, it should be the first thing to try.
15538
15539        Test: svg/custom/object-data-href.html
15540
15541        * svg/SVGURIReference.h:
15542        (WebCore::SVGURIReference::isExternalURIReference):
15543
155442012-09-15  Benjamin Poulain  <benjamin@webkit.org>
15545
15546        Fix the build with WTF URL
15547        https://bugs.webkit.org/show_bug.cgi?id=96875
15548
15549        Reviewed by Adam Barth.
15550
15551        Fix reportMemoryUsage, the implementation was only partial.
15552
15553        * WebCore.exp.in: Export two more symbols as needed by API tests.
15554        * platform/KURLWTFURL.cpp:
15555        (WebCore::KURL::string): emptyString() return a reference,
15556        it makes more sense than nullAtom() here.
15557        * platform/KURLWTFURLImpl.h:
15558        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
15559
155602012-09-11  Dirk Schulze  <krit@webkit.org>
15561
15562        Add ClipPathOperation for -webkit-clip-path organization
15563        https://bugs.webkit.org/show_bug.cgi?id=95619
15564
15565        Reviewed by Dean Jackson.
15566
15567        This patch adds a new class ClipPathOperation to manage the values of the
15568        -webkit-clip-path property. ClipPathOperation stores a Path object for clipping and is
15569        a preparation for IRI references of the SVG 'clipPath' element.
15570
15571        The structure of ClipPathOperation is simular to FilterOperation.
15572
15573        ClipPathOperation will be extended to support IRI references directly in a second patch.
15574
15575        No new tests. The changes just affect the backend.
15576
15577        * GNUmakefile.list.am: Added new ClipPathOperation class.
15578        * WebCore.gypi: Ditto.
15579        * WebCore.vcproj/WebCore.vcproj: Ditto.
15580        * WebCore.xcodeproj/project.pbxproj: Ditto.
15581        * css/CSSComputedStyleDeclaration.cpp: Use ClipPathOperation instead of BasicShape.
15582        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Ditto.
15583        * css/StyleBuilder.cpp: Ditto.
15584        (WebCore):
15585        (WebCore::ApplyPropertyClipPath::setValue):
15586        (WebCore::ApplyPropertyClipPath::applyValue):
15587        (WebCore::ApplyPropertyClipPath::createHandler):
15588        * rendering/ClipPathOperation.h: Added. New handler for property values (BasicShape, references).
15589        (WebCore):
15590        (ClipPathOperation):
15591        (WebCore::ClipPathOperation::~ClipPathOperation):
15592        (WebCore::ClipPathOperation::operator!=):
15593        (WebCore::ClipPathOperation::getOperationType): Return the operation type.
15594        (WebCore::ClipPathOperation::isSameType): Helper function for =operator.
15595        (WebCore::ClipPathOperation::ClipPathOperation):
15596        (ShapeClipPathOperation): Inheriting class for managing BasicShapes.
15597        (WebCore::ShapeClipPathOperation::create):
15598        (WebCore::ShapeClipPathOperation::basicShape):
15599        (WebCore::ShapeClipPathOperation::windRule):
15600        (WebCore::ShapeClipPathOperation::path):
15601        (WebCore::ShapeClipPathOperation::operator==):
15602        (WebCore::ShapeClipPathOperation::ShapeClipPathOperation):
15603        * rendering/RenderLayer.cpp: Use ClipPathOperation to apply clipping.
15604        (WebCore::RenderLayer::paintLayerContents):
15605        * rendering/style/RenderStyle.h:
15606        * rendering/style/StyleRareNonInheritedData.h:
15607        (StyleRareNonInheritedData):
15608        * rendering/svg/SVGRenderingContext.cpp: Ditto.
15609        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
15610
156112012-09-15  Andreas Kling  <kling@webkit.org>
15612
15613        REGRESSION(r127438): Google Docs to renders text too small.
15614        <http://webkit.org/b/96554>
15615
15616        Reviewed by Antti Koivisto.
15617
15618        Don't remove the inline StylePropertySet from ElementAttributeData in ~StyledElement.
15619        This behavior broke sharing of ElementAttributeData between elements with inline style,
15620        since destroying one element would effectively disable the inline style from all other
15621        elements that shared the same attribute data.
15622
15623        What we actually want in ~StyledElement is to detach from any CSSOM wrapper that may
15624        have been instantiated. Added ElementAttributeData::detachCSSOMWrapperIfNeeded for this
15625        purpose and call that instead.
15626
15627        Test: fast/dom/shared-inline-style-after-node-removal.html
15628
15629        * dom/ElementAttributeData.cpp:
15630        (WebCore::ElementAttributeData::detachCSSOMWrapperIfNeeded):
15631        (WebCore::ElementAttributeData::destroyInlineStyle):
15632        * dom/ElementAttributeData.h:
15633        (ElementAttributeData):
15634        * dom/StyledElement.cpp:
15635        (WebCore::StyledElement::~StyledElement):
15636        (WebCore::StyledElement::styleAttributeChanged):
15637        * dom/StyledElement.h:
15638        (StyledElement):
15639
156402012-09-15  Kalev Lember  <kalevlember@gmail.com>
15641
15642        [GTK] Include missing header files in the tarball
15643        https://bugs.webkit.org/show_bug.cgi?id=96860
15644
15645        Reviewed by Kentaro Hara.
15646
15647        Build fix; dist two additional headers that are needed for building on
15648        Windows platform.
15649
15650        * GNUmakefile.list.am:
15651
156522012-09-15  Michael Saboff  <msaboff@apple.com>
15653
15654        Add 8 bit handling to SpaceSplitString
15655        https://bugs.webkit.org/show_bug.cgi?id=96823
15656
15657        Reviewed by Sam Weinig.
15658
15659        Added templated functions based on character type to handle 8 and 16 bit string data.
15660
15661        * dom/SpaceSplitString.cpp:
15662        (WebCore::hasNonASCIIOrUpper):
15663        (WebCore::SpaceSplitStringData::createVector):
15664        * dom/SpaceSplitString.h:
15665        (SpaceSplitStringData):
15666
156672012-09-15  Dan Bernstein  <mitz@apple.com>
15668
15669        REGRESSION (r125578): The monospace code path in RenderText::widthFromCache disagrees with Font::width on word spacing
15670        https://bugs.webkit.org/show_bug.cgi?id=96869
15671
15672        Reviewed by Eric Seidel.
15673
15674        Test: fast/text/word-space-monospace.html
15675        This also fixes fast/css/word-spacing-characters.html
15676
15677        * rendering/RenderText.cpp:
15678        (WebCore::RenderText::widthFromCache): Made the conditions for adding word spacing match the
15679        ones in WidthIterator.
15680
156812012-09-15  Dan Bernstein  <mitz@apple.com>
15682
15683        REGRESSION (r125578): Word spacing not applied to newline and tab characters that are treated as spaces
15684        https://bugs.webkit.org/show_bug.cgi?id=96865
15685
15686        Reviewed by Sam Weinig.
15687
15688        Fixes fast/css/word-space-extra.html.
15689
15690        * platform/graphics/WidthIterator.cpp:
15691        (WebCore::WidthIterator::advanceInternal): Changed back to apply word spacing to all characters
15692        that are treated as spaces, except for tab characters when there are tab stops.
15693        * platform/graphics/mac/ComplexTextController.cpp:
15694        (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Ditto.
15695
156962012-09-15  Dan Bernstein  <mitz@apple.com>
15697
15698        REGRESSION (r125578): The Mac complex text code path disagrees with the fast path on word spacing
15699        https://bugs.webkit.org/show_bug.cgi?id=96857
15700
15701        Reviewed by Anders Carlsson.
15702
15703        Fixes the following tests when run with run-webkit-tests --complex-text:
15704        css2.1/20110323/c541-word-sp-001.htm
15705        css2.1/20110323/word-spacing-remove-space-002.htm
15706        css2.1/20110323/word-spacing-remove-space-003.htm
15707        css2.1/20110323/word-spacing-remove-space-004.htm
15708        css2.1/20110323/word-spacing-remove-space-005.htm
15709        css2.1/20110323/word-spacing-remove-space-006.htm
15710
15711        Fixes fast/css/word-spacing-characters-complex-text.html
15712
15713        * platform/graphics/mac/ComplexTextController.cpp:
15714        (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Made the conditions for adding
15715        word spacing match the ones in WidthIterator again.
15716
157172012-09-15  Kent Tamura  <tkent@chromium.org>
15718
15719        Unreviewed, rolling out r128669.
15720        http://trac.webkit.org/changeset/128669
15721        https://bugs.webkit.org/show_bug.cgi?id=96637
15722
15723        Broke http/tests/workers/text-encoding.html on Chromium Linux (dbg)
15724
15725        * bindings/v8/DOMData.cpp:
15726        (WebCore::DOMData::getCurrentStore):
15727        * bindings/v8/ScopedPersistent.h:
15728        * bindings/v8/ScriptController.cpp:
15729        (WebCore::ScriptController::resetIsolatedWorlds):
15730        (WebCore::ScriptController::evaluateInIsolatedWorld):
15731        (WebCore::ScriptController::currentWorldContext):
15732        * bindings/v8/V8Binding.cpp:
15733        (WebCore::perContextDataForCurrentWorld):
15734        * bindings/v8/V8DOMWindowShell.cpp:
15735        (WebCore::setIsolatedWorldField):
15736        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
15737        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
15738        (WebCore):
15739        (WebCore::isolatedContextWeakCallback):
15740        (WebCore::V8DOMWindowShell::disposeContext):
15741        (WebCore::V8DOMWindowShell::initializeIfNeeded):
15742        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
15743        * bindings/v8/V8DOMWindowShell.h:
15744        (V8DOMWindowShell):
15745        (WebCore::V8DOMWindowShell::getEntered):
15746        * bindings/v8/V8DOMWrapper.h:
15747        (WebCore::V8DOMWrapper::getCachedWrapper):
15748        * bindings/v8/WorldContextHandle.cpp:
15749        (WebCore::WorldContextHandle::WorldContextHandle):
15750        * bindings/v8/custom/V8DocumentCustom.cpp:
15751        (WebCore::toV8):
15752        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
15753        (WebCore::toV8):
15754        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
15755        (WebCore::toV8):
15756        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
15757        (WebCore::V8XMLHttpRequest::constructorCallback):
15758
157592012-09-14  Sheriff Bot  <webkit.review.bot@gmail.com>
15760
15761        Unreviewed, rolling out r128673.
15762        http://trac.webkit.org/changeset/128673
15763        https://bugs.webkit.org/show_bug.cgi?id=96847
15764
15765        Makes plugins/document-open.html crash (Requested by jamesr_
15766        on #webkit).
15767
15768        * dom/ContainerNode.cpp:
15769        (WebCore):
15770        (WebCore::ContainerNode::insertBeforeCommon):
15771        (WebCore::ContainerNode::replaceChild):
15772        (WebCore::ContainerNode::removeBetween):
15773        (WebCore::ContainerNode::removeChildren):
15774        (WebCore::ContainerNode::appendChild):
15775        (WebCore::ContainerNode::parserAddChild):
15776        (WebCore::dispatchChildInsertionEvents):
15777        (WebCore::dispatchChildRemovalEvents):
15778        * dom/ContainerNode.h:
15779        * dom/ContainerNodeAlgorithms.h:
15780        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
15781        (WebCore::ChildNodeInsertionNotifier::notify):
15782        (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
15783        * dom/Document.cpp:
15784        (WebCore::Document::dispatchWindowEvent):
15785        (WebCore::Document::dispatchWindowLoadEvent):
15786        * dom/EventDispatcher.cpp:
15787        (WebCore::EventDispatcher::dispatchEvent):
15788        * dom/EventTarget.cpp:
15789        (WebCore):
15790        (WebCore::forbidEventDispatch):
15791        (WebCore::allowEventDispatch):
15792        (WebCore::eventDispatchForbidden):
15793        (WebCore::EventTarget::fireEventListeners):
15794        * dom/EventTarget.h:
15795        (WebCore):
15796        (WebCore::forbidEventDispatch):
15797        (WebCore::allowEventDispatch):
15798        * dom/Node.cpp:
15799        (WebCore::Node::dispatchSubtreeModifiedEvent):
15800        (WebCore::Node::dispatchFocusInEvent):
15801        (WebCore::Node::dispatchFocusOutEvent):
15802        (WebCore::Node::dispatchDOMActivateEvent):
15803        * dom/WebKitNamedFlow.cpp:
15804        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
15805        * html/HTMLMediaElement.cpp:
15806        (WebCore::HTMLMediaElement::loadInternal):
15807
158082012-09-14  Julien Chaffraix  <jchaffraix@webkit.org>
15809
15810        Revert r127457 and following fixes due to several hit-testing regressions
15811        https://bugs.webkit.org/show_bug.cgi?id=96830
15812
15813        Reviewed by Antonio Gomes.
15814
15815        This change reverts r127457, r127863 and r128505.
15816
15817        * WebCore.exp.in:
15818        * WebCore.order:
15819        * dom/Document.cpp:
15820        (WebCore::Document::nodesFromRect):
15821        * dom/Document.h:
15822        (Document):
15823        * page/EventHandler.cpp:
15824        (WebCore::EventHandler::hitTestResultAtPoint):
15825        * rendering/HitTestRequest.h:
15826        * rendering/HitTestResult.cpp:
15827        (WebCore::HitTestLocation::HitTestLocation):
15828        * rendering/HitTestResult.h:
15829        (HitTestLocation):
15830        * rendering/RenderFrameBase.cpp:
15831        * rendering/RenderFrameBase.h:
15832        (RenderFrameBase):
15833        * rendering/RenderLayer.cpp:
15834        (WebCore::RenderLayer::hitTest):
15835        * testing/Internals.cpp:
15836        (WebCore::Internals::nodesFromRect):
15837        * testing/Internals.h:
15838        (Internals):
15839        * testing/Internals.idl:
15840
158412012-09-14  Joshua Bell  <jsbell@chromium.org>
15842
15843        IndexedDB: Calling close() during upgradeneeded handler should fire error at open request
15844        https://bugs.webkit.org/show_bug.cgi?id=96807
15845
15846        Reviewed by Tony Chang.
15847
15848        Per spec, if the database connection is closed before the success event fires, the request
15849        should have an error event of type AbortError fired at it.
15850
15851        Test: storage/indexeddb/intversion-close-in-upgradeneeded.html
15852
15853        * Modules/indexeddb/IDBDatabase.h:
15854        (WebCore::IDBDatabase::isClosePending): Expose this state so an in-flight success can be morphed.
15855        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
15856        (WebCore::IDBDatabaseBackendImpl::close): Fire the appropriate error at connections that are mid-opening.
15857        * Modules/indexeddb/IDBOpenDBRequest.cpp:
15858        (WebCore::IDBOpenDBRequest::onSuccess): If the connection was closed before the success is enqueued - 
15859        which can happen in multi-process ports with asynchronous messaging - convert the success to an error.
15860
158612012-09-14  Ryosuke Niwa  <rniwa@webkit.org>
15862
15863        Turn forbidEventDispatch and allowEventDispatch into a RAII object
15864        https://bugs.webkit.org/show_bug.cgi?id=96717
15865
15866        Reviewed by Abhishek Arya.
15867
15868        Replaced forbidEventDispatch and allowEventDispatch by AssertNoEventDispatch.
15869
15870        * dom/ContainerNode.cpp:
15871        (WebCore):
15872        (WebCore::ContainerNode::insertBeforeCommon):
15873        (WebCore::ContainerNode::replaceChild):
15874        (WebCore::ContainerNode::removeBetween):
15875        (WebCore::ContainerNode::removeChildren):
15876        (WebCore::ContainerNode::appendChild):
15877        (WebCore::ContainerNode::parserAddChild):
15878        (WebCore::dispatchChildInsertionEvents):
15879        (WebCore::dispatchChildRemovalEvents):
15880        * dom/ContainerNode.h:
15881        (AssertNoEventDispatch):
15882        (WebCore::AssertNoEventDispatch::AssertNoEventDispatch):
15883        (WebCore::AssertNoEventDispatch::~AssertNoEventDispatch):
15884        (WebCore::AssertNoEventDispatch::isEventDispatchForbidden):
15885        (WebCore):
15886        * dom/ContainerNodeAlgorithms.h:
15887        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
15888        (WebCore::ChildNodeInsertionNotifier::notify):
15889        (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
15890        * dom/Document.cpp:
15891        (WebCore::Document::dispatchWindowEvent):
15892        (WebCore::Document::dispatchWindowLoadEvent):
15893        * dom/EventDispatcher.cpp:
15894        (WebCore::EventDispatcher::dispatchEvent):
15895        * dom/EventTarget.cpp:
15896        (WebCore):
15897        (WebCore::EventTarget::fireEventListeners):
15898        * dom/EventTarget.h:
15899        (WebCore):
15900        * dom/Node.cpp:
15901        (WebCore::Node::dispatchSubtreeModifiedEvent):
15902        (WebCore::Node::dispatchFocusInEvent):
15903        (WebCore::Node::dispatchFocusOutEvent):
15904        (WebCore::Node::dispatchDOMActivateEvent):
15905        * dom/WebKitNamedFlow.cpp:
15906        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
15907        * html/HTMLMediaElement.cpp:
15908        (WebCore::HTMLMediaElement::loadInternal):
15909
159102012-09-14  Mike West  <mkwst@chromium.org>
15911
15912        JSC should throw a more descriptive exception when blocking 'eval' via CSP.
15913        https://bugs.webkit.org/show_bug.cgi?id=94331
15914
15915        Reviewed by Geoffrey Garen.
15916
15917        Unless explicitly whitelisted, the 'script-src' Content Security Policy
15918        directive blocks 'eval' and 'eval'-like constructs such as
15919        'new Function()'. When 'eval' is encountered in code, an 'EvalError' is
15920        thrown, but the associated message is poor: "Eval is disabled" doesn't
15921        give developers enough information about why their code isn't behaving
15922        as expected.
15923
15924        This patch adds an 'errorMessage' parameter to the JavaScriptCore method
15925        used to disable 'eval'; ContentSecurityPolicy has the opportunity to
15926        pass in a more detailed and descriptive error that contains more context
15927        for the developer.
15928
15929        The new error message is tested by adjusting existing tests; nothing new
15930        is required.
15931
15932        * bindings/js/ScriptController.cpp:
15933        (WebCore::ScriptController::initScript):
15934            Read the error message off the document's ContentSecurityPolicy.
15935        (WebCore::ScriptController::disableEval):
15936        * bindings/js/ScriptController.h:
15937        (ScriptController):
15938            Pipe the error message through to JSGlobalObject when disabling eval
15939        * bindings/js/WorkerScriptController.cpp:
15940        (WebCore::WorkerScriptController::disableEval):
15941        * bindings/js/WorkerScriptController.h:
15942        (WorkerScriptController):
15943            Pipe the error message through to JSGlobalObject when disabling eval
15944        * bindings/v8/ScriptController.cpp:
15945        (WebCore::ScriptController::disableEval):
15946        * bindings/v8/ScriptController.h:
15947        (ScriptController):
15948        * bindings/v8/WorkerScriptController.cpp:
15949        (WebCore::WorkerScriptController::disableEval):
15950        * bindings/v8/WorkerScriptController.h:
15951        (WorkerScriptController):
15952            Placeholder for V8 piping to be built in webk.it/94332.
15953        * dom/Document.cpp:
15954        (WebCore::Document::disableEval):
15955        * dom/Document.h:
15956        (Document):
15957        * dom/ScriptExecutionContext.h:
15958        (ScriptExecutionContext):
15959            Pipe the error message through to the ScriptController when
15960            disabling eval.
15961        * page/ContentSecurityPolicy.cpp:
15962        (WebCore::CSPDirectiveList::evalDisabledErrorMessage):
15963            Accessor for the error message that ought be displayed to developers
15964            when 'eval' used while disabled for a specific directive list.
15965        (WebCore::CSPDirectiveList::setEvalDisabledErrorMessage):
15966            Mutator for the error message that ought be displayed to developers
15967            when 'eval' used while disabled for a specific directive list.
15968        (CSPDirectiveList):
15969        (WebCore::CSPDirectiveList::create):
15970            Upon creation of a CSPDirectiveList, set the error message if the
15971            directive list disables 'eval'.
15972        (WebCore::ContentSecurityPolicy::didReceiveHeader):
15973            Pass the error message into ScriptExecutionContext::disableEval.
15974        (WebCore::ContentSecurityPolicy::evalDisabledErrorMessage):
15975            Public accessor for the policy's error message; walks the list of
15976            directive lists and returns the first error message found.
15977        (WebCore):
15978        * page/ContentSecurityPolicy.h:
15979        * workers/WorkerContext.cpp:
15980        (WebCore::WorkerContext::disableEval):
15981        * workers/WorkerContext.h:
15982        (WorkerContext):
15983            Pipe the error message through to the ScriptController when
15984            disabling eval.
15985
159862012-09-14  Dan Carney  <dcarney@google.com>
15987
15988        Remove V8DOMWindowShell::getEntered
15989        https://bugs.webkit.org/show_bug.cgi?id=96637
15990
15991        Reviewed by Adam Barth.
15992
15993        V8DOMWindowShell::getEntered was refactored so that the window shell
15994        no longer has to be kept alive by a v8 context but rather a smaller
15995        object.
15996
15997        No new tests. No change in functionality.
15998
15999        * bindings/v8/DOMData.cpp:
16000        (WebCore::DOMData::getCurrentStore):
16001        * bindings/v8/ScopedPersistent.h:
16002        (WebCore::ScopedPersistent::leakHandle):
16003        (ScopedPersistent):
16004        * bindings/v8/ScriptController.cpp:
16005        (WebCore::ScriptController::resetIsolatedWorlds):
16006        (WebCore::ScriptController::evaluateInIsolatedWorld):
16007        (WebCore::ScriptController::currentWorldContext):
16008        * bindings/v8/V8Binding.cpp:
16009        (WebCore::perContextDataForCurrentWorld):
16010        * bindings/v8/V8DOMWindowShell.cpp:
16011        (WebCore::setIsolatedWorldField):
16012        (WebCore::V8DOMWindowShell::toIsolatedContextData):
16013        (WebCore::isolatedContextWeakCallback):
16014        (WebCore::V8DOMWindowShell::disposeContext):
16015        (WebCore::V8DOMWindowShell::clearIsolatedShell):
16016        (WebCore):
16017        (WebCore::V8DOMWindowShell::initializeIfNeeded):
16018        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
16019        * bindings/v8/V8DOMWindowShell.h:
16020        (V8DOMWindowShell):
16021        (IsolatedContextData):
16022        (WebCore::V8DOMWindowShell::IsolatedContextData::create):
16023        (WebCore::V8DOMWindowShell::IsolatedContextData::world):
16024        (WebCore::V8DOMWindowShell::IsolatedContextData::perContextData):
16025        (WebCore::V8DOMWindowShell::IsolatedContextData::setSecurityOrigin):
16026        (WebCore::V8DOMWindowShell::IsolatedContextData::securityOrigin):
16027        (WebCore::V8DOMWindowShell::IsolatedContextData::IsolatedContextData):
16028        (WebCore::V8DOMWindowShell::enteredIsolatedContext):
16029        (WebCore::V8DOMWindowShell::enteredIsolatedContextData):
16030        * bindings/v8/V8DOMWrapper.h:
16031        (WebCore::V8DOMWrapper::getCachedWrapper):
16032        * bindings/v8/WorldContextHandle.cpp:
16033        (WebCore::WorldContextHandle::WorldContextHandle):
16034        * bindings/v8/custom/V8DocumentCustom.cpp:
16035        (WebCore::toV8):
16036        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16037        (WebCore::toV8):
16038        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16039        (WebCore::toV8):
16040        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
16041        (WebCore::V8XMLHttpRequest::constructorCallback):
16042
160432012-09-14  Michelangelo De Simone  <michelangelo@webkit.org>
16044
16045        [CSS Shaders] u_textureSize uniform should be set to the size of the texture.
16046        https://bugs.webkit.org/show_bug.cgi?id=95914
16047
16048        Reviewed by Dean Jackson.
16049
16050        This adds support for the following shader uniform variables:
16051
16052            uniform vec2 u_textureSize
16053            uniform vec4 u_meshBox
16054            uniform vec2 u_tileSize
16055            uniform vec2 u_meshSize
16056
16057        The relevant section of the specification is:
16058        http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
16059
16060        Tests: css3/filters/custom/custom-filter-u-mesh-box.html
16061               css3/filters/custom/custom-filter-u-mesh-size.html
16062               css3/filters/custom/custom-filter-u-texture-size.html
16063               css3/filters/custom/custom-filter-u-tile-size.html
16064
16065        * platform/graphics/filters/FECustomFilter.cpp:
16066        (WebCore::FECustomFilter::bindProgramAndBuffers):
16067
160682012-09-14  Ojan Vafai  <ojan@chromium.org>
16069
16070        Provide a runtime setting to disable position:sticky
16071        https://bugs.webkit.org/show_bug.cgi?id=96827
16072
16073        Reviewed by James Robinson.
16074
16075        Have it be on by default so that only ports that both enable
16076        the define and don't want it on by default need to do something special.
16077
16078        * css/CSSParser.cpp:
16079        (WebCore::CSSParserContext::CSSParserContext):
16080        (WebCore::operator==):
16081        (WebCore::isValidKeywordPropertyAndValue):
16082        * css/CSSParserMode.h:
16083        (CSSParserContext):
16084        * dom/Document.cpp:
16085        (WebCore::Document::cssStickyPositionEnabled):
16086        (WebCore):
16087        * dom/Document.h:
16088        (Document):
16089        * page/Settings.cpp:
16090        (WebCore::Settings::Settings):
16091        * page/Settings.h:
16092        (Settings):
16093        (WebCore::Settings::setCSSStickyPositionEnabled):
16094        (WebCore::Settings::cssStickyPositionEnabled):
16095
160962012-09-14  Simon Fraser  <simon.fraser@apple.com>
16097
16098        Fix builds with CSS_IMAGE_RESOLUTION enabled after r128656.
16099
16100        * css/StyleBuilder.cpp:
16101        (WebCore::ApplyPropertyImageResolution::applyInheritValue):
16102        (WebCore::ApplyPropertyImageResolution::applyInitialValue):
16103
161042012-09-14  Adam Barth  <abarth@webkit.org>
16105
16106        Remove webkitPostMessage
16107        https://bugs.webkit.org/show_bug.cgi?id=96577
16108
16109        Reviewed by Ojan Vafai.
16110
16111        webkitPostMessage works the same as postMessage. The spec and the
16112        implementation have been stable for a while. We should no longer be
16113        exposing this vendor-prefixed API.
16114
16115        This patch places the webkitPostMessage API behind an ENABLE flag.
16116        We're going to try removing this API in the Chromium port. If we don't
16117        run into trouble, we'll remove it in all the other ports as well.
16118
16119        This topic has been discussed on webkit-dev in
16120        http://lists.webkit.org/pipermail/webkit-dev/2012-April/020237.html and
16121        http://lists.webkit.org/pipermail/webkit-dev/2012-September/022189.html
16122
16123        This patch introduces the ENABLE(LEGACY_VENDOR_PREFIXES) flag. Rather
16124        than having a flag for each vendor-prefixed API we're experimenting
16125        with removing, we'll add vendor prefixed APIs to this ENABLE when we
16126        want to try removing them. If we succeed, we'll just delete the APIs.
16127        If we fail, we'll remove them from the ENABLE. That way we avoid the
16128        churn of adding and removing many ENABLE macros.
16129
16130        * Configurations/FeatureDefines.xcconfig:
16131        * GNUmakefile.am:
16132        * GNUmakefile.features.am:
16133        * bindings/js/JSDOMWindowCustom.cpp:
16134        (WebCore):
16135        * bindings/js/JSDedicatedWorkerContextCustom.cpp:
16136        (WebCore):
16137        * bindings/js/JSMessagePortCustom.cpp:
16138        (WebCore):
16139        * bindings/js/JSWorkerCustom.cpp:
16140        (WebCore):
16141        * bindings/v8/custom/V8DOMWindowCustom.cpp:
16142        (WebCore):
16143        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
16144        (WebCore):
16145        * bindings/v8/custom/V8MessagePortCustom.cpp:
16146        (WebCore):
16147        * bindings/v8/custom/V8WorkerCustom.cpp:
16148        (WebCore):
16149        * dom/MessagePort.idl:
16150        * page/DOMWindow.idl:
16151        * workers/DedicatedWorkerContext.idl:
16152        * workers/Worker.idl:
16153
161542012-09-14  Simon Fraser  <simon.fraser@apple.com>
16155
16156        REGRESSION: transition doesn’t always override transition-property
16157        https://bugs.webkit.org/show_bug.cgi?id=96658
16158
16159        Reviewed by Dean Jackson.
16160
16161        Setting the animation property on an Animation in CSSToStyleMap::mapAnimationProperty()
16162        is special because we have to call setAnimationMode(Animation::AnimateAll) as well
16163        as setting the property to CSSPropertyInvalid if it's for the initial state
16164        of the transition-property property.
16165        
16166        In order to fix this via StyleBuilder PropertyHandlers, we have to know,
16167        in ApplyPropertyAnimation::applyInitialValue(), which property is getting applied.
16168        This requires passing the CSSPropertyID down through all of the "apply" methods.
16169        
16170        Do some unrelated cleanup in CSSParser::parseTransitionShorthand(); the existing code
16171        was not safe with respect to adding new properties to the shorthand.
16172
16173        Test: transitions/longhand-vs-shorthand-initial.html
16174
16175        * css/CSSParser.cpp:
16176        (WebCore::CSSParser::parseTransitionShorthand):
16177        * css/StyleBuilder.cpp:
16178        (WebCore::ApplyPropertyExpanding::applyInheritValue):
16179        (WebCore::ApplyPropertyExpanding::applyInitialValue):
16180        (WebCore::ApplyPropertyExpanding::applyValue):
16181        (WebCore::ApplyPropertyDefaultBase::applyInheritValue):
16182        (WebCore::ApplyPropertyDefaultBase::applyInitialValue):
16183        (WebCore::ApplyPropertyDefaultBase::applyValue):
16184        (WebCore::ApplyPropertyDefault::applyValue):
16185        (WebCore::ApplyPropertyNumber::applyValue):
16186        (WebCore::ApplyPropertyStyleImage::applyValue):
16187        (WebCore::ApplyPropertyAuto::applyInheritValue):
16188        (WebCore::ApplyPropertyAuto::applyInitialValue):
16189        (WebCore::ApplyPropertyAuto::applyValue):
16190        (WebCore::ApplyPropertyClip::applyInheritValue):
16191        (WebCore::ApplyPropertyClip::applyInitialValue):
16192        (WebCore::ApplyPropertyClip::applyValue):
16193        (WebCore::ApplyPropertyColor::applyInheritValue):
16194        (WebCore::ApplyPropertyColor::applyInitialValue):
16195        (WebCore::ApplyPropertyColor::applyValue):
16196        (WebCore::ApplyPropertyDirection::applyValue):
16197        (WebCore::ApplyPropertyLength::applyValue):
16198        (WebCore::ApplyPropertyString::applyValue):
16199        (WebCore::ApplyPropertyBorderRadius::applyValue):
16200        (WebCore::ApplyPropertyFillLayer::applyInheritValue):
16201        (WebCore::ApplyPropertyFillLayer::applyInitialValue):
16202        (WebCore::ApplyPropertyFillLayer::applyValue):
16203        (WebCore::ApplyPropertyComputeLength::applyValue):
16204        (WebCore::ApplyPropertyFont::applyInheritValue):
16205        (WebCore::ApplyPropertyFont::applyInitialValue):
16206        (WebCore::ApplyPropertyFont::applyValue):
16207        (WebCore::ApplyPropertyFontSize::applyInheritValue):
16208        (WebCore::ApplyPropertyFontSize::applyInitialValue):
16209        (WebCore::ApplyPropertyFontSize::applyValue):
16210        (WebCore::ApplyPropertyFontWeight::applyValue):
16211        (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
16212        (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
16213        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
16214        (WebCore::ApplyPropertyBorderImage::applyValue):
16215        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
16216        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
16217        (WebCore::ApplyPropertyBorderImageModifier::applyValue):
16218        (WebCore::ApplyPropertyBorderImageSource::applyValue):
16219        (WebCore::ApplyPropertyCounter::emptyFunction):
16220        (WebCore::ApplyPropertyCounter::applyInheritValue):
16221        (WebCore::ApplyPropertyCounter::applyValue):
16222        (WebCore::ApplyPropertyCursor::applyInheritValue):
16223        (WebCore::ApplyPropertyCursor::applyInitialValue):
16224        (WebCore::ApplyPropertyCursor::applyValue):
16225        (WebCore::ApplyPropertyTextAlign::applyValue):
16226        (WebCore::ApplyPropertyTextDecoration::applyValue):
16227        (WebCore::ApplyPropertyLineHeight::applyValue):
16228        (WebCore::ApplyPropertyPageSize::applyInheritValue):
16229        (WebCore::ApplyPropertyPageSize::applyInitialValue):
16230        (WebCore::ApplyPropertyPageSize::applyValue):
16231        (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
16232        (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
16233        (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
16234        (WebCore::ApplyPropertyAnimation::applyInheritValue):
16235        (WebCore::ApplyPropertyAnimation::applyInitialValue): If the property is
16236        CSSPropertyWebkitTransitionProperty, call setAnimationMode(Animation::AnimateAll).
16237        (WebCore::ApplyPropertyAnimation::applyValue):
16238        (WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
16239        (WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
16240        (WebCore::ApplyPropertyOutlineStyle::applyValue):
16241        (WebCore::ApplyPropertyResize::applyValue):
16242        (WebCore::ApplyPropertyVerticalAlign::applyValue):
16243        (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
16244        (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
16245        (WebCore::ApplyPropertyAspectRatio::applyValue):
16246        (WebCore::ApplyPropertyZoom::applyInheritValue):
16247        (WebCore::ApplyPropertyZoom::applyInitialValue):
16248        (WebCore::ApplyPropertyZoom::applyValue):
16249        (WebCore::ApplyPropertyDisplay::applyInheritValue):
16250        (WebCore::ApplyPropertyDisplay::applyInitialValue):
16251        (WebCore::ApplyPropertyDisplay::applyValue):
16252        (WebCore::ApplyPropertyClipPath::applyValue):
16253        (WebCore::ApplyPropertyWrapShape::applyValue):
16254        (WebCore::ApplyPropertyImageResolution::applyInheritValue):
16255        (WebCore::ApplyPropertyImageResolution::applyInitialValue):
16256        (WebCore::ApplyPropertyImageResolution::applyValue):
16257        * css/StyleBuilder.h:
16258        (PropertyHandler):
16259        (WebCore::PropertyHandler::applyInheritValue):
16260        (WebCore::PropertyHandler::applyInitialValue):
16261        (WebCore::PropertyHandler::applyValue):
16262        * css/StyleResolver.cpp:
16263        (WebCore::StyleResolver::collectMatchingRulesForList): Pass in the property ID.
16264
162652012-09-14  Chang Shu  <cshu@webkit.org>
16266
16267        Support constructor-type attribute in idls other than DOMWindow.
16268        https://bugs.webkit.org/show_bug.cgi?id=96821
16269
16270        Reviewed by Kentaro Hara.
16271
16272        In CodeGeneratorJS.pm, we should not assume only DOMWindow uses Constructor
16273        attribute. So for other interfaces, we should pass castedThis->globalObject()
16274        instead of castedThis.
16275
16276        Test: bindings/scripts/test/JS/JSTestObj.idl
16277
16278        * bindings/scripts/CodeGeneratorJS.pm:
16279        (GenerateImplementation):
16280        * bindings/scripts/test/JS/JSTestObj.cpp:
16281        (WebCore::jsTestObjConstructorTestSubObj):
16282        (WebCore::jsTestObjConditionalAttr4Constructor):
16283        (WebCore::jsTestObjConditionalAttr5Constructor):
16284        (WebCore::jsTestObjConditionalAttr6Constructor):
16285
162862012-09-14  Tom Sepez  <tsepez@chromium.org>
16287
16288        ImageLoader can't be cleared when video element poster attribute removed.
16289        https://bugs.webkit.org/show_bug.cgi?id=96301
16290
16291        Reviewed by Abhishek Arya.
16292
16293        Same problem as in https://bugs.webkit.org/show_bug.cgi?id=90801. We can't
16294        clear the image loader when the src attribute is cleared, because we might be
16295        inside a handler called on top of an image loader event dispatch. Instead we
16296        will rely on the OwnPtr relationship between the Element and the Image Loader
16297        to limit the lifetime of the loader to that of the element.
16298
16299        Test: fast/dom/beforeload/clear-video-poster-in-beforeload-listener.html
16300
16301        * html/HTMLVideoElement.cpp:
16302        (WebCore::HTMLVideoElement::parseAttribute):
16303        Remove permature clearing of m_imageLoader.
16304        * html/HTMLEmbedElement.cpp:
16305        (WebCore::HTMLEmbedElement::parseAttribute):
16306        Remove permature clearing of m_imageLoader.
16307        * html/HTMLObjectElement.cpp:
16308        (WebCore::HTMLObjectElement::parseAttribute):
16309        Remove permature clearing of m_imageLoader.
16310
163112012-09-14  Jeffrey Pfau  <jpfau@apple.com>
16312
16313        Allow third-party storage blocking setting to change while a page is loaded
16314        https://bugs.webkit.org/show_bug.cgi?id=95790
16315
16316        Reviewed by Brady Eidson.
16317
16318        Pipe through changes to the storage blocking policy to each document and plugin.
16319
16320        Tests: http/tests/security/storage-blocking-loosened-local-storage.html
16321               http/tests/security/storage-blocking-loosened-plugin.html
16322               http/tests/security/storage-blocking-loosened-private-browsing-plugin.html
16323               http/tests/security/storage-blocking-loosened-shared-worker.html
16324               http/tests/security/storage-blocking-loosened-websql.html
16325               http/tests/security/storage-blocking-strengthened-local-storage.html
16326               http/tests/security/storage-blocking-strengthened-plugin.html
16327               http/tests/security/storage-blocking-strengthened-private-browsing-plugin.html
16328               http/tests/security/storage-blocking-strengthened-shared-worker.html
16329               http/tests/security/storage-blocking-strengthened-websql.html
16330
16331        * WebCore.exp.in:
16332        * dom/Document.cpp: Pipe changes through to the Document's SecurityOrigin.
16333        (WebCore::Document::storageBlockingStateDidChange):
16334        (WebCore):
16335        * dom/Document.h:
16336        (Document):
16337        * page/DOMWindow.cpp: Check to make sure access is allowed before returning a cached storage area.
16338        (WebCore::DOMWindow::sessionStorage):
16339        (WebCore::DOMWindow::localStorage):
16340        * page/Page.cpp:
16341        (WebCore::Page::collectPluginViews): Refactored out into a function.
16342        (WebCore):
16343        (WebCore::Page::storageBlockingStateChanged): Pipe changes through to each PluginView.
16344        (WebCore::Page::privateBrowsingStateChanged):
16345        * page/Page.h:
16346        (Page):
16347        * page/Settings.cpp:
16348        (WebCore::Settings::setStorageBlockingPolicy): Tell Pages about changes to the storage blocking policy.
16349        (WebCore):
16350        * page/Settings.h:
16351        (Settings):
16352        * plugins/PluginViewBase.h:
16353        (WebCore::PluginViewBase::storageBlockingStateChanged):
16354
163552012-09-14  Dan Carney  <dcarney@google.com>
16356
16357        Prevent workers from calling back into other worlds
16358        https://bugs.webkit.org/show_bug.cgi?id=96790
16359
16360        Reviewed by Adam Barth.
16361
16362        Added a few sanity checks to ensure callbacks are always using the correct world.
16363
16364        No new tests. No new change in functionality.
16365
16366        * bindings/v8/V8DOMWrapper.cpp:
16367        (WebCore::V8DOMWrapper::getEventListener):
16368        * bindings/v8/V8LazyEventListener.cpp:
16369        (WebCore::V8LazyEventListener::prepareListenerObject):
16370        * bindings/v8/WorldContextHandle.cpp:
16371        (WebCore::WorldContextHandle::WorldContextHandle):
16372        (WebCore::WorldContextHandle::adjustedContext):
16373        * bindings/v8/WorldContextHandle.h:
16374
163752012-09-14  Dana Jansens  <danakj@chromium.org>
16376
16377        Minimize collisions when hashing pairs
16378        https://bugs.webkit.org/show_bug.cgi?id=96022
16379
16380        Reviewed by Adrienne Walker.
16381
16382        Use WTF::pairIntHash() to hash pairs of integers.
16383
16384        * dom/Document.cpp:
16385        (WebCore::ImmutableAttributeDataCacheKey::hash):
16386        * dom/StyledElement.cpp:
16387        (WebCore::computePresentationAttributeCacheHash):
16388        * platform/graphics/Gradient.cpp:
16389        (WebCore::Gradient::hash):
16390        * platform/graphics/IntPointHash.h:
16391        (WTF::IntPointHash::hash):
16392        * platform/graphics/IntRectHash.h:
16393        * platform/graphics/IntSizeHash.h:
16394        * platform/graphics/blackberry/LayerTileIndex.h:
16395        * platform/graphics/cg/GraphicsContextCG.cpp:
16396        (WebCore::SubimageCacheHash::hash):
16397
163982012-09-14  Rob Buis  <rbuis@rim.com>
16399
16400        [BlackBerry] Use StringBuilder more in BlackBerry RSS classes
16401        https://bugs.webkit.org/show_bug.cgi?id=96820
16402
16403        Reviewed by Antonio Gomes.
16404
16405        Use append/appendLiteral where possible.
16406
16407        * platform/MIMETypeRegistry.cpp:
16408        (WebCore::mimeTypeAssociationMap):
16409        * platform/network/blackberry/rss/RSSAtomParser.cpp:
16410        (WebCore::RSSAtomParser::parseContent):
16411        (WebCore::RSSAtomParser::parseAuthor):
16412        * platform/network/blackberry/rss/RSSGenerator.cpp:
16413        (WebCore::RSSGenerator::generateHtml):
16414        * platform/network/blackberry/rss/RSSParserBase.cpp:
16415        (WebCore::textFromXMLAttr):
16416        (WebCore::textFromXMLNode):
16417
164182012-09-14  Alexandru Chiculita  <achicu@adobe.com>
16419
16420        [CSS Shaders] Enable anti-aliasing on the FECustomFilter
16421        https://bugs.webkit.org/show_bug.cgi?id=96668
16422
16423        Reviewed by Dean Jackson.
16424
16425        Added multisample frame buffer for the FECustomFilter. It will try to allocate a multisample framebuffer
16426        with a maximum sample count of 4. At the end it will blit the samples back to the original frame buffer,
16427        so that we can read the pixels back.
16428
16429        This patch uses extensions GL_ANGLE_framebuffer_multisample, GL_ANGLE_framebuffer_blit
16430        and GL_OES_rgb8_rgba8.
16431
16432        No new tests, multisampling is not working in Chromium DRT and has not pixel effect on WebKit Mac.
16433
16434        * platform/graphics/filters/FECustomFilter.cpp:
16435        (WebCore::FECustomFilter::FECustomFilter):
16436        (WebCore::FECustomFilter::deleteRenderBuffers):
16437        (WebCore):
16438        (WebCore::FECustomFilter::deleteMultisampleRenderBuffers):
16439        (WebCore::FECustomFilter::drawFilterMesh):
16440        (WebCore::FECustomFilter::createMultisampleBuffer):
16441        (WebCore::FECustomFilter::resolveMultisampleBuffer):
16442        (WebCore::FECustomFilter::canUseMultisampleBuffers):
16443        (WebCore::FECustomFilter::resizeMultisampleBuffers):
16444        (WebCore::FECustomFilter::resizeContext):
16445        * platform/graphics/filters/FECustomFilter.h:
16446
164472012-09-14  Bo Liu  <boliu@chromium.org>
16448
16449        Add in-place reload behavior to ImagesEnabled setting
16450        https://bugs.webkit.org/show_bug.cgi?id=95478
16451
16452        Reviewed by Adam Barth.
16453
16454        Store ImagesEnabled setting in CachedResourceLoader similar to
16455        AutoLoadImages. Move FrameLoaderClient::allowImage to after a
16456        CachedImage has been created and store the cache for reload if it is
16457        blocked.
16458
16459        Make sure when image loads are deferred by either ImagesEnabled or
16460        LoadImagesAutomatically, onload is not called.
16461
16462        Added ImagesEnabled to InternalSettings for layout tests.
16463
16464        Tests: fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html
16465               fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html
16466
16467        * WebCore.exp.in:
16468        * loader/FrameLoader.cpp:
16469        (WebCore::FrameLoader::didBeginDocument):
16470        * loader/SubresourceLoader.cpp:
16471        (WebCore::SubresourceLoader::willSendRequest):
16472        * loader/cache/CachedImage.cpp:
16473        (WebCore::CachedImage::load):
16474        * loader/cache/CachedImage.h:
16475        * loader/cache/CachedResource.cpp:
16476        (WebCore::CachedResource::didAddClient):
16477        * loader/cache/CachedResource.h:
16478        (WebCore::CachedResource::stillNeedsLoad):
16479        * loader/cache/CachedResourceLoader.cpp:
16480        (WebCore::CachedResourceLoader::CachedResourceLoader):
16481        (WebCore::CachedResourceLoader::requestImage):
16482        (WebCore::CachedResourceLoader::canRequest):
16483        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
16484        (WebCore::CachedResourceLoader::setAutoLoadImages):
16485        (WebCore):
16486        (WebCore::CachedResourceLoader::setImagesEnabled):
16487        (WebCore::CachedResourceLoader::shouldDeferImageLoad):
16488        (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
16489        * loader/cache/CachedResourceLoader.h:
16490        (CachedResourceLoader):
16491        (WebCore::CachedResourceLoader::imagesEnabled):
16492        * page/Settings.cpp:
16493        (WebCore::setImageLoadingSettings):
16494        (WebCore::Settings::Settings):
16495        (WebCore::Settings::setLoadsImagesAutomatically):
16496        (WebCore::Settings::imageLoadingSettingsTimerFired):
16497        (WebCore::Settings::setImagesEnabled):
16498        * page/Settings.h:
16499        (Settings):
16500        * testing/InternalSettings.cpp:
16501        (WebCore::InternalSettings::setImagesEnabled):
16502        (WebCore):
16503        * testing/InternalSettings.h:
16504        (InternalSettings):
16505        * testing/InternalSettings.idl:
16506
165072012-09-14  Emil A Eklund  <eae@chromium.org>
16508
16509        https://bugs.webkit.org/show_bug.cgi?id=96226
16510        REGRESSION (r128006): Three spatial navigation tests are failing
16511
16512        Reviewed by Ryosuke Niwa.
16513
16514        Fix spatial navigation regression by reverting parts of r128006.
16515        Specifically the change to remove the overridden boundingBox
16516        method in ContainerNode. 
16517
16518        * dom/ContainerNode.cpp:
16519        (WebCore::ContainerNode::getUpperLeftCorner):
16520        (WebCore):
16521        (WebCore::ContainerNode::getLowerRightCorner):
16522        (WebCore::ContainerNode::boundingBox):
16523        * dom/ContainerNode.h:
16524        (ContainerNode):
16525
165262012-09-14  James Robinson  <jamesr@chromium.org>
16527
16528        Unreviewed, rolling out r128627.
16529        http://trac.webkit.org/changeset/128627
16530        https://bugs.webkit.org/show_bug.cgi?id=96575
16531
16532        Breaks indexeddb content_browsertests in chromium
16533
16534        * Modules/indexeddb/IDBDatabase.cpp:
16535        (WebCore::IDBDatabase::IDBDatabase):
16536        (WebCore::IDBDatabase::setVersion):
16537        * Modules/indexeddb/IDBDatabase.h:
16538        (IDBDatabase):
16539
165402012-09-14  Alexandru Chiculita  <achicu@adobe.com>
16541
16542        [CSS Shaders] Refactor FECustomFilter to make it usable from platform dependent implementations
16543        https://bugs.webkit.org/show_bug.cgi?id=96801
16544
16545        Reviewed by Dean Jackson.
16546
16547        I've refactored the FECustomFilter to allow FECustomFilterSkia.cpp to use the rendering part
16548        from outside.
16549
16550        Also removed the Texture class as it is not available on some platforms.
16551
16552        The changes for Skia will land in a different patch:
16553        https://bugs.webkit.org/show_bug.cgi?id=96579
16554
16555        No new tests, the existing custom filters tests should already cover this.
16556
16557        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
16558        (WebCore::CustomFilterGlobalContext::prepareContextIfNeeded):
16559        * platform/graphics/filters/FECustomFilter.cpp:
16560        (WebCore::FECustomFilter::FECustomFilter):
16561        (WebCore::FECustomFilter::deleteRenderBuffers):
16562        (WebCore::FECustomFilter::drawFilterMesh):
16563        (WebCore):
16564        (WebCore::FECustomFilter::prepareForDrawing):
16565        (WebCore::FECustomFilter::programNeedsInputTexture):
16566        (WebCore::FECustomFilter::applyShader):
16567        (WebCore::FECustomFilter::initializeContext):
16568        (WebCore::FECustomFilter::ensureInputTexture):
16569        (WebCore::FECustomFilter::uploadInputTexture):
16570        (WebCore::FECustomFilter::ensureFrameBuffer):
16571        (WebCore::FECustomFilter::resizeContextIfNeeded):
16572        (WebCore::FECustomFilter::resizeContext):
16573        (WebCore::FECustomFilter::bindProgramAndBuffers):
16574        * platform/graphics/filters/FECustomFilter.h:
16575        (FECustomFilter):
16576
165772012-09-14  Alexey Proskuryakov  <ap@apple.com>
16578
16579        REGRESSION(r126717): It made inspector/styles/media-queries.html fail/flakey
16580        https://bugs.webkit.org/show_bug.cgi?id=95070
16581
16582        Roll out r126717, and another change that depends on it.
16583        r126717: Remove parent pointer from StyleSheetContents and StyleRuleImport
16584        r127123: Cache and share parsed imported stylesheets
16585
16586        * css/CSSImportRule.cpp:
16587        * css/CSSImportRule.h:
16588        * css/CSSStyleSheet.cpp:
16589        (WebCore::CSSStyleSheet::willMutateRules):
16590        (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
16591        (WebCore::CSSStyleSheet::insertRule):
16592        (WebCore::CSSStyleSheet::ownerDocument):
16593        * css/CSSStyleSheet.h:
16594        (WebCore::CSSStyleSheet::clearOwnerRule):
16595        * css/StyleRuleImport.cpp:
16596        (WebCore::StyleRuleImport::StyleRuleImport):
16597        (WebCore::StyleRuleImport::~StyleRuleImport):
16598        (WebCore::StyleRuleImport::setCSSStyleSheet):
16599        (WebCore::StyleRuleImport::isLoading):
16600        (WebCore::StyleRuleImport::requestStyleSheet):
16601        * css/StyleRuleImport.h:
16602        (WebCore::StyleRuleImport::parentStyleSheet):
16603        (WebCore::StyleRuleImport::setParentStyleSheet):
16604        (WebCore::StyleRuleImport::clearParentStyleSheet):
16605        (ImportedStyleSheetClient):
16606        (WebCore::StyleRuleImport::ImportedStyleSheetClient::ImportedStyleSheetClient):
16607        (WebCore::StyleRuleImport::ImportedStyleSheetClient::~ImportedStyleSheetClient):
16608        (WebCore::StyleRuleImport::ImportedStyleSheetClient::setCSSStyleSheet):
16609        * css/StyleSheetContents.cpp:
16610        (WebCore::StyleSheetContents::StyleSheetContents):
16611        (WebCore::StyleSheetContents::isCacheable):
16612        (WebCore::StyleSheetContents::parserAppendRule):
16613        (WebCore::StyleSheetContents::clearRules):
16614        (WebCore::StyleSheetContents::wrapperInsertRule):
16615        (WebCore::StyleSheetContents::wrapperDeleteRule):
16616        (WebCore::StyleSheetContents::parseAuthorStyleSheet):
16617        (WebCore::StyleSheetContents::parseStringAtLine):
16618        (WebCore::StyleSheetContents::checkLoaded):
16619        (WebCore::StyleSheetContents::notifyLoadedSheet):
16620        (WebCore::StyleSheetContents::startLoadingDynamicSheet):
16621        (WebCore::StyleSheetContents::rootStyleSheet):
16622        (WebCore::StyleSheetContents::singleOwnerNode):
16623        (WebCore::StyleSheetContents::singleOwnerDocument):
16624        (WebCore::StyleSheetContents::parentStyleSheet):
16625        * css/StyleSheetContents.h:
16626        (WebCore::StyleSheetContents::create):
16627        (StyleSheetContents):
16628        (WebCore::StyleSheetContents::ownerRule):
16629        (WebCore::StyleSheetContents::clearOwnerRule):
16630        * dom/ProcessingInstruction.cpp:
16631        (WebCore::ProcessingInstruction::parseStyleSheet):
16632        * dom/StyleElement.cpp:
16633        (WebCore::StyleElement::createSheet):
16634        * html/HTMLLinkElement.cpp:
16635        (WebCore::HTMLLinkElement::setCSSStyleSheet):
16636        * loader/cache/CachedCSSStyleSheet.cpp:
16637        (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
16638
166392012-09-14  Ojan Vafai  <ojan@chromium.org>
16640
16641        Simplify some code in RenderBox::computePercentageLogicalHeight
16642        https://bugs.webkit.org/show_bug.cgi?id=96704
16643
16644        Reviewed by Tony Chang.
16645
16646        This is strictly code cleanup. No behavior change.
16647        Also removed some comments that were what comments and/or were
16648        getting stale.
16649
16650        * rendering/RenderBox.cpp:
16651        (WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
16652        (WebCore):
16653        (WebCore::RenderBox::computePercentageLogicalHeight):
16654        * rendering/RenderBox.h:
16655        (RenderBox):
16656
166572012-09-14  Kent Tamura  <tkent@chromium.org>
16658
16659        Unreviewed, a workaround for a mysterious crash on Apple Windows port.
16660        https://bugs.webkit.org/show_bug.cgi?id=96636
16661
16662        * testing/InternalSettings.cpp:
16663        Touch RuntimeEnabledFeatures::langAttributeAwareFormControlUIEnabled only if
16664        ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
16665        (WebCore::InternalSettings::Backup::Backup):
16666        (WebCore::InternalSettings::Backup::restoreTo):
16667        (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
16668        * testing/InternalSettings.h:
16669        (Backup):
16670
166712012-09-14  David Grogan  <dgrogan@chromium.org>
16672
16673        IndexedDB: Print console warning about setVersion
16674        https://bugs.webkit.org/show_bug.cgi?id=96575
16675
16676        Reviewed by Tony Chang.
16677
16678        setVersion has been out of the spec for almost a year but there are
16679        still a lot of users.
16680
16681        We show the warning once per database object as an approximation for
16682        once per page.
16683
16684        No new tests, but 150-something rebaselines.
16685
16686        * Modules/indexeddb/IDBDatabase.cpp:
16687        (WebCore::IDBDatabase::IDBDatabase):
16688        (WebCore::IDBDatabase::setVersion):
16689        * Modules/indexeddb/IDBDatabase.h:
16690        (IDBDatabase):
16691
166922012-09-14  Michelangelo De Simone  <michelangelo@webkit.org>
16693
16694        Use arrays in shaders
16695        https://bugs.webkit.org/show_bug.cgi?id=95223
16696
16697        Reviewed by Dean Jackson.
16698
16699        Custom Filters' support for array() is introduced. Values within
16700        the array() function will be passed as uniforms to shaders.
16701
16702        Values within array() are comma-separated; the specification will be
16703        updated accordingly: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18839
16704
16705        Test: css3/filters/custom/custom-filter-array.html
16706
16707        * GNUmakefile.list.am:
16708        * Target.pri:
16709        * WebCore.gypi:
16710        * WebCore.vcproj/WebCore.vcproj:
16711        * WebCore.xcodeproj/project.pbxproj:
16712        * css/CSSComputedStyleDeclaration.cpp:
16713        (WebCore::valueForCustomFilterArrayParameter): 
16714        (WebCore):
16715        (WebCore::valueForCustomFilterParameter):
16716        * css/StyleResolver.cpp:
16717        (WebCore::StyleResolver::collectMatchingRulesForList):
16718        * css/StyleResolver.h:
16719        (StyleResolver):
16720        * platform/graphics/filters/CustomFilterArrayParameter.h: Container for array()
16721        parameter values.
16722        (WebCore):
16723        (CustomFilterArrayParameter):
16724        (WebCore::CustomFilterArrayParameter::create):
16725        (WebCore::CustomFilterArrayParameter::size):
16726        (WebCore::CustomFilterArrayParameter::valueAt):
16727        (WebCore::CustomFilterArrayParameter::addValue):
16728        (WebCore::CustomFilterArrayParameter::blend):
16729        (WebCore::CustomFilterArrayParameter::operator==):
16730        (WebCore::CustomFilterArrayParameter::CustomFilterArrayParameter):
16731        * platform/graphics/filters/CustomFilterParameter.h:
16732        * platform/graphics/filters/FECustomFilter.cpp:
16733        (WebCore::FECustomFilter::bindProgramArrayParameters):
16734        (WebCore):
16735        (WebCore::FECustomFilter::bindProgramParameters):
16736        * platform/graphics/filters/FECustomFilter.h:
16737        (WebCore):
16738        (FECustomFilter):
16739
167402012-09-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
16741
16742        [Qt] Remove old cruft from the qmake build system
16743
16744        Rubber-stamped by Simon Hausmann.
16745
16746        * DerivedSources.pri:
16747        * Target.pri:
16748
167492012-09-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
16750
16751        [Qt] Make force_static_libs_as_shared work on Mac OS
16752
16753        We had to move a few LIBS += around that were in the wrong place,
16754        and not caught when everything was just linked into the final
16755        QtWebKit library.
16756
16757        Reviewed by Simon Hausmann.
16758
16759        * WebCore.pri:
16760
167612012-09-14  Rick Byers  <rbyers@chromium.org>
16762
16763        Gesture events sent to wrong node when page is scrolled
16764        https://bugs.webkit.org/show_bug.cgi?id=96788
16765
16766        Reviewed by Antonio Gomes.
16767
16768        Adjust the co-ordinate space correctly when doing hit testing for
16769        gesture events (as for all other event handling code here).
16770
16771        Test: platform/chromium/plugins/gesture-events-scrolled.html
16772
16773        * page/EventHandler.cpp:
16774        (WebCore::EventHandler::handleGestureEvent):
16775
167762012-09-14  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
16777
16778        [EFL] Attempt to create a theme for 0 sized element leads to assertion hit
16779        https://bugs.webkit.org/show_bug.cgi?id=96743
16780
16781        Reviewed by Kenneth Rohde Christiansen.
16782
16783        RenderThemeEfl was not supposed to be created for the elements with '0' size and had an assertion
16784        on that causing crash in debug mode. 
16785
16786        Test: fast/forms/range/slider-zero-size-crash.html
16787
16788        * platform/efl/RenderThemeEfl.cpp:
16789        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
16790
167912012-09-14  Andrey Kosyakov  <caseq@chromium.org>
16792
16793        Web Inspector: reuse WebInspector.ProgressIndicator in Audits panel
16794        https://bugs.webkit.org/show_bug.cgi?id=96755
16795
16796        Reviewed by Alexander Pavlov.
16797
16798        - remove AuditProgressMonitor, use WebInspector.ProgressIndicator instead;
16799        - add annotations for a bunch of audit methods;
16800        - simplify control flow -- remove callbacks where possible.
16801
16802        * English.lproj/localizedStrings.js:
16803        * inspector/front-end/AuditLauncherView.js:
16804        (WebInspector.AuditLauncherView):
16805        (WebInspector.AuditLauncherView.prototype._setAuditRunning):
16806        (WebInspector.AuditLauncherView.prototype._launchButtonClicked.onAuditStarted):
16807        (WebInspector.AuditLauncherView.prototype._launchButtonClicked):
16808        (WebInspector.AuditLauncherView.prototype._createLauncherUI):
16809        (WebInspector.AuditLauncherView.prototype._updateResourceProgress):
16810        (WebInspector.AuditLauncherView.prototype._updateButton):
16811        * inspector/front-end/AuditRules.js:
16812        (WebInspector.AuditRules.GzipRule.prototype.doRun):
16813        (WebInspector.AuditRules.CombineExternalResourcesRule.prototype.doRun):
16814        (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
16815        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
16816        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.documentLoaded):
16817        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback):
16818        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.styleSheetCallback):
16819        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.allStylesCallback):
16820        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun):
16821        (WebInspector.AuditRules.CacheControlRule.prototype.doRun):
16822        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
16823        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun):
16824        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived):
16825        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.inlineStylesReceived):
16826        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.onDocumentAvailable):
16827        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun):
16828        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived):
16829        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.lateStylesReceived):
16830        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.onDocumentAvailable):
16831        (WebInspector.AuditRules.CSSRuleBase.prototype.doRun.sheetsCallback):
16832        (WebInspector.AuditRules.CSSRuleBase.prototype._visitStyleSheet.sheetCallback):
16833        (WebInspector.AuditRules.CSSRuleBase.prototype._visitStyleSheet):
16834        (WebInspector.AuditRules.CookieRuleBase.prototype.doRun.resultCallback):
16835        (WebInspector.AuditRules.CookieRuleBase.prototype.doRun):
16836        * inspector/front-end/AuditsPanel.js:
16837        (WebInspector.AuditsPanel):
16838        (WebInspector.AuditsPanel.prototype._executeAudit.ruleResultReadyCallback):
16839        (WebInspector.AuditsPanel.prototype._executeAudit):
16840        (WebInspector.AuditsPanel.prototype._auditFinishedCallback):
16841        (WebInspector.AuditsPanel.prototype.initiateAudit.else.onReload):
16842        (WebInspector.AuditsPanel.prototype.initiateAudit):
16843        (WebInspector.AuditCategory.prototype.run):
16844        (WebInspector.AuditRule.prototype.run):
16845        (WebInspector.AuditRule.prototype.doRun):
16846        * inspector/front-end/ProgressBar.js:
16847        (WebInspector.Progress.prototype.worked):
16848        (WebInspector.ProgressIndicator):
16849        (WebInspector.ProgressIndicator.prototype.cancel):
16850        (WebInspector.ProgressIndicator.prototype.setWorked):
16851        (WebInspector.ProgressIndicator.prototype.worked):
16852        (WebInspector.SubProgress.prototype.setWorked):
16853        (WebInspector.SubProgress.prototype.worked):
16854        * inspector/front-end/auditsPanel.css:
16855        (.audit-launcher-view .progress-bar-container):
16856        (.audit-launcher-view .progress-bar-container .progress-bar-stop-button):
16857
168582012-09-14  Vsevolod Vlasov  <vsevik@chromium.org>
16859
16860        Unreviewed inspector ui polish.
16861
16862        * inspector/front-end/inspector.css:
16863        (#floating-status-bar-resizer):
16864
168652012-09-14  Vsevolod Vlasov  <vsevik@chromium.org>
16866
16867        Web Inspector: Get rid of setting values to innerHTML in inspector front-end.
16868        https://bugs.webkit.org/show_bug.cgi?id=96758
16869
16870        Reviewed by Alexander Pavlov.
16871
16872        Removed innerHTML from WebGLProfileView.
16873
16874        * inspector/front-end/WebGLProfileView.js:
16875        (WebInspector.WebGLProfileView.prototype._showTraceLog):
16876
168772012-09-14  Keishi Hattori  <keishi@webkit.org>
16878
16879        Make time input lang attribute aware for testing
16880        https://bugs.webkit.org/show_bug.cgi?id=96728
16881
16882        Reviewed by Kent Tamura.
16883
16884        This patch implements partial lang attribute support for input type=time
16885        that turns on only when enabled through InternalSettings.
16886
16887        Test: fast/forms/time-multiple-fields/time-multiple-fields-localization.html
16888
16889        * dom/Document.cpp:
16890        (WebCore::Document::getLocalizer): Returns a localizer for a given locale. Localizers are cached for repeated use.
16891        (WebCore):
16892        * dom/Document.h:
16893        (WebCore):
16894        (Document):
16895        * html/TimeInputType.cpp:
16896        (WebCore::TimeInputType::updateInnerTextValue): Use the locale for the input element.
16897        * html/shadow/DateTimeEditElement.cpp:
16898        (DateTimeEditBuilder):
16899        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
16900        (WebCore::DateTimeEditBuilder::visitField):
16901        (WebCore::DateTimeEditElement::layout):
16902        (WebCore::DateTimeEditElement::setValueAsDate):
16903        (WebCore::DateTimeEditElement::setEmptyValue):
16904        * html/shadow/DateTimeEditElement.h:
16905        (WebCore):
16906        (DateTimeEditElement):
16907
169082012-09-14  Sheriff Bot  <webkit.review.bot@gmail.com>
16909
16910        Unreviewed, rolling out r128566.
16911        http://trac.webkit.org/changeset/128566
16912        https://bugs.webkit.org/show_bug.cgi?id=96760
16913
16914        Assertion failure in http/tests/websocket/tests/hybi/workers
16915        /close-code-and-reason.html (Requested by tkent1 on #webkit).
16916
16917        * bindings/v8/DOMData.cpp:
16918        (WebCore::DOMData::getCurrentStore):
16919        * bindings/v8/ScopedPersistent.h:
16920        * bindings/v8/ScriptController.cpp:
16921        (WebCore::ScriptController::resetIsolatedWorlds):
16922        (WebCore::ScriptController::evaluateInIsolatedWorld):
16923        (WebCore::ScriptController::currentWorldContext):
16924        * bindings/v8/V8Binding.cpp:
16925        (WebCore::perContextDataForCurrentWorld):
16926        * bindings/v8/V8DOMWindowShell.cpp:
16927        (WebCore::setIsolatedWorldField):
16928        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
16929        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
16930        (WebCore):
16931        (WebCore::isolatedContextWeakCallback):
16932        (WebCore::V8DOMWindowShell::disposeContext):
16933        (WebCore::V8DOMWindowShell::initializeIfNeeded):
16934        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
16935        * bindings/v8/V8DOMWindowShell.h:
16936        (V8DOMWindowShell):
16937        (WebCore::V8DOMWindowShell::getEntered):
16938        * bindings/v8/V8DOMWrapper.h:
16939        (WebCore::V8DOMWrapper::getCachedWrapper):
16940        * bindings/v8/WorldContextHandle.cpp:
16941        (WebCore::WorldContextHandle::WorldContextHandle):
16942        * bindings/v8/custom/V8DocumentCustom.cpp:
16943        (WebCore::toV8):
16944        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16945        (WebCore::toV8):
16946        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16947        (WebCore::toV8):
16948        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
16949        (WebCore::V8XMLHttpRequest::constructorCallback):
16950
169512012-09-14  Vsevolod Vlasov  <vsevik@chromium.org>
16952
16953        Web Inspector: Fix front end closure compilation errors.
16954        https://bugs.webkit.org/show_bug.cgi?id=96753
16955
16956        Reviewed by Alexander Pavlov.
16957
16958        Closure compilation fix.
16959        Also fixed wrong parameters passed to JavaScriptSource constructor from CompilerScriptMapping.
16960
16961        * inspector/front-end/CompilerScriptMapping.js:
16962        * inspector/front-end/Resource.js:
16963
169642012-09-14  Andrei Poenaru  <poenaru@adobe.com>
16965
16966        Web Inspector: Display Named Flows in the "CSS Named Flows" drawer
16967        https://bugs.webkit.org/show_bug.cgi?id=90871
16968
16969        Reviewed by Alexander Pavlov.
16970
16971        Implemented CSS Regions support in WebInspector as a drawer. (feature is under an experimental flag)
16972
16973        * English.lproj/localizedStrings.js:
16974        * WebCore.gypi:
16975        * WebCore.vcproj/WebCore.vcproj:
16976        * inspector/compile-front-end.py:
16977        * inspector/front-end/CSSNamedFlowCollectionsView.js: Added.
16978        (WebInspector.CSSNamedFlowCollectionsView):
16979        (WebInspector.CSSNamedFlowCollectionsView.prototype.showInDrawer):
16980        (WebInspector.CSSNamedFlowCollectionsView.prototype.reset):
16981        (WebInspector.CSSNamedFlowCollectionsView.prototype._setDocument):
16982        (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
16983        (WebInspector.CSSNamedFlowCollectionsView.prototype._setSidebarHasContent):
16984        (WebInspector.CSSNamedFlowCollectionsView.prototype._appendNamedFlow):
16985        (WebInspector.CSSNamedFlowCollectionsView.prototype._removeNamedFlow):
16986        (WebInspector.CSSNamedFlowCollectionsView.prototype._updateNamedFlow):
16987        (WebInspector.CSSNamedFlowCollectionsView.prototype._resetNamedFlows):
16988        (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
16989        (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowRemoved):
16990        (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
16991        (WebInspector.CSSNamedFlowCollectionsView.prototype._hashNamedFlow):
16992        (WebInspector.CSSNamedFlowCollectionsView.prototype._showNamedFlow):
16993        (WebInspector.CSSNamedFlowCollectionsView.prototype._selectNamedFlowInSidebar):
16994        (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
16995        (WebInspector.CSSNamedFlowCollectionsView.prototype._showNamedFlowForNode):
16996        (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16997        (WebInspector.CSSNamedFlowCollectionsView.prototype.willHide):
16998        * inspector/front-end/ElementsPanel.js:
16999        (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
17000        (WebInspector.ElementsPanel.prototype._showNamedFlowCollections):
17001        * inspector/front-end/Images/namedFlowOverflow.png: Added.
17002        * inspector/front-end/Settings.js:
17003        (WebInspector.ExperimentsSettings):
17004        * inspector/front-end/WebKit.qrc:
17005        * inspector/front-end/cssNamedFlows.css: Added.
17006        (.css-named-flow-collections-view .split-view-sidebar-left):
17007        (.css-named-flow-collections-view .tabbed-pane-header):
17008        (.css-named-flow-collections-view .info):
17009        (.css-named-flow-collections-view .split-view-sidebar-left .sidebar-content):
17010        (.css-named-flow-collections-view .split-view-sidebar-left .selection):
17011        (.css-named-flow-collections-view .split-view-contents .title):
17012        (.css-named-flow-collections-view .split-view-sidebar-left .named-flow-overflow::before):
17013
170142012-09-14  Yoshifumi Inoue  <yosin@chromium.org>
17015
17016        Unreviewed fix for build break on Chromium-Linux Debug build.
17017
17018        * html/DateTimeFieldsState.cpp: Initialize DateTimeFieldStates::emptyValue.
17019        * html/DateTimeFieldsState.h: Remove initialization of public static member variable emptyValue.
17020
170212012-09-14  Yoshifumi Inoue  <yosin@chromium.org>
17022
17023        Create Localizer factory method for LocaleNone
17024        https://bugs.webkit.org/show_bug.cgi?id=96745
17025
17026        Reviewed by Kent Tamura.
17027
17028        This patch introduces Localizer class and LocaleNone class which
17029        prodices a constructor of Localizer class for ports which don't use
17030        LocaleICU, LocaleMac nor LocaleWin.
17031
17032        No new tests. This patch doesn't change behavior.
17033
17034        * CMakeLists.txt: Added platform/text/LocaleNone.cpp and platform/text/Localizer.cpp.
17035        * GNUmakefile.list.am: Added platform/text/LocaleNone.cpp and platform/text/Localizer.{cpp,h}
17036        * Target.pri: Added platform/text/LocaleNone.cpp and platform/text/Localizer.cpp
17037        * WebCore.vcproj/WebCore.vcproj: Added platform/text/LocaleNone.cpp and platform/text/Localizer.{cpp,h}
17038        * platform/text/LocaleNone.cpp: Added.
17039        (WebCore::Localizer::create): 
17040        (WebCore::LocaleNone::~LocaleNone):
17041        (WebCore::LocaleNone::initializeLocalizerData):
17042
170432012-09-14  Vsevolod Vlasov  <vsevik@chromium.org>
17044
17045        Unreviewed r128580 follow up: fixed qt minimal compilation.
17046
17047        * loader/DocumentThreadableLoader.cpp:
17048
170492012-09-14  Keishi Hattori  <keishi@webkit.org>
17050
17051        Refactor time format related methods on LocaleWin/Mac/ICU so that they override Localizer methods
17052        https://bugs.webkit.org/show_bug.cgi?id=96726
17053
17054        Reviewed by Kent Tamura.
17055
17056        Refactoring time format related methods on LocaleWin/Mac/ICU so that
17057        they override Localizer methods. We can call them from the Localizer
17058        from now on.
17059
17060        No new tests. No behavior change. Covered by existing tests.
17061
17062        * platform/text/LocaleICU.cpp:
17063        (WebCore::LocaleICU::initializeDateTimeFormat): m_timeAMPMLabels is no longer a OwnPtr so we account for that.
17064        (WebCore::LocaleICU::timeFormat): Removing Text from end of function
17065        name because *FormatText() shoud return human readable text like "Day/Month/Year".
17066        (WebCore::LocaleICU::shortTimeFormat):
17067        (WebCore::LocaleICU::timeAMPMLabels):
17068        * platform/text/LocaleICU.h:
17069        (LocaleICU):
17070        * platform/text/LocaleWin.cpp:
17071        (WebCore::LocaleWin::timeFormat):
17072        (WebCore::LocaleWin::shortTimeFormat):
17073        (WebCore::LocaleWin::timeAMPMLabels):
17074        * platform/text/LocaleWin.h:
17075        (LocaleWin):
17076        * platform/text/LocalizedDateICU.cpp:
17077        (WebCore::localizedTimeFormatText):
17078        (WebCore::localizedShortTimeFormatText):
17079        * platform/text/LocalizedDateWin.cpp:
17080        (WebCore::localizedTimeFormatText):
17081        (WebCore::localizedShortTimeFormatText):
17082        * platform/text/Localizer.cpp:
17083        (WebCore):
17084        (WebCore::Localizer::timeFormat):
17085        (WebCore::Localizer::shortTimeFormat):
17086        (WebCore::Localizer::timeAMPMLabels):
17087        * platform/text/Localizer.h:
17088        (Localizer): We unified some of the member variables like m_timeAMPMLabels into this class.
17089        * platform/text/mac/LocaleMac.h:
17090        (LocaleMac):
17091        * platform/text/mac/LocaleMac.mm:
17092        (WebCore::LocaleMac::timeFormat):
17093        (WebCore::LocaleMac::shortTimeFormat):
17094        * platform/text/mac/LocalizedDateMac.cpp:
17095        (WebCore::localizedTimeFormatText):
17096        (WebCore::localizedShortTimeFormatText):
17097
170982012-09-14  Keishi Hattori  <keishi@webkit.org>
17099
17100        Add runtime flag that enables lang attribute for form controls in LayoutTests
17101        https://bugs.webkit.org/show_bug.cgi?id=96636
17102
17103        Reviewed by Kent Tamura.
17104
17105        Lang attribute support for form controls will be incomplete and just for LayoutTests.
17106
17107        No new tests. No behavior change.
17108
17109        * WebCore.exp.in:
17110        * bindings/generic/RuntimeEnabledFeatures.cpp:
17111        (WebCore):
17112        * bindings/generic/RuntimeEnabledFeatures.h:
17113        (WebCore::RuntimeEnabledFeatures::langAttributeAwareFormControlUIEnabled):
17114        (WebCore::RuntimeEnabledFeatures::setLangAttributeAwareFormControlUIEnabled):
17115        (RuntimeEnabledFeatures):
17116        * testing/InternalSettings.cpp:
17117        (WebCore::InternalSettings::Backup::Backup):
17118        (WebCore::InternalSettings::Backup::restoreTo):
17119        (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
17120        (WebCore):
17121        * testing/InternalSettings.h:
17122        (Backup):
17123        (InternalSettings):
17124        * testing/InternalSettings.idl:
17125
171262012-09-14  Keishi Hattori  <keishi@webkit.org>
17127
17128        LocaleMac should fallback to defaultLanguage for an invalid locale
17129        https://bugs.webkit.org/show_bug.cgi?id=96744
17130
17131        Reviewed by Kent Tamura.
17132
17133        There is no way to tell if a locale identifier is valid or not in Cocoa
17134        so we look if we have a matching language in the list of
17135        ISOLanguageCodes given by NSLocale.
17136
17137        Covered in LocaleMacTest.invalidLocale.
17138
17139        * platform/text/mac/LocaleMac.mm:
17140        (WebCore):
17141        (WebCore::LocaleMac::LocaleMac):
17142        (WebCore::LocaleMac::create):
17143
171442012-09-14  Vsevolod Vlasov  <vsevik@chromium.org>
17145
17146        Web Inspector: Add ability to replay XHR in network panel.
17147        https://bugs.webkit.org/show_bug.cgi?id=95187
17148
17149        Reviewed by Yury Semikhatsky.
17150
17151        Patch based on Pavel Chadnov's patch.
17152        This patch implements Replay XHR feature in web inspector.
17153        XMLHttpRequest's ThreadableLoaderClient is now used to map XMLHttpRequest object to ResourceLoader request identifiers.
17154        Before initiating load all XHR parameters are now sent to inspector.
17155        XMLHttpRequest parameters are stored in inspector's network request cache in XHRReplayData class.
17156        When XHR replay is requested, a new XMLHttpRequest is created based on stored data.
17157
17158        Test: http/tests/inspector/network/network-xhr-replay.html
17159
17160        * inspector/Inspector.json:
17161        * inspector/InspectorConsoleAgent.cpp:
17162        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
17163        * inspector/InspectorConsoleAgent.h:
17164        (InspectorConsoleAgent):
17165        * inspector/InspectorInstrumentation.cpp:
17166        (WebCore):
17167        (WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClientImpl):
17168        (WebCore::InspectorInstrumentation::willLoadXHRImpl):
17169        (WebCore::InspectorInstrumentation::didFailXHRLoadingImpl):
17170        (WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
17171        * inspector/InspectorInstrumentation.h:
17172        (WebCore):
17173        (InspectorInstrumentation):
17174        (WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient):
17175        (WebCore::InspectorInstrumentation::willLoadXHR):
17176        (WebCore::InspectorInstrumentation::didFailXHRLoading):
17177        (WebCore::InspectorInstrumentation::didFinishXHRLoading):
17178        * inspector/InspectorResourceAgent.cpp:
17179        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
17180        (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
17181        (WebCore):
17182        (WebCore::InspectorResourceAgent::willLoadXHR):
17183        (WebCore::InspectorResourceAgent::didFailXHRLoading):
17184        (WebCore::InspectorResourceAgent::didFinishXHRLoading):
17185        (WebCore::InspectorResourceAgent::replayXHR):
17186        * inspector/InspectorResourceAgent.h:
17187        (WebCore):
17188        (InspectorResourceAgent):
17189        * inspector/NetworkResourcesData.cpp:
17190        (WebCore::XHRReplayData::create):
17191        (WebCore):
17192        (WebCore::XHRReplayData::addHeader):
17193        (WebCore::XHRReplayData::XHRReplayData):
17194        (WebCore::NetworkResourcesData::xhrReplayData):
17195        (WebCore::NetworkResourcesData::setXHRReplayData):
17196        (WebCore::NetworkResourcesData::reuseXHRReplayData):
17197        (WebCore::NetworkResourcesData::clear):
17198        * inspector/NetworkResourcesData.h:
17199        (XHRReplayData):
17200        (WebCore::XHRReplayData::method):
17201        (WebCore::XHRReplayData::url):
17202        (WebCore::XHRReplayData::async):
17203        (WebCore::XHRReplayData::formData):
17204        (WebCore::XHRReplayData::headers):
17205        (WebCore::XHRReplayData::includeCredentials):
17206        (WebCore):
17207        (WebCore::NetworkResourcesData::ResourceData::xhrReplayData):
17208        (WebCore::NetworkResourcesData::ResourceData::setXHRReplayData):
17209        (ResourceData):
17210        (NetworkResourcesData):
17211        * inspector/front-end/NetworkPanel.js:
17212        (WebInspector.NetworkLogView.prototype._contextMenu):
17213        (WebInspector.NetworkLogView.prototype._replayXHR):
17214        * loader/DocumentThreadableLoader.cpp:
17215        (WebCore::DocumentThreadableLoader::loadRequest): added documentThreadableLoaderStartedLoadingForClient instrumentation
17216        so that inspector could map XMLHttpRequest to ResourceLoader's identifiers.
17217        * loader/cache/CachedResource.h:
17218        (WebCore::CachedResource::loader): DocumentThreadableLoader uses CachedResource::loader() to get ResourceLoader identifier.
17219        (CachedResource):
17220        * xml/XMLHttpRequest.cpp:
17221        (WebCore::XMLHttpRequest::sendFromInspector): Added a method for sending XMLHttpRequests based on request body stored in inspector.
17222        (WebCore):
17223        (WebCore::XMLHttpRequest::createRequest): Replaced will/didLoadXHRSynchonously instrumentations with willLoadXHR instrumentation.
17224        (WebCore::XMLHttpRequest::internalAbort): Added didFailXHRLoadingInstrumentation
17225        (WebCore::XMLHttpRequest::didFinishLoading): Added didFinishXHRLoading instrumentation
17226        * xml/XMLHttpRequest.h:
17227        (XMLHttpRequest):
17228
172292012-09-14  Yoshifumi Inoue  <yosin@chromium.org>
17230
17231        [Forms] multiple fields time input UI should save/restore its value even if it has an empty field.
17232        https://bugs.webkit.org/show_bug.cgi?id=96714
17233
17234        Reviewed by Kent Tamura.
17235
17236        This patch changes multiple fields time input UI to save/restore value
17237        of fields rather than time value. For this change, storage format of
17238        input type "time" is also changed.
17239
17240        Before this patch, if user populates time fiels partially, all fields
17241        are reset to initial value after back/forward navigation.
17242
17243        After this patch, partially populated fields are preserved after
17244        back/forward navigation.
17245
17246        Fields of DateTimeEditElement are represented as 9 elements of
17247        string vector in FormControlState regardless actual fields in
17248        DateTimeEditElement for ease of restoring/saving.
17249
17250        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
17251        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
17252
17253        No new tests. Existing test fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back.html
17254        convers this change.
17255
17256        * WebCore.gypi: Chagned to add DateTimeFieldsState.{cpp.h}
17257        * html/DateTimeFieldsState.cpp: Added.
17258        (WebCore::getNumberFromFormControlState): Extracts unsigned integer or empty value from FormControlState.
17259        (WebCore::getAMPMFromFormControlState): Extracts AM/PM value or empty value from FormControlState.
17260        (WebCore::DateTimeFieldsState::DateTimeFieldsState): Initializes fields with empty value.
17261        (WebCore::DateTimeFieldsState::restoreFormControlState): Makes DateTimeFieldsState instance from FormControlState.
17262        (WebCore::DateTimeFieldsState::saveFormControlState): Makes FormControlState from DateTimeFieldsState.
17263        * html/DateTimeFieldsState.h: Added.
17264        (DateTimeFieldsState):
17265        (WebCore::DateTimeFieldsState::ampm): Returns AM/PM field value.
17266        (WebCore::DateTimeFieldsState::dayOfMonth): Returns day of month field value.
17267        (WebCore::DateTimeFieldsState::hour): Reutrns hour field value.
17268        (WebCore::DateTimeFieldsState::millisecond): Returns millisecond field value.
17269        (WebCore::DateTimeFieldsState::minute): Returns minute field value.
17270        (WebCore::DateTimeFieldsState::month): Returns month field value.
17271        (WebCore::DateTimeFieldsState::second): Returns second field value.
17272        (WebCore::DateTimeFieldsState::weekOfYear): Returns week of year field.
17273        (WebCore::DateTimeFieldsState::year): Returns year field value.
17274        (WebCore::DateTimeFieldsState::hasAMPM): Returns true if AM/PM field has value.
17275        (WebCore::DateTimeFieldsState::hasDayOfMonth): Returns true if day of month field has value.
17276        (WebCore::DateTimeFieldsState::hasHour): Returns true if hour field has value.
17277        (WebCore::DateTimeFieldsState::hasMillisecond): Returns true if millisecond field has value.
17278        (WebCore::DateTimeFieldsState::hasMinute): Returns true if minute field has value.
17279        (WebCore::DateTimeFieldsState::hasMonth): Returns true if month field has value.
17280        (WebCore::DateTimeFieldsState::hasSecond): Returns true if second field has value.
17281        (WebCore::DateTimeFieldsState::hasWeekOfYear): Returns true if week of year field has value.
17282        (WebCore::DateTimeFieldsState::hasYear): Returns true if year field has value.
17283        (WebCore::DateTimeFieldsState::setAMPM): Sets AM/PM field.
17284        (WebCore::DateTimeFieldsState::setDayOfMonth): Sets day of month field.
17285        (WebCore::DateTimeFieldsState::setHour): Sets hour field.
17286        (WebCore::DateTimeFieldsState::setMillisecond): Sets millisecond field.
17287        (WebCore::DateTimeFieldsState::setMinute): Sets minute field.
17288        (WebCore::DateTimeFieldsState::setMonth): Sets month field.
17289        (WebCore::DateTimeFieldsState::setSecond): Set second field.
17290        (WebCore::DateTimeFieldsState::setWeekOfYear): Sets week of year field.
17291        (WebCore::DateTimeFieldsState::setYear): Sets year field.
17292        * html/FormController.cpp:
17293        (WebCore::formStateSignature): Increment version number to 8 for incompatible change of FormControlState.
17294        * html/TimeInputType.cpp:
17295        (WebCore::TimeInputType::restoreFormControlState): Added to call DateTimeFieldsState::restoreFormControlState().
17296        (WebCore::TimeInputType::saveFormControlState): Added to call DateTimeFieldsState::saveFormControlState().
17297        * html/TimeInputType.h:
17298        (TimeInputType): Added declarations for restoreFormControlState() and saveFormControlState().
17299        * html/shadow/DateTimeEditElement.cpp:
17300        (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState): Added to set fields from DateTimeFieldsState.
17301        (WebCore::DateTimeEditElement::valueAsDateTimeFieldsState): Added to make DateTimeFieldsState from fields.
17302        * html/shadow/DateTimeEditElement.h:
17303        (DateTimeEditElement): Added declarations for setValueAsDateTimeFieldsState() and valueAsDateTimeFieldsState().
17304        * html/shadow/DateTimeFieldElement.h:
17305        (DateTimeFieldElement): Added declarations for populateDateTimeFieldsState() and setValueAsDateTimeFieldsState().
17306        * html/shadow/DateTimeFieldElements.cpp:
17307        (WebCore::DateTimeAMPMFieldElement::populateDateTimeFieldsState): Added to set AM/PM value to DateTimeFieldsState.
17308        (WebCore::DateTimeAMPMFieldElement::setValueAsDateTimeFieldsState): Added to set field value from DateTimeFieldsState.
17309        (WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState): Added to set hour value to DateTimeFieldsState.
17310        (WebCore::DateTimeHourFieldElement::setValueAsDateTimeFieldsState): Added to set field value from DateTimeFieldsState.
17311        (WebCore::DateTimeMillisecondFieldElement::populateDateTimeFieldsState): Added to set millisecond value to DateTimeFieldsState.
17312        (WebCore::DateTimeMillisecondFieldElement::setValueAsDateTimeFieldsState): Added to set field value from DateTimeFieldsState.
17313        (WebCore::DateTimeMinuteFieldElement::populateDateTimeFieldsState): Added to set minute value to DateTimeFieldsState.
17314        (WebCore::DateTimeMinuteFieldElement::setValueAsDateTimeFieldsState): Added to set field value from DateTimeFieldsState.
17315        (WebCore::DateTimeSecondFieldElement::populateDateTimeFieldsState): Added to set second value to DateTimeFieldsState.
17316        (WebCore::DateTimeSecondFieldElement::setValueAsDateTimeFieldsState): Added to set field value from DateTimeFieldsState.
17317        * html/shadow/DateTimeFieldElements.h:
17318        (DateTimeAMPMFieldElement): Added declarations of populateDateTimeFieldsState() and setValueAsDateTimeFieldsState().
17319        (DateTimeHourFieldElement): ditto.
17320        (DateTimeMillisecondFieldElement): ditto.
17321        (DateTimeMinuteFieldElement): ditto.
17322        (DateTimeSecondFieldElement): ditto.
17323        * html/shadow/DateTimeNumericFieldElement.h:
17324        (DateTimeNumericFieldElement): Extend accessibility of maximum() and setEmptyValue() to protected.
17325        * html/shadow/DateTimeSymbolicFieldElement.h:
17326        (DateTimeSymbolicFieldElement): Extend accessibility of hasValue(), setEmptyValue() and valueAsInteger() to protected.
17327
173282012-09-14  Sheriff Bot  <webkit.review.bot@gmail.com>
17329
17330        Unreviewed, rolling out r128568.
17331        http://trac.webkit.org/changeset/128568
17332        https://bugs.webkit.org/show_bug.cgi?id=96739
17333
17334        It broke 3 tests everywhere (Requested by Ossy on #webkit).
17335
17336        * bindings/js/JSDictionary.h:
17337        (WebCore::JSDictionary::tryGetPropertyAndResult):
17338
173392012-09-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
17340
17341        Evas_Object* is a ref'ed structure, so tread it as such
17342        https://bugs.webkit.org/show_bug.cgi?id=96659
17343
17344        Reviewed by Adam Barth.
17345
17346        Replace OwnPtr<Evas_Object> with RefPtr.
17347
17348        * PlatformEfl.cmake:
17349        * platform/efl/RenderThemeEfl.cpp:
17350        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
17351        (WebCore::RenderThemeEfl::loadTheme):
17352        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
17353        * platform/efl/RenderThemeEfl.h:
17354        (RenderThemeEfl):
17355        (ThemePartCacheEntry):
17356
173572012-09-14  Zoltan Horvath  <zoltan@webkit.org>
17358
17359        Extend the coverage of the Custom Allocation Framework in WebCore
17360        https://bugs.webkit.org/show_bug.cgi?id=96512
17361
17362        Reviewed by Eric Seidel.
17363
17364        Add WTF_MAKE_FAST_ALLOCATED macro to the following class/struct declarations because these
17365        or their child classes are instantiated by operator new.
17366
17367        Covered by existing tests.
17368
17369        * Modules/websockets/WebSocketDeflateFramer.cpp:
17370        (WebSocketExtensionDeflateFrame):
17371        * Modules/websockets/WebSocketDeflateFramer.h:
17372        (DeflateResultHolder):
17373        (InflateResultHolder):
17374        * Modules/websockets/WebSocketDeflater.h:
17375        (WebSocketDeflater):
17376        (WebSocketInflater):
17377        * Modules/websockets/WebSocketHandshake.h:
17378        (WebSocketHandshake):
17379        * bindings/js/ScriptDebugServer.h:
17380        (Task):
17381        * css/CSSCalculationValue.cpp:
17382        (CSSCalcPrimitiveValue):
17383        * css/CSSParserMode.h:
17384        (CSSParserContext):
17385        * css/CSSValuePool.h:
17386        (CSSValuePool):
17387        * css/StyleBuilder.h:
17388        (StyleBuilder):
17389        * css/StylePropertyShorthand.h:
17390        (StylePropertyShorthand):
17391        * css/StyleResolver.cpp:
17392        (RuleSet):
17393        * css/StyleRule.h:
17394        (StyleRuleBase):
17395        (StyleRule):
17396        * css/StyleRuleImport.h:
17397        (StyleRuleImport):
17398        * css/WebKitCSSKeyframeRule.h:
17399        (StyleKeyframe):
17400        * dom/CheckedRadioButtons.cpp:
17401        (RadioButtonGroup):
17402        * dom/ContextFeatures.h:
17403        (ContextFeaturesClient):
17404        * dom/DOMImplementation.h:
17405        (DOMImplementation):
17406        (XMLMIMETypeRegExp):
17407        * dom/Document.cpp:
17408        (ImmutableAttributeDataCacheKey):
17409        * dom/ElementShadow.h:
17410        (ElementShadow):
17411        * dom/GenericEventQueue.h:
17412        (GenericEventQueue):
17413        * dom/IdTargetObserverRegistry.h:
17414        (IdTargetObserverRegistry):
17415        * dom/NamedNodeMap.h:
17416        (NamedNodeMap):
17417        * dom/ScopedEventQueue.h:
17418        (ScopedEventQueue):
17419        * dom/StyledElement.cpp:
17420        (PresentationAttributeCacheEntry):
17421        (PresentationAttributeCacheCleaner):
17422        * editing/EditingStyle.cpp:
17423        (HTMLElementEquivalent):
17424        * editing/SpellChecker.h:
17425        (SpellChecker):
17426        * fileapi/ThreadableBlobRegistry.cpp:
17427        (BlobRegistryContext):
17428        * html/FormAssociatedElement.cpp:
17429        (FormAttributeTargetObserver):
17430        * html/FormController.h:
17431        (FormController):
17432        * html/HTMLInputElement.cpp:
17433        (ListAttributeTargetObserver):
17434        * html/PublicURLManager.h:
17435        (PublicURLManager):
17436        * html/StepRange.h:
17437        (StepDescription):
17438        * html/ValidationMessage.h:
17439        (ValidationMessage):
17440        * html/canvas/WebGLExtension.h:
17441        (WebGLExtension):
17442        * html/canvas/WebGLRenderingContext.cpp:
17443        (WebCore):
17444        (WebGLRenderingContextLostCallback):
17445        (WebGLRenderingContextErrorMessageCallback):
17446        * html/parser/HTMLElementStack.h:
17447        (ElementRecord):
17448        * html/parser/HTMLMetaCharsetParser.h:
17449        (HTMLMetaCharsetParser):
17450        * inspector/DOMEditor.h:
17451        (DOMEditor):
17452        * inspector/InjectedScriptHost.h:
17453        (InspectableObject):
17454        * inspector/InjectedScriptManager.h:
17455        (InjectedScriptManager):
17456        * inspector/InspectorCSSAgent.cpp:
17457        (SelectorProfile):
17458        * inspector/InspectorCounters.h:
17459        (ThreadLocalInspectorCounters):
17460        * inspector/InspectorDOMAgent.cpp:
17461        (RevalidateStyleAttributeTask):
17462        * inspector/InspectorFrontendClientLocal.cpp:
17463        (InspectorBackendDispatchTask):
17464        * inspector/InspectorHistory.h:
17465        (InspectorHistory):
17466        (Action):
17467        * inspector/InspectorOverlay.h:
17468        (HighlightConfig):
17469        (InspectorOverlay):
17470        * inspector/InspectorState.h:
17471        (InspectorState):
17472        * inspector/InspectorStyleSheet.cpp:
17473        (ParsedStyleSheet):
17474        * inspector/InspectorWorkerAgent.cpp:
17475        (InspectorWorkerAgent::WorkerFrontendChannel):
17476        * inspector/NetworkResourcesData.h:
17477        (NetworkResourcesData):
17478        (ResourceData):
17479        * inspector/WorkerInspectorController.cpp:
17480        * loader/EmptyClients.h:
17481        (EmptyChromeClient):
17482        * loader/ResourceLoadScheduler.h:
17483        (ResourceLoadScheduler):
17484        (HostInformation):
17485        * loader/icon/IconDatabase.cpp:
17486        (DefaultIconDatabaseClient):
17487        (ClientWorkItem):
17488        * page/ContentSecurityPolicy.cpp:
17489        (CSPDirectiveList):
17490        * page/ContentSecurityPolicy.h:
17491        (ContentSecurityPolicy):
17492        * page/FrameActionScheduler.h:
17493        (FrameActionScheduler):
17494        * page/MemoryInfo.cpp:
17495        (HeapSizeCache):
17496        * platform/CalculationValue.h:
17497        (CalcExpressionNode):
17498        * platform/Cursor.h:
17499        (Cursor):
17500        * platform/Decimal.h:
17501        (Decimal):
17502        * platform/Length.cpp:
17503        (CalculationValueHandleMap):
17504        * platform/MemoryPressureHandler.h:
17505        (MemoryPressureHandler):
17506        * platform/PlatformKeyboardEvent.h:
17507        (PlatformKeyboardEvent):
17508        * platform/ScrollAnimator.h:
17509        (ScrollAnimator):
17510        * platform/graphics/GlyphPageTreeNode.h:
17511        (GlyphPageTreeNode):
17512        * platform/graphics/GraphicsContext.h:
17513        (GraphicsContextStateSaver):
17514        * platform/graphics/GraphicsLayer.h:
17515        (AnimationValue):
17516        * platform/graphics/IntRect.h:
17517        (IntRect):
17518        * platform/graphics/ShadowBlur.cpp:
17519        (ScratchBuffer):
17520        * platform/graphics/TextRun.h:
17521        (TextRun):
17522        * platform/graphics/TiledBackingStoreBackend.h:
17523        (TiledBackingStoreBackend):
17524        * platform/graphics/WidthIterator.h:
17525        (WidthIterator):
17526        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
17527        (StreamingClient):
17528        * platform/graphics/opengl/Extensions3DOpenGL.h:
17529        (Extensions3DOpenGL):
17530        * platform/graphics/texmap/TextureMapper.h:
17531        (TextureMapper):
17532        * platform/graphics/texmap/TextureMapperGL.cpp:
17533        (TextureMapperGLData):
17534        * platform/graphics/texmap/TextureMapperImageBuffer.h:
17535        (TextureMapperImageBuffer):
17536        * platform/graphics/texmap/TextureMapperLayer.h:
17537        (TextureMapperLayer):
17538        * platform/image-decoders/bmp/BMPImageReader.h:
17539        (BMPImageReader):
17540        * platform/image-decoders/gif/GIFImageReader.h:
17541        (GIFFrameReader):
17542        (GIFImageReader):
17543        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
17544        (JPEGImageReader):
17545        * platform/image-decoders/png/PNGImageDecoder.cpp:
17546        (PNGImageReader):
17547        * platform/network/BlobRegistryImpl.h:
17548        (BlobRegistryImpl):
17549        * platform/network/ResourceResponseBase.h:
17550        (CrossThreadResourceResponseDataBase):
17551        * platform/text/TextCodecICU.h:
17552        (ICUConverterWrapper):
17553        * rendering/FlowThreadController.h:
17554        (FlowThreadController):
17555        * rendering/RenderBoxRegionInfo.h:
17556        (RenderBoxRegionInfo):
17557        * rendering/RenderLayer.h:
17558        (ClipRects):
17559        (ClipRectsCache):
17560        * rendering/RenderLayerCompositor.h:
17561        (RenderLayerCompositor):
17562        * rendering/WrapShapeInfo.h:
17563        (WrapShapeInfo):
17564        * rendering/style/NinePieceImage.h:
17565        (NinePieceImageData):
17566        * rendering/svg/RenderSVGResourceFilter.h:
17567        (FilterData):
17568        * rendering/svg/RenderSVGResourceGradient.h:
17569        (GradientData):
17570        * rendering/svg/RenderSVGResourcePattern.h:
17571        (PatternData):
17572        * rendering/svg/SVGResources.h:
17573        (ClipperFilterMaskerData):
17574        (MarkerData):
17575        (FillStrokeData):
17576        * svg/SVGAngle.h:
17577        (SVGAngle):
17578        * svg/SVGLength.h:
17579        (SVGLength):
17580        * svg/SVGPreserveAspectRatio.h:
17581        (SVGPreserveAspectRatio):
17582        * svg/graphics/SVGImageCache.h:
17583        (SVGImageCache):
17584        * svg/properties/SVGPropertyInfo.h:
17585        (SVGPropertyInfo):
17586        * workers/WorkerEventQueue.h:
17587        (WorkerEventQueue):
17588        * xml/parser/MarkupTokenBase.h:
17589        (DoctypeDataBase):
17590        * xml/parser/XMLDocumentParserLibxml2.cpp:
17591        (PendingCallbacks):
17592        (OffsetBuffer):
17593        * xml/parser/XMLToken.h:
17594        (XMLDeclarationData):
17595
175962012-09-14  Andrey Adaikin  <aandrey@chromium.org>
17597
17598        Web Inspector: [WebGL] Refactoring: move the proxy wrapping method up to the base class
17599        https://bugs.webkit.org/show_bug.cgi?id=96515
17600
17601        Reviewed by Vsevolod Vlasov.
17602
17603        Move the proxyObject() method up from WebGLRenderingContextResource to the Resource class, so that it could be reused later for wrapping a 2D context.
17604
17605        * inspector/InjectedScriptWebGLModuleSource.js:
17606        (.):
17607
176082012-09-14  Kangil Han  <kangil.han@samsung.com>
17609
17610        Fix unused parameter compile warnings in WebCore.
17611        https://bugs.webkit.org/show_bug.cgi?id=96712
17612
17613        Reviewed by Ryosuke Niwa.
17614
17615        Fixed unused parameter compile warning messages(-Wunused-parameter) during EFL build.
17616        There are two kinds of stuff related to this warnings.
17617        First one is that the parameter value has not been used anywhere inside the function.
17618        Other one is that usability of parameter value is depended on option, i.e. ACCESSIBILITY.
17619
17620        * accessibility/AXObjectCache.h:
17621        (WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility):
17622        (WebCore::AXObjectCache::postNotification):
17623        * inspector/InspectorPageAgent.cpp:
17624        (WebCore::InspectorPageAgent::setGeolocationOverride):
17625        * loader/FrameLoaderClient.h:
17626        (WebCore::FrameLoaderClient::registerIntentService):
17627        * page/Frame.cpp:
17628        (WebCore::Frame::layerTreeAsText):
17629        * page/FrameView.cpp:
17630        (WebCore::FrameView::setScrollingPerformanceLoggingEnabled):
17631        * page/efl/EventHandlerEfl.cpp:
17632        (WebCore::EventHandler::tabsToAllFormControls):
17633        (WebCore::EventHandler::passMouseDownEventToWidget):
17634        * page/scrolling/ScrollingCoordinator.cpp:
17635        (WebCore::scrollLayerForFrameView):
17636        * platform/RuntimeApplicationChecks.cpp:
17637        (WebCore::mainBundleIsEqualTo):
17638        * platform/ScrollView.cpp:
17639        (WebCore::ScrollView::platformSetScrollOrigin):
17640        * platform/cairo/WidgetBackingStoreCairo.cpp:
17641        (WebCore::createSurfaceForBackingStore):
17642        * platform/efl/ContextMenuEfl.cpp:
17643        (WebCore::platformMenuDescription):
17644        * platform/efl/ContextMenuItemEfl.cpp:
17645        (WebCore::ContextMenuItem::ContextMenuItem):
17646        * platform/efl/DragDataEfl.cpp:
17647        (WebCore::DragData::asFilenames):
17648        (WebCore::DragData::containsURL):
17649        (WebCore::DragData::asURL):
17650        * platform/efl/GamepadsEfl.cpp:
17651        (WebCore::GamepadsEfl::onGamePadChange):
17652        * platform/efl/LocalizedStringsEfl.cpp:
17653        (WebCore::imageTitle):
17654        (WebCore::localizedMediaControlElementString):
17655        (WebCore::localizedMediaControlElementHelpText):
17656        (WebCore::localizedMediaTimeDescription):
17657        * platform/efl/PasteboardEfl.cpp:
17658        (WebCore::Pasteboard::writeSelection):
17659        (WebCore::Pasteboard::writeImage):
17660        (WebCore::Pasteboard::documentFragment):
17661        * platform/efl/PlatformScreenEfl.cpp:
17662        (WebCore::screenRect):
17663        * platform/efl/RenderThemeEfl.cpp:
17664        (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
17665        (WebCore::RenderThemeEfl::systemFont):
17666        (WebCore::RenderThemeEfl::paintMediaSliderThumb):
17667        (WebCore::RenderThemeEfl::paintMediaVolumeSliderContainer):
17668        (WebCore::RenderThemeEfl::paintMediaVolumeSliderTrack):
17669        (WebCore::RenderThemeEfl::paintMediaVolumeSliderThumb):
17670        (WebCore::RenderThemeEfl::paintMediaCurrentTime):
17671        * platform/efl/ScrollbarEfl.cpp:
17672        (scrollbarEflEdjeMessage):
17673        * platform/efl/ScrollbarThemeEfl.cpp:
17674        (WebCore::ScrollbarThemeEfl::scrollbarThickness):
17675        (WebCore::ScrollbarThemeEfl::registerScrollbar):
17676        (WebCore::ScrollbarThemeEfl::unregisterScrollbar):
17677        * platform/efl/TemporaryLinkStubs.cpp:
17678        (WebCore::signedPublicKeyAndChallengeString):
17679        * platform/efl/WidgetEfl.cpp:
17680        (WebCore::Widget::setFocus):
17681        (WebCore::Widget::paint):
17682        * platform/graphics/GraphicsContext.cpp:
17683        (WebCore::GraphicsContext::setPlatformTextDrawingMode):
17684        * platform/graphics/ImageSource.cpp:
17685        (WebCore::ImageSource::orientationAtIndex):
17686        * platform/graphics/MediaPlayer.cpp:
17687        (WebCore::MediaPlayer::supportsType):
17688        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
17689        (WebCore::Font::drawComplexText):
17690        * platform/graphics/cairo/GraphicsContextCairo.cpp:
17691        (WebCore::adjustFocusRingLineWidth):
17692        (WebCore::GraphicsContext::drawLineForText):
17693        (WebCore::GraphicsContext::setPlatformFillColor):
17694        (WebCore::GraphicsContext::setPlatformStrokeColor):
17695        (WebCore::GraphicsContext::setURLForRect):
17696        (WebCore::GraphicsContext::setPlatformShadow):
17697        (WebCore::GraphicsContext::fillRoundedRect):
17698        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
17699        (WebCore::GraphicsContextPlatformPrivate::syncContext):
17700        * platform/graphics/cairo/ImageBufferCairo.cpp:
17701        (WebCore::ImageBufferData::ImageBufferData):
17702        * platform/graphics/cairo/ImageCairo.cpp:
17703        (WebCore::Image::drawPattern):
17704        * platform/graphics/efl/IconEfl.cpp:
17705        (WebCore::Icon::createIconForFiles):
17706        (WebCore::Icon::paint):
17707        * platform/graphics/freetype/FontCacheFreeType.cpp:
17708        (WebCore::FontCache::getSimilarFontPlatformData):
17709        (WebCore::FontCache::getTraitsInFamily):
17710        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
17711        (WebCore::gstGWorldSyncMessageCallback):
17712        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
17713        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
17714        (webkitVideoSinkMarshalVoidAndMiniObject):
17715        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
17716        (webKitWebSrcUriHandlerInit):
17717        (webKitWebSrcNeedDataCb):
17718        (webKitWebSrcEnoughDataCb):
17719        (webKitWebSrcSeekDataCb):
17720        (StreamingClient::didReceiveData):
17721        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
17722        (WebCore::harfbuzzGetGlyph):
17723        (WebCore::harfbuzzGetGlyphHorizontalAdvance):
17724        (WebCore::harfbuzzGetGlyphHorizontalOrigin):
17725        (WebCore::harfbuzzGetGlyphExtents):
17726        (WebCore::harfbuzzCairoGetTable):
17727        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
17728        (WebCore::readColorProfile):
17729        (WebCore::init_source):
17730        (WebCore::fill_input_buffer):
17731        * platform/image-decoders/png/PNGImageDecoder.cpp:
17732        (WebCore::PNGImageDecoder::rowAvailable):
17733        * platform/network/soup/CookieStorageSoup.cpp:
17734        (WebCore::setCookieStoragePrivateBrowsingEnabled):
17735        * platform/network/soup/DNSSoup.cpp:
17736        (WebCore::resolvedCallback):
17737        * platform/network/soup/ProxyResolverSoup.cpp:
17738        (soup_proxy_resolver_wk_init):
17739        (soupProxyResolverWkGetProxyURIAsync):
17740        (soupProxyResolverWkGetProxyURISync):
17741        * platform/network/soup/ResourceHandleSoup.cpp:
17742        (WebCore::sendRequestCallback):
17743        (WebCore::addFormElementsToSoupMessage):
17744        (WebCore::requestStartedCallback):
17745        (WebCore::closeCallback):
17746        (WebCore::readCallback):
17747        * rendering/RenderTheme.cpp:
17748        (WebCore::RenderTheme::adjustRepaintRect):
17749
177502012-09-14  Charles Wei  <charles.wei@torchmobile.com.cn>
17751
17752        Need to clear exception in JSDictionary for operations that might have.
17753        https://bugs.webkit.org/show_bug.cgi?id=96614
17754
17755        Reviewed by Kentaro Hara.
17756
17757        Clear the exception if failed to convert the value inside the JSDictionary. 
17758        Otherwise, it might impact the following operations on the dictionary.
17759
17760        No new tests, the existing test at LayoutTest/storage/indexeddb/tutorial.html should work for JSC binding.
17761
17762        * bindings/js/JSDictionary.h:
17763        (WebCore::JSDictionary::tryGetPropertyAndResult):
17764
177652012-09-14  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
17766
17767        Add method to get the list of all available dictionaries
17768        https://bugs.webkit.org/show_bug.cgi?id=96518
17769
17770        Reviewed by Carlos Garcia Campos.
17771
17772        There is lack of the method in the TextCheckerEnchant class to get
17773        the list of all available/installed dictionaries. To set the
17774        dictionaries the client has to 'guess/hard code' the names of
17775        dictionaries that are not obvious and depend on OS configuration
17776        and installed packages. The list can be used by WebKit's GTK and
17777        EFL API for instance:
17778        webkit_web_context_set_spell_checking_languages(),
17779        ewk_text_checker_setting_spell_checking_languages_set()
17780        to set dictionaries used by Enchant.
17781
17782        To avoid names conflict a new one has been introduced for former
17783        getSpellCheckingLanguages. It has been changed to loadedSpellCheckingLanguages
17784        as it gets the current (in use) dictionaries. Additionally the 'get' prefix
17785        has been removed according to WebKit coding style.
17786
17787        * platform/text/enchant/TextCheckerEnchant.cpp:
17788        (TextCheckerEnchant::loadedSpellCheckingLanguages):
17789        Changed name from getSpellCheckingLanguages and added const modifier.
17790
17791        (TextCheckerEnchant::availableSpellCheckingLanguages):
17792        A newly added method to get available/installed dictionaries.
17793        Its output can be used as input for updateSpellCheckingLanguages().
17794
17795        * platform/text/enchant/TextCheckerEnchant.h:
17796        (TextCheckerEnchant):
17797
177982012-09-14  Dan Carney  <dcarney@google.com>
17799
17800        Remove V8DOMWindowShell::getEntered
17801        https://bugs.webkit.org/show_bug.cgi?id=96637
17802
17803        Reviewed by Adam Barth.
17804
17805        V8DOMWindowShell::getEntered was refactored so that the window shell
17806        no longer has to be kept alive by a v8 context but rather a smaller
17807        object.
17808
17809        No new tests. No change in functionality.
17810
17811        * bindings/v8/DOMData.cpp:
17812        (WebCore::DOMData::getCurrentStore):
17813        * bindings/v8/ScopedPersistent.h:
17814        (WebCore::ScopedPersistent::leakHandle):
17815        (ScopedPersistent):
17816        * bindings/v8/ScriptController.cpp:
17817        (WebCore::ScriptController::resetIsolatedWorlds):
17818        (WebCore::ScriptController::evaluateInIsolatedWorld):
17819        (WebCore::ScriptController::currentWorldContext):
17820        * bindings/v8/V8Binding.cpp:
17821        (WebCore::perContextDataForCurrentWorld):
17822        * bindings/v8/V8DOMWindowShell.cpp:
17823        (WebCore::setIsolatedWorldField):
17824        (WebCore::V8DOMWindowShell::toIsolatedContextData):
17825        (WebCore::isolatedContextWeakCallback):
17826        (WebCore::V8DOMWindowShell::disposeContext):
17827        (WebCore::V8DOMWindowShell::clearIsolatedShell):
17828        (WebCore):
17829        (WebCore::V8DOMWindowShell::initializeIfNeeded):
17830        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
17831        * bindings/v8/V8DOMWindowShell.h:
17832        (V8DOMWindowShell):
17833        (IsolatedContextData):
17834        (WebCore::V8DOMWindowShell::IsolatedContextData::create):
17835        (WebCore::V8DOMWindowShell::IsolatedContextData::world):
17836        (WebCore::V8DOMWindowShell::IsolatedContextData::perContextData):
17837        (WebCore::V8DOMWindowShell::IsolatedContextData::setSecurityOrigin):
17838        (WebCore::V8DOMWindowShell::IsolatedContextData::securityOrigin):
17839        (WebCore::V8DOMWindowShell::IsolatedContextData::IsolatedContextData):
17840        (WebCore::V8DOMWindowShell::enteredIsolatedContext):
17841        (WebCore::V8DOMWindowShell::enteredIsolatedContextData):
17842        * bindings/v8/V8DOMWrapper.h:
17843        (WebCore::V8DOMWrapper::getCachedWrapper):
17844        * bindings/v8/WorldContextHandle.cpp:
17845        (WebCore::WorldContextHandle::WorldContextHandle):
17846        * bindings/v8/custom/V8DocumentCustom.cpp:
17847        (WebCore::toV8):
17848        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
17849        (WebCore::toV8):
17850        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
17851        (WebCore::toV8):
17852        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
17853        (WebCore::V8XMLHttpRequest::constructorCallback):
17854
178552012-09-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
17856
17857        Unreviewed, rolling out r128507.
17858        http://trac.webkit.org/changeset/128507
17859        https://bugs.webkit.org/show_bug.cgi?id=96659
17860
17861        Revert. r128507 makes too many crashes in EFL layout test bots.
17862
17863        * PlatformEfl.cmake:
17864        * platform/efl/RefPtrEfl.cpp: Renamed from Source/WTF/wtf/efl/RefPtrEfl.cpp.
17865        (WTF):
17866        (WTF::refIfNotNull):
17867        (WTF::derefIfNotNull):
17868        * platform/efl/RefPtrEfl.h: Renamed from Source/WTF/wtf/efl/RefPtrEfl.h.
17869        (WTF):
17870        * platform/efl/RenderThemeEfl.cpp:
17871        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
17872        (WebCore::RenderThemeEfl::loadTheme):
17873        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
17874        * platform/efl/RenderThemeEfl.h:
17875        (RenderThemeEfl):
17876        (ThemePartCacheEntry):
17877
178782012-09-13  Patrick Gansterer  <paroga@webkit.org>
17879
17880        Reuse floating point formatting of TextStream in [SVG]RenderTreeAsText.cpp
17881        https://bugs.webkit.org/show_bug.cgi?id=96264
17882
17883        Reviewed by Benjamin Poulain.
17884
17885        RenderTreeAsText uses the same format for streaming out floats as TextStream
17886        does. Replace formatNumberRespectingIntegers() with a new overload to the
17887        operator<< to reuse the special cases for numbers which take advantage of
17888        StringBuilder::appendNumber() and avoid a temporary StringImpl.
17889
17890        * platform/text/TextStream.cpp:
17891        (WebCore::hasFractions):
17892        (WebCore::TextStream::operator<<):
17893        * platform/text/TextStream.h:
17894        * rendering/RenderTreeAsText.cpp:
17895        (WebCore::operator<<):
17896        * rendering/RenderTreeAsText.h:
17897        * rendering/svg/SVGRenderTreeAsText.cpp:
17898        (WebCore::operator<<):
17899
179002012-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
17901
17902        Unreviewed, rolling out r128552.
17903        http://trac.webkit.org/changeset/128552
17904        https://bugs.webkit.org/show_bug.cgi?id=96729
17905
17906        Still breaks the test on chromium linux debug. It's quite
17907        annoying. (Requested by rniwa on #webkit).
17908
17909        * WebCore.exp.in:
17910        * dom/ContainerNode.cpp:
17911        (WebCore::ContainerNode::removeChild):
17912        (WebCore::ContainerNode::removeChildren):
17913        * dom/Document.cpp:
17914        (WebCore::Document::recalcStyle):
17915        * dom/Element.cpp:
17916        (WebCore::Element::attach):
17917        (WebCore::Element::detach):
17918        * page/mac/EventHandlerMac.mm:
17919        (WebCore::EventHandler::passMouseDownEventToWidget):
17920        * rendering/RenderWidget.cpp:
17921        (WebCore):
17922        (WebCore::widgetNewParentMap):
17923        (WebCore::RenderWidget::suspendWidgetHierarchyUpdates):
17924        (WebCore::RenderWidget::resumeWidgetHierarchyUpdates):
17925        (WebCore::moveWidgetToParentSoon):
17926        * rendering/RenderWidget.h:
17927        (RenderWidget):
17928
179292012-09-13  Kevin Funk  <kevin.funk@kdab.com>
17930
17931        Make compile with both OS(WINCE) and PLATFORM(QT) support
17932        https://bugs.webkit.org/show_bug.cgi?id=95536
17933
17934        Reviewed by Simon Hausmann.
17935
17936        * WebCore.pri:
17937        Set defines for the WinCE platform build
17938        * platform/graphics/BitmapImage.cpp:
17939        Use default implementation in BitmapImage::reportMemoryUsage() when Qt support available
17940        * platform/graphics/GraphicsContext.cpp:
17941        Same as above: use default implementation
17942         * platform/win/ClipboardUtilitiesWin.cpp:
17943        Remove unnecessary include
17944
179452012-09-13  Keishi Hattori  <keishi@webkit.org>
17946
17947        Create Localizer factory method for LocaleWin
17948        https://bugs.webkit.org/show_bug.cgi?id=96667
17949
17950        Reviewed by Kent Tamura.
17951
17952        Preparing to use Localizer instead of LocaleMac/Win/ICU.
17953
17954        No new tests. No behavior change.
17955
17956        * platform/text/LocaleWin.cpp:
17957        (WebCore):
17958        (WebCore::extractLanguageCode): Extract the language code from a locale.
17959        (WebCore::LCIDFromLocaleInternal): Returns LCID for a given locale. Returns 0 when locale is invalid.
17960        (WebCore::LCIDFromLocale): Returns LCID for a given locale. Returns default language LCID when locale is invalid.
17961        (WebCore::Localizer::create):
17962        (WebCore::LocaleWin::currentLocale):
17963
179642012-09-13  Ryosuke Niwa  <rniwa@webkit.org>
17965
17966        suspend/resumeWidgetHierarchyUpdates should be a RAII object
17967        https://bugs.webkit.org/show_bug.cgi?id=96706
17968
17969        Reviewed by Simon Fraser.
17970
17971        Replaced suspendWidgetHierarchyUpdates and resumeWidgetHierarchyUpdates by WidgetHierarchyUpdatesSuspensionScope.
17972
17973        * WebCore.exp.in: Export new symbols.
17974        * dom/ContainerNode.cpp:
17975        (WebCore::ContainerNode::removeChild):
17976        (WebCore::ContainerNode::removeChildren):
17977        * dom/Document.cpp:
17978        (WebCore::Document::recalcStyle):
17979        * dom/Element.cpp:
17980        (WebCore::Element::attach):
17981        (WebCore::Element::detach):
17982        * page/mac/EventHandlerMac.mm:
17983        (WebCore::EventHandler::passMouseDownEventToWidget):
17984        * rendering/RenderWidget.cpp:
17985        (WebCore):
17986        (WebCore::WidgetHierarchyUpdatesSuspensionScope::widgetNewParentMap):
17987        (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
17988        (WebCore::moveWidgetToParentSoon):
17989        * rendering/RenderWidget.h:
17990        (WidgetHierarchyUpdatesSuspensionScope):
17991        (WebCore::WidgetHierarchyUpdatesSuspensionScope::WidgetHierarchyUpdatesSuspensionScope):
17992        (WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope):
17993        (WebCore::WidgetHierarchyUpdatesSuspensionScope::isSuspended):
17994        (WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove):
17995        (WebCore):
17996        (RenderWidget):
17997
179982012-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
17999
18000        Unreviewed, rolling out r128543.
18001        http://trac.webkit.org/changeset/128543
18002        https://bugs.webkit.org/show_bug.cgi?id=96722
18003
18004        Caused LocaleWinTest.localizedNumberRoundTrip to fail
18005        (Requested by keishi on #webkit).
18006
18007        * platform/text/LocaleWin.cpp:
18008        (WebCore::determineCurrentLCID):
18009        (WebCore):
18010        (WebCore::LocaleWin::currentLocale):
18011
180122012-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
18013
18014        Unreviewed, rolling out r128531.
18015        http://trac.webkit.org/changeset/128531
18016        https://bugs.webkit.org/show_bug.cgi?id=96719
18017
18018        plugins/document-open.html crash on Chromium-Linux (Requested
18019        by tkent1 on #webkit).
18020
18021        * WebCore.exp.in:
18022        * dom/ContainerNode.cpp:
18023        (WebCore::ContainerNode::removeChild):
18024        (WebCore::ContainerNode::removeChildren):
18025        * dom/Document.cpp:
18026        (WebCore::Document::recalcStyle):
18027        * dom/Element.cpp:
18028        (WebCore::Element::attach):
18029        (WebCore::Element::detach):
18030        * page/mac/EventHandlerMac.mm:
18031        (WebCore::EventHandler::passMouseDownEventToWidget):
18032        * rendering/RenderWidget.cpp:
18033        (WebCore):
18034        (WebCore::widgetNewParentMap):
18035        (WebCore::RenderWidget::suspendWidgetHierarchyUpdates):
18036        (WebCore::RenderWidget::resumeWidgetHierarchyUpdates):
18037        (WebCore::moveWidgetToParentSoon):
18038        * rendering/RenderWidget.h:
18039        (RenderWidget):
18040
180412012-09-13  Keishi Hattori  <keishi@webkit.org>
18042
18043        Create Localizer factory method for LocaleWin
18044        https://bugs.webkit.org/show_bug.cgi?id=96667
18045
18046        Reviewed by Kent Tamura.
18047
18048        Preparing to use Localizer instead of LocaleMac/Win/ICU.
18049
18050        No new tests. Covered in LocaleWinTest.cpp.
18051
18052        * platform/text/LocaleWin.cpp:
18053        (WebCore):
18054        (WebCore::extractLanguageCode): Extract the language code from a locale.
18055        (WebCore::LCIDFromLocaleInternal): Returns LCID for a given locale. Returns 0 when locale is invalid.
18056        (WebCore::LCIDFromLocale): Returns LCID for a given locale. Returns default language LCID when locale is invalid.
18057        (WebCore::Localizer::create):
18058        (WebCore::LocaleWin::currentLocale):
18059
180602012-09-13  Benjamin Poulain  <bpoulain@apple.com>
18061
18062        Improve the SourceProvider hierarchy
18063        https://bugs.webkit.org/show_bug.cgi?id=95635
18064
18065        Reviewed by Geoffrey Garen.
18066
18067        Get rid of ScriptSourceProvider and StringSourceProvider, they have been made
18068        useless by JavaScript updates.
18069
18070        On x86_64, this reduces the binary size by 6kb.
18071
18072        * GNUmakefile.list.am:
18073        * Target.pri:
18074        * WebCore.gypi:
18075        * WebCore.vcproj/WebCore.vcproj:
18076        * WebCore.xcodeproj/project.pbxproj:
18077        * bindings/js/CachedScriptSourceProvider.h:
18078        (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
18079        * bindings/js/ScriptDebugServer.cpp:
18080        (WebCore::ScriptDebugServer::updateCurrentStatementPosition):
18081        (WebCore::ScriptDebugServer::dispatchDidParseSource):
18082        (WebCore::ScriptDebugServer::dispatchFailedToParseSource):
18083        * bindings/js/ScriptSourceCode.h:
18084        (WebCore::ScriptSourceCode::ScriptSourceCode):
18085        (ScriptSourceCode):
18086        * bindings/js/ScriptSourceProvider.h: Removed.
18087        * bindings/js/StringSourceProvider.h: Removed.
18088        * bindings/js/WorkerScriptController.cpp:
18089        * bindings/objc/WebScriptObject.mm:
18090        * bridge/NP_jsobject.cpp:
18091        * bridge/jni/jni_jsobject.mm:
18092
180932012-09-13  Joshua Bell  <jsbell@chromium.org>
18094
18095        IndexedDB: Consolidate two-phase connection to avoid race conditions
18096        https://bugs.webkit.org/show_bug.cgi?id=90411
18097
18098        Reviewed by Tony Chang.
18099
18100        Previously, IDB connections were opened by having the front-end (1) call through to
18101        a back-end open() method, eventually receive a success message with a back-end object
18102        handle, and (2) call into the back-end object to register front-end callbacks. This left
18103        the back-end's notion of an open connection in a limbo state between these two calls.
18104        In multi-process ports, a crash of the front-end process could leave the back-end wedged
18105        waiting for this second call (e.g. can't delete until all connections are closed).
18106
18107        Simplify this by having the front-end pass through the callbacks into the back-end
18108        during the initial open() call, which eliminates the limbo state.
18109
18110        No new tests - no functional changes. Chromium port's webkit_unit_tests updated.
18111
18112        * Modules/indexeddb/IDBDatabase.cpp:
18113        (WebCore::IDBDatabase::create):
18114        (WebCore::IDBDatabase::IDBDatabase): Db-callbacks is available at creation time.
18115        (WebCore::IDBDatabase::~IDBDatabase):
18116        * Modules/indexeddb/IDBDatabase.h:
18117        (IDBDatabase):
18118        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
18119        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create): Need to track db-callbacks as well.
18120        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::databaseCallbacks):
18121        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
18122        (IDBDatabaseBackendImpl::PendingOpenCall):
18123        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create): Ditto.
18124        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::databaseCallbacks):
18125        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
18126        (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
18127        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
18128        (WebCore::IDBDatabaseBackendImpl::setVersion):
18129        (WebCore::IDBDatabaseBackendImpl::connectionCount): Don't need to count limbo connections any more.
18130        (WebCore::IDBDatabaseBackendImpl::processPendingCalls): Pass through db-callbacks.
18131        (WebCore::IDBDatabaseBackendImpl::openConnection): No more limbo connections (yay!).
18132        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction): Pass through db-callbacks.
18133        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion): Ditto.
18134        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Style.
18135        (WebCore::IDBDatabaseBackendImpl::close): Resolve FIXME about connectionCount.
18136        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
18137        (IDBDatabaseBackendImpl):
18138        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
18139        (IDBDatabaseBackendInterface):
18140        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
18141        (WebCore::IDBDatabaseCallbacksImpl::create):
18142        (WebCore::IDBDatabaseCallbacksImpl::IDBDatabaseCallbacksImpl):
18143        (WebCore::IDBDatabaseCallbacksImpl::connect):
18144        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
18145        (IDBDatabaseCallbacksImpl):
18146        * Modules/indexeddb/IDBFactory.cpp:
18147        (WebCore::IDBFactory::open): Mint the db-callbacks here...
18148        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
18149        (WebCore::IDBFactoryBackendImpl::open): ...passed through to here...
18150        * Modules/indexeddb/IDBFactoryBackendImpl.h:
18151        (IDBFactoryBackendImpl):
18152        * Modules/indexeddb/IDBFactoryBackendInterface.h:
18153        (IDBFactoryBackendInterface):
18154        * Modules/indexeddb/IDBOpenDBRequest.cpp:
18155        (WebCore::IDBOpenDBRequest::create): ...all the way to here...
18156        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
18157        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): ...and finally hooked up here.
18158        (WebCore::IDBOpenDBRequest::onSuccess): (or here, if no upgrade needed).
18159        * Modules/indexeddb/IDBOpenDBRequest.h:
18160        (WebCore):
18161        (IDBOpenDBRequest):
18162        * Modules/indexeddb/IDBTransaction.cpp:
18163        (WebCore::IDBTransaction::onAbort): Tweak event/notification ordering; the
18164        notifying the database that the transaction is finished may unblock closing,
18165        which fires more events, and the delivery matters. Previously the close would
18166        be blocked by the transaction which gave the desired order.
18167        (WebCore::IDBTransaction::onComplete): Ditto.
18168        * inspector/InspectorIndexedDBAgent.cpp: New hookup logic.
18169        (WebCore):
18170
181712012-09-13  Ryosuke Niwa  <rniwa@webkit.org>
18172
18173        suspend/resumeWidgetHierarchyUpdates should be a RAII object
18174        https://bugs.webkit.org/show_bug.cgi?id=96706
18175
18176        Reviewed by Simon Fraser.
18177
18178        Replaced suspendWidgetHierarchyUpdates and resumeWidgetHierarchyUpdates by WidgetHierarchyUpdatesSuspensionScope.
18179
18180        * WebCore.exp.in: Export new symbols.
18181        * dom/ContainerNode.cpp:
18182        (WebCore::ContainerNode::removeChild):
18183        (WebCore::ContainerNode::removeChildren):
18184        * dom/Document.cpp:
18185        (WebCore::Document::recalcStyle):
18186        * dom/Element.cpp:
18187        (WebCore::Element::attach):
18188        (WebCore::Element::detach):
18189        * page/mac/EventHandlerMac.mm:
18190        (WebCore::EventHandler::passMouseDownEventToWidget):
18191        * rendering/RenderWidget.cpp:
18192        (WebCore):
18193        (WebCore::WidgetHierarchyUpdatesSuspensionScope::widgetNewParentMap):
18194        (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
18195        (WebCore::moveWidgetToParentSoon):
18196        * rendering/RenderWidget.h:
18197        (WidgetHierarchyUpdatesSuspensionScope):
18198        (WebCore::WidgetHierarchyUpdatesSuspensionScope::WidgetHierarchyUpdatesSuspensionScope):
18199        (WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope):
18200        (WebCore::WidgetHierarchyUpdatesSuspensionScope::isSuspended):
18201        (WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove):
18202        (WebCore):
18203        (RenderWidget):
18204
182052012-09-13  Simon Fraser  <simon.fraser@apple.com>
18206
18207        Lots of repaints in the top left tile on this site
18208        https://bugs.webkit.org/show_bug.cgi?id=96698
18209
18210        Reviewed by Anders Carlsson.
18211
18212        When given a rect outside of the current tile coverage rect,
18213        TileCache::setNeedsDisplayInRect() would try to invalidate the
18214        top left tile. This would normally be a no-op, except when repaint
18215        counters are visible, in which case it would invalidate the counter
18216        area.
18217        
18218        Fix by doing an early return if the intersection between the repaint
18219        rect and the tile coverage rect is empty.
18220
18221        * platform/graphics/ca/mac/TileCache.mm:
18222        (WebCore::TileCache::setNeedsDisplayInRect):
18223
182242012-09-13  Mark Rowe  <mrowe@apple.com>
18225
18226        <rdar://problem/12283706> WebKit looks for some files on the system even when building against an SDK.
18227
18228        Reviewed by David Kilzer.
18229
18230        If an SDK is being used, pass it through to our custom invocations of the preprocessor.
18231
18232        * DerivedSources.make:
18233
182342012-09-13  Tom Sepez  <tsepez@chromium.org>
18235
18236        ASSERT(!eventDispatchForbidden()) fires when removed plugin re-inserted as part of readyStateChange.
18237        https://bugs.webkit.org/show_bug.cgi?id=93639
18238
18239        Reviewed by Ryosuke Niwa.
18240
18241        Removing a plugin causes a detach which can cancel the last remaining load on a page,
18242        resulting in a readyStateChange event during a time when things are inconsisent. Defer
18243        the detach which triggers this chain of events until after the node is fully removed
18244        from the document's elementsById map.
18245
18246        Test: plugins/plugin-remove-readystatechange.html
18247
18248        * dom/ContainerNode.cpp:
18249        (WebCore::ContainerNode::removeChild):
18250        (WebCore::ContainerNode::removeChildren):
18251
182522012-09-13  Tim Horton  <timothy_horton@apple.com>
18253
18254        Add optional debug logging when we fall into/out of threaded scrolling
18255        https://bugs.webkit.org/show_bug.cgi?id=93898
18256        <rdar://problem/12089098>
18257
18258        Reviewed by Simon Fraser.
18259
18260        Add logging when we enter and exit the threaded scrolling mode, and logs the reasons we
18261        fall into main-thread scrolling.
18262
18263        The logging output looks like this:
18264            SCROLLING: Switching to main-thread scrolling mode. Time: 15843.554718 Reason(s): viewport-constrained objects
18265            SCROLLING: Switching to threaded scrolling mode. Time: 15844.550866
18266            SCROLLING: Switching to main-thread scrolling mode. Time: 15845.551214 Reason(s): viewport-constrained objects
18267            SCROLLING: Switching to threaded scrolling mode. Time: 15846.552619
18268            SCROLLING: Switching to main-thread scrolling mode. Time: 15847.553587 Reason(s): viewport-constrained objects
18269            SCROLLING: Switching to threaded scrolling mode. Time: 15848.554084
18270
18271        No new tests, as this is just debugging logging.
18272
18273        * page/scrolling/ScrollingCoordinator.cpp:
18274        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
18275        Construct a bitfield describing the reasons we fall into main-thread scrolling mode.
18276
18277        * page/scrolling/ScrollingCoordinatorNone.cpp:
18278        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
18279        * page/scrolling/ScrollingTreeNode.cpp:
18280        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
18281        * page/scrolling/ScrollingTreeNode.h:
18282        (WebCore::ScrollingTreeNode::shouldUpdateScrollLayerPositionOnMainThread):
18283        * page/scrolling/ScrollingTreeState.cpp:
18284        (WebCore::ScrollingTreeState::ScrollingTreeState):
18285        (WebCore::ScrollingTreeState::setShouldUpdateScrollLayerPositionOnMainThread):
18286        * page/scrolling/ScrollingTreeState.h:
18287        (WebCore::ScrollingTreeState::shouldUpdateScrollLayerPositionOnMainThread):
18288        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
18289        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
18290        * page/scrolling/ScrollingCoordinator.cpp:
18291        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
18292        Use the reasons bitfield instead of a boolean.
18293
18294        * page/scrolling/ScrollingCoordinator.h:
18295        (ScrollingCoordinator):
18296        Add MainThreadScrollingReasons enum, with the current reasons that we might fallback to main-thread scrolling.
18297        
18298        * page/scrolling/ScrollingTree.cpp:
18299        (WebCore::ScrollingTree::scrollingPerformanceLoggingEnabled):
18300        Fix a typo (scrollingPeformanceLoggingEnabled -> scrollingPerformanceLoggingEnabled).
18301
18302        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
18303        (WebCore::ScrollingTreeNodeMac::update):
18304        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
18305        (WebCore::logThreadedScrollingMode):
18306        Pretty-print the scrolling mode and shouldUpdateScrollLayerPositionOnMainThreadReason.
18307
183082012-09-13  Joshua Bell  <jsbell@chromium.org>
18309
18310        [V8] Binding: Generate batched attribute/const/callback struct names can collide
18311        https://bugs.webkit.org/show_bug.cgi?id=96700
18312
18313        Reviewed by Kentaro Hara.
18314
18315        The V8 binding code generator spits out static arrays for batched configuration of
18316        consts, attributes, and callbacks. Prior to this patch, it would spit them out
18317        in the WebCore namespace with names like <BaseType>Callbacks which could collide with
18318        other code. This change renames them from <BaseType><Suffix> to V8<BaseType><Suffix>.
18319
18320        Tests: Rebaselined the binding/scripts/test/V8/* results. No functional changes.
18321
18322        * bindings/scripts/CodeGeneratorV8.pm:
18323        (GenerateImplementation):
18324        * bindings/scripts/test/V8/V8Float64Array.cpp:
18325        (Float64ArrayV8Internal):
18326        (WebCore):
18327        (WebCore::ConfigureV8Float64ArrayTemplate):
18328        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
18329        (TestActiveDOMObjectV8Internal):
18330        (WebCore):
18331        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
18332        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
18333        (TestCustomNamedGetterV8Internal):
18334        (WebCore):
18335        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
18336        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
18337        (TestEventConstructorV8Internal):
18338        (WebCore):
18339        (WebCore::ConfigureV8TestEventConstructorTemplate):
18340        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
18341        (TestEventTargetV8Internal):
18342        (WebCore):
18343        (WebCore::ConfigureV8TestEventTargetTemplate):
18344        * bindings/scripts/test/V8/V8TestException.cpp:
18345        (TestExceptionV8Internal):
18346        (WebCore):
18347        (WebCore::ConfigureV8TestExceptionTemplate):
18348        * bindings/scripts/test/V8/V8TestInterface.cpp:
18349        (TestInterfaceV8Internal):
18350        (WebCore):
18351        (WebCore::ConfigureV8TestInterfaceTemplate):
18352        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
18353        (TestMediaQueryListListenerV8Internal):
18354        (WebCore):
18355        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
18356        * bindings/scripts/test/V8/V8TestObj.cpp:
18357        (TestObjV8Internal):
18358        (WebCore):
18359        (WebCore::ConfigureV8TestObjTemplate):
18360        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
18361        (TestSerializedScriptValueInterfaceV8Internal):
18362        (WebCore):
18363        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
18364
183652012-09-13  Ryuan Choi  <ryuan.choi@samsung.com>
18366
18367        [EFL] Improve string manipulation in EflKeyboardUtilities.cpp
18368        https://bugs.webkit.org/show_bug.cgi?id=96598
18369
18370        Reviewed by Benjamin Poulain.
18371
18372        Uses ASCIILiteral for static strings as recommended by
18373        http://trac.webkit.org/wiki/EfficientStrings and uses HexNumber to remove
18374        String::format.
18375
18376        No behavior change. Just a refactoring.
18377
18378        * platform/efl/EflKeyboardUtilities.cpp:
18379        (WebCore::addCharactersToKeyMap):
18380        (WebCore::createKeyMap):
18381        (WebCore::createWindowsKeyMap):
18382
183832012-09-13  Ojan Vafai  <ojan@chromium.org>
18384
18385        percentage heights in quirks mode with auto-sized body are computed incorrectly
18386        https://bugs.webkit.org/show_bug.cgi?id=96426
18387
18388        Reviewed by Tony Chang.
18389
18390        In quirks mode, for the body element, we need to keep walking up to the html element
18391        if the body's height is auto. Also, we need to subtract the body/html elements
18392        margin/border/padding so that we properly get the body's content height.
18393
18394        This behavior matches IE9, FF and Opera.
18395
18396        None of this applies to standards mode since we don't walk up the
18397        containingBlock chain for auto-sized elements.
18398
18399        Test: fast/css/percentage-height-auto-sized-body-quirks.html
18400
18401        * rendering/RenderBox.cpp:
18402        (WebCore::RenderBox::computePercentageLogicalHeight):
18403
184042012-09-13  Adrienne Walker  <enne@google.com>
18405
18406        Hide all ancestors of the full screen element when going full screen
18407        https://bugs.webkit.org/show_bug.cgi?id=96332
18408
18409        Reviewed by James Robinson.
18410
18411        Since fixed position elements can now sometimes become stacking
18412        contexts, explicitly set position: static on full-screen ancestors so
18413        that there are no stacking context ancestors that could cause the full
18414        screen element to become incorrectly sorted.
18415
18416        Test: fullscreen/full-screen-fixed-pos-parent.html
18417
18418        * css/fullscreen.css:
18419        (:-webkit-full-screen-ancestor:not(iframe)):
18420
184212012-09-13  Adam Barth  <abarth@webkit.org>
18422
18423        REGRESSION(r125126): It made fast/events/keyevent-iframe-removed-crash.html assert
18424        https://bugs.webkit.org/show_bug.cgi?id=93654
18425
18426        Reviewed by Eric Seidel.
18427
18428        When wrapping a Document, we need to ensure that the global object for
18429        the wrapper actually exists before trying to create the wrapper. In
18430        other cases in the DOM, we always touch the global object before trying
18431        to wrap a given DOM object. For Document, however,
18432        HTMLFrameElement.contentDocument is a rare way to get at a DOM object
18433        for a global object without first touching the Window object.
18434
18435        Rather than writing custom bindings for
18436        HTMLFrameElement.contentDocument, this patch just makes toJS for
18437        Document ensure that toJS for DOMWindow has been called first. The V8
18438        bindings have some similar code.
18439
18440        Test: fast/dom/content-document-prototype.html
18441
18442        * bindings/js/JSDocumentCustom.cpp:
18443        (WebCore::toJS):
18444
184452012-09-13  Anders Carlsson  <andersca@apple.com>
18446
18447        Fix build.
18448
18449        * platform/graphics/Latin1TextIterator.h:
18450        (WebCore::Latin1TextIterator::Latin1TextIterator):
18451        (Latin1TextIterator):
18452        m_endCharacter is an unused private member variable, so just remove it to appease newer versions of clang.
18453
184542012-09-13  Hans Muller  <hmuller@adobe.com>
18455
18456        Typo in RenderStyle::isFlippedLinesWritingMode(), small refactoring possible
18457        https://bugs.webkit.org/show_bug.cgi?id=96679
18458
18459        Reviewed by Darin Adler.
18460
18461        Fixed a typo in the comment for RenderStyle::isFlippedLinesWritingMode() and refactored the
18462        three RendersStyle::isXXXWritingMode() inlines to use the inlines defined in WritingMode.h.
18463        Moved the comments to WritingMode.h
18464
18465        No new tests needed.
18466
18467        * platform/text/WritingMode.h:
18468        (WebCore):
18469        * rendering/style/RenderStyle.h:
18470
184712012-09-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
18472
18473        Evas_Object* is a ref'ed structure, so tread it as such
18474        https://bugs.webkit.org/show_bug.cgi?id=96659
18475
18476        Reviewed by Adam Barth.
18477
18478        Replace OwnPtr<Evas_Object> with RefPtr.
18479
18480        * PlatformEfl.cmake:
18481        * platform/efl/RenderThemeEfl.cpp:
18482        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
18483        (WebCore::RenderThemeEfl::loadTheme):
18484        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
18485        * platform/efl/RenderThemeEfl.h:
18486        (RenderThemeEfl):
18487        (ThemePartCacheEntry):
18488
184892012-09-13  Michael Saboff  <msaboff@apple.com>
18490
18491        Added 8 bit path to WidthIterator::advance()
18492        https://bugs.webkit.org/show_bug.cgi?id=96590
18493
18494        Reviewed by Geoffrey Garen.
18495
18496        Added 8 bit path to advance() by adding a templatized advanceInternal private
18497        method and added a simple 8 bit Latin-1 TextIterator.  Updated SurrogatePairAwareTextIterator
18498        by making both consume() and advance() inlined and adding consumeSlowCase() for
18499        surrogate handling.  These changes are a performance progression on the Layout tests.
18500
18501        No new tests because of no behavior changes.
18502
18503        * GNUmakefile.list.am:
18504        * Target.pri:
18505        * WebCore.gypi:
18506        * WebCore.vcproj/WebCore.vcproj:
18507        * WebCore.xcodeproj/project.pbxproj:
18508        * platform/graphics/Latin1TextIterator.h: Copied from Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.h.
18509        (Latin1TextIterator):
18510        (WebCore::Latin1TextIterator::Latin1TextIterator):
18511        (WebCore::Latin1TextIterator::consume):
18512        (WebCore::Latin1TextIterator::advance):
18513        (WebCore::Latin1TextIterator::characters):
18514        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
18515        (WebCore::SurrogatePairAwareTextIterator::consumeSlowCase):
18516        * platform/graphics/SurrogatePairAwareTextIterator.h:
18517        (WebCore::SurrogatePairAwareTextIterator::consume):
18518        (SurrogatePairAwareTextIterator):
18519        (WebCore::SurrogatePairAwareTextIterator::advance):
18520        * platform/graphics/WidthIterator.cpp:
18521        (WebCore::WidthIterator::advanceInternal):
18522        (WebCore::WidthIterator::advance):
18523        * platform/graphics/WidthIterator.h:
18524        (WidthIterator):
18525
185262012-09-13  Yong Li  <yoli@rim.com>
18527
18528        [BlackBerry] ResourceRequest string optimizations
18529        https://bugs.webkit.org/show_bug.cgi?id=96661
18530
18531        Reviewed by Rob Buis.
18532
18533        RIM PR# 207965.
18534        Call PlatformRequest's method to add the Accept-Language header.
18535
18536        No new tests as no functional change.
18537
18538        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
18539        (WebCore::ResourceRequest::initializePlatformRequest):
18540
185412012-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
18542
18543        Unreviewed, rolling out r128489.
18544        http://trac.webkit.org/changeset/128489
18545        https://bugs.webkit.org/show_bug.cgi?id=96686
18546
18547        Does not compile on windows (Requested by jamesr on #webkit).
18548
18549        * Modules/indexeddb/IDBDatabase.cpp:
18550        (WebCore::IDBDatabase::create):
18551        (WebCore::IDBDatabase::IDBDatabase):
18552        (WebCore::IDBDatabase::~IDBDatabase):
18553        (WebCore::IDBDatabase::registerFrontendCallbacks):
18554        (WebCore):
18555        * Modules/indexeddb/IDBDatabase.h:
18556        (IDBDatabase):
18557        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
18558        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
18559        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
18560        (IDBDatabaseBackendImpl::PendingOpenCall):
18561        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
18562        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
18563        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
18564        (WebCore::IDBDatabaseBackendImpl::setVersion):
18565        (WebCore::IDBDatabaseBackendImpl::connectionCount):
18566        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
18567        (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
18568        (WebCore):
18569        (WebCore::IDBDatabaseBackendImpl::openConnection):
18570        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
18571        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
18572        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
18573        (WebCore::IDBDatabaseBackendImpl::close):
18574        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
18575        (IDBDatabaseBackendImpl):
18576        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
18577        (IDBDatabaseBackendInterface):
18578        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
18579        (WebCore::IDBDatabaseCallbacksImpl::create):
18580        (WebCore::IDBDatabaseCallbacksImpl::IDBDatabaseCallbacksImpl):
18581        (WebCore::IDBDatabaseCallbacksImpl::unregisterDatabase):
18582        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
18583        (IDBDatabaseCallbacksImpl):
18584        * Modules/indexeddb/IDBFactory.cpp:
18585        (WebCore::IDBFactory::open):
18586        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
18587        (WebCore::IDBFactoryBackendImpl::open):
18588        * Modules/indexeddb/IDBFactoryBackendImpl.h:
18589        (IDBFactoryBackendImpl):
18590        * Modules/indexeddb/IDBFactoryBackendInterface.h:
18591        (IDBFactoryBackendInterface):
18592        * Modules/indexeddb/IDBOpenDBRequest.cpp:
18593        (WebCore::IDBOpenDBRequest::create):
18594        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
18595        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
18596        (WebCore::IDBOpenDBRequest::onSuccess):
18597        * Modules/indexeddb/IDBOpenDBRequest.h:
18598        (IDBOpenDBRequest):
18599        * Modules/indexeddb/IDBTransaction.cpp:
18600        (WebCore::IDBTransaction::onAbort):
18601        (WebCore::IDBTransaction::onComplete):
18602        * inspector/InspectorIndexedDBAgent.cpp:
18603        (WebCore):
18604
186052012-09-13  Tony Chang  <tony@chromium.org>
18606
18607        Refactor duplicate code into RenderFlexibleBox::mainAxisContentExtent
18608        https://bugs.webkit.org/show_bug.cgi?id=96676
18609
18610        Reviewed by Eric Seidel.
18611
18612        There was computeAvailableFreeSpace() and lineBreakLength() shared some very similar code.
18613        Merge this code into mainAxisContentExtent().
18614
18615        No new tests, this is just a refactor.
18616
18617        * rendering/RenderFlexibleBox.cpp:
18618        (WebCore::RenderFlexibleBox::mainAxisContentExtent): Take contentLogicalHeight as a parameter,
18619        which is needed when determining the logical height.
18620        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): Use mainAxisContentExtent() and inline.
18621        (WebCore::RenderFlexibleBox::computeNextFlexLine): Use mainAxisContentExtent().
18622        * rendering/RenderFlexibleBox.h:
18623
186242012-09-13  Glenn Hartmann  <hartmanng@chromium.org>
18625
18626        Add new accelerated compositing for overflow scroll setting.
18627        https://bugs.webkit.org/show_bug.cgi?id=95885
18628
18629        Reviewed by James Robinson.
18630
18631        wkb.ug/91117 introduces RenderLayer::usesCompositedScrolling(), which
18632        currently returns true if we're overflow scrolling and the element has
18633        been styled with '-webkit-overflow-scrolling: touch'. If this is true,
18634        we get promoted to a composited layer, the associated RenderLayerBacking
18635        gets special scrolling layers and in response to RenderLayer::scrollTo()
18636        we no longer have to invalidate everything to get the scrolled content
18637        in the right spot, thereby avoiding very expensive repaints. It's
18638        unfortunate that we require -webkit-overflow-scrolling: touch, though.
18639        It would be nice if RenderLayer::usesCompositedScrolling() returned true
18640        if the page would continue to behave correctly.  This is what
18641        wkb.ug/94743 is intended to do.  Unfortunately, when we become a
18642        composited layer, we switch from subpixel to grayscale anti-aliasing. We
18643        only want to auto-opt into composited scrolling if we don't mind the
18644        change in anti-aliasing, so we need a flag to enable/disable this
18645        feature.
18646
18647        No new tests -- no change in behaviour.
18648
18649        * page/Settings.h:
18650        (WebCore::Settings::setAcceleratedCompositingForOverflowScrollEnabled):
18651        (WebCore::Settings::acceleratedCompositingForOverflowScrollEnabled):
18652        (Settings):
18653
186542012-09-13  Joshua Bell  <jsbell@chromium.org>
18655
18656        IndexedDB: Consolidate two-phase connection to avoid race conditions
18657        https://bugs.webkit.org/show_bug.cgi?id=90411
18658
18659        Reviewed by Tony Chang.
18660
18661        Previously, IDB connections were opened by having the front-end (1) call through to
18662        a back-end open() method, eventually receive a success message with a back-end object
18663        handle, and (2) call into the back-end object to register front-end callbacks. This left
18664        the back-end's notion of an open connection in a limbo state between these two calls.
18665        In multi-process ports, a crash of the front-end process could leave the back-end wedged
18666        waiting for this second call (e.g. can't delete until all connections are closed).
18667
18668        Simplify this by having the front-end pass through the callbacks into the back-end
18669        during the initial open() call, which eliminates the limbo state.
18670
18671        No new tests - no functional changes. Chromium port's webkit_unit_tests updated.
18672
18673        * Modules/indexeddb/IDBDatabase.cpp:
18674        (WebCore::IDBDatabase::create):
18675        (WebCore::IDBDatabase::IDBDatabase): Db-callbacks is available at creation time.
18676        (WebCore::IDBDatabase::~IDBDatabase):
18677        * Modules/indexeddb/IDBDatabase.h:
18678        (IDBDatabase):
18679        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
18680        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create): Need to track db-callbacks as well.
18681        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::databaseCallbacks):
18682        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
18683        (IDBDatabaseBackendImpl::PendingOpenCall):
18684        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create): Ditto.
18685        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::databaseCallbacks):
18686        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
18687        (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
18688        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
18689        (WebCore::IDBDatabaseBackendImpl::setVersion):
18690        (WebCore::IDBDatabaseBackendImpl::connectionCount): Don't need to count limbo connections any more.
18691        (WebCore::IDBDatabaseBackendImpl::processPendingCalls): Pass through db-callbacks.
18692        (WebCore::IDBDatabaseBackendImpl::openConnection): No more limbo connections (yay!).
18693        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction): Pass through db-callbacks.
18694        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion): Ditto.
18695        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Style.
18696        (WebCore::IDBDatabaseBackendImpl::close): Resolve FIXME about connectionCount.
18697        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
18698        (IDBDatabaseBackendImpl):
18699        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
18700        (IDBDatabaseBackendInterface):
18701        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
18702        (WebCore::IDBDatabaseCallbacksImpl::create):
18703        (WebCore::IDBDatabaseCallbacksImpl::IDBDatabaseCallbacksImpl):
18704        (WebCore::IDBDatabaseCallbacksImpl::connect):
18705        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
18706        (IDBDatabaseCallbacksImpl):
18707        * Modules/indexeddb/IDBFactory.cpp:
18708        (WebCore::IDBFactory::open): Mint the db-callbacks here...
18709        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
18710        (WebCore::IDBFactoryBackendImpl::open): ...passed through to here...
18711        * Modules/indexeddb/IDBFactoryBackendImpl.h:
18712        (IDBFactoryBackendImpl):
18713        * Modules/indexeddb/IDBFactoryBackendInterface.h:
18714        (IDBFactoryBackendInterface):
18715        * Modules/indexeddb/IDBOpenDBRequest.cpp:
18716        (WebCore::IDBOpenDBRequest::create): ...all the way to here...
18717        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
18718        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): ...and finally hooked up here.
18719        (WebCore::IDBOpenDBRequest::onSuccess): (or here, if no upgrade needed).
18720        * Modules/indexeddb/IDBOpenDBRequest.h:
18721        (WebCore):
18722        (IDBOpenDBRequest):
18723        * Modules/indexeddb/IDBTransaction.cpp:
18724        (WebCore::IDBTransaction::onAbort): Tweak event/notification ordering; the
18725        notifying the database that the transaction is finished may unblock closing,
18726        which fires more events, and the delivery matters. Previously the close would
18727        be blocked by the transaction which gave the desired order.
18728        (WebCore::IDBTransaction::onComplete): Ditto.
18729        * inspector/InspectorIndexedDBAgent.cpp: New hookup logic.
18730        (WebCore):
18731
187322012-09-13  Tony Chang  <tony@chromium.org>
18733
18734        Flexitem margins should be based on content width, not width
18735        https://bugs.webkit.org/show_bug.cgi?id=96674
18736
18737        Reviewed by Ojan Vafai.
18738
18739        Margins should be based on content width. Also remove some calls to
18740        mainAxisContentExtent() when we can use contentLogicalWidth instead.
18741
18742        Tests: css3/flexbox/percent-margins.html has a new testcase.
18743
18744        * rendering/RenderFlexibleBox.cpp:
18745        (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild): Use contentLogicalWidth instead of
18746        passing in the maximum value (only used in the width case).
18747        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): Don't pass in mainAxisContentExtent.
18748        (WebCore::RenderFlexibleBox::computeChildMarginValue): Use contentLogicalWidth and simplify the code.
18749        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Remove unnecessary mainAxisContentExtent() call.
18750        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Remove unnecessary flexboxAvailableContentExtent.
18751        (WebCore::RenderFlexibleBox::computeNextFlexLine): Remove unnecessary mainAxisContentExtent() call.
18752        (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Remove unnecessary mainAxisContentExtent() call.
18753        * rendering/RenderFlexibleBox.h: Remove unnecessary params.
18754
187552012-09-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>
18756
18757        [EFL] Assertion reached on RenderThemeEFL when setting a theme to an invalid path
18758        https://bugs.webkit.org/show_bug.cgi?id=96649
18759
18760        Reviewed by Kenneth Rohde Christiansen.
18761
18762        Keep the consistence by restoring the reference to the old theme path
18763        when the new one cannot be loaded.
18764
18765        * platform/efl/RenderThemeEfl.cpp:
18766        (WebCore::RenderThemeEfl::setThemePath):
18767
187682012-09-13  Robert Kroeger  <rjkroege@chromium.org>
18769
18770        [chromium] alter fling animation parameters.
18771        https://bugs.webkit.org/show_bug.cgi?id=96666
18772
18773        Reviewed by Adrienne Walker.
18774
18775        Adjusted configuration parameters for fling animation to have a longer
18776        tail and more similarity between touchpad and touchscreen.
18777        
18778        Covered by existing tests.
18779
18780        * platform/TouchFlingPlatformGestureCurve.cpp:
18781        (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
18782        (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
18783
187842012-09-13  Joshua Bell  <jsbell@chromium.org>
18785
18786        IndexedDB: Properties of IDBKeyRange should default to undefined
18787        https://bugs.webkit.org/show_bug.cgi?id=96401
18788
18789        Reviewed by Adam Barth.
18790
18791        Per the IndexedDB spec, properties of IDBKeyRange should be |undefined| if
18792        not set (i.e. range.upper if created with lowerBound(), and vice versa), rather
18793        than null.
18794
18795        Test: storage/indexeddb/keyrange.html
18796
18797        * bindings/v8/custom/V8IDBKeyCustom.cpp:
18798        (WebCore::toV8): Since IDBKeyRange is the only place where possibly-null
18799        keys are returned to script, change the JS value from null to undefined.
18800        And call v8Undefined(). It's faster.
18801        * bindings/js/custom/JSIDBKeyCustom.cpp:
18802        (WebCore::toJS): Ditto.
18803
188042012-09-13  Sami Kyostila  <skyostil@chromium.org>
18805
18806        Refactor paint overflow clipping
18807        https://bugs.webkit.org/show_bug.cgi?id=96625
18808
18809        Reviewed by Simon Fraser.
18810
18811        The same logic for applying overflow clipping based on the cached size of a
18812        RenderBox has been duplicated to four different places. Consolidate them to a
18813        single RenderBox utility function.
18814
18815        This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=96087.
18816
18817        No new functionality; covered by existing tests.
18818
18819        * rendering/RenderBox.cpp:
18820        (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
18821        (WebCore):
18822        (WebCore::RenderBox::computeRectForRepaint):
18823        * rendering/RenderBox.h:
18824        (RenderBox):
18825        * rendering/RenderInline.cpp:
18826        (WebCore::RenderInline::clippedOverflowRectForRepaint):
18827        (WebCore::RenderInline::computeRectForRepaint):
18828        * rendering/RenderObject.cpp:
18829        (WebCore::RenderObject::computeRectForRepaint):
18830
188312012-09-13  Simon Hausmann  <simon.hausmann@nokia.com>
18832
18833        Another prospective Qt/Windows build fix: Add missing CString.h include.
18834
18835        * platform/qt/UserAgentQt.cpp:
18836
188372012-09-13  Dimitri Glazkov  <dglazkov@chromium.org>
18838
18839        Stop shuttling PseudoId from StyleResolver to SelectorChecker.
18840        https://bugs.webkit.org/show_bug.cgi?id=96431
18841
18842        Reviewed by Eric Seidel.
18843
18844        SelectorChecker retained extra state to store the PseudoId value of the element. It was sad, because we needed to explicitly maintain its integrity. Instead, we now just make it part of StyleResolver and feed to SelectorChecker as part of SelectorCheckingContext.
18845
18846        No new tests, refactoring only. Covered by existing tests.
18847
18848        * css/SelectorChecker.cpp:
18849        (WebCore::SelectorChecker::SelectorChecker): Removed state initializer.
18850        (WebCore::SelectorChecker::checkSelector): Changed to look into context, rather than own member.
18851        * css/SelectorChecker.h:
18852        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): Added pseudoStyle as parameter.
18853        (SelectorCheckingContext): Added pseudoStyle as member.
18854        * css/StyleResolver.cpp:
18855        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to look at own member, rather than m_checker.
18856        * css/StyleResolver.h:
18857        (StyleResolver): Added new member.
18858
188592012-09-13  Simon Hausmann  <simon.hausmann@nokia.com>
18860
18861        Unreviewed prospective Qt/MSVC build fix.
18862
18863        * platform/qt/UserAgentQt.cpp:
18864        (WebCore::UserAgentQt::standardUserAgent): Try to make the conversion from the 8-bit
18865        String to a QLatin1String successful.
18866
188672012-09-13  Lauro Neto  <lauro.neto@openbossa.org>
18868
18869        [Qt][WK2] fast/forms/access-key-for-all-elements.html fails
18870        https://bugs.webkit.org/show_bug.cgi?id=73917
18871
18872        Reviewed by Simon Hausmann.
18873
18874        Access-key tests were failing due to hardcoded Mac OS X in the
18875        Qt WK2 user agent string. This commit moves the WK1 implementation
18876        to a shared one to be used by both versions.
18877
18878        Adds the shared user agent implementation.
18879
18880        * Target.pri:
18881        * platform/qt/UserAgentQt.cpp: Added.
18882        (WebCore):
18883        (WebCore::UserAgentQt::standardUserAgent):
18884        * platform/qt/UserAgentQt.h: Added.
18885        (WebCore):
18886        (UserAgentQt):
18887
188882012-09-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
18889
18890        [EFL] Use RefPtr for storing cairo_surface_t
18891        https://bugs.webkit.org/show_bug.cgi?id=96647
18892
18893        Reviewed by Simon Hausmann.
18894
18895        Refactoring, covered by existing tests.
18896
18897        * platform/efl/RenderThemeEfl.cpp:
18898        (WebCore::createSurfaceForBackingStore):
18899        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
18900        (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
18901        (WebCore::RenderThemeEfl::paintThemePart):
18902        * platform/efl/RenderThemeEfl.h:
18903        (WebCore::RenderThemeEfl::ThemePartCacheEntry::surface):
18904        (ThemePartCacheEntry):
18905
189062012-09-13  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
18907
18908        Move updateHoverActiveState to Document.
18909        https://bugs.webkit.org/show_bug.cgi?id=95858
18910
18911        Reviewed by Antonio Gomes.
18912
18913        RenderLayer::updateHoverActiveState contains the logic that updates hover and active states based on
18914        hit-tests, but hover and active states are document states, and does have any relation to layers other
18915        than documents having atleast one layer.
18916
18917        By moving the function it will be in the same place as other active/hover state maintainace, and we avoid
18918        excessive updates of the state from hit-testing flow threads.
18919
18920        * dom/Document.cpp:
18921        (WebCore::commonAncestor):
18922        (WebCore::Document::updateHoverActiveState):
18923        * dom/Document.h:
18924        (Document):
18925        * page/EventHandler.cpp:
18926        (WebCore::EventHandler::sendContextMenuEventForKey):
18927        * rendering/RenderFrameBase.cpp:
18928        (WebCore::RenderFrameBase::nodeAtPoint):
18929        * rendering/RenderLayer.cpp:
18930        (WebCore::RenderLayer::hitTest):
18931        * rendering/RenderLayer.h:
18932        * rendering/RenderView.cpp:
18933        (WebCore::RenderView::hitTest):
18934        * rendering/RenderView.h:
18935        (RenderView):
18936
189372012-09-13  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
18938
18939        REGRESSION: hit test doesn't take iframe scroll position into account
18940        https://bugs.webkit.org/show_bug.cgi?id=96541
18941
18942        Reviewed by Antonio Gomes.
18943
18944        Convert the coordinate correctly by taking scroll position plus frame
18945        borders and padding into account.
18946
18947        Test: fast/events/touch/touch-inside-iframe-scrolled.html
18948
18949        * rendering/RenderFrameBase.cpp:
18950        (WebCore::RenderFrameBase::nodeAtPoint):
18951
189522012-09-13  Ilya Tikhonovsky  <loislo@chromium.org>
18953
18954        Web Inspector: NMI: remove the dependency of platform sources from WebCore header introduced by NMI instrumentation.
18955        https://bugs.webkit.org/show_bug.cgi?id=96367
18956
18957        Reviewed by Yury Semikhatsky.
18958
18959        the target is to move 'platform' specific instrumentation code
18960        from WebCoreMemoryInstrumentation into the new PlatformMemoryInstrumentation.
18961
18962        Drive by fix: New type DOM.Image was introduced.
18963
18964        * CMakeLists.txt:
18965        * GNUmakefile.list.am:
18966        * Target.pri:
18967        * WebCore.gypi:
18968        * WebCore.vcproj/WebCore.vcproj:
18969        * WebCore.xcodeproj/project.pbxproj:
18970        * dom/WebCoreMemoryInstrumentation.cpp:
18971        (WebCore):
18972        * dom/WebCoreMemoryInstrumentation.h:
18973        (WebCoreMemoryTypes):
18974        * inspector/InspectorMemoryAgent.cpp:
18975        (WebCore):
18976        * platform/KURL.cpp:
18977        * platform/KURLGoogle.cpp:
18978        * platform/PlatformMemoryInstrumentation.cpp: Copied from Source/WebCore/platform/graphics/GeneratedImage.cpp.
18979        (WebCore):
18980        * platform/PlatformMemoryInstrumentation.h: Copied from Source/WebCore/platform/graphics/GeneratedImage.cpp.
18981        (WebCore):
18982        (PlatformMemoryTypes):
18983        * platform/SharedBuffer.cpp:
18984        * platform/TreeShared.h:
18985        (WebCore::TreeShared::reportMemoryUsage):
18986        * platform/graphics/BitmapImage.cpp:
18987        (WebCore::BitmapImage::reportMemoryUsage):
18988        * platform/graphics/CrossfadeGeneratedImage.cpp:
18989        (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
18990        * platform/graphics/GeneratedImage.cpp:
18991        (WebCore::GeneratedImage::reportMemoryUsage):
18992        * platform/graphics/GeneratorGeneratedImage.cpp:
18993        (WebCore::GeneratorGeneratedImage::reportMemoryUsage):
18994        * platform/graphics/GeneratorGeneratedImage.h:
18995        * platform/graphics/Image.cpp:
18996        (WebCore::Image::reportMemoryUsage):
18997        * platform/network/FormData.cpp:
18998        (WebCore::FormData::reportMemoryUsage):
18999        * platform/network/ResourceRequestBase.cpp:
19000        (WebCore::ResourceRequestBase::reportMemoryUsage):
19001        * platform/network/ResourceResponseBase.cpp:
19002        (WebCore::ResourceResponseBase::reportMemoryUsage):
19003
190042012-09-13  Ilya Tikhonovsky  <loislo@chromium.org>
19005
19006        Web Inspector: NMI: instrument KURL directly.
19007        https://bugs.webkit.org/show_bug.cgi?id=96624
19008
19009        Reviewed by Yury Semikhatsky.
19010
19011        I replaced traits based instrumentation of KURL with reportMemoryUsage functions.
19012        CString* were also instrumented.
19013
19014        Drive by fix: Instrumentation code in QualifiedName was moved to cpp.
19015
19016        * bindings/v8/V8DOMMap.h:
19017        * dom/Attribute.h:
19018        * dom/QualifiedName.cpp:
19019        (WebCore::QualifiedName::reportMemoryUsage):
19020        (WebCore):
19021        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
19022        * dom/QualifiedName.h:
19023        (QualifiedNameImpl):
19024        (QualifiedName):
19025        * dom/WebCoreMemoryInstrumentation.cpp:
19026        * dom/WebCoreMemoryInstrumentation.h:
19027        (WebCore):
19028        * platform/KURL.cpp:
19029        (WebCore::KURL::reportMemoryUsage):
19030        (WebCore):
19031        * platform/KURL.h:
19032        (KURL):
19033        * platform/KURLGoogle.cpp:
19034        (WebCore::KURLGooglePrivate::reportMemoryUsage):
19035        * platform/KURLGooglePrivate.h:
19036        (KURLGooglePrivate):
19037        * platform/KURLWTFURLImpl.h:
19038        (KURLWTFURLImpl):
19039        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
19040
190412012-09-13  Kent Tamura  <tkent@chromium.org>
19042
19043        Update binding test expectation for http://trac.webkit.org/changeset/128400
19044        https://bugs.webkit.org/show_bug.cgi?id=91933
19045
19046        * bindings/scripts/test/JS/JSFloat64Array.cpp:
19047        (WebCore::JSFloat64Array::getOwnPropertySlotByIndex):
19048        (WebCore::JSFloat64Array::putByIndex):
19049        * bindings/scripts/test/JS/JSFloat64Array.h:
19050        (JSFloat64Array):
19051        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
19052        (JSTestActiveDOMObject):
19053        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
19054        (WebCore::JSTestCustomNamedGetter::getOwnPropertySlotByIndex):
19055        (WebCore):
19056        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
19057        (JSTestCustomNamedGetter):
19058        * bindings/scripts/test/JS/JSTestEventConstructor.h:
19059        (JSTestEventConstructor):
19060        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
19061        (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
19062        * bindings/scripts/test/JS/JSTestEventTarget.h:
19063        (JSTestEventTarget):
19064        * bindings/scripts/test/JS/JSTestException.h:
19065        (JSTestException):
19066        * bindings/scripts/test/JS/JSTestInterface.cpp:
19067        (WebCore::JSTestInterface::putByIndex):
19068        (WebCore):
19069        * bindings/scripts/test/JS/JSTestInterface.h:
19070        (JSTestInterface):
19071        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
19072        (JSTestMediaQueryListListener):
19073        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
19074        (JSTestNamedConstructor):
19075        * bindings/scripts/test/JS/JSTestNode.h:
19076        (JSTestNode):
19077        * bindings/scripts/test/JS/JSTestObj.h:
19078        (JSTestObj):
19079        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
19080        (JSTestSerializedScriptValueInterface):
19081
190822012-09-13  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
19083
19084        [EFL] REGRESSION (r128274): fast/overflow/overflow-height-float-not-removed-crash.html
19085        https://bugs.webkit.org/show_bug.cgi?id=96619
19086
19087        Reviewed by Kenneth Rohde Christiansen.
19088
19089        ThemePartCacheEntry::create() can return '0' if creation fails, this was not checked
19090        while Theme Part cache populating. A NULL pointer was dereferenced then causing crash.
19091
19092        Test: fast/overflow/overflow-height-float-not-removed-crash.html.
19093
19094        * platform/efl/RenderThemeEfl.cpp:
19095        (WebCore::RenderThemeEfl::getThemePartFromCache):
19096
190972012-09-13  Filip Pizlo  <fpizlo@apple.com>
19098
19099        [Qt][Win] REGRESSION(r128400): It broke the build
19100        https://bugs.webkit.org/show_bug.cgi?id=96617
19101
19102        Reviewed by Simon Hausmann.
19103
19104        * bridge/runtime_array.h:
19105        (JSC::RuntimeArray::createStructure):
19106
191072012-09-13  Alexander Pavlov  <apavlov@chromium.org>
19108
19109        Web Inspector: CSS domain sends events while it is not enabled
19110        https://bugs.webkit.org/show_bug.cgi?id=96615
19111
19112        Reviewed by Yury Semikhatsky.
19113
19114        The CSS agent is put into and removed from the instrumenting agents set upon enable() and disable(), respectively.
19115
19116        Tests will be shortly landed as a part of the new pure protocol testing harness.
19117
19118        * inspector/InspectorCSSAgent.cpp:
19119        (WebCore::InspectorCSSAgent::setFrontend):
19120        (WebCore::InspectorCSSAgent::clearFrontend):
19121        (WebCore::InspectorCSSAgent::reset):
19122        (WebCore):
19123        (WebCore::InspectorCSSAgent::resetNonPersistentData):
19124        (WebCore::InspectorCSSAgent::enable):
19125        (WebCore::InspectorCSSAgent::disable):
19126        * inspector/InspectorCSSAgent.h:
19127        (InspectorCSSAgent):
19128
191292012-09-12  Ilya Tikhonovsky  <loislo@chromium.org>
19130
19131        Web Inspector: NMI: migrate core instrumentation code to WTF namespace
19132        https://bugs.webkit.org/show_bug.cgi?id=96511
19133
19134        Reviewed by Yury Semikhatsky.
19135
19136        After moving core NMI code to WTF namespace I removed forward declarations
19137        of MemoryObjectInfo and MemoryInstrumentation from WebCore headers and add
19138        forward declaration into wtf/Forward.h
19139
19140        * bindings/v8/DOMDataStore.h:
19141        (WebCore):
19142        * bindings/v8/ScriptProfiler.h:
19143        (WebCore):
19144        * bindings/v8/V8DOMMap.h:
19145        (WebCore):
19146        * bindings/v8/V8PerIsolateData.h:
19147        (WebCore):
19148        * bindings/v8/V8ValueCache.h:
19149        (WebCore):
19150        * css/CSSProperty.h:
19151        * css/CSSRule.h:
19152        (WebCore):
19153        * css/CSSSelectorList.h:
19154        (WebCore):
19155        * css/CSSStyleDeclaration.h:
19156        (WebCore):
19157        * css/CSSStyleSheet.h:
19158        (WebCore):
19159        * css/CSSValue.h:
19160        * css/MediaList.h:
19161        (WebCore):
19162        * css/MediaQuery.h:
19163        * css/MediaQueryExp.h:
19164        * css/StylePropertySet.h:
19165        (WebCore):
19166        * css/StyleResolver.h:
19167        * css/StyleRule.h:
19168        (WebCore):
19169        * css/StyleRuleImport.h:
19170        (WebCore):
19171        * css/StyleSheetContents.h:
19172        (WebCore):
19173        * css/WebKitCSSKeyframeRule.h:
19174        * css/WebKitCSSKeyframesRule.h:
19175        (WebCore):
19176        * css/WebKitCSSMixFunctionValue.h:
19177        * dom/DocumentEventQueue.h:
19178        (WebCore):
19179        * dom/ElementAttributeData.h:
19180        (WebCore):
19181        * dom/Event.h:
19182        (WebCore):
19183        * dom/Node.h:
19184        (WebCore):
19185        * dom/WebCoreMemoryInstrumentation.cpp:
19186        (WTF):
19187        (WTF::WebCore::KURL):
19188        * dom/WebCoreMemoryInstrumentation.h:
19189        (WebCore):
19190        (WTF):
19191        * inspector/MemoryInstrumentationImpl.h:
19192        * loader/DocumentLoader.h:
19193        (WebCore):
19194        * loader/FrameLoader.h:
19195        (WebCore):
19196        * loader/ResourceLoader.h:
19197        (WebCore):
19198        * loader/SubstituteData.h:
19199        * loader/cache/CachedCSSStyleSheet.h:
19200        (WebCore):
19201        * loader/cache/CachedRawResource.h:
19202        (WebCore):
19203        * loader/cache/CachedResource.h:
19204        (WebCore):
19205        * loader/cache/CachedResourceHandle.h:
19206        * loader/cache/CachedResourceLoader.h:
19207        (WebCore):
19208        * loader/cache/CachedScript.h:
19209        (WebCore):
19210        * loader/cache/CachedShader.h:
19211        * loader/cache/CachedXSLStyleSheet.h:
19212        (WebCore):
19213        * loader/cache/MemoryCache.h:
19214        (WebCore):
19215        * page/Frame.h:
19216        (WebCore):
19217        * platform/SharedBuffer.h:
19218        * platform/graphics/CrossfadeGeneratedImage.h:
19219        (WebCore):
19220        * platform/graphics/Image.h:
19221        (WebCore):
19222        * platform/network/FormData.h:
19223        (WebCore):
19224        * platform/network/ResourceRequestBase.h:
19225        * platform/network/ResourceResponseBase.h:
19226        * rendering/style/RenderStyle.h:
19227        (WebCore):
19228        * rendering/style/StyleRareInheritedData.h:
19229        (WebCore):
19230        * rendering/style/StyleRareNonInheritedData.h:
19231        (WebCore):
19232
192332012-09-13  Raul Hudea  <rhudea@adobe.com>
19234
19235        [CSSRegions][CSSOM] Implement Element.getRegionFlowRanges
19236        https://bugs.webkit.org/show_bug.cgi?id=78493
19237
19238        Reviewed by David Hyatt.
19239
19240        Implement the getRegionFlowRanges function from the CSS Regions spec. It is implemented by iterating over 
19241        the content nodes and figuring out which nodes have boundingBox intersecting the region box and figuring out
19242        the start and end positions.
19243
19244        Tests: fast/regions/get-region-flow-ranges-absolute-pos.html
19245               fast/regions/get-region-flow-ranges-content-nodes.html
19246               fast/regions/get-region-flow-ranges-display-none.html
19247               fast/regions/get-region-flow-ranges-empty-regions.html
19248               fast/regions/get-region-flow-ranges-fixed-pos.html
19249               fast/regions/get-region-flow-ranges-horiz-bt.html
19250               fast/regions/get-region-flow-ranges-inline-only.html
19251               fast/regions/get-region-flow-ranges-text-vert-lr.html
19252               fast/regions/get-region-flow-ranges-text.html
19253               fast/regions/get-region-flow-ranges-vert-lr.html
19254               fast/regions/get-region-flow-ranges-vert-rl.html
19255               fast/regions/get-region-flow-ranges-writing-modes-rl-rb-lr.html
19256               fast/regions/get-region-flow-ranges-writing-modes-tb-rl-lr.html
19257               fast/regions/get-region-flow-ranges.html
19258
19259        * dom/Element.cpp:
19260        (WebCore::Element::webkitGetRegionFlowRanges):
19261        (WebCore):
19262        * dom/Element.h:
19263        * dom/Element.idl: added the webkitGetRegionFlowRanges method
19264        * rendering/RenderBlock.cpp:
19265        (WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats): Use the logicalTopOfFlowThreadContentRect instead of offsetFromLogicalTopOfFirstPage (renamed)
19266        (WebCore::RenderBlock::hasNextPage): Use the logicalTopOfFlowThreadContentRect instead of offsetFromLogicalTopOfFirstPage (renamed)
19267        (WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage): Added a slower path which works without LayoutState
19268        (WebCore::RenderBlock::clampToStartAndEndRegions): Use the logicalTopOfFlowThreadContentRect instead of offsetFromLogicalTopOfFirstPage (renamed)
19269        * rendering/RenderBox.cpp:
19270        (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats): Use the logicalTopOfFlowThreadContentRect instead of offsetFromLogicalTopOfFirstPage (renamed)
19271        (WebCore::RenderBox::containingBlockAvailableLineWidthInRegion): Use the logicalTopOfFlowThreadContentRect instead of offsetFromLogicalTopOfFirstPage (renamed)
19272        (WebCore::computeInlineStaticDistance): Use the logicalTopOfFlowThreadContentRect instead of offsetFromLogicalTopOfFirstPage (renamed)
19273        * rendering/RenderNamedFlowThread.cpp:
19274        (WebCore::isContainedInNodes):
19275        (WebCore):
19276        (WebCore::boxIntersectsRegion):
19277        (WebCore::RenderNamedFlowThread::getRanges): returns a vector of Ranges that contains Node that are part of a region
19278        * rendering/RenderNamedFlowThread.h:
19279        (RenderNamedFlowThread):
19280        * rendering/RenderRegion.cpp:
19281        (WebCore::RenderRegion::logicalTopOfFlowThreadContentRect): Returns the logical top of a rectangle inside the flow thread content
19282        (WebCore):
19283        (WebCore::RenderRegion::logicalBottomOfFlowThreadContentRect): Returns the logical bottom of a rectangle inside the flow thread content
19284        (WebCore::RenderRegion::getRanges): proxy the getRanges call to its named flow thread
19285        * rendering/RenderRegion.h:
19286        (RenderRegion):
19287        (WebCore::RenderRegion::logicalTopForFlowThreadContent): Renamed from offsetFromLogicalTopOfFirstPage
19288        (WebCore::RenderRegion::logicalBottomForFlowThreadContent): Returns the logical bottom of the FlowThreadContent rect
19289
192902012-09-13  Adam Barth  <abarth@webkit.org>
19291
19292        new test fast/canvas/canvas-css-crazy.html fails on Mac
19293        https://bugs.webkit.org/show_bug.cgi?id=96582
19294
19295        Reviewed by Csaba Osztrogonác.
19296
19297        We represent 0 pointers with null, not undefined.
19298
19299        Test: fast/canvas/canvas-css-crazy.html
19300
19301        * bindings/js/JSCanvasRenderingContextCustom.cpp:
19302        (WebCore::toJS):
19303
193042012-09-12  Alexander Pavlov  <apavlov@chromium.org>
19305
19306        Web Inspector: [Styles] Styles not updated when there is a heavy stream of DOM updates
19307        https://bugs.webkit.org/show_bug.cgi?id=96482
19308
19309        Reviewed by Vsevolod Vlasov.
19310
19311        Update the Styles pane even if there is a pending rebuild update for the same current node.
19312
19313        * inspector/front-end/StylesSidebarPane.js:
19314        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
19315
193162012-09-12  Chris Fleizach  <cfleizach@apple.com>
19317
19318        AX: svg:image not accessible
19319        https://bugs.webkit.org/show_bug.cgi?id=96341
19320
19321        Unreviewed.
19322
19323        Build fix for non-SVG ports.
19324
19325        * accessibility/AccessibilityRenderObject.cpp:
19326        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
19327
193282012-09-12  Yoshifumi Inoue  <yosin@chromium.org>
19329
19330        New time input needs accessibility
19331        https://bugs.webkit.org/show_bug.cgi?id=96032
19332
19333        Reviewed by Chris Fleizach.
19334
19335        This patch adds accessibility support into multiple fields time input
19336        UI by setting "role" HTML attribute of DateTimeFieldElement to "spinbutton"
19337        and changing ARIA attributes to post value change notification.
19338
19339        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
19340        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
19341
19342        Tests: fast/forms/time-multiple-fields/time-multiple-fields-ax-aria-attributes.html
19343               fast/forms/time-multiple-fields/time-multiple-fields-ax-value-changed-notification.html
19344
19345        * html/shadow/DateTimeFieldElement.cpp:
19346        (WebCore::DateTimeFieldElement::DateTimeFieldElement): Changed to set
19347        "role" HTML attribute to "spinbutton".
19348        (WebCore::DateTimeFieldElement::initialize): Changed to set new
19349        parameter axHelpText to aria-help attribute and set aria-valuemax and
19350        aria-valuemin attributes.
19351        (WebCore::DateTimeFieldElement::updateVisibleValue): Changed to set
19352        aria-valuetext and aria-valuenow attributes.
19353        * html/shadow/DateTimeFieldElement.h:
19354        (DateTimeFieldElement): Changed to add new parameter axHelpText to initialize().
19355        * html/shadow/DateTimeFieldElements.cpp:
19356        (WebCore::DateTimeAMPMFieldElement::create): Changed to add new argument.
19357        (WebCore::DateTimeHourFieldElement::create): ditto.
19358        (WebCore::DateTimeMillisecondFieldElement::create): ditto.
19359        (WebCore::DateTimeMinuteFieldElement::create): ditto.
19360        (WebCore::DateTimeSecondFieldElement::create): ditto.
19361        * html/shadow/DateTimeNumericFieldElement.cpp:
19362        (WebCore::DateTimeNumericFieldElement::maximum): Added for DateTimeFieldElement::initialize().
19363        (WebCore::DateTimeNumericFieldElement::minimum): ditto.
19364        * html/shadow/DateTimeNumericFieldElement.h:
19365        (DateTimeNumericFieldElement): Added maximum() and minimum() declarations.
19366        * html/shadow/DateTimeSymbolicFieldElement.cpp:
19367        (WebCore::DateTimeSymbolicFieldElement::maximum): Added for DateTimeFieldElement::initialize().
19368        (WebCore::DateTimeSymbolicFieldElement::minimum): ditto.
19369        * html/shadow/DateTimeSymbolicFieldElement.h:
19370        (DateTimeSymbolicFieldElement): Added maximum() and minimum() declarations.
19371
193722012-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
19373
19374        Unreviewed, rolling out r127876.
19375        http://trac.webkit.org/changeset/127876
19376        https://bugs.webkit.org/show_bug.cgi?id=96600
19377
19378        mouse click doesn't work for spin button if spin button in
19379        iframe (Requested by yosin on #webkit).
19380
19381        * WebCore.exp.in:
19382        * WebCore.order:
19383        * dom/Document.cpp:
19384        (WebCore::Document::nodesFromRect):
19385        * dom/Document.h:
19386        (Document):
19387        * page/ContextMenuController.cpp:
19388        (WebCore::ContextMenuController::createContextMenu):
19389        * page/DragController.cpp:
19390        (WebCore::DragController::canProcessDrag):
19391        (WebCore::DragController::startDrag):
19392        * page/EventHandler.cpp:
19393        (WebCore::EventHandler::updateAutoscrollRenderer):
19394        (WebCore::EventHandler::hitTestResultAtPoint):
19395        (WebCore::EventHandler::handleMousePressEvent):
19396        (WebCore::EventHandler::handleGestureEvent):
19397        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
19398        (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
19399        (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
19400        (WebCore::EventHandler::handleTouchEvent):
19401        * page/EventHandler.h:
19402        (EventHandler):
19403        * page/FocusController.cpp:
19404        (WebCore::updateFocusCandidateIfNeeded):
19405        * page/Frame.cpp:
19406        (WebCore::Frame::visiblePositionForPoint):
19407        (WebCore::Frame::documentAtPoint):
19408        * page/TouchDisambiguation.cpp:
19409        (WebCore::findGoodTouchTargets):
19410        * rendering/HitTestRequest.h:
19411        * testing/Internals.cpp:
19412        (WebCore::Internals::nodesFromRect):
19413
194142012-09-09  Filip Pizlo  <fpizlo@apple.com>
19415
19416        JSC should have property butterflies
19417        https://bugs.webkit.org/show_bug.cgi?id=91933
19418
19419        Reviewed by Geoffrey Garen.
19420
19421        Teach the DOM that to intercept get/put on indexed properties, you now have
19422        to override getOwnPropertySlotByIndex and putByIndex.
19423
19424        No new tests because no new behavior. One test was rebased because indexed
19425        property iteration order now matches other engines (indexed properties always
19426        come first).
19427
19428        * bindings/js/ArrayValue.cpp:
19429        (WebCore::ArrayValue::get):
19430        * bindings/js/JSBlobCustom.cpp:
19431        (WebCore::JSBlobConstructor::constructJSBlob):
19432        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
19433        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
19434        * bindings/js/JSDOMStringListCustom.cpp:
19435        (WebCore::toDOMStringList):
19436        * bindings/js/JSDOMStringMapCustom.cpp:
19437        (WebCore::JSDOMStringMap::deletePropertyByIndex):
19438        (WebCore):
19439        * bindings/js/JSDOMWindowCustom.cpp:
19440        (WebCore::JSDOMWindow::getOwnPropertySlot):
19441        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
19442        (WebCore):
19443        (WebCore::JSDOMWindow::putByIndex):
19444        (WebCore::JSDOMWindow::deletePropertyByIndex):
19445        * bindings/js/JSDOMWindowShell.cpp:
19446        (WebCore::JSDOMWindowShell::getOwnPropertySlotByIndex):
19447        (WebCore):
19448        (WebCore::JSDOMWindowShell::putByIndex):
19449        (WebCore::JSDOMWindowShell::deletePropertyByIndex):
19450        * bindings/js/JSDOMWindowShell.h:
19451        (JSDOMWindowShell):
19452        * bindings/js/JSHistoryCustom.cpp:
19453        (WebCore::JSHistory::deletePropertyByIndex):
19454        (WebCore):
19455        * bindings/js/JSInspectorFrontendHostCustom.cpp:
19456        (WebCore::populateContextMenuItems):
19457        * bindings/js/JSLocationCustom.cpp:
19458        (WebCore::JSLocation::deletePropertyByIndex):
19459        (WebCore):
19460        * bindings/js/JSStorageCustom.cpp:
19461        (WebCore::JSStorage::deletePropertyByIndex):
19462        (WebCore):
19463        * bindings/js/JSWebSocketCustom.cpp:
19464        (WebCore::JSWebSocketConstructor::constructJSWebSocket):
19465        * bindings/js/ScriptValue.cpp:
19466        (WebCore::jsToInspectorValue):
19467        * bindings/js/SerializedScriptValue.cpp:
19468        (WebCore::CloneSerializer::serialize):
19469        * bindings/scripts/CodeGeneratorJS.pm:
19470        (GenerateHeader):
19471        (GenerateImplementation):
19472        * bridge/runtime_array.cpp:
19473        (JSC::RuntimeArray::RuntimeArray):
19474        * bridge/runtime_array.h:
19475        (JSC::RuntimeArray::createStructure):
19476        (RuntimeArray):
19477
194782012-09-12  Kent Tamura  <tkent@chromium.org>
19479
19480        Introduce ValidationMessageClient
19481        https://bugs.webkit.org/show_bug.cgi?id=96238
19482
19483        Reviewed by Hajime Morita.
19484
19485        ValidationMessageClient interface is responsible to operate validation
19486        message UI for interactive form validation. If a Page object has a
19487        ValidtionMessageClient, ValidationMessae class uses
19488        ValidtionMessageClient instead of Shadow DOM.
19489
19490        No new tests because of no behavior changes.
19491
19492        * GNUmakefile.list.am: Add ValidtionMessageClient.h.
19493        * Target.pri: ditto.
19494        * WebCore.gypi: ditto.
19495        * WebCore.xcodeproj/project.pbxproj: ditto.
19496
19497        * html/ValidationMessage.cpp:
19498        (WebCore::ValidationMessage::~ValidationMessage):
19499        Hide a validation message via ValidationMessageClient if it is available.
19500        (WebCore::ValidationMessage::validationMessageClient):
19501        A helper function to get Page::validationMessageClient.
19502        (WebCore::ValidationMessage::updateValidationMessage):
19503        Adding title attribute is not neeeded if ValidationMessageClient is
19504        used. It shoudl be handled in a ValidtionMessageClient implementation.
19505        (WebCore::ValidationMessage::setMessage):
19506        Show a validation message via ValidationMessageClient if it is available.
19507        (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
19508        Add an assertion that ValidationMessageClient should not be available.
19509        (WebCore::ValidationMessage::buildBubbleTree): ditto.
19510        (WebCore::ValidationMessage::requestToHideMessage):
19511        Hide a validation message via ValidationMessageClient if it is available.
19512        (WebCore::ValidationMessage::shadowTreeContains):
19513        Always returns false if ValidationMessageClient is available, it means no Shadow DOM.
19514        (WebCore::ValidationMessage::deleteBubbleTree):
19515        Add an assertion that ValidationMessageClient should not be available.
19516        (WebCore::ValidationMessage::isVisible):
19517        Ask ValidationMessageClient for visibility if it is available.
19518        * html/ValidationMessage.h:
19519        (WebCore): Add a comment.
19520        (ValidationMessage): Add validtionMessageClient member function.
19521
19522        * page/Page.cpp:
19523        (WebCore::Page::Page): Initialize m_validationMessageClient.
19524        (WebCore::Page::PageClients::PageClients):
19525        Initialize validationMessageClient member with 0.
19526        So, existing code makes Page::m_validationMessageClient 0.
19527        * page/Page.h:
19528        (PageClients): Add validationMessageClient member.
19529        (WebCore::Page::validationMessageClient):
19530        Added. Accessor for m_validationMessageClient.
19531        (Page): Add m_validationMessageClient.
19532
19533        * page/Settings.h:
19534        (Settings): Updated the comment for setInteractiveFormValidationEnabled.
19535
19536        * page/ValidationMessageClient.h: Added.
19537
195382012-09-12  Dmitry Titov  <dimich@chromium.org>
19539
19540        [V8] OOM in Workers due to external memory retention.
19541        https://bugs.webkit.org/show_bug.cgi?id=96459
19542
19543        Reviewed by David Levin.
19544
19545        Added memory checks to the locations in Workers code that are about to invoke the next JS block.
19546
19547        * bindings/v8/ScheduledAction.cpp:
19548        (WebCore::ScheduledAction::execute):
19549        * bindings/v8/V8GCController.cpp:
19550        (WebCore):
19551        (WebCore::workingSetEstimateMBMutex): Added a Mutex-protected accessors to a static caching WS estimate.
19552        (WebCore::V8GCController::gcEpilogue):
19553        (WebCore::V8GCController::checkMemoryUsage):
19554        * bindings/v8/V8GCController.h:
19555        (V8GCController):
19556        * bindings/v8/V8WorkerContextEventListener.cpp:
19557        (WebCore::V8WorkerContextEventListener::callListenerFunction):
19558        * bindings/v8/WorkerContextExecutionProxy.cpp:
19559        (WebCore::WorkerContextExecutionProxy::evaluate):
19560
195612012-09-12  Julien Chaffraix  <jchaffraix@webkit.org>
19562
19563        REGRESSION(r122501): replaced elements with percent width are wrongly size when inserted inside an auto-table layout
19564        https://bugs.webkit.org/show_bug.cgi?id=95892
19565
19566        Reviewed by Ojan Vafai.
19567
19568        r122501 exposed an issue in how preferred logical widths are computed on replaced objects. The code relies on the
19569        logical width computation methods. Unfortunately the previous code relies on the layout information, which may not
19570        be up-to-date during preferred logical width computation.
19571
19572        Test: fast/table/bad-replaced-sizing-preferred-logical-widths.html
19573              fast/replaced/vertical-writing-mode-max-logical-width.html
19574
19575        * rendering/RenderReplaced.cpp:
19576        (WebCore::RenderReplaced::computeMaxPreferredLogicalWidth):
19577        Added this helper method. The main difference with the old code is that it handles the percent logical width
19578        properly before calling the old code path. This is not totally right but before forking the whole code, it's
19579        better to have more evidence that forking preferred logical widths and logical width computation is the way to go.
19580
19581        (WebCore::RenderReplaced::computePreferredLogicalWidths):
19582        Changed to call computeMaxPreferredLogicalWidth. Also fixed an existing bug in vertical-writing modes where we would
19583        add the wrong paddings and borders.
19584
19585        * rendering/RenderReplaced.h:
19586        (RenderReplaced): Added computeMaxPreferredLogicalWidth.
19587
195882012-09-12  Max Vujovic  <mvujovic@adobe.com>
19589
19590        [CSS Shaders] Cached validated programs are destroyed and recreated when there is only one custom filter animating
19591        https://bugs.webkit.org/show_bug.cgi?id=96563
19592
19593        Reviewed by Dean Jackson.
19594
19595        Before this patch, in FilterEffectRenderer::build, we would first clear the old effects and
19596        then create the new effects.
19597
19598        Suppose we have one FECustomFilter animating on the page. This FECustomFilter holds the last
19599        reference to the cached validated program. Before this patch, we would first destroy the old
19600        FECustomFilter, which would destroy its cached validated program. Then, we would create the
19601        new FECustomFilter and have to recreate the validated program.
19602
19603        This patch makes FilterEffectRenderer::build keep the old effects around until we're
19604        done creating the new effects. This way, we won't recreate validated programs.
19605
19606        No new tests. We can't test this because the validated program cache is not exposed to web
19607        pages.
19608
19609        * rendering/FilterEffectRenderer.cpp:
19610        (WebCore::FilterEffectRenderer::build):
19611
196122012-09-12  Tony Chang  <tony@chromium.org>
19613
19614        flex item sized incorrectly in a column flexbox with height set via top/bottom
19615        https://bugs.webkit.org/show_bug.cgi?id=94855
19616
19617        Reviewed by Ojan Vafai.
19618
19619        Stop using computeContentLogicalHeight() to get the height of the flexbox and
19620        use computeLogicalHeight directly.  This properly takes into account out of flow
19621        positioning.
19622
19623        We can actually refactor some of this into common code, but I want to do that as
19624        a separate pass.
19625
19626        Test: css3/flexbox/columns-height-set-via-top-bottom.html
19627
19628        * rendering/RenderFlexibleBox.cpp:
19629        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Fix out of date comment.
19630        (WebCore::RenderFlexibleBox::mainAxisContentExtent): Use computeLogicalHeight instead of computeContentLogicalHeight.
19631        This code actually never gets used-- I'll try to remove in a follow up.
19632        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): Use computeLogicalHeight instead of computeContentLogicalHeight.
19633        (WebCore::RenderFlexibleBox::lineBreakLength): Use computeLogicalHeight instead of computeContentLogicalHeight.
19634
196352012-09-12  Adam Barth  <abarth@webkit.org>
19636
19637        [V8] V8DOMWrapper::perContextData has no callers and can be removed
19638        https://bugs.webkit.org/show_bug.cgi?id=96574
19639
19640        Reviewed by Kentaro Hara.
19641
19642        * bindings/v8/V8DOMWrapper.cpp:
19643        * bindings/v8/V8DOMWrapper.h:
19644        (WebCore::V8DOMWrapper::getCachedWrapper):
19645
196462012-09-12  Alexandru Chiculita  <achicu@adobe.com>
19647
19648        [CSS Shaders] Implement transform parameter animations for CSS Custom Filters
19649        https://bugs.webkit.org/show_bug.cgi?id=94980
19650
19651        Reviewed by Dean Jackson.
19652
19653        Based on patch from Joshua Netterfield <jnetterfield@rim.com>.
19654
19655        According to Section 39.2 of Filter Effects 1.0 Editor's draft
19656        (https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html), animations
19657        of transforms should be handled following the CSS3 transform interpolation
19658        rules. This patch implements this functionality.
19659
19660        Test: css3/filters/custom/custom-filter-transforms-animation.html
19661
19662        * page/animation/CSSPropertyAnimation.cpp:
19663        (WebCore::blendFunc):
19664        (WebCore):
19665        * platform/graphics/filters/CustomFilterNumberParameter.h:
19666        (WebCore::CustomFilterNumberParameter::blend):
19667        * platform/graphics/filters/CustomFilterOperation.cpp:
19668        (WebCore::blendCustomFilterParameters):
19669        (WebCore::CustomFilterOperation::blend):
19670        * platform/graphics/filters/CustomFilterOperation.h:
19671        (WebCore):
19672        (WebCore::CustomFilterOperation::blendingNeedsRendererSize): Some filters need the box size, so that they could compute
19673        Transforms. Right now only the CustomFilterOperation needs that, but I've implemented using this generic function.
19674        (CustomFilterOperation):
19675        * platform/graphics/filters/CustomFilterParameter.h:
19676        (CustomFilterParameter):
19677        * platform/graphics/filters/CustomFilterTransformParameter.h:
19678        (CustomFilterTransformParameter):
19679        (WebCore::CustomFilterTransformParameter::blend):
19680        * platform/graphics/filters/FilterOperation.h:
19681        (WebCore::FilterOperation::FilterOperation::blend):
19682        (FilterOperation):
19683        (WebCore::FilterOperation::FilterOperation::blendingNeedsRendererSize):
19684        * platform/graphics/transforms/TransformOperations.cpp: Extracted the blending functions from CSSPropertyAnimation.cpp
19685        so that they could be reused from other classes.
19686        (WebCore::TransformOperations::blendByMatchingOperations):
19687        (WebCore):
19688        (WebCore::TransformOperations::blendByUsingMatrixInterpolation): Used when the TransformOperations do not match.
19689        (WebCore::TransformOperations::blend): Uses when the caller doesn't know whether the TransformOperations match or not.
19690        * platform/graphics/transforms/TransformOperations.h:
19691        (TransformOperations):
19692
196932012-09-12  Alec Flett  <alecflett@chromium.org>
19694
19695        IndexedDB: Use ScriptValue instead of SerializedScriptValue when possible
19696        https://bugs.webkit.org/show_bug.cgi?id=94023
19697
19698        Reviewed by Kentaro Hara.
19699
19700        Transition the put/add/update methods to accept direct ScriptValue
19701        objects rather than SerializedScriptValues, to eliminate lots of
19702        redundant deserialization/serialization steps while storing
19703        values.
19704
19705        Also see https://bugs.webkit.org/show_bug.cgi?id=95409 for
19706        followup get/openCursor work, following this.
19707
19708        No new tests, this is a performance refactor of core IDB
19709        functionality. Most existing tests cover correctness. Tests that
19710        might fail include:
19711
19712        storage/indexeddb/objectstore-basics.html
19713        storage/indexeddb/keypath-basics.html
19714        storage/indexeddb/index-basics.html
19715
19716        * Modules/indexeddb/IDBCursor.cpp:
19717        (WebCore::IDBCursor::update):
19718        * Modules/indexeddb/IDBCursor.h:
19719        (IDBCursor):
19720        * Modules/indexeddb/IDBCursor.idl:
19721        * Modules/indexeddb/IDBObjectStore.cpp:
19722        (WebCore::generateIndexKeysForValue):
19723        (WebCore::IDBObjectStore::add):
19724        (WebCore::IDBObjectStore::put):
19725        (WebCore):
19726        * Modules/indexeddb/IDBObjectStore.h:
19727        (WebCore::IDBObjectStore::add):
19728        (WebCore::IDBObjectStore::put):
19729        (IDBObjectStore):
19730        * Modules/indexeddb/IDBObjectStore.idl:
19731        * bindings/v8/IDBBindingUtilities.cpp:
19732        (WebCore):
19733        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
19734        (WebCore::deserializeIDBValue):
19735        (WebCore::canInjectIDBKeyIntoScriptValue):
19736        * bindings/v8/IDBBindingUtilities.h:
19737        (WebCore):
19738
197392012-09-12  Chris Fleizach  <cfleizach@apple.com>
19740
19741        AX: svg:image not accessible
19742        https://bugs.webkit.org/show_bug.cgi?id=96341
19743
19744        Reviewed by Adele Peterson.
19745
19746        Test: accessibility/svg-image.html
19747
19748        * accessibility/AccessibilityRenderObject.cpp:
19749        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
19750
197512012-09-12  Ojan Vafai  <ojan@chromium.org>
19752
19753        percentage widths rendered wrong in vertical writing mode with orthogonal parent
19754        https://bugs.webkit.org/show_bug.cgi?id=96308
19755
19756        Reviewed by Tony Chang.
19757
19758        When the containingBlock is in a perpendicular writing-mode, we need to use
19759        it's logicalWidth as the availableHeight for computing percentage values.
19760
19761        Tests: fast/writing-mode/percentage-height-orthogonal-writing-modes-quirks.html
19762               fast/writing-mode/percentage-height-orthogonal-writing-modes.html
19763
19764        * rendering/RenderBox.cpp:
19765        (WebCore::RenderBox::computePercentageLogicalHeight):
19766        (WebCore::RenderBox::availableLogicalHeightUsing):
19767        Added some FIXMEs for perpendicular writing mode cases.
19768
197692012-09-12  Adam Barth  <abarth@webkit.org>
19770
19771        [v8] document.getCSSCanvasContext doesn't need to be custom
19772        https://bugs.webkit.org/show_bug.cgi?id=96560
19773
19774        Reviewed by Eric Seidel.
19775
19776        Instead of having a special case for toV8(CanvasRenderingContext*)
19777        inlined into this custom function, we should just make the toV8
19778        function itself custom.
19779
19780        Test: fast/canvas/canvas-css-crazy.html
19781
19782        * UseV8.cmake:
19783        * WebCore.gypi:
19784        * bindings/v8/custom/V8DocumentCustom.cpp:
19785        * dom/Document.idl:
19786        * html/canvas/CanvasRenderingContext.idl:
19787
197882012-09-12  Eric Seidel  <eric@webkit.org>
19789
19790        HTML parser fails to propertly close 4 identical nested formatting elements
19791        https://bugs.webkit.org/show_bug.cgi?id=96385
19792
19793        Reviewed by Adam Barth.
19794
19795        Add missing Adoption agency step 4.a to fix one of our two outlying Adoption Agency bugs.
19796        This is the same step that Opera was missing (must have been recently added to the spec).
19797
19798        * html/parser/HTMLTreeBuilder.cpp:
19799        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
19800
198012012-09-12  Siraj Razick  <siraj.razick@collabora.co.uk>
19802
19803        [GTK] Protect RedirectedXCompositeWindow with USE(GLX) when building the clutter AC backend
19804        https://bugs.webkit.org/show_bug.cgi?id=96165
19805
19806        Reviewed by Martin Robinson.
19807
19808        RedirectedXCompositeWindow.cpp and RedirectedXCompositeWindow.h files requies openGL specific
19809        headers to compile so when we build webkit clutter AC backend these files failed to compile,
19810        This patch protects these two files with USE(GLX) when building webkit with Clutter AC backend.
19811
19812        No new tests since this is a build fix
19813
19814        * platform/gtk/RedirectedXCompositeWindow.cpp:
19815        * platform/gtk/RedirectedXCompositeWindow.h:
19816        protects both the files with USE(GLX)
19817
198182012-09-12  Ojan Vafai  <ojan@chromium.org>
19819
19820        RenderBox::computeLogicalClientHeight is incorrectly named
19821        https://bugs.webkit.org/show_bug.cgi?id=94288
19822
19823        Reviewed by Tony Chang.
19824
19825        Just renamed a couple methods to make it more clear what they return.
19826        No behavior changes.
19827
19828        * rendering/RenderBox.cpp:
19829        (WebCore::RenderBox::computeLogicalHeightUsing):
19830        (WebCore::RenderBox::computeContentLogicalHeight):
19831        (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
19832        (WebCore::RenderBox::availableLogicalHeightUsing):
19833        * rendering/RenderBox.h:
19834        (RenderBox):
19835        * rendering/RenderFlexibleBox.cpp:
19836        (WebCore::RenderFlexibleBox::mainAxisContentExtent):
19837        (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
19838        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
19839        (WebCore::RenderFlexibleBox::lineBreakLength):
19840
198412012-09-12  Joshua Bell  <jsbell@chromium.org>
19842
19843        IndexedDB: The |source| property of IDBFactory.open() request should be null
19844        https://bugs.webkit.org/show_bug.cgi?id=96551
19845
19846        Reviewed by Tony Chang.
19847
19848        Per the IDB spec, the source property of the IDBOpenDBRequest returned by IDBFactory.open()
19849        should be set to null. We were setting it to the IDBFactory object instead.
19850
19851        Tests: storage/indexeddb/basics.html
19852               storage/indexeddb/basics-workers.html
19853               storage/indexeddb/mozilla/event-source.html
19854               storage/indexeddb/readonly.html
19855
19856        * Modules/indexeddb/IDBFactory.cpp:
19857        (WebCore::IDBFactory::open):
19858
198592012-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
19860
19861        Unreviewed, rolling out r128353.
19862        http://trac.webkit.org/changeset/128353
19863        https://bugs.webkit.org/show_bug.cgi?id=96565
19864
19865        Re-land change that broke tests on Chromium. Tests are now
19866        disabled, will rebaseline after this rolls. (Requested by
19867        dmazzoni on #webkit).
19868
19869        * accessibility/AccessibilityNodeObject.cpp:
19870        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
19871        (WebCore::AccessibilityNodeObject::canHaveChildren):
19872        (WebCore):
19873        (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
19874        (WebCore::AccessibilityNodeObject::isWebArea):
19875        (WebCore::AccessibilityNodeObject::isImageButton):
19876        (WebCore::AccessibilityNodeObject::isAnchor):
19877        (WebCore::AccessibilityNodeObject::isNativeTextControl):
19878        (WebCore::AccessibilityNodeObject::isSearchField):
19879        (WebCore::AccessibilityNodeObject::isNativeImage):
19880        (WebCore::AccessibilityNodeObject::isImage):
19881        (WebCore::AccessibilityNodeObject::isPasswordField):
19882        (WebCore::AccessibilityNodeObject::isInputImage):
19883        (WebCore::AccessibilityNodeObject::isProgressIndicator):
19884        (WebCore::AccessibilityNodeObject::isSlider):
19885        (WebCore::AccessibilityNodeObject::isMenuRelated):
19886        (WebCore::AccessibilityNodeObject::isMenu):
19887        (WebCore::AccessibilityNodeObject::isMenuBar):
19888        (WebCore::AccessibilityNodeObject::isMenuButton):
19889        (WebCore::AccessibilityNodeObject::isMenuItem):
19890        (WebCore::AccessibilityNodeObject::isNativeCheckboxOrRadio):
19891        (WebCore::AccessibilityNodeObject::isEnabled):
19892        (WebCore::AccessibilityNodeObject::isIndeterminate):
19893        (WebCore::AccessibilityNodeObject::isPressed):
19894        (WebCore::AccessibilityNodeObject::isChecked):
19895        (WebCore::AccessibilityNodeObject::isHovered):
19896        (WebCore::AccessibilityNodeObject::isMultiSelectable):
19897        (WebCore::AccessibilityNodeObject::isReadOnly):
19898        (WebCore::AccessibilityNodeObject::isRequired):
19899        (WebCore::AccessibilityNodeObject::headingLevel):
19900        (WebCore::AccessibilityNodeObject::valueDescription):
19901        (WebCore::AccessibilityNodeObject::isARIARange):
19902        (WebCore::AccessibilityNodeObject::valueForRange):
19903        (WebCore::AccessibilityNodeObject::maxValueForRange):
19904        (WebCore::AccessibilityNodeObject::minValueForRange):
19905        (WebCore::AccessibilityNodeObject::stepValueForRange):
19906        (WebCore::AccessibilityNodeObject::isHeading):
19907        (WebCore::AccessibilityNodeObject::isLink):
19908        (WebCore::AccessibilityNodeObject::isControl):
19909        (WebCore::AccessibilityNodeObject::isFieldset):
19910        (WebCore::AccessibilityNodeObject::isGroup):
19911        (WebCore::AccessibilityNodeObject::selectedRadioButton):
19912        (WebCore::AccessibilityNodeObject::selectedTabItem):
19913        (WebCore::AccessibilityNodeObject::checkboxOrRadioValue):
19914        (WebCore::AccessibilityNodeObject::anchorElement):
19915        (WebCore::AccessibilityNodeObject::actionElement):
19916        (WebCore::AccessibilityNodeObject::mouseButtonListener):
19917        (WebCore::AccessibilityNodeObject::isDescendantOfBarrenParent):
19918        (WebCore::AccessibilityNodeObject::alterSliderValue):
19919        (WebCore::AccessibilityNodeObject::increment):
19920        (WebCore::AccessibilityNodeObject::decrement):
19921        (WebCore::AccessibilityNodeObject::changeValueByStep):
19922        (WebCore::AccessibilityNodeObject::changeValueByPercent):
19923        (WebCore::AccessibilityNodeObject::isGenericFocusableElement):
19924        (WebCore::AccessibilityNodeObject::labelForElement):
19925        (WebCore::AccessibilityNodeObject::ariaAccessibilityDescription):
19926        (WebCore::siblingWithAriaRole):
19927        (WebCore::AccessibilityNodeObject::menuElementForMenuButton):
19928        (WebCore::AccessibilityNodeObject::menuForMenuButton):
19929        (WebCore::AccessibilityNodeObject::menuItemElementForMenu):
19930        (WebCore::AccessibilityNodeObject::menuButtonForMenu):
19931        (WebCore::AccessibilityNodeObject::accessibilityDescription):
19932        (WebCore::AccessibilityNodeObject::helpText):
19933        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
19934        (WebCore::AccessibilityNodeObject::textUnderElement):
19935        (WebCore::AccessibilityNodeObject::title):
19936        (WebCore::AccessibilityNodeObject::text):
19937        (WebCore::AccessibilityNodeObject::stringValue):
19938        (WebCore::accessibleNameForNode):
19939        (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
19940        (WebCore::AccessibilityNodeObject::elementsFromAttribute):
19941        (WebCore::AccessibilityNodeObject::ariaLabeledByElements):
19942        (WebCore::AccessibilityNodeObject::ariaLabeledByAttribute):
19943        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
19944        * accessibility/AccessibilityNodeObject.h:
19945        (AccessibilityNodeObject):
19946        (WebCore::AccessibilityNodeObject::node):
19947        * accessibility/AccessibilityRenderObject.cpp:
19948        (WebCore::AccessibilityRenderObject::parentObject):
19949        (WebCore::AccessibilityRenderObject::isReadOnly):
19950        (WebCore::AccessibilityRenderObject::helpText):
19951        (WebCore::AccessibilityRenderObject::accessibilityDescription):
19952        (WebCore::AccessibilityRenderObject::text):
19953        (WebCore::AccessibilityRenderObject::contentChanged):
19954        (WebCore):
19955        (WebCore::AccessibilityRenderObject::canHaveChildren):
19956        * accessibility/AccessibilityRenderObject.h:
19957        (AccessibilityRenderObject):
19958
199592012-09-12  Michael Saboff  <msaboff@apple.com>
19960
19961        Element::classAttributeChanged should use characters8/16 to find first non-whitespace
19962        https://bugs.webkit.org/show_bug.cgi?id=96446
19963
19964        Reviewed by Benjamin Poulain.
19965
19966        Made two new static templated methods to handle 8 or 16 bit class names.
19967
19968        No functional change, so no new tests.
19969
19970        * dom/Element.cpp:
19971        (WebCore::classStringHasClassName):
19972        (WebCore::Element::classAttributeChanged):
19973
199742012-09-12  Adam Barth  <abarth@chromium.org>
19975
19976        [V8] V8DOMWrapper::constructorForType is unnecessary now that we can get V8PerContextData from the v8::Context
19977        https://bugs.webkit.org/show_bug.cgi?id=96556
19978
19979        Reviewed by Eric Seidel.
19980
19981        These functions no longer serve a purpose now that we can get the
19982        V8PerContextData directly from the context. Previously we had to find
19983        the Frame in order to find the per-context data.
19984
19985        * bindings/scripts/CodeGeneratorV8.pm:
19986        (GenerateConstructorGetter):
19987        * bindings/v8/V8DOMWindowShell.cpp:
19988        (WebCore::V8DOMWindowShell::installDOMWindow):
19989        * bindings/v8/V8DOMWrapper.cpp:
19990        (WebCore::V8DOMWrapper::instantiateV8Object):
19991        * bindings/v8/V8DOMWrapper.h:
19992        (V8DOMWrapper):
19993        * bindings/v8/V8PerContextData.cpp:
19994        (WebCore::V8PerContextData::from):
19995        * bindings/v8/V8PerContextData.h:
19996        (V8PerContextData):
19997            - Changed this function to accept an arbitrary context rather than
19998              requiring the caller to use the current context.
19999
200002012-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
20001
20002        Unreviewed, rolling out r128318 and r128332.
20003        http://trac.webkit.org/changeset/128318
20004        http://trac.webkit.org/changeset/128332
20005        https://bugs.webkit.org/show_bug.cgi?id=96547
20006
20007        Caused accessibility test failures on snow leopard (Requested
20008        by jamesr_ on #webkit).
20009
20010        * accessibility/AccessibilityNodeObject.cpp:
20011        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
20012        (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
20013        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
20014        * accessibility/AccessibilityNodeObject.h:
20015        (AccessibilityNodeObject):
20016        (WebCore::AccessibilityNodeObject::node):
20017        * accessibility/AccessibilityRenderObject.cpp:
20018        (WebCore):
20019        (WebCore::AccessibilityRenderObject::isWebArea):
20020        (WebCore::AccessibilityRenderObject::isImageButton):
20021        (WebCore::AccessibilityRenderObject::isAnchor):
20022        (WebCore::AccessibilityRenderObject::isNativeTextControl):
20023        (WebCore::AccessibilityRenderObject::isSearchField):
20024        (WebCore::AccessibilityRenderObject::isNativeImage):
20025        (WebCore::AccessibilityRenderObject::isImage):
20026        (WebCore::AccessibilityRenderObject::isPasswordField):
20027        (WebCore::AccessibilityRenderObject::isInputImage):
20028        (WebCore::AccessibilityRenderObject::isProgressIndicator):
20029        (WebCore::AccessibilityRenderObject::isSlider):
20030        (WebCore::AccessibilityRenderObject::isMenuRelated):
20031        (WebCore::AccessibilityRenderObject::isMenu):
20032        (WebCore::AccessibilityRenderObject::isMenuBar):
20033        (WebCore::AccessibilityRenderObject::isMenuButton):
20034        (WebCore::AccessibilityRenderObject::isMenuItem):
20035        (WebCore::AccessibilityRenderObject::isPressed):
20036        (WebCore::AccessibilityRenderObject::isIndeterminate):
20037        (WebCore::AccessibilityRenderObject::isNativeCheckboxOrRadio):
20038        (WebCore::AccessibilityRenderObject::isChecked):
20039        (WebCore::AccessibilityRenderObject::isHovered):
20040        (WebCore::AccessibilityRenderObject::isMultiSelectable):
20041        (WebCore::AccessibilityRenderObject::isReadOnly):
20042        (WebCore::AccessibilityRenderObject::headingLevel):
20043        (WebCore::AccessibilityRenderObject::isHeading):
20044        (WebCore::AccessibilityRenderObject::isLink):
20045        (WebCore::AccessibilityRenderObject::isControl):
20046        (WebCore::AccessibilityRenderObject::isFieldset):
20047        (WebCore::AccessibilityRenderObject::isGroup):
20048        (WebCore::AccessibilityRenderObject::selectedRadioButton):
20049        (WebCore::AccessibilityRenderObject::selectedTabItem):
20050        (WebCore::AccessibilityRenderObject::actionElement):
20051        (WebCore::AccessibilityRenderObject::mouseButtonListener):
20052        (WebCore::AccessibilityRenderObject::alterSliderValue):
20053        (WebCore::AccessibilityRenderObject::increment):
20054        (WebCore::AccessibilityRenderObject::decrement):
20055        (WebCore::siblingWithAriaRole):
20056        (WebCore::AccessibilityRenderObject::menuElementForMenuButton):
20057        (WebCore::AccessibilityRenderObject::menuForMenuButton):
20058        (WebCore::AccessibilityRenderObject::menuItemElementForMenu):
20059        (WebCore::AccessibilityRenderObject::menuButtonForMenu):
20060        (WebCore::AccessibilityRenderObject::hierarchicalLevel):
20061        (WebCore::AccessibilityRenderObject::checkboxOrRadioValue):
20062        (WebCore::AccessibilityRenderObject::valueDescription):
20063        (WebCore::AccessibilityRenderObject::stepValueForRange):
20064        (WebCore::AccessibilityRenderObject::isARIARange):
20065        (WebCore::AccessibilityRenderObject::valueForRange):
20066        (WebCore::AccessibilityRenderObject::maxValueForRange):
20067        (WebCore::AccessibilityRenderObject::minValueForRange):
20068        (WebCore::accessibleNameForNode):
20069        (WebCore::AccessibilityRenderObject::accessibilityDescriptionForElements):
20070        (WebCore::AccessibilityRenderObject::elementsFromAttribute):
20071        (WebCore::AccessibilityRenderObject::ariaLabeledByElements):
20072        (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute):
20073        (WebCore::labelForElement):
20074        (WebCore::AccessibilityRenderObject::title):
20075        (WebCore::AccessibilityRenderObject::ariaAccessibilityDescription):
20076        (WebCore::AccessibilityRenderObject::accessibilityDescription):
20077        (WebCore::AccessibilityRenderObject::isDescendantOfBarrenParent):
20078        (WebCore::AccessibilityRenderObject::text):
20079        (WebCore::AccessibilityRenderObject::isRequired):
20080        (WebCore::AccessibilityRenderObject::changeValueByStep):
20081        (WebCore::AccessibilityRenderObject::changeValueByPercent):
20082        (WebCore::AccessibilityRenderObject::isEnabled):
20083        (WebCore::AccessibilityRenderObject::isGenericFocusableElement):
20084        (WebCore::AccessibilityRenderObject::canHaveChildren):
20085        * accessibility/AccessibilityRenderObject.h:
20086        (AccessibilityRenderObject):
20087
200882012-09-12  Christophe Dumez  <christophe.dumez@intel.com>
20089
20090        [EFL] Compilation error in RenderThemeEfl.cpp
20091        https://bugs.webkit.org/show_bug.cgi?id=96540
20092
20093        Unreviewed build fix.
20094
20095        Fix compilation error in RenderThemeEfl.cpp when building
20096        in debug mode.
20097
20098        * platform/efl/RenderThemeEfl.h:
20099        (WebCore::RenderThemeEfl::canvas):
20100        (WebCore::RenderThemeEfl::edje):
20101
201022012-09-12  Sami Kyostila  <skyostil@google.com>
20103
20104        Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING
20105        https://bugs.webkit.org/show_bug.cgi?id=96251
20106
20107        Reviewed by Simon Fraser.
20108
20109        Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING to better describe
20110        the feature it controls.
20111
20112        No tests because of no change in runtime behavior.
20113
20114        * css/CSSComputedStyleDeclaration.cpp:
20115        (WebCore):
20116        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
20117        * css/CSSParser.cpp:
20118        (WebCore::isValidKeywordPropertyAndValue):
20119        (WebCore::isKeywordPropertyID):
20120        (WebCore::CSSParser::parseValue):
20121        * css/CSSProperty.cpp:
20122        (WebCore::CSSProperty::isInheritedProperty):
20123        * css/CSSPropertyNames.in:
20124        * css/CSSValueKeywords.in:
20125        * css/StyleResolver.cpp:
20126        (WebCore::StyleResolver::collectMatchingRulesForList):
20127        * rendering/RenderLayer.cpp:
20128        (WebCore::RenderLayer::usesCompositedScrolling):
20129        * rendering/style/RenderStyle.h:
20130        * rendering/style/StyleRareInheritedData.cpp:
20131        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
20132        (WebCore::StyleRareInheritedData::operator==):
20133        * rendering/style/StyleRareInheritedData.h:
20134        (StyleRareInheritedData):
20135
201362012-09-12  Levi Weintraub  <leviw@chromium.org>
20137
20138        Inline repainting can be off-by-one with sub-pixel enabled
20139        https://bugs.webkit.org/show_bug.cgi?id=95882
20140
20141        Reviewed by Eric Seidel.
20142
20143        With sub-pixel layout enabled, context accumulated from containing renderers is used to properly
20144        pixel snap. Selection repaint rects are stored outside the affected renderers, and are handed to
20145        the embedder without the context to correctly determine the snapped values. This can result in
20146        repaint areas smaller than what's needed.
20147
20148        This could be fixed three ways:
20149        - by changing selection repaint rects to an IntRect and pixel snapping the values before storing
20150          them outside the render tree. This is the narrowest solution.
20151        - by adapting layout to store pixel snapping hints along with the size/location of the renderer.
20152          This is the best possible solution, as it would help solve a lot of pixel snapping issues and
20153          reduce complexity of handling. I eventually intend on implementing this.
20154        - by reverting repaintUsingContainer to IntRects and using pixel snapping when possible, and
20155          enclosingIntRect where we lack context.
20156
20157        This implements the last solution, as it's the least invasive, but can potentially fix numerous
20158        sub-pixel repaint issues.
20159
20160        Test: fast/sub-pixel/selection/selection-rect-in-sub-pixel-table.html
20161
20162        * rendering/RenderBlockLineLayout.cpp:
20163        (WebCore::RenderBlock::layoutRunsAndFloats):
20164        * rendering/RenderLayer.cpp:
20165        (WebCore::RenderLayer::updateLayerPositions):
20166        (WebCore::RenderLayer::scrollTo):
20167        (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants):
20168        * rendering/RenderObject.cpp:
20169        (WebCore::RenderObject::repaintUsingContainer):
20170        (WebCore::RenderObject::repaint):
20171        (WebCore::RenderObject::repaintRectangle):
20172        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
20173        * rendering/RenderObject.h:
20174        (RenderObject):
20175        * rendering/RenderSelectionInfo.h:
20176        (WebCore::RenderSelectionInfo::repaint):
20177        (WebCore::RenderBlockSelectionInfo::repaint):
20178
201792012-09-12  Michael Saboff  <msaboff@apple.com>
20180
20181        Build fixed for http://trac.webkit.org/changeset/128243
20182
20183        Unreviewed build fix.
20184
20185        Change UnicodeString::extract for gcc based on ICU fix described in
20186        http://bugs.icu-project.org/trac/ticket/8197.
20187
20188        * icu/unicode/unistr.h:
20189        (UnicodeString::extract):
20190
201912012-09-12  Christopher Cameron  <ccameron@chromium.org>
20192
20193        [chromium] Evict textures through the texture manager instead of the resource provider
20194        https://bugs.webkit.org/show_bug.cgi?id=96463
20195
20196        Reviewed by James Robinson.
20197
20198        When deleting contents textures' resources on the impl thread, do the
20199        deletion through the CCPrioritizedTextureManager instead of the
20200        CCResourceProvider.
20201
20202        This requires traversing the backings list on the impl thread while
20203        the main thread is running, so remove the one remaining traversal of
20204        the backings list by the main thread. This traversal happens when
20205        unlinking textures that were evicted by the impl thread, so explicitly
20206        send the list of evicted backings from the impl thread to the main thread.
20207
20208        Unify all resource deletion paths in the CCPrioritizedTextureManager.
20209        Always perform the sequence of eviction (deleting the GL resource) and
20210        then destruction of evicted backings (deleting the objects).  Also,
20211        use the same function (evictBackingsToReduceMemory) to reduce memory
20212        consumption both during commit and when done by the impl thread in response
20213        to a request by the GPU memory manager.
20214
20215        Note that destroying only some of the resources at a time during texture
20216        eviction (as opposed all resources) is still not supported because the
20217        texture upload queues cannot be only-partially invalidated yet.
20218
20219        Updated tests to take this behavior into account.
20220
20221        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
20222        (WebCore::CCLayerTreeHost::reduceContentsTexturesMemoryOnImplThread):
20223        (WebCore):
20224        (WebCore::CCLayerTreeHost::getEvictedContentTexturesBackings):
20225        (WebCore::CCLayerTreeHost::unlinkEvictedContentTexturesBackings):
20226        (WebCore::CCLayerTreeHost::deleteEvictedContentTexturesBackings):
20227        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
20228        (CCLayerTreeHost):
20229        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
20230        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
20231        (WebCore::CCLayerTreeHostImpl::setContentsTexturesPurged):
20232        (WebCore):
20233        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
20234        (CCLayerTreeHostImplClient):
20235        (CCLayerTreeHostImpl):
20236        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
20237        (WebCore::CCPrioritizedTextureManager::~CCPrioritizedTextureManager):
20238        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
20239        (WebCore::CCPrioritizedTextureManager::evictBackingsToReduceMemory):
20240        (WebCore::CCPrioritizedTextureManager::reduceMemory):
20241        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
20242        (WebCore::CCPrioritizedTextureManager::reduceMemoryOnImplThread):
20243        (WebCore::CCPrioritizedTextureManager::getEvictedBackings):
20244        (WebCore::CCPrioritizedTextureManager::unlinkEvictedBackings):
20245        (WebCore):
20246        (WebCore::CCPrioritizedTextureManager::deleteEvictedBackings):
20247        (WebCore::CCPrioritizedTextureManager::evictBackingResource):
20248        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
20249        (CCPrioritizedTextureManager):
20250        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
20251        (WebCore::CCSingleThreadProxy::releaseContentsTexturesOnImplThread):
20252        (WebCore):
20253        (WebCore::CCSingleThreadProxy::commitAndComposite):
20254        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
20255        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
20256        (WebCore::CCThreadProxy::releaseContentsTexturesOnImplThread):
20257        (WebCore):
20258        (WebCore::CCThreadProxy::scheduledActionBeginFrame):
20259        (WebCore::CCThreadProxy::beginFrame):
20260        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
20261        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
20262        (WebCore::CCThreadProxy::recreateContextOnImplThread):
20263        * platform/graphics/chromium/cc/CCThreadProxy.h:
20264        (BeginFrameAndCommitState):
20265        (CCThreadProxy):
20266
202672012-09-12  Mike Fenton  <mifenton@rim.com>
20268
20269        [BlackBerry] Add custom messages for input type validation.
20270        https://bugs.webkit.org/show_bug.cgi?id=96533
20271
20272        Reviewed by Antonio Gomes.
20273
20274        PR 179148.
20275
20276        Add validation messages for Email, MultipleEmail and Url.
20277
20278        Reviewed Internally by Nima Ghanavatian.
20279
20280        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
20281        (WebCore::validationMessageTypeMismatchForEmailText):
20282        (WebCore::validationMessageTypeMismatchForMultipleEmailText):
20283        (WebCore::validationMessageTypeMismatchForURLText):
20284
202852012-09-12  Mark Pilgrim  <pilgrim@chromium.org>
20286
20287        [Chromium] Remove unused notifyFormStateChanged function in PlatformSupport
20288        https://bugs.webkit.org/show_bug.cgi?id=96527
20289
20290        Reviewed by Kentaro Hara.
20291
20292        Part of a refactoring series. See tracking bug 82948.
20293
20294        * platform/chromium/PlatformSupport.h:
20295        (PlatformSupport):
20296
202972012-09-12  Mihnea Ovidenie  <mihnea@adobe.com>
20298
20299        [CSSRegions]Shrink RenderFlowThread size by using bit flags
20300        https://bugs.webkit.org/show_bug.cgi?id=96503
20301
20302        Reviewed by Andreas Kling.
20303
20304        Use bit fields instead of full bool.
20305
20306        No new functionality, just refactoring. Functionality covered by existing tests in fast/regions.
20307
20308        * rendering/RenderFlowThread.h:
20309
203102012-09-12  Max Vujovic  <mvujovic@adobe.com>
20311
20312        [CSS Shaders] Remove direct texture access via u_texture
20313        https://bugs.webkit.org/show_bug.cgi?id=93871
20314
20315        Reviewed by Dean Jackson.
20316
20317        Remove the author-accessible "u_texture" sampler, which referenced the DOM element texture.
20318
20319        Additionally, reject shaders with author-defined sampler uniforms. When we implement texture 
20320        parameters, we will allow shaders whose samplers are bound to valid textures. We must not
20321        allow OpenGL to give unbound samplers a default value of 0 because that references the DOM
20322        element texture, which should be inaccessible to the author's shader code.
20323
20324        Test: css3/filters/custom/custom-filter-no-element-texture-access.html
20325
20326        * platform/graphics/ANGLEWebKitBridge.cpp:
20327        (WebCore::getValidationResultValue):
20328            Add a file-static function to easily query the integer values that ANGLE exposes about
20329            the last validation result. The new getUniforms method and the existing
20330            validateShaderSource method now both use getValidationResultValue.
20331        (WebCore):
20332        (WebCore::ANGLEWebKitBridge::validateShaderSource):
20333            Use the new getValidationResultValue function instead of ANGLE's ShGetInfo function.
20334        (WebCore::ANGLEWebKitBridge::getUniforms):
20335            Add a new public method to ANGLEWebKitBridge which gets the info about all of the
20336            uniforms in the last validated vertex shader or fragment shader. Uniform info includes
20337            name, type, and size.
20338        * platform/graphics/ANGLEWebKitBridge.h:
20339        (ANGLEShaderSymbol):
20340        (WebCore::ANGLEShaderSymbol::isSampler):
20341            Returns true if the symbol's data type is a GLSL sampler (e.g. sampler2D, samplerCube).
20342        (WebCore):
20343        (ANGLEWebKitBridge):
20344        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
20345        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
20346            Take in an additional programType constructor parameter.
20347        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
20348            Remove the author-accessible DOM element texture sampler "u_texture". Only find the
20349            location of the internal DOM element texture sampler "css_u_texture" if the author is
20350            using the CSS mix function.
20351        * platform/graphics/filters/CustomFilterCompiledProgram.h:
20352        * platform/graphics/filters/CustomFilterProgramInfo.h:
20353        (CustomFilterProgramInfo):
20354        (WebCore::CustomFilterProgramInfo::programType):
20355            Add the new CustomFilterProgramType enum. In CustomFilterProgramInfo, we plan to replace
20356            mixSettings.enabled with a programType. See:
20357            https://bugs.webkit.org/show_bug.cgi?id=96448
20358        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
20359            Reject all shaders that have sampler uniforms defined.
20360        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
20361        (WebCore::CustomFilterValidatedProgram::compiledProgram):
20362        * platform/graphics/filters/FECustomFilter.cpp:
20363        (WebCore::FECustomFilter::bindProgramAndBuffers):
20364            Add an assert to verify that the DOM element texture is bound only if the author is
20365            using the CSS mix function.
20366
203672012-09-12  Dominic Mazzoni  <dmazzoni@google.com>
20368
20369        Assert hit in is multiSelectable()
20370        https://bugs.webkit.org/show_bug.cgi?id=96530
20371
20372        Reviewed by Chris Fleizach.
20373
20374        Fix crash if element isn't a select element.
20375
20376        This bug slipped through in a refactoring change (bug 96323).
20377        Covered by existing tests.
20378
20379        * accessibility/AccessibilityNodeObject.cpp:
20380        (WebCore::AccessibilityNodeObject::isMultiSelectable):
20381
203822012-09-11 MORITA Hajime  <morrita@google.com>
20383
20384        [Scoped Style] NodeRareData::m_numberOfScopedHTMLStyleChildren could be replaced with a node flag.
20385        https://bugs.webkit.org/show_bug.cgi?id=96450
20386
20387        Reviewed by Dimitri Glazkov.
20388
20389        This change gets rid of NodeRareData::m_numberOfScopedHTMLStyleChildren
20390        by replacing it with a Node flag called HasScopedHTMLStyleChildFlag.
20391        Instead of tracking the number of certain node, this chagne compute the number
20392        when necessary.
20393
20394        Now we no longer need to hit rareData() for each hasScopedHTMLStyleChild() call.
20395        Note that because such a re-counting occurs only when the scoped <style> elements
20396        leave the tree, the performance impact is negligible.
20397
20398        No new tests. Covered by existing tests.
20399
20400        * dom/Node.cpp:
20401        (WebCore):
20402        * dom/Node.h:
20403        (WebCore::Node::hasScopedHTMLStyleChild):
20404        (WebCore::Node::setHasScopedHTMLStyleChild):
20405        (Node):
20406        * dom/NodeRareData.h:
20407        (WebCore::NodeRareData::NodeRareData):
20408        (NodeRareData):
20409        * html/HTMLStyleElement.cpp:
20410        (WebCore::HTMLStyleElement::isRegisteredAsScoped):
20411        (WebCore):
20412        (WebCore::Node::registerScopedHTMLStyleChild):
20413        (WebCore::Node::unregisterScopedHTMLStyleChild):
20414        (WebCore::Node::numberOfScopedHTMLStyleChildren):
20415        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
20416        * html/HTMLStyleElement.h:
20417        (HTMLStyleElement):
20418
204192012-09-12  Dimitri Glazkov  <dglazkov@chromium.org>
20420
20421        Remove transient state regarding uknown pseudoelements from SelectorChecker.
20422        https://bugs.webkit.org/show_bug.cgi?id=96425
20423
20424        Reviewed by Eric Seidel.
20425
20426        The fact that an unknown pseudoelement was found when checking selector was stored as extra state on SelectorChecker. That's bad,
20427        because this state is at odds with the lifecycle of the instance and had to be explicitly reset prior to each checking. To address
20428        this, I made checkSelector report the value as its result (by-ref parameter, actually).
20429
20430        No new tests, refactoring only. Covered by existing tests.
20431
20432        * css/SelectorChecker.cpp:
20433        (WebCore::SelectorChecker::SelectorChecker): Removed the now-unneded state initialization.
20434        (WebCore::SelectorChecker::checkSelector): Changed to take extra parameter.
20435        (WebCore):
20436        (WebCore::SelectorChecker::checkOneSelector): Ditto.
20437        * css/SelectorChecker.h:
20438        (SelectorChecker): Changed decls accordingly.
20439        * css/StyleResolver.cpp:
20440        (WebCore::StyleResolver::StyleResolver): Added state to StyleResolver.
20441        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use own state, rather than StyleChecker's state.
20442        * css/StyleResolver.h:
20443        (StyleResolver): Moved state here from StyleChecker.
20444
204452012-09-12  Andrei Onea  <onea@adobe.com>
20446
20447        [CSSRegions]Use RefPtr's instead of weak references on DOMNamedFlowCollection
20448        https://bugs.webkit.org/show_bug.cgi?id=95311
20449
20450        Reviewed by Andreas Kling.
20451
20452        Currently, DOMNamedFlowCollection holds a collection of raw pointers to WebKitNamedFlow.
20453        This causes a crash when there is a JS instance of a NamedFlowCollection snapshot taken
20454        before the NamedFlow is deleted, since the memory previously occupied by the NamedFlow
20455        can be accessed. Because of this, we need to use RefPtr's for the snapshot, so that such
20456        dangling references extend the lifetime of the NamedFlow objects.
20457
20458        Test: fast/regions/webkit-named-flow-collection-crash.html
20459
20460        * dom/DOMNamedFlowCollection.cpp:
20461        (WebCore::DOMNamedFlowCollection::DOMNamedFlowCollection):
20462        (WebCore::DOMNamedFlowCollection::item):
20463        (WebCore::DOMNamedFlowCollection::namedItem):
20464        (WebCore):
20465        (WebCore::DOMNamedFlowCollection::DOMNamedFlowHashFunctions::hash):
20466        (WebCore::DOMNamedFlowCollection::DOMNamedFlowHashFunctions::equal):
20467        (DOMNamedFlowCollection::DOMNamedFlowHashFunctions):
20468        (WebCore::DOMNamedFlowCollection::DOMNamedFlowHashTranslator::hash):
20469        (WebCore::DOMNamedFlowCollection::DOMNamedFlowHashTranslator::equal):
20470        Create new internal ListHashSet for RefPtr<WebKitNamedFlow>.
20471        * dom/DOMNamedFlowCollection.h:
20472        (WebCore::DOMNamedFlowCollection::create):
20473        (DOMNamedFlowCollection):
20474        * dom/NamedFlowCollection.cpp:
20475        (WebCore::NamedFlowCollection::createCSSOMSnapshot):
20476        (WebCore):
20477        (WebCore::NamedFlowCollection::NamedFlowHashFunctions::hash):
20478        (WebCore::NamedFlowCollection::NamedFlowHashFunctions::equal):
20479        (NamedFlowCollection::NamedFlowHashFunctions):
20480        (WebCore::NamedFlowCollection::NamedFlowHashTranslator::hash):
20481        (WebCore::NamedFlowCollection::NamedFlowHashTranslator::equal):
20482        Move back the definitions for NamedFlowHashFunctions and NamedFlowHashTranslator
20483        to the .cpp file.
20484        * dom/NamedFlowCollection.h:
20485        (NamedFlowCollection):
20486
204872012-09-12  MORITA Hajime  <morrita@google.com>
20488
20489        [Shadow DOM] Unpolished elements should reject author shadows
20490        https://bugs.webkit.org/show_bug.cgi?id=96404
20491
20492        Reviewed by Dimitri Glazkov.
20493
20494        Gave areAuthorShadowsAllowed() overrides for these replaced elements
20495        which aren't author shadow ready.
20496
20497        No new tests. Covered by existing tests.
20498
20499        * html/HTMLCanvasElement.h: Did areAuthorShadowsAllowed() overrride.
20500        * html/HTMLFieldSetElement.h: Did areAuthorShadowsAllowed() overrride.
20501        * html/HTMLFrameElementBase.h: Did areAuthorShadowsAllowed() overrride.
20502        * html/HTMLMediaElement.h: Did areAuthorShadowsAllowed() overrride.
20503        * html/HTMLPlugInElement.h: Did areAuthorShadowsAllowed() overrride.
20504        * html/HTMLSelectElement.h: Did areAuthorShadowsAllowed() overrride.
20505
205062012-09-12  Mark Pilgrim  <pilgrim@chromium.org>
20507
20508        [Chromium] Remove unused allowScriptDespiteSettings function from PlatformSupport
20509        https://bugs.webkit.org/show_bug.cgi?id=96526
20510
20511        Reviewed by Kentaro Hara.
20512
20513        Part of a refactoring series. See tracking bug 82948.
20514
20515        * platform/chromium/PlatformSupport.h:
20516        (PlatformSupport):
20517
205182012-09-12  Dominic Mazzoni  <dmazzoni@google.com>
20519
20520        AX: Refactor most AccessibilityRenderObject code into AccessibilityNodeObject
20521        https://bugs.webkit.org/show_bug.cgi?id=96323
20522
20523        Reviewed by Chris Fleizach.
20524
20525        This patch is large, but it's at least 75% cut-and-paste.
20526
20527        All it does is move the implementation of a large chunk of
20528        AccessibilityRenderObject methods to AccessibilityNodeObject
20529        instead. This allows them to operate on elements without
20530        renderers, such as those in canvas fallback content. It also
20531        moves us towards the goal where AccessibilityRenderObject
20532        only has code that's specific to renderers and not just nodes.
20533
20534        Half of the methods cut and paste with essentially no changes.
20535        Some required just tiny changes to access an attribute via the
20536        element (e.g. HTMLSelectElement) rather than its associated
20537        renderer (e.g. RenderMenuList). A few were a little trickier,
20538        as the behavior needs to be slightly different when there's a
20539        renderer. In those last cases, as much of the code as possible is
20540        in AccessibilityNodeObject and AccessibilityRenderObject overrides
20541        it as necessary.
20542
20543        Test: accessibility/canvas-fallback-content-2.html
20544
20545        * accessibility/AccessibilityNodeObject.cpp:
20546        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
20547        (WebCore::AccessibilityNodeObject::canHaveChildren):
20548        (WebCore):
20549        (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
20550        (WebCore::AccessibilityNodeObject::isWebArea):
20551        (WebCore::AccessibilityNodeObject::isImageButton):
20552        (WebCore::AccessibilityNodeObject::isAnchor):
20553        (WebCore::AccessibilityNodeObject::isNativeTextControl):
20554        (WebCore::AccessibilityNodeObject::isSearchField):
20555        (WebCore::AccessibilityNodeObject::isNativeImage):
20556        (WebCore::AccessibilityNodeObject::isImage):
20557        (WebCore::AccessibilityNodeObject::isPasswordField):
20558        (WebCore::AccessibilityNodeObject::isInputImage):
20559        (WebCore::AccessibilityNodeObject::isProgressIndicator):
20560        (WebCore::AccessibilityNodeObject::isSlider):
20561        (WebCore::AccessibilityNodeObject::isMenuRelated):
20562        (WebCore::AccessibilityNodeObject::isMenu):
20563        (WebCore::AccessibilityNodeObject::isMenuBar):
20564        (WebCore::AccessibilityNodeObject::isMenuButton):
20565        (WebCore::AccessibilityNodeObject::isMenuItem):
20566        (WebCore::AccessibilityNodeObject::isNativeCheckboxOrRadio):
20567        (WebCore::AccessibilityNodeObject::isEnabled):
20568        (WebCore::AccessibilityNodeObject::isIndeterminate):
20569        (WebCore::AccessibilityNodeObject::isPressed):
20570        (WebCore::AccessibilityNodeObject::isChecked):
20571        (WebCore::AccessibilityNodeObject::isHovered):
20572        (WebCore::AccessibilityNodeObject::isMultiSelectable):
20573        (WebCore::AccessibilityNodeObject::isReadOnly):
20574        (WebCore::AccessibilityNodeObject::isRequired):
20575        (WebCore::AccessibilityNodeObject::headingLevel):
20576        (WebCore::AccessibilityNodeObject::valueDescription):
20577        (WebCore::AccessibilityNodeObject::isARIARange):
20578        (WebCore::AccessibilityNodeObject::valueForRange):
20579        (WebCore::AccessibilityNodeObject::maxValueForRange):
20580        (WebCore::AccessibilityNodeObject::minValueForRange):
20581        (WebCore::AccessibilityNodeObject::stepValueForRange):
20582        (WebCore::AccessibilityNodeObject::isHeading):
20583        (WebCore::AccessibilityNodeObject::isLink):
20584        (WebCore::AccessibilityNodeObject::isControl):
20585        (WebCore::AccessibilityNodeObject::isFieldset):
20586        (WebCore::AccessibilityNodeObject::isGroup):
20587        (WebCore::AccessibilityNodeObject::selectedRadioButton):
20588        (WebCore::AccessibilityNodeObject::selectedTabItem):
20589        (WebCore::AccessibilityNodeObject::checkboxOrRadioValue):
20590        (WebCore::AccessibilityNodeObject::anchorElement):
20591        (WebCore::AccessibilityNodeObject::actionElement):
20592        (WebCore::AccessibilityNodeObject::mouseButtonListener):
20593        (WebCore::AccessibilityNodeObject::isDescendantOfBarrenParent):
20594        (WebCore::AccessibilityNodeObject::alterSliderValue):
20595        (WebCore::AccessibilityNodeObject::increment):
20596        (WebCore::AccessibilityNodeObject::decrement):
20597        (WebCore::AccessibilityNodeObject::changeValueByStep):
20598        (WebCore::AccessibilityNodeObject::changeValueByPercent):
20599        (WebCore::AccessibilityNodeObject::isGenericFocusableElement):
20600        (WebCore::AccessibilityNodeObject::labelForElement):
20601        (WebCore::AccessibilityNodeObject::ariaAccessibilityDescription):
20602        (WebCore::siblingWithAriaRole):
20603        (WebCore::AccessibilityNodeObject::menuElementForMenuButton):
20604        (WebCore::AccessibilityNodeObject::menuForMenuButton):
20605        (WebCore::AccessibilityNodeObject::menuItemElementForMenu):
20606        (WebCore::AccessibilityNodeObject::menuButtonForMenu):
20607        (WebCore::AccessibilityNodeObject::accessibilityDescription):
20608        (WebCore::AccessibilityNodeObject::helpText):
20609        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
20610        (WebCore::AccessibilityNodeObject::textUnderElement):
20611        (WebCore::AccessibilityNodeObject::title):
20612        (WebCore::AccessibilityNodeObject::text):
20613        (WebCore::AccessibilityNodeObject::stringValue):
20614        (WebCore::accessibleNameForNode):
20615        (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
20616        (WebCore::AccessibilityNodeObject::elementsFromAttribute):
20617        (WebCore::AccessibilityNodeObject::ariaLabeledByElements):
20618        (WebCore::AccessibilityNodeObject::ariaLabeledByAttribute):
20619        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
20620        * accessibility/AccessibilityNodeObject.h:
20621        (AccessibilityNodeObject):
20622        (WebCore::AccessibilityNodeObject::node):
20623        * accessibility/AccessibilityRenderObject.cpp:
20624        (WebCore::AccessibilityRenderObject::parentObject):
20625        (WebCore):
20626        (WebCore::AccessibilityRenderObject::isReadOnly):
20627        (WebCore::AccessibilityRenderObject::helpText):
20628        (WebCore::AccessibilityRenderObject::accessibilityDescription):
20629        (WebCore::AccessibilityRenderObject::text):
20630        (WebCore::AccessibilityRenderObject::contentChanged):
20631        (WebCore::AccessibilityRenderObject::canHaveChildren):
20632        * accessibility/AccessibilityRenderObject.h:
20633        (AccessibilityRenderObject):
20634        (WebCore::AccessibilityRenderObject::setRenderObject):
20635
206362012-09-12  John Mellor  <johnme@chromium.org>
20637
20638        Text Autosizing: Don't autosize text in constrained height elements.
20639        https://bugs.webkit.org/show_bug.cgi?id=96143
20640
20641        Reviewed by Julien Chaffraix.
20642
20643        Autosizing text within constained height elements usually goes badly,
20644        as the autosized text will wrap onto more lines, hence it will become
20645        taller and often overflow its container, breaking the page's layout.
20646
20647        This patch disables autosizing for blocks with a fixed height ancestor
20648        (or which are fixed height themselves), unless the lowest such ancestor
20649        (or one of the ancestors in between it and the text block) has
20650        overflow-y:auto/scroll, in which case the height isn't really fixed.
20651
20652        Tests: fast/text-autosizing/constrained-and-overflow-auto-ancestor.html
20653               fast/text-autosizing/constrained-and-overflow-hidden-ancestor.html
20654               fast/text-autosizing/constrained-and-overflow-paged-x-ancestor.html
20655               fast/text-autosizing/constrained-and-overflow-scroll-ancestor.html
20656               fast/text-autosizing/constrained-height-ancestor.html
20657               fast/text-autosizing/constrained-maxheight-ancestor.html
20658               fast/text-autosizing/constrained-maxheight.html
20659               fast/text-autosizing/constrained-percent-maxheight.html
20660               fast/text-autosizing/constrained-percent-of-viewport-maxheight.html
20661               fast/text-autosizing/constrained-then-overflow-ancestors.html
20662               fast/text-autosizing/constrained-then-overflow-then-positioned-ancestors.html
20663               fast/text-autosizing/constrained-then-position-absolute-ancestors.html
20664               fast/text-autosizing/constrained-then-position-fixed-ancestors.html
20665               fast/text-autosizing/constrained-within-overflow-ancestor.html
20666
20667        * rendering/TextAutosizer.cpp:
20668        (WebCore::TextAutosizer::processBox):
20669
20670            Skips boxes for which contentHeightIsConstrained returns true.
20671
20672        (WebCore::TextAutosizer::contentHeightIsConstrained):
20673
20674            Walks up the render tree until it finds either a constrained height
20675            or overflow-y:auto/scroll ancestor.
20676
206772012-09-12  Mark Pilgrim  <pilgrim@chromium.org>
20678
20679        [Chromium] Remove unused getProcessMemorySize from PlatformSupport
20680        https://bugs.webkit.org/show_bug.cgi?id=96520
20681
20682        Reviewed by Kentaro Hara.
20683
20684        Part of a refactoring series. See tracking bug 82948.
20685
20686        * platform/chromium/PlatformSupport.h:
20687        (PlatformSupport):
20688
206892012-09-12  Roland Takacs  <rtakacs@inf.u-szeged.hu>
20690
20691        [Qt] Segmentation fault when closing QtTestBrowser
20692        https://bugs.webkit.org/show_bug.cgi?id=95003
20693
20694        Reviewed by Simon Hausmann.
20695
20696        Defined a new QObject* variable.
20697        If WebKit1 is used, it points to the QGLWidget that was 
20698        created in 'createPlatformGraphicsContext3DFromWidget'.
20699        If WebKit2 is used, it points to the QWindow that was 
20700        created in GraphicsContext3DPrivate's constructor.
20701        It is neccessary for deallocating them.
20702
20703        * platform/graphics/qt/GraphicsContext3DQt.cpp:
20704        (GraphicsContext3DPrivate):
20705        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
20706        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
20707        * platform/qt/QWebPageClient.h:
20708        (QWebPageClient):
20709
207102012-09-12  Ryuan Choi  <ryuan.choi@samsung.com>
20711
20712        [EFL] Fix build break when netscape-plugin-api is enebled after r126971
20713        https://bugs.webkit.org/show_bug.cgi?id=96513
20714
20715        Unreviewed build fix.
20716
20717        * plugins/efl/PluginViewEfl.cpp:
20718        (WebCore::PluginView::platformGetValue):
20719
207202012-09-12  Lianghui Chen  <liachen@rim.com>
20721
20722        [BlackBerry] Use own instance of CertMgrWrapper in BlackBerry CredentialBackingStore.
20723        https://bugs.webkit.org/show_bug.cgi?id=96457
20724        Internal PR: 205769
20725
20726        Internally reviewed by George Staikos, Jonathan Dong.
20727        Reviewed by George Staikos.
20728
20729        CertMgrWrapper in BlackBerry platform layer has been changed from
20730        singleton to normal class, every user of it need to create its own
20731        instance now.
20732
20733        No new tests for platform specific interface change.
20734
20735        * platform/network/blackberry/CredentialBackingStore.cpp:
20736        (WebCore::CredentialBackingStore::CredentialBackingStore):
20737        (WebCore::CredentialBackingStore::~CredentialBackingStore):
20738        (WebCore::CredentialBackingStore::addLogin):
20739        (WebCore::CredentialBackingStore::updateLogin):
20740        (WebCore::CredentialBackingStore::getLogin):
20741        (WebCore::CredentialBackingStore::certMgrWrapper):
20742        (WebCore):
20743        * platform/network/blackberry/CredentialBackingStore.h:
20744        (Platform):
20745        (CredentialBackingStore):
20746
207472012-09-12  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20748
20749        [EFL] Avoid manual memory management in RenderThemeEfl
20750        https://bugs.webkit.org/show_bug.cgi?id=96501
20751
20752        Reviewed by Simon Hausmann.
20753
20754        Use OwnPtr as it works for Evas_Object and Evas_Ecore objects.
20755
20756        * platform/efl/RenderThemeEfl.cpp:
20757        (WebCore::RenderThemeEfl::ThemePartCacheEntry::ThemePartCacheEntry):
20758        (WebCore::RenderThemeEfl::ThemePartCacheEntry::~ThemePartCacheEntry):
20759        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
20760        (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
20761        (WebCore::RenderThemeEfl::paintThemePart):
20762        (WebCore::RenderThemeEfl::setColorFromThemeClass):
20763        (WebCore::RenderThemeEfl::themePath):
20764        (WebCore::RenderThemeEfl::loadTheme):
20765        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
20766        (WebCore::RenderThemeEfl::RenderThemeEfl):
20767        (WebCore::RenderThemeEfl::~RenderThemeEfl):
20768        (WebCore::RenderThemeEfl::emitMediaButtonSignal):
20769        * platform/efl/RenderThemeEfl.h:
20770        (WebCore::RenderThemeEfl::canvas):
20771        (WebCore::RenderThemeEfl::edje):
20772        (RenderThemeEfl):
20773        (WebCore::RenderThemeEfl::ThemePartCacheEntry::canvas):
20774        (WebCore::RenderThemeEfl::ThemePartCacheEntry::edje):
20775        (ThemePartCacheEntry):
20776
207772012-09-12  Florin Malita  <fmalita@chromium.org>
20778
20779        getScreenCTM returns different values depending on zoom
20780        https://bugs.webkit.org/show_bug.cgi?id=96361
20781
20782        Reviewed by Dirk Schulze.
20783
20784        SVGSVGElement::localCoordinateSpaceTransform() needs to adjust for the
20785        zoom level (which is already factored into CSS coordinates) at the
20786        SVG/HTML boundary.
20787
20788        Test: svg/zoom/page/zoom-get-screen-ctm.html
20789
20790        * svg/SVGSVGElement.cpp:
20791        (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
20792
207932012-09-12  Simon Hausmann  <simon.hausmann@nokia.com>
20794
20795        [Qt] Drastically shorten length of commandline needed for JS bindings generator
20796        https://bugs.webkit.org/show_bug.cgi?id=96266
20797
20798        Reviewed by Tor Arne Vestbø.
20799
20800        The generate-bindings script supports the SOURCE_ROOT environment variable for IDL include file
20801        lookups, which allows specifying relative include search directories.
20802
20803        * DerivedSources.pri:
20804
208052012-09-12  Patrick Gansterer  <paroga@webkit.org>
20806
20807        Remove last call to numberToString() from WebCore code
20808        https://bugs.webkit.org/show_bug.cgi?id=96484
20809
20810        Reviewed by Kentaro Hara.
20811
20812        Replace WTF::numberToString() with String::numberToStringECMAScript() to remove duplicated
20813        code. Using the new function allows us to improve and/or remove numberToString() without
20814        changing all caller sides later. Also remove an unneeded strlen() in the touched code.
20815
20816        * bindings/v8/V8DOMWrapper.cpp:
20817        (WebCore::V8DOMWrapper::setNamedHiddenReference):
20818        * bindings/v8/V8DependentRetained.h:
20819        (WebCore::V8DependentRetained::createPropertyName):
20820        * bindings/v8/V8HiddenPropertyName.cpp:
20821        (WebCore::V8HiddenPropertyName::hiddenReferenceName):
20822        * bindings/v8/V8HiddenPropertyName.h:
20823        (V8HiddenPropertyName):
20824
208252012-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
20826
20827        Unreviewed, rolling out r128221.
20828        http://trac.webkit.org/changeset/128221
20829        https://bugs.webkit.org/show_bug.cgi?id=96504
20830
20831        The rollout was incorrect. (Requested by zdobersek on
20832        #webkit).
20833
20834        * platform/network/soup/ResourceResponseSoup.cpp:
20835        (WebCore::ResourceResponse::updateFromSoupMessage):
20836
208372012-09-12  Ilya Tikhonovsky  <loislo@chromium.org>
20838
20839        Unreviewed. Touch two files for fixing broken compile dependency on Apple Windows Debug bot.
20840
20841        * css/StyleResolver.cpp:
20842        * loader/FrameLoader.cpp:
20843
208442012-09-12  Ilya Tikhonovsky  <loislo@chromium.org>
20845
20846
20847        Web Inspector: NMI move String* instrumentation to wtf.
20848        https://bugs.webkit.org/show_bug.cgi?id=96405
20849
20850        Reviewed by Yury Semikhatsky.
20851
20852        This instrumentation is solving the problem with substrings and removes traits based code which is hard to upstream.
20853
20854        * dom/WebCoreMemoryInstrumentation.cpp:
20855        (WebCore):
20856        * dom/WebCoreMemoryInstrumentation.h:
20857        (WebCore):
20858
208592012-08-20  Philippe Normand  <pnormand@igalia.com>
20860
20861        [GStreamer] Audio device not closed after playing sound
20862        https://bugs.webkit.org/show_bug.cgi?id=89122
20863
20864        Reviewed by Martin Robinson.
20865
20866        Set the GStreamer pipeline to NULL instead of PAUSED on EOS. This
20867        allows the audio-sink to release its connection to the audio
20868        device. This is done only if the Media element is not
20869        looping. To make the MediaPlayerPrivate layer aware of that
20870        information the MediaPlayerClient interface was updated with a new
20871        method mediaPlayerIsLooping, implemented by the HTMLMediaElement.
20872
20873        * html/HTMLMediaElement.cpp:
20874        (WebCore::HTMLMediaElement::mediaPlayerIsLooping): Implementation of
20875        MediaPlayerClient::mediaPlayerLoop, proxies to ::loop();
20876        * html/HTMLMediaElement.h:
20877        (HTMLMediaElement):
20878        * platform/graphics/MediaPlayer.h:
20879        (WebCore::MediaPlayerClient::mediaPlayerIsLooping): New method allowing
20880        the MediaPlayer and its backend to know if a playback loop is
20881        requested by the client.
20882        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
20883        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
20884        (WebCore::MediaPlayerPrivateGStreamer::playbackPosition): Report
20885        seek time or media duration if EOS was reached. These early
20886        returns are needed because the position query doesn't work on a
20887        NULL pipeline.
20888        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
20889        Refactored to use an early return.
20890        (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay): Reset the
20891        seeking flag.
20892        (WebCore::MediaPlayerPrivateGStreamer::play): reset m_isEndReached.
20893        (WebCore::MediaPlayerPrivateGStreamer::pause): Don't pause on EOS.
20894        (WebCore::MediaPlayerPrivateGStreamer::seek): Refactor, call
20895        currentTime() after we're sure playbin is valid and no error occured.
20896        (WebCore::MediaPlayerPrivateGStreamer::paused): Fake paused state
20897        on EOS.
20898
208992012-09-12  Simon Hausmann  <simon.hausmann@nokia.com>
20900
20901        [Qt] Build on X11 with GraphicsSurface but without NPAPI is broken
20902        https://bugs.webkit.org/show_bug.cgi?id=96495
20903
20904        Reviewed by Kenneth Rohde Christiansen.
20905
20906        When enabling NPAPI we link against XRender on X11. The other component that needs Xrender
20907        is GraphicsSurface. So when building without NPAPI we need to make sure that we link in Xrender.
20908
20909        This patch cleans up the GraphicsSurface related linkage required on Mac OS X and X11 by wrapping
20910        it in use?(graphics_surface) instead of 3D_GRAPHICS. It is not neccesary to perform the have?(XCOMPOSITE)
20911        check anymore because it's already done in features.prf before enabling use_graphics_surface in the
20912        first place.
20913
20914        * WebCore.pri:
20915
209162012-09-12  Andrei Poenaru  <poenaru@adobe.com>
20917
20918        Web Inspector: Protocol Extension: Add "regionLayoutUpdate" event
20919        https://bugs.webkit.org/show_bug.cgi?id=93443
20920
20921        Reviewed by Alexander Pavlov.
20922
20923        Added "regionLayoutUpdate" event to the protocol.
20924
20925        Removed "getFlowByName" from protocol.
20926
20927        The front-end keeps in sync the requested Named Flow Collections.
20928
20929        Modified existing test: inspector/styles/protocol-css-regions-commands.html
20930
20931        * dom/NamedFlowCollection.cpp:
20932        (WebCore::NamedFlowCollection::ensureFlowWithName):
20933        (WebCore::NamedFlowCollection::discardNamedFlow):
20934        * inspector/Inspector.json:
20935        * inspector/InspectorCSSAgent.cpp:
20936        (UpdateRegionLayoutTask):
20937        (WebCore):
20938        (WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask):
20939        (WebCore::UpdateRegionLayoutTask::scheduleFor):
20940        (WebCore::UpdateRegionLayoutTask::unschedule):
20941        (WebCore::UpdateRegionLayoutTask::reset):
20942        (WebCore::UpdateRegionLayoutTask::onTimer):
20943        (WebCore::InspectorCSSAgent::reset):
20944        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
20945        (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
20946        (WebCore::InspectorCSSAgent::didUpdateRegionLayout):
20947        (WebCore::InspectorCSSAgent::regionLayoutUpdated):
20948        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
20949        (WebCore::InspectorCSSAgent::documentNodeWithRequestedFlowsId):
20950        * inspector/InspectorCSSAgent.h:
20951        (WebCore):
20952        (InspectorCSSAgent):
20953        * inspector/InspectorInstrumentation.cpp:
20954        (WebCore):
20955        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
20956        (WebCore::InspectorInstrumentation::willRemoveNamedFlowImpl):
20957        (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl):
20958        * inspector/InspectorInstrumentation.h:
20959        (InspectorInstrumentation):
20960        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
20961        (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
20962        (WebCore):
20963        (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
20964        * inspector/front-end/CSSStyleModel.js:
20965        (WebInspector.CSSStyleModel):
20966        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync.callback):
20967        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
20968        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync.callback):
20969        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
20970        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
20971        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
20972        (WebInspector.CSSStyleModel.prototype._regionLayoutUpdated):
20973        (WebInspector.CSSStyleModel.prototype._resetNamedFlowCollections):
20974        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
20975        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
20976        (WebInspector.CSSDispatcher.prototype.regionLayoutUpdated):
20977        (WebInspector.NamedFlow):
20978        (WebInspector.NamedFlowCollection):
20979        (WebInspector.NamedFlowCollection.prototype._appendNamedFlow):
20980        (WebInspector.NamedFlowCollection.prototype._removeNamedFlow):
20981        (WebInspector.NamedFlowCollection.prototype.flowByName):
20982        * rendering/RenderNamedFlowThread.cpp:
20983        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
20984
209852012-09-12  Alexander Pavlov  <apavlov@chromium.org>
20986
20987        Web Inspector: [Elements] Sidebar panes not updated on style changes due to "class" attribute modifications
20988        https://bugs.webkit.org/show_bug.cgi?id=95722
20989
20990        Reviewed by Vsevolod Vlasov.
20991
20992        The DOMAgent StyleInvalidated event has been removed in favor of the StylesSidebarPane explicitly listening on the
20993        AttrModified/AttrRemoved events that result in those same updates.
20994
20995        * inspector/front-end/DOMAgent.js:
20996        (WebInspector.DOMAgent.prototype._attributeModified):
20997        (WebInspector.DOMAgent.prototype._loadNodeAttributes):
20998        (WebInspector.DOMAgent.prototype._childNodeRemoved):
20999        * inspector/front-end/ElementsTreeOutline.js:
21000        (WebInspector.ElementsTreeElement.prototype.updateSelection): Drive-by: avoid a costly synchronous layout during DOM tree updates.
21001        * inspector/front-end/StylesSidebarPane.js:
21002        (WebInspector.StylesSidebarPane):
21003        (WebInspector.StylesSidebarPane.prototype._attributeChanged):
21004        (WebInspector.StylesSidebarPane.prototype._canAffectCurrentStyles):
21005
210062012-09-12  Simon Hausmann  <simon.hausmann@nokia.com>
21007
21008        Build with ENABLE_REQUEST_ANIMATION_FRAME=0 is broken
21009        https://bugs.webkit.org/show_bug.cgi?id=96491
21010
21011        Reviewed by Csaba Osztrogonác.
21012
21013        In the IDL file, don't just check for the define, also check if it's set to 1 before enabling the
21014        RAF APIs. It's done like this with all the other feature defines in IDL files.
21015
21016        * page/DOMWindow.idl:
21017
210182012-09-12  Vivek Galatage  <vivekgalatage@gmail.com>
21019
21020        Web Inspector: InspectorBackend.loadFromJSONIfNeeded should take the JSON url as argument
21021        https://bugs.webkit.org/show_bug.cgi?id=96472
21022
21023        Reviewed by Yury Semikhatsky.
21024
21025        The method loadFromJSONIfNeeded need to take the jsonUrl as argument
21026        as this will be called from the Inspector Protocol Test Harness
21027        residing in a different location.
21028
21029        No new tests as code refactoring done.
21030
21031        * inspector/front-end/InspectorBackend.js:
21032        (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
21033        * inspector/front-end/inspector.js:
21034
210352012-09-12  Vsevolod Vlasov  <vsevik@chromium.org>
21036
21037        Web Inspector: XMLHttpRequest instrumentation methods used by timeline should have better names.
21038        https://bugs.webkit.org/show_bug.cgi?id=96486
21039
21040        Reviewed by Alexander Pavlov.
21041
21042        Renamed instrumentation methods.
21043
21044        * inspector/InspectorInstrumentation.cpp:
21045        (WebCore):
21046        (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEventImpl):
21047        (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEventImpl):
21048        (WebCore::InspectorInstrumentation::willDispatchXHRLoadEventImpl):
21049        (WebCore::InspectorInstrumentation::didDispatchXHRLoadEventImpl):
21050        * inspector/InspectorInstrumentation.h:
21051        (InspectorInstrumentation):
21052        (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent):
21053        (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
21054        (WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent):
21055        (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
21056        * inspector/InspectorTimelineAgent.cpp:
21057        (WebCore::InspectorTimelineAgent::willDispatchXHRReadyStateChangeEvent):
21058        (WebCore::InspectorTimelineAgent::didDispatchXHRReadyStateChangeEvent):
21059        (WebCore::InspectorTimelineAgent::willDispatchXHRLoadEvent):
21060        (WebCore::InspectorTimelineAgent::didDispatchXHRLoadEvent):
21061        * inspector/InspectorTimelineAgent.h:
21062        (InspectorTimelineAgent):
21063        * xml/XMLHttpRequest.cpp:
21064        (WebCore::XMLHttpRequest::callReadyStateChangeListener):
21065
210662012-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
21067
21068        Unreviewed, rolling out r128279.
21069        http://trac.webkit.org/changeset/128279
21070        https://bugs.webkit.org/show_bug.cgi?id=96487
21071
21072        "Snow Leopard compilation broken" (Requested by yurys on
21073        #webkit).
21074
21075        * dom/WebCoreMemoryInstrumentation.cpp:
21076        (WebCore):
21077        (WebCore::String):
21078        (WebCore::StringImpl):
21079        (WebCore::AtomicString):
21080        * dom/WebCoreMemoryInstrumentation.h:
21081        (WebCore):
21082        * inspector/MemoryInstrumentationImpl.cpp:
21083        (WebCore::MemoryInstrumentationImpl::countObjectSize):
21084        * platform/SharedBuffer.cpp:
21085        (WebCore::SharedBuffer::reportMemoryUsage):
21086
210872012-09-12  Yury Semikhatsky  <yurys@chromium.org>
21088
21089        Web Inspector: Persistent handle referenced from ScriptWrappable is double counted
21090        https://bugs.webkit.org/show_bug.cgi?id=96483
21091
21092        Reviewed by Alexander Pavlov.
21093
21094        * bindings/v8/ScriptWrappable.h:
21095        (WebCore::ScriptWrappable::reportMemoryUsage): the handle is a part of an
21096        array where all such handles are allocated and should not be counted here
21097        second time. In order to make the clang plugin that validate memory instrumentation
21098        happy we report it here as weak pointer (no-op).
21099
211002012-09-12  Eugene Klyuchnikov  <eustas.bug@gmail.com>
21101
21102        Web Inspector: Implement search and filtering on Timeline panel
21103        https://bugs.webkit.org/show_bug.cgi?id=95445
21104
21105        Reviewed by Yury Semikhatsky.
21106
21107        Implemented textual search/filtering on Timeline panel.
21108        Fixed "revealRecordAt" - now it scans all records in window,
21109        now only visible ones.
21110
21111        * inspector/front-end/TimelineOverviewPane.js:
21112        (WebInspector.TimelineWindowFilter):
21113        Extracted from TimelineOverviewPane class.
21114        * inspector/front-end/TimelinePanel.js:
21115        (WebInspector.TimelinePanel):
21116        (WebInspector.TimelinePanel.prototype.revealRecordAt):
21117        Used DFS to scan records.
21118        (WebInspector.TimelinePanel.prototype._revealRecord):
21119        Extracted common code.
21120        (WebInspector.TimelineSearchFilter):
21121        Implemented search and filtration.
21122
211232012-09-12  Ilya Tikhonovsky  <loislo@chromium.org>
21124
21125        Web Inspector: NMI move String* instrumentation to wtf.
21126        https://bugs.webkit.org/show_bug.cgi?id=96405
21127
21128        Reviewed by Yury Semikhatsky.
21129
21130        This instrumentation is solving the problem with substrings and removes traits based code which is hard to upstream.
21131
21132        * dom/WebCoreMemoryInstrumentation.cpp:
21133        (WebCore):
21134        * dom/WebCoreMemoryInstrumentation.h:
21135        (WebCore):
21136
21137        * dom/WebCoreMemoryInstrumentation.cpp:
21138        (WebCore):
21139        * dom/WebCoreMemoryInstrumentation.h:
21140        (WebCore):
21141        * inspector/MemoryInstrumentationImpl.cpp:
21142        (WebCore::MemoryInstrumentationImpl::countObjectSize):
21143        * platform/SharedBuffer.cpp:
21144        (WebCore::SharedBuffer::reportMemoryUsage):
21145
211462012-09-12  Kenneth Rohde Christiansen  <kenneth@webkit.org>
21147
21148        Unreviewed EFL build fix.
21149
21150        * platform/efl/RenderThemeEfl.cpp:
21151        (WebCore::RenderThemeEfl::themePath):
21152
211532012-09-12  Kenneth Rohde Christiansen  <kenneth@webkit.org>
21154
21155        [EFL] Clean up the RenderTheme Edje caching
21156        https://bugs.webkit.org/show_bug.cgi?id=96016
21157
21158        Reviewed by Gyuyoung Kim.
21159
21160        Refactor the Edje parts caching to be easier to understand and use
21161        proper C++ constructs.
21162
21163        * platform/efl/RenderThemeEfl.cpp:
21164        (WebCore):
21165        (WebCore::toEdjeGroup):
21166
21167            Converts the enum to the given edje group name.
21168
21169        (WebCore::setSourceGroupForEdjeObject):
21170
21171            Basically a wrapper around evas_object_file_set, but handles
21172            errors, which was done slightly differently all over.
21173
21174        (WebCore::RenderThemeEfl::ThemePartCacheEntry::ThemePartCacheEntry):
21175        (WebCore::RenderThemeEfl::ThemePartCacheEntry::~ThemePartCacheEntry):
21176
21177        (WebCore::createCairoSurfaceFor):
21178        (WebCore::isFormElementTooLargeToDisplay):
21179
21180            Methods used when creating ThemePartCacheEntry'es.
21181
21182        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
21183        (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
21184
21185            New methods for creating and reusing an cache entry. If you do
21186            not supply a new size, the original size will be used, and it is
21187            thus more effective.
21188
21189        (WebCore::RenderThemeEfl::getThemePartFromCache):
21190
21191            New method for requesting a theme part. If it doesn't exist
21192            it will additinally be loaded and added to the cache.
21193
21194        (WebCore::RenderThemeEfl::flushThemePartCache):
21195
21196            Remove the entire cache and free the assets.
21197
21198        (WebCore::RenderThemeEfl::paintThemePart):
21199        (WebCore::RenderThemeEfl::themePath):
21200        (WebCore::RenderThemeEfl::loadTheme):
21201        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
21202        (WebCore::RenderThemeEfl::~RenderThemeEfl):
21203        (WebCore::RenderThemeEfl::emitMediaButtonSignal):
21204        * platform/efl/RenderThemeEfl.h:
21205        (RenderThemeEfl):
21206        (ThemePartCacheEntry):
21207
212082012-09-12  Alexandre Elias  <aelias@chromium.org>
21209
21210        [chromium] Flip Y and swizzle inside compositeAndReadback implementation
21211        https://bugs.webkit.org/show_bug.cgi?id=96458
21212
21213        Reviewed by James Robinson.
21214
21215        Currently, compositeAndReadback API assumes a GL-style texture
21216        and is converted to the normal software format in WebViewImpl.
21217        For the software implementation, this API would result in two
21218        redundant conversions.  This patch makes the conversion inside
21219        CCRendererGL instead.  I rolled my own for loop as I didn't find the
21220        appropriate function within raw Skia.
21221
21222        No new tests (covered by existing layout tests).
21223
21224        * platform/graphics/chromium/cc/CCRendererGL.cpp:
21225        (WebCore::CCRendererGL::getFramebufferPixels):
21226
212272012-09-11  Ryuan Choi  <ryuan.choi@samsung.com>
21228
21229        [CMAKE] Supply feature defines to CodeGeneratorTestRunner.
21230        https://bugs.webkit.org/show_bug.cgi?id=96273
21231
21232        Reviewed by Gyuyoung Kim.
21233
21234        * CMakeLists.txt: Extracted FEATURE_DEFINES with space separator to share.
21235        * PlatformBlackBerry.cmake: Ditto.
21236        * UseJSC.cmake: Ditto.
21237        * UseV8.cmake: Ditto.
21238
212392012-09-11  Nico Weber  <thakis@chromium.org>
21240
21241        [chromium/mac] Fix "Class WebCoreTextFieldCell is implemented in both Chromium Framework and /System/Library/Frameworks/WebKit.framework" warning
21242        https://bugs.webkit.org/show_bug.cgi?id=96460
21243
21244        Reviewed by Kent Tamura.
21245
21246        This was added incorrectly in http://trac.webkit.org/changeset/116721
21247
21248        * WebCore.gyp/WebCore.gyp:
21249
212502012-09-11  Keishi Hattori  <keishi@webkit.org>
21251
21252        Create Localizer factory method for LocaleICU
21253        https://bugs.webkit.org/show_bug.cgi?id=96363
21254
21255        Reviewed by Kent Tamura.
21256
21257        Preparing to use Localizer instead of LocaleMac/Win/ICU
21258
21259        No new tests. Covered in unit test tests/LocalizedNumberICUTest.cpp
21260
21261        * platform/text/LocaleICU.cpp:
21262        (WebCore::Localizer::create):
21263        (WebCore):
21264
212652012-09-11  Michael Saboff  <msaboff@apple.com>
21266
21267        Build fixed for http://trac.webkit.org/changeset/128243
21268
21269        Unreviewed build fix.
21270
21271        Added missing include file needed by 96422 for C++ ICU APIs.
21272
21273        * icu/unicode/chariter.h: Added.
21274
212752012-09-11  Michael Saboff  <msaboff@apple.com>
21276
21277        Build fixed for http://trac.webkit.org/changeset/128243
21278
21279        Unreviewed build fix.
21280
21281        Added missing include file needed by 96422 for C++ ICU APIs.
21282
21283        * icu/unicode/bytestream.h: Added.
21284        * icu/unicode/rep.h: Added.
21285        * icu/unicode/std_string.h: Added.
21286        * icu/unicode/strenum.h: Added.
21287        * icu/unicode/stringpiece.h: Added.
21288        * icu/unicode/unistr.h: Added.
21289        * icu/unicode/uobject.h: Added.
21290
212912012-09-11  Kent Tamura  <tkent@chromium.org>
21292
21293        Refactor ValidationMessage class
21294        https://bugs.webkit.org/show_bug.cgi?id=96365
21295
21296        Reviewed by Hajime Morita.
21297
21298        - Move some code from HTMLFormControlElement to ValidationMessage
21299        - ValidationMessage class holds an element pointer as
21300        HTMLFormControlElement, not FormAssociatedElement.
21301
21302        No new tests because of no behavior changes.
21303
21304        * html/HTMLFormControlElement.cpp:
21305        (WebCore::HTMLFormControlElement::updateVisibleValidationMessage):
21306        Moved some code to ValidationMessage::updateValidationMessage().
21307        (WebCore::HTMLFormControlElement::setNeedsValidityCheck):
21308        Ask ValidationMessage whether it is visible or not.
21309        * html/HTMLFormControlElement.h:
21310        (HTMLFormControlElement): Removed visibleValidationMessage().
21311
21312        * html/ValidationMessage.cpp:
21313        (WebCore::ValidationMessage::ValidationMessage):
21314        Change the argument type: FormAssociatedElement -> HTMLFormControlElement
21315        (WebCore::ValidationMessage::create): ditto.
21316        (WebCore::ValidationMessage::updateValidationMessage):
21317        Added. Moved some code from
21318        HTMLFormControlElement::updateVisibleValidationMessage().
21319        (WebCore::ValidationMessage::buildBubbleTree): toHTMLElement() is not needed.
21320        (WebCore::ValidationMessage::deleteBubbleTree): ditto.
21321        (WebCore::ValidationMessage::isVisible): Added.
21322        * html/ValidationMessage.h:
21323        (ValidationMessage):
21324         - Change some instance of FormAssociatedElement to HTMLFormControlElement
21325         - Remove message().
21326         - Added updateValidationMessage() and isVisible()
21327         - Made setMessage() private.
21328
213292012-09-11  Christopher Cameron  <ccameron@chromium.org>
21330
21331        [chromium] Make prioritized texture manager not touch backings array on the main thread
21332        https://bugs.webkit.org/show_bug.cgi?id=96114
21333
21334        Reviewed by James Robinson.
21335
21336        Take a snapshot of the textures' priorities from the main thread,
21337        and save it in their backings for access by the impl thread.
21338        Update functions that access the sorted backings array to use the
21339        snapshotted values instead of the values that the main thread may
21340        have computed for the next frame.
21341
21342        Make the main thread not touch the m_backings array.  Split
21343        prioritizeTextures into a updateBackingsPriorities function.
21344        In places where the main thread would have touched m_backings,
21345        set a flag specifying that m_backings needs to be re-sorted
21346        before any function that requires it be sorted by priority be
21347        executed.
21348
21349        Update the two functions that require sorted order (acquireBacking
21350        and reduceMemory) to sort the backings array (if needed) before
21351        traversing it.
21352
21353        Updated tests to set correct thread during asserts. Add a test to
21354        verify that requestLate is correctly incorporated into the backing
21355        sorting.
21356
21357        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
21358        (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
21359        (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
21360        (WebCore):
21361        (WebCore::CCPrioritizedTextureManager::prioritizeBackings):
21362        (WebCore::CCPrioritizedTextureManager::requestLate):
21363        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
21364        (WebCore::CCPrioritizedTextureManager::reduceMemory):
21365        (WebCore::CCPrioritizedTextureManager::returnBackingTexture):
21366        (WebCore::CCPrioritizedTextureManager::destroyBacking):
21367        (WebCore::CCPrioritizedTextureManager::assertInvariants):
21368        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
21369        (CCPrioritizedTextureManager):
21370
213712012-09-11  Adam Barth  <abarth@webkit.org>
21372
21373        Update bindings test results after http://trac.webkit.org/changeset/128242
21374
21375        * bindings/scripts/test/V8/V8Float64Array.cpp:
21376        (WebCore::V8Float64Array::wrapSlow):
21377        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
21378        (WebCore::V8TestActiveDOMObject::wrapSlow):
21379        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
21380        (WebCore::V8TestCustomNamedGetter::wrapSlow):
21381        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
21382        (WebCore::V8TestEventConstructor::wrapSlow):
21383        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
21384        (WebCore::V8TestEventTarget::wrapSlow):
21385        * bindings/scripts/test/V8/V8TestException.cpp:
21386        (WebCore::V8TestException::wrapSlow):
21387        * bindings/scripts/test/V8/V8TestInterface.cpp:
21388        (WebCore::V8TestInterface::wrapSlow):
21389        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
21390        (WebCore::V8TestMediaQueryListListener::wrapSlow):
21391        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
21392        (WebCore::V8TestNamedConstructor::wrapSlow):
21393        * bindings/scripts/test/V8/V8TestNode.cpp:
21394        (WebCore::V8TestNode::wrapSlow):
21395        * bindings/scripts/test/V8/V8TestObj.cpp:
21396        (WebCore::V8TestObj::wrapSlow):
21397        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
21398        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
21399
214002012-09-11  Michael Saboff  <msaboff@apple.com>
21401
21402        Build fixed for http://trac.webkit.org/changeset/128243
21403
21404        Rubber stamped by Stephanie Lewis.
21405
21406        Added missing include file needed by 96422.
21407
21408        * icu/unicode/unorm2.h: Added.
21409
214102012-09-11  Elliott Sprehn  <esprehn@chromium.org>
21411
21412        Add new JSDependentRetained that allows keeping a JSObject alive as long as another is alive
21413        https://bugs.webkit.org/show_bug.cgi?id=96034
21414
21415        Reviewed by Geoffrey Garen.
21416
21417        Add new JSDependentRetained (with the same API as V8DependentRetained) that allows keeping
21418        a JSObject alive as long as another is alive. This is useful for keeping callbacks on
21419        wrappers without keeping strong references into the JS heap in C++ which can result in
21420        cycles that create memory leaks.
21421
21422        No new tests needed, this will be used to fix MutationObservers and UndoManager which will have tests.
21423
21424        * GNUmakefile.list.am:
21425        * WebCore.vcproj/WebCore.vcproj:
21426        * WebCore.xcodeproj/project.pbxproj:
21427        * bindings/js/JSDependentRetained.h: Added.
21428        (WebCore):
21429        (JSDependentRetained):
21430        (WebCore::JSDependentRetained::JSDependentRetained):
21431        (WebCore::JSDependentRetained::~JSDependentRetained):
21432        (WebCore::JSDependentRetained::get): Get the JSObject value.
21433        (WebCore::JSDependentRetained::isEmpty): Check if the value is still alive.
21434        (WebCore::JSDependentRetained::retain): Sets the owner of the object, should only be used once.
21435        (WebCore::JSDependentRetained::release):
21436        * bindings/v8/V8DependentRetained.h:
21437        (WebCore::V8DependentRetained::V8DependentRetained):
21438        (WebCore::V8DependentRetained::retain): Added this method so the API for JSC and V8 are identical.
21439
214402012-09-11  Alec Flett  <alecflett@chromium.org>
21441
21442        Add 'any' type to V8 bindings as a synonym for DOMObject                
21443        https://bugs.webkit.org/show_bug.cgi?id=96429                           
21444
21445        Reviewed by Kentaro Hara.                                             
21446
21447        Adds support for 'any' as a synonym to DOMObject.                       
21448
21449        Test: TestObj.idl has an attribute 'anyAttribute'.                      
21450
21451        * bindings/scripts/CodeGeneratorJS.pm:
21452        (AddIncludesForType):
21453        (JSValueToNative):
21454        (NativeToJSValue):
21455        * bindings/scripts/CodeGeneratorV8.pm:
21456        (GetNativeType):
21457        (JSValueToNative):
21458        (GetV8HeaderName):
21459        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
21460        (WebDOMTestObj::anyAttribute):
21461        (WebDOMTestObj::setAnyAttribute):
21462        * bindings/scripts/test/CPP/WebDOMTestObj.h:
21463        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
21464        (webkit_dom_test_obj_get_property):
21465        (webkit_dom_test_obj_class_init):
21466        (webkit_dom_test_obj_get_any_attribute):
21467        (webkit_dom_test_obj_set_any_attribute):
21468        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
21469        * bindings/scripts/test/JS/JSTestObj.cpp:
21470        (WebCore):
21471        (WebCore::jsTestObjCachedAttribute1):
21472        (WebCore::jsTestObjCachedAttribute2):
21473        (WebCore::jsTestObjAnyAttribute):
21474        (WebCore::setJSTestObjAnyAttribute):
21475        * bindings/scripts/test/JS/JSTestObj.h:
21476        (WebCore):
21477        * bindings/scripts/test/ObjC/DOMTestObj.h:
21478        * bindings/scripts/test/ObjC/DOMTestObj.mm:
21479        (-[DOMTestObj anyAttribute]):
21480        (-[DOMTestObj setAnyAttribute:]):
21481        * bindings/scripts/test/TestObj.idl:
21482        * bindings/scripts/test/V8/V8TestObj.cpp:
21483        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
21484        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
21485        (TestObjV8Internal):
21486        (WebCore::TestObjV8Internal::anyAttributeAttrGetter):
21487        (WebCore::TestObjV8Internal::anyAttributeAttrSetter):
21488        (WebCore):
21489
214902012-09-11  Michael Saboff  <msaboff@apple.com>
21491
21492        Unreviewed build fix for http://trac.webkit.org/changeset/128244
21493
21494        Some compilers don't like 0 for operator[](unsigned).  Changed to 0u.
21495
21496        * bindings/js/JSDOMBinding.h:
21497        (WebCore::jsStringWithCache):
21498
214992012-09-11  Michael Saboff  <msaboff@apple.com>
21500
21501        Build fixed for http://trac.webkit.org/changeset/128243
21502
21503        Rubber stamped by Stephanie Lewis.
21504
21505        Added missing include file needed by 96422.
21506
21507        * icu/unicode/ptypes.h: Added.
21508
215092012-09-11  Michael Saboff  <msaboff@apple.com>
21510
21511        jsStringWithCache shouldn't call StringImpl::characters() for single character strings
21512        https://bugs.webkit.org/show_bug.cgi?id=96439
21513
21514        Reviewed by Geoffrey Garen.
21515
21516        Replaced StringImpl->characters()[0] with operator[] access which is character size aware.
21517        Also fixed the other FIXME so we now use SmallStrings to retunr the single character string.
21518
21519        No functional change, so no new tests.
21520
21521        * bindings/js/JSDOMBinding.h:
21522        (WebCore::jsStringWithCache):
21523
215242012-09-11  Michael Saboff  <msaboff@apple.com>
21525
21526        Update ICU header files to more recent version
21527        https://bugs.webkit.org/show_bug.cgi?id=96422
21528
21529        Reviewed by Geoff Garen.
21530
21531        Updated ICU header files to 4.6.1.  Modifications made as part of the merge are:
21532        platform.h - Changed ifndef / define / endif for U_HAVE_UINT8_T, U_HAVE_UINT16_T, U_HAVE_UINT32_T,
21533            U_HAVE_UINT64_T, U_IS_BIG_ENDIAN and U_ENABLE_TRACING to match the existing platform.h
21534        putil.h (line 132) - Changes defined(U_WINDOWS) to defined(WIN32) || defined(OS2) to match existing putil.h
21535        ustring.h (line 945) - Wrapped macro argument cs with { (const UChar *)cs } to match existing ustring.h
21536        utypes.h (line 545) - Changed defined(U_WINDOWS) to defined(WIN32) to match existing utypes.h
21537
21538        Updated include files without any function change so no new tests.
21539
21540        * icu/unicode/localpointer.h: Added.
21541        * icu/unicode/parseerr.h:
21542        * icu/unicode/platform.h:
21543        * icu/unicode/putil.h:
21544        * icu/unicode/ubrk.h:
21545        * icu/unicode/uchar.h:
21546        * icu/unicode/ucnv.h:
21547        * icu/unicode/ucnv_err.h:
21548        * icu/unicode/ucol.h:
21549        * icu/unicode/ucoleitr.h:
21550        * icu/unicode/uconfig.h:
21551        * icu/unicode/ucsdet.h:
21552        * icu/unicode/uenum.h:
21553        * icu/unicode/uidna.h:
21554        * icu/unicode/uiter.h:
21555        * icu/unicode/uloc.h:
21556        * icu/unicode/umachine.h:
21557        * icu/unicode/unorm.h:
21558        * icu/unicode/urename.h:
21559        * icu/unicode/uscript.h:
21560        * icu/unicode/usearch.h:
21561        * icu/unicode/uset.h:
21562        * icu/unicode/ushape.h:
21563        * icu/unicode/ustring.h:
21564        * icu/unicode/utext.h: Added.
21565        * icu/unicode/utf.h:
21566        * icu/unicode/utf16.h:
21567        * icu/unicode/utf8.h:
21568        * icu/unicode/utypes.h:
21569        * icu/unicode/uvernum.h: Added.
21570        * icu/unicode/uversion.h:
21571
215722012-09-11  Adam Barth  <abarth@chromium.org>
21573
21574        [V8] 8% regression in dom_perf
21575        https://bugs.webkit.org/show_bug.cgi?id=96433
21576
21577        Reviewed by Kentaro Hara.
21578
21579        This code used to have a fast path to find the V8PerContextData for DOM
21580        nodes. I tried a bunch of variations, but nothing I can come up with is
21581        as fast as the old fast path, so I've added back the fast path.
21582
21583        * bindings/scripts/CodeGeneratorV8.pm:
21584        (GenerateToV8Converters):
21585        * bindings/v8/V8DOMWrapper.cpp:
21586        (WebCore::V8DOMWrapper::instantiateV8Object):
21587        * bindings/v8/V8DOMWrapper.h:
21588        (V8DOMWrapper):
21589
215902012-09-11  Andreas Kling  <kling@webkit.org>
21591
21592        ElementAttributeData: Use subclasses to manage varying object layouts.
21593        <http://webkit.org/b/94465>
21594
21595        Reviewed by Antti Koivisto.
21596
21597        Add two ElementAttributeData subclasses:
21598
21599            - MutableElementAttributeData
21600            - ImmutableElementAttributeData
21601
21602        The ElementAttributeData::m_isMutable bit determines which subclass to cast to when accessing
21603        the attribute storage. Added mutableAttributeVector() and immutableAttributeArray() helpers
21604        to ElementAttributeData (with appropriate assertions.)
21605
21606        This patch removes one step of indirection in the mutable case, since the Vector<Attribute> is no
21607        longer heap-allocated, but part of MutableElementAttributeData.
21608
21609        Added a WTF::deleteOwnedPtr(ElementAttributeData*) specialization so that the appropriate subclass
21610        destructor is called for these objects.
21611
21612        * WebCore.exp.in:
21613        * dom/Element.cpp:
21614        (WebCore::Element::createMutableAttributeData):
21615        * dom/ElementAttributeData.cpp:
21616        (WebCore::ElementAttributeData::createImmutable):
21617        (WebCore::ElementAttributeData::create):
21618        (WebCore::ElementAttributeData::ElementAttributeData):
21619        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
21620        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
21621        (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
21622        (WebCore::ElementAttributeData::makeMutableCopy):
21623        (WebCore::ElementAttributeData::addAttribute):
21624        (WebCore::ElementAttributeData::removeAttribute):
21625        (WebCore::ElementAttributeData::reportMemoryUsage):
21626        (WebCore::ElementAttributeData::cloneDataFrom):
21627        (WebCore::ElementAttributeData::clearAttributes):
21628        * dom/ElementAttributeData.h:
21629        (ElementAttributeData):
21630        (WebCore::ElementAttributeData::isMutable):
21631        (ImmutableElementAttributeData):
21632        (MutableElementAttributeData):
21633        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
21634        (WebCore::ElementAttributeData::immutableAttributeArray):
21635        (WebCore::ElementAttributeData::mutableAttributeVector):
21636        (WebCore::ElementAttributeData::length):
21637        (WebCore::ElementAttributeData::attributeItem):
21638
216392012-09-11  Tony Chang  <tony@chromium.org>
21640
21641        Pass the logical height and logical top into RenderBox::computeLogicalHeight
21642        https://bugs.webkit.org/show_bug.cgi?id=96432
21643
21644        Reviewed by Ojan Vafai.
21645
21646        This allows us to call RenderBox::computeLogicalHeight without first having to call
21647        setLogicalHeight() and setLogicalTop().  Previously, computeLogicalHeight would depend
21648        on these values.
21649
21650        No new tests, this is just a refactor.
21651
21652        * rendering/RenderBox.cpp:
21653        (WebCore::RenderBox::updateLogicalHeight): Pass logicalHeight and logicalTop as params.
21654        (WebCore::RenderBox::computeLogicalHeight): Use passed in values instead of calling logicalHeight/logicalTop.
21655        (WebCore::RenderBox::computePositionedLogicalHeight): Pass the logicalHeight into computePositionedLogicalHeightUsing.
21656        (WebCore::RenderBox::computePositionedLogicalHeightUsing): Pass in the logicalHeight as a parameter.
21657        * rendering/RenderBox.h:
21658        (RenderBox): Update computePositionedLogicalHeightUsing and computeLogicalHeight.
21659
216602012-09-11  Joshua Bell  <jsbell@chromium.org>
21661
21662        IndexedDB: Optimize key decode and comparison operations
21663        https://bugs.webkit.org/show_bug.cgi?id=96037
21664
21665        Reviewed by Tony Chang.
21666
21667        Eliminate memory allocations in code identified as CPU bottlenecks in IDB profiling.
21668
21669        No new tests - just performance work.
21670
21671        * Modules/indexeddb/IDBLevelDBCoding.cpp:
21672        (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Avoid incremental allocations.
21673        (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Rename confusing variables p and q.
21674        (IDBLevelDBCoding):
21675        (WebCore::IDBLevelDBCoding::compare): Rename from decodeAndCompare, and add specializations
21676        for frequently encountered types (e.g. object/index data) that can be compared without a
21677        full decode.
21678
216792012-09-11  Adam Klein  <adamk@chromium.org>
21680
21681        Unreviewed, rolling out r128075
21682        https://bugs.webkit.org/show_bug.cgi?id=96435
21683
21684        Broke chromium content_browsertests and included flaky layout tests
21685
21686        * html/shadow/MediaControlRootElementChromium.cpp:
21687        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
21688        (WebCore::MediaControlRootElementChromium::reset):
21689        (WebCore::MediaControlRootElementChromium::playbackStarted):
21690        (WebCore::MediaControlRootElementChromium::playbackProgressed):
21691        (WebCore::MediaControlRootElementChromium::playbackStopped):
21692        (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
21693        * html/shadow/MediaControlRootElementChromium.h:
21694        (MediaControlPanelEnclosureElement):
21695        (MediaControlRootElementChromium):
21696
216972012-09-11  Matt Lilek  <mrl@apple.com>
21698
21699        OS X port should compile with newer versions of clang
21700        https://bugs.webkit.org/show_bug.cgi?id=96434
21701
21702        Reviewed by Anders Carlsson.
21703
21704        Guard m_hasTouchEventHandler behind ENABLE(TOUCH_EVENTS).
21705        * html/HTMLInputElement.cpp:
21706        (WebCore::HTMLInputElement::HTMLInputElement):
21707        * html/HTMLInputElement.h:
21708        (HTMLInputElement):
21709
21710        Fix uninitialized variable.
21711        * platform/graphics/cg/GraphicsContextCG.cpp:
21712        (WebCore::createLinearSRGBColorSpace):
21713
217142012-09-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
21715
21716        [Gtk] allow building with css-shaders
21717        https://bugs.webkit.org/show_bug.cgi?id=95603
21718
21719        Reviewed by Martin Robinson.
21720
21721        Add support for css filters and shaders in GNUmakefile.am and include
21722        Texture.cpp, Texture.h, TilingData.cpp and TilingData.h in
21723        webcore_sources
21724
21725        No functional change, so no new tests.
21726
21727        * GNUmakefile.am:
21728        * GNUmakefile.list.am:
21729
217302012-09-11  Dimitri Glazkov  <dglazkov@chromium.org>
21731
21732        Remove StyleResolver::setStyle, because it's no longer used.
21733        https://bugs.webkit.org/show_bug.cgi?id=96423
21734
21735        Reviewed by Eric Seidel.
21736
21737        No new tests, simple refactoring.
21738
21739        * css/StyleResolver.h: Removed unused function.
21740
217412012-09-11  Chris Fleizach  <cfleizach@apple.com>
21742
21743        AX: title attribute is not exposed as the AXDescription on AXImage when there is no other fallback content
21744        https://bugs.webkit.org/show_bug.cgi?id=96412
21745
21746        Reviewed by Jon Honeycutt.
21747
21748        Ensure that if an image has a title attribute, but no alt attribute, it will fallback to use the title attribute 
21749        for the descriptive text.
21750
21751        Test: accessibility/img-fallsback-to-title.html
21752
21753        * accessibility/AccessibilityRenderObject.cpp:
21754        (WebCore::AccessibilityRenderObject::accessibilityDescription):
21755
217562012-09-11  Rik Cabanier  <cabanier@adobe.com>
21757
21758        Clean up functions in RenderLayerBacking.h/.cpp
21759        https://bugs.webkit.org/show_bug.cgi?id=96370
21760
21761        Reviewed by Simon Fraser.
21762
21763        Remove 'layer' from function names in RenderLayerBacking
21764
21765        No new test. No change in functionality.
21766
21767        * rendering/RenderLayerBacking.cpp:
21768        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
21769        (WebCore::RenderLayerBacking::updateOpacity):
21770        (WebCore::RenderLayerBacking::updateTransform):
21771        (WebCore::RenderLayerBacking::updateFilters):
21772        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
21773        (WebCore::RenderLayerBacking::startTransition):
21774        * rendering/RenderLayerBacking.h:
21775        (RenderLayerBacking):
21776
217772012-09-11  Stephen White  <senorblanco@chromium.org>
21778
21779        [skia] Switch FEComponentTransfer filter to use skia's SkColorFilter
21780        https://bugs.webkit.org/show_bug.cgi?id=95238
21781
21782        Reviewed by Dirk Schulze.
21783
21784        Covered by existing tests in svg/, such as svg/custom/feComponentTransfer-Discrete.svg.
21785
21786        * WebCore.gypi:
21787        * platform/graphics/filters/FEComponentTransfer.cpp:
21788        (WebCore::FEComponentTransfer::platformApplySoftware):
21789        Add a check for the skia implementation.
21790        (WebCore::FEComponentTransfer::getValues):
21791        * platform/graphics/filters/FEComponentTransfer.h:
21792        Factor out the retrieval of LUT values into its own function, so we
21793        can call it from the Skia implementation.
21794        * platform/graphics/filters/skia/FEComponentTransferSkia.cpp: Added.
21795        (WebCore::FEComponentTransfer::platformApplySkia):
21796
217972012-09-11  Kevin Ellis  <kevers@chromium.org>
21798
21799        Crash on a long press gesture when touch adjustment is enabled.
21800        https://bugs.webkit.org/show_bug.cgi?id=96313
21801
21802        Reviewed by Antonio Gomes.
21803
21804        Fix to ensure that a long-press on a shadow-DOM element does not 
21805        trigger a crash in TouchAdjustment::providesContextMenuItems.
21806        Prior to the patch, a null-pointer exception was trigger because
21807        of a null renderer in the check.
21808
21809        Test: touchadjustment/context-menu-shadow-node.html
21810
21811        * page/TouchAdjustment.cpp:
21812        (WebCore::TouchAdjustment::providesContextMenuItems):
21813
218142012-09-11  Zan Dobersek  <zandobersek@gmail.com>
21815
21816        Unreviewed, manually rolling out r128175.
21817        The patch is causing crashes in debug builds.
21818        http://trac.webkit.org/changeset/128175
21819        https://bugs.webkit.org/show_bug.cgi?id=96284
21820
21821        * platform/network/soup/ResourceResponseSoup.cpp:
21822        (WebCore::ResourceResponse::updateFromSoupMessage):
21823
218242012-09-11  James Robinson  <jamesr@chromium.org>
21825
21826        Unreviewed, rolling out r128212.
21827        http://trac.webkit.org/changeset/128212
21828        https://bugs.webkit.org/show_bug.cgi?id=96037
21829
21830        Assertion fails on linux 64
21831
21832        * Modules/indexeddb/IDBLevelDBCoding.cpp:
21833        (WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
21834        (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
21835        (IDBLevelDBCoding):
21836        (WebCore::IDBLevelDBCoding::compare):
21837
218382012-09-11  Joshua Bell  <jsbell@chromium.org>
21839
21840        IndexedDB: IDBObjectStore.count() is slow
21841        https://bugs.webkit.org/show_bug.cgi?id=96033
21842
21843        Reviewed by Tony Chang.
21844
21845        Avoid decoding record values when performing count() iteration, and factor out common code
21846        used for initializing object store and index cursors. Also, remove unused indexDataId()
21847        methods (which date back to the SQLite backing store), and rename some p's and q's.
21848
21849        No new tests - no functional changes. Covered by existing test:
21850            LayoutTests/storage/indexeddb/objectstore-count.html
21851
21852        * Modules/indexeddb/IDBBackingStore.h: Expose new (internal) ObjectStoreKeyCursor
21853        (IDBBackingStore):
21854        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
21855        (WebCore): Factor out common CursorOptions initialization code. The objectStoreCursorOptions()
21856        function is needed for this patch. The indexCursorOptions() function is not, but eliminates
21857        duplicated code and is a nearly identical refactor.
21858        (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor): Refactor.
21859        (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor): Implement.
21860        (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor): Refactor.
21861        (WebCore::IDBLevelDBBackingStore::openIndexCursor): Ditto.
21862        * Modules/indexeddb/IDBLevelDBBackingStore.h:
21863        (IDBLevelDBBackingStore):
21864        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
21865        (WebCore::IDBObjectStoreBackendImpl::countInternal): Use ObjectStoreKeyCursor for iteration.
21866
218672012-09-11  Ojan Vafai  <ojan@chromium.org>
21868
21869        Refactor computePercentageLogicalHeight to simplify the logic a bit
21870        https://bugs.webkit.org/show_bug.cgi?id=96329
21871
21872        Reviewed by Tony Chang.
21873
21874        This makes it clear that the value we're computing as we go is the availableHeight.
21875
21876        * rendering/RenderBox.cpp:
21877        (WebCore::RenderBox::computePercentageLogicalHeight):
21878
218792012-09-11  Joshua Bell  <jsbell@chromium.org>
21880
21881        IndexedDB: Optimize key decode and comparison operations
21882        https://bugs.webkit.org/show_bug.cgi?id=96037
21883
21884        Reviewed by Tony Chang.
21885
21886        Eliminate memory allocations in code identified as CPU bottlenecks in IDB profiling.
21887
21888        No new tests - just performance work.
21889
21890        * Modules/indexeddb/IDBLevelDBCoding.cpp:
21891        (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Avoid incremental allocations.
21892        (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Rename confusing variables p and q.
21893        (IDBLevelDBCoding):
21894        (WebCore::IDBLevelDBCoding::compare): Rename from decodeAndCompare, and add specializations
21895        for frequently encountered types (e.g. object/index data) that can be compared without a
21896        full decode.
21897
218982012-09-11  Marcelo Lira  <marcelo.lira@openbossa.org>
21899
21900        Restore original value of mock scrollbars enabled in InternalSettings
21901        https://bugs.webkit.org/show_bug.cgi?id=87680
21902
21903        Reviewed by Adam Barth.
21904
21905        Added backup support for mock scrollbars state in
21906        InternalSettings::Backup, and removed support for these
21907        from Qt's DumpRenderTree.
21908
21909        * testing/InternalSettings.cpp:
21910        (WebCore::InternalSettings::Backup::Backup):
21911        (WebCore::InternalSettings::Backup::restoreTo):
21912        * testing/InternalSettings.h:
21913        (Backup):
21914
219152012-09-11  Mike West  <mkwst@chromium.org>
21916
21917        Improve console error messages when 'document.domain' blocks cross-origin script access.
21918        https://bugs.webkit.org/show_bug.cgi?id=96247
21919
21920        Reviewed by Adam Barth.
21921
21922        Setting 'document.domain' can produce counterintuitive "cross-origin"
21923        error messages for script access in cases where the property isn't set
21924        to the same value in both the accessor and accessee. This patch adds a
21925        bit more context to the error message to make it clear that both sides
21926        must set the property, and that the values must match.
21927
21928        This shouldn't change any externally visible behavior other than the
21929        error warnings. It's covered by changes to existing tests.
21930
21931        * page/DOMWindow.cpp:
21932        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
21933            Adding checks for 'document.domain'-related errors, and adding an
21934            ASSERT that crossDomainAccessErrorMessage is called in cases where
21935            the accessing frame is actually denied access to the frame being
21936            accessed.
21937
219382012-09-11  Jinwoo Song  <jinwoo7.song@samsung.com>
21939
21940        Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more places
21941        https://bugs.webkit.org/show_bug.cgi?id=96344
21942
21943        Reviewed by Benjamin Poulain.
21944
21945        Use StringBuilder::appendNumber() instead of String::number(). Also deploy 
21946        StringBuilder::appendLiteral() instead of String::append() in the surrounding code.
21947
21948        * css/CSSAspectRatioValue.cpp:
21949        (WebCore::CSSAspectRatioValue::customCssText):
21950        * platform/graphics/gpu/LoopBlinnPathProcessor.cpp:
21951        (WebCore):
21952        * svg/SVGPointList.cpp:
21953        (WebCore::SVGPointList::valueAsString):
21954
219552012-09-11  Tony Chang  <tony@chromium.org>
21956
21957        Rename computeLogicalHeight to updateLogicalHeight
21958        https://bugs.webkit.org/show_bug.cgi?id=96305
21959
21960        Reviewed by Ojan Vafai.
21961
21962        computeLogicalHeight changes the value of 4 member variables of the
21963        render box, so give it a name that makes it more clear that it is
21964        updating member variables.
21965
21966        No new tests, this is just a refactor.
21967
21968        * rendering/RenderBlock.cpp:
21969        (WebCore::RenderBlock::computeInitialRegionRangeForBlock):
21970        (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
21971        (WebCore::RenderBlock::layoutBlock):
21972        (WebCore::RenderBlock::layoutPositionedObjects):
21973        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
21974        * rendering/RenderBox.cpp:
21975        (WebCore::RenderBox::updateLogicalHeight):
21976        (WebCore::RenderBox::computePercentageLogicalHeight):
21977        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
21978        (WebCore::RenderBox::availableLogicalHeightUsing):
21979        * rendering/RenderBox.h:
21980        (RenderBox):
21981        (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
21982        * rendering/RenderDeprecatedFlexibleBox.cpp:
21983        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
21984        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
21985        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
21986        * rendering/RenderEmbeddedObject.cpp:
21987        (WebCore::RenderEmbeddedObject::layout):
21988        * rendering/RenderFlexibleBox.cpp:
21989        (WebCore::RenderFlexibleBox::layoutBlock):
21990        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
21991        * rendering/RenderFlowThread.cpp:
21992        (WebCore::RenderFlowThread::updateLogicalHeight):
21993        * rendering/RenderFlowThread.h:
21994        * rendering/RenderGrid.cpp:
21995        (WebCore::RenderGrid::layoutBlock):
21996        * rendering/RenderHTMLCanvas.cpp:
21997        (WebCore::RenderHTMLCanvas::canvasSizeChanged):
21998        * rendering/RenderIFrame.cpp:
21999        (WebCore::RenderIFrame::updateLogicalHeight):
22000        (WebCore::RenderIFrame::layoutSeamlessly):
22001        (WebCore::RenderIFrame::layout):
22002        * rendering/RenderIFrame.h:
22003        (RenderIFrame):
22004        * rendering/RenderImage.cpp:
22005        (WebCore::RenderImage::imageDimensionsChanged):
22006        * rendering/RenderListBox.cpp:
22007        (WebCore::RenderListBox::updateLogicalHeight):
22008        * rendering/RenderListBox.h:
22009        (RenderListBox):
22010        * rendering/RenderMeter.cpp:
22011        (WebCore::RenderMeter::updateLogicalHeight):
22012        * rendering/RenderMeter.h:
22013        (RenderMeter):
22014        * rendering/RenderMultiColumnBlock.cpp:
22015        (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
22016        * rendering/RenderMultiColumnFlowThread.h:
22017        * rendering/RenderMultiColumnSet.cpp:
22018        (WebCore::RenderMultiColumnSet::updateLogicalHeight):
22019        * rendering/RenderMultiColumnSet.h:
22020        (RenderMultiColumnSet):
22021        * rendering/RenderReplaced.cpp:
22022        (WebCore::RenderReplaced::layout):
22023        * rendering/RenderSearchField.cpp:
22024        (WebCore::RenderSearchField::computeControlHeight):
22025        * rendering/RenderTable.cpp:
22026        (WebCore::RenderTable::layout):
22027        * rendering/RenderTextControl.cpp:
22028        (WebCore::RenderTextControl::updateLogicalHeight):
22029        * rendering/RenderTextControl.h:
22030        (RenderTextControl):
22031        * rendering/RenderView.cpp:
22032        (WebCore::RenderView::updateLogicalHeight):
22033        * rendering/RenderView.h:
22034        * rendering/svg/RenderSVGForeignObject.cpp:
22035        (WebCore::RenderSVGForeignObject::updateLogicalHeight):
22036        * rendering/svg/RenderSVGForeignObject.h:
22037        (RenderSVGForeignObject):
22038        * rendering/svg/RenderSVGRoot.cpp:
22039        (WebCore::RenderSVGRoot::layout):
22040
220412012-09-11  Zach Kuznia  <zork@chromium.org>
22042
22043        Fix FilterTypeZoom to properly call canvas->restore()
22044        https://bugs.webkit.org/show_bug.cgi?id=96082
22045
22046        Reviewed by Adrienne Walker.
22047
22048        Fix zoom filter to properly call canvas->restore()
22049
22050        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
22051        (WebCore::CCRenderSurfaceFilters::apply):
22052
220532012-09-11  Sergio Villar Senin  <svillar@igalia.com>
22054
22055        [GTK] WebKitGtk+ crashes with non-UTF8 HTTP header names
22056        https://bugs.webkit.org/show_bug.cgi?id=96284
22057
22058        Reviewed by Gustavo Noronha Silva.
22059
22060        Non UTF-8 characters sent as part of a HTTP header name were
22061        causing crashes as String::fromUTF8() was returning NULL for
22062        them. Use String::fromUTF8WithLatin1Fallback() instead.
22063
22064        Test: http/tests/misc/non-utf8-header-name.php
22065
22066        * platform/network/soup/ResourceResponseSoup.cpp:
22067        (WebCore::ResourceResponse::updateFromSoupMessage):
22068
220692012-09-11  Sheriff Bot  <webkit.review.bot@gmail.com>
22070
22071        Unreviewed, rolling out r128175.
22072        http://trac.webkit.org/changeset/128175
22073        https://bugs.webkit.org/show_bug.cgi?id=96395
22074
22075        broke hunders of tests for EFL and GTK (Requested by rakuco on
22076        #webkit).
22077
22078        * platform/network/soup/ResourceResponseSoup.cpp:
22079        (WebCore::ResourceResponse::updateFromSoupMessage):
22080
220812012-09-11  Raphael Kubo da Costa  <rakuco@webkit.org>
22082
22083        [EFL] Rewrite the EFL-related Find modules
22084        https://bugs.webkit.org/show_bug.cgi?id=95237
22085
22086        Reviewed by Kenneth Rohde Christiansen.
22087
22088        * CMakeLists.txt: Stop setting the LINK_FLAGS property now that no
22089        port sets WebCore_LINK_FLAGS.
22090        * PlatformEfl.cmake: Add libraries and include directories for
22091        each Enlightenment Foundation Library used by the port.
22092
220932012-09-11  Csaba Osztrogonác  <ossy@webkit.org>
22094
22095        [Qt] Unreviewed, rolling out 128054, because it broke the Windows build.
22096
22097        * DerivedSources.pri:
22098
220992012-09-11  Andras Becsi  <andras.becsi@nokia.com>
22100
22101        [Qt] Fix the build with libwebp
22102
22103        Rubber-stamped by Tor Arne Vestbø
22104
22105        The use-flag is called WEBP not LIBWEBP, so use that when appending -lwebp.
22106
22107        * WebCore.pri:
22108
221092012-09-10  Andrey Kosyakov  <caseq@chromium.org>
22110
22111        Web Inspector: visualize layout root in Timeline
22112        https://bugs.webkit.org/show_bug.cgi?id=96279
22113
22114        Reviewed by Pavel Feldman.
22115
22116        - pass layout root to InspectorTimelineAgent::didLayout
22117        - show rectangles of the layout root upon hover over the Layout record;
22118
22119        * inspector/InspectorInstrumentation.cpp:
22120        (WebCore):
22121        (WebCore::InspectorInstrumentation::didLayoutImpl):
22122        * inspector/InspectorInstrumentation.h:
22123        (WebCore):
22124        (InspectorInstrumentation):
22125        (WebCore::InspectorInstrumentation::didLayout):
22126        * inspector/InspectorTimelineAgent.cpp:
22127        (WebCore::InspectorTimelineAgent::didLayout):
22128        * inspector/InspectorTimelineAgent.h:
22129        (WebCore):
22130        (InspectorTimelineAgent):
22131        * inspector/TimelineRecordFactory.cpp:
22132        (WebCore::TimelineRecordFactory::createPaintData):
22133        (WebCore::TimelineRecordFactory::addRectData):
22134        (WebCore):
22135        * inspector/TimelineRecordFactory.h:
22136        (TimelineRecordFactory):
22137        * inspector/front-end/TimelinePanel.js:
22138        (WebInspector.TimelinePanel.prototype._mouseMove):
22139        * page/FrameView.cpp:
22140        (WebCore::FrameView::layout):
22141
221422012-09-10  Andrey Kosyakov  <caseq@chromium.org>
22143
22144        Web Inspector: highlight of paint rectangles is broken
22145        https://bugs.webkit.org/show_bug.cgi?id=96276
22146
22147        Reviewed by Pavel Feldman.
22148
22149        * inspector/InspectorOverlay.cpp:
22150        (WebCore::InspectorOverlay::drawRectHighlight): Fix JS method name to match the one in InspectorOverlayPage.html
22151
221522012-09-11  Chris Guan  <chris.guan@torchmobile.com.cn>
22153
22154        [Blackberry] use ReadOnlyLatin1String to save a deep copy
22155        https://bugs.webkit.org/show_bug.cgi?id=96364
22156
22157        Reviewed by Yong Li.
22158        Internally reviewed by Yong li.
22159
22160        * platform/network/blackberry/NetworkManager.cpp:
22161        (WebCore::NetworkManager::startJob):
22162
221632012-09-11  Sergio Villar Senin  <svillar@igalia.com>
22164
22165        [GTK] WebKitGtk+ crashes with non-UTF8 HTTP header names
22166        https://bugs.webkit.org/show_bug.cgi?id=96284
22167
22168        Reviewed by Gustavo Noronha Silva.
22169
22170        Non UTF-8 characters sent as part of a HTTP header name were
22171        causing crashes as String::fromUTF8() was returning NULL for
22172        them. Use String::fromUTF8WithLatin1Fallback() instead.
22173
22174        Test: http/tests/misc/non-utf8-header-name.php
22175
22176        * platform/network/soup/ResourceResponseSoup.cpp:
22177        (WebCore::ResourceResponse::updateFromSoupMessage):
22178
221792012-09-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
22180
22181        [Qt] Add a configure step to the Qt build system
22182
22183        This allows building the Qt port using just 'qmake WebKit.pro'. Using
22184        the build-webkit script is still supported, and will add slightly more
22185        logic to the build, such as detecting the need for clean or incremental
22186        builds.
22187
22188        Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
22189        all things related to configuring the build, such as use/have/enable flags,
22190        and these are translated to defines in default_post. Project files should
22191        no longer check contains(DEFINES,...) to detect features, but use the new
22192        enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
22193        options have been translated into WEBKIT_CONFIG options as well, and can
22194        be checked using build?().
22195
22196        Reviewed by Simon Hausmann.
22197
22198        * DerivedSources.pri:
22199        * Target.pri:
22200        * WebCore.pri:
22201
222022012-09-11  Alexander Pavlov  <apavlov@chromium.org>
22203
22204        Web Inspector: Remove no-op TreeElement.prototype.didChange method
22205        https://bugs.webkit.org/show_bug.cgi?id=96376
22206
22207        Reviewed by Yury Semikhatsky.
22208
22209        * inspector/front-end/treeoutline.js:
22210        (TreeElement.prototype.set title):
22211        (TreeElement.prototype.set tooltip):
22212        (TreeElement.prototype.set hasChildren):
22213
222142012-09-11  Tommy Widenflycht  <tommyw@google.com>
22215
22216        MediaStream API: add RTCPeerConnection::onnegotiationneeded
22217        https://bugs.webkit.org/show_bug.cgi?id=96097
22218
22219        Reviewed by Adam Barth.
22220
22221        This patch adds the last callback to RTCPeerConnection: onnegotiationneeded.
22222        This is called whenever the state in the RTCPeerConnection changes and that
22223        change needs to be sent to the other side.
22224
22225        Test: fast/mediastream/RTCPeerConnection-onnegotiationneeded.html
22226
22227        * Modules/mediastream/RTCPeerConnection.cpp:
22228        (WebCore::RTCPeerConnection::negotiationNeeded):
22229        (WebCore):
22230        * Modules/mediastream/RTCPeerConnection.h:
22231        (RTCPeerConnection):
22232        * Modules/mediastream/RTCPeerConnection.idl:
22233        * dom/EventNames.h:
22234        (WebCore):
22235        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
22236        (RTCPeerConnectionHandlerClient):
22237        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
22238        (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
22239        (WebCore):
22240        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
22241        (RTCPeerConnectionHandlerChromium):
22242
222432012-09-11  Kent Tamura  <tkent@chromium.org>
22244
22245        Sort an Xcode project file.
22246
22247        * WebCore.xcodeproj/project.pbxproj:
22248
222492012-09-11  Dan Carney  <dcarney@google.com>
22250
22251        Removed V8IsolatedContext
22252        https://bugs.webkit.org/show_bug.cgi?id=95735
22253
22254        Reviewed by Adam Barth.
22255
22256        Remove V8IsolatedContext and merge functionality into V8DOMWindowShell.
22257        This brings the V8 isolated world model into closer alignment with
22258        that of JSC.
22259
22260        No new tests.  No change in functionality.
22261
22262        * UseV8.cmake:
22263        * WebCore.gypi:
22264        * bindings/scripts/CodeGeneratorV8.pm:
22265        (GenerateImplementation):
22266        * bindings/scripts/test/V8/V8Float64Array.cpp:
22267        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
22268        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
22269        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
22270        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
22271        * bindings/scripts/test/V8/V8TestException.cpp:
22272        * bindings/scripts/test/V8/V8TestInterface.cpp:
22273        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
22274        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
22275        * bindings/scripts/test/V8/V8TestNode.cpp:
22276        * bindings/scripts/test/V8/V8TestObj.cpp:
22277        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
22278        * bindings/v8/DOMData.cpp:
22279        (WebCore::DOMData::getCurrentStore):
22280        * bindings/v8/DOMWrapperWorld.cpp:
22281        (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
22282        * bindings/v8/DOMWrapperWorld.h:
22283        (DOMWrapperWorld):
22284        * bindings/v8/ScriptController.cpp:
22285        (WebCore::ScriptController::ScriptController):
22286        (WebCore::ScriptController::resetIsolatedWorlds):
22287        (WebCore::ScriptController::ensureIsolatedWorldContext):
22288        (WebCore::ScriptController::existingWindowShellInternal):
22289        (WebCore):
22290        (WebCore::ScriptController::windowShell):
22291        (WebCore::ScriptController::evaluateInIsolatedWorld):
22292        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
22293        (WebCore::ScriptController::currentWorldContext):
22294        (WebCore::ScriptController::evaluateInWorld):
22295        (WebCore::ScriptController::collectIsolatedContexts):
22296        * bindings/v8/ScriptController.h:
22297        (WebCore):
22298        (ScriptController):
22299        (WebCore::ScriptController::existingWindowShell):
22300        * bindings/v8/SharedPersistent.h:
22301        (WebCore):
22302        (WebCore::SharedPersistent::create):
22303        (WebCore::SharedPersistent::get):
22304        (WebCore::SharedPersistent::SharedPersistent):
22305        (SharedPersistent):
22306        * bindings/v8/V8Binding.cpp:
22307        (WebCore::perContextDataForCurrentWorld):
22308        * bindings/v8/V8DOMWindowShell.cpp:
22309        (WebCore::setIsolatedWorldField):
22310        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
22311        (WebCore):
22312        (WebCore::setInjectedScriptContextDebugId):
22313        (WebCore::V8DOMWindowShell::create):
22314        (WebCore::V8DOMWindowShell::V8DOMWindowShell):
22315        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
22316        (WebCore::isolatedContextWeakCallback):
22317        (WebCore::V8DOMWindowShell::disposeContext):
22318        (WebCore::V8DOMWindowShell::initializeIfNeeded):
22319        (WebCore::V8DOMWindowShell::createContext):
22320        (WebCore::V8DOMWindowShell::installDOMWindow):
22321        (WebCore::V8DOMWindowShell::updateDocumentWrapper):
22322        (WebCore::V8DOMWindowShell::updateDocumentProperty):
22323        (WebCore::V8DOMWindowShell::clearDocumentProperty):
22324        (WebCore::V8DOMWindowShell::setSecurityToken):
22325        (WebCore::V8DOMWindowShell::updateDocument):
22326        (WebCore::V8DOMWindowShell::namedItemAdded):
22327        (WebCore::V8DOMWindowShell::namedItemRemoved):
22328        (WebCore::V8DOMWindowShell::updateSecurityOrigin):
22329        (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
22330        * bindings/v8/V8DOMWindowShell.h:
22331        (V8DOMWindowShell):
22332        (WebCore::V8DOMWindowShell::world):
22333        (WebCore::V8DOMWindowShell::isolatedWorldSecurityOrigin):
22334        (WebCore::V8DOMWindowShell::getEntered):
22335        * bindings/v8/V8DOMWrapper.h:
22336        (WebCore::V8DOMWrapper::getCachedWrapper):
22337        * bindings/v8/V8IsolatedContext.cpp: Removed.
22338        * bindings/v8/V8IsolatedContext.h: Removed.
22339        * bindings/v8/V8LazyEventListener.cpp:
22340        * bindings/v8/WorldContextHandle.cpp:
22341        (WebCore::WorldContextHandle::WorldContextHandle):
22342        (WebCore::WorldContextHandle::adjustedContext):
22343        * bindings/v8/custom/V8DocumentCustom.cpp:
22344        (WebCore::toV8):
22345        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
22346        (WebCore::toV8):
22347        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
22348        (WebCore::toV8):
22349        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
22350        (WebCore::V8XMLHttpRequest::constructorCallback):
22351
223522012-09-11  Keishi Hattori  <keishi@webkit.org>
22353
22354        Create Localizer factory method for LocaleMac
22355        https://bugs.webkit.org/show_bug.cgi?id=96355
22356
22357        Reviewed by Kent Tamura.
22358
22359        Preparing to use Localizer instead of LocaleMac/Win/ICU
22360
22361        No new tests. Covered in unit test tests/LocaleMacTest.cpp
22362
22363        * platform/text/Localizer.h:
22364        (Localizer):
22365        * platform/text/mac/LocaleMac.mm:
22366        (WebCore::Localizer::create):
22367        (WebCore):
22368
223692012-09-11  Mihnea Ovidenie  <mihnea@adobe.com>
22370
22371        [CSS Regions] Auto width is not working for Regions
22372        https://bugs.webkit.org/show_bug.cgi?id=74135
22373
22374        Reviewed by Julien Chaffraix.
22375
22376        It was not possible to flow content into a region having { width: auto; } since in such case, the region width was computed to 0.
22377        Now, a region having auto width, will have its width computed following the rules for calculation of widths and margins
22378        (http://www.w3.org/TR/CSS2/visudet.html#Computing_widths_and_margins).
22379        For those cases in which resolving the width requires measuring of content's min/max-content values, we use the associated named flow min/max-content
22380        values (the same for all regions with width auto in a region chain).
22381        When a region has width:auto, the computation of width should be done using normal block/box sizing code, instead of replaced element code.
22382        Contains code contributed by Alexandru Chiculita(achicu@adobe.com).
22383
22384        Tests: fast/regions/autowidth-abspos-regionchain.html
22385               fast/regions/autowidth-abspos.html
22386               fast/regions/autowidth-attachedinvalidregion.html
22387               fast/regions/autowidth-float.html
22388               fast/regions/autowidth-inlineblock.html
22389               fast/regions/autowidth-nonreplaced-abspos.html
22390               fast/regions/autowidth-nonreplacedblock-normalflow.html
22391               fast/regions/autowidth-normalflow-maxwidth.html
22392               fast/regions/autowidth-normalflow-minmaxwidth.html
22393               fast/regions/autowidth-normalflow-minwidth.html
22394               fast/regions/autowidth-normalflow-vertrl.html
22395               fast/regions/autowidth-normalflow.html
22396
22397        * rendering/RenderBox.cpp:
22398        (WebCore::RenderBox::computePositionedLogicalWidth): For positioned auto-width regions, skip the code path for replaced elements.
22399        * rendering/RenderRegion.cpp:
22400        (WebCore): Override min/maxPreferredLogicalWidth as they are used in the process of computing width for regions with auto width.
22401        As this moment, a region is still a RenderReplaced element, so this code needs to be revisited when the region will become a RenderBlock.
22402        Also, for min/max-width, we support only <length> values. We will extend support for other values in a following patch.
22403        We only attempt to use the flowThread min/maxPreferredLogicalWidth if the region is valid (there are no circular dependencies).
22404        (WebCore::RenderRegion::minPreferredLogicalWidth):
22405        (WebCore::RenderRegion::maxPreferredLogicalWidth):
22406        * rendering/RenderRegion.h:
22407        (RenderRegion): Override isInlineBlockOrInlineTable() and shouldComputeSizeAsReplaced() to ensure that computation for width auto follows the normal
22408        block/box sizing code.
22409        (WebCore::RenderRegion::expandToEncompassFlowThreadContentsIfNeeded):
22410
224112012-09-10  Ilya Tikhonovsky  <loislo@chromium.org>
22412
22413        Web Inspector: NMI: move MemoryInstrumentation.h to wtf
22414        https://bugs.webkit.org/show_bug.cgi?id=96356
22415
22416        Reviewed by Yury Semikhatsky.
22417
22418        It is necessary step because it helps us to remove dependency between platform and WebCore.
22419
22420        * GNUmakefile.list.am:
22421        * Target.pri:
22422        * WebCore.gypi:
22423        * WebCore.vcproj/WebCore.vcproj:
22424        * WebCore.xcodeproj/project.pbxproj:
22425        * dom/WebCoreMemoryInstrumentation.h:
22426        * inspector/MemoryInstrumentationImpl.h:
22427
224282012-09-10  Keishi Hattori  <keishi@webkit.org>
22429
22430        Move InputTypeNames to a separate file
22431        https://bugs.webkit.org/show_bug.cgi?id=96255
22432
22433        Reviewed by Kent Tamura.
22434
22435        We want to move InputTypeNames to a separate file so we can use it without including InputType.h.
22436
22437        No new tests. No behavior change.
22438
22439        * CMakeLists.txt:
22440        * GNUmakefile.list.am:
22441        * Target.pri:
22442        * WebCore.gypi:
22443        * WebCore.vcproj/WebCore.vcproj:
22444        * WebCore.xcodeproj/project.pbxproj:
22445        * html/ButtonInputType.cpp:
22446        * html/CheckboxInputType.cpp:
22447        * html/ColorInputType.cpp:
22448        * html/DateInputType.cpp:
22449        * html/DateTimeInputType.cpp:
22450        * html/DateTimeLocalInputType.cpp:
22451        * html/EmailInputType.cpp:
22452        * html/FileInputType.cpp:
22453        * html/HiddenInputType.cpp:
22454        * html/ImageInputType.cpp:
22455        * html/InputType.cpp:
22456        * html/InputType.h:
22457        * html/InputTypeNames.cpp: Added.
22458        (WebCore):
22459        (InputTypeNames):
22460        (WebCore::InputTypeNames::button):
22461        (WebCore::InputTypeNames::checkbox):
22462        (WebCore::InputTypeNames::color):
22463        (WebCore::InputTypeNames::date):
22464        (WebCore::InputTypeNames::datetime):
22465        (WebCore::InputTypeNames::datetimelocal):
22466        (WebCore::InputTypeNames::email):
22467        (WebCore::InputTypeNames::file):
22468        (WebCore::InputTypeNames::hidden):
22469        (WebCore::InputTypeNames::image):
22470        (WebCore::InputTypeNames::month):
22471        (WebCore::InputTypeNames::number):
22472        (WebCore::InputTypeNames::password):
22473        (WebCore::InputTypeNames::radio):
22474        (WebCore::InputTypeNames::range):
22475        (WebCore::InputTypeNames::reset):
22476        (WebCore::InputTypeNames::search):
22477        (WebCore::InputTypeNames::submit):
22478        (WebCore::InputTypeNames::telephone):
22479        (WebCore::InputTypeNames::text):
22480        (WebCore::InputTypeNames::time):
22481        (WebCore::InputTypeNames::url):
22482        (WebCore::InputTypeNames::week):
22483        * html/InputTypeNames.h: Added.
22484        (WebCore):
22485        (InputTypeNames):
22486        * html/MonthInputType.cpp:
22487        * html/NumberInputType.cpp:
22488        * html/PasswordInputType.cpp:
22489        * html/RadioInputType.cpp:
22490        * html/RangeInputType.cpp:
22491        * html/ResetInputType.cpp:
22492        * html/SearchInputType.cpp:
22493        * html/SubmitInputType.cpp:
22494        * html/TelephoneInputType.cpp:
22495        * html/TextInputType.cpp:
22496        * html/TimeInputType.cpp:
22497        * html/URLInputType.cpp:
22498        * html/WeekInputType.cpp:
22499        * html/parser/HTMLPreloadScanner.cpp:
22500        * platform/efl/RenderThemeEfl.cpp:
22501        * rendering/RenderThemeChromiumCommon.cpp:
22502
225032012-09-10  Yoshifumi Inoue  <yosin@chromium.org>
22504
22505        REGRESSION (r127226): Calling DateTimeEditElement::layout() in focus handler should not dispatch blur event
22506        https://bugs.webkit.org/show_bug.cgi?id=96232
22507
22508        Reviewed by Kent Tamura.
22509
22510        This patch makes DateTimeEditElement::layout() not to dispatch blur
22511        event by removing existing fields, one of them can be focused, after
22512        moving focus to newly created field.
22513
22514        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
22515        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
22516
22517        Test: fast/forms/time-multiple-fields/time-multiple-fields-state-change-on-focus-or-blur.html
22518
22519        * html/shadow/DateTimeEditElement.cpp:
22520        (WebCore::DateTimeEditBuilder::build): Changed to call resetFields().
22521        (WebCore::DateTimeEditElement::focusedFieldIndex): Changed to use
22522        Document::focusedNode(). When this function is called during handling
22523        focus event, Element::focused() isn't true.
22524        (WebCore::DateTimeEditElement::layout): Changed to remove existing
22525        child nodes after moving focus to newly created field.
22526        (WebCore::DateTimeEditElement::resetFields): Renamed from resetLayout().
22527        This function makes m_fields vector empty.
22528        (WebCore::DateTimeEditElement::resetLayout): Renamed to resetFields().
22529        We moved removing field elements and spin button to layout().
22530        * html/shadow/DateTimeEditElement.h:
22531        (DateTimeEditElement): Renamed resetLayout() to resetFields().
22532
225332012-09-10  Keishi Hattori  <keishi@webkit.org>
22534
22535        Rename NumberLocalizer to Localizer
22536        https://bugs.webkit.org/show_bug.cgi?id=96350
22537
22538        Reviewed by Kent Tamura.
22539
22540        Renaming NumberLocalizer to Localizer so we can unify our localization methods into this class in the future.
22541
22542        No new tests. No behavior change.
22543
22544        * WebCore.gypi:
22545        * WebCore.xcodeproj/project.pbxproj:
22546        * platform/text/LocaleICU.cpp:
22547        (WebCore::LocaleICU::initializeLocalizerData):
22548        * platform/text/LocaleICU.h:
22549        (LocaleICU):
22550        * platform/text/LocaleWin.cpp:
22551        (WebCore::LocaleWin::initializeLocalizerData):
22552        * platform/text/LocaleWin.h:
22553        (LocaleWin):
22554        * platform/text/Localizer.cpp: Renamed from Source/WebCore/platform/text/NumberLocalizer.cpp.
22555        (WebCore):
22556        (WebCore::Localizer::~Localizer):
22557        (WebCore::Localizer::setLocalizerData):
22558        (WebCore::Localizer::convertToLocalizedNumber):
22559        (WebCore::matches):
22560        (WebCore::Localizer::detectSignAndGetDigitRange):
22561        (WebCore::Localizer::matchedDecimalSymbolIndex):
22562        (WebCore::Localizer::convertFromLocalizedNumber):
22563        (WebCore::Localizer::localizedDecimalSeparator):
22564        * platform/text/Localizer.h: Renamed from Source/WebCore/platform/text/NumberLocalizer.h.
22565        (WebCore):
22566        (Localizer):
22567        (WebCore::Localizer::Localizer):
22568        * platform/text/mac/LocaleMac.h:
22569        (LocaleMac):
22570        * platform/text/mac/LocaleMac.mm:
22571        (WebCore::LocaleMac::initializeLocalizerData):
22572
225732012-09-10  Dan Bernstein  <mitz@apple.com>
22574
22575        Use an API symbol instead of a hardcoded string for the TIFF uniform type identifier.
22576
22577        Reviewed by Mark Rowe.
22578
22579        * platform/graphics/mac/ImageMac.mm:
22580        (WebCore::BitmapImage::getTIFFRepresentation): Replaced CFSTR("public.tiff") with kUTTypeTIFF.
22581
225822012-09-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
22583
22584        [CMake] Remove duplicated file in CMakeLists.txt
22585        https://bugs.webkit.org/show_bug.cgi?id=96346
22586
22587        Reviewed by Benjamin Poulain.
22588
22589        * CMakeLists.txt: Remove duplicated files.
22590
225912012-09-10  Joanmarie Diggs  <jdiggs@igalia.com>
22592
22593        Properly expose <legend> elements to ATs
22594        https://bugs.webkit.org/show_bug.cgi?id=84137
22595
22596        Reviewed by Chris Fleizach.
22597
22598        Created a new WebCore Accessibility Role, LegendRole. Used it to map to
22599        the expected platform role, ATK_ROLE_LABEL. Also established the needed
22600        AtkRelation pair, label-for/labelled-by between the legend and fieldset.
22601
22602        No new test needed - Existing legend.html test is now unskipped for Gtk.
22603
22604        * accessibility/AccessibilityObject.h: Added LegendRole
22605        * accessibility/AccessibilityRenderObject.cpp:
22606        (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Map legendTag to LegendRole
22607        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
22608        (webkitAccessibleGetName): Fieldset accessible should take its name from the associated LegendRole/label
22609        (setAtkRelationSetFromCoreObject): Set label-for/labelled-by AtkRelation pair between fieldset and legend
22610        (atkRole): Map LegendRole to ATK_ROLE_LABEL
22611        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
22612        (createAccessibilityRoleMap):  Map LegendRole to NSAccessibilityGroupRole
22613
226142012-09-10  Adam Barth  <abarth@chromium.org>
22615
22616        [V8] Code assumes that getScriptExecutionContext can return 0
22617        https://bugs.webkit.org/show_bug.cgi?id=96340
22618
22619        Reviewed by Eric Seidel.
22620
22621        This function can never return 0 (as long as V8 is on the stack).
22622        There's no reason to try to handle a 0 return as an error.
22623
22624        * bindings/scripts/CodeGeneratorV8.pm:
22625        (GenerateCallWith):
22626        (GenerateConstructorCallback):
22627        * bindings/scripts/test/V8/V8TestInterface.cpp:
22628        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
22629        (WebCore::V8TestInterface::constructorCallback):
22630        * bindings/scripts/test/V8/V8TestObj.cpp:
22631        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
22632        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
22633        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
22634        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
22635        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
22636        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
22637        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
22638        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
22639        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
22640        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
22641        (WebCore::TestObjV8Internal::withScriptExecutionContextCallback):
22642        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateCallback):
22643        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
22644        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
22645        * bindings/v8/custom/V8BlobCustom.cpp:
22646        (WebCore::V8Blob::constructorCallback):
22647        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
22648        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
22649        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
22650        (WebCore::V8MessageChannel::constructorCallback):
22651        * bindings/v8/custom/V8MutationObserverCustom.cpp:
22652        (WebCore::V8MutationObserver::constructorCallback):
22653        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
22654        (WebCore::V8SQLTransaction::executeSqlCallback):
22655        * bindings/v8/custom/V8WebSocketCustom.cpp:
22656        (WebCore::V8WebSocket::constructorCallback):
22657        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
22658        (WebCore::V8XMLHttpRequest::constructorCallback):
22659        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
22660        (WebCore::V8XMLHttpRequest::openCallback):
22661
226622012-09-10  Adam Barth  <abarth@chromium.org>
22663
22664        [V8] We don't us the global handle map for anything useful---let's remove it
22665        https://bugs.webkit.org/show_bug.cgi?id=96343
22666
22667        Reviewed by Kentaro Hara.
22668
22669        The global handle map was a dream of tracking all the persistent V8
22670        handles in WebCore. Unfortunately, it has never been complete, and I'm
22671        not aware of us using it for anything. This patch removes what little
22672        is left of it.
22673
22674        * bindings/v8/NPV8Object.cpp:
22675        (WebCore::freeV8NPObject):
22676        (WebCore::npCreateV8ScriptObject):
22677        * bindings/v8/V8GCController.cpp:
22678        (WebCore):
22679        (WebCore::V8GCController::gcEpilogue):
22680        (WebCore::V8GCController::collectGarbage):
22681        * bindings/v8/V8GCController.h:
22682        (V8GCController):
22683        * bindings/v8/V8PerIsolateData.h:
22684        (WebCore):
22685        (V8PerIsolateData):
22686
226872012-09-10  John Bates  <jbates@google.com>
22688
22689        [chromium] Fix trace event macro naming issue
22690        https://bugs.webkit.org/show_bug.cgi?id=96337
22691
22692        Reviewed by James Robinson.
22693
22694        * platform/chromium/TraceEvent.h:
22695
226962012-09-10  Joshua Bell  <jsbell@chromium.org>
22697
22698        IndexedDB: IDBFactory.deleteDatabase() is slow
22699        https://bugs.webkit.org/show_bug.cgi?id=96036
22700
22701        Reviewed by Tony Chang.
22702
22703        The deleteDatabase() operation is implemented by creating a LevelDBTansaction to accumulate
22704        the records to delete, then committing it. The transaction is a tree of key/operation pairs.
22705        As each (key, delete) entry is added to the tree compares need to be made, potentially
22706        requiring full key decodes. Since this temporary transaction is never read from, this is
22707        overkill.
22708
22709        Add a new "write only" transaction type that simply wraps a write batch, which provides
22710        transaction integrity but avoids the insertion overhead and has a minimal interface.
22711
22712        No new tests - no functional changes, only perf improvement.
22713
22714        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
22715        (WebCore::IDBLevelDBBackingStore::deleteDatabase): Use new write-only transaction type.
22716        * platform/leveldb/LevelDBTransaction.cpp:
22717        (WebCore::LevelDBWriteOnlyTransaction::create):
22718        (WebCore):
22719        (WebCore::LevelDBWriteOnlyTransaction::LevelDBWriteOnlyTransaction):
22720        (WebCore::LevelDBWriteOnlyTransaction::~LevelDBWriteOnlyTransaction):
22721        (WebCore::LevelDBWriteOnlyTransaction::remove):
22722        (WebCore::LevelDBWriteOnlyTransaction::commit):
22723        * platform/leveldb/LevelDBTransaction.h:
22724        (WebCore):
22725        (LevelDBWriteOnlyTransaction):
22726
227272012-09-10  Adam Barth  <abarth@chromium.org>
22728
22729        [V8] createFunctionOnlyCallback should be in V8Callback.h with the other callback functions
22730        https://bugs.webkit.org/show_bug.cgi?id=96336
22731
22732        Reviewed by Kentaro Hara.
22733
22734        Moving this function to V8Callback.h also lets us delete
22735        setTypeMismatchException because we no longer have a header inclusion
22736        cycle.
22737
22738        * bindings/v8/V8Callback.h:
22739        (WebCore::createFunctionOnlyCallback):
22740        (WebCore):
22741        * bindings/v8/V8Utilities.cpp:
22742        * bindings/v8/V8Utilities.h:
22743        (WebCore):
22744        * bindings/v8/custom/V8GeolocationCustom.cpp:
22745        * bindings/v8/custom/V8NotificationCustom.cpp:
22746
227472012-09-10  Beth Dakin  <bdakin@apple.com>
22748
22749        https://bugs.webkit.org/show_bug.cgi?id=96158
22750        Need API to suppress scrollbar animations
22751        -and corresponding-
22752        <rdar://problem/12210972>
22753
22754        Reviewed by Sam Weinig.
22755
22756        This patch re-names ScrollableAre::isOnActivePage() to 
22757        ScrollableArea::scrollbarsCanBeActive(). The new name better reflects 
22758        how the function is actually used, and it allows us to use the same 
22759        function for the new API that has been added to WebKit2. Now when a 
22760        client has used that API to indicate that scrollbars should be 
22761        suppressed, ScrollableArea::scrollbarsCanBeActive() will return 
22762        false.
22763
22764        Page has a new member variable which indicated whether scrollbar 
22765        animations for all scrollbars associated with that page should be 
22766        suppressed. Whenever it is set to true (meaning the animations 
22767        should be suppressed), Page iterates through all of the 
22768        ScrollableAreas to tell each one to finishCurrentScrollAnimations().
22769        * WebCore.exp.in:
22770        * page/Page.cpp:
22771        (WebCore::Page::Page):
22772        (WebCore::Page::setShouldSuppressScrollbarAnimations):
22773        (WebCore):
22774        * page/Page.h:
22775        (WebCore::Page::shouldSuppressScrollbarAnimations):
22776        (Page):
22777
22778        FrameView::isOnActivePage() is renamed to scrollbarsCanBeActive () 
22779        and it will now return false if the Page says that scrollbar 
22780        animations should be suppressed. 
22781        * page/FrameView.cpp:
22782        (WebCore::FrameView::scrollbarsCanBeActive):
22783
22784        scrollbarsCanBeActive() must now be a public member of FrameView so  
22785        that it can be called from RenderLayer and RenderListBox.
22786        * page/FrameView.h:
22787        (FrameView):
22788
22789        New ScrollAnimator function calls hideOverlayScrollers.
22790        * platform/ScrollAnimator.h:
22791        (WebCore::ScrollAnimator::finishCurrentScrollAnimations):
22792        (ScrollAnimator):
22793        * platform/ScrollableArea.cpp:
22794        (WebCore::ScrollableArea::finishCurrentScrollAnimations):
22795        (WebCore):
22796        * platform/ScrollableArea.h:
22797        (ScrollableArea):
22798        * platform/mac/ScrollAnimatorMac.h:
22799        (ScrollAnimatorMac):
22800        (WebCore::ScrollAnimatorMac::finishCurrentScrollAnimations):
22801
22802        Re-name. isOnActivePage() -> scrollbarsCanBeActive()
22803        (WebCore::FrameView::setAnimatorsAreActive):
22804        (WebCore::FrameView::notifyPageThatContentAreaWillPaint):
22805        * platform/mac/ScrollAnimatorMac.mm:
22806        (-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
22807        (WebCore::ScrollAnimatorMac::contentAreaWillPaint):
22808        (WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
22809        (WebCore::ScrollAnimatorMac::mouseExitedContentArea):
22810        (WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
22811        (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
22812        (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
22813        (WebCore::ScrollAnimatorMac::willStartLiveResize):
22814        (WebCore::ScrollAnimatorMac::contentsResized):
22815        (WebCore::ScrollAnimatorMac::willEndLiveResize):
22816        (WebCore::ScrollAnimatorMac::contentAreaDidShow):
22817        (WebCore::ScrollAnimatorMac::contentAreaDidHide):
22818        (WebCore::ScrollAnimatorMac::didBeginScrollGesture):
22819        (WebCore::ScrollAnimatorMac::didEndScrollGesture):
22820        (WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
22821        (WebCore):
22822        (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
22823        (WebCore::ScrollAnimatorMac::updateScrollerStyle):
22824        * rendering/RenderLayer.cpp:
22825
22826        RenderLayer and RenderListBox should call into FrameView's 
22827        scrollbarsCanBeActive() so that they also return false when Page:: 
22828        shouldSuppressScrollbarAnimations() is true.
22829        (WebCore::RenderLayer::scrollbarsCanBeActive):
22830        * rendering/RenderLayer.h:
22831        (RenderLayer):
22832        * rendering/RenderListBox.cpp:
22833        (WebCore::RenderListBox::scrollbarsCanBeActive):
22834        * rendering/RenderListBox.h:
22835
22836        This is the one caller of ScrollableArea:: scrollbarsCanBeActive() 
22837        that needs to distinguish between the scrollbar-suppressing scenario 
22838        and the in-the-page-cache scenario.
22839        * page/FocusController.cpp:
22840        (WebCore::FocusController::setContainingWindowIsVisible):
22841
228422012-09-10  James Robinson  <jamesr@chromium.org>
22843
22844        Unreviewed, rolling out r127837.
22845        http://trac.webkit.org/changeset/127837
22846        https://bugs.webkit.org/show_bug.cgi?id=93898
22847
22848        Broke ScrollingCoordinator on chromium
22849
22850        * WebCore.xcodeproj/project.pbxproj:
22851        * page/scrolling/ScrollingCoordinator.cpp:
22852        (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
22853        (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
22854        (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
22855        (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
22856        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
22857        (WebCore::ScrollingCoordinator::setForceMainThreadScrollLayerPositionUpdates):
22858        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
22859        * page/scrolling/ScrollingCoordinator.h:
22860        (ScrollingCoordinator):
22861        * page/scrolling/ScrollingCoordinatorNone.cpp:
22862        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
22863        * page/scrolling/ScrollingTree.cpp:
22864        (WebCore::ScrollingTree::scrollingPeformanceLoggingEnabled):
22865        * page/scrolling/ScrollingTree.h:
22866        * page/scrolling/ScrollingTreeNode.cpp:
22867        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
22868        (WebCore::ScrollingTreeNode::update):
22869        * page/scrolling/ScrollingTreeNode.h:
22870        (WebCore::ScrollingTreeNode::shouldUpdateScrollLayerPositionOnMainThread):
22871        (ScrollingTreeNode):
22872        * page/scrolling/ScrollingTreeState.cpp:
22873        (WebCore::ScrollingTreeState::ScrollingTreeState):
22874        (WebCore::ScrollingTreeState::setShouldUpdateScrollLayerPositionOnMainThread):
22875        * page/scrolling/ScrollingTreeState.h:
22876        (WebCore::ScrollingTreeState::shouldUpdateScrollLayerPositionOnMainThread):
22877        (ScrollingTreeState):
22878        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
22879        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
22880        * page/scrolling/mac/ScrollingTreeMac.mm:
22881        (WebCore::ScrollingTree::updateDebugRootLayer):
22882        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
22883        (WebCore::ScrollingTreeNodeMac::update):
22884        (WebCore::ScrollingTreeNodeMac::scrollPosition):
22885        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
22886        (WebCore::ScrollingTreeNodeMac::setScrollPositionWithoutContentEdgeConstraints):
22887        (WebCore::ScrollingTreeNodeMac::setScrollLayerPosition):
22888
228892012-09-10  Philip Rogers  <pdr@google.com>
22890
22891        Remove unnecessary codepaths in SMILTimeContainer::updateAnimations
22892        https://bugs.webkit.org/show_bug.cgi?id=96224
22893
22894        Reviewed by Nikolas Zimmermann.
22895
22896        This change removes two sources of unnecessary code in
22897        SMILTimeContainer::updateAnimations:
22898            1) After r117711 we now accumulate the result of multiple
22899               animations into the first _contributing_ animation
22900               element. As a result it is no longer necessary to
22901               track both which elements are contributing AND which elements
22902               we are storing results into. Both cases are now handled
22903               together with resultsElements.
22904
22905            2) r32044 added a second sort of the animation elements
22906               in order to process animateTransform last. This change
22907               was added 4 years ago, before we correctly handled <use>
22908               and the instance tree, and I think the extra sort is no
22909               longer necessary. A test has been added to ensure this
22910               is the case.
22911
22912        This change also does a minor cleanup of resultsElements. Previously,
22913        we added animation elements to resultsElements and then removed them
22914        if the animation element did not contribute. After this change, we
22915        only add to resultsElements (no more add-then-remove).
22916
22917        Test: svg/animations/use-animate-transform-and-position.html
22918
22919        * svg/animation/SMILTimeContainer.cpp:
22920        (WebCore::SMILTimeContainer::sortByPriority):
22921        (WebCore::SMILTimeContainer::updateAnimations):
22922
229232012-09-10  Ojan Vafai  <ojan@chromium.org>
22924
22925        Rename box-sizing applying methods to be more clear about just applying box-sizing.
22926        https://bugs.webkit.org/show_bug.cgi?id=96319
22927
22928        Reviewed by Tony Chang.
22929
22930        This is strictly a rename. No logic or web-exposed changes.
22931
22932        * rendering/AutoTableLayout.cpp:
22933        (WebCore::AutoTableLayout::recalcColumn):
22934        * rendering/FixedTableLayout.cpp:
22935        (WebCore::FixedTableLayout::calcWidthArray):
22936        * rendering/RenderBlock.cpp:
22937        (WebCore::RenderBlock::computePreferredLogicalWidths):
22938        * rendering/RenderBox.cpp:
22939        (WebCore::RenderBox::adjustBorderBoxLogicalWidthForBoxSizing):
22940        (WebCore::RenderBox::adjustBorderBoxLogicalHeightForBoxSizing):
22941        (WebCore::RenderBox::adjustContentBoxLogicalWidthForBoxSizing):
22942        (WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
22943        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
22944        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
22945        (WebCore::RenderBox::computeLogicalHeightUsing):
22946        (WebCore::RenderBox::computeLogicalClientHeight):
22947        (WebCore::RenderBox::computePercentageLogicalHeight):
22948        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
22949        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
22950        (WebCore::RenderBox::availableLogicalHeightUsing):
22951        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
22952        (WebCore::RenderBox::computePositionedLogicalHeightUsing):
22953        * rendering/RenderBox.h:
22954        (RenderBox):
22955        * rendering/RenderDeprecatedFlexibleBox.cpp:
22956        (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
22957        * rendering/RenderFileUploadControl.cpp:
22958        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
22959        * rendering/RenderFlexibleBox.cpp:
22960        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
22961        (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
22962        * rendering/RenderListBox.cpp:
22963        (WebCore::RenderListBox::computePreferredLogicalWidths):
22964        * rendering/RenderMenuList.cpp:
22965        (WebCore::RenderMenuList::computePreferredLogicalWidths):
22966        * rendering/RenderSlider.cpp:
22967        (WebCore::RenderSlider::computePreferredLogicalWidths):
22968        * rendering/RenderTextControl.cpp:
22969        (WebCore::RenderTextControl::computePreferredLogicalWidths):
22970
229712012-09-10  Jer Noble  <jer.noble@apple.com>
22972
22973        Unreviewed; rolling out r128081.
22974        http://trac.webkit.org/changeset/128081
22975        https://bugs.webkit.org/show_bug.cgi?id=96134
22976
22977        New test http/tests/media/video-donottrack.html fails to run on Apple test bots.
22978
22979        * html/HTMLMediaElement.cpp:
22980        * html/HTMLMediaElement.h:
22981        (HTMLMediaElement):
22982        * loader/FrameLoaderClient.h:
22983        * platform/graphics/MediaPlayer.h:
22984        (MediaPlayer):
22985        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
22986        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
22987
229882012-09-10  Dimitri Glazkov  <dglazkov@chromium.org>
22989
22990        Reduce the number of treeScope queries when matching rules.
22991        https://bugs.webkit.org/show_bug.cgi?id=96315
22992
22993        Reviewed by Eric Seidel.
22994
22995        In the worst case, treeScope() requires a HashMap lookup, which could be slow. Since the value is always the same for the element,
22996        we can just ask for it once.
22997
22998        No new tests, no change in behavior.
22999
23000        * css/StyleResolver.cpp:
23001        (WebCore::StyleResolver::collectMatchingRulesForList): Moved the call to treeScope out of the loop.
23002
230032012-09-10  Adam Barth  <abarth@chromium.org>
23004
23005        [V8] V8PerIsolateData::m_toStringTemplate leaks memory
23006        https://bugs.webkit.org/show_bug.cgi?id=96322
23007
23008        Reviewed by Kentaro Hara.
23009
23010        We never call Dispose to balance the call to v8::Persistent::New. This
23011        patch uses ScopedPersistent to call Dispose automatically.
23012
23013        * bindings/v8/V8PerIsolateData.cpp:
23014        (WebCore::V8PerIsolateData::toStringTemplate):
23015            - I've changed this function to return a new local handle in case
23016              anyone is trying to hold on to these handles during shutdown.
23017        * bindings/v8/V8PerIsolateData.h:
23018        (V8PerIsolateData):
23019
230202012-09-10  Adam Barth  <abarth@chromium.org>
23021
23022        [V8] V8LazyEventListener::prepareListenerObject uses inefficient string operations
23023        https://bugs.webkit.org/show_bug.cgi?id=96324
23024
23025        Reviewed by Kentaro Hara.
23026
23027        Previously, this code called String::append several times, which
23028        mallocs a new string buffer each time. This patch switches this code to
23029        use operator+, which uses StringAppend to optimize these operations
23030        down to a single malloc.
23031
23032        * bindings/v8/V8LazyEventListener.cpp:
23033        (WebCore::V8LazyEventListener::prepareListenerObject):
23034
230352012-09-10  Adam Barth  <abarth@chromium.org>
23036
23037        [V8] V8AuxiliaryContext used by IDB leaks memory
23038        https://bugs.webkit.org/show_bug.cgi?id=96317
23039
23040        Reviewed by Tony Chang.
23041
23042        Before this patch, we leaked m_auxiliaryContext on V8PerIsolateData
23043        because no one ever called Dispose to balance the call to
23044        V8::Context::New. This patch uses ScopedPersistent to call Dispose
23045        automatically.
23046
23047        Also, I've deleted the V8AuxiliaryContext because it just reinvents
23048        V8::Context::Scope.
23049
23050        * bindings/v8/IDBBindingUtilities.cpp:
23051        (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
23052        (WebCore::injectIDBKeyIntoSerializedValue):
23053        * bindings/v8/V8PerIsolateData.cpp:
23054        (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
23055        (WebCore):
23056        * bindings/v8/V8PerIsolateData.h:
23057        (V8PerIsolateData):
23058        * bindings/v8/V8Utilities.cpp:
23059        * bindings/v8/V8Utilities.h:
23060
230612012-09-10  Adam Barth  <abarth@chromium.org>
23062
23063        [V8] currentDocument doesn't need to handle the case where there is no v8::Context
23064        https://bugs.webkit.org/show_bug.cgi?id=96312
23065
23066        Reviewed by Eric Seidel.
23067
23068        This function is always called while V8 is on the stack. It doesn't
23069        need to handle this impossible error condition.
23070
23071        * bindings/v8/BindingState.cpp:
23072        (WebCore::currentDocument):
23073
230742012-09-10  Adam Barth  <abarth@chromium.org>
23075
23076        [V8] Inline firstFrame and currentFrame into their unique callers
23077        https://bugs.webkit.org/show_bug.cgi?id=96309
23078
23079        Reviewed by Eric Seidel.
23080
23081        These functions have only one caller. We'd prefer not to have more
23082        callers (because there's usually no reason to indirect through the
23083        Frame), so we should inline them into their one caller (which is the
23084        Chromium WebKit API).
23085
23086        * bindings/js/BindingState.h:
23087        (WebCore):
23088        * bindings/v8/BindingState.cpp:
23089        * bindings/v8/BindingState.h:
23090        (WebCore):
23091        * bindings/v8/ScriptController.cpp:
23092        * bindings/v8/ScriptController.h:
23093        (ScriptController):
23094
230952012-09-10  Justin Novosad  <junov@chromium.org>
23096
23097        Implement canvas v5 line dash feature
23098        https://bugs.webkit.org/show_bug.cgi?id=82560
23099
23100        Reviewed by Darin Adler.
23101
23102        Adding new canvas 2d context API methods getLineDash and setLineDash,
23103        and new attribute lineDashOffset. Implementation mostly based on
23104        the existing webkitLineDash feature, with changes that reflect the
23105        canvas v5 specification. This change is visible to all JS ports,
23106        unlike webkitLineDash which is not exposed to V8. The new lineDash 
23107        and the legacy webkitLineDash features access the same rendering
23108        context state. The JavasScriptCore binding layer was augmented to
23109        support the sequence<float> IDL type.
23110
23111        Tests: fast/canvas/canvas-lineDash-invalid.html
23112               fast/canvas/canvas-lineDash.html
23113
23114        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
23115        (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
23116        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
23117        * bindings/js/JSDOMBinding.h:
23118        Added template specialization on float to NativeValueTraits in order to
23119        add support for the sequence<double> IDL type to JavaScriptCore.
23120        * html/canvas/CanvasRenderingContext2D.cpp:
23121        (WebCore::CanvasRenderingContext2D::getLineDash):
23122        New 2D canvas API method, returns the current line dash array
23123        (WebCore::lineDashSequenceIsValid):
23124        Returns true if the line dash array contains only non-negative finite
23125        numbers.
23126        (WebCore::CanvasRenderingContext2D::setLineDash):
23127        New 2D canvas API method, set the line dash array.
23128        (WebCore::CanvasRenderingContext2D::setWebkitLineDash):
23129        Legacy implementation, does not double the new line dash array if
23130        it contains an odd number of elements.  Just accepts it as is.
23131        (WebCore::CanvasRenderingContext2D::lineDashOffset):
23132        Attribute getter
23133        (WebCore::CanvasRenderingContext2D::setLineDashOffset):
23134        Attribute setter
23135        (WebCore::CanvasRenderingContext2D::webkitLineDashOffset):
23136        Alias for lineDashOffset
23137        (WebCore::CanvasRenderingContext2D::setWebkitLineDashOffset):
23138        Alias for setLineDashOffset
23139        (WebCore::CanvasRenderingContext2D::applyLineDash):
23140        Sends the line dash state to the GraphicsContext
23141        * html/canvas/CanvasRenderingContext2D.h:
23142        (CanvasRenderingContext2D):
23143        (State):
23144        * html/canvas/CanvasRenderingContext2D.idl:
23145        * platform/graphics/DashArray.h:
23146
231472012-09-10  Sheriff Bot  <webkit.review.bot@gmail.com>
23148
23149        Unreviewed, rolling out r128109.
23150        http://trac.webkit.org/changeset/128109
23151        https://bugs.webkit.org/show_bug.cgi?id=96326
23152
23153        broke win and lion builds (Requested by kling on #webkit).
23154
23155        * WebCore.exp.in:
23156        * dom/Element.cpp:
23157        (WebCore::Element::createMutableAttributeData):
23158        * dom/ElementAttributeData.cpp:
23159        (WebCore::immutableElementAttributeDataSize):
23160        (WebCore::ElementAttributeData::createImmutable):
23161        (WebCore::ElementAttributeData::ElementAttributeData):
23162        (WebCore::ElementAttributeData::~ElementAttributeData):
23163        (WebCore::ElementAttributeData::addAttribute):
23164        (WebCore::ElementAttributeData::removeAttribute):
23165        (WebCore::ElementAttributeData::reportMemoryUsage):
23166        (WebCore::ElementAttributeData::cloneDataFrom):
23167        (WebCore::ElementAttributeData::clearAttributes):
23168        * dom/ElementAttributeData.h:
23169        (WebCore):
23170        (WebCore::ElementAttributeData::create):
23171        (ElementAttributeData):
23172        (WebCore::ElementAttributeData::isMutable):
23173        (WebCore::ElementAttributeData::makeMutable):
23174        (WebCore::ElementAttributeData::length):
23175        (WebCore::ElementAttributeData::attributeItem):
23176
231772012-09-10  Chris Fleizach  <cfleizach@apple.com>
23178
23179        AccessibilityNodeObject* is not in Mac xcode file
23180        https://bugs.webkit.org/show_bug.cgi?id=96327
23181
23182        Reviewed by Sam Weinig.
23183
23184        * WebCore.xcodeproj/project.pbxproj:
23185
231862012-09-07  Jon Lee  <jonlee@apple.com>
23187
23188        Update notifications to latest spec
23189        https://bugs.webkit.org/show_bug.cgi?id=91726
23190        <rdar://problem/11910451>
23191
23192        Reviewed by Alexey Proskuryakov.
23193
23194        Among the changes:
23195
23196        Addition of lang attribute
23197        http://lists.w3.org/Archives/Public/public-web-notification/2012Jul/0025.html
23198
23199        Specification of icon URL is icon instead of iconURL
23200        http://lists.w3.org/Archives/Public/public-web-notification/2012Jul/0012.html
23201
23202        Tests are not possible since at best they only verify exposure of the attributes, which isn't
23203        terribly useful, and use of the attributes depend on the platform.
23204
23205        * Modules/notifications/Notification.cpp:
23206        (WebCore::Notification::create): Add support for reading lang, dir, and icon from option dictionary.
23207        * Modules/notifications/Notification.h:
23208        (Notification): Make url() and setURL(), which are used for HTML notifications, only available with
23209        ENABLE(LEGACY_NOTIFICATIONS).
23210        (WebCore::Notification::setIconURL): Added so that it can be set from the option dictionary.
23211        (WebCore::Notification::lang):
23212        (WebCore::Notification::setLang):
23213        * Modules/notifications/Notification.idl: According to specification, dir is not exposed.
23214
232152012-08-31  Jon Lee  <jonlee@apple.com>
23216
23217        The options dictionary in Notification constructor should not accept event listeners
23218        https://bugs.webkit.org/show_bug.cgi?id=95538
23219        <rdar://problem/12213901>
23220
23221        Reviewed by Alexey Proskuryakov.
23222
23223        The latest spec only allows setting the event listeners after the notification has been created.
23224
23225        Test: http/tests/notifications/events-in-dictionary.html
23226
23227        * Modules/notifications/Notification.cpp:
23228        (WebCore::Notification::create): Do not look for the event handlers in the options dictionary.
23229
232302012-09-10  Tony Chang  <tony@chromium.org>
23231
23232        Rename computeLogicalWidth to updateLogicalWidth
23233        https://bugs.webkit.org/show_bug.cgi?id=96288
23234
23235        Reviewed by Ojan Vafai.
23236
23237        Also rename recomputeLogicalWidth to updateLogicalWidthAndColumnWidth.
23238        Also rename RenderTableCell::updateLogicalWidth to RenderTableCell::setCellLogicalWidth.
23239
23240        No new tests, this is just a refactor.
23241
23242        * rendering/RenderBlock.cpp:
23243        (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth):
23244        (WebCore::RenderBlock::layoutBlock):
23245        (WebCore::RenderBlock::layoutPositionedObjects):
23246        (WebCore::RenderBlock::insertFloatingObject):
23247        (WebCore::RenderBlock::getClearDelta):
23248        * rendering/RenderBlock.h:
23249        * rendering/RenderBox.cpp:
23250        (WebCore::RenderBox::updateLogicalWidth):
23251        * rendering/RenderBox.h:
23252        (RenderBox):
23253        (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
23254        * rendering/RenderDeprecatedFlexibleBox.cpp:
23255        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
23256        * rendering/RenderEmbeddedObject.cpp:
23257        (WebCore::RenderEmbeddedObject::layout):
23258        * rendering/RenderFlexibleBox.cpp:
23259        (WebCore::RenderFlexibleBox::layoutBlock):
23260        * rendering/RenderFlowThread.cpp:
23261        (WebCore::RenderFlowThread::layout):
23262        (WebCore::RenderFlowThread::updateLogicalWidth):
23263        * rendering/RenderFlowThread.h:
23264        * rendering/RenderGrid.cpp:
23265        (WebCore::RenderGrid::layoutBlock):
23266        * rendering/RenderHTMLCanvas.cpp:
23267        (WebCore::RenderHTMLCanvas::canvasSizeChanged):
23268        * rendering/RenderIFrame.cpp:
23269        (WebCore::RenderIFrame::updateLogicalWidth):
23270        (WebCore::RenderIFrame::layoutSeamlessly):
23271        (WebCore::RenderIFrame::layout):
23272        * rendering/RenderIFrame.h:
23273        (RenderIFrame):
23274        * rendering/RenderImage.cpp:
23275        (WebCore::RenderImage::imageDimensionsChanged):
23276        * rendering/RenderMeter.cpp:
23277        (WebCore::RenderMeter::updateLogicalWidth):
23278        * rendering/RenderMeter.h:
23279        (RenderMeter):
23280        * rendering/RenderMultiColumnBlock.cpp:
23281        (WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
23282        * rendering/RenderMultiColumnBlock.h:
23283        (RenderMultiColumnBlock):
23284        * rendering/RenderMultiColumnSet.cpp:
23285        (WebCore::RenderMultiColumnSet::updateLogicalWidth):
23286        * rendering/RenderMultiColumnSet.h:
23287        (RenderMultiColumnSet):
23288        * rendering/RenderReplaced.cpp:
23289        (WebCore::RenderReplaced::layout):
23290        * rendering/RenderTable.cpp:
23291        (WebCore::RenderTable::updateLogicalWidth):
23292        (WebCore::RenderTable::layout):
23293        * rendering/RenderTable.h:
23294        (RenderTable):
23295        * rendering/RenderTableCell.cpp:
23296        (WebCore::RenderTableCell::updateLogicalWidth):
23297        (WebCore::RenderTableCell::setCellLogicalWidth):
23298        * rendering/RenderTableCell.h:
23299        (RenderTableCell):
23300        * rendering/RenderTableSection.cpp:
23301        (WebCore::RenderTableSection::setCellLogicalWidths):
23302        * rendering/RenderView.cpp:
23303        (WebCore::RenderView::updateLogicalWidth):
23304        * rendering/RenderView.h:
23305        * rendering/svg/RenderSVGForeignObject.cpp:
23306        (WebCore::RenderSVGForeignObject::updateLogicalWidth):
23307        * rendering/svg/RenderSVGForeignObject.h:
23308        (RenderSVGForeignObject):
23309        * rendering/svg/RenderSVGRoot.cpp:
23310        (WebCore::RenderSVGRoot::layout):
23311
233122012-09-10  Andreas Kling  <kling@webkit.org>
23313
23314        ElementAttributeData: Use subclasses to manage varying object layouts.
23315        <http://webkit.org/b/94465>
23316
23317        Reviewed by Antti Koivisto.
23318
23319        Add two ElementAttributeData subclasses:
23320
23321            - MutableElementAttributeData
23322            - ImmutableElementAttributeData
23323
23324        The ElementAttributeData::m_isMutable bit determines which subclass to cast to when accessing
23325        the attribute storage. Added mutableAttributeVector() and immutableAttributeArray() helpers
23326        to ElementAttributeData (with appropriate assertions.)
23327
23328        This patch removes one step of indirection in the mutable case, since the Vector<Attribute> is no
23329        longer heap-allocated, but part of MutableElementAttributeData.
23330
23331        Added a WTF::deleteOwnedPtr(ElementAttributeData*) specialization so that the appropriate subclass
23332        destructor is called for these objects.
23333
23334        * WebCore.exp.in:
23335        * dom/Element.cpp:
23336        (WebCore::Element::createMutableAttributeData):
23337        * dom/ElementAttributeData.cpp:
23338        (WebCore::ElementAttributeData::createImmutable):
23339        (WebCore::ElementAttributeData::create):
23340        (WebCore::ElementAttributeData::ElementAttributeData):
23341        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23342        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
23343        (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
23344        (WebCore::ElementAttributeData::makeMutableCopy):
23345        (WebCore::ElementAttributeData::addAttribute):
23346        (WebCore::ElementAttributeData::removeAttribute):
23347        (WebCore::ElementAttributeData::reportMemoryUsage):
23348        (WebCore::ElementAttributeData::cloneDataFrom):
23349        (WebCore::ElementAttributeData::clearAttributes):
23350        * dom/ElementAttributeData.h:
23351        (ElementAttributeData):
23352        (WebCore::ElementAttributeData::isMutable):
23353        (ImmutableElementAttributeData):
23354        (MutableElementAttributeData):
23355        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23356        (WebCore::ElementAttributeData::immutableAttributeArray):
23357        (WebCore::ElementAttributeData::mutableAttributeVector):
23358        (WebCore::ElementAttributeData::length):
23359        (WebCore::ElementAttributeData::attributeItem):
23360
233612012-09-10  Tony Chang  <tony@chromium.org>
23362
23363        Remove stray spaces found after :: in case statements
23364        https://bugs.webkit.org/show_bug.cgi?id=96314
23365
23366        Reviewed by Ojan Vafai.
23367
23368        New contributors keep copy/pasting this style error and it makes me sad.
23369        Also remove the extra spaces in MediaQueryEvaluator.cpp.
23370
23371        No new tests, this is just a style refactor.
23372
23373        * css/CSSPrimitiveValue.cpp:
23374        (WebCore::isValidCSSUnitTypeForDoubleConversion):
23375        (WebCore::unitCategory):
23376        * css/MediaQueryEvaluator.cpp:
23377        (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
23378
233792012-09-10  Adam Barth  <abarth@webkit.org>
23380
23381        [V8] setNamedHiddenWindowReference doesn't need to be a special case
23382        https://bugs.webkit.org/show_bug.cgi?id=96198
23383
23384        Reviewed by Nate Chapin.
23385
23386        Prior to this patch, the DOMWindow cached its properties on the outter
23387        global object rather than on the Holder of the properties. (We cache
23388        properties to prevent their DOM wrappers from being garbage collected
23389        too early.) There doesn't seem to be any reason why DOMWindow need to
23390        be special-cased in this regard. We can just cache the properities on
23391        their Holders, as usual.
23392
23393        * bindings/scripts/CodeGeneratorV8.pm:
23394        (GenerateNormalAttrGetter):
23395        * bindings/v8/V8DOMWrapper.cpp:
23396        * bindings/v8/V8DOMWrapper.h:
23397        (V8DOMWrapper):
23398        * bindings/v8/custom/V8LocationCustom.cpp:
23399        * page/Location.idl:
23400            - Previously, Location had a custom toV8 function so that
23401              document.location would cache its wrapper in the same place as
23402              window.location. However, that's no longer necessary as the
23403              DOMWindow now holds its Document in a hidden property, which
23404              means the DOMWindow keeps the cached location property on
23405              Document alive anyway.
23406
234072012-09-10  Anders Carlsson  <andersca@apple.com>
23408
23409        Silence a warning when running update-webkit-localizable-strings
23410        https://bugs.webkit.org/show_bug.cgi?id=96307
23411
23412        Reviewed by John Sullivan.
23413
23414        Since both the blockedPluginByContentSecurityPolicyText and insecurePluginVersionText strings use exact the same wording,
23415        use WEB_UI_STRING_KEY to indicate that they are different.
23416
23417        * English.lproj/Localizable.strings:
23418        Update the localizable strings file.
23419
23420        * platform/LocalizedStrings.cpp:
23421        (WebCore::blockedPluginByContentSecurityPolicyText):
23422        (WebCore::insecurePluginVersionText):
23423
234242012-09-10  Adam Barth  <abarth@chromium.org>
23425
23426        [V8] V8HTMLDocument::write and friends should not indirect through Frame
23427        https://bugs.webkit.org/show_bug.cgi?id=96289
23428
23429        Reviewed by Eric Seidel.
23430
23431        There is no reason why document.write and friends need to indirect
23432        through the Frame to find the active document. This patch makes these
23433        functions work the same as the JSC versions.
23434
23435        * bindings/v8/BindingState.cpp:
23436        * bindings/v8/BindingState.h:
23437            - This patch removes the last callers of activeFrame, so we can
23438              remove the function entirely.
23439        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
23440        (WebCore::V8HTMLDocument::writeCallback):
23441        (WebCore::V8HTMLDocument::writelnCallback):
23442        (WebCore::V8HTMLDocument::openCallback):
23443
234442012-09-10  Adam Barth  <abarth@chromium.org>
23445
23446        [V8] Constructors try to handle errors that cannot occur
23447        https://bugs.webkit.org/show_bug.cgi?id=96304
23448
23449        Reviewed by Kentaro Hara.
23450
23451        There's no reason for constructors to indirect through the Frame. Now
23452        that we can reliably get the Document from the v8::Context, we can just
23453        grab it without worrying about handling error conditions related to not
23454        being able to find the Document.
23455
23456        * bindings/scripts/CodeGeneratorV8.pm:
23457        (GenerateNamedConstructorCallback):
23458        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
23459        (WebCore::V8TestNamedConstructorConstructorCallback):
23460        * bindings/v8/custom/V8AudioContextCustom.cpp:
23461        (WebCore::V8AudioContext::constructorCallback):
23462        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
23463        (WebCore::v8HTMLImageElementConstructorCallback):
23464
234652012-09-10  Andrey Kosyakov  <caseq@chromium.org>
23466
23467        Web Inspector: highlight of paint rectangles is broken
23468        https://bugs.webkit.org/show_bug.cgi?id=96276
23469
23470        Reviewed by Vsevolod Vlasov.
23471
23472        * inspector/InspectorOverlay.cpp:
23473        (WebCore::InspectorOverlay::drawRectHighlight): Fix JS method name to match the one in InspectorOverlayPage.html
23474
234752012-09-10  Catalin Badea  <badea@adobe.com>
23476
23477        webkit build for 64-bit Mac chromium
23478        https://bugs.webkit.org/show_bug.cgi?id=95977
23479
23480        Reviewed by Eric Seidel.
23481
23482        Use the correct definitions for NS types in order to fix build issues for 64-bit chromium on mac.
23483
23484        * platform/chromium/PlatformSupport.h:
23485        Remove a deprecated Carbon typedef.
23486        * platform/graphics/FloatPoint.h:
23487        (FloatPoint):
23488        * platform/graphics/FloatRect.h:
23489        (FloatRect):
23490        * platform/graphics/FloatSize.h:
23491        (FloatSize):
23492        * platform/graphics/IntRect.h:
23493        (IntRect):
23494
234952012-09-10  Hans Muller  <hmuller@adobe.com>
23496
23497        [CSS Exlusions] add support for the basic shapes
23498        https://bugs.webkit.org/show_bug.cgi?id=95490
23499
23500        Reviewed by David Hyatt.
23501
23502        Initial commit of a subset of the ExclusionShape classes.
23503
23504        This set of classes enables the exclusions layout code to determine how to break up a line into segments
23505        that will fit within or around a shape, given the Y coordinates of the line's top edge and bottom edges.
23506        The ExclusionShape class represents BasicShapes whose coordinates have been resolved to actual values. It
23507        provides a pair of methods, getInsideIntervals() and getOutsideIntervals(), that return the line segments'
23508        start and end X coordinates, and a method that computes the shape's bounding box. The line segments'
23509        coordinates are represented by a Vector of ExclusionIntervals. ExclusionInterval is just a pair
23510        of X coordinates.
23511
23512        The other classes, ExclusionRectangle (and TBD ExclusionPolygon et al), are internal to the
23513        ExclusionShape implementation.
23514
23515        This is the initial version of the ExclusionShapes code and it's only being used to the limited extent WebKit
23516        currently supports shape-inside exclusions. It will be extended to support computing a minimal
23517        line segment's "first layout location" and other improvements, in tandem with the exclusions layout code.
23518
23519        No new tests have been added since this code just replaces a provisional implementation stub.
23520
23521        More information about the algorithms used by the ExclusionShapes classes can be found here: http://hansmuller-webkit.blogspot.com.
23522
23523        * CMakeLists.txt:
23524        * GNUmakefile.list.am:
23525        * Target.pri:
23526        * WebCore.gypi:
23527        * WebCore.vcproj/WebCore.vcproj:
23528        * WebCore.xcodeproj/project.pbxproj:
23529        * rendering/ExclusionInterval.cpp: Added.
23530        (WebCore):
23531        (WebCore::IntervalX1Comparator::operator()):
23532        Compare x1 ExclusionInterval fields.
23533        (WebCore::ExclusionInterval::intersect):
23534        Compute the intersection of this interval with another interval. Unlike merge/subtract,
23535        the result is always a single interval.
23536        (WebCore::sortExclusionIntervals):
23537        Sort a vector of intervals by their x1 (start) field.
23538        (WebCore::mergeExclusionIntervals):
23539        Union of two vectors of intervals.
23540        (WebCore::intersectExclusionIntervals):
23541        Intersecion of two vectors of intervals.
23542        (WebCore::subtractExclusionIntervals):
23543        Difference of two vectors of intervals.
23544
23545        * rendering/ExclusionInterval.h: Added.
23546        Represents the actual start and end coordinates of a horizontal line segment.
23547        (WebCore):
23548        (ExclusionInterval):
23549        (WebCore::ExclusionInterval::ExclusionInterval):
23550
23551        * rendering/ExclusionRectangle.cpp: Added.
23552        (WebCore):
23553        (WebCore::ellipseXIntercept):
23554        (WebCore::ExclusionRectangle::getOutsideIntervals):
23555        (WebCore::ExclusionRectangle::getInsideIntervals):
23556
23557        * rendering/ExclusionRectangle.h: Added.
23558        A subclass of ExclusionShape used to represent rounded rectangles, circles, and ellipses.
23559        (WebCore):
23560        (ExclusionRectangle)
23561        (WebCore::ExclusionRectangle::ExclusionRectangle):
23562        (WebCore::ExclusionRectangle::shapeBoundingBox):
23563
23564        * rendering/ExclusionShape.cpp: Added.
23565        (WebCore):
23566        (WebCore::createExclusionRectangle):
23567        (WebCore::createExclusionCircle):
23568        (WebCore::createExclusionEllipse):
23569        (WebCore::Exclusionhape::createExclusionShape):
23570        Creates an ExclusionShape given a BasicShape and the width/height of a border box.  Currently rounded
23571        rectangles, circles, and ellipses are supported.  Support for polygons will be included in the
23572        next patch.
23573
23574        * rendering/ExclusionShape.h: Added.
23575        The rest of the exclusions implementation will only depend on the definitions included by this file: ExclusionShape,
23576        and ExclusionInterval. ExclusionShape subclasses define shape-specific implementations of the methods that compute the
23577        horizontal intervals that fit within or around a specific shape, a shape's bounding box, and - in future
23578        revisions - other operations required by the exclusions implementation, like computing the first possible
23579        layout location within a shape. ExclusionShapes are created for BasicShape objects as needed, using the
23580        createExclusionShape() method.
23581        (WebCore):
23582        (ExclusionShape):
23583        (WebCore::ExclusionShape::~ExclusionShape):
23584
23585        * rendering/WrapShapeInfo.cpp:
23586        (WebCore::WrapShapeInfo::computeShapeSize):
23587        Create an ExclusionShape for the RenderBlock's BasicShape.
23588        (WebCore::WrapShapeInfo::computeSegmentsForLine):
23589        Use ExclusionShape::getInsideIntervals() to compute the shape-inside intervals within which a line will fit.
23590
23591        * rendering/WrapShapeInfo.h:
23592        (WebCore::WrapShapeInfo::shapeTop):
23593        Removed - no longer used.
23594        (WrapShapeInfo):
23595        (WebCore::WrapShapeInfo::lineState):
23596        Use the ExclusionShape's bounding box to compute lineState.
23597
235982012-09-07  Jer Noble  <jer.noble@apple.com>
23599
23600        <audio> and <video> should send Do Not Track when appropriate
23601        https://bugs.webkit.org/show_bug.cgi?id=96134
23602
23603        Reviewed by Eric Carlson.
23604
23605        Add a FrameLoaderClient function to determine whether the DNT header should be sent,
23606        and plumb that new function down into the MediaPlayerPrivateAVFoundationObjC class.
23607
23608        Test: http/tests/media/video-donottrack.html
23609
23610        * html/HTMLMediaElement.cpp:
23611        (WebCore::HTMLMediaElement::mediaPlayerShouldSendDoNotTrackHTTPHeader):
23612            Pass the question on through to the FrameLoaderClient.
23613        * html/HTMLMediaElement.h:
23614        * loader/FrameLoaderClient.h:
23615        (WebCore::FrameLoaderClient::shouldSendDoNotTrackHTTPHeader):
23616            Call through to the implementation in WebKit or WebKit2.
23617        * platform/graphics/MediaPlayer.h:
23618        (WebCore::MediaPlayerClient::mediaPlayerShouldSendDoNotTrackHTTPHeader):
23619            Pass the question on to the HTMLMediaElement.
23620        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
23621        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
23622            If we should send the DNT header, add it to the header options array
23623            when creating the AVAsset.
23624
236252012-08-31  Jon Lee  <jonlee@apple.com>
23626
23627        The options dictionary in Notification constructor should not accept event listeners
23628        https://bugs.webkit.org/show_bug.cgi?id=95538
23629        <rdar://problem/12213901>
23630
23631        Reviewed by Alexey Proskuryakov.
23632
23633        The latest spec only allows setting the event listeners after the notification has been created.
23634
23635        Test: http/tests/notifications/events-in-dictionary.html
23636
23637        * Modules/notifications/Notification.cpp:
23638        (WebCore::Notification::create): Do not look for the event handlers in the options dictionary.
23639
236402012-09-04  Robert Hogan  <robert@webkit.org>
23641
23642        CSS 2.1 failure: content-counter-010.htm fails
23643        https://bugs.webkit.org/show_bug.cgi?id=81447
23644
23645        Reviewed by Alexey Proskuryakov.
23646
23647        Test: fast/css/content-counter-010.htm
23648
23649        Per http://lists.w3.org/Archives/Public/public-css-testsuite/2010Nov/0064.html, the correct rendering of 
23650        7000 to 7999 in Armenian changed in Nov 2010. Update implementation to match the revised spec.
23651       
23652        * rendering/RenderListMarker.cpp:
23653        (WebCore::toArmenianUnder10000):
23654
236552012-09-10  Thiago Marcos P. Santos  <thiago.santos@intel.com>
23656
23657        Font value should be parsed as a individual property
23658        https://bugs.webkit.org/show_bug.cgi?id=96271
23659
23660        Reviewed by Eric Seidel.
23661
23662        Parsing the font value as an individual CSS property instead of a style
23663        body should make it significantly more effective and will not
23664        validate something like ctx.font = "25px serif; background: green".
23665
23666        Updated canvas/philip/tests/2d.text.font.parse.invalid.html to cover
23667        this use case.
23668
23669        * html/canvas/CanvasRenderingContext2D.cpp:
23670        (WebCore::CanvasRenderingContext2D::setFont):
23671
236722012-09-10  Silvia Pfeiffer  <silviapf@chromium.org>
23673
23674        [Chromium] Handle smaller sizes of media elements in media controls.
23675        https://bugs.webkit.org/show_bug.cgi?id=89344
23676
23677        Reviewed by Eric Carlson.
23678
23679        The redesign of the Chrome video controls calls for successive removal of individual
23680        elements in the Chrome video and audio controls as the element becomes smaller in width.
23681        It also requires decreasing padding on the enclosure element of videos.
23682
23683        This patch introduces a layout() function into the MediaControlRootElementChromium to
23684        react to any changes of the media controls width and appropriately hide/show the
23685        interactive elements and apply the correct padding on video elements.
23686
23687        Tests: platform/chromium/media/controls-audio-sizes.html
23688               platform/chromium/media/controls-video-sizes-padding.html
23689               platform/chromium/media/controls-video-sizes.html
23690
23691        * html/shadow/MediaControlRootElementChromium.cpp:
23692        (WebCore):
23693        (RenderMediaControlPanelEnclosureElement):
23694        Introduce a renderer for the MediaControlPanelEnclosureElement in which to deal with the layout changes.
23695        Following the pattern in MediaControlElements.cpp .
23696        (WebCore::RenderMediaControlPanelEnclosureElement::RenderMediaControlPanelEnclosureElement):
23697        Definition of the new RenderMediaControlPanelEnclosureElement class.
23698        (WebCore::RenderMediaControlPanelEnclosureElement::layout):
23699        Definition of the layout() function for the renderer. This does most of the actual work.
23700        (WebCore::MediaControlPanelEnclosureElement::createRenderer):
23701        Create the renderer for the MediaControlPanelEnclosureElement.
23702        (WebCore::MediaControlPanelEnclosureElement::updatePadding):
23703        Update padding as part of the MediaControlPanelEnclosureElement functions.
23704        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
23705        Add a class property to store whether the duration and current time display are hidden.
23706        (WebCore::MediaControlRootElementChromium::reset):
23707        Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
23708        (WebCore::MediaControlRootElementChromium::playbackStarted):
23709        Include the hiding/showing of the timeline and time display into the updateTimeDisplay() function
23710        to reduce code duplication.
23711        (WebCore::MediaControlRootElementChromium::playbackProgressed):
23712        Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
23713        (WebCore::MediaControlRootElementChromium::playbackStopped):
23714        Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
23715        (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
23716        Only show time display if not hidden. Add timeline update here to reduce code duplication/
23717        (WebCore::MediaControlRootElementChromium::hideVolumeSlider):
23718        New function to allow layout() function to hide the volume slider.
23719        (WebCore::MediaControlRootElementChromium::showTimeDisplay):
23720        New function to allow layout() function to show the time display.
23721        (WebCore::MediaControlRootElementChromium::hideTimeDisplay):
23722        New function to allow layout() function to hide the time display.
23723        (WebCore::MediaControlRootElementChromium::showMuteButton):
23724        New function to allow layout() function to show the mute button.
23725        (WebCore::MediaControlRootElementChromium::hideMuteButton):
23726        New function to allow layout() function to hide the mute button.
23727        (WebCore::MediaControlRootElementChromium::showFullscreenButton):
23728        New function to allow layout() function to show the fullscreen button.
23729        (WebCore::MediaControlRootElementChromium::hideFullscreenButton):
23730        New function to allow layout() function to hide the fullscreen button.
23731        (WebCore::MediaControlRootElementChromium::showTimeline):
23732        New function to allow layout() function to show the timeline.
23733        (WebCore::MediaControlRootElementChromium::hideTimeline):
23734        New function to allow layout() function to hide the timeline.
23735
23736        * html/shadow/MediaControlRootElementChromium.h:
23737        (MediaControlPanelEnclosureElement):
23738        Add a createRender() and a updatePadding() function to the MediaControlPanelEnclosureElement class.
23739        (MediaControlRootElementChromium):
23740        Add hide/show functions for volume slider, time display, mute button, fullscreen button and timeline.
23741        Add a class property to store whether the duration and current time display are hidden.
23742
237432012-09-10  Joanmarie Diggs  <jdiggs@igalia.com>
23744
23745        [GTK][a11y] editing/pasteboard/paste-blockquote-into-blockquote-4.html crashes
23746        https://bugs.webkit.org/show_bug.cgi?id=96199
23747
23748        Reviewed by Martin Robinson.
23749
23750        Added sanity check to correct erroneous assumption that there will
23751        always be a child object.
23752
23753        No new tests as the bug crashes two existing Layout Tests which should
23754        no longer crash as a result of this fix.
23755
23756        * accessibility/gtk/AccessibilityObjectAtk.cpp:
23757        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
23758
237592012-09-10  Mike West  <mkwst@chromium.org>
23760
23761        Clarify the cause of console warnings generated by "cross-origin" access to sandboxed iframes.
23762        https://bugs.webkit.org/show_bug.cgi?id=64079
23763
23764        Reviewed by Adam Barth.
23765
23766        The error message generated when accessing cross-origin content is a bit
23767        too generic at the moment, which is misleading when the "cross-origin"
23768        nature of an access attempt isn't visible in the URLs that the error
23769        displays. Sandboxed iframes, for example, are put into unique origins by
23770        default, meaning that all access in or out are subject to cross-origin
23771        restrictions, even if the resources would otherwise be same-origin.
23772
23773        This patch improces the error message to explicitly point to sandboxing
23774        as the core of cross-origin requests when relevant. It adds a single new
23775        test to check access from parents to children, and relies on existing
23776        tests for access in the other direction.
23777
23778        Test: http/tests/security/sandboxed-iframe-blocks-access-from-parent.html
23779
23780        * page/DOMWindow.cpp:
23781        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
23782            Check 'isSandboxed(SandboxOrigin)' against the document and
23783            activeWindow when generating the error message. If one or the other
23784            is sandboxed, make that clear in the console warning.
23785
237862012-09-10  Tommy Widenflycht  <tommyw@google.com>
23787
23788        [chromium] MediaStream API: Remove the Descriptor postfix
23789        https://bugs.webkit.org/show_bug.cgi?id=96268
23790
23791        Reviewed by Adam Barth.
23792
23793        After consideration I realized that there is no need whatsoever in using the Descriptor prefix
23794        in the WekKit embedder API. Removed from WebRTCSessionDescription and WebRTCICECandidate to start with.
23795
23796        No code changes that affects functionality.
23797
23798        * WebCore.gypi:
23799        * platform/chromium/support/WebRTCICECandidate.cpp: Renamed from Source/WebCore/platform/chromium/support/WebRTCICECandidateDescriptor.cpp.
23800        (WebKit):
23801        (WebKit::WebRTCICECandidate::WebRTCICECandidate):
23802        (WebKit::WebRTCICECandidate::assign):
23803        (WebKit::WebRTCICECandidate::reset):
23804        (WebKit::WebRTCICECandidate::initialize):
23805        (WebKit::WebRTCICECandidate::operator PassRefPtr<WebCore::RTCIceCandidateDescriptor>):
23806        (WebKit::WebRTCICECandidate::candidate):
23807        (WebKit::WebRTCICECandidate::sdpMid):
23808        (WebKit::WebRTCICECandidate::sdpMLineIndex):
23809        * platform/chromium/support/WebRTCSessionDescription.cpp: Renamed from Source/WebCore/platform/chromium/support/WebRTCSessionDescriptionDescriptor.cpp.
23810        (WebKit):
23811        (WebKit::WebRTCSessionDescription::WebRTCSessionDescription):
23812        (WebKit::WebRTCSessionDescription::assign):
23813        (WebKit::WebRTCSessionDescription::reset):
23814        (WebKit::WebRTCSessionDescription::operator WTF::PassRefPtr<WebCore::RTCSessionDescriptionDescriptor>):
23815        (WebKit::WebRTCSessionDescription::initialize):
23816        (WebKit::WebRTCSessionDescription::type):
23817        (WebKit::WebRTCSessionDescription::setType):
23818        (WebKit::WebRTCSessionDescription::sdp):
23819        (WebKit::WebRTCSessionDescription::setSDP):
23820        * platform/chromium/support/WebRTCSessionDescriptionRequest.cpp:
23821        (WebKit::WebRTCSessionDescriptionRequest::requestSucceeded):
23822        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
23823        (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
23824        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
23825        (WebKit):
23826        (RTCPeerConnectionHandlerChromium):
23827
238282012-09-10  Pavel Podivilov  <podivilov@chromium.org>
23829
23830        Web Inspector: support empty entries in source maps.
23831        https://bugs.webkit.org/show_bug.cgi?id=96088
23832
23833        Reviewed by Vsevolod Vlasov.
23834
23835        Empty entries should be mapped to the compiled script.
23836
23837        * inspector/front-end/CompilerScriptMapping.js:
23838        (WebInspector.CompilerScriptMapping):
23839        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
23840        (WebInspector.CompilerScriptMapping.prototype._reset):
23841        (WebInspector.SourceMapParser.prototype._parseMap):
23842
238432012-09-07  Andrey Kosyakov  <caseq@chromium.org>
23844
23845        Web Inspector: only display heap size statistics for timeline records when it makes sense
23846        https://bugs.webkit.org/show_bug.cgi?id=96119
23847
23848        Reviewed by Yury Semikhatsky.
23849
23850        - drop totalHeapSize from timeline records;
23851        - add usedHeapSizeDelta (not set if 0), for heap delta between start and end of the event;
23852        - only display memory details for events of scriping category or when delta is not 0;
23853
23854        * English.lproj/localizedStrings.js:
23855        * inspector/InspectorTimelineAgent.cpp:
23856        (WebCore::getUsedHeapSize):
23857        (WebCore):
23858        (WebCore::InspectorTimelineAgent::setHeapSizeStatistics):
23859        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
23860        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
23861        * inspector/InspectorTimelineAgent.h:
23862        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
23863        (TimelineRecordEntry):
23864        * inspector/front-end/TimelinePresentationModel.js:
23865        (WebInspector.TimelinePresentationModel.Record.prototype.get usedHeapSizeDelta):
23866        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
23867
238682012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
23869
23870        [Qt] Drastically shorten length of commandline needed for JS bindings generator
23871        https://bugs.webkit.org/show_bug.cgi?id=96266
23872
23873        Reviewed by Kenneth Rohde Christiansen.
23874
23875        The generate-bindings script supports the SOURCE_ROOT environment variable for IDL include file
23876        lookups, which allows specifying relative include search directories.
23877
23878        * DerivedSources.pri:
23879
238802012-09-10  Kevin Funk  <kevin.funk@kdab.com>
23881
23882        [Qt] Fix deprecation failures if QT_NO_DEPRECATED enabled
23883        https://bugs.webkit.org/show_bug.cgi?id=96258
23884
23885        Reviewed by Simon Hausmann.
23886
23887        Sync with latest changes in Qt5.
23888
23889        * platform/qt/RenderThemeQt.cpp:
23890        * platform/qt/SharedTimerQt.cpp:
23891
238922012-09-10  Christophe Dumez  <christophe.dumez@intel.com>
23893
23894        [EFL] Create a toggle button for closed captions
23895        https://bugs.webkit.org/show_bug.cgi?id=96259
23896
23897        Reviewed by Kenneth Rohde Christiansen.
23898
23899        Add toggle button for closed captions to EFL's
23900        RenderTheme.
23901
23902        Test: media/video-controls-captions.html
23903
23904        * platform/efl/RenderThemeEfl.cpp:
23905        (WebCore::RenderThemeEfl::edjeGroupFromFormType):
23906        (WebCore::RenderThemeEfl::emitMediaButtonSignal):
23907        (WebCore):
23908        (WebCore::RenderThemeEfl::supportsClosedCaptioning):
23909        (WebCore::RenderThemeEfl::paintMediaToggleClosedCaptionsButton):
23910        * platform/efl/RenderThemeEfl.h:
23911        (RenderThemeEfl):
23912
239132012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
23914
23915        [TexMap] Fix compilation on Windows
23916        https://bugs.webkit.org/show_bug.cgi?id=96257
23917
23918        Reviewed by Noam Rosenthal.
23919
23920        TextureMapperGL uses near and far as variable names and unfortunately
23921        WinDefs.h on Windows has the nasty habit of unconditionally(!) defining
23922        near and far as empty macros. There's no way to prevent WinDefs.h from
23923        doing so. Instead we rename the variables. (Another option would've been to
23924        #undef)
23925
23926        * platform/graphics/texmap/TextureMapperGL.cpp:
23927
239282012-09-10  Alexander Pavlov  <apavlov@chromium.org>
23929
23930        Web Inspector: [Elements] Poor performance upon continuous attribute changes
23931        https://bugs.webkit.org/show_bug.cgi?id=96252
23932
23933        Reviewed by Vsevolod Vlasov.
23934
23935        The DOM tree is now updated after a non-zero timeout, and same node updates are coalesced rather than added into an array
23936        as many times as the DOM node has been tampered with during the update interval.
23937
23938        * inspector/front-end/ElementsTreeOutline.js:
23939        * inspector/front-end/utilities.js: Implement Map.prototype.size
23940
239412012-09-10  Mike West  <mkwst@chromium.org>
23942
23943        Warn authors about CSP directives ignored due to non-ASCII values.
23944        https://bugs.webkit.org/show_bug.cgi?id=96061
23945
23946        Reviewed by Adam Barth.
23947
23948        CSP defines directive values as VCHAR minus ';' and ','. Currently, we
23949        ignore these directives completely in CSPDirectiveList::parseDirective,
23950        but we don't warn authors. We ought to set their expectations correctly,
23951        and help them fix issues in their policy.
23952
23953        This patch adds a console warning for directives that are ignored, and
23954        points authors to the wonderful world of percent-encoding for situations
23955        where high-ASCII or Unicode (or whatever) characters are required.
23956
23957        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-nonascii.html
23958
23959        * page/ContentSecurityPolicy.cpp:
23960        (WebCore::CSPDirectiveList::parseDirective):
23961            Call ContentSecurityPolicy::reportInvalidDirectiveValueCharacter in
23962            order to report ignored directives.
23963        (WebCore::ContentSecurityPolicy::reportInvalidDirectiveValueCharacter):
23964        (WebCore):
23965        * page/ContentSecurityPolicy.h:
23966            Add new error message.
23967
239682012-09-10  Carlos Garcia Campos  <cgarcia@igalia.com>
23969
23970        Unreviewed. Fix make distcheck.
23971
23972        * GNUmakefile.list.am: Add missing header files.
23973
239742012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
23975
23976        [Qt] Fix linking of QtWebKit.dll on Windows
23977        https://bugs.webkit.org/show_bug.cgi?id=96250
23978
23979        Reviewed by Kenneth Rohde Christiansen.
23980
23981        On Windows when using ANGLE, the DLL import library of EGL is called libEGL.lib instead of EGL.lib.
23982        However as it turns out we do not need to explicitly link against EGL, because when Qt is configured with ANGLE
23983        support it will do that automatically for us.
23984
23985        * WebCore.pri:
23986
239872012-09-10  Christophe Dumez  <christophe.dumez@intel.com>
23988
23989        [EFL] fast/forms/menulist-restrict-line-height.html is failing
23990        https://bugs.webkit.org/show_bug.cgi?id=94878
23991
23992        Reviewed by Kenneth Rohde Christiansen.
23993
23994        <select> element's text is no longer clipped when a CSS
23995        line-height is specified. The fix is the same as for
23996        Mac port in r24886.
23997
23998        Test: fast/forms/menulist-restrict-line-height.html
23999
24000        * platform/efl/RenderThemeEfl.cpp:
24001        (WebCore::RenderThemeEfl::adjustMenuListStyle):
24002
240032012-09-10  Kevin Funk  <kevin.funk@kdab.com>
24004
24005        Replace calls to QString::fromAscii which is deprecated in Qt5
24006        https://bugs.webkit.org/show_bug.cgi?id=96242
24007
24008        Reviewed by Simon Hausmann.
24009
24010        Replace with QString::fromLatin1 which does the same.
24011
24012        * bridge/qt/qt_runtime.cpp:
24013
240142012-09-09  Taiju Tsuiki  <tzik@chromium.org>
24015
24016        successCallback of ResolveLocalFileSystemURL should not be optional.
24017        https://bugs.webkit.org/show_bug.cgi?id=94802
24018
24019        Reviewed by Kent Tamura.
24020
24021        Spec says it should not optional.
24022        http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-resolveLocalFileSystemURL-void-DOMString-url-EntryCallback-successCallback-ErrorCallback-errorCallback
24023
24024        Tests: fast/filesystem/entry-points-missing-arguments.html
24025
24026        * Modules/filesystem/DOMWindowFileSystem.idl:
24027        * Modules/filesystem/WorkerContextFileSystem.idl:
24028
240292012-09-09  Patrick Gansterer  <paroga@webkit.org>
24030
24031        Add StringBuilder::appendNumber() and use it
24032        https://bugs.webkit.org/show_bug.cgi?id=96030
24033
24034        Reviewed by Eric Seidel.
24035
24036        Also fix a bunch of append() vs. appendLiteral() issues in the surrounding code.
24037
24038        * Modules/websockets/WebSocketHandshake.cpp:
24039        (WebCore::hostName):
24040        * bindings/v8/ScriptController.cpp:
24041        (WebCore::resourceString):
24042        * css/FontFeatureValue.cpp:
24043        (WebCore::FontFeatureValue::customCssText):
24044        * dom/Position.cpp:
24045        (WebCore::Position::formatForDebugger):
24046        * dom/Range.cpp:
24047        (WebCore::Range::formatForDebugger):
24048        * html/FormController.cpp:
24049        (WebCore::FormKeyGenerator::formKey):
24050        * html/HTMLAnchorElement.cpp:
24051        (WebCore::appendServerMapMousePosition):
24052        * html/canvas/CanvasRenderingContext2D.cpp:
24053        (WebCore::CanvasRenderingContext2D::font):
24054        * inspector/IdentifiersFactory.cpp:
24055        (WebCore::IdentifiersFactory::addProcessIdPrefixTo):
24056        * page/FrameTree.cpp:
24057        (WebCore::FrameTree::uniqueChildName):
24058        * page/SecurityOrigin.cpp:
24059        (WebCore::SecurityOrigin::toRawString):
24060        * platform/Decimal.cpp:
24061        (WebCore::Decimal::toString):
24062        * platform/network/ProxyServer.cpp:
24063        (WebCore::appendProxyServerString):
24064        * platform/text/TextStream.cpp:
24065        (WebCore::TextStream::operator<<):
24066        * platform/text/TextStream.h:
24067        * rendering/RenderTreeAsText.cpp:
24068        (WebCore::nodePosition):
24069        * xml/XMLErrors.cpp:
24070        (WebCore::XMLErrors::appendErrorMessage):
24071
240722012-09-09  KyungTae Kim  <ktf.kim@samsung.com>
24073
24074        [EFL] Wrong rendering results for square-button-appearance.html
24075        https://bugs.webkit.org/show_bug.cgi?id=85493
24076
24077        Reviewed by Gyuyoung Kim.
24078
24079        A square-button is an element that has '-webkit-appearance: square-button' style.
24080        
24081        If it is a block element, 
24082        the RenderBlock::recomputeLogicalWidth recalculate the width from the padding values.
24083        
24084        But the recalculated width became wrong because the RenderThemeEfl::adjustSizeConstraints 
24085        called from RenderThemeEfl::adjustButtonStyle adds padding values for a button.
24086
24087        So, the adjustSizeConstraints must not be called for a square-button(SquareButtonPart).
24088
24089        Test : fast/css/square-button-appearance.html
24090
24091        * platform/efl/RenderThemeEfl.cpp:
24092        (WebCore::RenderThemeEfl::adjustButtonStyle): Call adjustSizeConstrains only for PushButtonPart and ButtonPart
24093
240942012-09-09  Jinwoo Song  <jinwoo7.song@samsung.com>
24095
24096        [EFL][WK2] Minibrowser locks up when right clicking editable filed
24097        https://bugs.webkit.org/show_bug.cgi?id=96074
24098
24099        Reviewed by Gyuyoung Kim.
24100
24101        WebProcess crashes when the context menu type is SubmenuType and non-CROSS_PLATFORM_CONTEXT_MENUS is used.
24102        It is because platformSubMenu() in the ContextMenuItemEfl.cpp returns null. This patch implements the setSubMenu()
24103        and platformSubMenu() to set and return the subMenuItems.
24104
24105        * platform/efl/ContextMenuItemEfl.cpp:
24106        (WebCore::ContextMenuItem::setSubMenu):
24107        (WebCore::ContextMenuItem::platformSubMenu):
24108        (WebCore):
24109
241102012-09-09  Kangil Han  <kangil.han@samsung.com>
24111
24112        Pass full target idl file path to CodeGenerator as a constructor argument.
24113        https://bugs.webkit.org/show_bug.cgi?id=96190
24114
24115        Reviewed by Kentaro Hara.
24116
24117        Passing idl file path to CodeGenerator would be useful because CodeGenerator* family could manipulate it when creating derived header and cpp files.
24118
24119        * bindings/scripts/CodeGenerator.pm:
24120        (new):
24121        (ProcessDocument):
24122        * bindings/scripts/generate-bindings.pl:
24123
241242012-09-09  Dan Bernstein  <mitz@apple.com>
24125
24126        Try to fix the build after r128006.
24127
24128        * dom/Element.cpp:
24129        (WebCore::Element::boundsInRootViewSpace): Updated for rename.
24130        (WebCore::Element::getBoundingClientRect): Ditto.
24131        * svg/SVGElement.cpp:
24132        (WebCore::SVGElement::getBoundingBox): Renamed boundingBox() to this, to avoid clashing
24133        with the virtual function on Node. The 'get' prefix also indicates that the result is
24134        returned in an out parameter.
24135        * svg/SVGElement.h:
24136        (SVGElement):
24137
241382012-09-09  Patrick Gansterer  <paroga@webkit.org>
24139
24140        Replace WTF::numberToString() with String::numberToStringECMAScript()
24141        https://bugs.webkit.org/show_bug.cgi?id=96130
24142
24143        Reviewed by Benjamin Poulain.
24144
24145        The String class provides a nice wrapper for this function
24146        in the meantime, so just use it to avoid code duplication.
24147
24148        * html/parser/HTMLParserIdioms.cpp:
24149        (WebCore::serializeForNumberType):
24150        * platform/Decimal.cpp:
24151        (WebCore::Decimal::fromDouble):
24152
241532012-09-09  Emil A Eklund  <eae@chromium.org>
24154
24155        Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect
24156        https://bugs.webkit.org/show_bug.cgi?id=81413
24157
24158        Reviewed by David Hyatt.
24159
24160        Rename Node::getRect and getPixelSnappedRect to boundingBox and
24161        pixelSnappedBoundingBox respectively.
24162
24163        Remove overridden getRect method from ContainerNode as it calculates the
24164        same rect as the Node implementation but in a more complicated and
24165        error-prone way. Also remove the getUpperLeftCorner/getLowerRightCorner
24166        support functions as they are no longer needed.
24167
24168        No new tests, no change in functionality.
24169
24170        * accessibility/AccessibilitySlider.cpp:
24171        (WebCore::AccessibilitySliderThumb::elementRect):
24172        Update to call boundingBox.
24173
24174        * dom/ContainerNode.cpp:
24175        * dom/ContainerNode.h:
24176        Remove overridden getRect method and the getUpperLeftCorner/
24177        getLowerRightCorner support methods .
24178
24179        * dom/Element.cpp:
24180        (WebCore::Element::scrollIntoView):
24181        (WebCore::Element::scrollIntoViewIfNeeded):
24182        (WebCore::Element::updateFocusAppearance):
24183        Update to call boundingBox.
24184        
24185        * dom/Node.h:
24186        * dom/Node.cpp:
24187        (WebCore::Node::boundingBox):
24188        Rename getRect to boundingBox.
24189
24190        (WebCore::Node::pixelSnappedBoundingBox):
24191        Rename getPixelSnappedRect to pixelSnappedBoundingBox.
24192        
24193        * html/ColorInputType.cpp:
24194        (WebCore::ColorInputType::elementRectRelativeToRootView):
24195        * html/ValidationMessage.cpp:
24196        (WebCore::ValidationMessage::buildBubbleTree):
24197        * html/shadow/CalendarPickerElement.cpp:
24198        (WebCore::CalendarPickerElement::openPopup):
24199        * html/shadow/TextControlInnerElements.cpp:
24200        (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
24201        * page/FrameView.cpp:
24202        (WebCore::FrameView::scrollElementToRect):
24203        (WebCore::FrameView::scrollToAnchor):
24204        * page/SpatialNavigation.cpp:
24205        (WebCore::nodeRectInAbsoluteCoordinates):
24206        Update to call boundingBox/pixelSnappedBoundingBox.
24207
242082012-09-09  Christopher Cameron  <ccameron@chromium.org>
24209
24210        [chromium] Do not delete texture backing structures on the main thread
24211        https://bugs.webkit.org/show_bug.cgi?id=96018
24212
24213        Reviewed by James Robinson.
24214
24215        Do not delete CCPrioritizedTexture::Backing structures on the main
24216        thread.  Instead, unlink them from their owning CCPrioritizedTexture
24217        in the main thread, and have the impl thread then delete all unlinked
24218        textures.
24219
24220        This is towards having the main thread not access the m_backings set,
24221        which will allow the impl thread to traverse that set when deleting
24222        resources in response to GPU memory management events.
24223
24224        Tested by existing eviction tests (CCLayerTreeHostTest's
24225        TestEvictTextures, LostContextAfterEvictTextures)
24226
24227        Fix a place where single thread proxy wasn't setting the main thread
24228        blocked state correctly.
24229
24230        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
24231        (WebCore::CCLayerTreeHost::unlinkAllContentTextures):
24232        (WebCore):
24233        (WebCore::CCLayerTreeHost::deleteUnlinkedTextures):
24234        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
24235        (CCLayerTreeHost):
24236        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
24237        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
24238        (WebCore::CCPrioritizedTextureManager::unlinkAllBackings):
24239        (WebCore):
24240        (WebCore::CCPrioritizedTextureManager::deleteAllUnlinkedBackings):
24241        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
24242        (CCPrioritizedTextureManager):
24243        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
24244        (WebCore::CCSingleThreadProxy::commitAndComposite):
24245        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
24246        (WebCore::CCThreadProxy::beginFrame):
24247        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
24248
242492012-09-09  Andreas Kling  <kling@webkit.org>
24250
24251        EventListenerMap: Use Vector instead of HashMap as backend.
24252        <http://webkit.org/b/77982>
24253
24254        Reviewed by Geoff Garen.
24255
24256        Refactor EventListenerMap to store pair<AtomicString, EventListenerVector> in a Vector
24257        instead of using key/value HashMap stores. This is much more space efficient and actually
24258        faster since we were spending more time/effort managing the hash map than it costs us
24259        to iterate over and compare a couple of pointers. (It's very rare to have more than
24260        4 different event types registered in a single EventListenerMap.)
24261
24262        This gets rid of the slightly hacky optimization for nodes with listeners of a single type,
24263        reducing the complexity of EventListenerMap greatly.
24264
24265        ~1.1MB progression on Membuster. Also strong (20+ MB on larger patches) savings on WebKit
24266        bugzilla review pages, though they don't necessarily represent a common usecase.
24267
24268        * dom/EventListenerMap.cpp:
24269        (WebCore::EventListenerMap::contains):
24270        (WebCore::EventListenerMap::clear):
24271        (WebCore::EventListenerMap::eventTypes):
24272        (WebCore::EventListenerMap::add):
24273        (WebCore::EventListenerMap::remove):
24274        (WebCore::EventListenerMap::find):
24275        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
24276        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
24277        (WebCore::EventListenerIterator::EventListenerIterator):
24278        (WebCore::EventListenerIterator::nextListener):
24279        * dom/EventListenerMap.h:
24280        (WebCore::EventListenerMap::isEmpty):
24281        (WebCore::EventListenerMapEntry::EventListenerMapEntry):
24282        (EventListenerMapEntry):
24283        (EventListenerMap):
24284        (EventListenerIterator):
24285
242862012-09-09  Lucas Forschler  <lforschler@apple.com>
24287
24288        Build Fix.  <rdar://problem/12260893>
24289        
24290        * platform/graphics/mac/WebGLLayer.mm:
24291
242922012-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
24293
24294        Unreviewed, rolling out r127979.
24295        http://trac.webkit.org/changeset/127979
24296        https://bugs.webkit.org/show_bug.cgi?id=96217
24297
24298        Appears to have broken the windows and linux builds (Requested
24299        by jamesr_ on #webkit).
24300
24301        * bindings/scripts/CodeGeneratorV8.pm:
24302        (NativeToJSValue):
24303        * bindings/v8/V8DOMWrapper.h:
24304        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
24305        (V8DOMWrapper):
24306
243072012-09-09  James Robinson  <jamesr@chromium.org>
24308
24309        [chromium] webkit_platform should only be linked into the webkit target
24310        https://bugs.webkit.org/show_bug.cgi?id=96213
24311
24312        Reviewed by Adrienne Walker.
24313
24314        The Platform.gyp:webkit_platform target provides the implementation of several WEBKIT_EXPORTed symbols. It only
24315        makes sense as a target of WebKit.gyp:webkit, other targets shouldn't directly depend on it.
24316
24317        * WebCore.gyp/WebCore.gyp:
24318
243192012-09-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
24320
24321        [EFL] Fix build break when MEDIA_STREAM is enabled.
24322        https://bugs.webkit.org/show_bug.cgi?id=96063
24323
24324        Unreviewed. Fix build break when MEDIA_STREAM is enabled.
24325
24326        * CMakeLists.txt:
24327
243282012-09-09  Adam Barth  <abarth@webkit.org>
24329
24330        [V8] convertEventTargetToV8Object doesn't need to be overloaded
24331        https://bugs.webkit.org/show_bug.cgi?id=96195
24332
24333        Reviewed by Kentaro Hara.
24334
24335        WTF::getPtr solves this problem for us.
24336
24337        * bindings/scripts/CodeGeneratorV8.pm:
24338        (NativeToJSValue):
24339        * bindings/v8/V8DOMWrapper.h:
24340        (V8DOMWrapper):
24341
243422012-09-09  Adam Barth  <abarth@webkit.org>
24343
24344        [V8] V8PerContextData holds m_context using a v8::Handle rather than a v8::Persistent
24345        https://bugs.webkit.org/show_bug.cgi?id=96193
24346
24347        Reviewed by Kentaro Hara.
24348
24349        There are two types of handles in V8: Local and Persistent. We are now
24350        permitted to keep Local handles in the heap because they get
24351        deallocated when the C++ stack unwinds and v8::HandleScope objects are
24352        destructed.
24353
24354        V8PerContextData holds its m_context using the non-specific v8::Handle
24355        type. If we used a Local handle here, we'd have a memory safety
24356        problem. Thankfully, we use a Persistent handle, which need to be
24357        allocated and freed manually.
24358
24359        This patch makes the type of V8PerContextData::m_context more specific
24360        to ensure that we never try to store a local handle in this variable.
24361        This patch should not have any behavior change because we were already
24362        storing a Persistent handle.
24363
24364        * bindings/v8/V8PerContextData.h:
24365        (WebCore::V8PerContextData::create):
24366        (WebCore::V8PerContextData::V8PerContextData):
24367        (V8PerContextData):
24368
243692012-09-09  Adam Barth  <abarth@webkit.org>
24370
24371        [V8] V8DOMWindowShell does not need to be RefCounted
24372        https://bugs.webkit.org/show_bug.cgi?id=96192
24373
24374        Reviewed by Kentaro Hara.
24375
24376        V8DOMWindowShell holds a raw Frame pointer, which would point to
24377        unallocated memory if any object that wasn't owned by the frame took a
24378        reference to a V8DOMWindowShell. Thankfully, the only object that takes
24379        a reference to the V8DOMWindowShell is ScriptController, which is owned
24380        by the Frame.
24381
24382        This patch stops V8DOMWindowShell from being RefCounted so that no
24383        other objects are tempted to take a reference to it in the future.
24384
24385        * bindings/v8/ScriptController.h:
24386        (ScriptController):
24387        * bindings/v8/V8DOMWindowShell.cpp:
24388        (WebCore::V8DOMWindowShell::create):
24389        * bindings/v8/V8DOMWindowShell.h:
24390        (V8DOMWindowShell):
24391
243922012-09-08  Adam Barth  <abarth@webkit.org>
24393
24394        [V8] unsafeHandleToCurrentWorldContext doesn't need to exist
24395        https://bugs.webkit.org/show_bug.cgi?id=96191
24396
24397        Reviewed by Kentaro Hara.
24398
24399        Previously, we used this function when instantiating DOM wrappers. Now
24400        we get the context from the creationContext, so we don't need access to
24401        this unsafe handle. This patch inlines the function into its one other
24402        caller.
24403
24404        * bindings/v8/ScriptController.cpp:
24405        (WebCore::ScriptController::currentWorldContext):
24406        * bindings/v8/ScriptController.h:
24407        (ScriptController):
24408
244092012-09-08  Benjamin Poulain  <bpoulain@apple.com>
24410
24411        Specialize nextBreakablePosition depending on breakNBSP
24412        https://bugs.webkit.org/show_bug.cgi?id=96042
24413
24414        Reviewed by Eric Seidel.
24415
24416        The speed of isBreakableSpace() is limited by the speed of the inner loop of nextBreakablePosition().
24417        The branches done to handle noBreakSpace can be simplified outside the loop
24418        to reduce the number of tests inside the loop.
24419
24420        This patch split the code of nextBreakablePosition() in two function, depending if breakNBSP is true
24421        or false.
24422
24423        If breakNBSP is true, isBreakableSpace() would return true on noBreakSpace.
24424        ->There is no need to test that value again for needsLineBreakIterator().
24425        ->There is no need to special case the switch() of isBreakableSpace() for noBreakSpace.
24426
24427        If breakNBSP is false:
24428        ->isBreakableSpace() does not need to test for noBreakSpace.
24429
24430        On x86_64, this improves PerformanceTests/Layout/line-layout.html by 2.8%.
24431
24432        * rendering/break_lines.cpp:
24433        (WebCore::isBreakableSpace):
24434        (WebCore::nextBreakablePositionIgnoringNBSP):
24435        (WebCore::nextBreakablePosition):
24436        * rendering/break_lines.h:
24437        (WebCore::isBreakable): Remove the default value for breakNBSP, no caller is using it.
24438
244392012-09-08  Adam Barth  <abarth@chromium.org>
24440
24441        [V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
24442        https://bugs.webkit.org/show_bug.cgi?id=96147
24443
24444        Reviewed by Eric Seidel.
24445
24446        Previously, we used the Frame when instantiating DOM wrappers. That's
24447        sketchy because not all DOM wrappers know how to find their Frame, and
24448        the Frame might be displaying a different document now anyway. This
24449        patch now gets all the information directly from the creation context.
24450
24451        In addition, this patch gets the proper creation context in a few more
24452        cases, including Location.
24453
24454        * bindings/scripts/CodeGeneratorV8.pm:
24455        (GetInternalFields):
24456        (GenerateNormalAttrGetter):
24457        (GenerateToV8Converters):
24458        (GenerateFunctionCallString):
24459        (NativeToJSValue):
24460        * bindings/scripts/test/V8/V8Float64Array.cpp:
24461        (WebCore::Float64ArrayV8Internal::fooCallback):
24462        (WebCore::V8Float64Array::wrapSlow):
24463        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
24464        (WebCore::V8TestActiveDOMObject::wrapSlow):
24465        * bindings/scripts/test/V8/V8TestCallback.cpp:
24466        (WebCore::V8TestCallback::callbackWithClass1Param):
24467        (WebCore::V8TestCallback::callbackWithClass2Param):
24468        (WebCore::V8TestCallback::callbackWithStringList):
24469        (WebCore::V8TestCallback::callbackRequiresThisToPass):
24470        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
24471        (WebCore::V8TestCustomNamedGetter::wrapSlow):
24472        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
24473        (WebCore::V8TestEventConstructor::wrapSlow):
24474        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
24475        (WebCore::TestEventTargetV8Internal::itemCallback):
24476        (WebCore::V8TestEventTarget::wrapSlow):
24477        * bindings/scripts/test/V8/V8TestException.cpp:
24478        (WebCore::V8TestException::wrapSlow):
24479        * bindings/scripts/test/V8/V8TestInterface.cpp:
24480        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
24481        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
24482        (WebCore::V8TestInterface::wrapSlow):
24483        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
24484        (WebCore::V8TestMediaQueryListListener::wrapSlow):
24485        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
24486        (WebCore::V8TestNamedConstructor::wrapSlow):
24487        * bindings/scripts/test/V8/V8TestNode.cpp:
24488        (WebCore::V8TestNode::wrapSlow):
24489        * bindings/scripts/test/V8/V8TestObj.cpp:
24490        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
24491        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
24492        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
24493        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
24494        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
24495        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
24496        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
24497        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
24498        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
24499        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
24500        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
24501        (WebCore::TestObjV8Internal::objMethodCallback):
24502        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
24503        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
24504        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
24505        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
24506        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
24507        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
24508        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
24509        (WebCore::TestObjV8Internal::strictFunctionCallback):
24510        (WebCore::V8TestObj::wrapSlow):
24511        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
24512        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
24513        * bindings/v8/V8DOMWindowShell.cpp:
24514        (WebCore::V8DOMWindowShell::disposeContext):
24515        * bindings/v8/V8DOMWrapper.cpp:
24516        (WebCore::V8DOMWrapper::instantiateV8Object):
24517        * bindings/v8/V8DOMWrapper.h:
24518        (V8DOMWrapper):
24519        * bindings/v8/V8PerContextData.cpp:
24520        (WebCore):
24521        (WebCore::V8PerContextData::current):
24522        (WebCore::V8PerContextData::dispose):
24523        (WebCore::V8PerContextData::init):
24524        * bindings/v8/V8PerContextData.h:
24525        (V8PerContextData):
24526
245272012-09-08  Arvid Nilsson  <anilsson@rim.com>
24528
24529        [CSS Shaders] [BlackBerry] Refactor CustomFilterMesh and CustomFilter*Program
24530        https://bugs.webkit.org/show_bug.cgi?id=94725
24531
24532        Reviewed by George Staikos.
24533
24534        Separate the MeshGenerator from the CustomFilterMesh into
24535        CustomFilterMeshGenerator.h/cpp. This allows the BlackBerry port to
24536        reuse the mesh generator in its accelerated compositing implementation.
24537
24538        Also add support for creating a "PlatformCompiledProgram" from a
24539        CustomFilterValidatedProgram, so the BlackBerry port can reuse the
24540        shader validation code in its accelerated compositing implementation.
24541
24542        It turns out the GraphicsContext3D is not needed for ANGLE to function,
24543        so this patch removes an ASSERT that required a context before
24544        validating the shaders using ANGLE. This allows the BlackBerry port to
24545        reuse the validation code without triggering the assert. In the future,
24546        the validation code could be moved to a separate class to make it more
24547        obvious that it isn't really related to GraphicsContext3D.
24548
24549        In general, this refactoring can be useful for any port that uses
24550        OpenGL to implement accelerated compositing.
24551
24552        Inspired by an original patch by Joshua Netterfield.
24553
24554        No new tests, because this patch implements no new functionality.
24555
24556        * GNUmakefile.list.am:
24557        * Target.pri:
24558        * WebCore.gypi:
24559        * WebCore.vcproj/WebCore.vcproj:
24560        * WebCore.xcodeproj/project.pbxproj:
24561        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
24562        (WebCore::CustomFilterGlobalContext::getValidatedProgram):
24563        * platform/graphics/filters/CustomFilterMesh.cpp:
24564        (WebCore::CustomFilterMesh::CustomFilterMesh):
24565        * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Added.
24566        (WebCore):
24567        (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator):
24568        (WebCore::CustomFilterMeshGenerator::addAttachedMeshIndex):
24569        (WebCore::CustomFilterMeshGenerator::generateAttachedMesh):
24570        (WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAndIndex):
24571        (WebCore::CustomFilterMeshGenerator::generateDetachedMesh):
24572        (WebCore::CustomFilterMeshGenerator::addPositionAttribute):
24573        (WebCore::CustomFilterMeshGenerator::addTexCoordAttribute):
24574        (WebCore::CustomFilterMeshGenerator::addMeshCoordAttribute):
24575        (WebCore::CustomFilterMeshGenerator::addTriangleCoordAttribute):
24576        (WebCore::CustomFilterMeshGenerator::addAttachedMeshVertexAttributes):
24577        (WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAttributes):
24578        (WebCore::CustomFilterMeshGenerator::dumpBuffers):
24579        * platform/graphics/filters/CustomFilterMeshGenerator.h: Added.
24580        (WebCore):
24581        (CustomFilterMeshGenerator):
24582        (WebCore::CustomFilterMeshGenerator::vertices):
24583        (WebCore::CustomFilterMeshGenerator::indices):
24584        (WebCore::CustomFilterMeshGenerator::points):
24585        (WebCore::CustomFilterMeshGenerator::pointsCount):
24586        (WebCore::CustomFilterMeshGenerator::tiles):
24587        (WebCore::CustomFilterMeshGenerator::tilesCount):
24588        (WebCore::CustomFilterMeshGenerator::indicesCount):
24589        (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
24590        (WebCore::CustomFilterMeshGenerator::verticesCount):
24591        (WebCore::CustomFilterMeshGenerator::addTile):
24592        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
24593        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
24594        (WebCore::CustomFilterValidatedProgram::compiledProgram):
24595        (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
24596        (WebCore):
24597        (WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
24598        (WebCore::CustomFilterValidatedProgram::platformDestroy):
24599        * platform/graphics/filters/CustomFilterValidatedProgram.h:
24600        (WebCore):
24601        (CustomFilterValidatedProgram):
24602        * platform/graphics/filters/blackberry/CustomFilterValidatedProgramBlackBerry.cpp: Added.
24603        (WebCore):
24604        (WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
24605        (WebCore::CustomFilterValidatedProgram::platformDestroy):
24606
246072012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
24608
24609        Fix the build of OpenGLShims on Windows
24610        https://bugs.webkit.org/show_bug.cgi?id=96123
24611
24612        Reviewed by Kenneth Rohde Christiansen.
24613
24614        OpenGL functions on Windows are generally defined as __stdcall, so we need to make sure
24615        that we declare our own "copies" of those functions with the same calling convention.
24616
24617        This is also required for the situation where we build against ANGLE, because then we
24618        initialize the function table entries with a direct assignment (entry = ::glMyFunction())
24619        and the assignment does not compile if the types don't match, i.e. if RHS has a different
24620        calling convention than LHS.
24621
24622        The approach chosen is basically the same as in the Khronos headers,
24623        using a GLAPIENTRY macro.
24624
24625        * platform/graphics/OpenGLShims.h:
24626
246272012-09-07  Benjamin Poulain  <bpoulain@apple.com>
24628
24629        Rename the ustring() accessor to string()
24630        https://bugs.webkit.org/show_bug.cgi?id=95919
24631
24632        Reviewed by Geoffrey Garen.
24633
24634        * bindings/js/Dictionary.cpp:
24635        (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
24636        (WebCore::Dictionary::getOwnPropertyNames):
24637        * bindings/js/SerializedScriptValue.cpp:
24638        Simplify a few String constructions which were still using type conversion
24639        through StringImpl.
24640
24641        (WebCore::CloneSerializer::write):
24642        (WebCore::CloneDeserializer::CachedString::string):
24643        (WebCore::CloneDeserializer::readFile):
24644        (WebCore::CloneDeserializer::readTerminal):
24645        (WebCore::CloneDeserializer::deserialize):
24646        * bridge/NP_jsobject.cpp:
24647        (_NPN_Enumerate):
24648
246492012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
24650
24651        Unreviewed, rolling out r127955.
24652        http://trac.webkit.org/changeset/127955
24653        https://bugs.webkit.org/show_bug.cgi?id=96174
24654
24655        Hits an ASSERT (Requested by abarth on #webkit).
24656
24657        * bindings/scripts/CodeGeneratorV8.pm:
24658        (GetInternalFields):
24659        (GenerateNormalAttrGetter):
24660        (GenerateToV8Converters):
24661        (GenerateFunctionCallString):
24662        (NativeToJSValue):
24663        * bindings/scripts/test/V8/V8Float64Array.cpp:
24664        (WebCore::Float64ArrayV8Internal::fooCallback):
24665        (WebCore::V8Float64Array::wrapSlow):
24666        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
24667        (WebCore::V8TestActiveDOMObject::wrapSlow):
24668        * bindings/scripts/test/V8/V8TestCallback.cpp:
24669        (WebCore::V8TestCallback::callbackWithClass1Param):
24670        (WebCore::V8TestCallback::callbackWithClass2Param):
24671        (WebCore::V8TestCallback::callbackWithStringList):
24672        (WebCore::V8TestCallback::callbackRequiresThisToPass):
24673        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
24674        (WebCore::V8TestCustomNamedGetter::wrapSlow):
24675        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
24676        (WebCore::V8TestEventConstructor::wrapSlow):
24677        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
24678        (WebCore::TestEventTargetV8Internal::itemCallback):
24679        (WebCore::V8TestEventTarget::wrapSlow):
24680        * bindings/scripts/test/V8/V8TestException.cpp:
24681        (WebCore::V8TestException::wrapSlow):
24682        * bindings/scripts/test/V8/V8TestInterface.cpp:
24683        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
24684        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
24685        (WebCore::V8TestInterface::wrapSlow):
24686        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
24687        (WebCore::V8TestMediaQueryListListener::wrapSlow):
24688        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
24689        (WebCore::V8TestNamedConstructor::wrapSlow):
24690        * bindings/scripts/test/V8/V8TestNode.cpp:
24691        (WebCore::V8TestNode::wrapSlow):
24692        * bindings/scripts/test/V8/V8TestObj.cpp:
24693        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
24694        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
24695        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
24696        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
24697        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
24698        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
24699        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
24700        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
24701        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
24702        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
24703        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
24704        (WebCore::TestObjV8Internal::objMethodCallback):
24705        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
24706        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
24707        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
24708        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
24709        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
24710        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
24711        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
24712        (WebCore::TestObjV8Internal::strictFunctionCallback):
24713        (WebCore::V8TestObj::wrapSlow):
24714        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
24715        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
24716        * bindings/v8/V8DOMWindowShell.cpp:
24717        (WebCore::V8DOMWindowShell::disposeContext):
24718        * bindings/v8/V8DOMWrapper.cpp:
24719        (WebCore::V8DOMWrapper::instantiateV8Object):
24720        * bindings/v8/V8DOMWrapper.h:
24721        (V8DOMWrapper):
24722        * bindings/v8/V8PerContextData.cpp:
24723        (WebCore::V8PerContextData::dispose):
24724        (WebCore::V8PerContextData::init):
24725        * bindings/v8/V8PerContextData.h:
24726        (V8PerContextData):
24727
247282012-09-06  Jeffrey Pfau  <jpfau@apple.com>
24729
24730        Extend third-party storage blocking API to optionally allow blocking all storage
24731        https://bugs.webkit.org/show_bug.cgi?id=95915
24732
24733        Reviewed by Brady Eidson.
24734
24735        Replace boolean API with tri-state API that allows for blocking no, third-party, or all storage.
24736
24737        Tests: http/tests/security/same-origin-shared-worker-blocked.html
24738               http/tests/security/same-origin-storage-blocked.html
24739               http/tests/security/same-origin-websql-blocked.html
24740
24741        * dom/Document.cpp:
24742        (WebCore::Document::initSecurityContext):
24743        * page/SecurityOrigin.cpp:
24744        (WebCore::SecurityOrigin::SecurityOrigin):
24745        (WebCore::SecurityOrigin::canAccessStorage):
24746        * page/SecurityOrigin.h:
24747        (WebCore::SecurityOrigin::setStorageBlockingPolicy):
24748        (SecurityOrigin):
24749        * page/Settings.cpp:
24750        (WebCore::Settings::Settings):
24751        * page/Settings.h:
24752        (WebCore::Settings::setStorageBlockingPolicy):
24753        (WebCore::Settings::storageBlockingPolicy):
24754        (Settings):
24755        * testing/InternalSettings.cpp:
24756        (WebCore::InternalSettings::setStorageBlockingPolicy):
24757        * testing/InternalSettings.h:
24758        (InternalSettings):
24759        * testing/InternalSettings.idl:
24760
247612012-09-07  Adam Barth  <abarth@chromium.org>
24762
24763        [V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
24764        https://bugs.webkit.org/show_bug.cgi?id=96147
24765
24766        Reviewed by Eric Seidel.
24767
24768        Previously, we used the Frame when instantiating DOM wrappers. That's
24769        sketchy because not all DOM wrappers know how to find their Frame, and
24770        the Frame might be displaying a different document now anyway. This
24771        patch now gets all the information directly from the creation context.
24772
24773        In addition, this patch gets the proper creation context in a few more
24774        cases, including Location.
24775
24776        * bindings/scripts/CodeGeneratorV8.pm:
24777        (GetInternalFields):
24778        (GenerateNormalAttrGetter):
24779        (GenerateToV8Converters):
24780        (GenerateFunctionCallString):
24781        (NativeToJSValue):
24782        * bindings/scripts/test/V8/V8Float64Array.cpp:
24783        (WebCore::Float64ArrayV8Internal::fooCallback):
24784        (WebCore::V8Float64Array::wrapSlow):
24785        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
24786        (WebCore::V8TestActiveDOMObject::wrapSlow):
24787        * bindings/scripts/test/V8/V8TestCallback.cpp:
24788        (WebCore::V8TestCallback::callbackWithClass1Param):
24789        (WebCore::V8TestCallback::callbackWithClass2Param):
24790        (WebCore::V8TestCallback::callbackWithStringList):
24791        (WebCore::V8TestCallback::callbackRequiresThisToPass):
24792        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
24793        (WebCore::V8TestCustomNamedGetter::wrapSlow):
24794        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
24795        (WebCore::V8TestEventConstructor::wrapSlow):
24796        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
24797        (WebCore::TestEventTargetV8Internal::itemCallback):
24798        (WebCore::V8TestEventTarget::wrapSlow):
24799        * bindings/scripts/test/V8/V8TestException.cpp:
24800        (WebCore::V8TestException::wrapSlow):
24801        * bindings/scripts/test/V8/V8TestInterface.cpp:
24802        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
24803        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
24804        (WebCore::V8TestInterface::wrapSlow):
24805        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
24806        (WebCore::V8TestMediaQueryListListener::wrapSlow):
24807        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
24808        (WebCore::V8TestNamedConstructor::wrapSlow):
24809        * bindings/scripts/test/V8/V8TestNode.cpp:
24810        (WebCore::V8TestNode::wrapSlow):
24811        * bindings/scripts/test/V8/V8TestObj.cpp:
24812        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
24813        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
24814        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
24815        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
24816        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
24817        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
24818        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
24819        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
24820        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
24821        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
24822        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
24823        (WebCore::TestObjV8Internal::objMethodCallback):
24824        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
24825        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
24826        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
24827        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
24828        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
24829        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
24830        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
24831        (WebCore::TestObjV8Internal::strictFunctionCallback):
24832        (WebCore::V8TestObj::wrapSlow):
24833        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
24834        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
24835        * bindings/v8/V8DOMWindowShell.cpp:
24836        (WebCore::V8DOMWindowShell::disposeContext):
24837        * bindings/v8/V8DOMWrapper.cpp:
24838        (WebCore::V8DOMWrapper::instantiateV8Object):
24839        * bindings/v8/V8DOMWrapper.h:
24840        (V8DOMWrapper):
24841        * bindings/v8/V8PerContextData.cpp:
24842        (WebCore):
24843        (WebCore::V8PerContextData::current):
24844        (WebCore::V8PerContextData::dispose):
24845        (WebCore::V8PerContextData::init):
24846        * bindings/v8/V8PerContextData.h:
24847        (V8PerContextData):
24848
248492012-09-07  James Robinson  <jamesr@chromium.org>
24850
24851        [chromium] Remove transitional WebCompositorSupport fallback code
24852        https://bugs.webkit.org/show_bug.cgi?id=96155
24853
24854        Reviewed by Adrienne Walker.
24855
24856        The implementation of WebCompositorSupport has rolled out everywhere and the static ::create() functions are
24857        going way.
24858
24859        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
24860        (WebCore::createScrollbarLayer):
24861        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
24862        (WebCore::createWebAnimation):
24863        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
24864        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
24865        * platform/graphics/chromium/DrawingBufferChromium.cpp:
24866        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
24867        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24868        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
24869        (WebCore::GraphicsLayerChromium::setContentsToImage):
24870        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
24871
248722012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
24873
24874        Fix compilation of TextureMapperShaderManager.cpp with MSVC
24875        https://bugs.webkit.org/show_bug.cgi?id=96121
24876
24877        Reviewed by Kenneth Rohde Christiansen.
24878
24879        Named variadic parameters in macros appear to be a GCC extension. Fortunately __VA_ARGS__ seems
24880        to work with GCC and MSVC here.
24881
24882        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
24883        (WebCore):
24884        (WebCore::StandardFilterProgram::StandardFilterProgram):
24885
248862012-09-07  Victoria Kirst  <vrk@chromium.org>
24887
24888        Seek to end after duration change in HTMLMediaElement
24889        https://bugs.webkit.org/show_bug.cgi?id=95986
24890
24891        Reviewed by Eric Carlson.
24892
24893        This seeks the media element to the end of the media resource if the current playback
24894        position has become greater than the duration after a duration change.
24895        http://dev.w3.org/html5/spec/media-elements.html#durationChange
24896
24897        Test: http/tests/media/media-source/seek-to-end-after-duration-change.html
24898
24899        * html/HTMLMediaElement.cpp:
24900        (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): After firing the duration change event, checks to see if current time exceeds duration and if so, seeks to duration.
24901
249022012-09-07  James Robinson  <jamesr@chromium.org>
24903
24904        [chromium] Implement WebCompositorInputHandlerImpl on top of exposed API instead of CC internals
24905        https://bugs.webkit.org/show_bug.cgi?id=96151
24906
24907        Reviewed by Adrienne Walker.
24908
24909        Reworks the CC hookup for input handling to be more similar to the OutputSurface handling. If on compositor
24910        startup we want to initialize threaded input handling, we ask the embedder for a CCInputHandler implementation
24911        via CCLayerTreeHostClient. If the client provides one, we later bind this to a CCInputHandlerClient (actually
24912        CCLayerTreeHostImpl) from the compositor thread.
24913
24914        * platform/graphics/chromium/cc/CCInputHandler.h:
24915        (WebCore):
24916        (CCInputHandler):
24917        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
24918        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
24919        (WebCore::CCLayerTreeHost::initialize):
24920        (WebCore::CCLayerTreeHost::createInputHandler):
24921        (WebCore):
24922        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
24923        (CCLayerTreeHost):
24924        * platform/graphics/chromium/cc/CCLayerTreeHostClient.h:
24925        (WebCore):
24926        (CCLayerTreeHostClient):
24927        * platform/graphics/chromium/cc/CCProxy.h:
24928        (CCProxy):
24929        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
24930        (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
24931        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
24932        (CCSingleThreadProxy):
24933        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
24934        (WebCore::CCThreadProxy::CCThreadProxy):
24935        (WebCore::CCThreadProxy::start):
24936        (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
24937        (WebCore::CCThreadProxy::initializeImplOnImplThread):
24938        * platform/graphics/chromium/cc/CCThreadProxy.h:
24939        (CCThreadProxy):
24940
249412012-09-07  Adam Barth  <abarth@chromium.org>
24942
24943        [V8] Use a v8::Object rather than a v8::Context to represent the creationContext
24944        https://bugs.webkit.org/show_bug.cgi?id=96154
24945
24946        Reviewed by Eric Seidel.
24947
24948        This patch is a mechanical search-and-replace. Using a v8::Object
24949        rather than a v8::Context lets us delay the call to CreationContext()
24950        until we actually need to call it. This should not affect behavior.
24951
24952        * bindings/scripts/CodeGeneratorV8.pm:
24953        (GenerateHeader):
24954        (GenerateNormalAttrGetter):
24955        (GenerateNamedConstructorCallback):
24956        (GenerateImplementation):
24957        (GenerateToV8Converters):
24958        (GenerateFunctionCallString):
24959        (NativeToJSValue):
24960        * bindings/scripts/test/V8/V8Float64Array.cpp:
24961        (WebCore::Float64ArrayV8Internal::fooCallback):
24962        (WebCore::toV8):
24963        (WebCore::V8Float64Array::wrapSlow):
24964        * bindings/scripts/test/V8/V8Float64Array.h:
24965        (V8Float64Array):
24966        (WebCore::V8Float64Array::wrap):
24967        (WebCore):
24968        (WebCore::toV8):
24969        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
24970        (WebCore::V8TestActiveDOMObject::wrapSlow):
24971        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
24972        (V8TestActiveDOMObject):
24973        (WebCore::V8TestActiveDOMObject::wrap):
24974        (WebCore::toV8):
24975        * bindings/scripts/test/V8/V8TestCallback.cpp:
24976        (WebCore::V8TestCallback::callbackWithClass1Param):
24977        (WebCore::V8TestCallback::callbackWithClass2Param):
24978        (WebCore::V8TestCallback::callbackWithStringList):
24979        (WebCore::V8TestCallback::callbackRequiresThisToPass):
24980        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
24981        (WebCore::V8TestCustomNamedGetter::wrapSlow):
24982        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
24983        (V8TestCustomNamedGetter):
24984        (WebCore::V8TestCustomNamedGetter::wrap):
24985        (WebCore::toV8):
24986        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
24987        (WebCore::V8TestEventConstructor::wrapSlow):
24988        * bindings/scripts/test/V8/V8TestEventConstructor.h:
24989        (V8TestEventConstructor):
24990        (WebCore::V8TestEventConstructor::wrap):
24991        (WebCore::toV8):
24992        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
24993        (WebCore::TestEventTargetV8Internal::itemCallback):
24994        (WebCore::V8TestEventTarget::wrapSlow):
24995        * bindings/scripts/test/V8/V8TestEventTarget.h:
24996        (V8TestEventTarget):
24997        (WebCore::V8TestEventTarget::wrap):
24998        (WebCore::toV8):
24999        * bindings/scripts/test/V8/V8TestException.cpp:
25000        (WebCore::V8TestException::wrapSlow):
25001        * bindings/scripts/test/V8/V8TestException.h:
25002        (V8TestException):
25003        (WebCore::V8TestException::wrap):
25004        (WebCore::toV8):
25005        * bindings/scripts/test/V8/V8TestInterface.cpp:
25006        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
25007        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
25008        (WebCore::V8TestInterface::wrapSlow):
25009        * bindings/scripts/test/V8/V8TestInterface.h:
25010        (V8TestInterface):
25011        (WebCore::V8TestInterface::wrap):
25012        (WebCore::toV8):
25013        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
25014        (WebCore::V8TestMediaQueryListListener::wrapSlow):
25015        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
25016        (V8TestMediaQueryListListener):
25017        (WebCore::V8TestMediaQueryListListener::wrap):
25018        (WebCore::toV8):
25019        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
25020        (WebCore::V8TestNamedConstructorConstructorCallback):
25021        (WebCore::V8TestNamedConstructor::wrapSlow):
25022        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
25023        (V8TestNamedConstructor):
25024        (WebCore::V8TestNamedConstructor::wrap):
25025        (WebCore::toV8):
25026        * bindings/scripts/test/V8/V8TestNode.cpp:
25027        (WebCore::V8TestNode::wrapSlow):
25028        * bindings/scripts/test/V8/V8TestNode.h:
25029        (V8TestNode):
25030        (WebCore::V8TestNode::wrap):
25031        (WebCore::toV8):
25032        * bindings/scripts/test/V8/V8TestObj.cpp:
25033        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
25034        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
25035        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
25036        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
25037        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
25038        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
25039        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
25040        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
25041        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
25042        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
25043        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
25044        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
25045        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
25046        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
25047        (WebCore::TestObjV8Internal::mutablePointAttrGetter):
25048        (WebCore::TestObjV8Internal::immutablePointAttrGetter):
25049        (WebCore::TestObjV8Internal::objMethodCallback):
25050        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
25051        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
25052        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
25053        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
25054        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
25055        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
25056        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
25057        (WebCore::TestObjV8Internal::mutablePointFunctionCallback):
25058        (WebCore::TestObjV8Internal::immutablePointFunctionCallback):
25059        (WebCore::TestObjV8Internal::strictFunctionCallback):
25060        (WebCore::V8TestObj::wrapSlow):
25061        * bindings/scripts/test/V8/V8TestObj.h:
25062        (V8TestObj):
25063        (WebCore::V8TestObj::wrap):
25064        (WebCore::toV8):
25065        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
25066        (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetter):
25067        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
25068        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
25069        (V8TestSerializedScriptValueInterface):
25070        (WebCore::V8TestSerializedScriptValueInterface::wrap):
25071        (WebCore::toV8):
25072        * bindings/v8/DOMTransaction.cpp:
25073        (WebCore::DOMTransaction::callFunction):
25074        * bindings/v8/IDBCustomBindings.cpp:
25075        (WebCore::V8IDBCursorWithValue::valueAccessorGetter):
25076        * bindings/v8/SerializedScriptValue.cpp:
25077        * bindings/v8/V8Binding.h:
25078        (WebCore::V8ValueTraits::arrayV8Value):
25079        * bindings/v8/V8Collection.h:
25080        (WebCore::getV8Object):
25081        (WebCore::getNamedPropertyOfCollection):
25082        (WebCore::collectionNamedPropertyGetter):
25083        (WebCore::getIndexedPropertyOfCollection):
25084        (WebCore::collectionIndexedPropertyGetter):
25085        * bindings/v8/V8DOMWindowShell.cpp:
25086        (WebCore::getter):
25087        * bindings/v8/V8DOMWrapper.cpp:
25088        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
25089        * bindings/v8/V8DOMWrapper.h:
25090        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
25091        (V8DOMWrapper):
25092        * bindings/v8/V8ThrowException.cpp:
25093        (WebCore):
25094        * bindings/v8/custom/V8BlobCustom.cpp:
25095        (WebCore::toV8):
25096        (WebCore::V8Blob::constructorCallback):
25097        * bindings/v8/custom/V8CSSRuleCustom.cpp:
25098        (WebCore::toV8):
25099        * bindings/v8/custom/V8CSSValueCustom.cpp:
25100        (WebCore::toV8):
25101        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
25102        (WebCore::toV8Object):
25103        (WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorGetter):
25104        (WebCore::V8CanvasRenderingContext2D::fillStyleAccessorGetter):
25105        * bindings/v8/custom/V8ConsoleCustom.cpp:
25106        (WebCore::V8Console::memoryAccessorGetter):
25107        * bindings/v8/custom/V8DOMWindowCustom.cpp:
25108        (WebCore::V8DOMWindow::openCallback):
25109        (WebCore::V8DOMWindow::indexedPropertyGetter):
25110        (WebCore::V8DOMWindow::namedPropertyGetter):
25111        (WebCore::toV8):
25112        * bindings/v8/custom/V8DataViewCustom.cpp:
25113        (WebCore::toV8):
25114        * bindings/v8/custom/V8DocumentCustom.cpp:
25115        (WebCore::V8Document::evaluateCallback):
25116        (WebCore::V8Document::getCSSCanvasContextCallback):
25117        (WebCore::toV8):
25118        (WebCore::V8Document::createTouchListCallback):
25119        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
25120        (WebCore::V8Document::locationAccessorGetter):
25121        * bindings/v8/custom/V8EntryCustom.cpp:
25122        (WebCore::toV8):
25123        * bindings/v8/custom/V8EntrySyncCustom.cpp:
25124        (WebCore::toV8):
25125        * bindings/v8/custom/V8EventCustom.cpp:
25126        (WebCore::V8Event::dataTransferAccessorGetter):
25127        (WebCore::V8Event::clipboardDataAccessorGetter):
25128        (WebCore::toV8):
25129        * bindings/v8/custom/V8FileReaderCustom.cpp:
25130        (WebCore::V8FileReader::resultAccessorGetter):
25131        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
25132        (WebCore::getNamedItems):
25133        (WebCore::getItem):
25134        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
25135        (WebCore::V8HTMLAllCollection::itemCallback):
25136        (WebCore::V8HTMLAllCollection::namedItemCallback):
25137        (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
25138        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
25139        (WebCore::V8HTMLCanvasElement::getContextCallback):
25140        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
25141        (WebCore::getNamedItems):
25142        (WebCore::V8HTMLCollection::namedPropertyGetter):
25143        (WebCore::V8HTMLCollection::namedItemCallback):
25144        (WebCore::toV8):
25145        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
25146        (WebCore::V8HTMLDocument::getNamedProperty):
25147        (WebCore::V8HTMLDocument::allAccessorGetter):
25148        (WebCore::toV8):
25149        * bindings/v8/custom/V8HTMLElementCustom.cpp:
25150        (WebCore::toV8):
25151        (WebCore::V8HTMLElement::itemValueAccessorGetter):
25152        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
25153        (WebCore::V8HTMLFormElement::indexedPropertyGetter):
25154        (WebCore::V8HTMLFormElement::namedPropertyGetter):
25155        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
25156        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
25157        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
25158        (WebCore::v8HTMLImageElementConstructorCallback):
25159        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
25160        (WebCore::V8HTMLLinkElement::sizesAccessorGetter):
25161        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
25162        (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
25163        * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
25164        (WebCore::V8HTMLOutputElement::htmlForAccessorGetter):
25165        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
25166        (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
25167        * bindings/v8/custom/V8IDBAnyCustom.cpp:
25168        (WebCore::toV8):
25169        * bindings/v8/custom/V8IDBKeyCustom.cpp:
25170        (WebCore::toV8):
25171        * bindings/v8/custom/V8ImageDataCustom.cpp:
25172        (WebCore::toV8):
25173        * bindings/v8/custom/V8LocationCustom.cpp:
25174        (WebCore::toV8):
25175        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
25176        (WebCore::V8MessageChannel::constructorCallback):
25177        * bindings/v8/custom/V8MessageEventCustom.cpp:
25178        (WebCore::V8MessageEvent::dataAccessorGetter):
25179        (WebCore::V8MessageEvent::portsAccessorGetter):
25180        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
25181        (WebCore::toV8):
25182        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
25183        (WebCore::V8NamedNodeMap::indexedPropertyGetter):
25184        (WebCore::V8NamedNodeMap::namedPropertyGetter):
25185        * bindings/v8/custom/V8NodeCustom.cpp:
25186        (WebCore::toV8Slow):
25187        * bindings/v8/custom/V8NodeListCustom.cpp:
25188        (WebCore::V8NodeList::namedPropertyGetter):
25189        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
25190        (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
25191        (WebCore::V8NotificationCenter::createNotificationCallback):
25192        * bindings/v8/custom/V8PerformanceCustom.cpp:
25193        (WebCore::V8Performance::memoryAccessorGetter):
25194        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
25195        (WebCore::toV8):
25196        * bindings/v8/custom/V8PopStateEventCustom.cpp:
25197        (WebCore::V8PopStateEvent::stateAccessorGetter):
25198        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
25199        (WebCore::V8SQLTransactionSync::executeSqlCallback):
25200        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
25201        (WebCore::toV8):
25202        * bindings/v8/custom/V8SVGElementCustom.cpp:
25203        (WebCore::toV8):
25204        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
25205        (WebCore::toV8):
25206        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
25207        (WebCore::toV8):
25208        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
25209        (WebCore::toV8):
25210        * bindings/v8/custom/V8StyleSheetCustom.cpp:
25211        (WebCore::toV8):
25212        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
25213        (WebCore::V8StyleSheetList::namedPropertyGetter):
25214        * bindings/v8/custom/V8TrackEventCustom.cpp:
25215        (WebCore::V8TrackEvent::trackAccessorGetter):
25216        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
25217        (WebCore::toV8Object):
25218        (WebCore::getObjectParameter):
25219        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
25220        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
25221        (WebCore::V8WebGLRenderingContext::getParameterCallback):
25222        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
25223        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
25224        (WebCore::V8WebGLRenderingContext::getUniformCallback):
25225        * bindings/v8/custom/V8WorkerContextCustom.cpp:
25226        (WebCore::toV8):
25227        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
25228        (WebCore::V8XMLHttpRequest::responseAccessorGetter):
25229        * dom/make_names.pl:
25230        (printWrapperFunctions):
25231        (printWrapperFactoryCppFile):
25232        (printWrapperFactoryHeaderFile):
25233
252342012-09-07  John Bauman  <jbauman@chromium.org>
25235
25236        Check objects for null when recreating context
25237        https://bugs.webkit.org/show_bug.cgi?id=95926
25238
25239        Reviewed by Dean Jackson.
25240
25241        Upon navigation the FrameViwe and other objects may go null, so detect
25242        that and return rather than try to dereference them.
25243
25244        * html/canvas/WebGLRenderingContext.cpp:
25245        (WebCore):
25246        (WebCore::WebGLRenderingContext::maybeRestoreContext):
25247
252482012-09-07  Simon Fraser  <simon.fraser@apple.com>
25249
25250        box-shadow causes overlay scrollbars to be in the wrong position when element is composited
25251        https://bugs.webkit.org/show_bug.cgi?id=85647
25252
25253        Reviewed by James Robinson.
25254
25255        The code that positioned the GraphicsLayers for scrollbars failed to take
25256        into account any offset between the origin of the compositing layer,
25257        and the renderer. This caused scrollbar layers to be misplaced or hidden
25258        on layers with, for example, box-shadows.
25259        
25260        Also moved the code that positions the scrollbar layers into RendderLayerBacking,
25261        since this is where all the rest of the GraphicsLayer-positioning code lives.
25262        
25263        Renamed an "offsetFromLayer" param to "offsetFromRoot" which is more accurate.
25264
25265        Manual test, since overlay scrollbars are not enabled in DRT/WTR:
25266            ManualTests/scrollbars/scrollbars-in-composited-layers.html
25267
25268        * rendering/RenderLayer.cpp:
25269        (WebCore::RenderLayer::positionOverflowControls):
25270        * rendering/RenderLayerBacking.cpp:
25271        (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
25272        * rendering/RenderLayerBacking.h:
25273        (RenderLayerBacking):
25274
252752012-09-07  David Reveman  <reveman@chromium.org>
25276
25277        [Chromium] Multiple commits without invalidation allowed per redraw.
25278        https://bugs.webkit.org/show_bug.cgi?id=95661
25279
25280        Reviewed by James Robinson.
25281
25282        Always enter COMMIT_STATE_WAITING_FOR_FIRST_DRAW after commit. This
25283        ensures we draw before beginning a new frame.
25284
25285        Unit tests: CCLayerTreeHostTestContinuousCommit.runMultiThread
25286                    CCLayerTreeHostTestContinuousInvalidate.runMultiThread
25287                    CCLayerTreeHostTestContinuousAnimate.runMultiThread
25288
25289        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
25290        (WebCore::CCSchedulerStateMachine::updateState):
25291
252922012-09-07  Tony Chang  <tony@chromium.org>
25293
25294        Add OVERRIDE to computeLogical{Width,Height} overrides
25295        https://bugs.webkit.org/show_bug.cgi?id=96153
25296
25297        Reviewed by Ojan Vafai.
25298
25299        I plan on renaming these functions to updateLogical{Width,Height} and
25300        I want to be extra sure that I don't mess up.
25301
25302        No new tests, this is just a refactoring.
25303
25304        * rendering/RenderFlowThread.h: Also mark the functions virtual!
25305        * rendering/RenderListBox.h:
25306        (RenderListBox):
25307        * rendering/RenderMeter.h:
25308        (RenderMeter):
25309        * rendering/RenderTable.h:
25310        (RenderTable):
25311        * rendering/RenderTableCell.h:
25312        (RenderTableCell):
25313        * rendering/RenderTextControl.h:
25314        (RenderTextControl):
25315        * rendering/svg/RenderSVGForeignObject.h:
25316        (RenderSVGForeignObject):
25317
253182012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
25319
25320        AX: WebCore accessibility roles should be cross-platform
25321        https://bugs.webkit.org/show_bug.cgi?id=94870
25322
25323        Reviewed by Chris Fleizach.
25324
25325        Make 5 accessibility roles cross-platform rather than GTK-only.
25326
25327        Instead of mapping the HR tag to SplitterRole (which is an interactive
25328        splitter control on Mac), create a new role HorizontalRuleRole.
25329
25330        Map all of the new roles to AXGroup on Mac, which matches the existing
25331        behavior. Add a new test for these roles on Chromium.
25332
25333        Test: platform/chromium/accessibility/chromium-only-roles.html
25334
25335        * accessibility/AccessibilityObject.cpp:
25336        (WebCore::AccessibilityObject::supportsARIAAttributes):
25337        * accessibility/AccessibilityObject.h:
25338        * accessibility/AccessibilityRenderObject.cpp:
25339        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
25340        * accessibility/gtk/AccessibilityObjectAtk.cpp:
25341        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
25342        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
25343        (atkRole):
25344        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
25345        (createAccessibilityRoleMap):
25346
253472012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
25348
25349        Fix build of GraphicsContext3DOpenGLCommon.cpp with MSVC
25350        https://bugs.webkit.org/show_bug.cgi?id=96120
25351
25352        Reviewed by Noam Rosenthal.
25353
25354        Variable stack arrays are a GCC extension. Replace their use with OwnArrayPtr, similar to
25355        other functions in the same file.
25356
25357        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
25358        (WebCore::GraphicsContext3D::getActiveAttrib):
25359
253602012-09-07  Emil A Eklund  <eae@chromium.org>
25361
25362        Prevent overflows in FractionalLayoutUnit
25363        https://bugs.webkit.org/show_bug.cgi?id=95883
25364
25365        Reviewed by Eric Seidel.
25366
25367        Avoid overflow in snapSizeToPixel by using the fraction of the
25368        location instead of the full value.
25369        
25370        Add safe versions of min/max, adjusted by half a pixel to allow
25371        round to allow rounding without overflowing.
25372        
25373        Avoid overflow when snapping a FractionalLayoutRect by using the
25374        safe versions of min/max in infiniteRect.
25375        
25376        Avoid overflow when converting from a Length to a LayoutUnit by
25377        limiting the value to FractionalLayoutUnit min/max. This matches
25378        the behavior of the non-subpixel code path where the values are
25379        similarly limited.
25380
25381        Test: fast/sub-pixel/large-sizes.html
25382
25383        * css/CSSPrimitiveValue.cpp:
25384        (WebCore::CSSPrimitiveValue::computeLength):
25385        Limit to FractionalLayoutUnit min/max.
25386        
25387        * platform/FractionalLayoutUnit.h:
25388        (FractionalLayoutUnit):
25389        (WebCore::FractionalLayoutUnit::nearlyMax):
25390        (WebCore::FractionalLayoutUnit::nearlyMin):
25391        Reduce max/increase min by 1/2 to allow round to operate
25392        without overflowing.
25393
25394        (WebCore::snapSizeToPixel):
25395        * platform/graphics/FractionalLayoutRect.h:
25396        (WebCore::FractionalLayoutRect::infiniteRect):
25397        Use nearlyMin/nearlyMax.
25398        
25399        (WebCore::pixelSnappedIntRect):
25400        Change pixelSnappedIntRect to use snapSizeToPixel.
25401
254022012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
25403
25404        Unreviewed, rolling out r127920 and r127926.
25405        http://trac.webkit.org/changeset/127920
25406        http://trac.webkit.org/changeset/127926
25407        https://bugs.webkit.org/show_bug.cgi?id=96152
25408
25409        billions and billions of assertion failures on mac debug
25410        builds (Requested by thorton on #webkit).
25411
25412        * WebCore.exp.in:
25413        * css/CSSFontFaceSource.cpp:
25414        (WebCore::CSSFontFaceSource::getFontData):
25415        * css/CSSSegmentedFontFace.cpp:
25416        (WebCore::CSSSegmentedFontFace::getFontData):
25417        * dom/Document.cpp:
25418        (WebCore::Document::~Document):
25419        (WebCore::Document::registerCustomFont):
25420        (WebCore):
25421        (WebCore::Document::deleteCustomFonts):
25422        (WebCore::Document::reportMemoryUsage):
25423        * dom/Document.h:
25424        (WebCore):
25425        (Document):
25426        * platform/graphics/FontData.h:
25427        * platform/graphics/FontFallbackList.cpp:
25428        (WebCore::FontFallbackList::releaseFontData):
25429        (WebCore::FontFallbackList::fontDataAt):
25430        (WebCore::FontFallbackList::setPlatformFont):
25431        * platform/graphics/FontFallbackList.h:
25432        (FontFallbackList):
25433        (WebCore::FontFallbackList::setGlyphPageZero):
25434        (WebCore::FontFallbackList::setGlyphPages):
25435        * platform/graphics/GlyphPageTreeNode.cpp:
25436        (WebCore::GlyphPageTreeNode::pruneFontData):
25437
254382012-09-07  Arvid Nilsson  <anilsson@rim.com>
25439
25440        [CSS Shaders] WebKitCSSMixFunctionValue.h needs forward declaration of MemoryObjectInfo
25441        https://bugs.webkit.org/show_bug.cgi?id=96150
25442
25443        Reviewed by George Staikos.
25444
25445        Otherwise files that include it may fail to compile.
25446
25447        No new tests, because this patch implements no new functionality.
25448
25449        * css/WebKitCSSMixFunctionValue.h:
25450        (WebCore):
25451
254522012-09-07  Stephen Chenney  <schenney@chromium.org>
25453
25454        Mac build fix.
25455        https://bugs.webkit.org/show_bug.cgi?id=93640
25456
25457        Reviewed by Abhishek Arya.
25458
25459        The original patch for this bug broke the mac builds.
25460
25461        * WebCore.exp.in: Adding const marker
25462
254632012-09-07  Robert Kroeger  <rjkroege@chromium.org>
25464
25465        [chromium] Add touchscreen specific fling curve parametrization
25466        https://bugs.webkit.org/show_bug.cgi?id=95997
25467
25468        Reviewed by James Robinson.
25469
25470        Added a new set of fling curve parameters with a good feel for touchscreen
25471        initiated flings. Renamed TouchpadFlingPlatformGestureCurve to
25472        TouchFlingPlatformGestureCurve to better reflect that the class
25473        can serve for both touchscreen and touchpad flings when appropriately
25474        parametrized. Updated build files as necessary for the rename.
25475
25476        No new tests - existing tests apply.
25477
25478        * CMakeLists.txt:
25479        * GNUmakefile.list.am:
25480        * WebCore.gypi:
25481        * platform/ScrollAnimatorNone.cpp:
25482        (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
25483        * platform/TouchFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp.
25484        (WebCore):
25485        (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
25486        (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
25487        Added with touchscreen parameters.
25488        (WebCore::TouchFlingPlatformGestureCurve::create):
25489        (WebCore::position):
25490        (WebCore::velocity):
25491        (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
25492        (WebCore::TouchFlingPlatformGestureCurve::~TouchFlingPlatformGestureCurve):
25493        (WebCore::TouchFlingPlatformGestureCurve::debugName):
25494        (WebCore::TouchFlingPlatformGestureCurve::apply):
25495        * platform/TouchFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h.
25496        (WebCore):
25497        (TouchFlingPlatformGestureCurve):
25498        * platform/chromium/support/PlatformGestureCurveFactory.cpp: invokes
25499        createForTouchPad or createForTouchScreen as appropriate.
25500        (WebKit::PlatformGestureCurveFactory::createCurve):
25501
255022012-09-07  Adam Barth  <abarth@chromium.org>
25503
25504        Enter the creationContext before creating DOM wrappers
25505        https://bugs.webkit.org/show_bug.cgi?id=96044
25506
25507        Reviewed by Eric Seidel.
25508
25509        Now that we have the creationContext available when instantiating DOM
25510        wrappers, we should use it! After this patch, we enter the creation
25511        context so that the DOM wrapper is created in the right context (and
25512        therefore has the right prototype chain).
25513
25514        This patch would have been tested by
25515        fast/dom/prototype-inheritance.html, but that test was removed because
25516        it was too much work to maintain. I'll post what the diff would have
25517        been to the results for that test as an attachment to this bug.
25518
25519        Note: After this patch there are a number of cleanup patches to write,
25520        but I'll do those separately.
25521
25522        * bindings/js/JSGeolocationCustom.cpp:
25523        (WebCore::JSGeolocation::getCurrentPosition):
25524        (WebCore::JSGeolocation::watchPosition):
25525          - This patch also includes a minor bug fix to the JSC implementations
25526            of Geolocation and Notifications. Previously, JSC was using the
25527            current lexical context for the callback object, which makes very
25528            little sense as it neither cooresponds to the Geolocation (or
25529            Notification) object or the functions being used for the callback.
25530
25531            To be consistent with how we do callbacks elsewhere in WebKit, we
25532            should use the context that corresponds to the Geolocation (or
25533            Notification) object. This change happened automatically for V8
25534            when this patch fixed the Geolocation (and Notifications) wrapper
25535            to use the right context, but for JSC we need to change these lines
25536            of code explicitly.
25537        * bindings/scripts/CodeGeneratorV8.pm:
25538        (GenerateToV8Converters):
25539
255402012-09-07  Leo Yang  <leoyang@rim.com>
25541
25542        Appcache fallback URL match should use the longest candidate
25543        https://bugs.webkit.org/show_bug.cgi?id=96126
25544
25545        Reviewed by Alexey Proskuryakov.
25546
25547        Test: http/tests/appcache/multi-fallback.html
25548
25549        * loader/appcache/ApplicationCache.cpp:
25550        (WebCore::fallbackURLLongerThan):
25551        (WebCore::ApplicationCache::setFallbackURLs):
25552
255532012-09-07  Stephen Chenney  <schenney@chromium.org>
25554
25555        Font data is purged while fonts are still using it
25556        https://bugs.webkit.org/show_bug.cgi?id=93640
25557
25558        Reviewed by Eric Seidel.
25559
25560        Move the handling of custom font pruning from Document to FontFallbackList.
25561        The previous inplementation allowed fonts to be removed before all their
25562        clients were done. This change moves handling of custom font purging to the
25563        FontFallbackList class, which is the shared object that is only removed
25564        when all clients of a font are done with it. This fixes a crash in Angry
25565        Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
25566
25567        The specific element that causes problems is:
25568        <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
25569          src="http://chrome.angrybirds.com/ingame_graphic.html"
25570          onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
25571          style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
25572          position: absolute; border: 0px; width: 312px; height: 320px; z-index:
25573          300; overflow: hidden; visibility: visible;"></iframe>
25574        The source document uses the same font as the embedding document.
25575
25576        Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
25577               fast/frames/seamless/seamless-nested-crash.html
25578
25579        * css/CSSFontFaceSource.cpp:
25580        (WebCore::CSSFontFaceSource::getFontData): Remove code to register the
25581        font with the document.
25582        * css/CSSSegmentedFontFace.cpp:
25583        (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register
25584        the font with the document.
25585        * dom/Document.cpp:
25586        (WebCore::Document::~Document): Remove code that records and purges
25587        custom fonts.
25588        (WebCore):
25589        (WebCore::Document::reportMemoryUsage): Remove reference to removed
25590        object.
25591        * dom/Document.h:
25592        (Document): Remove method declarations for custom font handling.
25593        * platform/graphics/FontData.h: Add RefCounted to FontData. Previously, FontData
25594        for custom fonts was owned by a Vector<OwnPtr<FontData>> in Document. Now it
25595        is owned by FontFallbackList, and ref counting is required. A future patch will
25596        add RefPtr code for all FontData use cases.
25597        * platform/graphics/FontFallbackList.cpp:
25598        (WebCore): Add global custom font data cache, which owns the FontData pointers
25599        used as keys.
25600        (WebCore::FontFallbackList::appendFontData): Helper method increments
25601        the ref count on custom FontData.
25602        (WebCore::FontFallbackList::releaseFontData): Helper method decrements
25603        the ref count on custom FontData.
25604        (WebCore::FontFallbackList::fontDataAt): Add calls to register the
25605        FontFallbackList as a client of custom fonts.
25606        * platform/graphics/FontFallbackList.h:
25607        (WebCore::FontFallbackList::setGlyphPageZero): Moved this declaration.
25608        (WebCore::FontFallbackList::setGlyphPages): Moved this declaration.
25609        (FontFallbackList):
25610        * platform/graphics/GlyphPageTreeNode.cpp:
25611        (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
25612
256132012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
25614
25615        Unreviewed, rolling out r127911.
25616        http://trac.webkit.org/changeset/127911
25617        https://bugs.webkit.org/show_bug.cgi?id=96146
25618
25619        Patch breaks build with clang (Requested by rbuis on #webkit).
25620
25621        * GNUmakefile.list.am:
25622        * Target.pri:
25623        * WebCore.gypi:
25624        * WebCore.vcproj/WebCore.vcproj:
25625        * WebCore.xcodeproj/project.pbxproj:
25626        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
25627        (WebCore::CustomFilterGlobalContext::getValidatedProgram):
25628        * platform/graphics/filters/CustomFilterMesh.cpp:
25629        (WebCore):
25630        (MeshGenerator):
25631        (WebCore::MeshGenerator::MeshGenerator):
25632        (WebCore::MeshGenerator::vertices):
25633        (WebCore::MeshGenerator::indices):
25634        (WebCore::MeshGenerator::points):
25635        (WebCore::MeshGenerator::pointsCount):
25636        (WebCore::MeshGenerator::tiles):
25637        (WebCore::MeshGenerator::tilesCount):
25638        (WebCore::MeshGenerator::indicesCount):
25639        (WebCore::MeshGenerator::floatsPerVertex):
25640        (WebCore::MeshGenerator::verticesCount):
25641        (WebCore::MeshGenerator::addTile):
25642        (WebCore::MeshGenerator::addAttachedMeshIndex):
25643        (WebCore::MeshGenerator::generateAttachedMesh):
25644        (WebCore::MeshGenerator::addDetachedMeshVertexAndIndex):
25645        (WebCore::MeshGenerator::generateDetachedMesh):
25646        (WebCore::MeshGenerator::addPositionAttribute):
25647        (WebCore::MeshGenerator::addTexCoordAttribute):
25648        (WebCore::MeshGenerator::addMeshCoordAttribute):
25649        (WebCore::MeshGenerator::addTriangleCoordAttribute):
25650        (WebCore::MeshGenerator::addAttachedMeshVertexAttributes):
25651        (WebCore::MeshGenerator::addDetachedMeshVertexAttributes):
25652        (WebCore::MeshGenerator::dumpBuffers):
25653        (WebCore::CustomFilterMesh::CustomFilterMesh):
25654        * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
25655        * platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
25656        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25657        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25658        (WebCore::CustomFilterValidatedProgram::compiledProgram):
25659        (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
25660        * platform/graphics/filters/CustomFilterValidatedProgram.h:
25661        (CustomFilterValidatedProgram):
25662        * platform/graphics/filters/blackberry/CustomFilterValidatedProgramBlackBerry.cpp: Removed.
25663
256642012-09-07  Ojan Vafai  <ojan@chromium.org>
25665
25666        Fix RenderBox::availableHeight to subtract scrollbars in the right places
25667        https://bugs.webkit.org/show_bug.cgi?id=96031
25668
25669        Reviewed by Tony Chang.
25670
25671        This matches Firefox 15 and IE9 rendering for the two new tests.
25672
25673        Tests: fast/block/positioning/percent-top-left-on-relative-position.html
25674               fast/css/nested-percent-height-on-replaced.html
25675
25676        * rendering/RenderBox.cpp:
25677        (WebCore::RenderBox::computePercentageLogicalHeight):
25678        Subtract scrollbars when recurring on percentage heights.
25679        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
25680        This is the wrong place to subtract scrollbars. availableLogicalHeight
25681        should return a value that doesn't include scrollbars.
25682        (WebCore::RenderBox::availableLogicalHeightUsing):
25683        Subtract scrollbars from specified heights. Also, consolidate the code to
25684        use computeContentLogicalHeightUsing. This makes percentage heights use
25685        the right containingBlock in quirks mode and makes viewport percentage heights work.
25686
256872012-09-07  Tony Chang  <tony@chromium.org>
25688
25689        Make RenderBox::computeLogicalWidthInRegion const
25690        https://bugs.webkit.org/show_bug.cgi?id=96129
25691
25692        Reviewed by Ojan Vafai.
25693
25694        Making computeLogicalWidthInRegion const allows us to get rid of the gross hack in
25695        RenderBox::renderBoxRegionInfo.
25696
25697        No new tests, this is covered by existing layout tests.
25698
25699        * rendering/RenderBox.cpp:
25700        (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax): Make const.
25701        (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats): Make const.
25702        (WebCore::RenderBox::computeLogicalWidth): Use a LogicalExtentComputedValues when calling computeLogicalWidthInRegion.
25703        (WebCore::RenderBox::computeLogicalWidthInRegion): Make const. Fill in a LogicalExtentComputedValues struct instead.
25704        (WebCore::RenderBox::computeLogicalWidthInRegionUsing): Make const.
25705        (WebCore::RenderBox::renderBoxRegionInfo): Remove hack and get region width values in a LogicalExtentComputedValues struct.
25706        * rendering/RenderBox.h:
25707        (RenderBox):
25708
257092012-09-07  Dana Jansens  <danakj@chromium.org>
25710
25711        [chromium] Remove bad assert in CCRenderPass::Id
25712        https://bugs.webkit.org/show_bug.cgi?id=96138
25713
25714        Reviewed by James Robinson.
25715
25716        The assert prevents HashMap from creating "deleted" and "empty" ids. We
25717        assert that RenderPasses have correct ids already, and don't need to
25718        assert inside the Id structure itself.
25719
25720        * platform/graphics/chromium/cc/CCRenderPass.h:
25721        (WebCore::CCRenderPass::Id::Id):
25722
257232012-09-07  Arvid Nilsson  <anilsson@rim.com>
25724
25725        [CSS Shaders] [BlackBerry] Refactor CustomFilterMesh and CustomFilter*Program
25726        https://bugs.webkit.org/show_bug.cgi?id=94725
25727
25728        Reviewed by Rob Buis.
25729
25730        Separate the MeshGenerator from the CustomFilterMesh into
25731        CustomFilterMeshGenerator.h/cpp. This allows the BlackBerry port to
25732        reuse the mesh generator in its accelerated compositing implementation.
25733
25734        Also add support for creating a "PlatformCompiledProgram" from a
25735        CustomFilterValidatedProgram, so the BlackBerry port can reuse the
25736        shader validation code in its accelerated compositing implementation.
25737
25738        It turns out the GraphicsContext3D is not needed for ANGLE to function,
25739        so this patch removes an ASSERT that required a context before
25740        validating the shaders using ANGLE. This allows the BlackBerry port to
25741        reuse the validation code without triggering the assert. In the future,
25742        the validation code could be moved to a separate class to make it more
25743        obvious that it isn't really related to GraphicsContext3D.
25744
25745        In general, this refactoring can be useful for any port that uses
25746        OpenGL to implement accelerated compositing.
25747
25748        Inspired by an original patch by Joshua Netterfield.
25749
25750        No new tests, because this patch implements no new functionality.
25751
25752        * GNUmakefile.list.am:
25753        * Target.pri:
25754        * WebCore.gypi:
25755        * WebCore.vcproj/WebCore.vcproj:
25756        * WebCore.xcodeproj/project.pbxproj:
25757        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
25758        (WebCore::CustomFilterGlobalContext::getValidatedProgram):
25759        * platform/graphics/filters/CustomFilterMesh.cpp:
25760        (WebCore::CustomFilterMesh::CustomFilterMesh):
25761        * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Added.
25762        (WebCore):
25763        (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator):
25764        (WebCore::CustomFilterMeshGenerator::addAttachedMeshIndex):
25765        (WebCore::CustomFilterMeshGenerator::generateAttachedMesh):
25766        (WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAndIndex):
25767        (WebCore::CustomFilterMeshGenerator::generateDetachedMesh):
25768        (WebCore::CustomFilterMeshGenerator::addPositionAttribute):
25769        (WebCore::CustomFilterMeshGenerator::addTexCoordAttribute):
25770        (WebCore::CustomFilterMeshGenerator::addMeshCoordAttribute):
25771        (WebCore::CustomFilterMeshGenerator::addTriangleCoordAttribute):
25772        (WebCore::CustomFilterMeshGenerator::addAttachedMeshVertexAttributes):
25773        (WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAttributes):
25774        (WebCore::CustomFilterMeshGenerator::dumpBuffers):
25775        * platform/graphics/filters/CustomFilterMeshGenerator.h: Added.
25776        (WebCore):
25777        (CustomFilterMeshGenerator):
25778        (WebCore::CustomFilterMeshGenerator::vertices):
25779        (WebCore::CustomFilterMeshGenerator::indices):
25780        (WebCore::CustomFilterMeshGenerator::points):
25781        (WebCore::CustomFilterMeshGenerator::pointsCount):
25782        (WebCore::CustomFilterMeshGenerator::tiles):
25783        (WebCore::CustomFilterMeshGenerator::tilesCount):
25784        (WebCore::CustomFilterMeshGenerator::indicesCount):
25785        (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
25786        (WebCore::CustomFilterMeshGenerator::verticesCount):
25787        (WebCore::CustomFilterMeshGenerator::addTile):
25788        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25789        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25790        (WebCore::CustomFilterValidatedProgram::compiledProgram):
25791        (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
25792        (WebCore):
25793        (WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
25794        (WebCore::CustomFilterValidatedProgram::platformDestroy):
25795        * platform/graphics/filters/CustomFilterValidatedProgram.h:
25796        (WebCore):
25797        (CustomFilterValidatedProgram):
25798        * platform/graphics/filters/blackberry/CustomFilterValidatedProgramBlackBerry.cpp: Added.
25799        (WebCore):
25800        (WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
25801        (WebCore::CustomFilterValidatedProgram::platformDestroy):
25802
258032012-09-07  Dana Jansens  <danakj@chromium.org>
25804
25805        [chromium] Make RenderPass ids hold both generating layer id and an index
25806        https://bugs.webkit.org/show_bug.cgi?id=95500
25807
25808        Reviewed by Adrienne Walker.
25809
25810        This change allows us to avoid complex renderPassId mappings between
25811        compositors for ubercomp. The ubercomp layer needs to add a number
25812        of RenderPasses to the frame, and these must not conflict with other
25813        RenderPasses in the frame. By using its layer id along with an extra
25814        value it determines, the layer can create a unique id without needing
25815        access to any global state or id generator.
25816
25817        Covered by existing tests.
25818
25819        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
25820        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
25821        (WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
25822        * platform/graphics/chromium/cc/CCDirectRenderer.h:
25823        (CCDirectRenderer):
25824        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
25825        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
25826        (WebCore::findRenderPassById):
25827        (WebCore::removeRenderPassesRecursive):
25828        * platform/graphics/chromium/cc/CCRenderPass.cpp:
25829        (WebCore::CCRenderPass::create):
25830        (WebCore::CCRenderPass::CCRenderPass):
25831        * platform/graphics/chromium/cc/CCRenderPass.h:
25832        (Id):
25833        (WebCore::CCRenderPass::Id::Id):
25834        (WebCore::CCRenderPass::Id::operator==):
25835        (WebCore::CCRenderPass::Id::operator!=):
25836        (WebCore::CCRenderPass::Id::operator<):
25837        (CCRenderPass):
25838        (WebCore::CCRenderPass::id):
25839        (WebCore):
25840        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
25841        (WebCore::CCRenderPassDrawQuad::create):
25842        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
25843        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
25844        (CCRenderPassDrawQuad):
25845        (WebCore::CCRenderPassDrawQuad::renderPassId):
25846        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
25847        (WebCore::CCRenderSurface::renderPassId):
25848        (WebCore):
25849        (WebCore::CCRenderSurface::appendRenderPasses):
25850        (WebCore::CCRenderSurface::appendQuads):
25851        * platform/graphics/chromium/cc/CCRenderSurface.h:
25852        (WebCore):
25853        (CCRenderSurface):
25854        * platform/graphics/chromium/cc/CCRenderer.h:
25855        (WebCore::CCRenderer::haveCachedResourcesForRenderPassId):
25856
258572012-09-07  Tommy Widenflycht  <tommyw@google.com>
25858
25859        MediaStream API: add RTCPeerConnection::createAnswer
25860        https://bugs.webkit.org/show_bug.cgi?id=96092
25861
25862        Reviewed by Adam Barth.
25863
25864        Test: fast/mediastream/RTCPeerConnection-createAnswer.html
25865
25866        * Modules/mediastream/RTCPeerConnection.cpp:
25867        (WebCore::RTCPeerConnection::createAnswer):
25868        (WebCore):
25869        * Modules/mediastream/RTCPeerConnection.h:
25870        (RTCPeerConnection):
25871        * Modules/mediastream/RTCPeerConnection.idl:
25872        * platform/mediastream/RTCPeerConnectionHandler.cpp:
25873        (RTCPeerConnectionHandlerDummy):
25874        (WebCore::RTCPeerConnectionHandlerDummy::createAnswer):
25875        (WebCore):
25876        * platform/mediastream/RTCPeerConnectionHandler.h:
25877        (RTCPeerConnectionHandler):
25878        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
25879        (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
25880        (WebCore):
25881        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
25882        (RTCPeerConnectionHandlerChromium):
25883
258842012-09-06  Vsevolod Vlasov  <vsevik@chromium.org>
25885
25886        Web Inspector: [REGRESSION] Content is not available for dynamically loaded script sometimes.
25887        https://bugs.webkit.org/show_bug.cgi?id=95954
25888
25889        Reviewed by Yury Semikhatsky.
25890
25891        Resource now loads content from request when it is available.
25892        Content was loaded from PageAgent before where it might be not available if the resource was already GCed.
25893
25894        Test: http/tests/inspector/resource-tree/resource-request-content-after-loading-and-clearing-cache.html
25895
25896        * inspector/front-end/Resource.js:
25897        (WebInspector.Resource.prototype._innerRequestContent.contentLoaded):
25898        (WebInspector.Resource.prototype._innerRequestContent.resourceContentLoaded):
25899        (WebInspector.Resource.prototype._innerRequestContent):
25900
259012012-09-07  Adam Barth  <abarth@webkit.org>
25902
25903        HTMLTokenizer should use the latest EfficientStrings hotness
25904        https://bugs.webkit.org/show_bug.cgi?id=95276
25905
25906        Reviewed by Benjamin Poulain.
25907
25908        Using ASCIILiteral avoids memcpying the string into the heap and
25909        therefore uses less total memory.
25910
25911        * html/parser/HTMLTokenizer.cpp:
25912        (WebCore::HTMLTokenizer::nextToken):
25913
259142012-09-07  James Robinson  <jamesr@chromium.org>
25915
25916        [chromium] Remove dead CCActiveGestureAnimation code and related classes
25917        https://bugs.webkit.org/show_bug.cgi?id=96075
25918
25919        Reviewed by Adrienne Walker.
25920
25921        The CCGestureCurve / CCActiveGestureAnimation code isn't used and never has been used. Gesture curves are
25922        evaluated by the CCInputHandlerClient (WebCompositorInputHandlerImpl), CC itself logically doesn't know anything
25923        about gestures.
25924
25925        * WebCore.gypi:
25926        * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp: Removed.
25927        * platform/graphics/chromium/cc/CCActiveGestureAnimation.h: Removed.
25928        * platform/graphics/chromium/cc/CCGestureCurve.h: Removed.
25929        * platform/graphics/chromium/cc/CCInputHandler.h:
25930        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
25931        (WebCore::CCLayerTreeHostImpl::animate):
25932        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
25933        (CCLayerTreeHostImpl):
25934
259352012-09-07  Martin Robinson  <mrobinson@igalia.com>
25936
25937        [GTK] Move user agent helpers to WebCore
25938        https://bugs.webkit.org/show_bug.cgi?id=95745
25939
25940        Reviewed by Carlos Garcia Campos.
25941
25942        Moved the user agent determination code from WebKit1 to WebCore so that it can
25943        be shared with WebKit2. Also add a method for creating the user agent given
25944        a non-default application name.
25945
25946        * GNUmakefile.list.am: Add new files to the list.
25947        * platform/gtk/UserAgentGtk.cpp: Added.
25948        * platform/gtk/UserAgentGtk.h.in: Added.
25949
259502012-09-07  Adam Barth  <abarth@webkit.org>
25951
25952        Update bindings results after https://bugs.webkit.org/show_bug.cgi?id=96039
25953
25954        * bindings/scripts/test/V8/V8Float64Array.cpp:
25955        (WebCore::Float64ArrayV8Internal::fooCallback):
25956        (WebCore::toV8):
25957        (WebCore::V8Float64Array::wrapSlow):
25958        * bindings/scripts/test/V8/V8Float64Array.h:
25959        (V8Float64Array):
25960        (WebCore::V8Float64Array::wrap):
25961        (WebCore):
25962        (WebCore::toV8):
25963        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
25964        (WebCore::V8TestActiveDOMObject::wrapSlow):
25965        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
25966        (V8TestActiveDOMObject):
25967        (WebCore::V8TestActiveDOMObject::wrap):
25968        (WebCore::toV8):
25969        * bindings/scripts/test/V8/V8TestCallback.cpp:
25970        (WebCore::V8TestCallback::callbackWithClass1Param):
25971        (WebCore::V8TestCallback::callbackWithClass2Param):
25972        (WebCore::V8TestCallback::callbackWithStringList):
25973        (WebCore::V8TestCallback::callbackRequiresThisToPass):
25974        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
25975        (WebCore::V8TestCustomNamedGetter::wrapSlow):
25976        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
25977        (V8TestCustomNamedGetter):
25978        (WebCore::V8TestCustomNamedGetter::wrap):
25979        (WebCore::toV8):
25980        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
25981        (WebCore::V8TestEventConstructor::wrapSlow):
25982        * bindings/scripts/test/V8/V8TestEventConstructor.h:
25983        (V8TestEventConstructor):
25984        (WebCore::V8TestEventConstructor::wrap):
25985        (WebCore::toV8):
25986        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
25987        (WebCore::TestEventTargetV8Internal::itemCallback):
25988        (WebCore::V8TestEventTarget::wrapSlow):
25989        * bindings/scripts/test/V8/V8TestEventTarget.h:
25990        (V8TestEventTarget):
25991        (WebCore::V8TestEventTarget::wrap):
25992        (WebCore::toV8):
25993        * bindings/scripts/test/V8/V8TestException.cpp:
25994        (WebCore::V8TestException::wrapSlow):
25995        * bindings/scripts/test/V8/V8TestException.h:
25996        (V8TestException):
25997        (WebCore::V8TestException::wrap):
25998        (WebCore::toV8):
25999        * bindings/scripts/test/V8/V8TestInterface.cpp:
26000        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
26001        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
26002        (WebCore::V8TestInterface::wrapSlow):
26003        * bindings/scripts/test/V8/V8TestInterface.h:
26004        (V8TestInterface):
26005        (WebCore::V8TestInterface::wrap):
26006        (WebCore::toV8):
26007        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
26008        (WebCore::V8TestMediaQueryListListener::wrapSlow):
26009        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
26010        (V8TestMediaQueryListListener):
26011        (WebCore::V8TestMediaQueryListListener::wrap):
26012        (WebCore::toV8):
26013        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
26014        (WebCore::V8TestNamedConstructorConstructorCallback):
26015        (WebCore::V8TestNamedConstructor::wrapSlow):
26016        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
26017        (V8TestNamedConstructor):
26018        (WebCore::V8TestNamedConstructor::wrap):
26019        (WebCore::toV8):
26020        * bindings/scripts/test/V8/V8TestNode.cpp:
26021        (WebCore::V8TestNode::wrapSlow):
26022        * bindings/scripts/test/V8/V8TestNode.h:
26023        (V8TestNode):
26024        (WebCore::V8TestNode::wrap):
26025        (WebCore::toV8):
26026        * bindings/scripts/test/V8/V8TestObj.cpp:
26027        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
26028        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
26029        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
26030        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
26031        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
26032        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
26033        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
26034        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
26035        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
26036        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
26037        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
26038        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
26039        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
26040        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
26041        (WebCore::TestObjV8Internal::mutablePointAttrGetter):
26042        (WebCore::TestObjV8Internal::immutablePointAttrGetter):
26043        (WebCore::TestObjV8Internal::objMethodCallback):
26044        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
26045        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
26046        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
26047        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
26048        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
26049        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
26050        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
26051        (WebCore::TestObjV8Internal::mutablePointFunctionCallback):
26052        (WebCore::TestObjV8Internal::immutablePointFunctionCallback):
26053        (WebCore::TestObjV8Internal::strictFunctionCallback):
26054        (WebCore::V8TestObj::wrapSlow):
26055        * bindings/scripts/test/V8/V8TestObj.h:
26056        (V8TestObj):
26057        (WebCore::V8TestObj::wrap):
26058        (WebCore::toV8):
26059        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
26060        (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetter):
26061        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
26062        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
26063        (V8TestSerializedScriptValueInterface):
26064        (WebCore::V8TestSerializedScriptValueInterface::wrap):
26065        (WebCore::toV8):
26066
260672012-09-07  Lianghui Chen  <liachen@rim.com>
26068
26069        [BlackBerry] when one of multiple tabs uses authentication, user can get the auth dialog while the other tab has focus.
26070        https://bugs.webkit.org/show_bug.cgi?id=95488
26071        PR: 186597.
26072
26073        Internally reviewed by Joe Mason.
26074        Reviewed by Yong Li.
26075
26076        The fix for this PR will come as 2 patches. This is the first patch which
26077        will make the authentication challenge asynchronous inside WebKit. The
26078        bext patch will add an AuthenticationChallengeManager that manages these
26079        authentication requests asynchronously.
26080
26081        This patch add AuthenticationChallengeClient interface to define asynchronous
26082        authentication challenge callback. And MediaPlayerPrivateBlackBerry and
26083        NetworkJob are changed to inherit from AuthenticationChallengeClient to
26084        support asynchronous authentication challenge.
26085
26086        Note: there is also an accompanying platform patch to make our PlatformPlayer
26087        to support asychronous authentication, see PR 186597 for details.
26088
26089        No new tests as this is platform specific change.
26090
26091        * platform/blackberry/AuthenticationChallengeManager.h: Added.
26092        (WebCore):
26093        (AuthenticationChallengeClient):
26094        * platform/blackberry/PageClientBlackBerry.h:
26095        (WebCore):
26096        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
26097        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
26098        (WebCore::MediaPlayerPrivate::notifyChallengeResult):
26099        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
26100        (MediaPlayerPrivate):
26101        * platform/network/blackberry/NetworkJob.cpp:
26102        (WebCore::NetworkJob::sendRequestWithCredentials):
26103        (WebCore::NetworkJob::notifyChallengeResult):
26104        (WebCore):
26105        * platform/network/blackberry/NetworkJob.h:
26106        (WebCore):
26107        (NetworkJob):
26108
261092012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
26110
26111        AX: ARIA spin button should support range value attributes
26112        https://bugs.webkit.org/show_bug.cgi?id=96076
26113
26114        Reviewed by Chris Fleizach.
26115
26116        Make an ARIA spin button support ARIA range attributes like
26117        aria-valuenow, aria-valuemin, etc. - just like slider, progressbar,
26118        and scrollbar.
26119
26120        Test: accessibility/spinbutton-value.html
26121
26122        * accessibility/AccessibilityObject.h:
26123        (WebCore::AccessibilityObject::isSpinButton):
26124        * accessibility/AccessibilityRenderObject.cpp:
26125        (WebCore::AccessibilityRenderObject::valueDescription):
26126        (WebCore):
26127        (WebCore::AccessibilityRenderObject::isAriaRange):
26128        (WebCore::AccessibilityRenderObject::valueForRange):
26129        (WebCore::AccessibilityRenderObject::maxValueForRange):
26130        (WebCore::AccessibilityRenderObject::minValueForRange):
26131        (WebCore::AccessibilityRenderObject::stringValue):
26132        (WebCore::AccessibilityRenderObject::title):
26133        (WebCore::AccessibilityRenderObject::isGenericFocusableElement):
26134        (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
26135        * accessibility/AccessibilityRenderObject.h:
26136        (AccessibilityRenderObject):
26137        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
26138        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
26139
261402012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
26141
26142        Unreviewed, rolling out r127820.
26143        http://trac.webkit.org/changeset/127820
26144        https://bugs.webkit.org/show_bug.cgi?id=96117
26145
26146        Introduces crashes in Chromium compositing tests (Requested by
26147        fsamuel on #webkit).
26148
26149        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
26150        (WebCore::CCLayerTreeHost::evictAllContentTextures):
26151        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
26152        (CCLayerTreeHost):
26153        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
26154        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
26155        (WebCore::CCPrioritizedTextureManager::allBackingTexturesWereDeleted):
26156        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
26157        (CCPrioritizedTextureManager):
26158        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
26159        (WebCore::CCSingleThreadProxy::commitAndComposite):
26160        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
26161        (WebCore::CCThreadProxy::beginFrame):
26162        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
26163
261642012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
26165
26166        [Qt] Add another all-in-one source
26167
26168        Rubber-stamped by Tor Arne Vestbø.
26169
26170        * Target.pri: We can safely add platform/text/TextAllInOne.cpp to ALL_IN_ONE_SOURCES for
26171        even smaller combined builds.
26172
261732012-09-07  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
26174
26175        Simplify hitTestResultAtPoint and nodesFromRect APIs
26176        https://bugs.webkit.org/show_bug.cgi?id=95720
26177
26178        Reviewed by Antonio Gomes.
26179
26180        The existing API was overloaded and could be simplified by passing all the bool arguments in 
26181        a HitTestRequest argument. This should also help clarify the call as the enum values explicitely
26182        state what they do.
26183
26184        * WebCore.exp.in:
26185        * WebCore.order:
26186        * dom/Document.cpp:
26187        (WebCore::Document::nodesFromRect):
26188        * dom/Document.h:
26189        (Document):
26190        * page/ContextMenuController.cpp:
26191        (WebCore::ContextMenuController::createContextMenu):
26192        * page/DragController.cpp:
26193        (WebCore::DragController::canProcessDrag):
26194        (WebCore::DragController::startDrag):
26195        * page/EventHandler.cpp:
26196        (WebCore::EventHandler::updateAutoscrollRenderer):
26197        (WebCore::EventHandler::hitTestResultAtPoint):
26198        (WebCore::EventHandler::handleMousePressEvent):
26199        (WebCore::EventHandler::handleGestureEvent):
26200        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
26201        (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
26202        (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
26203        (WebCore::EventHandler::handleTouchEvent):
26204        * page/EventHandler.h:
26205        (EventHandler):
26206        * page/FocusController.cpp:
26207        (WebCore::updateFocusCandidateIfNeeded):
26208        * page/Frame.cpp:
26209        (WebCore::Frame::visiblePositionForPoint):
26210        (WebCore::Frame::documentAtPoint):
26211        * page/TouchDisambiguation.cpp:
26212        (WebCore::findGoodTouchTargets):
26213        * rendering/HitTestRequest.h:
26214        (HitTestRequest):
26215        * testing/Internals.cpp:
26216        (WebCore::Internals::nodesFromRect):
26217
262182012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
26219
26220        Build of OpenGLShims.cpp against EGL/GLES2 platforms is broken
26221        https://bugs.webkit.org/show_bug.cgi?id=95556
26222
26223        Reviewed by Jocelyn Turcotte.
26224
26225        There were a few problems:
26226
26227        1) GL_ANGLE_framebuffer_blit is the name of the macro indicating the
26228        availability of the _declaration_ of that ANGLE extension. It is not the
26229        name of the actual function, which is glBlitFramebufferANGLE.
26230
26231        2) The presence of the preprocessor macros indicating the availability
26232        of the declaration of the extension does not imply presence of the extension
26233        prototypes at link time. Instead extensions need to be looked up dynamically
26234        at run-time.
26235
26236        3) dlfcn.h was unconditionally included. We do not need it when building against
26237        Qt (and there it breaks the Windows build)
26238
26239        This patch implements the dynamic lookup of glBlitFramebufferANGLE
26240        (used in GraphicsContext3DOpenGLES.cpp) as well as the dynamic lookup of the
26241        Angle and Apple renderbuffer multisampling extensions.
26242
26243        * platform/graphics/OpenGLShims.cpp:
26244        (WebCore):
26245        (WebCore::initializeOpenGLShims):
26246
262472012-09-07  Zan Dobersek  <zandobersek@gmail.com>
26248
26249        [GTK] Multiple feature defines in webcore_cppflags can occur
26250        https://bugs.webkit.org/show_bug.cgi?id=95942
26251
26252        Reviewed by Martin Robinson.
26253
26254        Any feature define that guards a feature deemed currently unstable (is intended
26255        to be enabled in developer builds but not in release builds) should be added to the
26256        newly-added feature_defines_unstable variable.
26257
26258        This moves away from adding such feature defines to the feature_defines_overrides variable
26259        as this can cause duplicates in the later-generated feature_defines and webcore_cppflags
26260        variables and further warnings of duplicate macros when generating bindings.
26261
26262        The feature_defines generation is now done by first checking if the bare feature define
26263        is present in feature_defines_unstable, if not then feature_defines_overrides is also
26264        checked before using the value from feature_defines_defaults.
26265
26266        No new tests - no new functionality.
26267
26268        * GNUmakefile.am:
26269
262702012-09-07  Ilya Tikhonovsky  <loislo@chromium.org>
26271
26272        Web Inspector: NMI: move WebCore specific code to separate header
26273        https://bugs.webkit.org/show_bug.cgi?id=96101
26274
26275        Reviewed by Yury Semikhatsky.
26276
26277        I extracted WebCore related code from MemoryInstrumentation.h to WebCoreMemoryInstrumentation.h
26278
26279        * CMakeLists.txt:
26280        * GNUmakefile.list.am:
26281        * Target.pri:
26282        * WebCore.gypi:
26283        * WebCore.vcproj/WebCore.vcproj:
26284        * WebCore.xcodeproj/project.pbxproj:
26285        * bindings/js/ScriptWrappable.h:
26286        * bindings/v8/DOMDataStore.cpp:
26287        * bindings/v8/IntrusiveDOMWrapperMap.h:
26288        * bindings/v8/ScriptProfiler.cpp:
26289        * bindings/v8/ScriptWrappable.h:
26290        * bindings/v8/V8Binding.cpp:
26291        * bindings/v8/V8DOMMap.h:
26292        * css/CSSAspectRatioValue.cpp:
26293        * css/CSSBorderImageSliceValue.cpp:
26294        * css/CSSCalculationValue.cpp:
26295        * css/CSSCanvasValue.cpp:
26296        * css/CSSCharsetRule.cpp:
26297        * css/CSSComputedStyleDeclaration.cpp:
26298        * css/CSSCrossfadeValue.cpp:
26299        * css/CSSCursorImageValue.cpp:
26300        * css/CSSFontFaceRule.cpp:
26301        * css/CSSFontFaceSrcValue.cpp:
26302        * css/CSSFunctionValue.cpp:
26303        * css/CSSGradientValue.cpp:
26304        * css/CSSImageGeneratorValue.cpp:
26305        * css/CSSImageSetValue.cpp:
26306        * css/CSSImageValue.cpp:
26307        * css/CSSImportRule.cpp:
26308        * css/CSSInheritedValue.cpp:
26309        * css/CSSInitialValue.cpp:
26310        * css/CSSLineBoxContainValue.cpp:
26311        * css/CSSMediaRule.cpp:
26312        * css/CSSPrimitiveValue.cpp:
26313        * css/CSSProperty.cpp:
26314        * css/CSSReflectValue.cpp:
26315        * css/CSSRuleList.h:
26316        * css/CSSSelectorList.cpp:
26317        * css/CSSStyleRule.cpp:
26318        * css/CSSStyleSheet.cpp:
26319        * css/CSSTimingFunctionValue.cpp:
26320        * css/CSSUnicodeRangeValue.cpp:
26321        * css/CSSUnknownRule.h:
26322        * css/CSSValue.cpp:
26323        * css/CSSValueList.cpp:
26324        * css/CSSVariableValue.h:
26325        * css/FontFeatureValue.cpp:
26326        * css/FontValue.cpp:
26327        * css/MediaList.cpp:
26328        * css/MediaQuery.cpp:
26329        * css/MediaQueryExp.cpp:
26330        * css/PropertySetCSSStyleDeclaration.cpp:
26331        * css/ShadowValue.cpp:
26332        * css/StyleResolver.cpp:
26333        * css/StyleRule.cpp:
26334        * css/StyleSheetContents.cpp:
26335        * css/WebKitCSSArrayFunctionValue.cpp:
26336        * css/WebKitCSSFilterValue.cpp:
26337        * css/WebKitCSSKeyframeRule.cpp:
26338        * css/WebKitCSSKeyframesRule.cpp:
26339        * css/WebKitCSSMixFunctionValue.cpp:
26340        * css/WebKitCSSSVGDocumentValue.cpp:
26341        * css/WebKitCSSShaderValue.cpp:
26342        * css/WebKitCSSTransformValue.cpp:
26343        * dom/CharacterData.cpp:
26344        * dom/Document.cpp:
26345        * dom/DocumentEventQueue.cpp:
26346        * dom/ElementAttributeData.cpp:
26347        * dom/Event.cpp:
26348        * dom/MemoryInstrumentation.h:
26349        * dom/Node.cpp:
26350        * dom/QualifiedName.h:
26351        * dom/WebCoreMemoryInstrumentation.cpp: Renamed from Source/WebCore/dom/MemoryInstrumentation.cpp.
26352        (WebCore):
26353        (WebCore::String):
26354        (WebCore::StringImpl):
26355        (WebCore::KURL):
26356        (WebCore::AtomicString):
26357        * dom/WebCoreMemoryInstrumentation.h: Added.
26358        (WebCore):
26359        (WebCoreMemoryTypes):
26360        * loader/DocumentLoader.cpp:
26361        * loader/FrameLoader.cpp:
26362        * loader/SubresourceLoader.cpp:
26363        * loader/SubstituteData.cpp:
26364        * loader/cache/CachedCSSStyleSheet.cpp:
26365        * loader/cache/CachedFont.cpp:
26366        * loader/cache/CachedRawResource.cpp:
26367        * loader/cache/CachedResource.cpp:
26368        * loader/cache/CachedResourceHandle.cpp:
26369        * loader/cache/CachedScript.cpp:
26370        * loader/cache/CachedShader.cpp:
26371        * loader/cache/CachedXSLStyleSheet.cpp:
26372        * loader/cache/MemoryCache.cpp:
26373        * platform/SharedBuffer.cpp:
26374        * platform/graphics/BitmapImage.cpp:
26375        * platform/graphics/CrossfadeGeneratedImage.cpp:
26376        * platform/graphics/GeneratedImage.cpp:
26377        * platform/graphics/GeneratorGeneratedImage.h:
26378        * platform/graphics/Image.cpp:
26379        * platform/network/FormData.cpp:
26380        * platform/network/ResourceRequestBase.cpp:
26381        * platform/network/ResourceResponseBase.cpp:
26382        * rendering/style/RenderStyle.cpp:
26383        * rendering/style/StyleRareInheritedData.cpp:
26384        * rendering/style/StyleRareNonInheritedData.cpp:
26385        * svg/SVGColor.cpp:
26386        * svg/SVGPaint.cpp:
26387
263882012-09-07  Ian Vollick  <vollick@chromium.org>
26389
26390        [chromium] We should accelerate all transformations, except when we must blend matrices that cannot be decomposed.
26391        https://bugs.webkit.org/show_bug.cgi?id=95855
26392
26393        Reviewed by James Robinson.
26394
26395        WebTransformOperations are now able to report if they can successfully blend.
26396        WebTransformationMatrix::blend now returns a bool if blending would fail.
26397
26398        Unit tests:
26399          AnimationTranslationUtilTest.createTransformAnimationWithNonDecomposableMatrix
26400          AnimationTranslationUtilTest.createTransformAnimationWithNonInvertibleTransform
26401
26402        * platform/chromium/support/WebTransformOperations.cpp:
26403        (WebKit::blendTransformOperations):
26404        (WebKit::WebTransformOperations::blend):
26405        (WebKit::WebTransformOperations::canBlendWith):
26406        (WebKit):
26407        (WebKit::WebTransformOperations::blendInternal):
26408        * platform/chromium/support/WebTransformationMatrix.cpp:
26409        (WebKit::WebTransformationMatrix::blend):
26410        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
26411        (WebCore::WebTransformAnimationCurve):
26412
264132012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
26414
26415        Unreviewed, rolling out r127780 and r127859.
26416        http://trac.webkit.org/changeset/127780
26417        http://trac.webkit.org/changeset/127859
26418        https://bugs.webkit.org/show_bug.cgi?id=96102
26419
26420        "inspector/styles/protocol-css-regions-commands.html crashing
26421        on Chromium Linux Debug and timing out flakily on Release"
26422        (Requested by apavlov on #webkit).
26423
26424        * dom/NamedFlowCollection.cpp:
26425        (WebCore::NamedFlowCollection::ensureFlowWithName):
26426        (WebCore::NamedFlowCollection::discardNamedFlow):
26427        * inspector/Inspector.json:
26428        * inspector/InspectorCSSAgent.cpp:
26429        (WebCore::InspectorCSSAgent::reset):
26430        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
26431        (WebCore::InspectorCSSAgent::didRemoveNamedFlow):
26432        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
26433        (WebCore::InspectorCSSAgent::getFlowByName):
26434        (WebCore):
26435        * inspector/InspectorCSSAgent.h:
26436        (WebCore):
26437        (InspectorCSSAgent):
26438        * inspector/InspectorInstrumentation.cpp:
26439        (WebCore):
26440        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
26441        (WebCore::InspectorInstrumentation::didRemoveNamedFlowImpl):
26442        * inspector/InspectorInstrumentation.h:
26443        (InspectorInstrumentation):
26444        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
26445        (WebCore::InspectorInstrumentation::didRemoveNamedFlow):
26446        * inspector/front-end/CSSStyleModel.js:
26447        (WebInspector.CSSStyleModel):
26448        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
26449        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
26450        (WebInspector.CSSStyleModel.prototype._namedFlowCreated.callback):
26451        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
26452        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved.callback):
26453        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
26454        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
26455        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
26456        (WebInspector.NamedFlow):
26457        (WebInspector.NamedFlow.parsePayloadArray):
26458        * rendering/RenderNamedFlowThread.cpp:
26459        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
26460
264612012-09-07  Sami Kyostila  <skyostil@google.com>
26462
26463        [chromium] Dynamically removing preserve-3d from a layer has no effect
26464        https://bugs.webkit.org/show_bug.cgi?id=95732
26465
26466        Reviewed by James Robinson.
26467
26468        Fix removal of preserve-3d CSS attribute from a GraphicsLayerChromium.
26469        It was broken by a refactor in http://trac.webkit.org/changeset/126378.
26470
26471        Test: platform/chromium/compositing/preserve-3d-toggle.html
26472
26473        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
26474        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
26475
264762012-09-06  Alexander Pavlov  <apavlov@chromium.org>
26477
26478        Web Inspector: Implement SCSS source highlighter
26479        https://bugs.webkit.org/show_bug.cgi?id=95585
26480
26481        Reviewed by Vsevolod Vlasov.
26482
26483        This change modifies the existing CSS highlighter to support SCSS as well. The "text/x-scss" mime-type is assigned to SASSSource.
26484
26485        * inspector/front-end/CSSCompletions.js:
26486        (WebInspector.CSSCompletions.cssPropertiesMetainfoKeySet):
26487        * inspector/front-end/ContentProviders.js:
26488        (WebInspector.StaticContentProvider): Enabled clients to supply the content mime-type.
26489        (WebInspector.StaticContentProvider.prototype.mimeType):
26490        (WebInspector.StaticContentProvider.prototype.requestContent): Use client-supplied content mime-type, if any.
26491        * inspector/front-end/SASSSourceMapping.js:
26492        (WebInspector.SASSSource): Construct StaticContentProvider with the "text/x-scss" mime-type.
26493        * inspector/front-end/SourceCSSTokenizer.js:
26494        (WebInspector.SourceCSSTokenizer):
26495        (WebInspector.SourceCSSTokenizer.prototype.nextToken):
26496        * inspector/front-end/SourceCSSTokenizer.re2js: Extended with the SCSS syntax.
26497        * inspector/front-end/SourceTokenizer.js:
26498        (WebInspector.SourceTokenizer.Registry):
26499        * inspector/front-end/inspectorSyntaxHighlight.css:
26500        (.webkit-css-bang-keyword):
26501
265022012-09-07  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
26503
26504        X11 Global Selection
26505        https://bugs.webkit.org/show_bug.cgi?id=88238
26506
26507        Reviewed by Tony Chang.
26508
26509        In X11 global selection is the ability to share the active selection
26510        between applications and pasting with middle mouse-button.
26511
26512        This patch moves the implementations of global selection from the 
26513        separate implementations in Qt WebKit, Chromium and GTK to WebCore,
26514        by implementing a new EditorCommand for pasting the global selection.
26515
26516        Test: editing/pasteboard/paste-global-selection.html
26517
26518        * editing/EditorCommand.cpp:
26519        (WebCore::executePasteGlobalSelection):
26520        (WebCore::createCommandMap):
26521        * page/EditorClient.h:
26522        (EditorClient):
26523        (WebCore::EditorClient::supportsGlobalSelection):
26524        * platform/Pasteboard.h:
26525        (WebCore::Pasteboard::isSelectionMode):
26526        (WebCore::Pasteboard::setSelectionMode):
26527        * platform/gtk/PasteboardGtk.cpp:
26528        (WebCore::Pasteboard::writeSelection):
26529        (WebCore::Pasteboard::writeURL):
26530        (WebCore::Pasteboard::isSelectionMode):
26531        (WebCore::Pasteboard::setSelectionMode):
26532
265332012-09-06  Vsevolod Vlasov  <vsevik@chromium.org>
26534
26535        Web Inspector: Migrate Database to async protocol commands
26536        https://bugs.webkit.org/show_bug.cgi?id=95983
26537
26538        Reviewed by Alexander Pavlov.
26539
26540        * English.lproj/localizedStrings.js:
26541        * inspector/Inspector.json:
26542        * inspector/InspectorDatabaseAgent.cpp:
26543        (WebCore):
26544        (WebCore::InspectorDatabaseAgent::didOpenDatabase):
26545        (WebCore::InspectorDatabaseAgent::setFrontend):
26546        (WebCore::InspectorDatabaseAgent::clearFrontend):
26547        (WebCore::InspectorDatabaseAgent::enable):
26548        (WebCore::InspectorDatabaseAgent::executeSQL):
26549        * inspector/InspectorDatabaseAgent.h:
26550        (InspectorDatabaseAgent):
26551        * inspector/front-end/Database.js:
26552        (WebInspector.Database.prototype.executeSql):
26553        (WebInspector.DatabaseDispatcher.prototype.addDatabase):
26554
265552012-09-07  Ilya Tikhonovsky  <loislo@chromium.org>
26556
26557        Unreviewed single line follow-up change for r127856.
26558
26559        * dom/MemoryInstrumentation.h:
26560        (WebCore::MemoryClassInfo::MemoryClassInfo):
26561
265622012-09-07  Vsevolod Vlasov  <vsevik@chromium.org>
26563
26564        Unreviewed inspector closure compilation errors fix.
26565
26566        * inspector/front-end/CSSStyleModel.js:
26567        (WebInspector.NamedFlowCollection):
26568
265692012-09-06  Vsevolod Vlasov  <vsevik@chromium.org>
26570
26571        Web Inspector: Migrate FileSystem to async protocol commands.
26572        https://bugs.webkit.org/show_bug.cgi?id=95985
26573
26574        Reviewed by Alexander Pavlov.
26575
26576        Migrated FileSystem domain to async protocol commands and removed boilerplate code.
26577
26578        * inspector/Inspector.json:
26579        * inspector/InspectorFileSystemAgent.cpp:
26580        (WebCore):
26581        (WebCore::InspectorFileSystemAgent::~InspectorFileSystemAgent):
26582        (WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
26583        (WebCore::InspectorFileSystemAgent::requestDirectoryContent):
26584        (WebCore::InspectorFileSystemAgent::requestMetadata):
26585        (WebCore::InspectorFileSystemAgent::requestFileContent):
26586        (WebCore::InspectorFileSystemAgent::deleteEntry):
26587        (WebCore::InspectorFileSystemAgent::clearFrontend):
26588        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
26589        (WebCore::InspectorFileSystemAgent::assertEnabled):
26590        * inspector/InspectorFileSystemAgent.h:
26591        (InspectorFileSystemAgent):
26592        * inspector/front-end/FileSystemModel.js:
26593        (WebInspector.FileSystemModel):
26594        (WebInspector.FileSystemModel.prototype._originAdded):
26595        (WebInspector.FileSystemModel.prototype._requestFileSystemRoot):
26596        (WebInspector.FileSystemModel.prototype.requestDirectoryContent):
26597        (WebInspector.FileSystemModel.prototype._requestDirectoryContent):
26598        (WebInspector.FileSystemModel.prototype._directoryContentReceived):
26599        (WebInspector.FileSystemModel.prototype.requestMetadata):
26600        (WebInspector.FileSystemModel.prototype.requestFileContent):
26601        (WebInspector.FileSystemModel.prototype._requestFileContent):
26602        (WebInspector.FileSystemModel.prototype._deleteEntry):
26603
266042012-09-07  Ilya Tikhonovsky  <loislo@chromium.org>
26605
26606        Web Inspector: NMI: remove DataRef instrumentation from the core NMI code.
26607        https://bugs.webkit.org/show_bug.cgi?id=96086
26608
26609        Reviewed by Yury Semikhatsky.
26610
26611        This patch is removing the last WebCore specific methods from core memory instrumentation code.
26612
26613        It is covered by webkit_unit_tests.
26614
26615        * dom/MemoryInstrumentation.h:
26616        (WebCore):
26617        (MemoryObjectInfo):
26618        (WebCore::MemoryClassInfo::MemoryClassInfo):
26619        * rendering/style/DataRef.h:
26620        (DataRef):
26621        (WebCore::DataRef::reportMemoryUsage):
26622
266232012-09-06  Vsevolod Vlasov  <vsevik@chromium.org>
26624
26625        Web Inspector: Migrate IndexedDB to async protocol commands.
26626        https://bugs.webkit.org/show_bug.cgi?id=95978
26627
26628        Reviewed by Alexander Pavlov.
26629
26630        IndexedDB is now implemented using async protocol commands.
26631        Removed boilerplate code used to emulate async commands before.
26632
26633        * inspector/Inspector.json:
26634        * inspector/InspectorIndexedDBAgent.cpp:
26635        (WebCore):
26636        (WebCore::InspectorIndexedDBAgent::clearFrontend):
26637        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
26638        (WebCore::InspectorIndexedDBAgent::requestDatabase):
26639        (WebCore::InspectorIndexedDBAgent::requestData):
26640        * inspector/InspectorIndexedDBAgent.h:
26641        (InspectorIndexedDBAgent):
26642        * inspector/front-end/IndexedDBModel.js:
26643        (WebInspector.IndexedDBModel):
26644        (WebInspector.IndexedDBModel.prototype._frameDetached):
26645        (WebInspector.IndexedDBModel.prototype._reset):
26646        (WebInspector.IndexedDBModel.prototype._databaseRemoved):
26647        (WebInspector.IndexedDBModel.prototype._loadDatabaseNamesForFrame):
26648        (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
26649        (WebInspector.IndexedDBModel.prototype._loadDatabase):
26650        (WebInspector.IndexedDBModel.prototype.loadObjectStoreData):
26651        (WebInspector.IndexedDBModel.prototype.loadIndexData):
26652        (WebInspector.IndexedDBModel.prototype._requestData.innerCallback):
26653        (WebInspector.IndexedDBModel.prototype._requestData):
26654
266552012-09-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
26656
26657        Add *explicit* keyword to constructors in WebCore/xml
26658        https://bugs.webkit.org/show_bug.cgi?id=96071
26659
26660        Reviewed by Kentaro Hara.
26661
26662        As a step to let *explicit* add to constructors which have only one parameter,
26663        *explicit* is added to Source/WebCore/xml in order to avoid implicit type conversion.
26664
26665        No new tests. Covered by existing tests.
26666
26667        * xml/NativeXPathNSResolver.h:
26668        (NativeXPathNSResolver):
26669        * xml/XMLHttpRequestException.h:
26670        (WebCore::XMLHttpRequestException::XMLHttpRequestException):
26671        * xml/XMLHttpRequestProgressEventThrottle.h:
26672        (XMLHttpRequestProgressEventThrottle):
26673        * xml/XMLHttpRequestUpload.h:
26674        (XMLHttpRequestUpload):
26675        * xml/XPathException.h:
26676        (WebCore::XPathException::XPathException):
26677        * xml/XPathPredicate.h:
26678        (Number):
26679        (StringExpression):
26680        (Predicate):
26681        * xml/XPathValue.h:
26682        (WebCore::XPath::ValueData::ValueData):
26683        * xml/XPathVariableReference.h:
26684        (VariableReference):
26685
266862012-09-07  Yoshifumi Inoue  <yosin@chromium.org>
26687
26688        We should have a localized string of empty for date time field
26689        https://bugs.webkit.org/show_bug.cgi?id=96081
26690
26691        Reviewed by Kent Tamura.
26692
26693        This patch add a declaration of function for getting localized string
26694        of empty field value date time field for accessibility inside
26695        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
26696
26697        These functions will be used by derived classes of DateTimeFieldElement.
26698
26699        Note: We'll rename ENABLE_INPUT_TYPE_MULTIPLE_FIELDS to generic name
26700        to support "date", "datetime", "month" and "week" multiple fields input
26701        UI.
26702
26703        No new tests. This patch doesn't change behavior.
26704
26705        * platform/LocalizedStrings.h:
26706        (WebCore): Added a declaration of AXDateTimeFieldEmptyValueText().
26707
267082012-09-07  Ryuan Choi  <ryuan.choi@samsung.com>
26709
26710        [EFL] Use ASCIILiteral for cursorStringMap.
26711        https://bugs.webkit.org/show_bug.cgi?id=96072
26712
26713        Reviewed by Gyuyoung Kim.
26714
26715        This patch converts static strings of cursorStringMap to use ASCIILiteral
26716        as recommended by http://trac.webkit.org/wiki/EfficientStrings.
26717
26718        * platform/efl/EflScreenUtilities.cpp:
26719        (WebCore::CursorMap::CursorMap):
26720
267212012-09-07  Tim Horton  <timothy_horton@apple.com>
26722
26723        Scrolling performance logging should use WTFLogAlways instead of printf
26724        https://bugs.webkit.org/show_bug.cgi?id=96080
26725
26726        Reviewed by Dan Bernstein.
26727
26728        Use WTF logging facilities instead of printf() for scrolling performance logging.
26729
26730        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
26731        (WebCore::ScrollingTreeNodeMac::logExposedUnfilledArea):
26732        * platform/graphics/ca/mac/WebTileLayer.mm:
26733        (-[WebTileLayer logFilledFreshTile]):
26734
267352012-09-07  Luke Macpherson   <macpherson@chromium.org>
26736
26737        Make CSSPrimitiveValue::cleanup() handle all UnitTypes, fixing memory leak in the process.
26738        https://bugs.webkit.org/show_bug.cgi?id=95938
26739
26740        Reviewed by Andreas Kling.
26741
26742        Several unit types have been added without updating the cleanup function, including CSS_VARIABLE_NAME.
26743        I've added all the existing unit types back in and cast m_primitiveUnitType (a bitfield in CSSValue)
26744        to the enum type to ensure the compiler catches any future errors.
26745
26746        No test added, but switch made to use enum type so we can't accidentally fail to update this function again.
26747
26748        * css/CSSPrimitiveValue.cpp:
26749        (WebCore::CSSPrimitiveValue::cleanup):
26750
267512012-09-07  Tim Horton  <timothy_horton@apple.com>
26752
26753        Add optional debug logging when we fall into/out of threaded scrolling
26754        https://bugs.webkit.org/show_bug.cgi?id=93898
26755        <rdar://problem/12089098>
26756
26757        Reviewed by Simon Fraser.
26758
26759        Add logging when we enter and exit the threaded scrolling mode, and logs the reasons we
26760        fall into main-thread scrolling.
26761
26762        The logging output looks like this:
26763            SCROLLING: Switching to main-thread scrolling mode. Time: 15843.554718 Reason(s): viewport-constrained objects
26764            SCROLLING: Switching to threaded scrolling mode. Time: 15844.550866
26765            SCROLLING: Switching to main-thread scrolling mode. Time: 15845.551214 Reason(s): viewport-constrained objects
26766            SCROLLING: Switching to threaded scrolling mode. Time: 15846.552619
26767            SCROLLING: Switching to main-thread scrolling mode. Time: 15847.553587 Reason(s): viewport-constrained objects
26768            SCROLLING: Switching to threaded scrolling mode. Time: 15848.554084
26769
26770        No new tests, as this is just debugging logging.
26771
26772        * WebCore.xcodeproj/project.pbxproj:
26773        Expose ScrollingTreeState.h as a private header.
26774
26775        * page/scrolling/ScrollingCoordinator.cpp:
26776        (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
26777        (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
26778        (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
26779        (WebCore::ScrollingCoordinator::setForceMainThreadScrollLayerPositionUpdates):
26780        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThreadReason):
26781        * page/scrolling/ScrollingCoordinator.h:
26782        (ScrollingCoordinator):
26783        * page/scrolling/ScrollingCoordinatorNone.cpp:
26784        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThreadReason):
26785        * page/scrolling/ScrollingTreeNode.cpp:
26786        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
26787        (WebCore::ScrollingTreeNode::update):
26788        * page/scrolling/ScrollingTreeNode.h:
26789        (WebCore::ScrollingTreeNode::shouldUpdateScrollLayerPositionOnMainThreadReason):
26790        (ScrollingTreeNode):
26791        * page/scrolling/ScrollingTreeState.cpp:
26792        (WebCore::ScrollingTreeState::ScrollingTreeState):
26793        (WebCore::ScrollingTreeState::setShouldUpdateScrollLayerPositionOnMainThreadReason):
26794        * page/scrolling/ScrollingTreeState.h:
26795        (WebCore::ScrollingTreeState::shouldUpdateScrollLayerPositionOnMainThreadReason):
26796        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
26797        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThreadReason):
26798        Rename updateShouldUpdateScrollLayerPositionOnMainThread to updateShouldUpdateScrollLayerPositionOnMainThreadReason (and related).
26799
26800        * page/scrolling/ScrollingCoordinator.cpp:
26801        (WebCore::ScrollingCoordinator::hasNonLayerViewportConstrainedObjects):
26802        Renamed from hasNonLayerFixedObjects to match the rest of the renames going on.
26803        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThreadReason):
26804        Construct a bitfield describing the reasons we fall into main-thread scrolling mode.
26805
26806        * page/scrolling/ScrollingTreeState.h:
26807        (ScrollingTreeState):
26808        Add ReasonsForUpdatingScrollLayerPositionOnMainThread enum, with the current reasons that we might fallback to main-thread scrolling.
26809
26810        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
26811        (WebCore):
26812        (WebCore::ScrollingTreeNodeMac::update): Log every time scrolling mode changes.
26813        (WebCore::ScrollingTreeNodeMac::scrollPosition):
26814        (WebCore::ScrollingTreeNodeMac::setScrollPositionWithoutContentEdgeConstraints):
26815        (WebCore::ScrollingTreeNodeMac::setScrollLayerPosition):
26816        (WebCore::logThreadedScrollingMode): Pretty-print the scrolling mode and shouldUpdateScrollLayerPositionOnMainThreadReason.
26817
268182012-09-06  Patrick Gansterer  <paroga@webkit.org>
26819
26820        Build fix for WinCE after r127801.
26821
26822        * platform/graphics/wince/FontWinCE.cpp:
26823        (WebCore::generateComponents):
26824
268252012-09-06  Alexander Pavlov  <apavlov@chromium.org>
26826
26827        [Chromium] Regression: Web Inspector tool-tips pixellated with --force-device-scale-factor=2
26828        https://bugs.webkit.org/show_bug.cgi?id=95875
26829
26830        Reviewed by Vsevolod Vlasov.
26831
26832        The overlay canvas is scaled according to the actual devicePixelRatio of the inspected page, while retaining its original CSS size.
26833
26834        * inspector/InspectorOverlay.cpp:
26835        (WebCore::InspectorOverlay::reset):
26836        * inspector/InspectorOverlayPage.html:
26837
268382012-09-06  Sheriff Bot  <webkit.review.bot@gmail.com>
26839
26840        Unreviewed, rolling out r127822.
26841        http://trac.webkit.org/changeset/127822
26842        https://bugs.webkit.org/show_bug.cgi?id=96073
26843
26844        It broke compilation on chromium debug bots (Requested by
26845        loislo on #webkit).
26846
26847        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
26848        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
26849        (WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
26850        * platform/graphics/chromium/cc/CCDirectRenderer.h:
26851        (CCDirectRenderer):
26852        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
26853        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
26854        (WebCore::findRenderPassById):
26855        (WebCore::removeRenderPassesRecursive):
26856        * platform/graphics/chromium/cc/CCRenderPass.cpp:
26857        (WebCore::CCRenderPass::create):
26858        (WebCore::CCRenderPass::CCRenderPass):
26859        (WebCore::CCRenderPass::copy):
26860        * platform/graphics/chromium/cc/CCRenderPass.h:
26861        (CCRenderPass):
26862        (WebCore::CCRenderPass::id):
26863        (WebCore):
26864        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
26865        (WebCore::CCRenderPassDrawQuad::create):
26866        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
26867        (WebCore::CCRenderPassDrawQuad::copy):
26868        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
26869        (WebCore):
26870        (CCRenderPassDrawQuad):
26871        (WebCore::CCRenderPassDrawQuad::renderPassId):
26872        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
26873        (WebCore::CCRenderSurface::appendRenderPasses):
26874        (WebCore::CCRenderSurface::appendQuads):
26875        * platform/graphics/chromium/cc/CCRenderSurface.h:
26876        (WebCore):
26877        (CCRenderSurface):
26878        * platform/graphics/chromium/cc/CCRenderer.h:
26879        (WebCore::CCRenderer::haveCachedResourcesForRenderPassId):
26880
268812012-09-06  Anna Cavender  <annacc@chromium.org>
26882
26883        The CC button should have chrome-specific rendering for Mac.
26884        https://bugs.webkit.org/show_bug.cgi?id=95981
26885
26886        Reviewed by Eric Carlson.
26887
26888        This patch allows RenderThemeChromiumMac to define its own behavior for the CC button.
26889
26890        No new tests.  Button should display graphics from chromium resources.
26891
26892        * css/mediaControlsChromium.css:
26893        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
26894        Adjust styling for the chromium graphics.
26895        * rendering/RenderMediaControlsChromium.cpp:
26896        (WebCore::paintMediaClosedCaptionsButton):
26897        Check whether closed captions are visible to decide how to draw the button.
26898        * rendering/RenderThemeChromiumMac.h:
26899        (RenderThemeChromiumMac):
26900        Override the paint function for the CC button.
26901        * rendering/RenderThemeChromiumMac.mm:
26902        (WebCore):
26903        (WebCore::RenderThemeChromiumMac::paintMediaToggleClosedCaptionsButton):
26904        Call the chromium-specific painting function.
26905
269062012-09-06  Elliott Sprehn  <esprehn@chromium.org>
26907
26908        Add methods to CounterDirectives to clean up StyleBuilder and RenderCounter.
26909        https://bugs.webkit.org/show_bug.cgi?id=94587
26910
26911        Reviewed by Julien Chaffraix.
26912
26913        Adds several methods to CounterDirectives and an accessor method to RenderStyle for
26914        getting the CounterDirectives by idenfitier and uses those methods to clean up
26915        the code in StyleBuilder and RenderCounter. This also switches to using AtomicString
26916        directly instead of AtomicStringImpl and calling get() everywhere.
26917
26918        The refactor fixes the unitialized read in WKBug 94642.
26919
26920        Test: fast/css/counters/counter-reset-inherit-bug-94642.html
26921
26922        * css/CSSComputedStyleDeclaration.cpp:
26923        (WebCore::counterToCSSValue): Use new accessors.
26924        * css/StyleBuilder.cpp:
26925        (WebCore::ApplyPropertyCounter::applyInheritValue): Use new inherit methods.
26926        (WebCore::ApplyPropertyCounter::applyValue): Use new setters.
26927        * rendering/RenderCounter.cpp:
26928        (WebCore):
26929        (WebCore::planCounter):
26930        (WebCore::makeCounterNode):
26931        (WebCore::destroyCounterNodeWithoutMapRemoval):
26932        (WebCore::RenderCounter::destroyCounterNodes):
26933        (WebCore::RenderCounter::destroyCounterNode):
26934        (WebCore::updateCounters):
26935        (WebCore::RenderCounter::rendererStyleChanged):
26936        (showCounterRendererTree):
26937        * rendering/style/CounterDirectives.cpp:
26938        (WebCore::operator==):
26939        * rendering/style/CounterDirectives.h: Added new accessors and switched to using AtomicString directly.
26940        (CounterDirectives):
26941        (WebCore::CounterDirectives::CounterDirectives):
26942        (WebCore::CounterDirectives::isReset):
26943        (WebCore::CounterDirectives::resetValue):
26944        (WebCore::CounterDirectives::setResetValue):
26945        (WebCore::CounterDirectives::clearReset):
26946        (WebCore::CounterDirectives::inheritReset):
26947        (WebCore::CounterDirectives::isIncrement):
26948        (WebCore::CounterDirectives::incrementValue):
26949        (WebCore::CounterDirectives::addIncrementValue):
26950        (WebCore::CounterDirectives::clearIncrement):
26951        (WebCore::CounterDirectives::inheritIncrement):
26952        (WebCore::CounterDirectives::isDefined): If either reset or increment is used.
26953        (WebCore::CounterDirectives::combinedValue): Combined local value of the counter.
26954        (WebCore):
26955        * rendering/style/RenderStyle.cpp:
26956        (WebCore::RenderStyle::getCounterDirectives): New method which always returns a CounterDirectives instance by identifier.
26957        (WebCore):
26958        * rendering/style/RenderStyle.h:
26959
269602012-09-06  Joanmarie Diggs  <jdiggs@igalia.com>
26961
26962        [Gtk] accessibility/canvas-description-and-role expected results needed
26963        https://bugs.webkit.org/show_bug.cgi?id=95644
26964
26965        Reviewed by Martin Robinson.
26966
26967        The new accessibility CanvasRole should be mapped to ATK_ROLE_CANVAS
26968        rather than ATK_ROLE_IMAGE.
26969
26970        No new test because the CanvasRole came with a new layout test lacking
26971        expected results for Gtk. The generated expected results for that test
26972        reflect the revised mapping to ATK_ROLE_CANVAS.
26973
26974        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
26975        (atkRole):
26976
269772012-09-06  Hironori Bono  <hbono@chromium.org>
26978
26979        A build fix for Chromium Windows
26980        https://bugs.webkit.org/show_bug.cgi?id=96062
26981
26982        Reviewed by James Robinson.
26983
26984        This change fixes a build break on Chromium Windows caused by r127801
26985        <http://trac.webkit.org/changeset/127801>. It replaces characters() with
26986        characters16().
26987
26988        No new tests because this change is a build fix.
26989
26990        * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
26991        (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun):
26992
269932012-09-06  Dana Jansens  <danakj@chromium.org>
26994
26995        [chromium] Make RenderPass ids hold both generating layer id and an index
26996        https://bugs.webkit.org/show_bug.cgi?id=95500
26997
26998        Reviewed by Adrienne Walker.
26999
27000        This change allows us to avoid complex renderPassId mappings between
27001        compositors for ubercomp. The ubercomp layer needs to add a number
27002        of RenderPasses to the frame, and these must not conflict with other
27003        RenderPasses in the frame. By using its layer id along with an extra
27004        value it determines, the layer can create a unique id without needing
27005        access to any global state or id generator.
27006
27007        Covered by existing tests.
27008
27009        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
27010        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
27011        (WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
27012        * platform/graphics/chromium/cc/CCDirectRenderer.h:
27013        (CCDirectRenderer):
27014        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
27015        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
27016        (WebCore::findRenderPassById):
27017        (WebCore::removeRenderPassesRecursive):
27018        * platform/graphics/chromium/cc/CCRenderPass.cpp:
27019        (WebCore::CCRenderPass::create):
27020        (WebCore::CCRenderPass::CCRenderPass):
27021        * platform/graphics/chromium/cc/CCRenderPass.h:
27022        (Id):
27023        (WebCore::CCRenderPass::Id::Id):
27024        (WebCore::CCRenderPass::Id::operator==):
27025        (WebCore::CCRenderPass::Id::operator!=):
27026        (WebCore::CCRenderPass::Id::operator<):
27027        (CCRenderPass):
27028        (WebCore::CCRenderPass::id):
27029        (WebCore):
27030        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
27031        (WebCore::CCRenderPassDrawQuad::create):
27032        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
27033        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
27034        (CCRenderPassDrawQuad):
27035        (WebCore::CCRenderPassDrawQuad::renderPassId):
27036        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
27037        (WebCore::CCRenderSurface::renderPassId):
27038        (WebCore):
27039        (WebCore::CCRenderSurface::appendRenderPasses):
27040        (WebCore::CCRenderSurface::appendQuads):
27041        * platform/graphics/chromium/cc/CCRenderSurface.h:
27042        (WebCore):
27043        (CCRenderSurface):
27044        * platform/graphics/chromium/cc/CCRenderer.h:
27045        (WebCore::CCRenderer::haveCachedResourcesForRenderPassId):
27046
270472012-09-06  Christopher Cameron  <ccameron@chromium.org>
27048
27049        [chromium] Do not delete texture backing structures on the main thread
27050        https://bugs.webkit.org/show_bug.cgi?id=96018
27051
27052        Reviewed by James Robinson.
27053
27054        Do not delete CCPrioritizedTexture::Backing structures on the main
27055        thread.  Instead, unlink them from their owning CCPrioritizedTexture
27056        in the main thread, and have the impl thread then delete all unlinked
27057        textures.
27058
27059        This is towards having the main thread not access the m_backings set,
27060        which will allow the impl thread to traverse that set when deleting
27061        resources in response to GPU memory management events.
27062
27063        Tested by existing eviction tests (CCLayerTreeHostTest's
27064        TestEvictTextures, LostContextAfterEvictTextures)
27065
27066        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
27067        (WebCore::CCLayerTreeHost::unlinkAllContentTextures):
27068        (WebCore):
27069        (WebCore::CCLayerTreeHost::deleteUnlinkedTextures):
27070        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
27071        (CCLayerTreeHost):
27072        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
27073        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
27074        (WebCore::CCPrioritizedTextureManager::unlinkAllBackings):
27075        (WebCore):
27076        (WebCore::CCPrioritizedTextureManager::deleteAllUnlinkedBackings):
27077        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
27078        (CCPrioritizedTextureManager):
27079        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
27080        (WebCore::CCSingleThreadProxy::commitAndComposite):
27081        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
27082        (WebCore::CCThreadProxy::beginFrame):
27083        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
27084
270852012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>
27086
27087        [Qt] Fix debug Windows build
27088        https://bugs.webkit.org/show_bug.cgi?id=96008
27089
27090        Reviewed by Tor Arne Vestbø.
27091
27092        Add a few more files to the AllInOne configuration to reduce the number of object files
27093        and their total size, allowing a debug build with MSVC again.
27094
27095        * Target.pri:
27096
270972012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>
27098
27099        [Qt] Fix text encoding detecting
27100        https://bugs.webkit.org/show_bug.cgi?id=96014
27101
27102        Reviewed by Kenneth Rohde Christiansen.
27103
27104        Since we rely on ICU now, we might as well use the actually implemented text encoding
27105        detector instead of the dummy "none" one.
27106
27107        I could not locate any layout tests that actually cover this :(
27108
27109        * Target.pri:
27110
271112012-09-06  Yoshifumi Inoue  <yosin@chromium.org>
27112
27113        We should have localized strings of date time fields for accessibility
27114        https://bugs.webkit.org/show_bug.cgi?id=96050
27115
27116        Reviewed by Kent Tamura.
27117
27118        This patch adds declarations of function for getting localized string
27119        of date time field for accessibility inside ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
27120
27121        These functions will be used by derived classes of DateTimeFieldElement.
27122
27123        Note: We'll rename ENABLE_INPUT_TYPE_MULTIPLE_FIELDS to generic name
27124        to support "date", "datetime", "month" and "week" multiple fields input
27125        UI.
27126
27127        No new tests. This patch doesn't change behavior.
27128
27129        * platform/LocalizedStrings.h:
27130        (WebCore): Added declarations of AXAMPMFieldText(), AXDayOfMonthFieldText(),
27131        AXHourFieldText(), AXMillisecondFieldText(), AXMinuteFieldText(), AXMonthFieldText(),
27132        AXSecondFieldText(), AXWeekOfYearFieldText(), and AXYearFieldText().
27133
271342012-09-06  Tony Chang  <tony@chromium.org>
27135
27136        Make computePositionedLogicalWidth and computePositionedLogicalWidthReplaced const
27137        https://bugs.webkit.org/show_bug.cgi?id=95907
27138
27139        Reviewed by Ojan Vafai.
27140
27141        This is refactoring to make RenderBox::computeLogicalWidth const. Make some methods that
27142        get called by computeLogicalWidth const. We path in a struct that we populate with values.
27143
27144        No new tests, this is just a refactoring.
27145
27146        * rendering/RenderBox.cpp:
27147        (WebCore::RenderBox::computeLogicalWidthInRegion): Make a LogicalExtentComputedValues to
27148        hold results.
27149        (WebCore::RenderBox::computePositionedLogicalWidth): Make const.
27150        (WebCore::RenderBox::computePositionedLogicalWidthUsing): Change output to use LogicalExtentComputedValues
27151        instead of 4 separate params.
27152        (WebCore::RenderBox::computePositionedLogicalWidthReplaced): Make const.
27153        * rendering/RenderBox.h:
27154        (RenderBox): Add const and change out params to LogicalExtentComputedValues.
27155        * rendering/RenderTable.cpp:
27156        (WebCore::RenderTable::computeLogicalWidth): Make a LogicalExtentComputedValues to
27157        hold results.
27158
271592012-09-06  MORITA Hajime  <morrita@google.com>
27160
27161        [Shadow DOM][Refactoring] Element subclasses should have a way to reject author shadows.
27162        https://bugs.webkit.org/show_bug.cgi?id=95831
27163
27164        Reviewed by Dimitri Glazkov.
27165
27166        Originally, the availability of author shadows was decided by ShadowRoot class.
27167        This change moves that responsibility to each Element subclasses to make future
27168        author shadow support improvement local to each replaced elements, rather than
27169        touching ShadowRoot.cpp for reach.
27170
27171        No new tests. Should have no behavioral change.
27172
27173        * dom/Element.h:
27174        * dom/ShadowRoot.cpp:
27175        (WebCore::allowsAuthorShadowRoot):
27176        * html/HTMLTextFormControlElement.h:
27177        (HTMLTextFormControlElement):
27178        * svg/SVGElement.h:
27179        (SVGElement):
27180
271812012-09-06  Adam Barth  <abarth@chromium.org>
27182
27183        [V8] Weave creationContext through toV8 and related functions
27184        https://bugs.webkit.org/show_bug.cgi?id=96039
27185
27186        Reviewed by Eric Seidel.
27187
27188        In order to give DOM wrappers the correct prototype chain, we need to
27189        know what the creationContext ought to be for each wrapper. This patch
27190        weaves that information through toV8 and related functions.
27191
27192        This patch doesn't yet use the information. That will take place in a
27193        separate patch. For that reason, this patch should not have any
27194        behavior change.
27195
27196        * bindings/scripts/CodeGeneratorV8.pm:
27197        (GenerateHeader):
27198        (GenerateNormalAttrGetter):
27199        (GenerateNamedConstructorCallback):
27200        (GenerateImplementation):
27201        (GenerateToV8Converters):
27202        (GenerateFunctionCallString):
27203        (NativeToJSValue):
27204        * bindings/scripts/test/V8/V8Float64Array.cpp:
27205        (WebCore::Float64ArrayV8Internal::fooCallback):
27206        * bindings/v8/DOMTransaction.cpp:
27207        (WebCore::DOMTransaction::callFunction):
27208        * bindings/v8/IDBCustomBindings.cpp:
27209        (WebCore::V8IDBCursorWithValue::valueAccessorGetter):
27210        * bindings/v8/SerializedScriptValue.cpp:
27211        * bindings/v8/V8Binding.h:
27212        (WebCore::V8ValueTraits::arrayV8Value):
27213        * bindings/v8/V8Collection.h:
27214        (WebCore::getV8Object):
27215        (WebCore::getNamedPropertyOfCollection):
27216        (WebCore::collectionNamedPropertyGetter):
27217        (WebCore::getIndexedPropertyOfCollection):
27218        (WebCore::collectionIndexedPropertyGetter):
27219        * bindings/v8/V8DOMWindowShell.cpp:
27220        (WebCore::getter):
27221        * bindings/v8/V8DOMWrapper.cpp:
27222        (WebCore):
27223        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
27224        * bindings/v8/V8DOMWrapper.h:
27225        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
27226        (V8DOMWrapper):
27227        * bindings/v8/V8ThrowException.cpp:
27228        (WebCore):
27229        * bindings/v8/custom/V8BlobCustom.cpp:
27230        (WebCore::toV8):
27231        (WebCore::V8Blob::constructorCallback):
27232        * bindings/v8/custom/V8CSSRuleCustom.cpp:
27233        (WebCore::toV8):
27234        * bindings/v8/custom/V8CSSValueCustom.cpp:
27235        (WebCore::toV8):
27236        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
27237        (WebCore::toV8Object):
27238        (WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorGetter):
27239        (WebCore::V8CanvasRenderingContext2D::fillStyleAccessorGetter):
27240        * bindings/v8/custom/V8ConsoleCustom.cpp:
27241        (WebCore::V8Console::memoryAccessorGetter):
27242        * bindings/v8/custom/V8DOMWindowCustom.cpp:
27243        (WebCore::V8DOMWindow::openCallback):
27244        (WebCore::V8DOMWindow::indexedPropertyGetter):
27245        (WebCore::V8DOMWindow::namedPropertyGetter):
27246        (WebCore::toV8):
27247        * bindings/v8/custom/V8DataViewCustom.cpp:
27248        (WebCore::toV8):
27249        * bindings/v8/custom/V8DocumentCustom.cpp:
27250        (WebCore::V8Document::evaluateCallback):
27251        (WebCore::V8Document::getCSSCanvasContextCallback):
27252        (WebCore::toV8):
27253        (WebCore::V8Document::createTouchListCallback):
27254        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
27255        (WebCore::V8Document::locationAccessorGetter):
27256        * bindings/v8/custom/V8EntryCustom.cpp:
27257        (WebCore::toV8):
27258        * bindings/v8/custom/V8EntrySyncCustom.cpp:
27259        (WebCore::toV8):
27260        * bindings/v8/custom/V8EventCustom.cpp:
27261        (WebCore::V8Event::dataTransferAccessorGetter):
27262        (WebCore::V8Event::clipboardDataAccessorGetter):
27263        (WebCore):
27264        (WebCore::toV8):
27265        * bindings/v8/custom/V8FileReaderCustom.cpp:
27266        (WebCore::V8FileReader::resultAccessorGetter):
27267        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
27268        (WebCore::getNamedItems):
27269        (WebCore::getItem):
27270        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
27271        (WebCore::V8HTMLAllCollection::itemCallback):
27272        (WebCore::V8HTMLAllCollection::namedItemCallback):
27273        (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
27274        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
27275        (WebCore::V8HTMLCanvasElement::getContextCallback):
27276        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
27277        (WebCore::getNamedItems):
27278        (WebCore::V8HTMLCollection::namedPropertyGetter):
27279        (WebCore::V8HTMLCollection::namedItemCallback):
27280        (WebCore::toV8):
27281        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
27282        (WebCore::V8HTMLDocument::getNamedProperty):
27283        (WebCore::V8HTMLDocument::allAccessorGetter):
27284        (WebCore::toV8):
27285        * bindings/v8/custom/V8HTMLElementCustom.cpp:
27286        (WebCore::toV8):
27287        (WebCore::V8HTMLElement::itemValueAccessorGetter):
27288        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
27289        (WebCore::V8HTMLFormElement::indexedPropertyGetter):
27290        (WebCore::V8HTMLFormElement::namedPropertyGetter):
27291        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
27292        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
27293        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
27294        (WebCore::v8HTMLImageElementConstructorCallback):
27295        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
27296        (WebCore::V8HTMLLinkElement::sizesAccessorGetter):
27297        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
27298        (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
27299        * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
27300        (WebCore::V8HTMLOutputElement::htmlForAccessorGetter):
27301        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
27302        (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
27303        * bindings/v8/custom/V8IDBAnyCustom.cpp:
27304        (WebCore::toV8):
27305        * bindings/v8/custom/V8IDBKeyCustom.cpp:
27306        (WebCore::toV8):
27307        * bindings/v8/custom/V8ImageDataCustom.cpp:
27308        (WebCore::toV8):
27309        * bindings/v8/custom/V8LocationCustom.cpp:
27310        (WebCore::toV8):
27311        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
27312        (WebCore::V8MessageChannel::constructorCallback):
27313        * bindings/v8/custom/V8MessageEventCustom.cpp:
27314        (WebCore::V8MessageEvent::dataAccessorGetter):
27315        (WebCore::V8MessageEvent::portsAccessorGetter):
27316        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
27317        (WebCore::toV8):
27318        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
27319        (WebCore::V8NamedNodeMap::indexedPropertyGetter):
27320        (WebCore::V8NamedNodeMap::namedPropertyGetter):
27321        * bindings/v8/custom/V8NodeCustom.cpp:
27322        (WebCore::toV8Slow):
27323        * bindings/v8/custom/V8NodeListCustom.cpp:
27324        (WebCore::V8NodeList::namedPropertyGetter):
27325        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
27326        (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
27327        (WebCore::V8NotificationCenter::createNotificationCallback):
27328        * bindings/v8/custom/V8PerformanceCustom.cpp:
27329        (WebCore):
27330        (WebCore::V8Performance::memoryAccessorGetter):
27331        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
27332        (WebCore::toV8):
27333        * bindings/v8/custom/V8PopStateEventCustom.cpp:
27334        (WebCore::V8PopStateEvent::stateAccessorGetter):
27335        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
27336        (WebCore::V8SQLTransactionSync::executeSqlCallback):
27337        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
27338        (WebCore::toV8):
27339        * bindings/v8/custom/V8SVGElementCustom.cpp:
27340        (WebCore::toV8):
27341        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
27342        (WebCore::toV8):
27343        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
27344        (WebCore::toV8):
27345        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
27346        (WebCore::toV8):
27347        * bindings/v8/custom/V8StyleSheetCustom.cpp:
27348        (WebCore::toV8):
27349        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
27350        (WebCore::V8StyleSheetList::namedPropertyGetter):
27351        * bindings/v8/custom/V8TrackEventCustom.cpp:
27352        (WebCore::V8TrackEvent::trackAccessorGetter):
27353        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
27354        (WebCore::toV8Object):
27355        (WebCore::getObjectParameter):
27356        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
27357        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
27358        (WebCore::V8WebGLRenderingContext::getParameterCallback):
27359        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
27360        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
27361        (WebCore::V8WebGLRenderingContext::getUniformCallback):
27362        * bindings/v8/custom/V8WorkerContextCustom.cpp:
27363        (WebCore::toV8):
27364        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
27365        (WebCore::V8XMLHttpRequest::responseAccessorGetter):
27366        * dom/make_names.pl:
27367        (printWrapperFunctions):
27368        (printWrapperFactoryCppFile):
27369        (printWrapperFactoryHeaderFile):
27370
273712012-09-06  Lauro Neto  <lauro.neto@openbossa.org>
27372
27373        [Qt] Deprecate String += operator
27374        https://bugs.webkit.org/show_bug.cgi?id=95895
27375
27376        Reviewed by Benjamin Poulain.
27377
27378        Replaced String +=() with append.
27379
27380        * platform/qt/RenderThemeQt.cpp:
27381        (WebCore::RenderThemeQt::extraMediaControlsStyleSheet):
27382
273832012-09-06  Michael Saboff  <msaboff@apple.com>
27384
27385        Add 8 bit string data path to TextRun
27386        https://bugs.webkit.org/show_bug.cgi?id=95812
27387
27388        Reviewed by Dan Bernstein.
27389
27390        Added 8 bit string path to TextRun.  Refactored TextRun::data() and ::characters into
27391        8 and 16 bit versions.  Made corresponding changes to users of TextRun.
27392        For efl, gtk, qt and win platform specific code using TextRun, only the methods have
27393        been renamed and the creation of 8 bit TextRuns has been disabled via compilation
27394        flags.  Someone knowledgeable in those platforms will need to make corresponding changes
27395        to enable 8 bit processing of TextRuns.
27396
27397        No changes to functionality - behavior covered by existing tests.
27398
27399        * platform/graphics/Font.cpp:
27400        (WebCore::normalizeSpacesInternal):
27401        (WebCore::Font::normalizeSpaces):
27402        (WebCore::Font:normalizeSpaces):
27403        (WebCore::Font::codePath):
27404        (WebCore::Font::expansionOpportunityCount):
27405        * platform/graphics/Font.h:
27406        (WebCore::Font::characterRangeCodePath):
27407        (WebCore::Font::normalizeSpaces):
27408        * platform/graphics/GraphicsContext.cpp:
27409        (WebCore::GraphicsContext::drawBidiText):
27410        * platform/graphics/TextRun.cpp:
27411        (ExpectedTextRunSize):
27412        * platform/graphics/TextRun.h:
27413        (WebCore::TextRun::TextRun):
27414        (WebCore::TextRun::subRun):
27415        (WebCore::TextRun::operator[]):
27416        (WebCore::TextRun::data8):
27417        (WebCore::TextRun::data16):
27418        (WebCore::TextRun::characters8):
27419        (WebCore::TextRun::characters16):
27420        (WebCore::TextRun::is8Bit):
27421        (WebCore::TextRun::setText):
27422        (WebCore::TextRun::setCharactersLength):
27423        * platform/graphics/WidthIterator.cpp:
27424        (WebCore::WidthIterator::WidthIterator):
27425        (WebCore::WidthIterator::advance):
27426        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
27427        (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
27428        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
27429        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
27430        * platform/graphics/mac/ComplexTextController.cpp:
27431        (WebCore::ComplexTextController::ComplexTextController):
27432        (WebCore::ComplexTextController::collectComplexTextRuns):
27433        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
27434        * platform/graphics/pango/FontPango.cpp:
27435        (WebCore::Font::drawComplexText):
27436        (WebCore::Font::floatWidthForComplexText):
27437        (WebCore::Font::offsetForPositionForComplexText):
27438        (WebCore::Font::selectionRectForComplexText):
27439        * platform/graphics/qt/FontQt.cpp:
27440        (WebCore::Font::drawComplexText):
27441        (WebCore::Font::floatWidthForComplexText):
27442        (WebCore::Font::offsetForPositionForComplexText):
27443        (WebCore::Font::selectionRectForComplexText):
27444        * platform/graphics/win/UniscribeController.cpp:
27445        (WebCore::UniscribeController::advance):
27446        (WebCore::UniscribeController::shapeAndPlaceItem):
27447        * rendering/RenderText.cpp:
27448        (WebCore::RenderText::computeCanUseSimpleFontCodePath):
27449        * rendering/svg/SVGTextMetrics.cpp:
27450        (WebCore::SVGTextMetrics::SVGTextMetrics):
27451        * rendering/svg/SVGTextMetricsBuilder.cpp:
27452        (WebCore::SVGTextMetricsBuilder::SVGTextMetricsBuilder):
27453        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
27454        * svg/SVGFontData.cpp:
27455        (WebCore::SVGFontData::applySVGGlyphSelection):
27456
274572012-09-06  James Robinson  <jamesr@chromium.org>
27458
27459        [chromium] Don't link cc in to WebKit.dll when use_libcc_for_compositor=1
27460        https://bugs.webkit.org/show_bug.cgi?id=96024
27461
27462        Reviewed by Adam Barth.
27463
27464        When use_libcc_for_compositor=1, the implementation of the compositor guts are provided through PlatformSupport.
27465        We don't need to link anything in to WebKit.dll.
27466
27467        * WebCore.gyp/WebCore.gyp:
27468
274692012-09-06  Simon Fraser  <simon.fraser@apple.com>
27470
27471        Parcel up logic related to sticky positioning into a Constraints class that will later be used for threaded scrolling
27472        https://bugs.webkit.org/show_bug.cgi?id=96026
27473
27474        Reviewed by James Robinson.
27475
27476        Lay some groundwork for threaded scrolling with fixed position and sticky
27477        position objects, by packaging up logic related to how to reposition
27478        fixed and sticky things on viewport changes into "constraints" classes.
27479        
27480        ScrollingConstraints contains a 'ViewportConstraints' base class
27481        that is subclassed for sticky position. These classes store
27482        data about the constraints that govern the position of an object outside
27483        of the render tree, and know how to compute a new position when the
27484        viewport changes using only data in the class.
27485        
27486        This patch changes RenderBoxModelObject to use the StickyPositionViewportConstraints
27487        class for computing stick offsets at layout time. In the future, we'll have
27488        the scrolling tree store copies of the constraint data for threaded scrolling.
27489        
27490        * CMakeLists.txt: Add ScrollingConstraints.* to the build.
27491        * GNUmakefile.list.am: Ditto
27492        * Target.pri: Ditto
27493        * WebCore.gypi: Ditto
27494        * WebCore.vcproj/WebCore.vcproj: Ditto
27495        * WebCore.xcodeproj/project.pbxproj: Ditto
27496        * page/scrolling/ScrollingConstraints.cpp: Added.
27497        (WebCore::StickyPositionViewportConstraints::computeStickyOffset):
27498        (WebCore::StickyPositionViewportConstraints::layerPositionForViewportRect):
27499        * page/scrolling/ScrollingConstraints.h: Added.
27500        (WebCore::ViewportConstraints::ViewportConstraints):
27501        (WebCore::ViewportConstraints::~ViewportConstraints):
27502        (WebCore::ViewportConstraints::anchorEdges):
27503        (WebCore::ViewportConstraints::hasAnchorEdge):
27504        (WebCore::ViewportConstraints::addAnchorEdge):
27505        (WebCore::ViewportConstraints::alignmentOffset):
27506        (WebCore::ViewportConstraints::setAlignmentOffset):
27507        (StickyPositionViewportConstraints):
27508        (WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
27509        (WebCore::StickyPositionViewportConstraints::stickyOffsetAtLastLayout):
27510        (WebCore::StickyPositionViewportConstraints::setStickyOffsetAtLastLayout):
27511        (WebCore::StickyPositionViewportConstraints::layerPositionAtLastLayout):
27512        (WebCore::StickyPositionViewportConstraints::setLayerPositionAtLastLayout):
27513        (WebCore::StickyPositionViewportConstraints::leftOffset):
27514        (WebCore::StickyPositionViewportConstraints::rightOffset):
27515        (WebCore::StickyPositionViewportConstraints::topOffset):
27516        (WebCore::StickyPositionViewportConstraints::bottomOffset):
27517        (WebCore::StickyPositionViewportConstraints::setLeftOffset):
27518        (WebCore::StickyPositionViewportConstraints::setRightOffset):
27519        (WebCore::StickyPositionViewportConstraints::setTopOffset):
27520        (WebCore::StickyPositionViewportConstraints::setBottomOffset):
27521        (WebCore::StickyPositionViewportConstraints::setAbsoluteContainingBlockRect):
27522        (WebCore::StickyPositionViewportConstraints::setAbsoluteStickyBoxRect):
27523        * rendering/RenderBoxModelObject.cpp:
27524        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints): Fill out
27525        data in the supplied StickyPositionViewportConstraints instance.
27526        (WebCore::RenderBoxModelObject::stickyPositionOffset): Create a
27527        StickyPositionViewportConstraints object on the stack and use it to
27528        compute the sticky offset.
27529        * rendering/RenderBoxModelObject.h:
27530        (RenderBoxModelObject):
27531
275322012-09-06  James Robinson  <jamesr@chromium.org>
27533
27534        [chromium] Use WebCompositorSupport functions instead of WebCompositor statics
27535        https://bugs.webkit.org/show_bug.cgi?id=96007
27536
27537        Reviewed by Adrienne Walker.
27538
27539        Calls WebCompositorSupport functions instead of WebCompositor statics.
27540
27541        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
27542        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
27543        * platform/graphics/chromium/DrawingBufferChromium.cpp:
27544        (WebCore::DrawingBuffer::DrawingBuffer):
27545
275462012-09-06  Alec Flett  <alecflett@chromium.org>
27547
27548        IndexedDB: make IDBKeyPath's string and array constructors explicit
27549        https://bugs.webkit.org/show_bug.cgi?id=96004
27550
27551        Reviewed by Tony Chang.
27552
27553        Making these explicit to avoid accidental implicit conversions.
27554
27555        No new tests, existing tests cover correctness.
27556
27557        * Modules/indexeddb/IDBKeyPath.h:
27558        (IDBKeyPath):
27559
275602012-09-06  Jeff Timanus  <twiz@chromium.org>
27561
27562        [Chromium] Remove contentsScale and related logic from GraphicsLayerChromium.
27563        https://bugs.webkit.org/show_bug.cgi?id=95094
27564
27565        Reviewed by Adrienne Walker.
27566
27567        In the short term, the page-scale logic is to be unified in the CCLayerTreeHost class.  This is a first pass to
27568        try to remove the page-scale logic from GraphicsLayerChromium.  This change should be a no-op in terms of
27569        contentsScale behaviour.
27570
27571        Testing covered by existing compositor layout and unit tests.
27572
27573        * platform/graphics/GraphicsLayer.h:
27574        (WebCore::GraphicsLayer::setAppliesPageScale):
27575        (WebCore::GraphicsLayer::appliesPageScale):
27576            These routines are now virtual, so that they can push the notification to setDisregardsContentsScale in
27577            LayerChromium.
27578        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27579        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
27580        (WebCore::GraphicsLayerChromium::setSize):
27581        (WebCore::GraphicsLayerChromium::setTransform):
27582        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
27583        (WebCore):
27584        (WebCore::GraphicsLayerChromium::setAppliesPageScale):
27585        (WebCore::GraphicsLayerChromium::appliesPageScale):
27586            Now forwards the appliesPageScaleStatus to the owned layer.
27587        * platform/graphics/chromium/GraphicsLayerChromium.h:
27588        (GraphicsLayerChromium):
27589        (WebCore::GraphicsLayerChromium::contentsLayer):
27590        * platform/graphics/chromium/LayerChromium.cpp:
27591        (WebCore::LayerChromium::LayerChromium):
27592        (WebCore::LayerChromium::setContentsScale):
27593        (WebCore):
27594        (WebCore::LayerChromium::setBoundsContainPageScale):
27595            setAppliesPageScale is renamed to setBoundsContainPageScale in LayerChromium.
27596        * platform/graphics/chromium/LayerChromium.h:
27597        (LayerChromium):
27598        (WebCore::LayerChromium::boundsContainPageScale):
27599        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
27600        (WebCore):
27601        (WebCore::setScale):
27602        (WebCore::updateLayerScale):
27603        (WebCore::CCLayerTreeHost::updateLayers):
27604            The contents scale of a layer is now applied in this routine.
27605
276062012-09-06  James Robinson  <jamesr@chromium.org>
27607
27608        [chromium] Split platform geometry types into separate static target
27609        https://bugs.webkit.org/show_bug.cgi?id=96021
27610
27611        Reviewed by Tony Chang.
27612
27613        This moves several WebCore/platform geometry classes out of webcore_platform into a separate static library.
27614        This library is relatively standalone and useful to statically link against in other contexts.
27615
27616        * WebCore.gyp/WebCore.gyp:
27617        * WebCore.gypi:
27618
276192012-09-06  Kenneth Rohde Christiansen  <kenneth@webkit.org>
27620
27621        [EFL] Fuzzy load the Edje theme for HTML forms
27622        https://bugs.webkit.org/show_bug.cgi?id=95832
27623
27624        Reviewed by Antonio Gomes.
27625
27626        Change the theme so that it is first loaded when actually used.
27627        This also fixed the case that it was impossible to change theme
27628        a second time.
27629
27630        Tested by current tests. API unit test coming in separate patch.
27631
27632        * platform/efl/RenderThemeEfl.cpp:
27633        (WebCore):
27634
27635            Add some convenience macros.
27636
27637       (WebCore::applyColorCallback):
27638
27639            Use just one callback from the edje theme, which just calls
27640            setColorFromThemeClass.
27641
27642        (WebCore::fillColorsFromEdjeClass):
27643
27644            Add convenience method for receiving colors from Edje and
27645            storing them in Color's.
27646
27647        (WebCore::RenderThemeEfl::setColorFromThemeClass):
27648
27649            Set the class Color variabled with the values from the theme
27650            color class.
27651
27652        (WebCore::RenderThemeEfl::setThemePath):
27653
27654            Don't apply the theme immediately.
27655
27656        (WebCore::RenderThemeEfl::loadTheme):
27657
27658            Load the new theme and free the current one. If it fails,
27659            it will continue using the old one, if exists.
27660
27661        (WebCore::RenderThemeEfl::adjustSizeConstraints):
27662        (WebCore::RenderThemeEfl::themePartCacheEntryReset):
27663        (WebCore::RenderThemeEfl::cacheThemePartNew):
27664        (WebCore::RenderThemeEfl::paintThemePart):
27665        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
27666        (WebCore::RenderThemeEfl::platformActiveSelectionBackgroundColor):
27667        (WebCore::RenderThemeEfl::platformInactiveSelectionBackgroundColor):
27668        (WebCore::RenderThemeEfl::platformActiveSelectionForegroundColor):
27669        (WebCore::RenderThemeEfl::platformInactiveSelectionForegroundColor):
27670        (WebCore::RenderThemeEfl::platformFocusRingColor):
27671
27672            Ensure the theme is loaded.
27673
27674        (WebCore::RenderThemeEfl::adjustCheckboxStyle):
27675        (WebCore::RenderThemeEfl::adjustRadioStyle):
27676        (WebCore::RenderThemeEfl::emitMediaButtonSignal):
27677
27678            Ensure the theme is loaded.
27679
27680        * platform/efl/RenderThemeEfl.h:
27681        (RenderThemeEfl):
27682        (WebCore::RenderThemeEfl::loadThemeIfNeeded):
27683
27684            Remove unneeded methods and add a method for loading a theme
27685            in the case it is not loaded yet.
27686
276872012-09-06  Simon Fraser  <simon.fraser@apple.com>
27688
27689        Move RenderView::setFixedPositionedObjectsNeedLayout to FrameView
27690        https://bugs.webkit.org/show_bug.cgi?id=96017
27691
27692        Reviewed by James Robinson.
27693
27694        FrameView already has a HashSet of RenderObjects whose position
27695        is affected by the viewport rect; this contains fixed and sticky-postion
27696        objects. RenderView::setFixedPositionedObjectsNeedLayout() was using
27697        the RenderView's list of postioned objects, but this omitted sticky-position
27698        objects whose container was not the RenderView. So it's simpler to use
27699        FrameView's set of fixed/sticky objects.
27700        
27701        Changed the terminology from "fixed" to "viewport-constrained" for this set
27702        of objects.
27703
27704        * page/FrameView.cpp:
27705        (WebCore::FrameView::useSlowRepaints):
27706        (WebCore::FrameView::addViewportConstrainedObject):
27707        (WebCore::FrameView::removeViewportConstrainedObject):
27708        (WebCore::FrameView::scrollContentsFastPath):
27709        (WebCore::FrameView::setFixedVisibleContentRect):
27710        (WebCore::FrameView::setViewportConstrainedObjectsNeedLayout):
27711        (WebCore::FrameView::repaintFixedElementsAfterScrolling):
27712        (WebCore::FrameView::updateFixedElementsAfterScrolling):
27713        * page/FrameView.h:
27714        (WebCore::FrameView::viewportConstrainedObjects):
27715        (WebCore::FrameView::hasViewportConstrainedObjects):
27716        * page/scrolling/ScrollingCoordinator.cpp:
27717        (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
27718        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
27719        * rendering/RenderBoxModelObject.cpp:
27720        (WebCore::RenderBoxModelObject::willBeDestroyed):
27721        (WebCore::RenderBoxModelObject::styleDidChange):
27722        * rendering/RenderView.cpp:
27723        * rendering/RenderView.h:
27724
277252012-09-06  Andrei Poenaru  <poenaru@adobe.com>
27726
27727        Web Inspector: Protocol Extension: Add "regionLayoutUpdate" event
27728        https://bugs.webkit.org/show_bug.cgi?id=93443
27729
27730        Reviewed by Alexander Pavlov.
27731
27732        Added "regionLayoutUpdate" event to the protocol.
27733
27734        Removed "getFlowByName" from protocol.
27735
27736        The front-end keeps in sync the requested Named Flow Collections.
27737
27738        Modified existing test: inspector/styles/protocol-css-regions-commands.html
27739
27740        * dom/NamedFlowCollection.cpp:
27741        (WebCore::NamedFlowCollection::ensureFlowWithName):
27742        (WebCore::NamedFlowCollection::discardNamedFlow):
27743        * inspector/Inspector.json:
27744        * inspector/InspectorCSSAgent.cpp:
27745        (UpdateRegionLayoutTask):
27746        (WebCore::UpdateRegionLayoutTask::reset):
27747        (WebCore):
27748        (WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask):
27749        (WebCore::UpdateRegionLayoutTask::scheduleFor):
27750        (WebCore::UpdateRegionLayoutTask::onTimer):
27751        (WebCore::InspectorCSSAgent::reset):
27752        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
27753        (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
27754        (WebCore::InspectorCSSAgent::didUpdateRegionLayout):
27755        (WebCore::InspectorCSSAgent::regionLayoutUpdated):
27756        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
27757        (WebCore::InspectorCSSAgent::documentNodeWithRequestedFlowsId):
27758        * inspector/InspectorCSSAgent.h:
27759        (WebCore):
27760        (InspectorCSSAgent):
27761        * inspector/InspectorInstrumentation.cpp:
27762        (WebCore):
27763        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
27764        (WebCore::InspectorInstrumentation::willRemoveNamedFlowImpl):
27765        (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl):
27766        * inspector/InspectorInstrumentation.h:
27767        (InspectorInstrumentation):
27768        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
27769        (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
27770        (WebCore):
27771        (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
27772        * inspector/front-end/CSSStyleModel.js:
27773        (WebInspector.CSSStyleModel):
27774        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync.callback):
27775        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
27776        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync.callback):
27777        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
27778        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
27779        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
27780        (WebInspector.CSSStyleModel.prototype._regionLayoutUpdated):
27781        (WebInspector.CSSStyleModel.prototype._resetNamedFlowCollections):
27782        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
27783        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
27784        (WebInspector.CSSDispatcher.prototype.regionLayoutUpdated):
27785        (WebInspector.NamedFlow):
27786        (WebInspector.NamedFlowCollection):
27787        (WebInspector.NamedFlowCollection.prototype.appendNamedFlow):
27788        (WebInspector.NamedFlowCollection.prototype.removeNamedFlow):
27789        (WebInspector.NamedFlowCollection.prototype.flowByName):
27790        * rendering/RenderNamedFlowThread.cpp:
27791        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
27792
277932012-09-06  Anna Cavender  <annacc@chromium.org>
27794
27795        ASSERT reached when TextTrack.mode is set to DISABLED.
27796        https://bugs.webkit.org/show_bug.cgi?id=94651
27797
27798        Reviewed by Eric Carlson.
27799
27800        This patch ensures that cues that have already been added to the
27801        cueTree in HTMLMediaElement, are not added again.
27802
27803        Test: media/track/track-mode-disabled-crash.html
27804
27805        * html/HTMLMediaElement.cpp:
27806        (WebCore::HTMLMediaElement::textTrackAddCue): Do not add the cue if it already
27807        exists in m_cueTree.
27808
278092012-09-06  Zan Dobersek  <zandobersek@gmail.com>
27810
27811        Another unreviewed GTK build fix.
27812
27813        The ENABLE_DATALIST_ELEMENT should default to 0, as it did in stable
27814        release versions before r127760. The feature define can be switched
27815        on later, when its stability is determined and the test results are
27816        rebaselined.
27817
27818        * GNUmakefile.features.am:
27819
278202012-09-06  David Barton  <dbarton@mathscribe.com>
27821
27822        mathml.css: Add more { white-space: nowrap } declarations
27823        https://bugs.webkit.org/show_bug.cgi?id=95404
27824
27825        Reviewed by Eric Seidel.
27826
27827        mathml.css declared { white-space: nowrap } for mrow, mfenced, msqrt. It is also needed
27828        for other tags such as msub, msup, msubsup.
27829
27830        Added a test to mathml/presentation/sup.xhtml, and a regression test to roots.xhtml.
27831
27832        * css/mathml.css:
27833        (mo, mrow, mfenced, mfrac, msub, msup, msubsup, munder, mover, munderover, msqrt, mroot):
27834
278352012-09-06  Robert Kroeger  <rjkroege@chromium.org>
27836
27837        [chromium] Enable different fling behaviour for touchscreen and touchpad
27838        https://bugs.webkit.org/show_bug.cgi?id=95756
27839
27840        Reviewed by James Robinson.
27841
27842        Add support for a flag on WebGestureEvents that differentiates GestureFlingStart
27843        events by their originating device and pass this flag to a factory that produces
27844        different device  specific fling curves based on the value of the flag.
27845
27846        Covered by existing layout and unit tests.
27847
27848        * platform/chromium/support/PlatformGestureCurveFactory.cpp: Modified  factory
27849        entry point for constructing fling curve for different devices.
27850        (WebKit::PlatformGestureCurveFactory::createCurve):
27851        * platform/chromium/support/PlatformGestureCurveFactory.h:
27852        (PlatformGestureCurveFactory):
27853
278542012-09-06  Tommy Widenflycht  <tommyw@google.com>
27855
27856        MediaStream API: Add the local and remote description functionality to RTCPeerConnection
27857        https://bugs.webkit.org/show_bug.cgi?id=95839
27858
27859        Reviewed by Adam Barth.
27860
27861        As well as adding the local/remote descriptions stuff, I removed the source attribute from
27862        RTCSessionDescriptionCallback and RTCErrorCallback since it has been removed from the draft.
27863
27864        Tests: fast/mediastream/RTCPeerConnection-localDescription.html
27865               fast/mediastream/RTCPeerConnection-remoteDescription.html
27866
27867        * CMakeLists.txt:
27868        * GNUmakefile.list.am:
27869        * Modules/mediastream/RTCErrorCallback.h:
27870        (RTCErrorCallback):
27871        * Modules/mediastream/RTCErrorCallback.idl:
27872        * Modules/mediastream/RTCPeerConnection.cpp:
27873        (WebCore::RTCPeerConnection::createOffer):
27874        (WebCore::RTCPeerConnection::setLocalDescription):
27875        (WebCore):
27876        (WebCore::RTCPeerConnection::localDescription):
27877        (WebCore::RTCPeerConnection::setRemoteDescription):
27878        (WebCore::RTCPeerConnection::remoteDescription):
27879        * Modules/mediastream/RTCPeerConnection.h:
27880        (WebCore):
27881        (RTCPeerConnection):
27882        * Modules/mediastream/RTCPeerConnection.idl:
27883        * Modules/mediastream/RTCSessionDescriptionCallback.h:
27884        (RTCSessionDescriptionCallback):
27885        * Modules/mediastream/RTCSessionDescriptionCallback.idl:
27886        * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
27887        (WebCore::RTCSessionDescriptionRequestImpl::create):
27888        (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
27889        (WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded):
27890        (WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
27891        (WebCore::RTCSessionDescriptionRequestImpl::clear):
27892        * Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
27893        (RTCSessionDescriptionRequestImpl):
27894        * Modules/mediastream/RTCVoidRequestImpl.cpp: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp.
27895        (WebCore):
27896        (WebCore::RTCVoidRequestImpl::create):
27897        (WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
27898        (WebCore::RTCVoidRequestImpl::~RTCVoidRequestImpl):
27899        (WebCore::RTCVoidRequestImpl::requestSucceeded):
27900        (WebCore::RTCVoidRequestImpl::requestFailed):
27901        (WebCore::RTCVoidRequestImpl::stop):
27902        (WebCore::RTCVoidRequestImpl::clear):
27903        * Modules/mediastream/RTCVoidRequestImpl.h: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.h.
27904        (WebCore):
27905        (RTCVoidRequestImpl):
27906        * WebCore.gypi:
27907        * platform/chromium/support/WebRTCVoidRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
27908        (WebKit):
27909        (WebKit::WebRTCVoidRequest::WebRTCVoidRequest):
27910        (WebKit::WebRTCVoidRequest::assign):
27911        (WebKit::WebRTCVoidRequest::reset):
27912        (WebKit::WebRTCVoidRequest::requestSucceeded):
27913        (WebKit::WebRTCVoidRequest::requestFailed):
27914        (ExtraDataContainer):
27915        (WebKit::ExtraDataContainer::ExtraDataContainer):
27916        (WebKit::ExtraDataContainer::extraData):
27917        (WebKit::WebRTCVoidRequest::extraData):
27918        (WebKit::WebRTCVoidRequest::setExtraData):
27919        * platform/mediastream/RTCPeerConnectionHandler.cpp:
27920        (RTCPeerConnectionHandlerDummy):
27921        (WebCore::RTCPeerConnectionHandlerDummy::setLocalDescription):
27922        (WebCore):
27923        (WebCore::RTCPeerConnectionHandlerDummy::setRemoteDescription):
27924        (WebCore::RTCPeerConnectionHandlerDummy::localDescription):
27925        (WebCore::RTCPeerConnectionHandlerDummy::remoteDescription):
27926        * platform/mediastream/RTCPeerConnectionHandler.h:
27927        (WebCore):
27928        (RTCPeerConnectionHandler):
27929        * platform/mediastream/RTCVoidRequest.h: Copied from Source/WebCore/Modules/mediastream/RTCErrorCallback.h.
27930        (WebCore):
27931        (RTCVoidRequest):
27932        (ExtraData):
27933        (WebCore::RTCVoidRequest::ExtraData::~ExtraData):
27934        (WebCore::RTCVoidRequest::~RTCVoidRequest):
27935        (WebCore::RTCVoidRequest::extraData):
27936        (WebCore::RTCVoidRequest::setExtraData):
27937        (WebCore::RTCVoidRequest::RTCVoidRequest):
27938        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
27939        (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
27940        (WebCore):
27941        (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
27942        (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
27943        (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
27944        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
27945        (RTCPeerConnectionHandlerChromium):
27946
279472012-09-06  Sam Weinig  <sam@webkit.org>
27948
27949        Fix one of the Qt builds.
27950
27951        * dom/TransformSource.h:
27952
279532012-09-06  Zan Dobersek  <zandobersek@gmail.com>
27954
27955        Unreviewed GTK build fix.
27956
27957        CSS Compositing is not currently supported on the GTK port, so
27958        the feature define should default to 0.
27959
27960        * GNUmakefile.features.am:
27961
279622012-09-05  James Robinson  <jamesr@chromium.org>
27963
27964        SharedGraphicsContext3D shouldn't depend on CCProxy
27965        https://bugs.webkit.org/show_bug.cgi?id=95921
27966
27967        Reviewed by Adrienne Walker.
27968
27969        This class just wants to ASSERT() that we're on or not on the main thread. There's perfectly fine cross-platform
27970        code in WTF to do that.
27971
27972        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
27973        (WebCore::SharedGraphicsContext3D::getForImplThread):
27974        (WebCore::SharedGraphicsContext3D::haveForImplThread):
27975        (WebCore::SharedGraphicsContext3D::createForImplThread):
27976
279772012-09-06  Zan Dobersek  <zandobersek@gmail.com>
27978
27979        [Gtk] Remove configuration options for features that are not supported by the Gtk port
27980        https://bugs.webkit.org/show_bug.cgi?id=87664
27981
27982        Reviewed by Martin Robinson.
27983
27984        Remove addition of macros to feature_defines for features that are completely
27985        unsupported by the Gtk port. They're not required anymore since the accompanying
27986        configuration flags are also being removed.
27987
27988        No new tests - no new functionality.
27989
27990        * GNUmakefile.am:
27991        * bindings/gobject/GNUmakefile.am:
27992
279932012-09-06  Max Vujovic  <mvujovic@adobe.com>
27994
27995        [CSS Shaders] Vertex attributes should be unbound after a custom filter is applied
27996        https://bugs.webkit.org/show_bug.cgi?id=95891
27997
27998        Reviewed by Dean Jackson.
27999
28000        Now we unbind the vertex attributes after a custom filter is applied.
28001
28002        Before this patch, Chromium's GPU process would sometimes print the following error message:
28003        "ERROR:gles2_cmd_decoder.cc(5142)] 002CA47B: GL ERROR :GL_INVALID_OPERATION : 
28004        glDrawElements: attempt to render with no buffer attached to enabled attribute 2"
28005
28006        This would happen in the following situation: 
28007        1) There are two FECustomFilters on the page.
28008        2) One FECustomFilter has a detached mesh. One FECustomFilter has an attached mesh. The 
28009           detached FECustomFilter has one more vertex attribute (a_triangleCoord) than the attached
28010           FECustomFilter.
28011        3) The detached FECustomFilter is destroyed, but a_triangleCoord remains bound.
28012        4) The attached FECustomFilter tries to render, but Chromium notices that there is no buffer
28013           attached to the a_triangleCoord attribute.
28014
28015        No new tests. We can't create an automated test for this because it only reproduces using
28016        Chromium's GPU process. DRT does not use Chromium's GPU process.
28017
28018        * platform/graphics/filters/FECustomFilter.cpp:
28019        (WebCore::FECustomFilter::applyShader):
28020            Unbind the vertex attributes after the drawElements call.
28021        (WebCore::FECustomFilter::unbindVertexAttribute):
28022        (WebCore):
28023        (WebCore::FECustomFilter::unbindVertexAttributes):
28024            Unbind all of the attributes that we bound earlier.
28025        * platform/graphics/filters/FECustomFilter.h:
28026        (FECustomFilter):
28027
280282012-09-05  Sam Weinig  <sam@webkit.org>
28029
28030        Part 2 of removing PlatformString.h, remove PlatformString.h
28031        https://bugs.webkit.org/show_bug.cgi?id=95931
28032
28033        Reviewed by Adam Barth.
28034
28035        Remove PlatformString.h
28036
28037        * GNUmakefile.list.am:
28038        * Modules/filesystem/AsyncFileWriter.h:
28039        * Modules/filesystem/DOMFilePath.h:
28040        * Modules/filesystem/DOMFileSystemBase.h:
28041        * Modules/filesystem/DirectoryEntry.h:
28042        * Modules/filesystem/DirectoryEntrySync.h:
28043        * Modules/filesystem/DirectoryReader.h:
28044        * Modules/filesystem/DirectoryReaderBase.h:
28045        * Modules/filesystem/DirectoryReaderSync.h:
28046        * Modules/filesystem/EntryBase.cpp:
28047        * Modules/filesystem/EntrySync.h:
28048        * Modules/filesystem/FileEntrySync.h:
28049        * Modules/filesystem/FileSystemCallbacks.h:
28050        * Modules/filesystem/LocalFileSystem.h:
28051        * Modules/geolocation/GeolocationError.h:
28052        * Modules/geolocation/Geoposition.h:
28053        * Modules/geolocation/PositionError.h:
28054        * Modules/indexeddb/IDBAny.h:
28055        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
28056        * Modules/indexeddb/IDBDatabaseCallbacks.h:
28057        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
28058        * Modules/indexeddb/IDBDatabaseError.h:
28059        * Modules/indexeddb/IDBFactory.h:
28060        * Modules/indexeddb/IDBFactoryBackendInterface.h:
28061        * Modules/indexeddb/IDBIndex.h:
28062        * Modules/indexeddb/IDBIndexBackendInterface.h:
28063        * Modules/indexeddb/IDBKey.h:
28064        * Modules/indexeddb/IDBKeyPath.h:
28065        * Modules/indexeddb/IDBMetadata.h:
28066        * Modules/indexeddb/IDBObjectStore.h:
28067        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
28068        * Modules/indexeddb/IDBTransactionBackendInterface.h:
28069        * Modules/indexeddb/IDBUpgradeNeededEvent.h:
28070        * Modules/indexeddb/IDBVersionChangeEvent.h:
28071        * Modules/mediastream/MediaStreamTrack.h:
28072        * Modules/networkinfo/NetworkInfoConnection.h:
28073        * Modules/notifications/DOMWindowNotifications.h:
28074        * Modules/speech/SpeechGrammar.h:
28075        * Modules/speech/SpeechRecognition.h:
28076        * Modules/speech/SpeechRecognitionAlternative.h:
28077        * Modules/speech/SpeechRecognitionClient.h:
28078        * Modules/speech/SpeechRecognitionError.h:
28079        * Modules/webaudio/AudioContext.cpp:
28080        * Modules/webaudio/AudioParam.h:
28081        * Modules/webdatabase/AbstractDatabase.h:
28082        * Modules/webdatabase/ChangeVersionWrapper.h:
28083        * Modules/webdatabase/DOMWindowWebDatabase.h:
28084        * Modules/webdatabase/Database.h:
28085        * Modules/webdatabase/DatabaseAuthorizer.cpp:
28086        * Modules/webdatabase/DatabaseAuthorizer.h:
28087        * Modules/webdatabase/DatabaseDetails.h:
28088        * Modules/webdatabase/DatabaseSync.h:
28089        * Modules/webdatabase/DatabaseTask.h:
28090        * Modules/webdatabase/DatabaseTracker.h:
28091        * Modules/webdatabase/OriginUsageRecord.h:
28092        * Modules/webdatabase/SQLError.h:
28093        * Modules/webdatabase/SQLStatement.h:
28094        * Modules/webdatabase/SQLStatementSync.h:
28095        * Modules/webdatabase/SQLTransaction.cpp:
28096        * Modules/webdatabase/SQLTransactionSync.cpp:
28097        * Modules/webdatabase/SQLTransactionSync.h:
28098        * Modules/webdatabase/WorkerContextWebDatabase.h:
28099        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
28100        * Modules/webdatabase/chromium/QuotaTracker.h:
28101        * Modules/websockets/ThreadableWebSocketChannel.cpp:
28102        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
28103        * Modules/websockets/WebSocketHandshake.h:
28104        * Modules/websockets/WebSocketHandshakeResponse.h:
28105        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
28106        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
28107        * WebCore.gypi:
28108        * WebCore.vcproj/WebCore.vcproj:
28109        * WebCore.xcodeproj/project.pbxproj:
28110        * bindings/gobject/ConvertToUTF8String.cpp:
28111        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
28112        * bindings/js/JSClipboardCustom.cpp:
28113        * bindings/js/JSImageDataCustom.cpp:
28114        * bindings/js/JSInspectorFrontendHostCustom.cpp:
28115        * bindings/js/JSLazyEventListener.h:
28116        * bindings/js/JSStorageCustom.cpp:
28117        * bindings/js/JSXSLTProcessorCustom.cpp:
28118        * bindings/js/JavaScriptCallFrame.cpp:
28119        * bindings/js/ScheduledAction.h:
28120        * bindings/js/ScriptDebugServer.h:
28121        * bindings/js/ScriptHeapSnapshot.h:
28122        * bindings/js/ScriptValue.h:
28123        * bindings/js/SerializedScriptValue.h:
28124        * bindings/objc/DOMCustomXPathNSResolver.mm:
28125        * bindings/objc/DOMXPath.mm:
28126        * bindings/objc/WebScriptObject.mm:
28127        * bindings/scripts/CodeGeneratorJS.pm:
28128        (AddIncludesForTypeInImpl):
28129        (AddIncludesForSVGAnimatedType):
28130        * bindings/scripts/CodeGeneratorV8.pm:
28131        (AddIncludesForType):
28132        * bindings/v8/Dictionary.h:
28133        * bindings/v8/JavaScriptCallFrame.h:
28134        * bindings/v8/NPV8Object.cpp:
28135        * bindings/v8/ScriptDebugServer.h:
28136        * bindings/v8/ScriptFunctionCall.h:
28137        * bindings/v8/ScriptHeapSnapshot.h:
28138        * bindings/v8/ScriptProfile.h:
28139        * bindings/v8/ScriptProfileNode.h:
28140        * bindings/v8/ScriptProfiler.h:
28141        * bindings/v8/ScriptSourceCode.h:
28142        * bindings/v8/V8Binding.cpp:
28143        * bindings/v8/V8DOMWrapper.h:
28144        * bindings/v8/V8LazyEventListener.h:
28145        * bindings/v8/V8NPUtils.cpp:
28146        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
28147        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
28148        * bindings/v8/custom/V8LocationCustom.cpp:
28149        * bridge/IdentifierRep.cpp:
28150        * bridge/NP_jsobject.cpp:
28151        * bridge/c/c_utility.cpp:
28152        * css/CSSBasicShapes.h:
28153        * css/CSSBorderImageSliceValue.cpp:
28154        * css/CSSCharsetRule.h:
28155        * css/CSSCursorImageValue.cpp:
28156        * css/CSSFontFaceSrcValue.h:
28157        * css/CSSGradientValue.cpp:
28158        * css/CSSInheritedValue.cpp:
28159        * css/CSSInitialValue.cpp:
28160        * css/CSSLineBoxContainValue.cpp:
28161        * css/CSSMediaRule.h:
28162        * css/CSSProperty.cpp:
28163        * css/CSSPropertySourceData.cpp:
28164        * css/CSSPropertySourceData.h:
28165        * css/CSSReflectValue.cpp:
28166        * css/CSSTimingFunctionValue.cpp:
28167        * css/CSSUnicodeRangeValue.cpp:
28168        * css/CSSValueList.cpp:
28169        * css/Counter.h:
28170        * css/FontFeatureValue.h:
28171        * css/FontValue.cpp:
28172        * css/MediaQuery.h:
28173        * css/MediaQueryEvaluator.h:
28174        * css/MediaQueryListListener.h:
28175        * css/ShadowValue.cpp:
28176        * css/StyleMedia.h:
28177        * css/StyleSheet.h:
28178        * css/StyleSheetList.cpp:
28179        * css/WebKitCSSMatrix.h:
28180        * css/WebKitCSSTransformValue.cpp:
28181        * dom/DOMStringList.h:
28182        * dom/DOMStringMap.h:
28183        * dom/DocumentMarker.h:
28184        * dom/ErrorEvent.h:
28185        * dom/ExceptionBase.h:
28186        * dom/MessagePortChannel.h:
28187        * dom/MutationRecord.h:
28188        * dom/TransformSource.h:
28189        * dom/ViewportArguments.cpp:
28190        * editing/DOMTransactionStep.h:
28191        * editing/EditingStyle.h:
28192        * editing/MarkupAccumulator.h:
28193        * editing/SmartReplaceICU.cpp:
28194        * editing/SpellChecker.h:
28195        * editing/SurroundingText.h:
28196        * fileapi/AsyncFileStream.cpp:
28197        * fileapi/Blob.h:
28198        * fileapi/BlobURL.cpp:
28199        * fileapi/File.h:
28200        * history/HistoryItem.h:
28201        * history/blackberry/HistoryItemViewState.h:
28202        * history/cf/HistoryPropertyList.h:
28203        * html/DOMFormData.cpp:
28204        * html/DOMURL.h:
28205        * html/MicroDataItemValue.h:
28206        * html/PublicURLManager.h:
28207        * html/canvas/CanvasPattern.cpp:
28208        * html/canvas/CanvasRenderingContext2D.h:
28209        * html/canvas/CanvasStyle.h:
28210        * html/canvas/WebGLActiveInfo.h:
28211        * html/canvas/WebGLGetInfo.h:
28212        * html/canvas/WebGLRenderingContext.h:
28213        * html/parser/CSSPreloadScanner.h:
28214        * html/parser/HTMLEntitySearch.h:
28215        * html/parser/HTMLEntityTable.h:
28216        * html/parser/HTMLMetaCharsetParser.cpp:
28217        * inspector/CodeGeneratorInspector.py:
28218        (InspectorFrontend_h):
28219        * inspector/ContentSearchUtils.h:
28220        * inspector/InjectedScript.cpp:
28221        * inspector/InjectedScriptBase.cpp:
28222        * inspector/InjectedScriptManager.h:
28223        * inspector/InjectedScriptModule.h:
28224        * inspector/InjectedScriptWebGLModule.h:
28225        * inspector/InspectorAgent.h:
28226        * inspector/InspectorCSSAgent.h:
28227        * inspector/InspectorController.h:
28228        * inspector/InspectorDOMDebuggerAgent.h:
28229        * inspector/InspectorDOMStorageAgent.h:
28230        * inspector/InspectorDatabaseAgent.h:
28231        * inspector/InspectorDatabaseResource.h:
28232        * inspector/InspectorFrontendClientLocal.cpp:
28233        * inspector/InspectorFrontendClientLocal.h:
28234        * inspector/InspectorFrontendHost.h:
28235        * inspector/InspectorIndexedDBAgent.h:
28236        * inspector/InspectorPageAgent.h:
28237        * inspector/InspectorProfilerAgent.h:
28238        * inspector/InspectorResourceAgent.h:
28239        * inspector/InspectorState.h:
28240        * inspector/InspectorStyleSheet.h:
28241        * inspector/InspectorStyleTextEditor.h:
28242        * inspector/InspectorValues.h:
28243        * inspector/InspectorWebGLAgent.h:
28244        * inspector/InspectorWorkerResource.h:
28245        * inspector/ScriptArguments.h:
28246        * inspector/ScriptBreakpoint.h:
28247        * inspector/ScriptCallFrame.h:
28248        * inspector/ScriptDebugListener.h:
28249        * inspector/TimelineRecordFactory.h:
28250        * inspector/generate-inspector-protocol-version:
28251        (main):
28252        * loader/DocumentLoader.cpp:
28253        * loader/DocumentWriter.h:
28254        * loader/FTPDirectoryParser.h:
28255        * loader/FormState.h:
28256        * loader/HistoryController.h:
28257        * loader/PolicyChecker.h:
28258        * loader/ResourceLoadScheduler.h:
28259        * loader/SubframeLoader.h:
28260        * loader/SubstituteData.h:
28261        * loader/WorkerThreadableLoader.h:
28262        * loader/appcache/ApplicationCache.h:
28263        * loader/appcache/ApplicationCacheGroup.h:
28264        * loader/archive/ArchiveFactory.cpp:
28265        * loader/archive/ArchiveResourceCollection.h:
28266        * loader/cache/CachedResource.h:
28267        * loader/cache/MemoryCache.h:
28268        * loader/icon/IconRecord.h:
28269        * loader/icon/PageURLRecord.h:
28270        * loader/mac/LoaderNSURLExtras.mm:
28271        * loader/win/DocumentLoaderWin.cpp:
28272        * page/Console.cpp:
28273        * page/Coordinates.h:
28274        * page/DOMSelection.cpp:
28275        * page/EventSource.cpp:
28276        * page/GroupSettings.h:
28277        * page/NavigatorBase.cpp:
28278        * page/OriginAccessEntry.h:
28279        * page/Page.h:
28280        * page/SecurityOrigin.h:
28281        * page/SpeechInputResult.h:
28282        * page/UserContentURLPattern.h:
28283        * page/WindowFeatures.cpp:
28284        * page/WindowFeatures.h:
28285        * page/WorkerNavigator.h:
28286        * page/animation/AnimationControllerPrivate.h:
28287        * platform/AsyncFileSystem.h:
28288        * platform/AsyncFileSystemCallbacks.h:
28289        * platform/ContentType.h:
28290        * platform/ContextMenu.h:
28291        * platform/ContextMenuItem.h:
28292        * platform/Cookie.h:
28293        * platform/CrossThreadCopier.cpp:
28294        * platform/DateComponents.cpp:
28295        * platform/FileChooser.h:
28296        * platform/FileStream.cpp:
28297        * platform/FileSystem.h:
28298        * platform/KURL.cpp:
28299        (WebCore):
28300        * platform/KURL.h:
28301        * platform/KURLHash.h:
28302        * platform/KillRing.h:
28303        * platform/Language.cpp:
28304        * platform/Length.cpp:
28305        * platform/LinkHash.cpp:
28306        * platform/Logging.cpp:
28307        * platform/MIMETypeRegistry.h:
28308        * platform/SSLKeyGenerator.h:
28309        * platform/SchemeRegistry.h:
28310        * platform/SharedBuffer.h:
28311        * platform/Theme.h:
28312        * platform/UUID.h:
28313        * platform/animation/Animation.h:
28314        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
28315        * platform/blackberry/CookieManager.h:
28316        * platform/blackberry/CookieMap.h:
28317        * platform/blackberry/DragDataBlackBerry.cpp:
28318        * platform/blackberry/KURLBlackBerry.cpp:
28319        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
28320        * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp:
28321        * platform/blackberry/TemporaryLinkStubs.cpp:
28322        * platform/cf/FileSystemCF.cpp:
28323        * platform/cf/SchedulePair.h:
28324        * platform/chromium/ChromiumDataObject.h:
28325        * platform/chromium/ClipboardUtilitiesChromium.cpp:
28326        * platform/chromium/DragDataChromium.cpp:
28327        * platform/chromium/FileSystemChromium.cpp:
28328        * platform/chromium/FileSystemChromiumMac.mm:
28329        * platform/chromium/LanguageChromium.cpp:
28330        * platform/chromium/SSLKeyGeneratorChromium.cpp:
28331        * platform/cocoa/KeyEventCocoa.mm:
28332        * platform/efl/ErrorsEfl.h:
28333        * platform/efl/LanguageEfl.cpp:
28334        * platform/efl/LocalizedStringsEfl.cpp:
28335        * platform/efl/LoggingEfl.cpp:
28336        * platform/efl/PasteboardEfl.cpp:
28337        * platform/efl/PlatformScreenEfl.cpp:
28338        * platform/graphics/ANGLEWebKitBridge.h:
28339        * platform/graphics/BitmapImage.cpp:
28340        * platform/graphics/FontPlatformData.cpp:
28341        * platform/graphics/GlyphPageTreeNode.cpp:
28342        * platform/graphics/GraphicsContext3D.h:
28343        * platform/graphics/GraphicsTypes.cpp:
28344        * platform/graphics/SegmentedFontData.cpp:
28345        * platform/graphics/blackberry/IconBlackBerry.cpp:
28346        * platform/graphics/blackberry/LayerData.h:
28347        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
28348        * platform/graphics/blackberry/LayerRenderer.cpp:
28349        * platform/graphics/blackberry/skia/PlatformSupport.h:
28350        * platform/graphics/ca/PlatformCALayer.h:
28351        * platform/graphics/ca/PlatformCALayerClient.h:
28352        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
28353        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
28354        * platform/graphics/cairo/ImageBufferCairo.cpp:
28355        * platform/graphics/cairo/PathCairo.cpp:
28356        * platform/graphics/cg/ImageSourceCGMac.mm:
28357        * platform/graphics/cg/PathCG.cpp:
28358        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
28359        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
28360        * platform/graphics/chromium/IconChromium.cpp:
28361        * platform/graphics/chromium/IconChromiumAndroid.cpp:
28362        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
28363        * platform/graphics/efl/IconEfl.cpp:
28364        * platform/graphics/filters/FEComposite.h:
28365        * platform/graphics/filters/FEDisplacementMap.h:
28366        * platform/graphics/filters/SourceAlpha.cpp:
28367        * platform/graphics/filters/SourceAlpha.h:
28368        * platform/graphics/filters/SourceGraphic.cpp:
28369        * platform/graphics/filters/SourceGraphic.h:
28370        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
28371        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
28372        * platform/graphics/mac/IconMac.mm:
28373        * platform/graphics/mac/ImageMac.mm:
28374        * platform/graphics/opentype/OpenTypeUtilities.h:
28375        * platform/graphics/openvg/PathOpenVG.cpp:
28376        * platform/graphics/pango/FontPlatformDataPango.cpp:
28377        * platform/graphics/qt/FontCacheQt.cpp:
28378        * platform/graphics/qt/FontPlatformDataQt.cpp:
28379        * platform/graphics/qt/IconQt.cpp:
28380        * platform/graphics/qt/ImageQt.cpp:
28381        * platform/graphics/qt/PathQt.cpp:
28382        * platform/graphics/skia/FontCustomPlatformData.h:
28383        * platform/graphics/skia/ImageSkia.cpp:
28384        * platform/graphics/win/FontCustomPlatformData.h:
28385        * platform/graphics/win/FontPlatformDataCGWin.cpp:
28386        * platform/graphics/win/FontPlatformDataCairoWin.cpp:
28387        * platform/graphics/win/FontPlatformDataWin.cpp:
28388        * platform/graphics/win/IconWin.cpp:
28389        * platform/graphics/win/ImageCGWin.cpp:
28390        * platform/graphics/win/ImageCairoWin.cpp:
28391        * platform/graphics/win/SimpleFontDataCGWin.cpp:
28392        * platform/graphics/wince/FontCustomPlatformData.h:
28393        * platform/graphics/wince/FontPlatformData.cpp:
28394        * platform/graphics/wince/ImageWinCE.cpp:
28395        * platform/graphics/wince/MediaPlayerProxy.cpp:
28396        * platform/graphics/wince/PathWinCE.cpp:
28397        * platform/graphics/wince/PlatformPathWinCE.cpp:
28398        * platform/graphics/wx/FontCacheWx.cpp:
28399        * platform/graphics/wx/FontPlatformDataWx.cpp:
28400        * platform/graphics/wx/IconWx.cpp:
28401        * platform/graphics/wx/PathWx.cpp:
28402        * platform/gtk/ErrorsGtk.h:
28403        * platform/gtk/FileSystemGtk.cpp:
28404        * platform/gtk/GtkPopupMenu.h:
28405        * platform/gtk/KeyBindingTranslator.h:
28406        * platform/gtk/LanguageGtk.cpp:
28407        * platform/gtk/LocalizedStringsGtk.cpp:
28408        * platform/gtk/LoggingGtk.cpp:
28409        * platform/gtk/PasteboardGtk.cpp:
28410        * platform/image-decoders/ImageDecoder.h:
28411        * platform/leveldb/LevelDBSlice.h:
28412        * platform/mac/FileSystemMac.mm:
28413        * platform/mediastream/MediaStreamSource.h:
28414        * platform/mock/GeolocationClientMock.h:
28415        * platform/network/BlobData.h:
28416        * platform/network/BlobRegistryImpl.h:
28417        * platform/network/BlobResourceHandle.h:
28418        * platform/network/Credential.h:
28419        * platform/network/FormData.h:
28420        * platform/network/FormDataBuilder.h:
28421        * platform/network/HTTPParsers.cpp:
28422        * platform/network/HTTPRequest.h:
28423        * platform/network/HTTPValidation.cpp:
28424        * platform/network/ProtectionSpace.h:
28425        * platform/network/ResourceErrorBase.h:
28426        * platform/network/SocketStreamErrorBase.h:
28427        * platform/network/blackberry/DNSBlackBerry.cpp:
28428        * platform/network/blackberry/DeferredData.h:
28429        * platform/network/blackberry/NetworkJob.h:
28430        * platform/network/cf/CookieJarCFNet.cpp:
28431        * platform/network/curl/CookieJarCurl.cpp:
28432        * platform/network/curl/ResourceHandleManager.h:
28433        * platform/network/qt/DnsPrefetchHelper.cpp:
28434        * platform/network/soup/ResourceRequestSoup.cpp:
28435        * platform/network/soup/ResourceResponseSoup.cpp:
28436        * platform/network/win/CookieJarWin.cpp:
28437        * platform/posix/FileSystemPOSIX.cpp:
28438        * platform/qt/ClipboardQt.cpp:
28439        * platform/qt/CookieJarQt.cpp:
28440        * platform/qt/FileSystemQt.cpp:
28441        * platform/qt/LanguageQt.cpp:
28442        * platform/qt/LocalizedStringsQt.cpp:
28443        * platform/qt/LoggingQt.cpp:
28444        * platform/qt/PlatformSupport.h:
28445        * platform/sql/SQLValue.h:
28446        * platform/sql/SQLiteDatabase.h:
28447        * platform/sql/SQLiteFileSystem.h:
28448        * platform/text/DecodeEscapeSequences.h:
28449        * platform/text/LineEnding.cpp:
28450        * platform/text/ParserUtilities.h:
28451        * platform/text/PlatformString.h: Removed.
28452        * platform/text/RegularExpression.h:
28453        * platform/text/SegmentedString.h:
28454        * platform/text/StringWithDirection.h:
28455        * platform/text/SuffixTree.h:
28456        * platform/text/TextBreakIteratorICU.cpp:
28457        * platform/text/TextCodec.cpp:
28458        * platform/text/TextCodec.h:
28459        * platform/text/TextCodecLatin1.cpp:
28460        * platform/text/TextCodecUTF16.cpp:
28461        * platform/text/TextCodecUserDefined.cpp:
28462        * platform/text/TextEncoding.cpp:
28463        * platform/text/blackberry/StringBlackBerry.cpp:
28464        * platform/text/cf/StringCF.cpp:
28465        * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp:
28466        * platform/text/gtk/TextCodecGtk.cpp:
28467        * platform/text/mac/StringMac.mm:
28468        * platform/text/mac/TextCodecMac.cpp:
28469        * platform/text/qt/TextCodecQt.cpp:
28470        * platform/text/win/TextCodecWin.h:
28471        * platform/text/wince/TextBreakIteratorWinCE.cpp:
28472        * platform/win/BString.cpp:
28473        * platform/win/DragDataWin.cpp:
28474        * platform/win/GDIObjectCounter.h:
28475        * platform/win/LoggingWin.cpp:
28476        * platform/win/WCDataObject.cpp:
28477        * platform/wince/DragDataWinCE.cpp:
28478        * platform/wx/ClipboardWx.cpp:
28479        * platform/wx/FileSystemWx.cpp:
28480        * platform/wx/LanguageWx.cpp:
28481        * platform/wx/LocalizedStringsWx.cpp:
28482        * platform/wx/LoggingWx.cpp:
28483        * platform/wx/PasteboardWx.cpp:
28484        * platform/wx/PopupMenuWx.cpp:
28485        * plugins/PluginData.h:
28486        * plugins/PluginDatabase.h:
28487        * plugins/PluginDebug.cpp:
28488        * plugins/PluginPackage.h:
28489        * plugins/PluginStream.h:
28490        * rendering/style/StyleDashboardRegion.h:
28491        * storage/Storage.cpp:
28492        * storage/StorageArea.h:
28493        * storage/StorageEvent.h:
28494        * storage/StorageEventDispatcher.h:
28495        * storage/StorageMap.h:
28496        * storage/StorageNamespace.h:
28497        * storage/StorageNamespaceImpl.h:
28498        * storage/StorageSyncManager.h:
28499        * storage/StorageTask.h:
28500        * storage/StorageTracker.h:
28501        * svg/SVGPathByteStreamBuilder.h:
28502        * svg/SVGPathParser.h:
28503        * svg/SVGPathStringSource.h:
28504        * svg/SVGStyledElement.cpp:
28505        * svg/animation/SMILTimeContainer.h:
28506        * svg/graphics/filters/SVGFilterBuilder.cpp:
28507        * svg/graphics/filters/SVGFilterBuilder.h:
28508        * testing/Internals.h:
28509        * workers/DefaultSharedWorkerRepository.cpp:
28510        * workers/WorkerLocation.cpp:
28511        * workers/WorkerThread.cpp:
28512        * xml/DOMParser.cpp:
28513        * xml/NativeXPathNSResolver.cpp:
28514        * xml/XMLSerializer.cpp:
28515        * xml/XMLSerializer.h:
28516        * xml/XPathExpression.cpp:
28517        * xml/XPathValue.h:
28518        * xml/XSLTUnicodeSort.cpp:
28519
285202012-09-06  Dana Jansens  <danakj@chromium.org>
28521
28522        [chromium] Add a customized copy() method to CCRenderPassDrawQuad
28523        https://bugs.webkit.org/show_bug.cgi?id=95871
28524
28525        Reviewed by Adrienne Walker.
28526
28527        CCRenderPassDrawQuad is special because a copied quad will need to
28528        point to a different RenderPass id, since new ids are given to copied
28529        RenderPasses. Add a custom copy() method to CCRenderPassDrawQuad that
28530        takes as input the new RenderPass id that should appear in the copied
28531        quad.
28532
28533        Test: CCDrawQuad.copyRenderPassDrawQuad
28534
28535        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
28536        (WebCore::CCDrawQuad::copy):
28537        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
28538        (WebCore::CCRenderPassDrawQuad::copy):
28539        (WebCore):
28540        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
28541        (CCRenderPassDrawQuad):
28542
285432012-09-06  Nikhil Bhargava  <nbhargava@google.com>
28544
28545        Remove extraneous includes (HTMLElement, SVGElement, GlyphBuffer, Clipboard)
28546        https://bugs.webkit.org/show_bug.cgi?id=95780
28547
28548        Reviewed by Eric Seidel.
28549
28550        Removes extraneous includes of type HTMLElement, SVGElement, GlyphBuffer,
28551        and Clipboard. There is a minor compile-time performance boost.
28552
28553        * Modules/mediastream/MediaStreamEvent.h:
28554        * dom/Event.cpp:
28555        * dom/Event.h:
28556        (WebCore):
28557        * dom/EventDispatchMediator.cpp:
28558        * dom/EventListenerMap.cpp:
28559        * dom/MouseRelatedEvent.h:
28560        * dom/UIEvent.cpp:
28561        * html/FormAssociatedElement.h:
28562        (WebCore):
28563        * inspector/TimelineRecordFactory.cpp:
28564        * platform/graphics/FontPlatformData.h:
28565        * rendering/RenderLineBoxList.h:
28566        * rendering/style/RenderStyle.h:
28567        (WebCore):
28568        * svg/SVGAnimatedType.h:
28569        * svg/SVGExternalResourcesRequired.cpp:
28570        * svg/SVGExternalResourcesRequired.h:
28571        (WebCore):
28572        * svg/SVGURIReference.h:
28573        (WebCore):
28574
285752012-09-06  Dan Bernstein  <mitz@apple.com>
28576
28577        REGRESSION(r127712): It broke http/tests/xmlhttprequest/basic-auth.html on JSC platforms
28578        https://bugs.webkit.org/show_bug.cgi?id=95972
28579
28580        Reverted r127712, because it was based on the false premise that “[Optional] works the way
28581        XMLHttpRequest expects”.
28582
28583        * bindings/js/JSXMLHttpRequestCustom.cpp:
28584        (WebCore::JSXMLHttpRequest::open):
28585        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
28586        (WebCore::V8XMLHttpRequest::openCallback):
28587        (WebCore):
28588        * xml/XMLHttpRequest.cpp:
28589        (WebCore::XMLHttpRequest::open):
28590        (WebCore):
28591        * xml/XMLHttpRequest.h:
28592        (XMLHttpRequest):
28593        * xml/XMLHttpRequest.idl:
28594
285952012-09-06  Keishi Hattori  <keishi@webkit.org>
28596
28597        Use native function bind in page popups
28598        https://bugs.webkit.org/show_bug.cgi?id=95976
28599
28600        Reviewed by Kent Tamura.
28601
28602        We should be using Function.prototype.bind instead of our own bind implementation.
28603
28604        No new tests. No behavior change.
28605
28606        * Resources/pagepopups/calendarPicker.js:
28607        (CalendarPicker):
28608        (CalendarPicker.prototype._layoutButtons):
28609        (YearMonthController.prototype.attachTo):
28610        (YearMonthController.prototype._attachLeftButtonsTo):
28611        (YearMonthController.prototype._attachRightButtonsTo):
28612        (DaysTable.prototype.attachTo):
28613        * Resources/pagepopups/colorSuggestionPicker.js:
28614        (ColorPicker):
28615        (ColorPicker.prototype._layout):
28616        * Resources/pagepopups/pickerCommon.js:
28617
286182012-09-06  Eugene Klyuchnikov  <eustas.bug@gmail.com>
28619
28620        Web Inspector: Timeline: cache "filteredRecords" for better scrolling performance.
28621        https://bugs.webkit.org/show_bug.cgi?id=95731
28622
28623        Reviewed by Yury Semikhatsky.
28624
28625        Now scrolling is sluggish on large datasets.
28626        Performance degrades, because each refresh causes DFS on all recorded items.
28627        Solution: caching/invalidation of DFS (filtering) results.
28628
28629        Also fixed "truncate selected record range on mode change" glitch.
28630
28631        * inspector/front-end/TimelinePanel.js:
28632        (WebInspector.TimelinePanel):
28633        (WebInspector.TimelinePanel.prototype._scheduleRefresh):
28634        Add flag for cache invalidation.
28635        * inspector/front-end/TimelinePresentationModel.js:
28636        (WebInspector.TimelinePresentationModel.prototype.invalidateFilteredRecords):
28637        Added.
28638        (WebInspector.TimelinePresentationModel.prototype.filteredRecords):
28639        Caching/using cached results.
28640
286412012-09-06  Ilya Tikhonovsky  <loislo@chromium.org>
28642
28643        Web Inspector: NMI: switch to hierarchical identifiers of MemoryBlockTypes and use these identifiers in protocol.
28644        https://bugs.webkit.org/show_bug.cgi?id=95957
28645
28646        Reviewed by Yury Semikhatsky.
28647
28648        Now when we use string identifiers as MemoryObjectType we can use them as the identifiers for the protocol
28649        instead of MemoryBlockNames hardcoded in InspectorMemoryAgent..
28650        At a later stage, when each type of memory will be counted in MemoryInstrumentation
28651        we will build the blocks hierarchy for the front-end automatically.
28652
28653        * dom/MemoryInstrumentation.cpp:
28654        (WebCore):
28655        * dom/MemoryInstrumentation.h:
28656        (GenericMemoryTypes):
28657        (WebCore::MemoryInstrumentation::addRootObject):
28658        (WebCore::MemoryObjectInfo::reportObjectInfo):
28659        (WebCoreMemoryTypes):
28660        * inspector/InspectorMemoryAgent.cpp:
28661        (MemoryBlockName):
28662        (WebCore):
28663        * inspector/MemoryInstrumentationImpl.cpp:
28664        (WebCore::MemoryInstrumentationImpl::countObjectSize):
28665        * inspector/front-end/NativeMemorySnapshotView.js:
28666        (WebInspector.MemoryBlockViewProperties._initialize):
28667        * loader/cache/CachedRawResource.cpp:
28668        (WebCore::CachedRawResource::reportMemoryUsage):
28669        * loader/cache/CachedResource.cpp:
28670        (WebCore::CachedResource::reportMemoryUsage):
28671        * loader/cache/CachedResourceHandle.cpp:
28672        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
28673        * platform/SharedBuffer.cpp:
28674        (WebCore::SharedBuffer::reportMemoryUsage):
28675
286762012-09-06  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
28677
28678        CSS 3 'overflow-wrap' property implementation
28679        https://bugs.webkit.org/show_bug.cgi?id=94475
28680
28681        Reviewed by Ojan Vafai.
28682
28683        Added 'overflow-wrap' property implementation according to
28684        http://www.w3.org/TR/2012/WD-css3-text-20120814/#overflow-wrap.
28685        The specification declares that 'word-wrap' as a shorthand
28686        for the 'overflow-wrap' property. So what was basically done
28687        is declaring of new 'overflow-wrap' property and renaming
28688        of the internal data structures from 'WordWrap' to 'OverflowWrap'.
28689        Both 'overflow-wrap' and 'word-wrap' properties share the same
28690        handlers and thus have the same behaviour.
28691
28692        Test: fast/text/overflow-wrap.html
28693
28694        * WebCore.order: Rename exported setWordWrap to setOverflowWrap.
28695        * css/CSSComputedStyleDeclaration.cpp:  Add CSSPropertyOverflowWrap to computedProperties.
28696        (WebCore):
28697        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
28698        * css/CSSParser.cpp: Validation for the 'overflow-wrap' property.
28699        (WebCore::isValidKeywordPropertyAndValue):
28700        (WebCore::isKeywordPropertyID):
28701        (WebCore::CSSParser::parseValue):
28702        * css/CSSPrimitiveValueMappings.h:
28703        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
28704        (WebCore::CSSPrimitiveValue::operator EOverflowWrap):
28705        * css/CSSProperty.cpp:
28706        (WebCore::CSSProperty::isInheritedProperty): CSSPropertyOverflowWrap is inherited.
28707        * css/CSSPropertyNames.in: Declare new 'overflow-wrap' property.
28708        * css/StyleBuilder.cpp: Assign property handler (same as for 'word-wrap').
28709        (WebCore::StyleBuilder::StyleBuilder):
28710        * css/StyleResolver.cpp:
28711        (WebCore::StyleResolver::collectMatchingRulesForList): Renaming.
28712        * rendering/RenderTextControl.cpp: Ditto.
28713        (WebCore::RenderTextControl::computeLogicalHeight):
28714        * rendering/RenderTextControlSingleLine.cpp: Ditto.
28715        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
28716        * rendering/style/RenderStyle.cpp: Ditto.
28717        (WebCore::RenderStyle::diff):
28718        * rendering/style/RenderStyle.h: Ditto.
28719        * rendering/style/RenderStyleConstants.h: Ditto.
28720        * rendering/style/StyleRareInheritedData.cpp: Ditto.
28721        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
28722        (WebCore::StyleRareInheritedData::operator==):
28723        * rendering/style/StyleRareInheritedData.h: Ditto.
28724        (StyleRareInheritedData):
28725
287262012-09-06  Arvid Nilsson  <anilsson@rim.com>
28727
28728        [BlackBerry] Always log shader compilation failure
28729        https://bugs.webkit.org/show_bug.cgi?id=95948
28730
28731        Reviewed by George Staikos.
28732
28733        Also add shader source to the logs. In addition, don't bail on the
28734        first failure, run through all shaders so we get a complete set of
28735        logs.
28736
28737        No new tests: no change in functionality.
28738
28739        * platform/graphics/blackberry/LayerRenderer.cpp:
28740        (WebCore::LayerRenderer::loadShader):
28741        (WebCore::LayerRenderer::initializeSharedGLObjects):
28742
287432012-09-06  Patrick Gansterer  <paroga@webkit.org>
28744
28745        Remove String::operator+=() from windows platform code
28746        https://bugs.webkit.org/show_bug.cgi?id=95904
28747
28748        Reviewed by Benjamin Poulain.
28749
28750        Use StringBuilder and operator+() to concatenate strings instead of operator+=().
28751
28752        * platform/win/ClipboardWin.cpp:
28753        (WebCore::filesystemPathFromUrlOrTitle):
28754
287552012-09-06  Keishi Hattori  <keishi@webkit.org>
28756
28757        Refactor CalendarPicker to not use global variables.
28758        https://bugs.webkit.org/show_bug.cgi?id=95830
28759
28760        Reviewed by Kent Tamura.
28761
28762        Introduce CalendarPicker so we can have multiple Pickers in one page
28763        popup in the future.
28764
28765        No new tests. No behavior change.
28766
28767        * Resources/pagepopups/calendarPicker.js:
28768        (initialize):
28769        (resetMain):
28770        (openCalendarPicker):
28771        (CalendarPicker):
28772        (CalendarPicker.prototype._layout):
28773        (CalendarPicker.prototype.handleToday):
28774        (CalendarPicker.prototype.handleClear):
28775        (CalendarPicker.prototype.fixWindowSize):
28776        (CalendarPicker.prototype._layoutButtons):
28777        (YearMonthController):
28778        (YearMonthController.prototype.attachTo):
28779        (YearMonthController.prototype._redraw):
28780        (YearMonthController.prototype._handleYearMonthChange):
28781        (YearMonthController.prototype.moveRelatively):
28782        (DaysTable):
28783        (DaysTable.prototype.attachTo):
28784        (CalendarPicker.prototype.stepMismatch):
28785        (CalendarPicker.prototype.outOfRange):
28786        (CalendarPicker.prototype.isValidDate):
28787        (DaysTable.prototype._renderMonth):
28788        (DaysTable.prototype._navigateToMonth):
28789        (DaysTable.prototype._maybeSetPreviousMonth):
28790        (DaysTable.prototype._maybeSetNextMonth):
28791        (DaysTable.prototype._handleDayClick):
28792        (DaysTable.prototype._handleKey):
28793        (CalendarPicker.prototype._handleBodyKeyDown):
28794        * Resources/pagepopups/colorSuggestionPicker.js:
28795        (ColorPicker):
28796        (ColorPicker.prototype._layout):
28797        (ColorPicker.prototype._handleKeyDown):
28798        (ColorPicker.prototype._handleSwatchClick):
28799        * Resources/pagepopups/pickerCommon.js:
28800        (Picker):
28801        (Picker.prototype.submitValue):
28802        (Picker.prototype.handleCancel):
28803        (Picker.prototype.chooseOtherColor):
28804
288052012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>
28806
28807        [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2
28808        https://bugs.webkit.org/show_bug.cgi?id=95965
28809
28810        Reviewed by Tor Arne Vestbø.
28811
28812        Moved all ANGLE build rules from here to Source/Thirty/ANGLE and
28813        instead depend on the new library with a simple WEBKIT += ANGLE.
28814
28815        * DerivedSources.pri:
28816        * Target.pri:
28817        * platform/graphics/ANGLEWebKitBridge.h: Simplify the include statement
28818        for the internal shader compiler API, aligned with the other platforms.
28819
288202012-09-06  Kangil Han  <kangil.han@samsung.com>
28821
28822        [EFL] Keep placeholder text visible until first input from user.
28823        https://bugs.webkit.org/show_bug.cgi?id=95851
28824
28825        Reviewed by Gyuyoung Kim.
28826
28827        Current specification, http://dev.w3.org/html5/spec/single-page.html#attr-input-placeholder, has allowed user agent to keep placeholder text until first input.
28828        Therefore, this patch enabled it.
28829
28830        * platform/efl/RenderThemeEfl.h:
28831        (WebCore::RenderThemeEfl::shouldShowPlaceholderWhenFocused):
28832
288332012-09-06  Elliott Sprehn  <esprehn@chromium.org>
28834
28835        Add new V8DependentRetained that allows keeping a v8::Object alive as long as another v8::Object is alive
28836        https://bugs.webkit.org/show_bug.cgi?id=95519
28837
28838        Reviewed by Adam Barth.
28839
28840        Add new V8DependentRetained that allows keeping a v8::Object alive as long as another
28841        v8::Object is alive. This is useful for keeping callbacks attached to wrappers without
28842        keeping strong references to v8::Objects in the C++ side which can result in leaks
28843        when cycles are created.
28844
28845        No new tests needed, this will be used to fix MutationObservers which will have tests.
28846
28847        * WebCore.gypi:
28848        * bindings/v8/V8DependentRetained.h: Added.
28849        (WebCore):
28850        (V8DependentRetained):
28851        (WebCore::V8DependentRetained::V8DependentRetained):
28852        (WebCore::V8DependentRetained::~V8DependentRetained):
28853        (WebCore::V8DependentRetained::get): Gets the v8::Object value.
28854        (WebCore::V8DependentRetained::isEmpty): Checks if the value is still alive.
28855        (WebCore::V8DependentRetained::createPropertyName):
28856        (WebCore::V8DependentRetained::ownerWeakCallback): Clear the value when the owner is released.
28857        (WebCore::V8DependentRetained::valueWeakCallback):
28858        (WebCore::V8DependentRetained::release):
28859        * bindings/v8/V8HiddenPropertyName.cpp:
28860        (WebCore::V8HiddenPropertyName::hiddenReferenceName): Modified to allow creating hidden String or Symbol names.
28861        * bindings/v8/V8HiddenPropertyName.h:
28862        (V8HiddenPropertyName):
28863        * bindings/v8/V8PerIsolateData.cpp:
28864        (WebCore::V8PerIsolateData::V8PerIsolateData):
28865        * bindings/v8/V8PerIsolateData.h:
28866        (WebCore::V8PerIsolateData::nextDependentRetainedId): Returns the next available hidden property index.
28867        (V8PerIsolateData):
28868
288692012-09-06  Otto Derek Cheung  <otcheung@rim.com>
28870
28871        [BlackBerry] Removing String operator += uses in Cookie Files
28872        https://bugs.webkit.org/show_bug.cgi?id=95884
28873
28874        Reviewed by Rob Buis.
28875
28876        Replacing all usages of String operator +=  in the Cookie code because it is being deprecated.
28877        String concats are now done using + or StringBuilder.
28878
28879        PR 203054
28880
28881        Tested using Browser Test Cookie suite on browsertest01.rim.net/networking/cookies.
28882
28883        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
28884        (WebCore::CookieDatabaseBackingStore::upgradeTableIfNeeded):
28885        (WebCore::CookieDatabaseBackingStore::invokeOpen):
28886        (WebCore::CookieDatabaseBackingStore::invokeRemoveAll):
28887        * platform/blackberry/CookieManager.cpp:
28888        (WebCore::CookieManager::getRawCookies):
28889
288902012-09-06  Dana Jansens  <danakj@chromium.org>
28891
28892        [chromium] Add a copy() method to CCRenderPass
28893        https://bugs.webkit.org/show_bug.cgi?id=95485
28894
28895        Reviewed by Adrienne Walker.
28896
28897        This method allows the ubercomp layer to make a clone of its delegated
28898        RenderPasses to insert into the current frame.
28899
28900        Tests: CCRenderPassTest.copyShouldBeIdenticalExceptIdAndQuads
28901
28902        * platform/graphics/chromium/cc/CCRenderPass.cpp:
28903        (WebCore::CCRenderPass::copy):
28904        (WebCore):
28905        * platform/graphics/chromium/cc/CCRenderPass.h:
28906        (CCRenderPass):
28907
289082012-09-06  Adam Barth  <abarth@chromium.org>
28909
28910        XMLHttpRequest.open does not need custom bindings
28911        https://bugs.webkit.org/show_bug.cgi?id=95903
28912
28913        Reviewed by Kentaro Hara.
28914
28915        There doesn't appear to be any reason that XMLHttpRequest.open needs
28916        custom bindings now that [Optional] works the way XMLHttpRequest
28917        expects.
28918
28919        * bindings/js/JSXMLHttpRequestCustom.cpp:
28920        (WebCore):
28921        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
28922        * xml/XMLHttpRequest.cpp:
28923        (WebCore::XMLHttpRequest::open):
28924        (WebCore):
28925        (WebCore::XMLHttpRequest::internalOpen):
28926        * xml/XMLHttpRequest.h:
28927        (XMLHttpRequest):
28928        * xml/XMLHttpRequest.idl:
28929
289302012-09-06  Adam Barth  <abarth@chromium.org>
28931
28932        Three XSLTProcessor functions don't need to be [Custom]
28933        https://bugs.webkit.org/show_bug.cgi?id=95899
28934
28935        Reviewed by Kentaro Hara.
28936
28937        These functions are marked [Custom] because they predate our
28938        improvements to [Optional]. Now that we have
28939        [Optional=DefaultIsUndefined], we can autogenerate these functions.
28940
28941        There is a (slight!) difference in behavior. Now, in the case of a type
28942        error, we return null instead of undefined. This change is unlikely to
28943        cause compatibility problems because the vast majority of folks will
28944        pass the correct arguments, and, in the few cases where folks pass the
28945        wrong argument types, null and undefined will likely work similarly
28946        (e.g., they're both falsy and throw when you try to access properties).
28947
28948        * bindings/js/JSXSLTProcessorCustom.cpp:
28949        * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
28950        * xml/XSLTProcessor.cpp:
28951        (WebCore::XSLTProcessor::transformToDocument):
28952        (WebCore::XSLTProcessor::transformToFragment):
28953        * xml/XSLTProcessor.h:
28954        (WebCore::XSLTProcessor::importStylesheet):
28955        * xml/XSLTProcessor.idl:
28956
289572012-09-06  Patrick Gansterer  <paroga@webkit.org>
28958
28959        Remove String::operator+=() from plugin code
28960        https://bugs.webkit.org/show_bug.cgi?id=95896
28961
28962        Reviewed by Adam Barth.
28963
28964        Use operator+() to concatenate strings instead of operator+=().
28965
28966        * plugins/PluginView.cpp:
28967        (WebCore::parseRFC822HeaderFields):
28968
289692012-09-06  Patrick Gansterer  <paroga@webkit.org>
28970
28971        More fixes for String::operator+=() in Debug mode
28972        https://bugs.webkit.org/show_bug.cgi?id=95888
28973
28974        Reviewed by Adam Barth.
28975
28976        Use StringBuilder to concatenate strings instead of operator+=().
28977
28978        * dom/Element.cpp:
28979        (WebCore::Element::formatForDebugger):
28980        * dom/Node.cpp:
28981        (WebCore::appendAttributeDesc):
28982        (WebCore::Node::showNode):
28983        (WebCore::traverseTreeAndMark):
28984        (WebCore::Node::formatForDebugger):
28985        * dom/Position.cpp:
28986        (WebCore::Position::formatForDebugger):
28987        * dom/Range.cpp:
28988        (WebCore):
28989        (WebCore::Range::formatForDebugger):
28990        * dom/Text.cpp:
28991        (WebCore::Text::formatForDebugger):
28992        * editing/VisibleSelection.cpp:
28993        (WebCore::VisibleSelection::formatForDebugger):
28994
289952012-09-04  Vsevolod Vlasov  <vsevik@chromium.org>
28996
28997        Web Inspector: Fix inconsistencies in NetworkUISourceCodeProvider implementation.
28998        https://bugs.webkit.org/show_bug.cgi?id=95752
28999
29000        Reviewed by Alexander Pavlov.
29001
29002        NetworkUISourceCodeProvider does not receive ResourceAdded event until resource is finished anymore.
29003        StylesSourceMapping now listens for workspace event instead of being called directly by NetworkUISourceCodeProvider.
29004        StylesSourceMapping is now created from inspector.js.
29005        ProjectDidReset event introduced instead of setTimeout hacks in mappings.
29006
29007        * inspector/front-end/NetworkUISourceCodeProvider.js:
29008        (WebInspector.NetworkUISourceCodeProvider):
29009        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
29010        (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
29011        (WebInspector.NetworkUISourceCodeProvider.prototype._projectDidReset):
29012        * inspector/front-end/ResourceTreeModel.js:
29013        (WebInspector.ResourceTreeModel):
29014        (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
29015        * inspector/front-end/ScriptSnippetModel.js:
29016        (WebInspector.ScriptSnippetModel):
29017        (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
29018        (WebInspector.ScriptSnippetModel.prototype._projectDidReset):
29019        * inspector/front-end/StylesSourceMapping.js:
29020        (WebInspector.StylesSourceMapping):
29021        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
29022        (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
29023        (WebInspector.StylesSourceMapping.prototype._reset):
29024        * inspector/front-end/Workspace.js:
29025        (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
29026        (WebInspector.Project.prototype.reset):
29027        * inspector/front-end/inspector.js:
29028
290292012-09-06  Sheriff Bot  <webkit.review.bot@gmail.com>
29030
29031        Unreviewed, rolling out r127700.
29032        http://trac.webkit.org/changeset/127700
29033        https://bugs.webkit.org/show_bug.cgi?id=95941
29034
29035        Breaks inspector closure compilation, uses not defined
29036        variables. (Requested by vsevik on #webkit).
29037
29038        * dom/NamedFlowCollection.cpp:
29039        (WebCore::NamedFlowCollection::ensureFlowWithName):
29040        (WebCore::NamedFlowCollection::discardNamedFlow):
29041        * inspector/Inspector.json:
29042        * inspector/InspectorCSSAgent.cpp:
29043        (WebCore::InspectorCSSAgent::reset):
29044        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
29045        (WebCore::InspectorCSSAgent::didRemoveNamedFlow):
29046        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
29047        (WebCore::InspectorCSSAgent::getFlowByName):
29048        (WebCore):
29049        * inspector/InspectorCSSAgent.h:
29050        (WebCore):
29051        (InspectorCSSAgent):
29052        * inspector/InspectorInstrumentation.cpp:
29053        (WebCore):
29054        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
29055        (WebCore::InspectorInstrumentation::didRemoveNamedFlowImpl):
29056        * inspector/InspectorInstrumentation.h:
29057        (InspectorInstrumentation):
29058        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
29059        (WebCore::InspectorInstrumentation::didRemoveNamedFlow):
29060        * inspector/front-end/CSSStyleModel.js:
29061        (WebInspector.CSSStyleModel):
29062        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
29063        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
29064        (WebInspector.CSSStyleModel.prototype._namedFlowCreated.callback):
29065        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
29066        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved.callback):
29067        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
29068        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
29069        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
29070        (WebInspector.NamedFlow):
29071        (WebInspector.NamedFlow.parsePayloadArray):
29072        * rendering/RenderNamedFlowThread.cpp:
29073        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
29074
290752012-09-06  Adam Barth  <abarth@chromium.org>
29076
29077        [V8] V8HTMLDocument has two out-of-style function names
29078        https://bugs.webkit.org/show_bug.cgi?id=95893
29079
29080        Reviewed by Kentaro Hara.
29081
29082        Just a simple style cleanup.
29083
29084        * bindings/scripts/CodeGeneratorV8.pm:
29085        (GenerateHeader):
29086        * bindings/v8/V8DOMWindowShell.cpp:
29087        (WebCore::getter):
29088        * bindings/v8/V8DOMWrapper.cpp:
29089        (WebCore::V8DOMWrapper::instantiateV8Object):
29090        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
29091        (WebCore::V8HTMLDocument::wrapInShadowObject):
29092        (WebCore::V8HTMLDocument::getNamedProperty):
29093
290942012-09-05  Andrei Poenaru  <poenaru@adobe.com>
29095
29096        Web Inspector: Protocol Extension: Add "regionLayoutUpdate" event
29097        https://bugs.webkit.org/show_bug.cgi?id=93443
29098
29099        Reviewed by Alexander Pavlov.
29100
29101        Added "regionLayoutUpdate" event to the protocol.
29102
29103        Removed "getFlowByName" from protocol.
29104
29105        The front-end keeps in sync the requested Named Flow Collections.
29106
29107        Modified existing test: inspector/styles/protocol-css-regions-commands.html
29108
29109        * dom/NamedFlowCollection.cpp:
29110        (WebCore::NamedFlowCollection::ensureFlowWithName):
29111        (WebCore::NamedFlowCollection::discardNamedFlow):
29112        * inspector/Inspector.json:
29113        * inspector/InspectorCSSAgent.cpp:
29114        (UpdateRegionLayoutTask):
29115        (WebCore::UpdateRegionLayoutTask::reset):
29116        (WebCore):
29117        (WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask):
29118        (WebCore::UpdateRegionLayoutTask::scheduleFor):
29119        (WebCore::UpdateRegionLayoutTask::onTimer):
29120        (WebCore::InspectorCSSAgent::reset):
29121        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
29122        (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
29123        (WebCore::InspectorCSSAgent::didUpdateRegionLayout):
29124        (WebCore::InspectorCSSAgent::regionLayoutUpdated):
29125        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
29126        (WebCore::InspectorCSSAgent::documentNodeWithRequestedFlowsId):
29127        * inspector/InspectorCSSAgent.h:
29128        (WebCore):
29129        (InspectorCSSAgent):
29130        * inspector/InspectorInstrumentation.cpp:
29131        (WebCore):
29132        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
29133        (WebCore::InspectorInstrumentation::willRemoveNamedFlowImpl):
29134        (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl):
29135        * inspector/InspectorInstrumentation.h:
29136        (InspectorInstrumentation):
29137        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
29138        (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
29139        (WebCore):
29140        (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
29141        * inspector/front-end/CSSStyleModel.js:
29142        (WebInspector.CSSStyleModel):
29143        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync.callback):
29144        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
29145        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync.callback):
29146        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
29147        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
29148        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
29149        (WebInspector.CSSStyleModel.prototype._regionLayoutUpdated):
29150        (WebInspector.CSSStyleModel.prototype._resetNamedFlowCollections):
29151        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
29152        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
29153        (WebInspector.CSSDispatcher.prototype.regionLayoutUpdated):
29154        (WebInspector.NamedFlow):
29155        (WebInspector.NamedFlowCollection):
29156        (WebInspector.NamedFlowCollection.prototype.appendNamedFlow):
29157        (WebInspector.NamedFlowCollection.prototype.removeNamedFlow):
29158        (WebInspector.NamedFlowCollection.prototype.flowByName):
29159        * rendering/RenderNamedFlowThread.cpp:
29160        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
29161
291622012-09-05  Dana Jansens  <danakj@chromium.org>
29163
29164        [chromium] Add a copy() method to CCDrawQuad and CCSharedQuadState
29165        https://bugs.webkit.org/show_bug.cgi?id=95374
29166
29167        Reviewed by Adrienne Walker.
29168
29169        The ubercomp layer will hold a RenderPass full of DrawQuads, and needs
29170        to add quads to the current frame in appendQuads(). It will do this by
29171        copying the quads it has in its RenderPass into the frame's RenderPass.
29172
29173        These methods allows it to make a clone of its quads.
29174
29175        Test: CCDrawQuadTest.copySharedQuadState
29176              CCDrawQuadTest.copyCheckerboardDrawQuad
29177              CCDrawQuadTest.copyDebugBorderDrawQuad
29178              CCDrawQuadTest.copyIOSurfaceDrawQuad
29179              CCDrawQuadTest.copyRenderPassDrawQuad
29180              CCDrawQuadTest.copySolidColorDrawQuad
29181              CCDrawQuadTest.copyStreamVideoDrawQuad
29182              CCDrawQuadTest.copyTextureDrawQuad
29183              CCDrawQuadTest.copyTileDrawQuadcopy
29184              CCDrawQuadTest.copyYUVVideoDrawQuad
29185
29186        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
29187        (WebCore::CCDrawQuad::copy):
29188        (WebCore):
29189        * platform/graphics/chromium/cc/CCDrawQuad.h:
29190        (CCDrawQuad):
29191        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
29192        (WebCore::CCSharedQuadState::copy):
29193        (WebCore):
29194        * platform/graphics/chromium/cc/CCSharedQuadState.h:
29195        (CCSharedQuadState):
29196
291972012-09-05  Tim Horton  <timothy_horton@apple.com>
29198
29199        Unreviewed; revert a change to ScrollingTreeNodeMac which accidentally
29200        slipped into http://trac.webkit.org/changeset/127474.
29201
29202        This change will be properly landed shortly as part of
29203        https://bugs.webkit.org/show_bug.cgi?id=93898.
29204
29205        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
29206        (WebCore::ScrollingTreeNodeMac::update):
29207
292082012-09-05  Nate Chapin  <japhet@chromium.org>
29209
29210        Remove duplicate error() impls in CachedResource subclasses
29211        https://bugs.webkit.org/show_bug.cgi?id=81161
29212
29213        Reviewed by Antti Koivisto.
29214
29215        No new tests, refactor only.
29216
29217        * loader/cache/CachedCSSStyleSheet.cpp:
29218        * loader/cache/CachedCSSStyleSheet.h:
29219        * loader/cache/CachedFont.cpp:
29220        * loader/cache/CachedFont.h:
29221        * loader/cache/CachedImage.cpp:
29222        * loader/cache/CachedResource.h: Make checkNotify()
29223             virtual, so the right checkNotify() gets called in error().
29224        * loader/cache/CachedScript.cpp:
29225        * loader/cache/CachedScript.h:
29226        * loader/cache/CachedXSLStyleSheet.cpp:
29227        * loader/cache/CachedXSLStyleSheet.h:
29228
292292012-09-05  James Robinson  <jamesr@chromium.org>
29230
29231        Unreviewed chromium windows build fix.
29232
29233        Some of the rules in webcore_remaining only apply to files under WebCore/platform/. Since r127687 moved all such
29234        files from the webcore_files variable to webcore_platform_files, these rules have to be applied to
29235        webcore_platform instead. This also means that these files link into webcore_platform instead of
29236        webcore_remaining, which makes a lot more sense, and we can delete several redundant rules.
29237
29238        * WebCore.gyp/WebCore.gyp:
29239
292402012-09-05  Nate Chapin  <japhet@chromium.org>
29241
29242        [chromium] Some SubstituteData loads broken after r121912
29243        https://bugs.webkit.org/show_bug.cgi?id=91685
29244
29245        Reviewed by Adam Barth.
29246
29247        Test: WebFrameTest.ReplaceNavigationAfterHistoryNavigation in chromium's webkit_unit_tests.
29248
29249        * loader/DocumentLoader.cpp:
29250        (WebCore::DocumentLoader::commitData): receivedFirstData() should be called exactly once per load,
29251            on the first commit. I had mistakely assumed in r121912 that isReplacing() was true only for multipart
29252            loads, and only after the first commit (chromium uses it for some SubstituteData loads to ensure the error page
29253            replaces the failed load). We need to check whether we are loading multipart content before assuming isReplacing()
29254            will tell us what we need to know.
29255
292562012-09-05  James Robinson  <jamesr@chromium.org>
29257
29258        [chromium] Put webcore_platform_files in separate gyp target instead of relying on exclusion patterns
29259        https://bugs.webkit.org/show_bug.cgi?id=95876
29260
29261        Reviewed by Tony Chang.
29262
29263        This puts the list of WebCore/platform files in a webcore_platform_files gyp variable instead of filtering by
29264        path out of webcore_files. This simplifies the .gyp a bit and makes it possible to split this target up further.
29265
29266        * WebCore.gyp/WebCore.gyp:
29267        * WebCore.gypi:
29268
292692012-09-05  Joshua Bell  <jsbell@chromium.org>
29270
29271        IndexedDB: Large integer versions not persisted correctly
29272        https://bugs.webkit.org/show_bug.cgi?id=95873
29273
29274        Reviewed by Tony Chang.
29275
29276        Correctly encode AND decode integer versions numbers as VarInts.
29277
29278        Test: storage/indexeddb/intversion-encoding.html
29279
29280        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
29281        (WebCore::getVarInt):
29282        (WebCore):
29283        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
29284
292852012-09-05  Sheriff Bot  <webkit.review.bot@gmail.com>
29286
29287        Unreviewed, rolling out r127596.
29288        http://trac.webkit.org/changeset/127596
29289        https://bugs.webkit.org/show_bug.cgi?id=95928
29290
29291        newly added tests are failing (Requested by bashi1 on
29292        #webkit).
29293
29294        * rendering/RenderBox.cpp:
29295        (WebCore::RenderBox::computePositionedLogicalWidth):
29296        * rendering/RenderRegion.cpp:
29297        * rendering/RenderRegion.h:
29298        (RenderRegion):
29299
293002012-09-05  Arnaud Renevier  <a.renevier@sisa.samsung.com>
29301
29302        Build failure with accelerated compositing disabled
29303        https://bugs.webkit.org/show_bug.cgi?id=95872
29304
29305        Reviewed by James Robinson.
29306
29307        Define DrawingBuffer::markContextChanged even when accelerated
29308        compositing is not used.
29309
29310        No functional change, so no new tests.
29311
29312        * platform/graphics/gpu/DrawingBuffer.h:
29313        (WebCore::DrawingBuffer::markContentsChanged):
29314        (DrawingBuffer):
29315
293162012-09-05  Michelangelo De Simone  <michelangelo@webkit.org>
29317
29318        Parse the array() function for custom filters
29319        https://bugs.webkit.org/show_bug.cgi?id=94226
29320
29321        Reviewed by Dirk Schulze.
29322
29323        The patch adds the support for the array() function parsing;
29324        according to the specs this function - to be used within custom
29325        filters - accepts number (float) values. This patch parses array()
29326        arguments using comma as separator: the spec will be updated
29327        accordingly shortly.
29328
29329        * GNUmakefile.list.am:
29330        * Target.pri:
29331        * WebCore.gypi:
29332        * WebCore.vcproj/WebCore.vcproj:
29333        * WebCore.xcodeproj/project.pbxproj:
29334        * css/CSSParser.cpp:
29335        (WebCore::CSSParser::parseCustomFilterArrayFunction): New method to
29336        parse the content of array() function.
29337        (WebCore):
29338        (WebCore::CSSParser::parseCustomFilter): parseCustomFilterArrayFunction is
29339        called whenever a "array(" function is encountered.
29340        * css/CSSParser.h:
29341        (WebCore):
29342        * css/CSSValue.cpp:
29343        (WebCore::CSSValue::reportMemoryUsage):
29344        (WebCore::CSSValue::cssText):
29345        (WebCore::CSSValue::destroy):
29346        (WebCore::CSSValue::cloneForCSSOM):
29347        * css/CSSValue.h:
29348        (WebCore::CSSValue::isWebKitCSSArrayFunctionValue):
29349        * css/WebKitCSSArrayFunctionValue.cpp: Added.
29350        (WebCore):
29351        (WebCore::WebKitCSSArrayFunctionValue::WebKitCSSArrayFunctionValue):
29352        (WebCore::WebKitCSSArrayFunctionValue::customCssText):
29353        (WebCore::WebKitCSSArrayFunctionValue::cloneForCSSOM):
29354        (WebCore::WebKitCSSArrayFunctionValue::reportDescendantMemoryUsage):
29355        * css/WebKitCSSArrayFunctionValue.h: Added.
29356        (WebCore):
29357        (WebKitCSSArrayFunctionValue):
29358        (WebCore::WebKitCSSArrayFunctionValue::create):
29359
293602012-09-05  Matt Falkenhagen  <falken@chromium.org>
29361
29362        Vertically center non-anchored <dialog> elements
29363        https://bugs.webkit.org/show_bug.cgi?id=90670
29364
29365        Reviewed by Ojan Vafai.
29366
29367        This adjusts the static default position of non-anchored
29368        dialog elements so they are vertically centered in or at the top of
29369        the viewport, as per the spec.
29370
29371        The approach is to add a RenderDialog class whose layout()
29372        function adjusts the position after normal RenderBlock::layout runs.
29373
29374        Test: fast/dom/HTMLDialogElement/non-anchored-dialog-positioning.html
29375
29376        * CMakeLists.txt:
29377        * GNUmakefile.list.am:
29378        * Target.pri:
29379        * WebCore.gypi:
29380        * WebCore.xcodeproj/project.pbxproj:
29381        * html/HTMLDialogElement.cpp:
29382        (WebCore::HTMLDialogElement::createRenderer):
29383        (WebCore):
29384        * html/HTMLDialogElement.h:
29385        (HTMLDialogElement):
29386        * rendering/RenderBox.cpp:
29387        (WebCore::RenderBox::mapAbsoluteToLocalPoint): Remove assertion since now absoluteToLocal is called during layout.
29388        * rendering/RenderBoxModelObject.cpp:
29389        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint): Ditto.
29390        * rendering/RenderDialog.cpp: Added.
29391        (WebCore):
29392        (WebCore::RenderDialog::layout): Compute the desired top position in the absolute coordinate system, and then set top to the
29393        corresponding local coordinate.
29394        * rendering/RenderDialog.h: Added.
29395        (WebCore):
29396        (RenderDialog):
29397        (WebCore::RenderDialog::RenderDialog):
29398        (WebCore::RenderDialog::~RenderDialog):
29399        (WebCore::RenderDialog::renderName):
29400        * rendering/RenderObject.h:
29401        (RenderObject):
29402        (WebCore::RenderObject::isDialog):
29403        * rendering/RenderingAllInOne.cpp:
29404
294052012-09-05  Kenichi Ishibashi  <bashi@chromium.org>
29406
29407        Unreviewed, rolling out r127612, r127660, and r127664.
29408        http://trac.webkit.org/changeset/127612
29409        http://trac.webkit.org/changeset/127660
29410        http://trac.webkit.org/changeset/127664
29411        https://bugs.webkit.org/show_bug.cgi?id=95920
29412
29413        * CMakeLists.txt:
29414        * GNUmakefile.list.am:
29415        * Modules/mediastream/RTCErrorCallback.h:
29416        (WebCore):
29417        (RTCErrorCallback):
29418        * Modules/mediastream/RTCErrorCallback.idl:
29419        * Modules/mediastream/RTCPeerConnection.cpp:
29420        (WebCore::RTCPeerConnection::createOffer):
29421        * Modules/mediastream/RTCPeerConnection.h:
29422        (WebCore):
29423        (RTCPeerConnection):
29424        * Modules/mediastream/RTCPeerConnection.idl:
29425        * Modules/mediastream/RTCSessionDescriptionCallback.h:
29426        (WebCore):
29427        (RTCSessionDescriptionCallback):
29428        * Modules/mediastream/RTCSessionDescriptionCallback.idl:
29429        * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
29430        (WebCore::RTCSessionDescriptionRequestImpl::create):
29431        (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
29432        (WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded):
29433        (WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
29434        (WebCore::RTCSessionDescriptionRequestImpl::clear):
29435        * Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
29436        (RTCSessionDescriptionRequestImpl):
29437        * Modules/mediastream/RTCVoidRequestImpl.cpp: Removed.
29438        * Modules/mediastream/RTCVoidRequestImpl.h: Removed.
29439        * WebCore.gypi:
29440        * platform/chromium/support/WebRTCVoidRequest.cpp: Removed.
29441        * platform/mediastream/RTCPeerConnectionHandler.cpp:
29442        (RTCPeerConnectionHandlerDummy):
29443        (WebCore::RTCPeerConnectionHandlerDummy::RTCPeerConnectionHandlerDummy):
29444        * platform/mediastream/RTCPeerConnectionHandler.h:
29445        (WebCore):
29446        (WebCore::RTCPeerConnectionHandler::~RTCPeerConnectionHandler):
29447        (RTCPeerConnectionHandler):
29448        (WebCore::RTCPeerConnectionHandler::RTCPeerConnectionHandler):
29449        * platform/mediastream/RTCVoidRequest.h: Removed.
29450        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
29451        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
29452        (RTCPeerConnectionHandlerChromium):
29453
294542012-09-05  Victoria Kirst  <vrk@chromium.org>
29455
29456        Add the duration attribute to MediaSource
29457        https://bugs.webkit.org/show_bug.cgi?id=95149
29458
29459        Reviewed by Eric Carlson.
29460
29461        Add support for the duration attribute recently added to the MediaSource spec.
29462        http://dev.w3.org/html5/spec/media-elements.html#dom-media-duration
29463
29464        Test: http/tests/media/media-source/video-media-source-duration-changed.html
29465
29466        * Modules/mediasource/MediaSource.cpp:
29467        (WebCore::MediaSource::duration): Added duration method.
29468        (WebCore):
29469        (WebCore::MediaSource::setDuration): Added duration setter.
29470        * Modules/mediasource/MediaSource.h:
29471        (MediaSource):
29472        * Modules/mediasource/MediaSource.idl:
29473        * platform/graphics/MediaPlayer.cpp:
29474        (WebCore::NullMediaPlayerPrivate::sourceSetDuration): Add empty definition.
29475        (WebCore::MediaPlayer::sourceSetDuration): Forward call to m_private.
29476        (WebCore):
29477        * platform/graphics/MediaPlayer.h:
29478        * platform/graphics/MediaPlayerPrivate.h:
29479        (WebCore::MediaPlayerPrivateInterface::sourceSetDuration): Add empty definition.
29480
294812012-09-05  Mihai Parparita  <mihaip@chromium.org>
29482
29483        [Chromium] history.{push,replace}State should no longer be V8EnabledAtRuntime
29484        https://bugs.webkit.org/show_bug.cgi?id=95865
29485
29486        Reviewed by Darin Fisher.
29487
29488        r55549 made them be runtime-enabled (since the Chromium implementation
29489        was not complete at the time), but they've been enabled by default
29490        since http://crrev.com/41850
29491
29492        * bindings/generic/RuntimeEnabledFeatures.cpp:
29493        (WebCore):
29494        * bindings/generic/RuntimeEnabledFeatures.h:
29495        (RuntimeEnabledFeatures):
29496        * page/History.idl:
29497
294982012-09-05  Joshua Bell  <jsbell@chromium.org>
29499
29500        IndexedDB: Integer version lost after first open/close/open cycle
29501        https://bugs.webkit.org/show_bug.cgi?id=95864
29502
29503        Reviewed by Tony Chang.
29504
29505        New backing stores were being created with an old schema version, causing migration
29506        to occur when the backing store was re-opened, which would overwrite valid integer
29507        version metadata. New backing stores should be created with the latest schema version
29508        since no migration is desired.
29509
29510        Test: storage/indexeddb/intversion-persistence.html
29511
29512        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
29513        (WebCore::setUpMetadata):
29514
295152012-09-05  Kenichi Ishibashi  <bashi@chromium.org>
29516
29517        [Chromium] Unreviewed, build fix attempt after r127660
29518
29519        Make clang happy.
29520
29521        * platform/mediastream/RTCPeerConnectionHandler.cpp:
29522        (WebCore::RTCPeerConnectionHandlerDummy::RTCPeerConnectionHandlerDummy):
29523        Use ASSERT_UNUSED() to suppress -Wunused-private-field warning
29524
295252012-09-05  Patrick Gansterer  <paroga@webkit.org>
29526
29527        Build fix for Windows.
29528
29529        * rendering/RenderThemeWin.cpp: Added missing header include.
29530
295312012-09-05  Kenichi Ishibashi  <bashi@chromium.org>
29532
29533        [Chromium] Unreviewed, build fix attempt on win
29534
29535        r127612 breaks chromium win build.
29536
29537        * WebCore.gypi:
29538        * platform/mediastream/RTCPeerConnectionHandler.cpp:
29539        (WebCore::RTCPeerConnectionHandler::RTCPeerConnectionHandler):
29540        (WebCore):
29541        (WebCore::RTCPeerConnectionHandler::~RTCPeerConnectionHandler):
29542        * platform/mediastream/RTCPeerConnectionHandler.h:
29543        (RTCPeerConnectionHandler):
29544
295452012-09-05  Christophe Dumez  <christophe.dumez@intel.com>
29546
29547        [EFL][WK2] Provide implementation for WebProcess functions
29548        https://bugs.webkit.org/show_bug.cgi?id=95857
29549
29550        Reviewed by Kenneth Rohde Christiansen.
29551
29552        Add implementation for getVolumeFreeSizeForPath()
29553        in FileSystem which is required by soup-related
29554        code in WebKit2.
29555
29556        No new tests, no behavior change.
29557
29558        * platform/FileSystem.h:
29559        (WebCore):
29560        * platform/efl/FileSystemEfl.cpp:
29561        (WebCore::getVolumeFreeSizeForPath):
29562        (WebCore):
29563
295642012-09-05  Sheriff Bot  <webkit.review.bot@gmail.com>
29565
29566        Unreviewed, rolling out r127635.
29567        http://trac.webkit.org/changeset/127635
29568        https://bugs.webkit.org/show_bug.cgi?id=95905
29569
29570        breaks chromium win and mac build (Requested by bashi1 on
29571        #webkit).
29572
29573        * WebCore.gyp/WebCore.gyp:
29574        * WebCore.gypi:
29575
295762012-09-05  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
29577
29578        Make RenderStyle::colorIncludingFallback use private getters
29579        https://bugs.webkit.org/show_bug.cgi?id=95863
29580
29581        Reviewed by Eric Seidel.
29582
29583        For readibility and maintanability reasons, it is better to use getters for
29584        visited* color variables than accessing them directly.
29585
29586        * rendering/style/RenderStyle.cpp:
29587        (WebCore::RenderStyle::colorIncludingFallback):
29588
295892012-09-05  Benjamin Poulain  <bpoulain@apple.com>
29590
29591        More fixes for String::operator+=() on Mac
29592        https://bugs.webkit.org/show_bug.cgi?id=95880
29593
29594        Reviewed by Adam Barth.
29595
29596        Followup for r127574, I forgot some use of strings.
29597
29598        * css/StylePropertySet.cpp:
29599        (WebCore::StylePropertySet::getShorthandValue): Use String builder to construct the shorthand.
29600
296012012-09-05  James Robinson  <jamesr@chromium.org>
29602
29603        [chromium] Put webcore_platform_files in separate gyp target instead of relying on exclusion patterns
29604        https://bugs.webkit.org/show_bug.cgi?id=95876
29605
29606        Reviewed by Tony Chang.
29607
29608        This puts the list of WebCore/platform files in a webcore_platform_files gyp variable instead of filtering by
29609        path out of webcore_files. This simplifies the .gyp a bit and makes it possible to split this target up further.
29610
29611        * WebCore.gyp/WebCore.gyp:
29612        * WebCore.gypi:
29613
296142012-09-05  James Robinson  <jamesr@chromium.org>
29615
29616        Unreviewed, rolling out r127629.
29617        http://trac.webkit.org/changeset/127629
29618        https://bugs.webkit.org/show_bug.cgi?id=95876
29619
29620        Broke build
29621
29622        * WebCore.gyp/WebCore.gyp:
29623        * WebCore.gypi:
29624
296252012-09-05  James Robinson  <jamesr@chromium.org>
29626
29627        [chromium] Put webcore_platform_files in separate gyp target instead of relying on exclusion patterns
29628        https://bugs.webkit.org/show_bug.cgi?id=95876
29629
29630        Reviewed by Tony Chang.
29631
29632        This puts the list of WebCore/platform files in a webcore_platform_files gyp variable instead of filtering by
29633        path out of webcore_files. This simplifies the .gyp a bit and makes it possible to split this target up further.
29634
29635        * WebCore.gyp/WebCore.gyp:
29636        * WebCore.gypi:
29637
296382012-09-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
29639
29640        [EFL] Slider progress bar goes crazy with negative ranges
29641        https://bugs.webkit.org/show_bug.cgi?id=95753
29642
29643        Reviewed by Kenneth Rohde Christiansen.
29644
29645        Now the calculation of what the current value represents in terms
29646        of progress (from 0 to 1) is correctly done.
29647
29648        Test: fast/forms/range/input-range-progress-indicator.html
29649
29650        * platform/efl/RenderThemeEfl.cpp:
29651        (WebCore::RenderThemeEfl::paintThemePart):
29652
296532012-09-05  Mark Pilgrim  <pilgrim@chromium.org>
29654
29655        [Chromium] Remove getRenderStyleForStrike from PlatformSupport
29656        https://bugs.webkit.org/show_bug.cgi?id=95363
29657
29658        Reviewed by Adam Barth.
29659
29660        Part of a refactoring series. See tracking bug 82948.
29661
29662        * platform/chromium/PlatformSupport.h:
29663        (PlatformSupport):
29664        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
29665        (WebCore::FontPlatformData::operator==):
29666        (WebCore::FontPlatformData::getRenderStyleForStrike):
29667        (WebCore):
29668        (WebCore::FontPlatformData::querySystemForRenderStyle):
29669        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
29670        (FontPlatformData):
29671
296722012-09-05  Sami Kyostila  <skyostil@google.com>
29673
29674        Enable/disable composited scrolling based on overflow
29675        https://bugs.webkit.org/show_bug.cgi?id=95323
29676
29677        Reviewed by Simon Fraser.
29678
29679        When an overflow:{auto,overlay} and -webkit-overflow-scrolling:touch
29680        element gains or loses overflow, we should correspondingly enable and
29681        disable composited scrolling depending on whether the element can be
29682        scrolled or not.
29683
29684        The previous logic in RenderLayer::usesCompositedScrolling() already
29685        checked for actual overflow, but we also need to recompute the
29686        compositing requirements when the amount of overflow changes during
29687        layout. Additionally, layers using composited scrolling are marked as
29688        self-painting to ensure they are always promoted to composited layers
29689        when needed.
29690
29691        Test: compositing/overflow/overflow-auto-with-touch-toggle.html
29692
29693        Note that the behavior for maintaining a stacking context even without
29694        the presense of overflow is covered by platform/chromium/compositing/overflow/overflow-scrolling-touch-stacking-context.html.
29695
29696        * rendering/RenderLayer.cpp:
29697        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
29698        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
29699
297002012-09-05  Mike Fenton  <mifenton@rim.com>
29701
29702        [BlackBerry] PlatformKeyboardEvent::getCurrentModifierState should initialize values.
29703        https://bugs.webkit.org/show_bug.cgi?id=95773
29704
29705        Reviewed by Rob Buis.
29706
29707        Properly initialize the passed variables even
29708        though we haven't implemented the modifier state
29709        to ensure the values are deterministic.
29710
29711        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
29712        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
29713
297142012-09-05  Tommy Widenflycht  <tommyw@google.com>
29715
29716        MediaStream API: Add the local and remote description functionality to RTCPeerConnection
29717        https://bugs.webkit.org/show_bug.cgi?id=95839
29718
29719        Reviewed by Adam Barth.
29720
29721        As well as adding the local/remote descriptions stuff, I removed the source attribute from
29722        RTCSessionDescriptionCallback and RTCErrorCallback since it has been removed from the draft.
29723
29724        Tests: fast/mediastream/RTCPeerConnection-localDescription.html
29725               fast/mediastream/RTCPeerConnection-remoteDescription.html
29726
29727        * CMakeLists.txt:
29728        * GNUmakefile.list.am:
29729        * Modules/mediastream/RTCErrorCallback.h:
29730        (RTCErrorCallback):
29731        * Modules/mediastream/RTCErrorCallback.idl:
29732        * Modules/mediastream/RTCPeerConnection.cpp:
29733        (WebCore::RTCPeerConnection::createOffer):
29734        (WebCore::RTCPeerConnection::setLocalDescription):
29735        (WebCore):
29736        (WebCore::RTCPeerConnection::localDescription):
29737        (WebCore::RTCPeerConnection::setRemoteDescription):
29738        (WebCore::RTCPeerConnection::remoteDescription):
29739        * Modules/mediastream/RTCPeerConnection.h:
29740        (WebCore):
29741        (RTCPeerConnection):
29742        * Modules/mediastream/RTCPeerConnection.idl:
29743        * Modules/mediastream/RTCSessionDescriptionCallback.h:
29744        (RTCSessionDescriptionCallback):
29745        * Modules/mediastream/RTCSessionDescriptionCallback.idl:
29746        * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
29747        (WebCore::RTCSessionDescriptionRequestImpl::create):
29748        (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
29749        (WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded):
29750        (WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
29751        (WebCore::RTCSessionDescriptionRequestImpl::clear):
29752        * Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
29753        (RTCSessionDescriptionRequestImpl):
29754        * Modules/mediastream/RTCVoidRequestImpl.cpp: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp.
29755        (WebCore):
29756        (WebCore::RTCVoidRequestImpl::create):
29757        (WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
29758        (WebCore::RTCVoidRequestImpl::~RTCVoidRequestImpl):
29759        (WebCore::RTCVoidRequestImpl::requestSucceeded):
29760        (WebCore::RTCVoidRequestImpl::requestFailed):
29761        (WebCore::RTCVoidRequestImpl::stop):
29762        (WebCore::RTCVoidRequestImpl::clear):
29763        * Modules/mediastream/RTCVoidRequestImpl.h: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.h.
29764        (WebCore):
29765        (RTCVoidRequestImpl):
29766        * WebCore.gypi:
29767        * platform/chromium/support/WebRTCVoidRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
29768        (WebKit):
29769        (WebKit::WebRTCVoidRequest::WebRTCVoidRequest):
29770        (WebKit::WebRTCVoidRequest::assign):
29771        (WebKit::WebRTCVoidRequest::reset):
29772        (WebKit::WebRTCVoidRequest::requestSucceeded):
29773        (WebKit::WebRTCVoidRequest::requestFailed):
29774        (ExtraDataContainer):
29775        (WebKit::ExtraDataContainer::ExtraDataContainer):
29776        (WebKit::ExtraDataContainer::extraData):
29777        (WebKit::WebRTCVoidRequest::extraData):
29778        (WebKit::WebRTCVoidRequest::setExtraData):
29779        * platform/mediastream/RTCPeerConnectionHandler.cpp:
29780        (RTCPeerConnectionHandlerDummy):
29781        (WebCore::RTCPeerConnectionHandlerDummy::setLocalDescription):
29782        (WebCore):
29783        (WebCore::RTCPeerConnectionHandlerDummy::setRemoteDescription):
29784        (WebCore::RTCPeerConnectionHandlerDummy::localDescription):
29785        (WebCore::RTCPeerConnectionHandlerDummy::remoteDescription):
29786        * platform/mediastream/RTCPeerConnectionHandler.h:
29787        (WebCore):
29788        (RTCPeerConnectionHandler):
29789        * platform/mediastream/RTCVoidRequest.h: Copied from Source/WebCore/Modules/mediastream/RTCErrorCallback.h.
29790        (WebCore):
29791        (RTCVoidRequest):
29792        (ExtraData):
29793        (WebCore::RTCVoidRequest::ExtraData::~ExtraData):
29794        (WebCore::RTCVoidRequest::~RTCVoidRequest):
29795        (WebCore::RTCVoidRequest::extraData):
29796        (WebCore::RTCVoidRequest::setExtraData):
29797        (WebCore::RTCVoidRequest::RTCVoidRequest):
29798        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
29799        (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
29800        (WebCore):
29801        (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
29802        (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
29803        (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
29804        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
29805        (RTCPeerConnectionHandlerChromium):
29806
298072012-09-01  Dirk Schulze  <krit@webkit.org>
29808
29809        Use -webkit-clip-path shapes to clip HTML elements
29810        https://bugs.webkit.org/show_bug.cgi?id=95646
29811
29812        Reviewed by Dean Jackson.
29813
29814        -webkit-clip-path creates a new layer for HTML elements now. The border,
29815        background and content gets clipped by the clip path after any filter was
29816        applied.
29817
29818        Tests: css3/masking/clip-path-circle-filter.html
29819               css3/masking/clip-path-circle-overflow.html
29820               css3/masking/clip-path-circle-overflow-hidden.html
29821               css3/masking/clip-path-circle-relative-overflow.html
29822               css3/masking/clip-path-circle.html
29823               css3/masking/clip-path-ellipse.html
29824               css3/masking/clip-path-polygon-evenodd.html
29825               css3/masking/clip-path-polygon-nonzero.html
29826               css3/masking/clip-path-polygon.html
29827               css3/masking/clip-path-rectangle.html
29828
29829        * rendering/RenderBox.h: Create new layer on clip-path.
29830        * rendering/RenderBoxModelObject.h:
29831        (WebCore::RenderBoxModelObject::requiresLayer): Create new layer on clip-path.
29832        * rendering/RenderInline.h:
29833        (WebCore::RenderInline::requiresLayer): Create new layer on clip-path.
29834        * rendering/RenderLayer.cpp: Apply clip-path on context of object.
29835        (WebCore::RenderLayer::paintLayerContents): Create new layer on clip-path.
29836        * rendering/RenderObject.h:
29837        (WebCore::RenderObject::hasClipPath): Indicates that renderer needs to be clipped by clip-path.
29838        * rendering/RenderTableRow.h: Create new layer on clip-path.
29839
298402012-09-05  Kangil Han  <kangil.han@samsung.com>
29841
29842        [EFL] Use explicit constructor in RenderThemeEfl.
29843        https://bugs.webkit.org/show_bug.cgi?id=95853
29844
29845        Reviewed by Kentaro Hara.
29846
29847        Added explicit keyword in constructor of RenderThemeEfl in order to avoid implicit type conversion.
29848
29849        * platform/efl/RenderThemeEfl.h:
29850        (RenderThemeEfl):
29851
298522012-09-05  Vincent Scheib  <scheib@chromium.org>
29853
29854        webkitPointerLockElement returns null when pointer lock request is pending.
29855        https://bugs.webkit.org/show_bug.cgi?id=91186
29856
29857        Reviewed by Dimitri Glazkov.
29858
29859        Script should wait for a pointerlockchange event before detecting
29860        if it has acquired lock. However, if a script attempted to poll
29861        pointerLockElement it could be confused when lock was still pending.
29862        This change ensures that if lock is not yet acquired then
29863        pointerLockElement will return null.
29864
29865        Test: pointer-lock/pointerlockelement-null-when-pending.html
29866
29867        * dom/Document.cpp:
29868        (WebCore::Document::webkitPointerLockElement):
29869        * page/PointerLockController.cpp:
29870        (WebCore::PointerLockController::requestPointerLock):
29871        (WebCore::PointerLockController::elementRemoved):
29872        (WebCore::PointerLockController::documentDetached):
29873        (WebCore::PointerLockController::lockPending):
29874        (WebCore):
29875        (WebCore::PointerLockController::didAcquirePointerLock):
29876        (WebCore::PointerLockController::didNotAcquirePointerLock):
29877        (WebCore::PointerLockController::didLosePointerLock):
29878        (WebCore::PointerLockController::clearElement):
29879        * page/PointerLockController.h:
29880        (PointerLockController):
29881
298822012-09-05  Sami Kyostila  <skyostil@chromium.org>
29883
29884        [chromium] Wire up scrollable sublayers in ScrollingCoordinatorChromium
29885        https://bugs.webkit.org/show_bug.cgi?id=95679
29886
29887        Reviewed by James Robinson.
29888
29889        Implement scrollable sublayers in ScrollingCoordinatorChromium and introduce a
29890        WebLayerScrollClient which is notified of scroll events on its associated
29891        scroll layer. GraphicsLayerChromium uses it to apply scroll events targeted to
29892        its platform layer to a ScrollableArea, i.e., the RenderLayer corresponding to
29893        the scrollable element.
29894
29895        Tests: GraphicsLayerChromiumTest.applyScrollToScrollableArea
29896               WebLayerTest.ScrollClient
29897
29898        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29899        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
29900        (WebCore::GraphicsLayerChromium::didScroll):
29901        (WebCore):
29902        * platform/graphics/chromium/GraphicsLayerChromium.h:
29903        (WebCore):
29904        (WebCore::GraphicsLayerChromium::setScrollableArea):
29905        (WebCore::GraphicsLayerChromium::scrollableArea):
29906        (GraphicsLayerChromium):
29907        * platform/graphics/chromium/LayerChromium.cpp:
29908        * platform/graphics/chromium/LayerChromium.h:
29909        (WebKit):
29910        (WebCore):
29911        (WebCore::LayerChromium::setLayerScrollClient):
29912        (LayerChromium):
29913
299142012-09-05  Peter Rybin  <peter.rybin@gmail.com>
29915
29916        Web Inspector: CodeGeneratorInspector.py: support asynchronous command implementation
29917        https://bugs.webkit.org/show_bug.cgi?id=95649
29918
29919        Reviewed by Yury Semikhatsky.
29920
29921        Generator is extended to generate callback object for each asynchronous command.
29922
29923        * inspector/CodeGeneratorInspector.py:
29924        (Writer.append_multiline):
29925        (Writer):
29926        (Writer.get_indent):
29927        (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner.ResolveData):
29928        (InspectorBackendDispatcherImpl):
29929        (CallbackBase):
29930        (Generator.process_event):
29931        (Generator):
29932        (Generator.EventMethodStructTemplate):
29933        (Generator.EventMethodStructTemplate.append_prolog):
29934        (Generator.EventMethodStructTemplate.append_epilog):
29935        (Generator.process_command):
29936        (Generator.CallbackMethodStructTemplate):
29937        (Generator.CallbackMethodStructTemplate.append_prolog):
29938        (Generator.CallbackMethodStructTemplate.append_epilog):
29939        (Generator.generate_send_method):
29940
299412012-09-05  Kevin Ellis  <kevers@chromium.org>
29942
29943        [chromium] Unify size of popup menu for touch and non-touch.
29944        https://bugs.webkit.org/show_bug.cgi?id=95606
29945
29946        Reviewed by Adam Barth.
29947
29948        Use minimum height for popup menus entries regardless of whether the
29949        popup menu is displayed on a touch screen.  Replaces use of touch
29950        padding.  Height meets minimum size requirement for a low error rate
29951        while still looking aesthetic for non-touch.
29952
29953        Covered by existing tests.
29954
29955        * platform/chromium/PopupListBox.cpp:
29956        (WebCore::PopupListBox::getRowHeight):
29957        * platform/chromium/PopupMenuChromium.cpp:
29958        (WebCore):
29959        * platform/chromium/PopupMenuChromium.h:
29960        (PopupMenuChromium):
29961
299622012-09-05  Mihnea Ovidenie  <mihnea@adobe.com>
29963
29964        [CSS Regions] Auto width is not working for Regions
29965        https://bugs.webkit.org/show_bug.cgi?id=74135
29966
29967        Reviewed by Julien Chaffraix.
29968
29969        It was not possible to flow content into a region having { width: auto; } since in such case, the region width was computed to 0.
29970        Now, a region having auto width, will have its width computed following the rules for calculation of widths and margins
29971        (http://www.w3.org/TR/CSS2/visudet.html#Computing_widths_and_margins).
29972        For those cases in which resolving the width requires measuring of content's min/max-content values, we use the associated named flow min/max-content
29973        values (the same for all regions with width auto in a region chain).
29974        When a region has width:auto, the computation of width should be done using normal block/box sizing code, instead of replaced element code.
29975        Contains code contributed by Alexandru Chiculita(achicu@adobe.com).
29976
29977        Tests: fast/regions/autowidth-abspos-regionchain.html
29978               fast/regions/autowidth-abspos.html
29979               fast/regions/autowidth-float.html
29980               fast/regions/autowidth-inlineblock.html
29981               fast/regions/autowidth-nonreplaced-abspos.html
29982               fast/regions/autowidth-nonreplacedblock-normalflow.html
29983               fast/regions/autowidth-normalflow-maxwidth.html
29984               fast/regions/autowidth-normalflow-minmaxwidth.html
29985               fast/regions/autowidth-normalflow-minwidth.html
29986               fast/regions/autowidth-normalflow-vertrl.html
29987               fast/regions/autowidth-normalflow.html
29988
29989        * rendering/RenderBox.cpp: 
29990        (WebCore::RenderBox::computePositionedLogicalWidth): For positioned auto-width regions, skip the code path for replaced elements.
29991        * rendering/RenderRegion.cpp:
29992        (WebCore): Override min/maxPreferredLogicalWidth as they are used in the process of computing width for regions with auto width.
29993        As this moment, a region is still a RenderReplaced element, so this code needs to be revisited when the region will become a RenderBlock.
29994        Also, for min/max-width, we support only <length> values. We will extend support for other values in a following patch.
29995        (WebCore::RenderRegion::minPreferredLogicalWidth):
29996        (WebCore::RenderRegion::maxPreferredLogicalWidth):
29997        * rendering/RenderRegion.h:
29998        (RenderRegion):
29999        Override isInlineBlockOrInlineTable() and shouldComputeSizeAsReplaced() to ensure that computation for width auto follows the normal
30000        block/box sizing code.
30001
300022012-09-05  Ilya Tikhonovsky  <loislo@chromium.org>
30003
30004        Web Inspector: NMI: extract MemoryObjectType constants from MemoryInstrumentation.
30005        https://bugs.webkit.org/show_bug.cgi?id=95850
30006
30007        Reviewed by Yury Semikhatsky.
30008
30009        I'd like to extract MemoryObjectTypes into separate classes.
30010        After that we will be able to move core NMI instrumentation code to WTF.
30011
30012        * bindings/js/ScriptWrappable.h:
30013        (WebCore::ScriptWrappable::reportMemoryUsage):
30014        * bindings/v8/DOMDataStore.cpp:
30015        (WebCore::DOMDataStore::reportMemoryUsage):
30016        * bindings/v8/IntrusiveDOMWrapperMap.h:
30017        (WebCore::ChunkedTable::reportMemoryUsage):
30018        * bindings/v8/ScriptWrappable.h:
30019        (WebCore::ScriptWrappable::reportMemoryUsage):
30020        * bindings/v8/V8Binding.cpp:
30021        (WebCore::StringCache::reportMemoryUsage):
30022        * bindings/v8/V8DOMMap.h:
30023        * bindings/v8/V8PerIsolateData.cpp:
30024        (WebCore::V8PerIsolateData::reportMemoryUsage):
30025        * css/CSSAspectRatioValue.cpp:
30026        (WebCore::CSSAspectRatioValue::reportDescendantMemoryUsage):
30027        * css/CSSBorderImageSliceValue.cpp:
30028        (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
30029        * css/CSSCalculationValue.cpp:
30030        (WebCore::CSSCalcValue::reportDescendantMemoryUsage):
30031        * css/CSSCanvasValue.cpp:
30032        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
30033        * css/CSSCharsetRule.cpp:
30034        (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
30035        * css/CSSComputedStyleDeclaration.cpp:
30036        (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
30037        * css/CSSCrossfadeValue.cpp:
30038        (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
30039        * css/CSSCursorImageValue.cpp:
30040        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
30041        * css/CSSFontFaceRule.cpp:
30042        (WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
30043        * css/CSSFontFaceSrcValue.cpp:
30044        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
30045        * css/CSSFunctionValue.cpp:
30046        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
30047        * css/CSSGradientValue.cpp:
30048        (WebCore::CSSGradientColorStop::reportMemoryUsage):
30049        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
30050        (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
30051        (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
30052        * css/CSSImageGeneratorValue.cpp:
30053        (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
30054        * css/CSSImageSetValue.cpp:
30055        (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
30056        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
30057        * css/CSSImageValue.cpp:
30058        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
30059        * css/CSSImportRule.cpp:
30060        (WebCore::CSSImportRule::reportDescendantMemoryUsage):
30061        * css/CSSInheritedValue.cpp:
30062        (WebCore::CSSInheritedValue::reportDescendantMemoryUsage):
30063        * css/CSSInitialValue.cpp:
30064        (WebCore::CSSInitialValue::reportDescendantMemoryUsage):
30065        * css/CSSLineBoxContainValue.cpp:
30066        (WebCore::CSSLineBoxContainValue::reportDescendantMemoryUsage):
30067        * css/CSSMediaRule.cpp:
30068        (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
30069        * css/CSSPageRule.cpp:
30070        (WebCore::CSSPageRule::reportDescendantMemoryUsage):
30071        * css/CSSPrimitiveValue.cpp:
30072        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
30073        * css/CSSProperty.cpp:
30074        (WebCore::CSSProperty::reportMemoryUsage):
30075        * css/CSSReflectValue.cpp:
30076        (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
30077        * css/CSSRule.cpp:
30078        (WebCore::CSSRule::reportBaseClassMemoryUsage):
30079        * css/CSSRuleList.cpp:
30080        (WebCore::StaticCSSRuleList::reportMemoryUsage):
30081        * css/CSSRuleList.h:
30082        * css/CSSSelectorList.cpp:
30083        (WebCore::CSSSelectorList::reportMemoryUsage):
30084        * css/CSSStyleRule.cpp:
30085        (WebCore::CSSStyleRule::reportDescendantMemoryUsage):
30086        * css/CSSStyleSheet.cpp:
30087        (WebCore::CSSStyleSheet::reportMemoryUsage):
30088        * css/CSSTimingFunctionValue.cpp:
30089        (WebCore::CSSLinearTimingFunctionValue::reportDescendantMemoryUsage):
30090        (WebCore::CSSCubicBezierTimingFunctionValue::reportDescendantMemoryUsage):
30091        (WebCore::CSSStepsTimingFunctionValue::reportDescendantMemoryUsage):
30092        * css/CSSUnicodeRangeValue.cpp:
30093        (WebCore::CSSUnicodeRangeValue::reportDescendantMemoryUsage):
30094        * css/CSSUnknownRule.h:
30095        (WebCore::CSSUnknownRule::reportDescendantMemoryUsage):
30096        * css/CSSValue.cpp:
30097        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
30098        * css/CSSValueList.cpp:
30099        (WebCore::CSSValueList::reportDescendantMemoryUsage):
30100        * css/CSSVariableValue.h:
30101        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
30102        * css/FontFeatureValue.cpp:
30103        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
30104        * css/FontValue.cpp:
30105        (WebCore::FontValue::reportDescendantMemoryUsage):
30106        * css/MediaList.cpp:
30107        (WebCore::MediaQuerySet::reportMemoryUsage):
30108        (WebCore::MediaList::reportMemoryUsage):
30109        * css/MediaQuery.cpp:
30110        (WebCore::MediaQuery::reportMemoryUsage):
30111        * css/MediaQueryExp.cpp:
30112        (WebCore::MediaQueryExp::reportMemoryUsage):
30113        * css/PropertySetCSSStyleDeclaration.cpp:
30114        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
30115        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
30116        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
30117        * css/ShadowValue.cpp:
30118        (WebCore::ShadowValue::reportDescendantMemoryUsage):
30119        * css/StylePropertySet.cpp:
30120        (WebCore::StylePropertySet::reportMemoryUsage):
30121        * css/StyleResolver.cpp:
30122        (WebCore::StyleResolver::Features::reportMemoryUsage):
30123        (WebCore::StyleResolver::collectMatchingRulesForList):
30124        * css/StyleRule.cpp:
30125        (WebCore::StyleRuleBase::reportMemoryUsage):
30126        (WebCore::StyleRule::reportDescendantMemoryUsage):
30127        (WebCore::StyleRulePage::reportDescendantMemoryUsage):
30128        (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
30129        (WebCore::StyleRuleBlock::reportDescendantMemoryUsage):
30130        (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
30131        (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
30132        * css/StyleRuleImport.cpp:
30133        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
30134        * css/StyleSheetContents.cpp:
30135        (WebCore::StyleSheetContents::reportMemoryUsage):
30136        * css/WebKitCSSFilterValue.cpp:
30137        (WebCore::WebKitCSSFilterValue::reportDescendantMemoryUsage):
30138        * css/WebKitCSSKeyframeRule.cpp:
30139        (WebCore::StyleKeyframe::reportMemoryUsage):
30140        (WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
30141        * css/WebKitCSSKeyframesRule.cpp:
30142        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
30143        (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
30144        * css/WebKitCSSMixFunctionValue.cpp:
30145        (WebCore::WebKitCSSMixFunctionValue::reportDescendantMemoryUsage):
30146        * css/WebKitCSSRegionRule.cpp:
30147        (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
30148        * css/WebKitCSSSVGDocumentValue.cpp:
30149        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
30150        * css/WebKitCSSShaderValue.cpp:
30151        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
30152        * css/WebKitCSSTransformValue.cpp:
30153        (WebCore::WebKitCSSTransformValue::reportDescendantMemoryUsage):
30154        * dom/Attribute.h:
30155        (WebCore::Attribute::reportMemoryUsage):
30156        * dom/CharacterData.cpp:
30157        (WebCore::CharacterData::reportMemoryUsage):
30158        * dom/ContainerNode.h:
30159        (WebCore::ContainerNode::reportMemoryUsage):
30160        * dom/Document.cpp:
30161        (WebCore::Document::reportMemoryUsage):
30162        * dom/DocumentEventQueue.cpp:
30163        (WebCore::DocumentEventQueue::reportMemoryUsage):
30164        * dom/Element.h:
30165        (WebCore::Element::reportMemoryUsage):
30166        * dom/ElementAttributeData.cpp:
30167        (WebCore::ElementAttributeData::reportMemoryUsage):
30168        * dom/Event.cpp:
30169        (WebCore::Event::reportMemoryUsage):
30170        * dom/MemoryInstrumentation.cpp:
30171        (WebCore):
30172        * dom/MemoryInstrumentation.h:
30173        (WebCore):
30174        (GenericMemoryTypes):
30175        (WebCore::MemoryInstrumentation::addRootObject):
30176        (WebCore::MemoryObjectInfo::reportObjectInfo):
30177        (WebCoreMemoryTypes):
30178        * dom/Node.cpp:
30179        (WebCore::Node::reportMemoryUsage):
30180        * dom/QualifiedName.h:
30181        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
30182        (WebCore::QualifiedName::reportMemoryUsage):
30183        * html/HTMLImageElement.cpp:
30184        (WebCore::HTMLImageElement::reportMemoryUsage):
30185        * inspector/InspectorMemoryAgent.cpp:
30186        (WebCore):
30187        * loader/DocumentLoader.cpp:
30188        (WebCore::DocumentLoader::reportMemoryUsage):
30189        * loader/FrameLoader.cpp:
30190        (WebCore::FrameLoader::reportMemoryUsage):
30191        * loader/MainResourceLoader.cpp:
30192        (WebCore::MainResourceLoader::reportMemoryUsage):
30193        * loader/ResourceLoader.cpp:
30194        (WebCore::ResourceLoader::reportMemoryUsage):
30195        * loader/SubresourceLoader.cpp:
30196        (WebCore::SubresourceLoader::reportMemoryUsage):
30197        * loader/SubstituteData.cpp:
30198        (WebCore::SubstituteData::reportMemoryUsage):
30199        * loader/cache/CachedCSSStyleSheet.cpp:
30200        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
30201        * loader/cache/CachedFont.cpp:
30202        (WebCore::CachedFont::reportMemoryUsage):
30203        * loader/cache/CachedImage.cpp:
30204        (WebCore::CachedImage::reportMemoryUsage):
30205        * loader/cache/CachedRawResource.cpp:
30206        (WebCore::CachedRawResource::reportMemoryUsage):
30207        * loader/cache/CachedResource.cpp:
30208        (WebCore::CachedResource::reportMemoryUsage):
30209        * loader/cache/CachedResourceHandle.cpp:
30210        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
30211        * loader/cache/CachedResourceLoader.cpp:
30212        (WebCore::CachedResourceLoader::reportMemoryUsage):
30213        * loader/cache/CachedSVGDocument.cpp:
30214        (WebCore::CachedSVGDocument::reportMemoryUsage):
30215        * loader/cache/CachedScript.cpp:
30216        (WebCore::CachedScript::reportMemoryUsage):
30217        * loader/cache/CachedShader.cpp:
30218        (WebCore::CachedShader::reportMemoryUsage):
30219        * loader/cache/CachedXSLStyleSheet.cpp:
30220        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
30221        * loader/cache/MemoryCache.cpp:
30222        (WebCore::MemoryCache::reportMemoryUsage):
30223        * page/Frame.cpp:
30224        (WebCore::Frame::reportMemoryUsage):
30225        * platform/SharedBuffer.cpp:
30226        (WebCore::SharedBuffer::reportMemoryUsage):
30227        * platform/TreeShared.h:
30228        (WebCore::TreeShared::reportMemoryUsage):
30229        * platform/graphics/BitmapImage.cpp:
30230        (WebCore::BitmapImage::reportMemoryUsage):
30231        * platform/graphics/CrossfadeGeneratedImage.cpp:
30232        (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
30233        * platform/graphics/GeneratedImage.cpp:
30234        (WebCore::GeneratedImage::reportMemoryUsage):
30235        * platform/graphics/GeneratorGeneratedImage.cpp:
30236        (WebCore::GeneratorGeneratedImage::reportMemoryUsage):
30237        * platform/graphics/Image.cpp:
30238        (WebCore::Image::reportMemoryUsage):
30239        * platform/network/FormData.cpp:
30240        (WebCore::FormData::reportMemoryUsage):
30241        * platform/network/ResourceRequestBase.cpp:
30242        (WebCore::ResourceRequestBase::reportMemoryUsage):
30243        * platform/network/ResourceResponseBase.cpp:
30244        (WebCore::ResourceResponseBase::reportMemoryUsage):
30245        * rendering/style/RenderStyle.cpp:
30246        (WebCore::RenderStyle::reportMemoryUsage):
30247        * rendering/style/StyleRareInheritedData.cpp:
30248        (WebCore::StyleRareInheritedData::reportMemoryUsage):
30249        * rendering/style/StyleRareNonInheritedData.cpp:
30250        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
30251        * svg/SVGColor.cpp:
30252        (WebCore::SVGColor::reportDescendantMemoryUsage):
30253        * svg/SVGPaint.cpp:
30254        (WebCore::SVGPaint::reportDescendantMemoryUsage):
30255        * svg/graphics/SVGImage.cpp:
30256        (WebCore::SVGImage::reportMemoryUsage):
30257
302582012-09-05  Ilya Tikhonovsky  <loislo@chromium.org>
30259
30260        Web Inspector: NMI: extract overloaded instrumentation members for WebCore classes from core NMI code.
30261        https://bugs.webkit.org/show_bug.cgi?id=95834
30262
30263        Reviewed by Yury Semikhatsky.
30264
30265        I'd like to remove custom instrumentation methods from MemoryInstrumentation class
30266        before upstreaming it to WTF. I've done it with help of MemoryInstrumentationTraits template helper.
30267
30268        Unfortunately it is not possible to use template class because mac-ews bot reports warning: redundant redeclaration of 'something' in same scope.
30269        I've found that it is an old problem in gcc that is forced by -Wredundant-decls flag on the bot. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15867
30270
30271        * dom/MemoryInstrumentation.cpp:
30272        (WebCore::::addInstrumentedObject):
30273        (WebCore):
30274        * dom/MemoryInstrumentation.h:
30275        (WebCore):
30276        (MemoryInstrumentationTraits):
30277        (MemoryInstrumentation):
30278        (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
30279        (InstrumentedPointer):
30280        (WebCore::MemoryInstrumentation::addObject):
30281        (WebCore::MemoryInstrumentation::addInstrumentedObject):
30282        (WebCore::MemoryInstrumentation::addRawBuffer):
30283        (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
30284        (WebCore::MemoryInstrumentation::OwningTraits::addObject):
30285        (WebCore::::addInstrumentedObject):
30286        (WebCore::::addObject):
30287        (WebCore::MemoryObjectInfo::MemoryObjectInfo):
30288        (WebCore::MemoryObjectInfo::objectType):
30289        (WebCore::MemoryObjectInfo::reportObjectInfo):
30290        (MemoryObjectInfo):
30291        (WebCore::MemoryClassInfo::MemoryClassInfo):
30292        (MemoryClassInfo):
30293        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
30294        (WebCore::MemoryInstrumentation::addObjectImpl):
30295        (WebCore::MemoryInstrumentation::addHashMap):
30296        (WebCore::MemoryInstrumentation::addHashSet):
30297        (WebCore::MemoryInstrumentation::addInstrumentedCollection):
30298        (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
30299        (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
30300        (WebCore::MemoryInstrumentation::addListHashSet):
30301        (WebCore::MemoryInstrumentation::addVector):
30302        * inspector/MemoryInstrumentationImpl.cpp:
30303        (WebCore::MemoryInstrumentationImpl::countObjectSize):
30304        * inspector/MemoryInstrumentationImpl.h:
30305        (WebCore::MemoryInstrumentationImpl::totalSize):
30306        (MemoryInstrumentationImpl):
30307
303082012-09-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
30309
30310        [Qt] Build fix on OS X
30311
30312        Copy/paste-error resulted in us compiling InspectorPageOverlay.h
30313
30314        Reviewed by Ossy.
30315
30316        * DerivedSources.pri:
30317
303182012-09-05  Sheriff Bot  <webkit.review.bot@gmail.com>
30319
30320        Unreviewed, rolling out r127573.
30321        http://trac.webkit.org/changeset/127573
30322        https://bugs.webkit.org/show_bug.cgi?id=95844
30323
30324        Breaks EFL Debug bot tests. (Requested by drott on #webkit).
30325
30326        * platform/efl/RenderThemeEfl.cpp:
30327        (WebCore::RenderThemeEfl::themePartCacheEntryReset):
30328        (WebCore::RenderThemeEfl::cacheThemePartNew):
30329        (WebCore::RenderThemeEfl::paintThemePart):
30330        (WebCore::RenderThemeEfl::setThemePath):
30331        (WebCore::RenderThemeEfl::createCanvas):
30332        (WebCore::RenderThemeEfl::createEdje):
30333        (WebCore::RenderThemeEfl::applyPartDescriptions):
30334        (WebCore::RenderThemeEfl::themeChanged):
30335        (WebCore):
30336        * platform/efl/RenderThemeEfl.h:
30337        (RenderThemeEfl):
30338
303392012-09-05  MORITA Hajime  <morrita@google.com>
30340
30341        ShadowRoot.cloneNode() must always throw a DATA_CLONE_ERR exception.
30342        https://bugs.webkit.org/show_bug.cgi?id=91704
30343
30344        Reviewed by Kentaro Hara.
30345
30346        This change implement ShadowRoot::cloneNode() which throws an exception.
30347        This also adds an overloaded version cloneNode() to ShadowRoot.idl
30348        which is enabled only for JavaScript instead of changing the
30349        signature of Node::cloneNode().
30350
30351        Note that changing the existing signature can break GObject bindings
30352        compatibility.
30353
30354        Test: fast/dom/shadow/shadowroot-clonenode.html
30355
30356        * dom/ShadowRoot.cpp:
30357        (WebCore::ShadowRoot::cloneNode):
30358        (WebCore):
30359        * dom/ShadowRoot.h:
30360        (ShadowRoot):
30361        * dom/ShadowRoot.idl:
30362
303632012-09-05  Simon Hausmann  <simon.hausmann@nokia.com>
30364
30365        [Qt] Unreviewed trivial build fix: Use DOMAllInOne.cpp only if we have xslt available.
30366
30367        * Target.pri:
30368
303692012-09-05  Kaustubh Atrawalkar  <kaustubh@motorola.com>
30370
30371        [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals
30372        https://bugs.webkit.org/show_bug.cgi?id=92735
30373
30374        Reviewed by Hajime Morita.
30375
30376        Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner.
30377
30378        Covered by existing test cases.
30379
30380        * testing/Internals.cpp:
30381        (WebCore::Internals::numberOfPages):
30382        (WebCore):
30383        (WebCore::Internals::pageProperty):
30384        (WebCore::Internals::pageSizeAndMarginsInPixels):
30385        * testing/Internals.h:
30386        (Internals):
30387        * testing/Internals.idl:
30388
303892012-09-05  Simon Hausmann  <simon.hausmann@nokia.com>
30390
30391        [Qt] Automate the use of AllInOne files in the Qt build
30392        https://bugs.webkit.org/show_bug.cgi?id=95837
30393
30394        Reviewed by Tor Arne Vestbø.
30395
30396        Replace the manual use of SVGAllInOne.cpp with automated use through
30397        the ALL_IN_ONE_SOURCES variable. This adds a few more all-in-one sources
30398        to the build and leaves out some that do not compile yet due to various
30399        platform-dependant pre-processor macro issues.
30400
30401        * Target.pri:
30402
304032012-09-05  Benjamin Poulain  <bpoulain@apple.com>
30404
30405        Fix the uses of String::operator+=() for Mac
30406        https://bugs.webkit.org/show_bug.cgi?id=95818
30407
30408        Reviewed by Dan Bernstein.
30409
30410        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
30411        (WebCore::JSCSSStyleDeclaration::putDelegate):
30412        This is a legitimate use of String::append(), it is the only
30413        concatenation in this function.
30414
30415        * loader/appcache/ManifestParser.cpp:
30416        (WebCore::parseManifest): Ditto.
30417
304182012-09-05  Kenneth Rohde Christiansen  <kenneth@webkit.org>
30419
30420        [EFL] Fuzzy load the Edje theme for HTML forms
30421        https://bugs.webkit.org/show_bug.cgi?id=95832
30422
30423        Reviewed by Gyuyoung Kim.
30424
30425        Change the theme so that it is first loaded when actually used.
30426        This also fixed the case that it was impossible to change theme
30427        a second time.
30428
30429        Tested by current tests. API unit test coming in separate patch.
30430
30431        * platform/efl/RenderThemeEfl.cpp:
30432        (WebCore::RenderThemeEfl::themePartCacheEntryReset):
30433        (WebCore::RenderThemeEfl::cacheThemePartNew):
30434        (WebCore::RenderThemeEfl::paintThemePart):
30435        (WebCore::RenderThemeEfl::setThemePath):
30436        (WebCore::RenderThemeEfl::edje):
30437        (WebCore::RenderThemeEfl::applyPartDescriptions):
30438        * platform/efl/RenderThemeEfl.h:
30439        (RenderThemeEfl):
30440
304412012-09-05  Chris Guan  <chris.guan@torchmobile.com.cn>
30442
30443        [Blackberry] Add document url and securityOrigin to platform request.
30444        https://bugs.webkit.org/show_bug.cgi?id=95822
30445
30446        Reviewed by George Staikos.
30447        Internally Reviewed by Joe Mason.
30448
30449        It is a webworks requirement.
30450
30451        * platform/network/blackberry/NetworkManager.cpp:
30452        (WebCore::NetworkManager::startJob):
30453
304542012-09-04  Ilya Tikhonovsky  <loislo@chromium.org>
30455
30456        Web Inspector: NMI: replace ObjectType enum with static const char* string identifiers.
30457        https://bugs.webkit.org/show_bug.cgi?id=95739
30458
30459        Reviewed by Yury Semikhatsky.
30460
30461        When we go deeper into different parts of browser like skia, chromium itself etc.
30462        we can't use a single enum for all reported object types.
30463        The current idea is to use plain simple strings as ObjectType identifiers.
30464        In the future patches we will extract these identifiers into separate class or namespace
30465        and and split it between components.
30466
30467        * dom/MemoryInstrumentation.cpp:
30468        (WebCore):
30469        * dom/MemoryInstrumentation.h:
30470        (MemoryInstrumentation):
30471        * inspector/InspectorMemoryAgent.cpp:
30472        (WebCore::addMemoryBlockFor):
30473        (WebCore):
30474        * inspector/MemoryInstrumentationImpl.cpp:
30475        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
30476        (WebCore::MemoryInstrumentationImpl::countObjectSize):
30477        * inspector/MemoryInstrumentationImpl.h:
30478        (WebCore::MemoryInstrumentationImpl::totalSize):
30479        (WebCore::MemoryInstrumentationImpl::reportedSizeForAllTypes):
30480        (MemoryInstrumentationImpl):
30481
304822012-09-05  Patrick Gansterer  <paroga@webkit.org>
30483
30484        Build fix for WinCE after r127525.
30485
30486        * platform/graphics/wince/FontCustomPlatformData.h:
30487        (WebCore):
30488
304892012-09-04  Keishi Hattori  <keishi@webkit.org>
30490
30491        Move PagePopupClient implementation for input[type=date] to Chromium WebKit layer
30492        https://bugs.webkit.org/show_bug.cgi?id=95681
30493
30494        Reviewed by Kent Tamura.
30495
30496        We are moving calendar picker PagePopupClient to WebKit layer so ports
30497        can use their platform native chooser UI if they have one.
30498        DateTimeChooser, DateTimeChooserClient etc. will be reused when we
30499        implement the week picker and month picker.
30500
30501        No new tests. No behavior change. Covered by existing calendar picker tests.
30502
30503        * WebCore.gypi:
30504        * html/shadow/CalendarPickerElement.cpp:
30505        (WebCore::CalendarPickerElement::CalendarPickerElement):
30506        (WebCore::CalendarPickerElement::~CalendarPickerElement):
30507        (WebCore::CalendarPickerElement::didChooseValue): Called when user chose a value.
30508        (WebCore):
30509        (WebCore::CalendarPickerElement::didEndChooser): Called when chooser has ended.
30510        (WebCore::CalendarPickerElement::openPopup):
30511        (WebCore::CalendarPickerElement::closePopup):
30512        * html/shadow/CalendarPickerElement.h:
30513        (CalendarPickerElement):
30514        * loader/EmptyClients.cpp:
30515        (WebCore):
30516        (WebCore::EmptyChromeClient::openDateTimeChooser):
30517        * loader/EmptyClients.h:
30518        (EmptyChromeClient):
30519        * page/ChromeClient.h:
30520        (WebCore):
30521        (ChromeClient):
30522        * platform/DateTimeChooser.h:
30523        (WebCore):
30524        (DateTimeChooserParameters): Contains information needed to open the DateTimeChooser.
30525        (DateTimeChooser):
30526        (WebCore::DateTimeChooser::~DateTimeChooser):
30527        * platform/DateTimeChooserClient.h:
30528        (WebCore):
30529        (DateTimeChooserClient):
30530        (WebCore::DateTimeChooserClient::~DateTimeChooserClient):
30531
305322012-09-04  Mike Lawther  <mikelawther@chromium.org>
30533
30534        CSS3 calc: expressions with 'em' units do not zoom correctly.
30535        https://bugs.webkit.org/show_bug.cgi?id=95705
30536
30537        Reviewed by Ojan Vafai.
30538
30539        Each primitive value in a CSS calc expression now has (zoom) multiplier and scale factor applied
30540        independently. Previously the multiplier and a single scale factor was applied to the expression
30541        as a whole, but this failed to account for expressions involving font relative units. This is 
30542        because the multiplier should not be applied to font relative units.
30543
30544        Test: css3/calc/zoom-with-em.html
30545
30546        * css/CSSPrimitiveValue.cpp:
30547        (WebCore::CSSPrimitiveValue::computeLengthDouble):
30548
305492012-09-04  Brian Anderson  <brianderson@chromium.org>
30550
30551        [chromium] Prevent compositor ticking if it can't draw
30552        https://bugs.webkit.org/show_bug.cgi?id=95399
30553
30554        Reviewed by James Robinson.
30555
30556        Background extensions had an always ticking compositor even though
30557        they couldn't draw. This patch disables the ticks when canDraw is false
30558        and adds a notification mechanism for when canDraw changes states so
30559        we can recover properly.
30560
30561        Tests updated for new interfaces.
30562        Regression test added to make sure ticking stops when canDraw is false.
30563        notifyIfCanDrawChanged test added to make sure notifications are sent
30564        for any changes that might affect canDraw.
30565
30566        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
30567        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
30568        (WebCore::CCLayerTreeHostImpl::notifyIfCanDrawChanged):
30569        (WebCore):
30570        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
30571        (WebCore::CCLayerTreeHostImpl::setRootLayer):
30572        (WebCore::CCLayerTreeHostImpl::initializeRenderer):
30573        (WebCore::CCLayerTreeHostImpl::setViewportSize):
30574        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
30575        (CCLayerTreeHostImplClient):
30576        (WebCore::CCLayerTreeHostImpl::resetContentsTexturesPurged):
30577        (CCLayerTreeHostImpl):
30578        * platform/graphics/chromium/cc/CCScheduler.cpp:
30579        (WebCore::CCScheduler::setCanDraw):
30580        (WebCore):
30581        (WebCore::CCScheduler::processScheduledActions):
30582        * platform/graphics/chromium/cc/CCScheduler.h:
30583        (CCScheduler):
30584        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
30585        (WebCore::CCSchedulerStateMachine::toString):
30586        (WebCore):
30587        (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
30588        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
30589        (CCSchedulerStateMachine):
30590        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
30591        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
30592        (WebCore::CCThreadProxy::onCanDrawStateChanged):
30593        (WebCore):
30594        (WebCore::CCThreadProxy::beginFrame):
30595        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
30596        * platform/graphics/chromium/cc/CCThreadProxy.h:
30597
305982012-09-04  Adam Barth  <abarth@chromium.org>
30599
30600        Remove WTF_DEPRECATED_STRING_OPERATORS from StylePropertySet.cpp
30601        https://bugs.webkit.org/show_bug.cgi?id=95800
30602
30603        Reviewed by Benjamin Poulain.
30604
30605        This patch is a re-spin of part of the patch from
30606        https://bugs.webkit.org/show_bug.cgi?id=95502, but with the tests
30607        fixed.  :)
30608
30609        * css/StylePropertySet.cpp:
30610        (WebCore::StylePropertySet::get4Values):
30611        (WebCore::StylePropertySet::getLayeredShorthandValue):
30612
306132012-09-04  Keishi Hattori  <keishi@webkit.org>
30614
30615        REGRESSION(r126132): MediaSlider and MediaVolumeSlider thumbs don't match mouse when dragged
30616        https://bugs.webkit.org/show_bug.cgi?id=95701
30617
30618        Reviewed by Kent Tamura.
30619
30620        MediaSlider and MediaVolumeSlider thumbs didn't match mouse when dragged because of the negative margin applied to the thumb.
30621
30622        Test: platform/chromium/media/media-volume-slider-hit-test.html
30623
30624        * html/shadow/SliderThumbElement.cpp:
30625        (WebCore::SliderThumbElement::setPositionFromPoint): Account for margins when calculating the position.
30626
306272012-09-04  Tony Chang  <tony@chromium.org>
30628
30629        Add a const version of RenderBox::computeLogicalHeight
30630        https://bugs.webkit.org/show_bug.cgi?id=95787
30631
30632        Reviewed by Ojan Vafai.
30633
30634        After this, we can rename the old computeLogicalHeight to computeAndSetLogicalHeight
30635        to make it clear that it is modifying values.
30636
30637        No new tests, this should just be a refactor.
30638
30639        * rendering/RenderBox.cpp:
30640        (WebCore::RenderBox::constrainLogicalHeightByMinMax): Make const.
30641        (WebCore::RenderBox::computeLogicalHeight): Add a const version that takes a LogicalExtentComputedValues struct for out values.
30642        (WebCore::RenderBox::computeLogicalHeightUsing): Make const.
30643        (WebCore::RenderBox::computeContentLogicalHeightUsing): Make const.
30644        (WebCore::RenderBox::computePercentageLogicalHeight): Add a const cast. I tried to
30645        convert everything below to const, but that's not a simple task. Also, computeReplacedLogicalHeightUsing
30646        is already using a const_cast.
30647        * rendering/RenderBox.h:
30648        (RenderBox): Add const to method signatures.
30649
306502012-09-04  Dirk Schulze  <krit@webkit.org>
30651
30652        -webkit-clip-path does not apply origin for polygon()
30653        https://bugs.webkit.org/show_bug.cgi?id=95656
30654
30655        Reviewed by Tim Horton.
30656
30657        The polygon() shape function did not apply origin of bouding box on created path. The shape was
30658        not moved to the correct position.
30659
30660        Tests: svg/clip-path/clip-path-shape-polygon-relative-expected.svg
30661               svg/clip-path/clip-path-shape-polygon-relative.svg
30662
30663        * rendering/style/BasicShapes.cpp:
30664        (WebCore::BasicShapePolygon::path): Apply origin of bounding box.
30665
306662012-09-04  Adam Barth  <abarth@chromium.org>
30667
30668        Make chromium-linux build without WTF_DEPRECATED_STRING_OPERATORS
30669        https://bugs.webkit.org/show_bug.cgi?id=95798
30670
30671        Reviewed by Eric Seidel.
30672
30673        This patch makes the chromium-linux port build without
30674        WTF::String::operator+=.  There are a couple places that require some
30675        more careful study, and I've whitelisted those uses by defining
30676        WTF_DEPRECATED_STRING_OPERATORS at the top of the files. (See
30677        https://bugs.webkit.org/show_bug.cgi?id=95797 for an explanation of
30678        WTF_DEPRECATED_STRING_OPERATORS.)
30679
30680        * css/StylePropertySet.cpp:
30681        * inspector/InspectorOverlay.cpp:
30682        (WebCore::InspectorOverlay::drawNodeHighlight):
30683        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30684        (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
30685
306862012-09-04  Tony Chang  <tony@chromium.org>
30687
30688        Use TrackedRendererListHashSet typedef for percentHeightDescendants()
30689        https://bugs.webkit.org/show_bug.cgi?id=95791
30690
30691        Reviewed by Ojan Vafai.
30692
30693        There were a couple callers that were using ListHashSet<RenderBox*> instead of the typedef.
30694
30695        No new tests, this is just a refactor.
30696
30697        * rendering/RenderTableSection.cpp:
30698        (WebCore::RenderTableSection::layoutRows):
30699        * rendering/RenderView.cpp:
30700        (WebCore::RenderView::setFixedPositionedObjectsNeedLayout):
30701
307022012-09-04  Alec Flett  <alecflett@chromium.org>
30703
30704        IndexedDB: remove final createIndex backend glue
30705        https://bugs.webkit.org/show_bug.cgi?id=95385
30706
30707        Reviewed by Adam Barth.
30708
30709        Remove all code that created index keys in the IndexedDB backend.
30710
30711        No new tests, this is just removal of dead code.
30712
30713        * Modules/indexeddb/IDBKeyPathBackendImpl.cpp: Removed.
30714        * Modules/indexeddb/IDBKeyPathBackendImpl.h: Removed.
30715        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
30716        (WebCore):
30717        * WebCore.gyp/WebCore.gyp:
30718        * WebCore.gypi:
30719        * storage/chromium/IDBKeyPathBackendImpl.cpp: Removed.
30720
307212012-09-04  Sergey Glazunov  <serg.glazunov@gmail.com>
30722
30723        Frame element doesn't always unload its child frame.
30724        https://bugs.webkit.org/show_bug.cgi?id=94717
30725
30726        Reviewed by Hajime Morita.
30727
30728        It's possible for a frame element that has been removed from the document
30729        to retain an active child frame. This inconsistent state may become a source
30730        of security vulnerabilities.
30731
30732        The patch adds a global HashSet to store the nodes currently processed by
30733        ChildFrameDisconnector. Insertion into these nodes' subtrees is not allowed until
30734        the processing is complete.
30735
30736        Also, the ChildFrameDisconnector call in removeChild(ren) is now immediately
30737        followed by the actual removal.
30738
30739        Test: fast/frames/out-of-document-iframe-has-child-frame.html
30740
30741        * dom/ContainerNode.cpp:
30742        (WebCore::willRemoveChildren): Move the ChildFrameDisconnector call out of a loop.
30743        (WebCore::ContainerNode::removeChild): Rearrange some event firing code.
30744        (WebCore::ContainerNode::removeChildren): Ditto.
30745        * dom/ContainerNodeAlgorithms.cpp:
30746        (WebCore::ChildFrameDisconnector::collectDescendant): Pass a new parameter to collectDescendant(Node*).
30747        * dom/ContainerNodeAlgorithms.h:
30748        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
30749        (ChildFrameDisconnector): Maintain a list of nodes that have an active ChildFrameDisconnector.
30750        (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
30751        (WebCore::ChildFrameDisconnector::rootNodes):
30752        (WebCore::ChildFrameDisconnector::collectDescendant): Add ShouldIncludeRoot parameter.
30753        (WebCore::ChildFrameDisconnector::nodeHasDisconnector):
30754        (WebCore):
30755        * dom/Node.cpp:
30756        (WebCore::checkAcceptChild): Reject a parent node if it or one of its parents has an active ChildFrameDisconnector.
30757        * html/HTMLFrameElementBase.cpp:
30758        (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check if an element is still in the document.
30759
307602012-09-03  Sam Weinig  <sam@webkit.org>
30761
30762        Part 1 of removing PlatformString.h, move remaining functions to new homes
30763        https://bugs.webkit.org/show_bug.cgi?id=95702
30764
30765        Reviewed by Beth Dakin.
30766
30767        Move utf8Buffer() to SharedBuffer.h/cpp
30768        Move numGraphemeClusters() and numCharactersInGraphemeClusters() to TextBreakIterator.h/cpp
30769
30770        * CMakeLists.txt:
30771        * GNUmakefile.list.am:
30772        * Target.pri:
30773        * WebCore.gypi:
30774        * WebCore.vcproj/WebCore.vcproj:
30775        * WebCore.xcodeproj/project.pbxproj:
30776        Update projects.
30777
30778        * platform/text/TextAllInOne.cpp:
30779        Add TextBreakIterator.cpp.
30780
30781        * editing/Editor.h:
30782        Forward declare SharedBuffer, now that PlatformString.h doesn't.
30783
30784        * html/InputType.cpp:
30785        #include TextBreakIterator.h.
30786
30787        * loader/appcache/ApplicationCacheStorage.h:
30788        Replace inclusion of PlatformString.h with WTFString.h and forward declare SharedBuffer.
30789
30790        * platform/LocalizedStrings.cpp:
30791        Replace inclusion of PlatformString.h with TextBreakIterator.h
30792 
30793        * platform/SharedBuffer.cpp:
30794        * platform/SharedBuffer.h:
30795        Move utf8Buffer() here.
30796
30797        * platform/text/PlatformString.h:
30798        Remove everything except the #include of WTFString.h.
30799
30800        * platform/text/TextBreakIterator.cpp: Renamed from Source/WebCore/platform/text/String.cpp.
30801        (WebCore::numGraphemeClusters):
30802        (WebCore::numCharactersInGraphemeClusters):
30803        * platform/text/TextBreakIterator.h:
30804        Move numGraphemeClusters() and numCharactersInGraphemeClusters() here. 
30805
308062012-09-04  Julien Chaffraix  <jchaffraix@webkit.org>
30807
30808        REGRESSION(r120832): RenderLayer::clampScrollOffset doesn't properly clamp
30809        https://bugs.webkit.org/show_bug.cgi?id=95776
30810
30811        Reviewed by Simon Fraser.
30812
30813        r120832 consolidated the clamping logic into RenderLayer::clampScrollOffset. The existing code wouldn't properly ensure that
30814        the offset were positive which got exposed to other code paths, leading to the regression.
30815
30816        Tested by ManualTests/select-menu-list-wrongly-positioned.html as I didn't find a way to create a reliable layout test.
30817
30818        * rendering/RenderLayer.cpp:
30819        (WebCore::RenderLayer::clampScrollOffset):
30820        Fixed the clamping logic to ensure that the scroll offset's dimensions are positive.
30821
308222012-09-04  Joshua Bell  <jsbell@chromium.org>
30823
30824        IndexedDB: IDBRequest leaks if IDBCursor closes and no further events fired
30825        https://bugs.webkit.org/show_bug.cgi?id=95777
30826
30827        Reviewed by Tony Chang.
30828
30829        IDBRequests are kept alive as long as they may fire events, which includes
30830        if the associated IDBCursor object can be advanced. When the transaction
30831        is finished the IDBCursor is notified which in turn tells the IDBRequest
30832        that the cursor won't be the source of more events. However, if this occurs
30833        and no further events fire the IDBRequest doesn't clear it's "has pending
30834        activity flag". Clear the flag on the notification if the request is
30835        otherwise complete.
30836
30837        No new tests - ActiveDOMObjects and leaks are persnickety.
30838
30839        * Modules/indexeddb/IDBRequest.cpp:
30840        (WebCore::IDBRequest::finishCursor):
30841
308422012-09-04  Max Vujovic  <mvujovic@adobe.com>
30843
30844        [CSS Shaders] Implement multiply, screen, darken, lighten, difference, exclusion blend modes.
30845        https://bugs.webkit.org/show_bug.cgi?id=93870
30846
30847        Reviewed by Dirk Schulze.
30848
30849        Add expressions for the aforementioned blend modes. The expressions are lifted directly
30850        from the CSS Compositing and Blending spec [1]. WebKit adds these blending expressions to
30851        the author's shader.
30852
30853        [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
30854
30855        Test: css3/filters/custom/custom-filter-blend-modes.html
30856
30857        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30858        (WebCore::CustomFilterValidatedProgram::blendFunctionString):
30859
308602012-09-04  Nikhil Bhargava  <nbhargava@google.com>
30861
30862        Fix style for Event.h
30863        https://bugs.webkit.org/show_bug.cgi?id=95779
30864
30865        Reviewed by Eric Seidel.
30866
30867        Changes indenting for Event.h to match style guidelines for namespaces
30868
30869        * dom/Event.h:
30870
308712012-09-04  Jeffrey Pfau  <jpfau@apple.com>
30872
30873        Make plugins respect third-party storage blocking setting
30874        https://bugs.webkit.org/show_bug.cgi?id=94888
30875
30876        Reviewed by Brady Eidson.
30877
30878        Added functions for discerning if a plugin should be able to access its storage in its current origin.
30879
30880        Tests: http/tests/security/cross-origin-plugin-allowed.html
30881               http/tests/security/cross-origin-plugin.html
30882
30883        * WebCore.exp.in: Export FrameTree::top and SecurityOrigin::canAccessStorage
30884        * page/SecurityOrigin.h: Added canAccessPluginStorage
30885        (WebCore::SecurityOrigin::canAccessPluginStorage):
30886
308872012-09-04  Robert Hogan  <robert@webkit.org>
30888
30889        Regression(r127163): Heap-use-after-free in WebCore::RenderBoxModelObject::hasSelfPaintingLayer
30890        https://bugs.webkit.org/show_bug.cgi?id=95632
30891
30892        Reviewed by Abhishek Arya.
30893
30894        Don't add floats to the floating object set of blocks that avoid floats. There's no point in doing that
30895        and they will never get cleared out during relayout.
30896
30897        Tests: fast/css/intruding-floats-crash.html
30898
30899        * rendering/RenderBlock.cpp:
30900        (WebCore::RenderBlock::clearFloatsIfNeeded):
30901
309022012-09-04  Michael Saboff  <msaboff@apple.com>
30903
30904        equal() in CSSParser.cpp should check the length of characters
30905        https://bugs.webkit.org/show_bug.cgi?id=95706
30906
30907        Reviewed by Abhishek Arya.
30908
30909        Pass the length of string literals to CSSParser static functions equal() and 
30910        equalIgnoringCase() so that checks won't access out of bounds memory.
30911
30912        Added test fast/css/crash-comparing-equal.html.
30913
30914        * css/CSSParser.cpp:
30915        (WebCore::equal): Use template to retrieve the length of string literal.
30916        (WebCore::equalIgnoringCase): Ditto.
30917        (WebCore::CSSParser::parseDashboardRegions): Use const char[] instead of const char*
30918
309192012-09-04  Antonio Gomes  <agomes@rim.com>
30920
30921        [BlackBerry] Use child/ScrollableContent layer's position instead of parent/ScrollLayer's boundsOrigin
30922        https://bugs.webkit.org/show_bug.cgi?id=95778
30923        PR #202252
30924
30925        Reviewed by Rob Buis.
30926        Internally reviewed by Arvid Nilsson.
30927
30928        Upstream has switch away from using the parent scroll layer's bounds origin
30929        in order to translate contents of all its child layers. Instead now, it directly
30930        sets the scroll position of the child scrollable contents layer.
30931
30932        No new tests, since it is a catch-up with upstreaming code.
30933
30934        Source/WebCore:
30935        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
30936        (WebCore):
30937        * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
30938        (GraphicsLayerBlackBerry):
30939        * platform/graphics/blackberry/LayerCompositingThread.cpp:
30940        (WebCore::LayerCompositingThread::updateAnimations):
30941        * platform/graphics/blackberry/LayerCompositingThread.h:
30942        (WebCore::LayerOverride::LayerOverride):
30943        (LayerOverride):
30944        * platform/graphics/blackberry/LayerData.h:
30945        (LayerData):
30946        * platform/graphics/blackberry/LayerRenderer.cpp:
30947        (WebCore::LayerRenderer::updateLayersRecursive):
30948        * platform/graphics/blackberry/LayerWebKitThread.h:
30949        * rendering/RenderLayerBacking.cpp:
30950        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
30951
309522012-09-04  Tommy Widenflycht  <tommyw@google.com>
30953
30954        MediaStream API: Add the async createOffer functionality to RTCPeerConnection
30955        https://bugs.webkit.org/show_bug.cgi?id=95734
30956
30957        Reviewed by Adam Barth.
30958
30959        createOffer sends a request to the platform implementer requesting it to gather up all candidates.
30960        This can take some time, therefore the request is async.
30961
30962        Test: fast/mediastream/RTCPeerConnection-createOffer.html
30963
30964        * CMakeLists.txt:
30965        * GNUmakefile.list.am:
30966        * Modules/mediastream/RTCErrorCallback.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
30967        (WebCore):
30968        (RTCErrorCallback):
30969        (WebCore::RTCErrorCallback::~RTCErrorCallback):
30970        * Modules/mediastream/RTCErrorCallback.idl: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
30971        * Modules/mediastream/RTCPeerConnection.cpp:
30972        (WebCore::RTCPeerConnection::createOffer):
30973        (WebCore):
30974        * Modules/mediastream/RTCPeerConnection.h:
30975        (WebCore):
30976        (RTCPeerConnection):
30977        * Modules/mediastream/RTCPeerConnection.idl:
30978        * Modules/mediastream/RTCSessionDescriptionCallback.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
30979        (WebCore):
30980        (RTCSessionDescriptionCallback):
30981        (WebCore::RTCSessionDescriptionCallback::~RTCSessionDescriptionCallback):
30982        * Modules/mediastream/RTCSessionDescriptionCallback.idl: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
30983        * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp: Added.
30984        (WebCore):
30985        (WebCore::RTCSessionDescriptionRequestImpl::create):
30986        (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
30987        (WebCore::RTCSessionDescriptionRequestImpl::~RTCSessionDescriptionRequestImpl):
30988        (WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded):
30989        (WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
30990        (WebCore::RTCSessionDescriptionRequestImpl::stop):
30991        (WebCore::RTCSessionDescriptionRequestImpl::clear):
30992        * Modules/mediastream/RTCSessionDescriptionRequestImpl.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
30993        (WebCore):
30994        (RTCSessionDescriptionRequestImpl):
30995        * WebCore.gypi:
30996        * platform/chromium/support/WebRTCSessionDescriptionDescriptor.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h.
30997        (WebKit):
30998        (WebKit::WebRTCSessionDescriptionDescriptor::WebRTCSessionDescriptionDescriptor):
30999        (WebKit::WebRTCSessionDescriptionDescriptor::assign):
31000        (WebKit::WebRTCSessionDescriptionDescriptor::reset):
31001        (WebKit::WebRTCSessionDescriptionDescriptor::operator WTF::PassRefPtr<WebCore::RTCSessionDescriptionDescriptor>):
31002        (WebKit::WebRTCSessionDescriptionDescriptor::initialize):
31003        (WebKit::WebRTCSessionDescriptionDescriptor::type):
31004        (WebKit::WebRTCSessionDescriptionDescriptor::setType):
31005        (WebKit::WebRTCSessionDescriptionDescriptor::sdp):
31006        (WebKit::WebRTCSessionDescriptionDescriptor::setSDP):
31007        * platform/chromium/support/WebRTCSessionDescriptionRequest.cpp: Added.
31008        (WebKit):
31009        (WebKit::WebRTCSessionDescriptionRequest::WebRTCSessionDescriptionRequest):
31010        (WebKit::WebRTCSessionDescriptionRequest::assign):
31011        (WebKit::WebRTCSessionDescriptionRequest::reset):
31012        (WebKit::WebRTCSessionDescriptionRequest::requestSucceeded):
31013        (WebKit::WebRTCSessionDescriptionRequest::requestFailed):
31014        (ExtraDataContainer):
31015        (WebKit::ExtraDataContainer::ExtraDataContainer):
31016        (WebKit::ExtraDataContainer::extraData):
31017        (WebKit::WebRTCSessionDescriptionRequest::extraData):
31018        (WebKit::WebRTCSessionDescriptionRequest::setExtraData):
31019        * platform/mediastream/RTCPeerConnectionHandler.cpp:
31020        (RTCPeerConnectionHandlerDummy):
31021        (WebCore::RTCPeerConnectionHandlerDummy::createOffer):
31022        (WebCore):
31023        * platform/mediastream/RTCPeerConnectionHandler.h:
31024        (WebCore):
31025        (RTCPeerConnectionHandler):
31026        * platform/mediastream/RTCSessionDescriptionDescriptor.h:
31027        (WebCore::RTCSessionDescriptionDescriptor::type):
31028        (WebCore::RTCSessionDescriptionDescriptor::sdp):
31029        * platform/mediastream/RTCSessionDescriptionRequest.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
31030        (WebCore):
31031        (RTCSessionDescriptionRequest):
31032        (ExtraData):
31033        (WebCore::RTCSessionDescriptionRequest::ExtraData::~ExtraData):
31034        (WebCore::RTCSessionDescriptionRequest::~RTCSessionDescriptionRequest):
31035        (WebCore::RTCSessionDescriptionRequest::extraData):
31036        (WebCore::RTCSessionDescriptionRequest::setExtraData):
31037        (WebCore::RTCSessionDescriptionRequest::RTCSessionDescriptionRequest):
31038        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
31039        (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
31040        (WebCore):
31041        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
31042        (RTCPeerConnectionHandlerChromium):
31043
310442012-09-04  Dan Bernstein  <mitz@apple.com>
31045
31046        Reverted r127468 (the fix for <http://webkit.org/b/93443>) because the test it included caused
31047        an assertion failure in Document::updateStyleIfNeeded().
31048
31049        * dom/NamedFlowCollection.cpp:
31050        (WebCore::NamedFlowCollection::ensureFlowWithName):
31051        (WebCore::NamedFlowCollection::discardNamedFlow):
31052        * inspector/Inspector.json:
31053        * inspector/InspectorCSSAgent.cpp:
31054        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
31055        (WebCore::InspectorCSSAgent::didRemoveNamedFlow):
31056        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
31057        (WebCore::InspectorCSSAgent::getFlowByName):
31058        (WebCore):
31059        * inspector/InspectorCSSAgent.h:
31060        (InspectorCSSAgent):
31061        * inspector/InspectorInstrumentation.cpp:
31062        (WebCore):
31063        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
31064        (WebCore::InspectorInstrumentation::didRemoveNamedFlowImpl):
31065        * inspector/InspectorInstrumentation.h:
31066        (InspectorInstrumentation):
31067        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
31068        (WebCore::InspectorInstrumentation::didRemoveNamedFlow):
31069        * inspector/front-end/CSSStyleModel.js:
31070        (WebInspector.CSSStyleModel):
31071        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
31072        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
31073        (WebInspector.CSSStyleModel.prototype._namedFlowCreated.callback):
31074        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
31075        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved.callback):
31076        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
31077        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
31078        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
31079        (WebInspector.NamedFlow):
31080        (WebInspector.NamedFlow.parsePayloadArray):
31081        * rendering/RenderNamedFlowThread.cpp:
31082        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
31083
310842012-09-04  Simon Fraser  <simon.fraser@apple.com>
31085
31086        Regression: Heap-use-after-free in WebCore::FrameView::scrollContentsFastPath
31087        https://bugs.webkit.org/show_bug.cgi?id=95754
31088
31089        Reviewed by Dave Hyatt.
31090
31091        It's possible to have a renderer with position:fixed or sticky style,
31092        but no layer, for example a RenderScrollBarPart. Don't register such
31093        renderers with the FrameView.
31094        
31095        Moved the code that registers/unregisters with the FrameView from
31096        styleWillChange() to styleDidChange(), since in the latter case
31097        we can check if we have a RenderLayer. Only register renderers with layers.
31098        We always unregister, which required removing an assertion in
31099        FrameView::removeFixedObject(), and replacing it with a null check of m_fixedObjects.
31100
31101        Test: fast/css/remove-fixed-resizer-crash.html
31102
31103        * page/FrameView.cpp:
31104        (WebCore::FrameView::removeFixedObject):
31105        * rendering/RenderBoxModelObject.cpp:
31106        (WebCore::RenderBoxModelObject::styleWillChange):
31107        (WebCore::RenderBoxModelObject::styleDidChange):
31108
311092012-09-04  Dominik Röttsches  <dominik.rottsches@intel.com>
31110
31111        ResourceErrorBase needs to identify timeouts
31112        https://bugs.webkit.org/show_bug.cgi?id=95755
31113
31114        Reviewed by Alexey Proskuryakov.
31115
31116        Adding a property to check whether this ResourceError was raised due to a timeout.
31117        This is preparatory work for bug 74802. In order to implement XHR2 timeout functionality,
31118        I need to identify some layers up whether the original network problem has been a timeout.
31119
31120        No new tests, no change in behavior yet.
31121
31122        * platform/network/ResourceErrorBase.cpp:
31123        (WebCore::ResourceErrorBase::copy): Copying new member.
31124        (WebCore::ResourceErrorBase::compare): Comparing new member.
31125        * platform/network/ResourceErrorBase.h:
31126        (WebCore::ResourceErrorBase::setIsTimeout): New setter.
31127        (WebCore::ResourceErrorBase::isTimeout): New getter.
31128        (ResourceErrorBase),
31129        (WebCore::ResourceErrorBase::ResourceErrorBase): Adding m_isTimeout member.
31130
311312012-09-04  Tommy Widenflycht  <tommyw@google.com>
31132
31133        MediaStream API: Change the MediaStreamTrackList track added/removed signaling
31134        https://bugs.webkit.org/show_bug.cgi?id=95721
31135
31136        Reviewed by Adam Barth.
31137
31138        This allows the platform implementor to throw an NOT_SUPPORTED_ERR exception if it doesn support these methods.
31139
31140        Patch covered by expanded existing test.
31141
31142        * Modules/mediastream/MediaStreamTrackList.cpp:
31143        (WebCore::MediaStreamTrackList::add):
31144        (WebCore::MediaStreamTrackList::remove):
31145        * platform/mediastream/MediaStreamCenter.h:
31146        (MediaStreamCenter):
31147        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
31148        (WebCore::MediaStreamCenterBlackBerry::didAddMediaStreamTrack):
31149        (WebCore):
31150        (WebCore::MediaStreamCenterBlackBerry::didRemoveMediaStreamTrack):
31151        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
31152        (MediaStreamCenterBlackBerry):
31153        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
31154        (WebCore::MediaStreamCenterChromium::didAddMediaStreamTrack):
31155        (WebCore::MediaStreamCenterChromium::didRemoveMediaStreamTrack):
31156        * platform/mediastream/chromium/MediaStreamCenterChromium.h:
31157        (MediaStreamCenterChromium):
31158        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
31159        (WebCore::MediaStreamCenterGStreamer::didAddMediaStreamTrack):
31160        (WebCore::MediaStreamCenterGStreamer::didRemoveMediaStreamTrack):
31161        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
31162        (MediaStreamCenterGStreamer):
31163
311642012-09-04  Joanmarie Diggs  <jdiggs@igalia.com>
31165
31166        [GTK] Crash in AccessibilityObject::accessibilityPlatformIncludesObject()
31167        https://bugs.webkit.org/show_bug.cgi?id=95740
31168
31169        Reviewed by Martin Robinson.
31170
31171        Added sanity check to be sure we have a render object prior to seeing if
31172        said object is an anonymous block.
31173
31174        Testing via unit test because a non-flaky layout test crasher could not
31175        be found.
31176
31177        * accessibility/gtk/AccessibilityObjectAtk.cpp:
31178        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
31179        Sanity check for render object added.
31180
311812012-09-04  Christophe Dumez  <christophe.dumez@intel.com>
31182
31183        Automatic features should work in sandboxed iframes if "allow-scripts" flag is set
31184        https://bugs.webkit.org/show_bug.cgi?id=93961
31185
31186        Reviewed by Adam Barth.
31187
31188        Allow automatic features (video autoplay and form control
31189        autofocus) in a sandboxed iframe that has "allow-scripts"
31190        flag set. This behavior is according to the latest
31191        specification at:
31192        http://dev.w3.org/html5/spec/browsers.html#attr-iframe-sandbox-allow-same-origin
31193
31194        This sandboxed automatic features browsing context flag is
31195        relaxed by the same keyword as scripts, because when
31196        scripts are enabled these features are trivially possible
31197        anyway, and it would be unfortunate to force authors to
31198        use script to do them when sandboxed rather than allowing
31199        them to use the declarative features.
31200
31201        Tests: fast/forms/autofocus-in-sandbox-with-allow-scripts.html
31202               media/auto-play-in-sandbox-with-allow-scripts.html
31203
31204        * dom/SecurityContext.cpp:
31205        (WebCore::SecurityContext::parseSandboxPolicy):
31206
312072012-09-04  Sami Kyostila  <skyostil@google.com>
31208
31209        Register scrolling layers with ScrollingCoordinator
31210        https://bugs.webkit.org/show_bug.cgi?id=78862
31211
31212        Reviewed by James Robinson.
31213
31214        In order to allow scrollable child layers to be scrolled off the main
31215        thread, register them with the ScrollingCoordinator. These layers are
31216        also removed from the non-fast scrollable region.
31217
31218        Whenever the scroll offset or other scroll geometry related attribute of
31219        a compositor scrolled layer changes, the ScrollingCoordinator is
31220        informed to allow it to update its internal representation of the
31221        scrollable layer.
31222
31223        No tests because the ScrollingCoordinator is currently not testable.
31224
31225        * page/scrolling/ScrollingCoordinator.cpp:
31226        (WebCore::computeNonFastScrollableRegion): Composited scrolling layers
31227        can be scrolled off the main thread.
31228        (WebCore):
31229        (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
31230        Callback to ScrollingCoordinator about changes the composited scrolling layers.
31231        * page/scrolling/ScrollingCoordinator.h:
31232        (WebCore):
31233        (ScrollingCoordinator):
31234        * page/scrolling/ScrollingCoordinatorNone.cpp:
31235        (WebCore):
31236        (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
31237        * platform/ScrollableArea.h:
31238        (WebCore::ScrollableArea::usesCompositedScrolling):
31239        * rendering/RenderLayer.cpp:
31240        (WebCore):
31241        (WebCore::RenderLayer::usesCompositedScrolling):
31242        * rendering/RenderLayer.h:
31243        (RenderLayer):
31244        (WebCore::RenderLayer::usesCompositedScrolling):
31245        * rendering/RenderLayerBacking.cpp:
31246        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
31247        (WebCore::RenderLayerBacking::updateScrollingLayers):
31248        * rendering/RenderLayerCompositor.cpp:
31249        (WebCore::RenderLayerCompositor::scrollingLayerDidChange):
31250        (WebCore):
31251        * rendering/RenderLayerCompositor.h:
31252        (RenderLayerCompositor):
31253
312542012-09-04  Brian Anderson  <brianderson@chromium.org>
31255
31256        [chromium] Do not allow infinite pending frames in CCFrameRateController
31257        https://bugs.webkit.org/show_bug.cgi?id=94254
31258
31259        Reviewed by James Robinson.
31260
31261        Removes support for infinite pending frames in CCFrameRateController
31262        if swap acks are available.        
31263
31264        Functionality covered by existing tests.
31265
31266        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
31267        (WebCore::CCFrameRateController::CCFrameRateController):
31268        (WebCore::CCFrameRateController::setMaxFramesPending):
31269        (WebCore::CCFrameRateController::setSwapBuffersCompleteSupported):
31270        (WebCore):
31271        (WebCore::CCFrameRateController::onTimerTick):
31272        (WebCore::CCFrameRateController::didBeginFrame):
31273        (WebCore::CCFrameRateController::didFinishFrame):
31274        * platform/graphics/chromium/cc/CCFrameRateController.h:
31275        (CCFrameRateController):
31276        * platform/graphics/chromium/cc/CCScheduler.cpp:
31277        (WebCore::CCScheduler::setSwapBuffersCompleteSupported):
31278        (WebCore):
31279        * platform/graphics/chromium/cc/CCScheduler.h:
31280        (CCScheduler):
31281        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
31282        (WebCore::CCThreadProxy::initializeRendererOnImplThread):
31283
312842012-09-04  Tim Horton  <timothy_horton@apple.com>
31285
31286        ASSERTion failure when SVG element is removed from document and readded
31287        https://bugs.webkit.org/show_bug.cgi?id=95517
31288        <rdar://problem/12175583>
31289
31290        Reviewed by Brady Eidson.
31291
31292        Previously, SVG animations would cease to animate when their parent
31293        <svg> element was removed and re-added to the document.
31294
31295        Instead, to match Firefox and Opera, we should continue the animation
31296        with the same beginTime (i.e. the animation continues as if it had never
31297        been removed from the document).
31298
31299        Test: svg/animations/reinserting-svg-into-document.html
31300
31301        * svg/SVGSVGElement.cpp:
31302        (WebCore::SVGSVGElement::insertedInto): Don't call begin() on an already-started SMILTimeContainer().
31303        * svg/animation/SMILTimeContainer.cpp: 
31304        (WebCore::SMILTimeContainer::isStarted): Added.
31305        * svg/animation/SMILTimeContainer.h: Add isStarted().
31306        * svg/animation/SVGSMILElement.cpp:
31307        (WebCore::SVGSMILElement::insertedInto): Always reschedule SVGSMILElements with
31308        their parent SMILTimeContainer when they are inserted into the document, otherwise
31309        they are lost (and never again update) when their subtree is removed and then
31310        readded to the document.
31311
313122012-09-04  Andrei Bucur  <abucur@adobe.com>
31313
31314        [CSS Regions] Destroying a render named flow thread without unregistering left-over content nodes triggered an assertion.
31315        https://bugs.webkit.org/show_bug.cgi?id=95645
31316
31317        Reviewed by Abhishek Arya.
31318
31319        This patch cleans up the render named flow thread before destruction by unregistering left-over content nodes.
31320
31321        Tests: fast/regions/moved-content-node-crash.html
31322
31323        * rendering/RenderNamedFlowThread.cpp:
31324        (WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
31325
313262012-09-04  Koji Ishii  <kojiishi@gmail.com>
31327
31328        [chromium] OpenTypeVerticalData.cpp in both webcore_remaining and webcore_platform seems to break incremental linking on Windows Chromium
31329        https://bugs.webkit.org/show_bug.cgi?id=95744
31330
31331        Patch by Koji Ishii <kojiishi@gmail.com> on 2012-09-04
31332        Unreviewed build fix, verified by Scott Graham.
31333
31334        The addition of 'platform/graphics/opentype/*' to webcore_platform in WebCore.gyp was redundant
31335        because '/opentype/' was already included to webcore_remaining.
31336        It was not only redundant but also breaks incremental linking.
31337
31338        No new tests are required because no behavior changes.
31339
31340        * WebCore.gyp/WebCore.gyp: Removed platform/graphics/opentype/* from webcore_platform.
31341
313422012-09-04  Otto Derek Cheung  <otcheung@rim.com>
31343
31344        [BlackBerry] Browser is not sending secured Cookie back to server over HTTPS connection
31345        https://bugs.webkit.org/show_bug.cgi?id=95747
31346
31347        PR199729
31348
31349        Reviewed by Rob Buis.
31350        Internally Reviewed by Joe Mason.
31351
31352        If the browser has never saved a secure protocol cookie in its mapping before,
31353        and it tries to set and retreive a secure cookie over a non-secure
31354        protocol, it will not show up because the link between the secure and
31355        non-secure mapping isn't created until a cookie (sent through secure) is set.
31356
31357        The fix is to also check for the linkage in getRawCookies. Note that we cannot
31358        map the secure CookieMap to the non-secure one because getRawCookies is a const
31359        function.
31360
31361        Manually tested using our Browser Test suite.
31362
31363        * platform/blackberry/CookieManager.cpp:
31364        (WebCore::CookieManager::getRawCookies):
31365
313662012-09-04  Philippe Normand  <pnormand@igalia.com>
31367
31368        [GStreamer] 0.11 build breaks due to rename of gst_message_new_duration
31369        https://bugs.webkit.org/show_bug.cgi?id=95751
31370
31371        Reviewed by Martin Robinson.
31372
31373        In gstreamer commit f712a9596c2bc1863edf9b816d9854eefca9ba45
31374        gst_message_new_duration was renamed to
31375        gst_message_new_duration_changed.
31376
31377        However the only place where we used this is in the HTTP source
31378        element and only if appsrc < 0.10.27 is used at runtime. In the
31379        case of GStreamer 1.0 this condition will be always false so we
31380        can disable this code at build time.
31381
31382        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
31383        (StreamingClient::didReceiveResponse):
31384
313852012-09-04  Andrei Poenaru  <poenaru@adobe.com>
31386
31387        Web Inspector: Protocol Extension: Add "regionLayoutUpdate" event
31388        https://bugs.webkit.org/show_bug.cgi?id=93443
31389
31390        Reviewed by Pavel Feldman.
31391
31392        Added "regionLayoutUpdate" event to the protocol.
31393
31394        Removed "getFlowByName" from protocol.
31395
31396        The front-end keeps in sync the requested Named Flow Collections.
31397
31398        Modified existing test: inspector/styles/protocol-css-regions-commands.html
31399
31400        * dom/NamedFlowCollection.cpp:
31401        (WebCore::NamedFlowCollection::ensureFlowWithName):
31402        (WebCore::NamedFlowCollection::discardNamedFlow):
31403        * inspector/Inspector.json:
31404        * inspector/InspectorCSSAgent.cpp:
31405        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
31406        (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
31407        (WebCore):
31408        (WebCore::InspectorCSSAgent::didUpdateRegionLayout):
31409        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
31410        (WebCore::InspectorCSSAgent::documentNodeWithRequestedFlowsId):
31411        * inspector/InspectorCSSAgent.h:
31412        (InspectorCSSAgent):
31413        * inspector/InspectorInstrumentation.cpp:
31414        (WebCore):
31415        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
31416        (WebCore::InspectorInstrumentation::willRemoveNamedFlowImpl):
31417        (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl):
31418        * inspector/InspectorInstrumentation.h:
31419        (InspectorInstrumentation):
31420        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
31421        (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
31422        (WebCore):
31423        (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
31424        * inspector/front-end/CSSStyleModel.js:
31425        (WebInspector.CSSStyleModel):
31426        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync.callback):
31427        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
31428        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync.callback):
31429        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
31430        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
31431        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
31432        (WebInspector.CSSStyleModel.prototype._regionLayoutUpdated):
31433        (WebInspector.CSSStyleModel.prototype._resetNamedFlowCollections):
31434        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
31435        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
31436        (WebInspector.CSSDispatcher.prototype.regionLayoutUpdated):
31437        (WebInspector.NamedFlow):
31438        (WebInspector.NamedFlowCollection):
31439        (WebInspector.NamedFlowCollection.prototype.appendNamedFlow):
31440        (WebInspector.NamedFlowCollection.prototype.removeNamedFlow):
31441        (WebInspector.NamedFlowCollection.prototype.flowByName):
31442        * rendering/RenderNamedFlowThread.cpp:
31443        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
31444
314452012-09-04  Jonathan Liu  <net147@gmail.com>
31446
31447        Fix IDL dependency generation correctly
31448        https://bugs.webkit.org/show_bug.cgi?id=95730
31449
31450        Reviewed by Csaba Osztrogonác.
31451
31452        IDL dependency generation is still not working after
31453        https://bugs.webkit.org/show_bug.cgi?id=88304. This is because spaces
31454        added after the filename in an echo command end up being added to the
31455        file which isn't handled correctly by preprocess-idls.pl. The problem
31456        is fixed by removing the space after the filename.
31457
31458        * DerivedSources.pri:
31459
314602012-09-04  Mario Sanchez Prada  <msanchez@igalia.com>
31461
31462        [Stable] [GTK] Crash in WebCore::HTMLSelectElement::selectedIndex
31463        https://bugs.webkit.org/show_bug.cgi?id=95618
31464
31465        Reviewed by Martin Robinson.
31466
31467        Make sure we only emit the the signal for menu lists and list
31468        boxes rendered from actual HTML select elements.
31469
31470        * accessibility/gtk/AXObjectCacheAtk.cpp:
31471        (WebCore::notifyChildrenSelectionChange): We support accessibility
31472        ListBoxes and MenuLists only here, assuming they represent HTML
31473        select elements, which might be not always true (e.g. ARIA). Thus,
31474        check if that condition is true, early returning in other case.
31475
314762012-09-04  Martin Robinson  <mrobinson@igalia.com>
31477
31478        [Cairo] [TextureMapper] Assertion failure in TextureMapperGL
31479        https://bugs.webkit.org/show_bug.cgi?id=95713
31480
31481        Reviewed by Noam Rosenthal.
31482
31483        Fix an assertion failure by returning a valid context always for GraphicsContext3D::platformContext.
31484        This is important because TextureMapperGL uses the platform context to perform hashing.
31485
31486        No new tests. This is covered by existing accelerated compositing tests.
31487
31488        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
31489        (WebCore::GraphicsContext3DPrivate::platformContext): Return the current GLContext
31490        when getting the platform context for private GraphicsContext3DPrivates that render
31491        to the currently active context.
31492
314932012-09-04  Alexander Shalamov  <alexander.shalamov@intel.com>
31494
31495        [EFL] Check if ecore_x is initialised before calling ecore_x_bell to avoid crash
31496        https://bugs.webkit.org/show_bug.cgi?id=86961
31497
31498        Reviewed by Kenneth Rohde Christiansen.
31499
31500        Add ecore_x initialisation check before calling ecore_x_bell
31501        to avoid crashes when X server is not running.
31502
31503        * platform/efl/SoundEfl.cpp:
31504        (WebCore::systemBeep):
31505
315062012-09-04  Alexander Shalamov  <alexander.shalamov@intel.com>
31507
31508        [EFL] Check if ecore_x is initialised before calling ecore_x_bell to avoid crash
31509        https://bugs.webkit.org/show_bug.cgi?id=86961
31510
31511        Reviewed by Kenneth Rohde Christiansen.
31512
31513        Add ecore_x initialisation check before calling ecore_x_bell
31514        to avoid crashes when X server is not running.
31515
31516        * platform/efl/SoundEfl.cpp:
31517        (WebCore::systemBeep):
31518
315192012-09-04  Alexander Shalamov  <alexander.shalamov@intel.com>
31520
31521        [EFL][WK2] CSS3 Media Queries functionality is broken
31522        https://bugs.webkit.org/show_bug.cgi?id=95680
31523
31524        Reviewed by Kenneth Rohde Christiansen.
31525
31526        In WK2, WebProcess doesn't have access to ewk_view evas object.
31527        Methods that get screen rect or screen depth either return incorrect value or crash.
31528        This patch removes dependency to ewk_view evas object and relies on ecore_x_* functions
31529        to get screen rectangle or color depth of the screen.
31530
31531        * platform/efl/EflScreenUtilities.cpp: removed unused getPixelDepth method definition
31532        * platform/efl/EflScreenUtilities.h: removed unsused getPixelDepth method declaration
31533        (WebCore):
31534        * platform/efl/PlatformScreenEfl.cpp:
31535        (WebCore):
31536        (WebCore::screenHorizontalDPI):
31537        (WebCore::screenVerticalDPI):
31538        (WebCore::screenDepth):
31539        (WebCore::screenDepthPerComponent):
31540        (WebCore::screenIsMonochrome):
31541        (WebCore::screenRect):
31542
315432012-09-04  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
31544
31545        [EFL] Context menu restore.
31546        https://bugs.webkit.org/show_bug.cgi?id=74179
31547
31548        Reviewed by Gyuyoung Kim.
31549
31550        Adds context menu support for EFL port using non-CROSS_PLATFORM_CONTEXT_MENUS
31551        approach, the same as used in WebKit2.
31552
31553        * PlatformEfl.cmake: Removed -DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1
31554
315552012-09-04  Andrey Adaikin  <aandrey@chromium.org>
31556
31557        Web Inspector: [WebGL] Bugfix: wrong texture binding target in replay for 3D textures
31558        https://bugs.webkit.org/show_bug.cgi?id=95687
31559
31560        Reviewed by Vsevolod Vlasov.
31561
31562        gl.bindTexture accepts either TEXTURE_2D or TEXTURE_CUBE_MAP targets, but we tried to replay with TEXTURE_CUBE_MAP_POSITIVE_X and others for 3D textures.
31563
31564        * inspector/InjectedScriptWebGLModuleSource.js:
31565        (.):
31566
315672012-09-04  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
31568
31569        Allow child-frame content in hit-tests.
31570        https://bugs.webkit.org/show_bug.cgi?id=95204
31571
31572        Reviewed by Antonio Gomes.
31573
31574        Refactors how EventHandler::hitTestResultAtPoint handles child-frame content,
31575        it is now handled by the hit test itself controlled by the AllowChildFrameContent
31576        flag in HitTestRequest.
31577
31578        Tests: fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html
31579               touchadjustment/iframe-boundary.html
31580
31581        * WebCore.exp.in:
31582        * WebCore.order:
31583        * dom/Document.cpp:
31584        (WebCore::Document::nodesFromRect):
31585        * dom/Document.h:
31586        (Document):
31587        * page/EventHandler.cpp:
31588        (WebCore::EventHandler::hitTestResultAtPoint):
31589        * rendering/HitTestRequest.h:
31590        (WebCore::HitTestRequest::allowChildFrameContent):
31591        (WebCore::HitTestRequest::childFrameHitTest):
31592        (WebCore::HitTestRequest::testChildFrameScrollBars):
31593        * rendering/RenderFrameBase.cpp:
31594        (WebCore::RenderFrameBase::nodeAtPoint):
31595        (WebCore):
31596        * rendering/RenderFrameBase.h:
31597        (RenderFrameBase):
31598        * rendering/RenderLayer.cpp:
31599        (WebCore::RenderLayer::hitTest):
31600        * testing/Internals.cpp:
31601        (WebCore::Internals::nodesFromRect):
31602        * testing/Internals.h:
31603        (Internals):
31604        * testing/Internals.idl:
31605
316062012-09-04  Christophe Dumez  <christophe.dumez@intel.com>
31607
31608        [EFL] Fix build error in NetworkStateNotifierEfl.cpp
31609        https://bugs.webkit.org/show_bug.cgi?id=95724
31610
31611        Unreviewed EFL build fix.
31612
31613        Make sure <sys/socket.h> is included before
31614        <linux/netlink.h> to fix build errors on some
31615        systems (e.g. Ubuntu 11.10).
31616
31617        No new tests, no behavior change.
31618
31619        * platform/network/efl/NetworkStateNotifierEfl.cpp:
31620
316212012-09-04  Vsevolod Vlasov  <vsevik@chromium.org>
31622
31623        Web Inspector: Create JavaScriptSources based on network resources.
31624        https://bugs.webkit.org/show_bug.cgi?id=95352
31625
31626        Reviewed by Pavel Feldman.
31627
31628        Introduced NetworkUISourceCodeProvider that is listening for ResourceTreeModel and creates UISourceCodes for them.
31629        RawSourceCode does not create uiSourceCodes based on resource anymore (this is done by NetworkUISourceCodeProvider instead).
31630        Moved script <-> uiSourceCode binding logic from RawSourceCode to ResourceScriptMapping.
31631        Removed rawSourceCode as it was not needed anymore.
31632
31633        Tests: inspector/debugger/network-uisourcecode-provider.html
31634               inspector/debugger/resource-script-mapping.html
31635
31636        * WebCore.gypi:
31637        * WebCore.vcproj/WebCore.vcproj:
31638        * inspector/compile-front-end.py:
31639        * inspector/front-end/CompilerScriptMapping.js:
31640        * inspector/front-end/DebuggerModel.js:
31641        (WebInspector.DebuggerDispatcher.prototype.scriptFailedToParse):
31642        * inspector/front-end/JavaScriptSource.js:
31643        (WebInspector.JavaScriptSource):
31644        * inspector/front-end/NetworkUISourceCodeProvider.js: Renamed from Source/WebCore/inspector/front-end/StylesUISourceCodeProvider.js.
31645        (WebInspector.NetworkUISourceCodeProvider):
31646        (WebInspector.NetworkUISourceCodeProvider.prototype._populate):
31647        (WebInspector.NetworkUISourceCodeProvider.prototype._styleResourceAdded):
31648        (WebInspector.NetworkUISourceCodeProvider.prototype._scriptResourceAdded.resourceFinished):
31649        (WebInspector.NetworkUISourceCodeProvider.prototype._scriptResourceAdded):
31650        (WebInspector.NetworkUISourceCodeProvider.prototype._addJavaScriptSource):
31651        (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
31652        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
31653        (WebInspector.NetworkUISourceCodeProvider.prototype._reset):
31654        * inspector/front-end/RawSourceCode.js:
31655        * inspector/front-end/ResourceScriptMapping.js:
31656        (WebInspector.ResourceScriptMapping):
31657        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
31658        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
31659        (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
31660        (WebInspector.ResourceScriptMapping.prototype._addOrReplaceTemporaryUISourceCode.get var):
31661        (WebInspector.ResourceScriptMapping.prototype._addOrReplaceTemporaryUISourceCode):
31662        (WebInspector.ResourceScriptMapping.prototype.get _uiSourceCodeReplaced):
31663        (WebInspector.ResourceScriptMapping.prototype._reset):
31664        * inspector/front-end/ScriptSnippetModel.js:
31665        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
31666        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
31667        (WebInspector.SnippetJavaScriptSource):
31668        * inspector/front-end/UISourceCode.js:
31669        (WebInspector.UISourceCode):
31670        (WebInspector.UISourceCode.prototype.uiLocationToRawLocation):
31671        (WebInspector.UISourceCode.prototype.setSourceMapping):
31672        * inspector/front-end/WebKit.qrc:
31673        * inspector/front-end/Workspace.js: Drive-by: fixed duplicating uiSourceCodes in workspace.
31674        * inspector/front-end/inspector.html:
31675        * inspector/front-end/inspector.js:
31676
316772012-09-04  Andrey Adaikin  <aandrey@chromium.org>
31678
31679        Web Inspector: [WebGL] Save gl.getError() status before taking a WebGL state snapshot and restore it afterwards
31680        https://bugs.webkit.org/show_bug.cgi?id=95443
31681
31682        Reviewed by Vsevolod Vlasov.
31683
31684        Save gl.getError() status before taking the GL snapshot and restore it afterwards.
31685
31686        * inspector/InjectedScriptWebGLModuleSource.js:
31687        (.):
31688
316892012-09-04  Alexander Pavlov  <apavlov@chromium.org>
31690
31691        Web Inspector: More directional control characters for debugging in inspector
31692        https://bugs.webkit.org/show_bug.cgi?id=95696
31693
31694        Reviewed by Vsevolod Vlasov.
31695
31696        Entities for text directionality-related characters added (LRE, RLE, LRO, RLO, PDF).
31697
31698        * inspector/front-end/ElementsTreeOutline.js:
31699
317002012-09-04  Yury Semikhatsky  <yurys@chromium.org>
31701
31702        Web Inspector: new CPU Profiles are not shown after reattach
31703        https://bugs.webkit.org/show_bug.cgi?id=95686
31704
31705        Reviewed by Vsevolod Vlasov.
31706
31707        * inspector/InspectorProfilerAgent.cpp:
31708        (WebCore::InspectorProfilerAgent::restore): set m_headersRequested flags
31709        to true and clear all profiles on the front-end since there are no
31710        collected profiles yet immediately after render process sitching.
31711
317122012-09-04  Ilya Tikhonovsky  <loislo@chromium.org>
31713
31714        Web Inspector: NMI: cosmetic change, rename m_domMemoryUsage to m_memoryInstrumentation.
31715        https://bugs.webkit.org/show_bug.cgi?id=95716
31716
31717        Also m_memoryInstrumentation became a reference to external object because it has other life time than domNodeVisitor.
31718
31719        Reviewed by Yury Semikhatsky.
31720
31721        * inspector/InspectorMemoryAgent.cpp:
31722        (WebCore):
31723        (WebCore::collectDomTreeInfo):
31724
317252012-08-31  Simon Hausmann  <simon.hausmann@nokia.com>
31726
31727        [Qt] Port the Qt pixmap JS bindings to use the JSC C API
31728        https://bugs.webkit.org/show_bug.cgi?id=94702
31729
31730        Reviewed by Kenneth Rohde Christiansen.
31731
31732        Based on patch by Noam Rosenthal.
31733
31734        The conversion uses a simple JSClassRef based binding and only a few
31735        uses of private JSC API for the HTML element DOM bindings remain.
31736
31737        This is essentially used for wrapping QPixmap and QImage types in
31738        JavaScript and the other way around, for retrieving the image data
31739        out of a HTML image element when converting from JS/DOM to Qt.
31740
31741        * bridge/qt/qt_pixmapruntime.cpp:
31742        (JSC::Bindings::copyPixels):
31743        (JSC::Bindings::toPixmap):
31744        (JSC::Bindings::toImage):
31745        (JSC::Bindings::imageSizeForVariant):
31746        (JSC::Bindings::getPixmapWidth):
31747        (JSC::Bindings::getPixmapHeight):
31748        (JSC::Bindings::assignToHTMLImageElement):
31749        (JSC::Bindings::pixmapToImageData):
31750        (JSC::Bindings::pixmapToDataUrl):
31751        (JSC::Bindings::pixmapToString):
31752        (JSC::Bindings::QtPixmapRuntime::toJS):
31753        (JSC::Bindings::QtPixmapRuntime::toQt):
31754        (JSC::Bindings::QtPixmapRuntime::canHandle):
31755        (JSC::Bindings::QtPixmapRuntime::getClassRef):
31756        * bridge/qt/qt_pixmapruntime.h:
31757        (QtPixmapRuntime):
31758        * bridge/qt/qt_runtime.cpp:
31759        (JSC::Bindings::convertValueToQVariant):
31760        (JSC::Bindings::convertQVariantToValue):
31761
317622012-09-03  Andreas Kling  <kling@webkit.org>
31763
31764        Share immutable ElementAttributeData between elements with identical attributes.
31765        <http://webkit.org/b/94990>
31766
31767        Reviewed by Antti Koivisto.
31768
31769        Keep a cache of ElementAttributeData objects for a given set of attributes and reuse
31770        them in elements with identical attribute maps. ElementAttributeData is made ref-counted
31771        to facilitate this. A copy-on-write mechanism is already in place, since mutating call
31772        sites have to go via Element::mutableAttributeData().
31773
31774        The cache is held by Document and cleared in Document::finishedParsing() since the vast
31775        majority of immutable ElementAttributeData will be constructed during parsing.
31776
31777        On the HTML5 spec at <http://whatwg.org/c/>, we get a cache hit rate of nearly 80%,
31778        translating into a 3.5MB reduction in memory use.
31779
31780        * dom/Document.cpp:
31781        (WebCore::Document::finishedParsing):
31782        (ImmutableAttributeDataCacheKey):
31783        (WebCore::ImmutableAttributeDataCacheKey::ImmutableAttributeDataCacheKey):
31784        (WebCore::ImmutableAttributeDataCacheKey::operator!=):
31785        (WebCore::ImmutableAttributeDataCacheKey::hash):
31786        (ImmutableAttributeDataCacheEntry):
31787        (WebCore::Document::cachedImmutableAttributeData):
31788        * dom/Document.h:
31789        * dom/Element.cpp:
31790        (WebCore::Element::parserSetAttributes):
31791        * dom/Element.h:
31792        * dom/ElementAttributeData.cpp:
31793        (WebCore::ElementAttributeData::createImmutable):
31794        (WebCore::ElementAttributeData::ElementAttributeData):
31795        * dom/ElementAttributeData.h:
31796        (WebCore::ElementAttributeData::create):
31797        (ElementAttributeData):
31798        (WebCore::ElementAttributeData::makeMutable):
31799
318002012-09-03  Peter Wang  <peter.wang@torchmobile.com.cn>
31801
31802        Web Inspector: the URL of worker inspector window sometimes is invalid
31803        https://bugs.webkit.org/show_bug.cgi?id=95334
31804
31805        Reviewed by Pavel Feldman.
31806
31807        In "_openInspectorWindow", before "&dedicatedWorkerId=" should have a '?' to make the whole URL valid.
31808
31809        No new tests case for this bug.
31810
31811        * inspector/front-end/WorkerManager.js:
31812        (WebInspector.WorkerManager.prototype._openInspectorWindow):
31813
318142012-09-03  Jinwoo Song  <jinwoo7.song@samsung.com>
31815
31816        [EFL] Fix e_dbus_shutdown() error when exiting the Minibrowser
31817        https://bugs.webkit.org/show_bug.cgi?id=95636
31818
31819        Reviewed by Gyuyoung Kim.
31820
31821        Check if the m_timer is active in stopUpdating()
31822        to know the BatteryProvider is updating or not.
31823        By checking the timer, stopUpdating() will be called 
31824        only BatteryProviderEfl is updating.
31825
31826        * platform/efl/BatteryProviderEfl.cpp:
31827        (WebCore::BatteryProviderEfl::stopUpdating):
31828
318292012-09-03  Sheriff Bot  <webkit.review.bot@gmail.com>
31830
31831        Unreviewed, rolling out r127427.
31832        http://trac.webkit.org/changeset/127427
31833        https://bugs.webkit.org/show_bug.cgi?id=95695
31834
31835        Breaks some inspector/debugger tests on JSC (Requested by
31836        vsevik on #webkit).
31837
31838        * WebCore.gypi:
31839        * WebCore.vcproj/WebCore.vcproj:
31840        * inspector/compile-front-end.py:
31841        * inspector/front-end/CompilerScriptMapping.js:
31842        * inspector/front-end/JavaScriptSource.js:
31843        (WebInspector.JavaScriptSource):
31844        * inspector/front-end/NetworkUISourceCodeProvider.js: Removed.
31845        * inspector/front-end/RawSourceCode.js:
31846        (WebInspector.RawSourceCode):
31847        (WebInspector.RawSourceCode.prototype.addScript):
31848        (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
31849        (WebInspector.RawSourceCode.prototype._createUISourceCode):
31850        (WebInspector.RawSourceCode.prototype.uiLocationToRawLocation):
31851        (WebInspector.RawSourceCode.prototype.uiSourceCode):
31852        (WebInspector.RawSourceCode.prototype._finishedLoading):
31853        * inspector/front-end/ResourceScriptMapping.js:
31854        (WebInspector.ResourceScriptMapping):
31855        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
31856        (WebInspector.ResourceScriptMapping.prototype.addScript):
31857        (WebInspector.ResourceScriptMapping.prototype._shouldBindScriptToContentProvider):
31858        (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
31859        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
31860        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
31861        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
31862        (WebInspector.ResourceScriptMapping.prototype._bindScriptToRawSourceCode):
31863        (WebInspector.ResourceScriptMapping.prototype._reset):
31864        * inspector/front-end/ScriptSnippetModel.js:
31865        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
31866        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
31867        (WebInspector.SnippetJavaScriptSource):
31868        * inspector/front-end/StylesUISourceCodeProvider.js: Added.
31869        (WebInspector.StylesUISourceCodeProvider):
31870        (WebInspector.StylesUISourceCodeProvider.prototype._populate):
31871        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
31872        (WebInspector.StylesUISourceCodeProvider.prototype._reset):
31873        * inspector/front-end/UISourceCode.js:
31874        (WebInspector.UISourceCode):
31875        (WebInspector.UISourceCode.prototype.uiLocationToRawLocation):
31876        * inspector/front-end/WebKit.qrc:
31877        * inspector/front-end/inspector.html:
31878        * inspector/front-end/inspector.js:
31879
318802012-09-03  Vsevolod Vlasov  <vsevik@chromium.org>
31881
31882        Web Inspector: Create JavaScriptSources based on network resources.
31883        https://bugs.webkit.org/show_bug.cgi?id=95352
31884
31885        Reviewed by Pavel Feldman.
31886
31887        Introduced NetworkUISourceCodeProvider that is listening for ResourceTreeModel and creates UISourceCodes for them.
31888        RawSourceCode does not create uiSourceCodes based on resource anymore (this is done by NetworkUISourceCodeProvider instead).
31889        Moved script <-> uiSourceCode binding logic from RawSourceCode to ResourceScriptMapping.
31890        Removed rawSourceCode as it was not needed anymore.
31891
31892        Tests: inspector/debugger/network-uisourcecode-provider.html
31893               inspector/debugger/resource-script-mapping.html
31894
31895        * WebCore.gypi:
31896        * WebCore.vcproj/WebCore.vcproj:
31897        * inspector/compile-front-end.py:
31898        * inspector/front-end/CompilerScriptMapping.js:
31899        * inspector/front-end/JavaScriptSource.js:
31900        (WebInspector.JavaScriptSource):
31901        * inspector/front-end/NetworkUISourceCodeProvider.js: Renamed from Source/WebCore/inspector/front-end/StylesUISourceCodeProvider.js.
31902        (WebInspector.NetworkUISourceCodeProvider):
31903        (WebInspector.NetworkUISourceCodeProvider.prototype._populate):
31904        (WebInspector.NetworkUISourceCodeProvider.prototype._styleResourceAdded):
31905        (WebInspector.NetworkUISourceCodeProvider.prototype._scriptResourceAdded.resourceFinished):
31906        (WebInspector.NetworkUISourceCodeProvider.prototype._scriptResourceAdded):
31907        (WebInspector.NetworkUISourceCodeProvider.prototype._addJavaScriptSource):
31908        (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
31909        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
31910        (WebInspector.NetworkUISourceCodeProvider.prototype._reset):
31911        * inspector/front-end/RawSourceCode.js:
31912        * inspector/front-end/ResourceScriptMapping.js:
31913        (WebInspector.ResourceScriptMapping):
31914        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
31915        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
31916        (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
31917        (WebInspector.ResourceScriptMapping.prototype._addOrReplaceTemporaryUISourceCode.get var):
31918        (WebInspector.ResourceScriptMapping.prototype._addOrReplaceTemporaryUISourceCode):
31919        (WebInspector.ResourceScriptMapping.prototype.get _uiSourceCodeReplaced):
31920        (WebInspector.ResourceScriptMapping.prototype._reset):
31921        * inspector/front-end/ScriptSnippetModel.js:
31922        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
31923        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
31924        (WebInspector.SnippetJavaScriptSource):
31925        * inspector/front-end/UISourceCode.js:
31926        (WebInspector.UISourceCode):
31927        (WebInspector.UISourceCode.prototype.uiLocationToRawLocation):
31928        (WebInspector.UISourceCode.prototype.setSourceMapping):
31929        * inspector/front-end/WebKit.qrc:
31930        * inspector/front-end/inspector.html:
31931        * inspector/front-end/inspector.js:
31932
319332012-09-03  Andrey Adaikin  <aandrey@chromium.org>
31934
31935        Web Inspector: [WebGL] Make the injected __resourceObject property non-enumerable
31936        https://bugs.webkit.org/show_bug.cgi?id=95682
31937
31938        Reviewed by Pavel Feldman.
31939
31940        Make the injected auxiliary property __resourceObject non-enumerable to hide it from for..in iterations.
31941        Ideally this property should be completely hidden from the user's code.
31942        Drive-by: Fix couple of small FIXME's.
31943
31944        * inspector/InjectedScriptWebGLModuleSource.js:
31945        (.):
31946
319472012-09-03  Tommy Widenflycht  <tommyw@google.com>
31948
31949        MediaStream API: Add Ice-related functionality to RTCPeerConnection
31950        https://bugs.webkit.org/show_bug.cgi?id=95565
31951
31952        Reviewed by Adam Barth.
31953
31954        Adds all Ice-related functionality to RTCPeerConnection, including
31955        events, callbacks and methods.
31956
31957        Test: fast/mediastream/RTCPeerConnection-ice.html
31958
31959        * CMakeLists.txt:
31960        * GNUmakefile.list.am:
31961        * Modules/mediastream/RTCIceCandidateEvent.cpp: Added.
31962        (WebCore):
31963        (WebCore::RTCIceCandidateEvent::create):
31964        (WebCore::RTCIceCandidateEvent::RTCIceCandidateEvent):
31965        (WebCore::RTCIceCandidateEvent::~RTCIceCandidateEvent):
31966        (WebCore::RTCIceCandidateEvent::candidate):
31967        (WebCore::RTCIceCandidateEvent::interfaceName):
31968        * Modules/mediastream/RTCIceCandidateEvent.h: Added.
31969        (WebCore):
31970        (RTCIceCandidateEvent):
31971        * Modules/mediastream/RTCIceCandidateEvent.idl: Added.
31972        * Modules/mediastream/RTCPeerConnection.cpp:
31973        (WebCore::RTCPeerConnection::RTCPeerConnection):
31974        (WebCore::RTCPeerConnection::updateIce):
31975        (WebCore):
31976        (WebCore::RTCPeerConnection::addIceCandidate):
31977        (WebCore::RTCPeerConnection::iceState):
31978        (WebCore::RTCPeerConnection::close):
31979        (WebCore::RTCPeerConnection::didGenerateIceCandidate):
31980        (WebCore::RTCPeerConnection::didChangeIceState):
31981        (WebCore::RTCPeerConnection::stop):
31982        (WebCore::RTCPeerConnection::changeIceState):
31983        * Modules/mediastream/RTCPeerConnection.h:
31984        (RTCPeerConnection):
31985        * Modules/mediastream/RTCPeerConnection.idl:
31986        * WebCore.gypi:
31987        * dom/EventNames.h:
31988        (WebCore):
31989        * dom/EventNames.in:
31990        * platform/chromium/support/WebRTCICECandidateDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp.
31991        (WebKit):
31992        (WebKit::WebRTCICECandidateDescriptor::WebRTCICECandidateDescriptor):
31993        (WebKit::WebRTCICECandidateDescriptor::assign):
31994        (WebKit::WebRTCICECandidateDescriptor::reset):
31995        (WebKit::WebRTCICECandidateDescriptor::initialize):
31996        (WebKit::WebRTCICECandidateDescriptor::operator PassRefPtr<WebCore::RTCIceCandidateDescriptor>):
31997        (WebKit::WebRTCICECandidateDescriptor::candidate):
31998        (WebKit::WebRTCICECandidateDescriptor::sdpMid):
31999        (WebKit::WebRTCICECandidateDescriptor::sdpMLineIndex):
32000        * platform/mediastream/RTCIceCandidateDescriptor.h:
32001        (WebCore::RTCIceCandidateDescriptor::candidate):
32002        (WebCore::RTCIceCandidateDescriptor::sdpMid):
32003        (WebCore::RTCIceCandidateDescriptor::sdpMLineIndex):
32004        * platform/mediastream/RTCPeerConnectionHandler.h:
32005        (WebCore):
32006        (RTCPeerConnectionHandler):
32007        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
32008        (WebCore):
32009        (RTCPeerConnectionHandlerClient):
32010        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
32011        (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
32012        (WebCore):
32013        (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
32014        (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
32015        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
32016        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
32017        (WebKit):
32018        (RTCPeerConnectionHandlerChromium):
32019
320202012-09-03  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
32021
32022        Unreviewed build fix after r127421
32023
32024        * rendering/HitTestResult.cpp:
32025        (WebCore::HitTestLocation::HitTestLocation):
32026
320272012-09-03  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
32028
32029        Move AllowShadowContent flag to HitTestRequest 
32030        https://bugs.webkit.org/show_bug.cgi?id=95685
32031
32032        Reviewed by Antonio Gomes.
32033
32034        Moves the flag and updates the interface for HitTestResult::addNodeToRectBasedTestResult so that
32035        it can read the flag from HitTestRequest instead of from HitTestResult.
32036
32037        No change in functionality. No new tests.
32038
32039        * dom/Document.cpp:
32040        (WebCore::Document::nodesFromRect):
32041        * page/EventHandler.cpp:
32042        (WebCore::EventHandler::hitTestResultAtPoint):
32043        * rendering/HitTestRequest.h:
32044        * rendering/HitTestResult.cpp:
32045        (WebCore::HitTestLocation::HitTestLocation):
32046        (WebCore::HitTestResult::HitTestResult):
32047        (WebCore::HitTestResult::operator=):
32048        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
32049        * rendering/HitTestResult.h:
32050        (HitTestLocation):
32051        (HitTestResult):
32052        * rendering/InlineFlowBox.cpp:
32053        (WebCore::InlineFlowBox::nodeAtPoint):
32054        * rendering/InlineTextBox.cpp:
32055        (WebCore::InlineTextBox::nodeAtPoint):
32056        * rendering/RenderBlock.cpp:
32057        (WebCore::RenderBlock::nodeAtPoint):
32058        * rendering/RenderBox.cpp:
32059        (WebCore::RenderBox::nodeAtPoint):
32060        * rendering/RenderImage.cpp:
32061        (WebCore::RenderImage::nodeAtPoint):
32062        * rendering/RenderLayer.cpp:
32063        (WebCore::RenderLayer::hitTestLayer):
32064        (WebCore::RenderLayer::hitTestList):
32065        * rendering/RenderMultiColumnSet.cpp:
32066        (WebCore::RenderMultiColumnSet::nodeAtPoint):
32067        * rendering/RenderRegion.cpp:
32068        (WebCore::RenderRegion::nodeAtPoint):
32069        * rendering/RenderTable.cpp:
32070        (WebCore::RenderTable::nodeAtPoint):
32071        * rendering/svg/RenderSVGRoot.cpp:
32072        (WebCore::RenderSVGRoot::nodeAtPoint):
32073        * rendering/svg/SVGInlineTextBox.cpp:
32074        (WebCore::SVGInlineTextBox::nodeAtPoint):
32075
320762012-09-03  Alexander Pavlov  <apavlov@chromium.org>
32077
32078        Web Inspector: Unhide hidden characters
32079        https://bugs.webkit.org/show_bug.cgi?id=93888
32080
32081        Reviewed by Pavel Feldman.
32082
32083        Certain invisible characters will be rendered as HTML entity references in the DOM tree to make them visible to the user.
32084
32085        * inspector/front-end/ElementsTreeOutline.js:
32086        (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
32087
320882012-09-03  Pavel Feldman  <pfeldman@chromium.org>
32089
32090        Web Inspector: rename JavaScriptContextManager to RuntimeModel for consistency.
32091        https://bugs.webkit.org/show_bug.cgi?id=95677
32092
32093        Reviewed by Yury Semikhatsky.
32094
32095        - renamed the file and the usages
32096        - renamed isolatedContextCreated to executionContextCreated for consistency.
32097
32098        * WebCore.gypi:
32099        * WebCore.vcproj/WebCore.vcproj:
32100        * inspector/Inspector.json:
32101        * inspector/PageRuntimeAgent.cpp:
32102        (WebCore::PageRuntimeAgent::notifyContextCreated):
32103        * inspector/compile-front-end.py:
32104        * inspector/front-end/RuntimeModel.js: Renamed from Source/WebCore/inspector/front-end/JavaScriptContextManager.js.
32105        (WebInspector.RuntimeModel):
32106        (WebInspector.RuntimeModel.prototype._frameAdded):
32107        (WebInspector.RuntimeModel.prototype._frameDetached):
32108        (WebInspector.RuntimeModel.prototype._executionContextCreated):
32109        (WebInspector.RuntimeDispatcher):
32110        (WebInspector.RuntimeDispatcher.prototype.executionContextCreated):
32111        * inspector/front-end/WebKit.qrc:
32112        * inspector/front-end/inspector.html:
32113
321142012-09-03  Andrey Kosyakov  <caseq@chromium.org>
32115
32116        Web Inspector: use linkifyResourceAsNode, not linkifyLocation when linkifying resources in Timeline
32117        https://bugs.webkit.org/show_bug.cgi?id=95540
32118
32119        Reviewed by Pavel Feldman.
32120
32121        Linkify recource details using WebInspector.linkifyResourceAsNode(), so these bypass linkifier. Also
32122        fix closure compiler warning.
32123
32124        * inspector/front-end/TimelinePresentationModel.js:
32125        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
32126        (WebInspector.TimelinePresentationModel.Record.prototype._linkifyLocation):
32127
321282012-09-03  'Pavel Feldman'  <pfeldman@chromium.org>
32129
32130        Web Inspector: fixed front-end compilation warnings.
32131        Not reviewed.
32132
32133        * inspector/front-end/FilteredItemSelectionDialog.js:
32134        * inspector/front-end/HeapSnapshotView.js:
32135
321362012-09-03  Pavel Feldman  <pfeldman@chromium.org>
32137
32138        Web Inspector: paint grid on top of box highlight.
32139        https://bugs.webkit.org/show_bug.cgi?id=95676
32140
32141        Reviewed by Alexander Pavlov.
32142
32143        Otherwise, ruler numbers are not visible when selecting body.
32144
32145        * inspector/InspectorOverlayPage.html:
32146
321472012-08-31  Pavel Feldman  <pfeldman@chromium.org>
32148
32149        Web Inspector: get rid of context execution id fallback.
32150        https://bugs.webkit.org/show_bug.cgi?id=95567
32151
32152        Reviewed by Yury Semikhatsky.
32153
32154        We now assign execution context id upon changes in the UI.
32155
32156        * inspector/front-end/ConsoleView.js:
32157        (WebInspector.ConsoleView.prototype.get statusBarItems):
32158        (WebInspector.ConsoleView.prototype._contextAdded):
32159        (WebInspector.ConsoleView.prototype._addContextList):
32160        (WebInspector.ConsoleView.prototype._contextListRemoved):
32161        (WebInspector.ConsoleView.prototype._updateExecutionContextSelector):
32162        (WebInspector.ConsoleView.prototype._appendExecutionContextOption):
32163        (WebInspector.ConsoleView.prototype._executionContextChanged):
32164        (WebInspector.ConsoleView.prototype._contextListUpdated):
32165        (WebInspector.ConsoleView.prototype._addedExecutionContext):
32166        (WebInspector.ConsoleView.prototype.evalInInspectedWindow.evalCallback):
32167        (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
32168        (WebInspector.ConsoleView.prototype._enterKeyPressed):
32169        * inspector/front-end/JavaScriptContextManager.js:
32170        (WebInspector.JavaScriptContextManager):
32171        (WebInspector.JavaScriptContextManager.prototype.contextLists):
32172        (WebInspector.JavaScriptContextManager.prototype.contextByFrameAndSecurityOrigin):
32173        (WebInspector.JavaScriptContextManager.prototype._frameAdded):
32174        (WebInspector.JavaScriptContextManager.prototype._frameNavigated):
32175        (WebInspector.JavaScriptContextManager.prototype._frameDetached):
32176        (WebInspector.JavaScriptContextManager.prototype.isolatedContextCreated):
32177        (WebInspector.FrameExecutionContextList):
32178        (WebInspector.FrameExecutionContextList.prototype._frameNavigated):
32179        (WebInspector.FrameExecutionContextList.prototype._addExecutionContext):
32180        (WebInspector.FrameExecutionContextList.prototype.executionContexts):
32181        (WebInspector.FrameExecutionContextList.prototype.contextBySecurityOrigin):
32182
321832012-09-03  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
32184
32185        [GTK][EFL] 'dictIter' iterator is not initialized for an inner loop
32186        https://bugs.webkit.org/show_bug.cgi?id=95436
32187
32188        Reviewed by Gustavo Noronha Silva.
32189
32190        The 'checkSpellingOfString' method assumes that the given string is concatenation of words.
32191        To properly handle spellchecking of each word we need to iterate over the all available
32192        dictionaries ('dictIter').
32193
32194        To allow spellchecking for multiple words, 'dictIter' should be initialized at the beginning
32195        of vector while spellchecking of the word. This ensures performing of spelling for word based on
32196        at least one dictionary.
32197
32198        * platform/text/enchant/TextCheckerEnchant.cpp:
32199        (TextCheckerEnchant::checkSpellingOfString): Moved initialization of 'dictIter' to an inner loop.
32200
322012012-09-02  Yoshifumi Inoue  <yosin@chromium.org>
32202
32203        [Forms] Empty visible value of AM/PM field of multiple fields time input UI should display variable number of "-" based on maximum number of labels
32204        https://bugs.webkit.org/show_bug.cgi?id=95660
32205
32206        Reviewed by Kent Tamura.
32207
32208        This patch changes visible empty value of AM/PM field in multiple
32209        fields time input UI to "-", "--", "---", and so on based on maximum
32210        length of AM/PM labels. In current implementation, it is always "--"
32211        regardless locale, although on Arabic, AM/PM are represented in one
32212        character.
32213
32214        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
32215        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
32216
32217        No new tests. Once multiple field time input UI uses "lang" HTML
32218        attribute to take time format, we can write a test for this patch.
32219
32220        * html/shadow/DateTimeSymbolicFieldElement.cpp:
32221        (makeVisibleEmptyValue): Build visible empty value from maximum length
32222        of labels.
32223        (WebCore::DateTimeSymbolicFieldElement::visibleEmptyValue): Changed to
32224        use m_visibleEmptyValue.
32225        * html/shadow/DateTimeSymbolicFieldElement.h:
32226        (WebCore::DateTimeSymbolicFieldElement): Added new member variable
32227        m_visibleEmptyValue to hold visible empty value.
32228
322292012-09-02  Yoshifumi Inoue  <yosin@chromium.org>
32230
32231        [Forms] AM/PM field of multiple fields time input UI should be fixed width
32232        https://bugs.webkit.org/show_bug.cgi?id=95542
32233
32234        Reviewed by Kent Tamura.
32235
32236        This patch changes width of AM/PM field of multiple field time input
32237        UI fixed as maximum width of labels or "--".
32238
32239        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
32240        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
32241
32242        No new tests. Once multiple field time input UI uses "lang" HTML
32243        attribute to take time format, we can write a test for this patch.
32244
32245        * css/html.css:
32246        (input::-webkit-datetime-edit-ampm-field): Added "display" property to "inline-block" for setting width.
32247        Added "text-align" property to "center".
32248        * html/shadow/DateTimeSymbolicFieldElement.cpp:
32249        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement): Changed to call setHasCustomCallback().
32250        (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Added for setting field with from maximum width of labels.
32251        * html/shadow/DateTimeSymbolicFieldElement.h:
32252        (WebCore::DateTimeSymbolicFieldElement::visibleEmptyValue): Added for using visible empty value in customStyleForRenderer() and visibleValue().
32253        (WebCore::DateTimeSymbolicFieldElement::visibleValue): Changed to call visibleEmptyValue() instead of using literal "--".
32254        (DateTimeSymbolicFieldElement): Added a declaration of customStyleForRenderer().
32255
322562012-09-02  Benjamin Poulain  <bpoulain@apple.com>
32257
32258        Improve the way we use convertedSpaceString() in convertHTMLTextToInterchangeFormat()
32259        https://bugs.webkit.org/show_bug.cgi?id=95301
32260
32261        Reviewed by Darin Adler.
32262
32263        The static string convertedSpaceString() had a couple of annoying side effects:
32264        -The string was 16bits due to noBreakSpace, which forced any input to be converted to 16bits.
32265        -The string was kept in the heap for no particular reason.
32266
32267        This patch redefines convertedSpaceString as a constant literal so that we can use it efficiently.
32268
32269        The patch also make the binary a tiny bit smaller (700 bytes).
32270
32271        * editing/HTMLInterchange.cpp:
32272        (WebCore::convertHTMLTextToInterchangeFormat):
32273
322742012-09-02  Mike West  <mkwst@chromium.org>
32275
32276        Build is broken when SVG is disabled.
32277        https://bugs.webkit.org/show_bug.cgi?id=95653
32278
32279        Reviewed by Dirk Schulze.
32280
32281        Adding CSSPropertyWebkitClipPath to the massive switch statement in StyleResolver.
32282
32283        * css/StyleResolver.cpp:
32284        (WebCore::StyleResolver::collectMatchingRulesForList):
32285
322862012-08-31  Antti Koivisto  <antti@apple.com>
32287
32288        Repaints should not be deferred after initial page load is complete
32289        https://bugs.webkit.org/show_bug.cgi?id=95480
32290
32291        Reviewed by Simon Fraser
32292
32293        Any dynamically triggered resource loading currently sends us back to deferred paint mode, making animation choppy. 
32294        This is not the intention of this code.
32295
32296        This patch adds an additional condition that prevents page from re-entering deferred repaint mode after the initial
32297        load has completed. It also cleans up the code slightly.
32298
32299        * loader/FrameLoader.cpp:
32300        (WebCore::FrameLoader::checkCompleted):
32301        
32302            Add additional call to checkStopDelayingDeferredRepaints() after a frame load completes as the
32303            new condition in shouldUseLoadTimeDeferredRepaintDelay() looks for this change too.
32304
32305        * page/FrameView.cpp:
32306        (WebCore):
32307        
32308            Reduced the normal delay from 25ms to 16ms to not interfere with full framerate animation.
32309
32310        (WebCore::FrameView::syncCompositingStateForThisFrame):
32311        (WebCore::FrameView::checkFlushDeferredRepaintsAfterLoadComplete):
32312        
32313            Ensure the repaint delay is reset after load completes even if we don't currently need a repaint.
32314
32315        (WebCore::FrameView::flushDeferredRepaints):
32316        
32317            We had to identical functions, flushDeferredRepaints() and stopDelayingDeferredRepaints(). Remove
32318            the latter.
32319
32320        (WebCore::FrameView::shouldUseLoadTimeDeferredRepaintDelay):
32321        
32322            Factor the test for using load time repaint timings to a functions. The test for
32323            initial page load having completed is new.
32324
32325        (WebCore::FrameView::updateDeferredRepaintDelay):
32326        (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
32327        (WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelay):
32328        * page/FrameView.h:
32329        (FrameView):
32330
323312012-09-02  Filip Pizlo  <fpizlo@apple.com>
32332
32333        Don't create access error strings if there is no access error
32334        https://bugs.webkit.org/show_bug.cgi?id=95652
32335
32336        Reviewed by Adam Barth.
32337        
32338        This undoes the 50% performance regression in pdfjs caused by
32339        http://trac.webkit.org/changeset/126165
32340
32341        No new tests because behavior is unchanged.
32342
32343        * bindings/js/JSDOMBinding.cpp:
32344        (WebCore::shouldAllowAccessToFrame):
32345        (WebCore::shouldAllowAccessToDOMWindow):
32346
323472012-08-31  Dirk Schulze  <krit@webkit.org>
32348
32349        Use -webkit-clip-path shapes to clip SVG elements
32350        https://bugs.webkit.org/show_bug.cgi?id=95620
32351
32352        Reviewed by Rob Buis.
32353
32354        This patch adds a path segment for a BasicShape to a given Path object. This
32355        path and it's wind rule are used to clip the context of the SVG element.
32356
32357        Tests: svg/clip-path/clip-path-shape-circle-1-expected.svg
32358               svg/clip-path/clip-path-shape-circle-1.svg
32359               svg/clip-path/clip-path-shape-circle-2-expected.svg
32360               svg/clip-path/clip-path-shape-circle-2.svg
32361               svg/clip-path/clip-path-shape-ellipse-1-expected.svg
32362               svg/clip-path/clip-path-shape-ellipse-1.svg
32363               svg/clip-path/clip-path-shape-ellipse-2-expected.svg
32364               svg/clip-path/clip-path-shape-ellipse-2.svg
32365               svg/clip-path/clip-path-shape-polygon-1-expected.svg
32366               svg/clip-path/clip-path-shape-polygon-1.svg
32367               svg/clip-path/clip-path-shape-polygon-2-expected.svg
32368               svg/clip-path/clip-path-shape-polygon-2.svg
32369               svg/clip-path/clip-path-shape-polygon-3-expected.svg
32370               svg/clip-path/clip-path-shape-polygon-3.svg
32371               svg/clip-path/clip-path-shape-rounded-rect-1-expected.svg
32372               svg/clip-path/clip-path-shape-rounded-rect-1.svg
32373               svg/clip-path/clip-path-shape-rounded-rect-2-expected.svg
32374               svg/clip-path/clip-path-shape-rounded-rect-2.svg
32375
32376        * rendering/style/BasicShapes.cpp: Added helper functions that apply path segments to a given path.
32377        (WebCore::BasicShapeRectangle::path):
32378        (WebCore::BasicShapeCircle::path):
32379        (WebCore::BasicShapeEllipse::path):
32380        (WebCore::BasicShapePolygon::path):
32381        * rendering/style/BasicShapes.h: Make BasicShape virtualized again, since new virtual functions were added.
32382        (WebCore::BasicShape::~BasicShape):
32383        (BasicShape):
32384        (WebCore::BasicShape::windRule): Will return the wind rule of the shape - nonzero by default.
32385        (WebCore::BasicShape::BasicShape):
32386        (BasicShapeRectangle):
32387        (WebCore::BasicShapeRectangle::type): Removed member variable and return type per inheriting class directly.
32388        (WebCore::BasicShapeRectangle::BasicShapeRectangle):
32389        (BasicShapeCircle):
32390        (WebCore::BasicShapeCircle::type): Ditto.
32391        (WebCore::BasicShapeCircle::BasicShapeCircle):
32392        (BasicShapeEllipse):
32393        (WebCore::BasicShapeEllipse::type): Ditto.
32394        (WebCore::BasicShapeEllipse::BasicShapeEllipse):
32395        (BasicShapePolygon):
32396        (WebCore::BasicShapePolygon::windRule):
32397        (WebCore::BasicShapePolygon::type): Ditto.
32398        (WebCore::BasicShapePolygon::BasicShapePolygon):
32399        * rendering/svg/SVGRenderingContext.cpp: If -webkit-clip-path was defined, clip the context to the shape.
32400        Right now -webkit-clip-path overrides clip-path, so that people don't use both at the same time. Current
32401        clip-path property will be replaced, once -webkit-clip-path gets unprefixed.
32402        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
32403
324042012-09-01  Ned Holbrook  <nholbrook@apple.com>
32405
32406        Regression(r126763): Heap-use-after-free in WebCore::nextBreakablePosition
32407        https://bugs.webkit.org/show_bug.cgi?id=95229
32408
32409        Reviewed by Dan Bernstein.
32410
32411        TextLayout and LazyLineBreakIterator cache a RenderText's string during line breaking but RenderCounter
32412        and RenderQuote can replace that string during preferred width calculation. This patch adds a non-virtual member
32413        function to RenderText named updateTextIfNeeded() that triggers immediate string replacement by calling
32414        the new virtual updateText() if necessary, which in turn calls computePreferredLogicalWidths(). In this way
32415        RenderBlock::LineBreaker::nextLineBreak() can ensure a RenderText's string is current before caching it.
32416
32417        Test: fast/css/content/content-quotes-crash.html
32418
32419        * rendering/RenderBlockLineLayout.cpp:
32420        (WebCore::dirtyLineBoxesForRenderer): Drive-by: replace existing code with the equivalent updateTextIfNeeded().
32421        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Use updateTextIfNeeded() prior to caching RenderText string.
32422        * rendering/RenderCounter.cpp:
32423        (WebCore::RenderCounter::updateText): Call computePreferredLogicalWidths().
32424        (WebCore):
32425        * rendering/RenderCounter.h:
32426        (RenderCounter):
32427        * rendering/RenderQuote.cpp:
32428        (WebCore::RenderQuote::updateText): Call computePreferredLogicalWidths().
32429        (WebCore):
32430        * rendering/RenderQuote.h:
32431        (RenderQuote):
32432        * rendering/RenderText.h:
32433        (WebCore::RenderText::updateTextIfNeeded): Only call virtual updateText() if necessary.
32434        (RenderText):
32435        (WebCore::RenderText::updateText): Add no-op default implementation for new virtual member function.
32436
324372012-09-01  Li Yin  <li.yin@intel.com>
32438
32439        fast/events/message-port-clone.html hits ASSERT in Debug (usually in later tests)
32440        https://bugs.webkit.org/show_bug.cgi?id=85811
32441
32442        Reviewed by Kenneth Rohde Christiansen.
32443
32444        When MessagePort invoked close function, the close status is needed to set,
32445        regardless of whether the port is cloned or not.
32446
32447        Tests: fast/events/message-port-clone.html
32448               fast/events/message-port-close.html
32449
32450        * dom/MessagePort.cpp:
32451        (WebCore::MessagePort::close): Must set m_closed to be true.
32452
324532012-09-01  Andreas Kling  <kling@webkit.org>
32454
32455        Share inline style between cloned Nodes (copy on write.)
32456        <http://webkit.org/b/95451>
32457
32458        Reviewed by Antti Koivisto.
32459
32460        When cloning a Node, use an immutable StylePropertySet for the new Node's inline style.
32461        If the old Node already had an immutable inline style, we now reuse that, avoiding a copy.
32462        Copying is deferred until mutation (either via CSSOM or setting of the style attribute.)
32463
32464        * dom/ElementAttributeData.cpp:
32465        (WebCore::ElementAttributeData::cloneDataFrom):
32466        * css/StylePropertySet.h:
32467        * css/StylePropertySet.cpp:
32468        (WebCore::StylePropertySet::immutableCopyIfNeeded):
32469
32470            Added. Simply returns 'this' if the object is already immutable, otherwise creates a new one.
32471
324722012-09-01  Dirk Schulze  <krit@webkit.org>
32473
32474        [Qt] Fix the --minimal build after r127327
32475        https://bugs.webkit.org/show_bug.cgi?id=95639
32476
32477        Unreviewed attempt to fix Qt minimal build.
32478
32479        * css/StyleBuilder.cpp:
32480
324812012-09-01  Joanmarie Diggs  <jdiggs@igalia.com>
32482
32483        [Gtk] No accessible caret-moved events found in certain content
32484        https://bugs.webkit.org/show_bug.cgi?id=72811
32485
32486        Part of the bug was due to expected accessible objects of DivRole
32487        and ParagraphRole being ignored, in favor of including child blocks.
32488
32489        Reviewed by Chris Fleizach.
32490
32491        Test: platform/gtk/accessibility/spans-paragraphs-and-divs.html
32492
32493        * accessibility/AccessibilityObject.cpp:
32494        (WebCore::AccessibilityObject::firstAnonymousBlockChild):
32495        (WebCore):
32496        * accessibility/AccessibilityObject.h:
32497        (AccessibilityObject):
32498        New method to return the first child which is an anonymous block.
32499        * accessibility/gtk/AccessibilityObjectAtk.cpp:
32500        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
32501        Include paragraphs and divs which contain a non-nested anonymous block.
32502
325032012-09-01  Joanmarie Diggs  <jdiggs@igalia.com>
32504
32505        [Gtk] No accessible caret-moved events found in certain content
32506        https://bugs.webkit.org/show_bug.cgi?id=72811
32507
32508        Part of the bug was due to extraneous accessible objects resulting
32509        from unignored inline and block spans.
32510
32511        Reviewed by Chris Fleizach.
32512
32513        Test: platform/gtk/accessibility/spans.html
32514
32515        * accessibility/AccessibilityRenderObject.cpp:
32516        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Ignore objects that have spanTag tag name.
32517        * accessibility/gtk/AccessibilityObjectAtk.cpp:
32518        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): Ignore most anonymous blocks.
32519        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
32520        (roleIsTextType): Add ListItem to the roles which should implement AtkText.
32521
325222012-09-01  Joanmarie Diggs  <jdiggs@igalia.com>
32523
32524        [Gtk] Incorrect/unexpected characters in the text of certain accessibles
32525        https://bugs.webkit.org/show_bug.cgi?id=95180
32526
32527        Reviewed by Chris Fleizach.
32528
32529        The bug was caused by failing to properly handle anonymous block text
32530        which had object replacement characters (multibyte) in it. Calculating
32531        the string length based on the UTF-8 string meant that we were returning
32532        more characters than were there and in danger of splitting a multibyte
32533        character.
32534
32535        Tests: platform/gtk/accessibility/entry-and-password.html
32536               platform/gtk/accessibility/replaced-objects-in-anonymous-blocks.html
32537
32538        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
32539        (webkitAccessibleTextGetText): Convert the text returned by textForObject()
32540        to Unicode before calculating its length.
32541
325422012-09-01  Adam Barth  <abarth@webkit.org>
32543
32544        Remove all-but-one use of WTF::String::operator+= from WebCore
32545        https://bugs.webkit.org/show_bug.cgi?id=95508
32546
32547        Reviewed by Benjamin Poulain.
32548
32549        This patch removes all the uses of WTF::String::operator+= from
32550        WebCore, except those in WorkerScriptLoader (which need a more delicate
32551        patch). There were actually a handful of legitimate use cases for += in
32552        this group. I've replaced them with calls to String::append rather than
32553        += so that we can remove += and encourage most contributors to use
32554        more efficient string idioms.
32555
32556        (There are likely some more uses in WebCore hiding in port-specific
32557        code---this patch covers only those call sites found when compiling the
32558        chromium-mac port.)
32559
32560        * inspector/InspectorStyleTextEditor.cpp:
32561        (WebCore::InspectorStyleTextEditor::insertProperty):
32562            - This complicated function looks really inefficient, but I didn't
32563              have the heart to rewrite it.
32564        * inspector/NetworkResourcesData.cpp:
32565        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
32566        * loader/cache/CachedCSSStyleSheet.cpp:
32567        (WebCore::CachedCSSStyleSheet::sheetText):
32568        (WebCore::CachedCSSStyleSheet::data):
32569        * loader/cache/CachedFont.cpp:
32570        (WebCore::CachedFont::ensureSVGFontData):
32571        * loader/cache/CachedScript.cpp:
32572        (WebCore::CachedScript::script):
32573        * loader/cache/CachedXSLStyleSheet.cpp:
32574        (WebCore::CachedXSLStyleSheet::data):
32575            - This decoder/flush pattern can probably be improved by combining
32576              the decode and flush operations, but I didn't do that in this
32577              patch.
32578        * page/FrameTree.cpp:
32579        (WebCore::FrameTree::uniqueChildName):
32580            - I found this code very amusing. It's worried enough about
32581              efficiency to give a big speech about why snprintf is safe, but
32582              then it implicitly performs a large number of mallocs and memcpy
32583              operations.
32584        * page/Page.cpp:
32585        (WebCore::Page::userStyleSheet):
32586        * platform/chromium/support/WebHTTPLoadInfo.cpp:
32587        (WebKit::addHeader):
32588        * platform/chromium/support/WebURLResponse.cpp:
32589        (WebKit::WebURLResponse::addHTTPHeaderField):
32590            - This header-appending idiom looks like a reasonable use case for
32591              String::append.
32592        * xml/XMLHttpRequest.cpp:
32593        (WebCore::XMLHttpRequest::send):
32594        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
32595        * xml/XPathFunctions.cpp:
32596        (WebCore::XPath::FunTranslate::evaluate):
32597            - Fixes 6 year old FIXME.
32598        * xml/parser/XMLDocumentParser.cpp:
32599        (WebCore::XMLDocumentParser::append):
32600        * xml/parser/XMLDocumentParser.h:
32601        (XMLDocumentParser):
32602        * xml/parser/XMLDocumentParserLibxml2.cpp:
32603        (WebCore::XMLDocumentParser::doEnd):
32604        * xml/parser/XMLDocumentParserQt.cpp:
32605        (WebCore::XMLDocumentParser::doEnd):
32606            - Changed m_originalSourceForTransform to a SegmentedString so that
32607              we don't need to malloc and copy the entire document every time
32608              we get more data from the network.
32609
326102012-09-01  Tommy Widenflycht  <tommyw@google.com>
32611
32612        MediaStream API: Add MediaStream management to RTCPeerConnection
32613        https://bugs.webkit.org/show_bug.cgi?id=95543
32614
32615        Reviewed by Adam Barth.
32616
32617        This includes addStream/removeStream to RTCPeerConnection,
32618        as well as didAddRemoteStream/didRemoveRemoteStream to RTCPeerConnectionHandlerClient.
32619
32620        Test: fast/mediastream/RTCPeerConnection-AddRemoveStream.html
32621
32622        * Modules/mediastream/RTCPeerConnection.cpp:
32623        (WebCore::RTCPeerConnection::parseConfiguration):
32624        (WebCore::RTCPeerConnection::RTCPeerConnection):
32625        (WebCore::RTCPeerConnection::addStream):
32626        (WebCore):
32627        (WebCore::RTCPeerConnection::removeStream):
32628        (WebCore::RTCPeerConnection::localStreams):
32629        (WebCore::RTCPeerConnection::remoteStreams):
32630        (WebCore::RTCPeerConnection::didAddRemoteStream):
32631        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
32632        * Modules/mediastream/RTCPeerConnection.h:
32633        (RTCPeerConnection):
32634        * Modules/mediastream/RTCPeerConnection.idl:
32635        * bindings/js/Dictionary.cpp:
32636        (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
32637        (WebCore::Dictionary::getOwnPropertyNames):
32638        * bindings/v8/Dictionary.cpp:
32639        (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
32640        (WebCore::Dictionary::getOwnPropertyNames):
32641        * bindings/v8/Dictionary.h:
32642        (Dictionary):
32643        * platform/mediastream/RTCPeerConnectionHandler.cpp:
32644        (RTCPeerConnectionHandlerDummy):
32645        (WebCore::RTCPeerConnectionHandlerDummy::addStream):
32646        (WebCore):
32647        (WebCore::RTCPeerConnectionHandlerDummy::removeStream):
32648        * platform/mediastream/RTCPeerConnectionHandler.h:
32649        (RTCPeerConnectionHandler):
32650        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
32651        (WebCore):
32652        (RTCPeerConnectionHandlerClient):
32653        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
32654        (WebCore::RTCPeerConnectionHandlerChromium::addStream):
32655        (WebCore):
32656        (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
32657        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteStream):
32658        (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
32659        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
32660        (WebKit):
32661        (RTCPeerConnectionHandlerChromium):
32662
326632012-09-01  Kent Tamura  <tkent@chromium.org>
32664
32665        Touch a file so that Chromium-win bots correctly re-build for OPENTYPE_VERTICAL
32666        https://bugs.webkit.org/show_bug.cgi?id=51450
32667
32668        * platform/graphics/opentype/OpenTypeVerticalData.cpp:
32669
326702012-08-31  Kent Tamura  <tkent@chromium.org>
32671
32672        Touch some files so that Chromium-win bots correctly re-build
32673        files for OPENTYPE_VERTICAL.
32674        https://bugs.webkit.org/show_bug.cgi?id=51450
32675
32676        * platform/graphics/FontCache.h:
32677        * platform/graphics/SimpleFontData.h:
32678        * platform/graphics/opentype/OpenTypeTypes.h:
32679
326802012-08-31  Chris Hutten-Czapski  <chutten@rim.com>
32681
32682        -webkit-flex: 0 in inspector.css is confusing
32683        https://bugs.webkit.org/show_bug.cgi?id=95568
32684
32685        Reviewed by Tony Chang.
32686
32687        The initial value of -webkit-flex results in the same layout as
32688        -webkit-flex: 0; but does not depend on the new initial value of auto
32689        for min-width.
32690
32691        This increases the support for the new Web Inspector style to renderers
32692        built before rev 122264 but after 117385.
32693
32694        No new tests (has no effect except to out-of-date renderers)
32695
32696        * inspector/front-end/inspector.css:
32697        (.status-bar-item):
32698
326992012-08-31  Filip Pizlo  <fpizlo@apple.com>
32700
32701        JSArray::putDirectIndex should by default behave like JSObject::putDirect
32702        https://bugs.webkit.org/show_bug.cgi?id=95630
32703
32704        Reviewed by Gavin Barraclough.
32705
32706        No new tests because no change in behavior.
32707
32708        * bindings/js/SerializedScriptValue.cpp:
32709        (WebCore::CloneDeserializer::putProperty):
32710
327112012-08-31  Nate Chapin  <japhet@chromium.org>
32712
32713        fast/loader/document-destruction-within-unload.html causes assertion failures on mac and qt.
32714        https://bugs.webkit.org/show_bug.cgi?id=66783
32715
32716        Reviewed by Darin Adler.
32717
32718        This was a not-quite-regression from trac.webkit.org/changeset/93521, in that we hit asserts
32719        in a case where we previously were use-after-freeing. Tweak how we handle cases where a Document
32720        is cleared from within an unload handler.
32721
32722        No new tests, fixing fast/loader/document-destruction-within-unload.html on mac and qt.
32723
32724        * loader/FrameLoader.cpp:
32725        (WebCore::FrameLoader::setDocumentLoader): Instead of trying to reattach a partially removed
32726            DocumentLoader if it is detached before being fully added, leave the old one in place, completed.
32727        (WebCore::FrameLoader::transitionToCommitted):
32728
327292012-08-31  Tony Chang  <tony@chromium.org>
32730
32731        Make computeBlockDirectionMargins const
32732        https://bugs.webkit.org/show_bug.cgi?id=95595
32733
32734        Reviewed by Ojan Vafai.
32735
32736        This is a step in making computeLogicalHeight const.
32737        Refactor RenderBox::computeBlockDirectionMargins and make it const.
32738        Add a helper method computeAndSetBlockDirectionMargins for the callers outside of
32739        computeLogicalHeight that are calling this.
32740
32741        No new tests, this is already covered by tests in fast/writing-mode and fast/multicol.
32742
32743        * rendering/RenderBlock.cpp:
32744        (WebCore::RenderBlock::marginBeforeEstimateForChild): Switch to computeAndSetBlockDirectionMargins
32745        (WebCore::RenderBlock::layoutBlockChild): Switch to computeAndSetBlockDirectionMargins
32746        (WebCore::RenderBlock::insertFloatingObject): Switch to computeAndSetBlockDirectionMargins
32747        * rendering/RenderBox.cpp:
32748        (WebCore::RenderBox::computeLogicalHeight): Use const version and fill in a MarginValues struct (to be merged in the next patch).
32749        (WebCore::RenderBox::computeBlockDirectionMargins): Pass in out params.
32750        (WebCore):
32751        (WebCore::RenderBox::computeAndSetBlockDirectionMargins): Does the same as the old computeBlockDirectionMargins.
32752        * rendering/RenderBox.h:
32753        (RenderBox):
32754        * rendering/RenderDeprecatedFlexibleBox.cpp:
32755        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Switch to computeAndSetBlockDirectionMargins
32756        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Switch to computeAndSetBlockDirectionMargins
32757        * rendering/RenderTableRow.cpp:
32758        (WebCore::RenderTableRow::layout): Switch to computeAndSetBlockDirectionMargins
32759
327602012-08-30  Dirk Schulze  <krit@webkit.org>
32761
32762        Introduce new CSS property for clip-path
32763        https://bugs.webkit.org/show_bug.cgi?id=95474
32764
32765        Reviewed by Tim Horton.
32766
32767        This path introduces the new, prefixed CSS property 'clip-path' from the
32768        CSS Masking specification. In a first step the property just accepts
32769        'none' and the the basic shapes from CSS Exclusion. Later it will also be
32770        possible to reference SVG 'clipPath' elements - like Firefox already does.
32771        To enable the parsing of the shapes, the exclusion compiler flags
32772        around the shape parser were removed.
32773
32774        http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html
32775
32776        Test: fast/masking/parsing-clip-path-shape.html
32777
32778        * css/CSSComputedStyleDeclaration.cpp:
32779        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return CSSValue for CSSPropertyWebkitClipPath.
32780        * css/CSSParser.cpp: 
32781        (WebCore::CSSParser::parseValue): Add CSSPropertyWebkitClipPath.
32782        (WebCore::CSSParser::parseBasicShape): Modify parser function to accept CSSPropertyWebkitClipPath as well.
32783        * css/CSSParser.h:
32784        * css/CSSProperty.cpp:
32785        (WebCore::CSSProperty::isInheritedProperty):
32786        * css/CSSPropertyNames.in: Added property name -webkit-clip-path.
32787        * css/StyleBuilder.cpp:
32788        (ApplyPropertyClipPath): New property applier just for -webkit-clip-path.
32789        (WebCore::ApplyPropertyClipPath::setValue):
32790        (WebCore::ApplyPropertyClipPath::applyValue):
32791        (WebCore::ApplyPropertyClipPath::createHandler):
32792        (WebCore::StyleBuilder::StyleBuilder):
32793        * rendering/style/RenderStyle.cpp: Repaint if there is a difference between two BasicShapes.
32794        (WebCore::RenderStyle::diff):
32795        * rendering/style/RenderStyle.h:
32796        * rendering/style/StyleRareNonInheritedData.cpp: 
32797        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
32798        (WebCore::StyleRareNonInheritedData::operator==):
32799        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
32800        * rendering/style/StyleRareNonInheritedData.h: Add new member variable for clip shape.
32801        (StyleRareNonInheritedData):
32802
328032012-08-31  Joshua Netterfield  <jnetterfield@rim.com>
32804
32805        [BlackBerry] Eliminate WebGL IT policy
32806        https://bugs.webkit.org/show_bug.cgi?id=95604
32807        Internal RIM PR #198764
32808
32809        Reviewed by Rob Buis.
32810
32811        This is no longer a requirement for the BlackBerry port.
32812
32813        No new tests, because this introduces no new functionality.
32814
32815        * html/canvas/WebGLRenderingContext.cpp:
32816        (WebCore):
32817        (WebCore::WebGLRenderingContext::create):
32818
328192012-08-31  Jon Lee  <jonlee@apple.com>
32820
32821        ondisplay event handlers are not called
32822        https://bugs.webkit.org/show_bug.cgi?id=95263
32823        <rdar://problem/12193359>
32824
32825        Reviewed by Alexey Proskuryakov.
32826
32827        To support the legacy API, we conflate ondisplay and onshow.
32828
32829        * Modules/notifications/Notification.h:
32830        (WebCore::Notification::ondisplay): Use display event as an alias for the show event.
32831        (WebCore::Notification::setOndisplay):
32832
328332012-08-31  Tony Chang  <tony@chromium.org>
32834
32835        Remove ENABLE_CSS3_FLEXBOX compile time flag
32836        https://bugs.webkit.org/show_bug.cgi?id=95382
32837
32838        Reviewed by Ojan Vafai.
32839
32840        Everyone is already enabling this by default and the spec has stablized.
32841
32842        No new tests, shouldn't change anything.
32843
32844        * Configurations/FeatureDefines.xcconfig:
32845        * GNUmakefile.am:
32846        * GNUmakefile.features.am:
32847        * css/CSSComputedStyleDeclaration.cpp:
32848        (WebCore):
32849        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
32850        * css/CSSParser.cpp:
32851        (WebCore::isValidKeywordPropertyAndValue): Expand check range to include flex and inline-flex.
32852        (WebCore::isKeywordPropertyID):
32853        (WebCore::CSSParser::parseValue):
32854        * css/CSSPrimitiveValueMappings.h:
32855        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
32856        * css/CSSProperty.cpp:
32857        (WebCore::CSSProperty::isInheritedProperty):
32858        * css/CSSPropertyNames.in:
32859        * css/CSSValueKeywords.in:
32860        * css/StyleBuilder.cpp:
32861        (WebCore::StyleBuilder::StyleBuilder):
32862        * css/StylePropertySet.cpp:
32863        (WebCore::StylePropertySet::getPropertyValue):
32864        (WebCore::StylePropertySet::asText):
32865        * css/StylePropertyShorthand.cpp:
32866        (WebCore::webkitFlexShorthand):
32867        (WebCore::shorthandForProperty):
32868        * css/StylePropertyShorthand.h:
32869        (WebCore):
32870        * css/StyleResolver.cpp:
32871        (WebCore::StyleResolver::collectMatchingRulesForList):
32872        * page/animation/CSSPropertyAnimation.cpp:
32873        (WebCore::CSSPropertyAnimation::ensurePropertyMap):
32874        * rendering/RenderObject.cpp:
32875        (WebCore::RenderObject::createObject):
32876        * rendering/style/RenderStyle.h:
32877        * rendering/style/RenderStyleConstants.h:
32878
328792012-08-31  Christopher Cameron  <ccameron@chromium.org>
32880
32881        [chromium] Add main versus impl thread asserts
32882        https://bugs.webkit.org/show_bug.cgi?id=95596
32883
32884        Reviewed by James Robinson.
32885
32886        Add asserts to prioritized texture manager that specify that a
32887        function be called on the main or impl thread.
32888
32889        Add debug signs that the main thread is blocked to the threaded
32890        proxy.
32891
32892        Add a mechanism to simultaneously set the thread to the impl thread
32893        and indicate that the main thread is blocked.
32894
32895        Update tests that hit asserts in the prioritized texture manager to
32896        set their impl thread and main thread blocked state correctly.
32897
32898        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
32899        (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
32900        (WebCore::CCPrioritizedTextureManager::clearPriorities):
32901        (WebCore::CCPrioritizedTextureManager::requestLate):
32902        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
32903        (WebCore::CCPrioritizedTextureManager::reduceMemory):
32904        (WebCore::CCPrioritizedTextureManager::registerTexture):
32905        (WebCore::CCPrioritizedTextureManager::unregisterTexture):
32906        (WebCore::CCPrioritizedTextureManager::returnBackingTexture):
32907        (WebCore::CCPrioritizedTextureManager::createBacking):
32908        (WebCore::CCPrioritizedTextureManager::assertInvariants):
32909        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
32910        (WebCore):
32911        (DebugScopedSetImplThreadAndMainThreadBlocked):
32912        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
32913        (WebCore::CCThreadProxy::compositeAndReadback):
32914        (WebCore::CCThreadProxy::finishAllRendering):
32915        (WebCore::CCThreadProxy::setVisible):
32916        (WebCore::CCThreadProxy::initializeRenderer):
32917        (WebCore::CCThreadProxy::recreateContext):
32918        (WebCore::CCThreadProxy::implSideRenderingStats):
32919        (WebCore::CCThreadProxy::start):
32920        (WebCore::CCThreadProxy::forceSerializeOnSwapBuffers):
32921        (WebCore::CCThreadProxy::acquireLayerTextures):
32922
329232012-08-30  James Robinson  <jamesr@chromium.org>
32924
32925        [chromium] Put compositor client interfaces in separate headers, normalize naming
32926        https://bugs.webkit.org/show_bug.cgi?id=95522
32927
32928        Reviewed by Adam Barth.
32929
32930        Client interfaces should be in their own headers so code implementing these interfaces do not have to
32931        transitively #include all of the compositor internals.
32932
32933        We call things 'clients' not 'delegates' in the compositor.
32934
32935        * WebCore.gypi:
32936        * platform/graphics/chromium/ContentLayerChromium.cpp:
32937        (WebCore::ContentLayerPainter::ContentLayerPainter):
32938        (WebCore::ContentLayerPainter::create):
32939        (WebCore::ContentLayerPainter::paint):
32940        (WebCore::ContentLayerChromium::create):
32941        (WebCore::ContentLayerChromium::ContentLayerChromium):
32942        (WebCore::ContentLayerChromium::drawsContent):
32943        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
32944        * platform/graphics/chromium/ContentLayerChromium.h:
32945        (WebCore):
32946        (ContentLayerPainter):
32947        (ContentLayerChromium):
32948        (WebCore::ContentLayerChromium::clearClient):
32949        * platform/graphics/chromium/TextureLayerChromium.cpp:
32950        * platform/graphics/chromium/TextureLayerChromium.h:
32951        (WebCore):
32952        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
32953        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
32954        (WebCore):
32955
329562012-08-31  Benjamin Poulain  <bpoulain@apple.com>
32957
32958        Fix the Debug builds after r127277
32959
32960        Unreviewed.
32961
32962        One assertion was not updated in r127277. The encapsulation of CSSParserString's length
32963        has changed and now use an accessor.
32964
32965        * css/CSSParser.cpp:
32966        (WebCore::CSSParser::storeVariableDeclaration):
32967
329682012-08-31  Simon Fraser  <simon.fraser@apple.com>
32969
32970        (Regression: r126774): Fix crash when scrolling after removing inline sticky element
32971        https://bugs.webkit.org/show_bug.cgi?id=95584
32972
32973        Reviewed by Dave Hyatt.
32974
32975        Move fixed/sticky registration and unregistration with the FrameView from
32976        RenderBox and RenderInline into RenderBoxModelObject, which also
32977        fixes the issue that inlines didn't unregister themselves on destruction.
32978
32979        Test: fast/css/sticky/remove-inline-sticky-crash.html
32980
32981        * rendering/RenderBox.cpp:
32982        (WebCore::RenderBox::willBeDestroyed): Code moved to RenderBoxModelObject. No need
32983        to null-check style.
32984        (WebCore::RenderBox::styleWillChange): Code moved to RenderBoxModelObject.
32985        * rendering/RenderBoxModelObject.cpp:
32986        (WebCore::RenderBoxModelObject::willBeDestroyed): Remove fixed objects. Check
32987        isPositioned() to avoid this work for most non-positioned renderers.
32988        (WebCore::RenderBoxModelObject::styleWillChange): Register and unregister fixed
32989        and sticky objects with the FrameView.
32990        * rendering/RenderInline.cpp: styleWillChange() is no longer needed.
32991        * rendering/RenderInline.h: Ditto.
32992
329932012-08-31  Nikhil Bhargava  <nbhargava@google.com>
32994
32995        Remove extraneous includes (Node.h, Document.h, Element.h, RenderObject.h)
32996        https://bugs.webkit.org/show_bug.cgi?id=95259
32997
32998        Reviewed by Sam Weinig.
32999
33000        Node.h, Document.h, Element.h, and RenderObject.h are four of the most
33001        expensive headers to include. This patch removes them from many of the
33002        places they are not needed. There is a minor compile-time performance
33003        boost.
33004
33005        * dom/ElementShadow.h:
33006        * dom/Range.h:
33007        (WebCore):
33008        * dom/TreeScopeAdopter.h:
33009        (WebCore):
33010        * editing/VisiblePosition.h:
33011        (WebCore):
33012        * html/HTMLCollection.h:
33013        (WebCore):
33014        * html/parser/HTMLElementStack.h:
33015        * html/parser/HTMLTreeBuilder.h:
33016        (WebCore):
33017        * html/track/WebVTTParser.h:
33018        (WebCore):
33019        * inspector/InspectorCSSAgent.h:
33020        (WebCore):
33021        * inspector/InspectorInstrumentation.h:
33022        (WebCore):
33023        * inspector/InspectorOverlay.h:
33024        * loader/ImageLoader.h:
33025        * loader/TextTrackLoader.h:
33026        (WebCore):
33027        * platform/chromium/PopupListBox.cpp:
33028        * platform/chromium/PopupListBox.h:
33029        (WebCore):
33030        * platform/graphics/MediaPlayer.h:
33031        (WebCore):
33032        * rendering/FilterEffectRenderer.h:
33033        * rendering/InlineFlowBox.cpp:
33034        * rendering/RenderCounter.cpp:
33035        * rendering/RenderGeometryMap.h:
33036        (WebCore):
33037        * rendering/RenderInputSpeech.h:
33038        (WebCore):
33039        * rendering/RenderMediaControls.h:
33040        (WebCore):
33041        * rendering/RenderMediaControlsChromium.h:
33042        (WebCore):
33043        * rendering/RenderQuote.cpp:
33044        * rendering/RenderQuote.h:
33045        (WebCore):
33046        * rendering/RenderScrollbar.h:
33047        (WebCore):
33048        * rendering/RenderText.h:
33049        (WebCore):
33050        * rendering/RenderTheme.h:
33051        (WebCore):
33052        * rendering/RenderThemeChromiumSkia.h:
33053        (WebCore):
33054        * rendering/svg/RenderSVGResourceMarker.h:
33055        (WebCore):
33056        * svg/graphics/filters/SVGFilterBuilder.h:
33057        (WebCore):
33058        * xml/NativeXPathNSResolver.h:
33059        (WebCore):
33060        (NativeXPathNSResolver):
33061        (WebCore::NativeXPathNSResolver::create):
33062        * xml/XPathStep.h:
33063        (WebCore):
33064        (XPath):
33065        (Step):
33066        (NodeTest):
33067        (WebCore::XPath::Step::NodeTest::NodeTest):
33068        (WebCore::XPath::Step::NodeTest::kind):
33069        (WebCore::XPath::Step::NodeTest::data):
33070        (WebCore::XPath::Step::NodeTest::namespaceURI):
33071        (WebCore::XPath::Step::NodeTest::mergedPredicates):
33072        (WebCore::XPath::Step::axis):
33073        (WebCore::XPath::Step::nodeTest):
33074        * xml/parser/NewXMLDocumentParser.cpp:
33075        * xml/parser/NewXMLDocumentParser.h:
33076        (WebCore):
33077        * xml/parser/XMLToken.h:
33078        * xml/parser/XMLTreeBuilder.cpp:
33079        * xml/parser/XMLTreeBuilder.h:
33080        (WebCore):
33081
330822012-08-31  David Hyatt  <hyatt@apple.com>
33083
33084        [New Multicolumn] Implement column repainting.
33085        https://bugs.webkit.org/show_bug.cgi?id=95593
33086
33087        Reviewed by Dan Bernstein.
33088        
33089        Make the new columns repaint properly. Note this code is a significant improvement over the
33090        old multicolumn code in that repaints are properly issued per-column, i.e., no more fuzzy
33091        uniting of rects.
33092
33093        * rendering/RenderMultiColumnSet.cpp:
33094        (WebCore::RenderMultiColumnSet::columnIndexAtOffset):
33095        (WebCore):
33096        (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
33097        * rendering/RenderMultiColumnSet.h:
33098
330992012-08-31  Alok Priyadarshi  <alokp@chromium.org>
33100
33101        [chromium] Layout tests svg-filters.html and alpha.html are crashing intermittently
33102        https://bugs.webkit.org/show_bug.cgi?id=92660
33103
33104        Reviewed by James Robinson.
33105
33106        We use two GL contexts to create and upload tile textures.
33107        One context creates the texture, while another uploads it.
33108        Even though the texture is shared by the two contexts, it is not
33109        available to the uploading context immediately after creation,
33110        unless the creating context is flushed. 
33111
33112        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
33113        (WebCore::createAcceleratedCanvas):
33114        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
33115
331162012-08-31  David Hyatt  <hyatt@apple.com>
33117
33118        [New Multicolumn] Refactor flow thread repainting.
33119        https://bugs.webkit.org/show_bug.cgi?id=95586
33120
33121        Reviewed by Simon Fraser.
33122
33123        Refactor flow thread repainting in regions to delegate the work to the region. This allows subclasses
33124        to customize how the repainting happens so that individual repaints can be issued for columns and pages
33125        inside sets.
33126        
33127        repaintFlowThreadContent is the new virtual function that can be subclassed by sets to customize
33128        the repaint process.
33129        
33130        repaintFlowThreadContentRectangle is a parameterized helper that will be called for each individual
33131        column and page in a set.
33132
33133        * WebCore.exp.in:
33134        Change repaintRectangle's signature to be const.
33135
33136        * rendering/RenderFlowThread.cpp:
33137        (WebCore::RenderFlowThread::repaintRectangleInRegions):
33138        Now delegates the work for each region to RenderRegion::repaintFlowThreadContent.
33139
33140        * rendering/RenderObject.cpp:
33141        (WebCore::RenderObject::repaintUsingContainer):
33142        (WebCore::RenderObject::repaint):
33143        (WebCore::RenderObject::repaintRectangle):
33144        (WebCore::RenderObject::isRooted):
33145        * rendering/RenderObject.h:
33146        Change a bunch of functions to be const.
33147
33148        * rendering/RenderRegion.cpp:
33149        (WebCore::RenderRegion::repaintFlowThreadContent):
33150        (WebCore):
33151        (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
33152        * rendering/RenderRegion.h:
33153        (RenderRegion):
33154        Add the two new functions (the virtual repaintFlowThreadContent and the helper it
33155        uses, repaintFlowThreadContentRectangle).
33156
331572012-08-31  Yong Li  <yoli@rim.com>
33158
33159        [BlackBerry] Disable GCController timer for PLATFORM(BLACKBERRY)
33160        https://bugs.webkit.org/show_bug.cgi?id=93007
33161
33162        Reviewed by Rob Buis.
33163
33164        Disable GCController timer.
33165
33166        * bindings/js/GCController.cpp:
33167        (WebCore::GCController::GCController):
33168        (WebCore::GCController::garbageCollectSoon):
33169        (WebCore):
33170        * bindings/js/GCController.h:
33171        (GCController):
33172
331732012-08-31  Michael Saboff  <msaboff@apple.com>
33174
33175        CSS Parser should directly parse 8 bit source strings
33176        https://bugs.webkit.org/show_bug.cgi?id=95207
33177
33178        Reviewed by Geoffrey Garen.
33179
33180        Changed CSSParser to handle 8 bit strings directly. Templatized most private parsing methods
33181        and helper methods by character type. Introduced several templatized helper methods for
33182        parsing methods. Some of these helper methods have independent source and destination template
33183        types to handle that an 8 bit source string when parsed produces a 16 bit result. This is due
33184        to unicode escapes. Renamed the lex method "realLex" and made it a templated method. The lex
33185        method that is called by cssyylex(), which is now inlined, invokes the correct instance of realLex
33186        via a member function pointer.
33187
33188        Split out the encoding part of parseEscape() into a new templated UnicodeToChars() method.
33189
33190        Added 8/16 bit switching to CSSParserString as well as added initialization, setters and getters.
33191        Note that CSSParserString must have a default constructor as it is part of the YYLVAL union.
33192        Therefore created init() methods instead of constructors. Many of the parser function now directly
33193        modify the instance in yylval. Made supporting changes in other webcore classes that are used
33194        directly by CSSParser.
33195
33196        Test: fast/css/unicode-escape-in-8bit-string.html
33197
33198        * css/CSSGrammar.y: Removed cssyylex() and changed manipulation of CSSParserString objects to
33199        use newly written methods instead of direct manipulation of attributes.
33200
33201        * css/CSSParser.cpp:
33202        Templatized new or existing helper methods
33203        (WebCore::makeLower):
33204        (WebCore::isCSSLetter):
33205        (WebCore::isCSSEscape):
33206        (WebCore::isURILetter):
33207        (WebCore::isIdentifierStartAfterDash):
33208        (WebCore::isEqualToCSSIdentifier):
33209        (WebCore::checkAndSkipEscape):
33210        (WebCore::checkForValidDouble):
33211        (WebCore::parseDouble):
33212        (WebCore::parseColorIntOrPercentage):
33213        (WebCore::isTenthAlpha):
33214        (WebCore::parseAlphaValue):
33215        (WebCore::mightBeRGBA):
33216        (WebCore::mightBeRGB):
33217        (WebCore::fastParseColorInternal):
33218        (WebCore::CSSParser::fastParseColor):
33219        (WebCore::CSSParser::parseImageSet):
33220        (WebCore::skipWhiteSpace):
33221        (WebCore::CSSParser::currentCharacter16):
33222        (WebCore::CSSParser::isIdentifierStart):
33223        (WebCore::CSSParser::checkAndSkipString):
33224        (WebCore::CSSParser::parseUnicodeRange):
33225        (WebCore::CSSParser::parseNthChild):
33226        (WebCore::CSSParser::parseNthChildExtra):
33227        (WebCore::CSSParser::detectFunctionTypeToken):
33228        (WebCore::CSSParser::detectMediaQueryToken):
33229        (WebCore::CSSParser::detectNumberToken):
33230        (WebCore::CSSParser::detectDashToken):
33231        (WebCore::CSSParser::detectAtToken):
33232        (WebCore::CSSParser::setRuleHeaderEnd):
33233        (WebCore::cssPropertyID):
33234        (WebCore::isCSSTokenizerIdentifier):
33235        (WebCore::isCSSTokenizerURL):
33236
33237        (WebCore::CSSParser::CSSParser): Updated constructor for initializing new attributes.
33238
33239        (WebCore::CSSParserString::lower): Calls new makeLower() template helper.
33240
33241        (WebCore::CSSParser::setupParser): Added 8 bit path and set up parser appropriate to
33242        string type.
33243
33244        (WebCore::equal): Updated to use CSSParserString getters and StringImpl::equal
33245        (WebCore::equalIgnoringCase): Updated to use CSSParserString getters and
33246        StringImpl::equalIgnoringCase
33247        (WebCore::parseColorValue): Updated to use new CSSParserString::init()
33248        (WebCore::parseSimpleLength):
33249        (WebCore::parseKeywordValue): Updated to use new CSSParserString::init()
33250        (WebCore::parseTransformArguments):
33251        (WebCore::CSSParser::parseSystemColor): Updated to use new CSSParserString::init()
33252        (WebCore::CSSParser::storeVariableDeclaration): Create right character sized AtomicString.
33253        (WebCore::FontFamilyValueBuilder::add):
33254        (WebCore::TransformOperationInfo::TransformOperationInfo):
33255        (WebCore::CSSParser::parseFontFeatureTag):
33256
33257        (WebCore::CSSParser::parseEscape): Now only parses an escape and returns the resulting
33258        Unicode value as an unsigned.
33259        (WebCore::CSSParser::UnicodeToChars): New method to write out unicode character(s)
33260        based on character type.
33261        (WebCore::CSSParser::parseIdentifierInternal): Templated helper.
33262        (WebCore::CSSParser::parseIdentifier): Parses identifiers, possibly upconverting
33263        the result when a unicode escape is found in an 8 bit source.
33264        (WebCore::CSSParser::parseStringInternal): Templated helper.
33265        (WebCore::CSSParser::parseString): Parses strings, possibly upconverting
33266        the result when a unicode escape is found in an 8 bit source.
33267        (WebCore::CSSParser::parseURIInternal): Templated helper.
33268        (WebCore::CSSParser::parseURI): Templated and split logic out to parseURIInternal.
33269        Reparses a parsed identifier to see if it is a URI.  This method doesn't need to up
33270        convert from 8 to 16 bits since that would have been done in parseIdentfier().
33271        (WebCore::CSSParser::realLex): Lot of template related changes.  Removed yylval->string
33272        ASSERT checks at the end, since they are too naive to handle upconverted identifier,
33273        string and URIs.  They compared source pointers (m_tokenStart) with resulting strings.
33274        (WebCore::fixUnparsedProperties):
33275        (WebCore::CSSParser::fixUnparsedPropertyRanges): Added new template helper with same name.
33276        (WebCore::CSSParser::markRuleHeaderStart):
33277        (WebCore::CSSParser::markRuleHeaderEnd):
33278        (WebCore::CSSParser::markRuleBodyStart):
33279        (WebCore::CSSParser::markRuleBodyEnd):
33280        (WebCore::CSSParser::markPropertyStart):
33281        (WebCore::CSSParser::markPropertyEnd):
33282        (WebCore::cssValueKeywordID):
33283
33284        * css/CSSParser.h:
33285        (CSSParser):
33286        (WebCore::CSSParser::lex): Made this inline helper that calls correct realLex().
33287        (WebCore::CSSParser::is8BitSource):
33288        (WebCore::CSSParser::tokenStartOffset): Templated method returning offset in source
33289        of the current token start.
33290        (WebCore::CSSParser::tokenStartChar): Templated access to m_tokenStart.
33291        (WebCore::cssyylex): Made this inline to avoid call.
33292        * css/CSSParserValues.h:
33293        (WebCore::CSSParserString::init): Added three new initialization methods.
33294
33295        New setters, getters and helper methods.
33296        (WebCore::CSSParserString::clear):
33297        (WebCore::CSSParserString::is8Bit):
33298        (WebCore::CSSParserString::characters8):
33299        (WebCore::CSSParserString::characters16):
33300        (WebCore::CSSParserString::length):
33301        (WebCore::CSSParserString::setLength):
33302        (WebCore::CSSParserString::operator[]):
33303        (WebCore::CSSParserString::equalIgnoringCase):
33304        (WebCore::CSSParserString::operator String):
33305        (WebCore::CSSParserString::operator AtomicString):
33306
33307        Other methods templatized to support changes in CSSParser.
33308        * platform/graphics/Color.cpp:
33309        (WebCore::parseHexColorInternal):
33310        (WebCore::Color::parseHexColor): New LChar flavor
33311        (WebCore::Color::Color):
33312        * platform/graphics/Color.h:
33313        (Color):
33314        * platform/text/TextEncoding.cpp:
33315        (WebCore::TextEncoding::TextEncoding):
33316        * platform/text/TextEncodingRegistry.cpp:
33317        (WebCore::atomicCanonicalTextEncodingName):
33318        * platform/text/TextEncodingRegistry.h:
33319        * svg/SVGParserUtilities.cpp:
33320        (WebCore::genericParseNumber):
33321        (WebCore::parseSVGNumber):
33322        * svg/SVGParserUtilities.h:
33323        (WebCore::isSVGSpace):
33324        (WebCore::skipOptionalSVGSpaces):
33325        (WebCore::skipOptionalSVGSpacesOrDelimiter):
33326
333272012-08-31  David Hyatt  <hyatt@apple.com>
33328
33329        [New Multicolumn] Make RenderFlowThreads into selection roots.
33330        https://bugs.webkit.org/show_bug.cgi?id=95580
33331
33332        Reviewed by Dan Bernstein.
33333
33334        Make RenderFlowThreads selection roots so that they paint their own selection gaps.
33335        This fixes multicolumn selection rendering so that the gaps paint correctly and stop
33336        at the edge of the flow thread instead of going out to the edges of enclosing blocks.
33337
33338        * rendering/RenderBlock.cpp:
33339        (WebCore::RenderBlock::isSelectionRoot):
33340
333412012-08-31  Andrei Bucur  <abucur@adobe.com>
33342
33343        [CSS Regions] It should be possible to specify ::BEFORE/AFTER as regions
33344        https://bugs.webkit.org/show_bug.cgi?id=90079
33345
33346        Reviewed by David Hyatt.
33347
33348        The calls for RenderRegion::node() have been replaced with RenderRegion::generatingNode() to allow pseudo-elements to have RenderRegion renderers.
33349        The compare function that establishes the region order was adapted to take into account pseudo-regions.
33350        A renderer for the pseudo-element is now generated if it's a region even though there's no content property specified.
33351
33352        Test: fast/regions/content-flowed-into-pseudo-regions.html
33353
33354        * rendering/RenderFlowThread.cpp:
33355        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33356        * rendering/RenderNamedFlowThread.cpp:
33357        (WebCore::compareRenderRegions):
33358        * rendering/RenderObjectChildList.cpp:
33359        (WebCore::ensureBeforeAfterContainer):
33360        (WebCore):
33361        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
33362        * rendering/RenderRegion.cpp:
33363        (WebCore::RenderRegion::nodeAtPoint):
33364        (WebCore::RenderRegion::checkRegionStyle):
33365        (WebCore::RenderRegion::computeStyleInRegion):
33366        * rendering/RenderTreeAsText.cpp:
33367        (WebCore::writeRenderNamedFlowThreads):
33368
333692012-08-30  David Hyatt  <hyatt@apple.com>
33370
33371        [New Multicolumn] Implement unforced breaking in the new column layout.
33372        https://bugs.webkit.org/show_bug.cgi?id=95498
33373
33374        Reviewed by Dan Bernstein.
33375
33376        This patch implements unforced breaking for lines and objects inside columns. Forced breaks are
33377        not yet handled properly and will be covered in a separate patch.
33378
33379        * rendering/LayoutState.cpp:
33380        (WebCore::LayoutState::LayoutState):
33381        Eliminate the flow thread constructor for LayoutState. Flow threads were doing a double push of
33382        layout states, once in RenderFlowThread::layout() and then again in RenderBlock::layout(). This
33383        double push was unnecessary, so I refactored the code to ensure the RenderBlock push does the
33384        right thing for RenderFlowThreads.
33385
33386        (WebCore):
33387        * rendering/LayoutState.h:
33388        (LayoutState):
33389        Eliminate the flow thread constructor for LayoutState.
33390
33391        * rendering/RenderBlock.cpp:
33392        (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
33393        This function now handles RenderFlowThreads and properly sets a non-zero page height as well
33394        as querying the flow thread to ask if the pagination logical height has changed. The flow thread
33395        has a new member that it sets in layout() so that it can answer this question.
33396
33397        (WebCore::RenderBlock::hasNextPage):
33398        Make sure RenderRegionSets always claim to have a next page when they are the last region, since
33399        we know columns/pages can always generate additional boxes as needed.
33400
33401        * rendering/RenderFlowThread.cpp:
33402        (WebCore::RenderFlowThread::RenderFlowThread):
33403        Add the m_pageLogicalHeightChanged member variable for tracking whether regions changed dimensions,
33404        thus forcing us to repaginate everything.
33405
33406        (WebCore::RenderFlowThread::layout):
33407        Remove the redundant push of layout state now that RenderBlock's covers it.
33408
33409        (WebCore::RenderFlowThread::regionAtBlockOffset):
33410        Always return the last region if it's a set, regardless of the extendLastRegion boolean.
33411        This reflects the fact that the last region set can always generate new page/column boxes.
33412
33413        (WebCore::RenderFlowThread::pageLogicalTopForOffset):
33414        Refactored to call into the region it finds for a given offset, so that the region itself
33415        can answer the question of where the top of the page is. This enables sets to return the top of
33416        specific columns/pages within the set.
33417
33418        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
33419        Changed to be written in terms of pageLogicalTop and pageLogicalHeight so that it correctly uses
33420        only the current column/page when determining remaining height.
33421
33422        * rendering/RenderFlowThread.h:
33423        Added pageLogicalHeightChanged() so that RenderBlock can ask the flow thread if its regions changed
33424        dimensions.
33425
33426        * rendering/RenderMultiColumnBlock.cpp:
33427        (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
33428        Tweaked to no longer turn on pagination, since the RenderMultiColumnFlowThread does that and we
33429        want to avoid a double push of paginated states. Instead it now just sets the column height ahead
33430        of time so that the RenderMultiColumnSets know how big their columns are.
33431
33432        * rendering/RenderMultiColumnSet.cpp:
33433        (WebCore::RenderMultiColumnSet::pageLogicalTopForOffset):
33434        Subclassed to return the top of a specific column.
33435
33436        (WebCore):
33437        * rendering/RenderMultiColumnSet.h:
33438        Add the subclassed method for pageLogicalTopForOffset.
33439        
33440        * rendering/RenderRegion.cpp:
33441        (WebCore::RenderRegion::pageLogicalTopForOffset):
33442        The code from RenderFlow::pageLogicalTopForOffset moved here. Just returns the top of the flow
33443        thread portion rect in the region (same as before).
33444
33445        (WebCore::RenderRegion::layout):
33446        Changed to check only the page logical width and height, since we only consider a region as
33447        invalidating how you break if there is an actual page height change.
33448
33449        * rendering/RenderRegion.h:
33450        (WebCore::RenderRegion::isRenderRegionSet):
33451        Added an isRenderRegionSet() virtual function so that we can test for sets.
33452
33453        * rendering/RenderRegionSet.h:
33454        (WebCore::RenderRegionSet::isRenderRegionSet):
33455        Subclassed isRenderRegionSet() to return true.
33456
33457        * rendering/RenderView.cpp:
33458        * rendering/RenderView.h:
33459        (LayoutStateMaintainer):
33460        (WebCore::LayoutStateMaintainer::push):
33461        Remove the pushes of LayoutState that were specific to RenderFlowThreads.
33462
334632012-08-31  Pavel Feldman  <pfeldman@chromium.org>
33464
33465        Web Inspector: Update $ to alias to querySelector rather than getElementById
33466        https://bugs.webkit.org/show_bug.cgi?id=92648
33467
33468        Reviewed by Yury Semikhatsky.
33469
33470        Completed implementation started by Addy Osmani. Updates $ to alias to querySelector
33471        with more flexible handling of selectors. Also adds a warning about the change (as per Firebug).
33472
33473        * inspector/InjectedScriptSource.js:
33474        (.):
33475
334762012-08-31  Andrey Kosyakov  <caseq@chromium.org>
33477
33478        Web Inspector: disable popover on click outside of popover anchor
33479        https://bugs.webkit.org/show_bug.cgi?id=95564
33480
33481        Reviewed by Yury Semikhatsky.
33482
33483        Immediately hide popover when receiving a click outside of popover anchor.
33484
33485        * inspector/front-end/Popover.js:
33486        (WebInspector.PopoverHelper.prototype._mouseDown):
33487
334882012-08-31  Christophe Dumez  <christophe.dumez@intel.com>
33489
33490        [EFL] Add proper support for navigator.onLine and associated events
33491        https://bugs.webkit.org/show_bug.cgi?id=95532
33492
33493        Reviewed by Kenneth Rohde Christiansen.
33494
33495        Add support for detecting online state in EFL port and
33496        monitor state changes. The EFL port now has proper
33497        support for navigator.onLine and associated events.
33498
33499        The implementation is based on Eeze library for
33500        detecting network interfaces and their configuration.
33501        Detection of online state changes relies on rtnetlink.
33502
33503        No new tests, no behavior change for layout tests.
33504
33505        * PlatformEfl.cmake: Link unconditionally against Eeze
33506        library now.
33507        * platform/network/NetworkStateNotifier.cpp:
33508        (WebCore):
33509        * platform/network/NetworkStateNotifier.h:
33510        (NetworkStateNotifier):
33511        (WebCore):
33512        * platform/network/efl/NetworkStateNotifierEfl.cpp: Added.
33513        (WebCore):
33514        (WebCore::NetworkStateNotifier::updateState):
33515        (WebCore::NetworkStateNotifier::networkInterfaceChanged):
33516        (WebCore::readSocketCallback):
33517        (WebCore::NetworkStateNotifier::~NetworkStateNotifier):
33518        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
33519
335202012-08-31  Milian Wolff  <milian.wolff@kdab.com>
33521
33522        [Qt] QNX build fails due to missing OpenGL ES defines
33523        https://bugs.webkit.org/show_bug.cgi?id=95554
33524
33525        Reviewed by Simon Hausmann.
33526
33527        Apply the fix of bug 91030 to all platforms running on QNX.
33528
33529        * platform/graphics/opengl/Extensions3DOpenGLES.h:
33530
335312012-08-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33532
33533        [CMake] Changes on the bindings generator does not trigger generation of the bindings
33534        https://bugs.webkit.org/show_bug.cgi?id=95552
33535
33536        Reviewed by Kenneth Rohde Christiansen.
33537
33538        Added the engine especific part of the generator to the dependency
33539        list.
33540
33541        * UseJSC.cmake:
33542        * UseV8.cmake:
33543
335442012-08-31  Andrey Adaikin  <aandrey@chromium.org>
33545
33546        Web Inspector: [WebGL] Link WebGL calls to the source code where it was made
33547        https://bugs.webkit.org/show_bug.cgi?id=95426
33548
33549        Reviewed by Vsevolod Vlasov.
33550
33551        Save a stack trace for every call we capture and report to the frontend sourceURL,lineNumber,columnNumber were the call was made from.
33552        Right now, this will work only with V8.
33553
33554        * inspector/InjectedScriptExterns.js:
33555        (CallSite.prototype.getFileName):
33556        (CallSite.prototype.getLineNumber):
33557        (CallSite.prototype.getColumnNumber):
33558        * inspector/InjectedScriptWebGLModuleSource.js:
33559        (.):
33560        * inspector/Inspector.json:
33561        * inspector/front-end/WebGLProfileView.js:
33562        (WebInspector.WebGLProfileView):
33563        (WebInspector.WebGLProfileView.prototype._showTraceLog):
33564
335652012-08-31  Patrick Dubroy  <dubroy@chromium.org>
33566
33567        Web Inspector: Add high-DPI images for status bar glyphs
33568        https://bugs.webkit.org/show_bug.cgi?id=95471
33569
33570        Reviewed by Pavel Feldman.
33571
33572        Add the new 2x resolution image for the status bar glyphs, and add
33573        media queries to use the images on high-DPI devices.
33574
33575        * inspector/front-end/Images/statusbarButtonGlyphs2x.png: Added.
33576        * inspector/front-end/WebKit.qrc:
33577        * inspector/front-end/inspector.css:
33578        (.long-click-glyph):
33579        (@media (-webkit-min-device-pixel-ratio: 1.5)):
33580        (.status-bar-item > .glyph):
33581        * inspector/front-end/scriptsPanel.css:
33582        (.toggle-breakpoints .glyph):
33583        (@media (-webkit-min-device-pixel-ratio: 1.5)):
33584        (.status-bar-item.scripts-navigator-show-hide-button > .glyph):
33585        (.status-bar-item.scripts-debugger-show-hide-button > .glyph):
33586        * WebCore.gypi
33587        * inspector/front-end/timelinePanel.css:
33588        (#timeline-overview-sidebar .icon):
33589        (@media (-webkit-min-device-pixel-ratio: 1.5)):
33590
335912012-08-30  Pavel Feldman  <pfeldman@chromium.org>
33592
33593        Web Inspector: render box model elements and grid on inspector overlay
33594        https://bugs.webkit.org/show_bug.cgi?id=95456
33595
33596        Reviewed by Vsevolod Vlasov.
33597
33598        This change migrates native rendering for box model to the InspectorOverlay.
33599
33600        * inspector/InspectorInstrumentation.cpp:
33601        (WebCore):
33602        (WebCore::InspectorInstrumentation::didScrollImpl):
33603        * inspector/InspectorInstrumentation.h:
33604        (InspectorInstrumentation):
33605        (WebCore::InspectorInstrumentation::didScroll):
33606        (WebCore):
33607        * inspector/InspectorOverlay.cpp:
33608        (WebCore::InspectorOverlay::drawNodeHighlight):
33609        (WebCore::InspectorOverlay::drawRectHighlight):
33610        (WebCore::InspectorOverlay::overlayPage):
33611        (WebCore::InspectorOverlay::evaluateInOverlay):
33612        * inspector/InspectorOverlay.h:
33613        (WebCore::Highlight::setColors):
33614        (Highlight):
33615        (InspectorOverlay):
33616        * inspector/InspectorOverlayPage.html:
33617        * inspector/InspectorPageAgent.cpp:
33618        (WebCore::InspectorPageAgent::didLayout):
33619        (WebCore):
33620        (WebCore::InspectorPageAgent::didScroll):
33621        * inspector/InspectorPageAgent.h:
33622        * page/Chrome.cpp:
33623        (WebCore::Chrome::scroll):
33624
336252012-08-31  Andrey Adaikin  <aandrey@chromium.org>
33626
33627        Web Inspector: [WebGL] Make wrap functions initialization lazy
33628        https://bugs.webkit.org/show_bug.cgi?id=95533
33629
33630        Reviewed by Vsevolod Vlasov.
33631
33632        WebGL wrap functions initialization is not always needed to be executed: for example, when we will instrument a 2D canvas.
33633        Drive-by: fixed variable namings, moved duplicated code into a small auxiliary function.
33634
33635        * inspector/InjectedScriptWebGLModuleSource.js:
33636        (.):
33637
336382012-08-31  Simon Hausmann  <simon.hausmann@nokia.com>
33639
33640        [Qt] Port convertValueToQVariant to use the JSC C API
33641        https://bugs.webkit.org/show_bug.cgi?id=94695
33642
33643        Reviewed by Kenneth Rohde Christiansen.
33644
33645        Most of the code is portable to the C API, with a few exceptions for internal
33646        types such as byte arrays, dates or when unboxing primitive types.
33647
33648        * bridge/qt/qt_instance.cpp:
33649        (JSC::Bindings::QtField::setValueToInstance):
33650        * bridge/qt/qt_runtime.cpp:
33651        (JSC::Bindings::operator<<):
33652        (JSC::Bindings::isJSUint8ClampedArray):
33653        (JSC::Bindings::isJSArray):
33654        (Bindings):
33655        (JSC::Bindings::isJSDate):
33656        (JSC::Bindings::isQtObject):
33657        (JSC::Bindings::valueRealType):
33658        (JSC::Bindings::toString):
33659        (JSC::Bindings::unwrapBoxedPrimitive):
33660        (JSC::Bindings::convertValueToQVariantMap):
33661        (JSC::Bindings::convertToList):
33662        (JSC::Bindings::toQString):
33663        (JSC::Bindings::getGregorianDateTimeUTC):
33664        (JSC::Bindings::toQDateTimeUTC):
33665        (JSC::Bindings::convertValueToQVariant):
33666        (JSC::Bindings::findMethodIndex):
33667        (JSC::Bindings::QtConnectionObject::execute):
33668        * bridge/qt/qt_runtime.h:
33669        (Bindings):
33670
336712012-08-31  Pavel Feldman  <pfeldman@chromium.org>
33672
33673        Web Inspector: render path to file and line number as subtitles in selector dialog.
33674        https://bugs.webkit.org/show_bug.cgi?id=95481
33675
33676        Reviewed by Vsevolod Vlasov.
33677
33678        In case several files have matching names, we should render the path next to it.
33679        Using the same subtitle field, we now also render line number for JS and Style outlines.
33680
33681        * inspector/front-end/FilteredItemSelectionDialog.js:
33682        (WebInspector.FilteredItemSelectionDialog.prototype.get _itemsLoaded):
33683        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
33684        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
33685        (WebInspector.SelectionDialogContentProvider.prototype.itemSuffixAt):
33686        (WebInspector.JavaScriptOutlineDialog.prototype.itemSuffixAt):
33687        (WebInspector.JavaScriptOutlineDialog.prototype.itemSubtitleAt):
33688        (WebInspector.OpenResourceDialog.prototype.itemSuffixAt):
33689        (WebInspector.OpenResourceDialog.prototype.itemSubtitleAt):
33690        * inspector/front-end/StyleSheetOutlineDialog.js:
33691        (WebInspector.StyleSheetOutlineDialog.prototype.itemSuffixAt):
33692        (WebInspector.StyleSheetOutlineDialog.prototype.itemSubtitleAt):
33693        * inspector/front-end/filteredItemSelectionDialog.css:
33694        (.js-outline-dialog > .container > div.item):
33695        (.js-outline-dialog span.subtitle):
33696
336972012-08-31  Yoshifumi Inoue  <yosin@chromium.org>
33698
33699        [Forms] Left/Right keys in multiple fields time input UI should move focus physical left/right instead of logical left/right regardless text direction.
33700        https://bugs.webkit.org/show_bug.cgi?id=95434
33701
33702        Reviewed by Kent Tamura.
33703
33704        This patch also changes handling of Left/Right keys to aware text
33705        direction ("dir" attribute"). Left/Right keys should move focus
33706        physical right/left instead of logical right/left.
33707
33708        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
33709        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
33710
33711        No new tests. This patch adds a test case into fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
33712
33713        * html/shadow/DateTimeFieldElement.cpp:
33714        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Changed to check isRTL() for Left/Right keys then we call
33715        appropriate focus motion function.
33716        (WebCore::DateTimeFieldElement::isRTL): Added for checking text direction is right-to-left or not.
33717        * html/shadow/DateTimeFieldElement.h:
33718        (DateTimeFieldElement): Added declaration of isRTL().
33719
337202012-08-30  Yoshifumi Inoue  <yosin@chromium.org>
33721
33722        [Forms] Blur from field should reset typeahead buffer in multiple fields time input UI
33723        https://bugs.webkit.org/show_bug.cgi?id=95525
33724
33725        Reviewed by Kent Tamura.
33726
33727        This patch changes to reset typeahead timer used in DateTimeNumericFieldElement
33728        on blur from field. It is intuitive that not merging keyboard inputs
33729        with interleaving focus motion, e.g. sequence type "1", type Tab, type
33730        Shift+Tab, type "2" should set field to "2" instead of "12".
33731
33732        This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
33733        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
33734
33735        No new tests. This patch adds a test case into fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
33736
33737        * html/shadow/DateTimeNumericFieldElement.cpp:
33738        (WebCore::DateTimeNumericFieldElement::didBlur): Added to reset typeahead timer, m_lastDigitCharTime.
33739        * html/shadow/DateTimeNumericFieldElement.h:
33740        (DateTimeNumericFieldElement): Added a declaration of didBlur().
33741
337422012-08-30 MORITA Hajime  <morrita@google.com>
33743
33744        Unreviewed, followup build fix against r127228.
33745
33746        * dom/Notation.cpp:
33747        (WebCore::Notation::cloneNode):
33748        * dom/Notation.h:
33749        (Notation):
33750
337512012-08-30  MORITA Hajime  <morrita@google.com>
33752
33753        Unreviewed, rolling out r126127.
33754        http://trac.webkit.org/changeset/126127
33755
33756        This breaks gobject bindings.
33757
33758        * dom/Attr.cpp:
33759        (WebCore::Attr::cloneNode):
33760        * dom/Attr.h:
33761        * dom/CDATASection.cpp:
33762        (WebCore::CDATASection::cloneNode):
33763        * dom/CDATASection.h:
33764        (CDATASection):
33765        * dom/Comment.cpp:
33766        (WebCore::Comment::cloneNode):
33767        * dom/Comment.h:
33768        (Comment):
33769        * dom/Document.cpp:
33770        (WebCore::Document::cloneNode):
33771        * dom/Document.h:
33772        (Document):
33773        * dom/DocumentFragment.cpp:
33774        (WebCore::DocumentFragment::cloneNode):
33775        * dom/DocumentFragment.h:
33776        (DocumentFragment):
33777        * dom/DocumentType.cpp:
33778        (WebCore::DocumentType::cloneNode):
33779        * dom/DocumentType.h:
33780        (DocumentType):
33781        * dom/Element.cpp:
33782        (WebCore::Element::cloneNode):
33783        * dom/Element.h:
33784        (Element):
33785        * dom/EntityReference.cpp:
33786        (WebCore::EntityReference::cloneNode):
33787        * dom/EntityReference.h:
33788        (EntityReference):
33789        * dom/Node.h:
33790        (Node):
33791        * dom/Node.idl:
33792        * dom/ProcessingInstruction.cpp:
33793        (WebCore::ProcessingInstruction::cloneNode):
33794        * dom/ProcessingInstruction.h:
33795        (ProcessingInstruction):
33796        * dom/ShadowRoot.cpp:
33797        (WebCore::ShadowRoot::cloneNode):
33798        * dom/ShadowRoot.h:
33799        (ShadowRoot):
33800        * dom/Text.cpp:
33801        (WebCore::Text::cloneNode):
33802        * dom/Text.h:
33803        (Text):
33804
338052012-08-30  Adam Barth  <abarth@webkit.org>
33806
33807        Loading a worker script should not be O(n^2)
33808        https://bugs.webkit.org/show_bug.cgi?id=95518
33809
33810        Reviewed by Benjamin Poulain.
33811
33812        Previously, we would malloc a new buffer and memcpy the entire worker
33813        script every time we got another packet of data from the network. This
33814        patch uses StringBuilder to accumulate the buffer more efficiently.
33815
33816        * workers/WorkerScriptLoader.cpp:
33817        (WebCore::WorkerScriptLoader::WorkerScriptLoader):
33818        (WebCore::WorkerScriptLoader::didReceiveData):
33819        (WebCore::WorkerScriptLoader::didFinishLoading):
33820        (WebCore):
33821        (WebCore::WorkerScriptLoader::script):
33822        * workers/WorkerScriptLoader.h:
33823        (WorkerScriptLoader):
33824
338252012-08-30  Yoshifumi Inoue  <yosin@chromium.org>
33826
33827        [Forms] Shift+Tab should focus the last field of multiple fields time input UI
33828        https://bugs.webkit.org/show_bug.cgi?id=95168
33829
33830        Reviewed by Kent Tamura.
33831
33832        This patch changes focus handling in DateTimeEditElement class for
33833        multiple fields time input UI.
33834
33835        Current implementation controls focus in fields by DateTimeEditElement
33836        and a focus field is tracked m_focusFieldIndex member variable. In
33837        current implementation, it is hard to set focus to the last field when
33838        it gets focus by Shift+Tab, because we don't know how DateTimeEditElement
33839        gets focus.
33840
33841        In this new implementation, DateTimeEditElement doesn't control focus
33842        rather FocusController class controls focus:
33843         - We set focus to DateTimeFieldElement instead of HTMLInputElement
33844           which is shadow host of DateTimeEditElement for controlling focus
33845           by FocusController.
33846         - Focus/blur events in DateTimeFieldElement are routed to HTMLInputElement
33847           by shadow DOM mechanism.
33848         - TimeInputType class overrides HTMLINputElement::blur() and focus()
33849           functions for delegating blur/focus behavior to DateTimeEditElement
33850           by calling DateTimeEditElement::blurByOwner()/focusByOwner().
33851
33852        This patch affects only ports which enable both ENABLE_INPUT_TYPE_TIME
33853        and ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
33854
33855        Tests: fast/forms/time-multiple-fields/time-multiple-fields-blur-and-focus-events.html
33856        This patch also adds a new test case for Shift+Tab into fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html.
33857
33858        * html/TimeInputType.cpp:
33859        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::didFieldBlur): Added for the input element not to be matched "focus" pseudo class for removing focus ring.
33860        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::didFieldFocus):  Added for the input element to be matched "focus" pseudo class for adding focus ring.
33861        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlMouseFocus): Removed. DateTimeEditElement no longer set focus to HTMLInputElement.
33862        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::focusAndSelectEditControlOwner): Removed. In this patch, settting focus to field is handled by DateTimeEditElement. We don't need to call HTMLInputElement::select() which has no effect for "time" input type.
33863        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerFocused): Revmoed. FocusController manages focus navigation in fields rather than DateTimeEditElement.
33864        (WebCore::TimeInputType::blur): Added for delegating blur() action to DateTimeEditElement.
33865        (WebCore::TimeInputType::focus): Added for delegating focus() action to DateTimeEditElement.
33866        (WebCore::TimeInputType::handleDOMActivateEvent): Removed. HTMLInputElement for "time" input type no longer get focus.
33867        (WebCore::TimeInputType::hasCustomFocusLogic): Added for asking FocusController to walk into shadow DOM tree on input type "time".
33868        (WebCore::TimeInputType::isKeyboardFocusable): Changed for "input" element not to have focus.
33869        (WebCore::TimeInputType::isMouseFocusable):  Changed for "input" element not to have focus.
33870        * html/TimeInputType.h:
33871        (DateTimeEditControlOwnerImpl): Changed for new definition of DateTimeEditControlOwner.
33872        (TimeInputType): Changed for new definition of DateTimeEditElement.
33873        * html/shadow/DateTimeEditElement.cpp:
33874        (WebCore::DateTimeEditElement::DateTimeEditElement): Removed dropped member variable m_focusFieldIndex.
33875        (WebCore::DateTimeEditElement::blurByOwner): Added for blur() action asekd by owner.
33876        (WebCore::DateTimeEditElement::didBlurFromField): Added for calling DateTimeEditControlOwner::didBlurFromControl().
33877        (WebCore::DateTimeEditElement::didFocusOnField): Added for calling DateTimeEditControlOwner::didFocusOnControl().
33878        (WebCore::DateTimeEditElement::fieldIndexOf): Added for mapping DateTimeFieldElement to field index.
33879        (WebCore::DateTimeEditElement::focusByOwner): Added for focus() action asekd by owner.
33880        (WebCore::DateTimeEditElement::focusFieldAt):  Removed.
33881        (WebCore::DateTimeEditElement::focusedFieldIndex): Added as helper function.
33882        (WebCore::DateTimeEditElement::focusedField): Added.
33883        (WebCore::DateTimeEditElement::focusOnNextField): Changed to pass a field to focusOnNext().
33884        (WebCore::DateTimeEditElement::focusOnPreviousField): ditto.
33885        (WebCore::DateTimeEditElement::focusAndSelectSpinButtonOwner): Changed for setting focus to the first field.
33886        (WebCore::DateTimeEditElement::handleKeyboardEvent): Removed. Moved handling of Left/Right keys to DateTimeFieldElement. Removed Tab-key handling.
33887        (WebCore::DateTimeEditElement::handleMouseEvent): Removed. DateTimeEdit doesn't handle mouse click since this patch.
33888        (WebCore::DateTimeEditElement::layout): Changed to use focusFieldIndex() and DateTimeFieldElement::focus().
33889        (WebCore::DateTimeEditElement::nextFieldIndex): Removed. focusOnNextField does samething and sets focus.
33890        (WebCore::DateTimeEditElement::previousFieldIndex): Removed. focusOnPreviousField does samething and sets focus.
33891        (WebCore::DateTimeEditElement::resetLayout): Changed to remove m_focusFieldIndex variable reference.
33892        (WebCore::DateTimeEditElement::defaultEventHandler): Changed to remove focus navigation related events, blue/focus/mouse, handling.
33893        (WebCore::DateTimeEditElement::shouldSpinButtonRespondToWheelEvents): Changed to check focus field instead of asking owner.
33894        (WebCore::DateTimeEditElement::spinButtonStepDown): Changed to use focusField() instead of m_focusFieldIndex.
33895        (WebCore::DateTimeEditElement::spinButtonStepUp): ditto.
33896        (WebCore::DateTimeEditElement::updateUIState): ditto.
33897        * html/shadow/DateTimeEditElement.h:
33898        (EditControlOwner): Added didBlurFromField() and didFocusOnField() function declarations. Removed focusAndSelectEditControlOwner, it was used for set focus to HTMLInputElement, and isEditControlOwnerFocused.
33899        (DateTimeEditElement):
33900        * html/shadow/DateTimeFieldElement.cpp:
33901        (WebCore::DateTimeFieldElement::defaultEventHandler): Changed to handle blur and focus events.
33902        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Changed to handle Left/Right keys.
33903        (WebCore::DateTimeFieldElement::didBlur): Added to call FieldOwner::didBlurFromField() to remove focus ring from owner element.
33904        (WebCore::DateTimeFieldElement::didFocus): Added to call FieldOwner::didFocusOnField()  to add focus ring to owner element.
33905        (WebCore::DateTimeFieldElement::focusOnNextField): Added for moving focus to next field for DateTimeNumbericFieldElment
33906        (WebCore::DateTimeFieldElement::isFocusable): Added to make DateTimeFieldElement focusable.
33907        (WebCore::DateTimeFieldElement::supportsFocus):  Added to make DateTimeFieldElement focusable.
33908        * html/shadow/DateTimeFieldElement.h:
33909        (FieldOwner): Added declarations for focusable handling.
33910        (DateTimeFieldElement): ditto.
33911
339122012-08-30  James Robinson  <jamesr@chromium.org>
33913
33914        [chromium] Revert WebCompositorSupport to raw ptrs, make dtor protected
33915        https://bugs.webkit.org/show_bug.cgi?id=95520
33916
33917        Reviewed by Darin Fisher.
33918
33919        Adopt the return value of WebCompositorSupport explicitly.
33920
33921        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
33922        (WebCore::createWebAnimation):
33923        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
33924        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
33925        * platform/graphics/chromium/DrawingBufferChromium.cpp:
33926        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
33927        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
33928        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
33929        (WebCore::GraphicsLayerChromium::setContentsToImage):
33930        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
33931
339322012-08-30  Adam Barth  <abarth@webkit.org>
33933
33934        Replace more instances of += with StringBuilder
33935        https://bugs.webkit.org/show_bug.cgi?id=95502
33936
33937        Reviewed by Darin Adler.
33938
33939        This patch removes many uses of WTF::String::operator+= in WebCore.
33940        Many of these uses are inefficient because they cause us to allocate
33941        and memcpy strings more times than necessary. In most cases, I've
33942        replaced these inefficient patterns with StringBuilder.
33943
33944        This patch makes progress towards removing WTF::String::operator+= from
33945        the project.
33946
33947        We can make cssText() more efficient by passing a single StringBuilder
33948        instance along to the recursive calls, but I've left that for a later
33949        patch.
33950
33951        * css/CSSBorderImageSliceValue.cpp:
33952        (WebCore::CSSBorderImageSliceValue::customCssText):
33953        * css/CSSFontFaceSrcValue.cpp:
33954        (WebCore::CSSFontFaceSrcValue::customCssText):
33955        * css/CSSFunctionValue.cpp:
33956        (WebCore::CSSFunctionValue::customCssText):
33957        * css/CSSGradientValue.cpp:
33958        (WebCore::CSSLinearGradientValue::customCssText):
33959        (WebCore::CSSRadialGradientValue::customCssText):
33960        * css/CSSParser.cpp:
33961        (WebCore::CSSParser::createKeyframe):
33962        * css/CSSPrimitiveValue.cpp:
33963        (WebCore::CSSPrimitiveValue::customCssText):
33964        * css/CSSReflectValue.cpp:
33965        (WebCore::CSSReflectValue::customCssText):
33966        * css/CSSTimingFunctionValue.cpp:
33967        (WebCore::CSSCubicBezierTimingFunctionValue::customCssText):
33968        (WebCore::CSSStepsTimingFunctionValue::customCssText):
33969        * css/StylePropertySet.cpp:
33970        (WebCore::StylePropertySet::get4Values):
33971        (WebCore::StylePropertySet::getLayeredShorthandValue):
33972        (WebCore::StylePropertySet::getShorthandValue):
33973        * fileapi/BlobURL.cpp:
33974        (WebCore::BlobURL::createBlobURL):
33975        * inspector/InspectorCSSAgent.cpp:
33976        (WebCore::InspectorCSSAgent::SetPropertyTextAction::redo):
33977        * inspector/InspectorClient.cpp:
33978        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
33979        * inspector/InspectorConsoleAgent.cpp:
33980        (WebCore::InspectorConsoleAgent::didFailLoading):
33981        * inspector/InspectorFileSystemAgent.cpp:
33982        (WebCore):
33983        * inspector/InspectorPageAgent.cpp:
33984        (WebCore::InspectorPageAgent::cachedResourceContent):
33985        (WebCore::InspectorPageAgent::getCookies):
33986        * inspector/InspectorStyleSheet.cpp:
33987        (WebCore::InspectorStyleSheet::addRule):
33988
339892012-08-30  Luke Macpherson   <macpherson@chromium.org>
33990
33991        Make it possible to use CSS Variables inside Calc expressions.
33992        https://bugs.webkit.org/show_bug.cgi?id=95284
33993
33994        Reviewed by Tony Chang.
33995
33996        Allows calc expressions to contain unevaluated variables, which are then resolved in StyleResolver.cpp when building the RenderStyle tree.
33997
33998        Tests:
33999        fast/css/variables/calc.html
34000
34001        * css/CSSCalculationValue.cpp:
34002        (WebCore::unitCategory):
34003        (WebCore):
34004        (WebCore::CSSCalcValue::customSerializeResolvingVariables):
34005        Generates a CSS expression with variables resolved into their corresponding values.
34006        (WebCore::CSSCalcValue::hasVariableReference):
34007        Returns true if the calculation's expression tree refers to a variable (that needs to be resolved).
34008        (CSSCalcPrimitiveValue):
34009        (WebCore::CSSCalcPrimitiveValue::serializeResolvingVariables):
34010        Resolves the variable using the underlying CSSPrimitiveValue's serializeResolvingVariables function.
34011        (WebCore::CSSCalcPrimitiveValue::hasVariableReference):
34012        (WebCore::CSSCalcPrimitiveValue::toCalcValue):
34013        (WebCore::CSSCalcPrimitiveValue::doubleValue):
34014        (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
34015        (WebCore::CSSCalcBinaryOperation::create):
34016        (CSSCalcBinaryOperation):
34017        (WebCore::CSSCalcBinaryOperation::serializeResolvingVariables):
34018        Builds a CSS expression for contained subtrees.
34019        (WebCore::CSSCalcBinaryOperation::hasVariableReference):
34020        Returns true if either subtree contains a variable.
34021        * css/CSSCalculationValue.h:
34022        (CSSCalcExpressionNode):
34023        (CSSCalcValue):
34024        * css/CSSGrammar.y:
34025        * css/CSSParser.cpp:
34026        (WebCore::CSSParser::validCalculationUnit):
34027        * css/CSSPrimitiveValue.cpp:
34028        (WebCore::CSSPrimitiveValue::primitiveType):
34029        (WebCore::CSSPrimitiveValue::customSerializeResolvingVariables):
34030        * css/StyleResolver.cpp:
34031        (WebCore::StyleResolver::collectMatchingRulesForList):
34032
340332012-08-30  Max Vujovic  <mvujovic@adobe.com>
34034
34035        [CSS Shaders] Implement normal blend mode and source-atop compositing mode
34036        https://bugs.webkit.org/show_bug.cgi?id=93869
34037
34038        Reviewed by Dean Jackson.
34039
34040        Instead of allowing direct texture access in an author's shader via u_texture, CSS
34041        Shaders blends special symbols in the author's shader (css_MixColor and
34042        css_ColorMatrix) with the DOM element texture.
34043
34044        The author specifies the blend mode and composite operator via the CSS mix
34045        function like this:
34046        -webkit-filter: custom(none mix(shader.fs normal source-atop));
34047
34048        This patch implements the normal blend mode and the source-atop composite
34049        operator. The other blend modes and composite operators will come in later
34050        patches.
34051
34052        This patch introduces a new class, CustomFilterValidatedProgram, which validates
34053        the shader using ANGLE. If the shader uses blending and compositing,
34054        CustomFilterValidatedProgram uses ANGLE's SH_CSS_SHADERS_SPEC flag. This allows
34055        the author's shader to compile successfully with special symbols like
34056        "css_MixColor". ANGLE also reserves the "css_" prefix. If the shader doesn't use
34057        blending and compositing, CustomFilterValidatedProgram validates the shader using
34058        ANGLE's SH_WEBGL_SPEC flag.
34059
34060        After validation, CustomFilterValidatedProgram adds blending, compositing, and
34061        texture access shader code to the author's original shaders. The definitions for
34062        css_MixColor and css_ColorMatrix are added before the author's fragment shader
34063        code so that the author code can access them. The blending, compositing, and
34064        texture access code is added after the author code and is thus inaccessible to the
34065        author code. Since ANGLE reserves the "css_" prefix during the validation phase,
34066        no collisions are possible between the author's code and the code that WebKit adds.
34067
34068        The CustomFilterGlobalContext now caches CustomFilterValidatedProgram instead
34069        of CustomFilterCompiledProgram. CustomFilterValidatedProgram owns a
34070        CustomFilterCompiledProgram. This way, we can use the platform-independent
34071        CustomFilterValidatedProgram to validate and rewrite the shaders, regardless of
34072        the platform representation of the program (e.g. CustomFilterCompiledProgram).
34073
34074        Tests: css3/filters/custom/custom-filter-color-matrix.html
34075               css3/filters/custom/custom-filter-composite-source-atop.html
34076
34077        * GNUmakefile.list.am:
34078        * Target.pri:
34079        * WebCore.gyp/WebCore.gyp:
34080        * WebCore.gypi:
34081        * WebCore.vcproj/WebCore.vcproj:
34082        * WebCore.xcodeproj/project.pbxproj:
34083        * platform/graphics/ANGLEWebKitBridge.cpp:
34084        (WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge):
34085            Add a shader spec parameter, since sometimes we want to validate the shader
34086            against the CSS Shaders spec and other times we want to validate the shader
34087            against the WebGL spec. Note that the CSS Shaders spec is treated as a subset
34088            of the WebGL spec in ANGLE.
34089        (WebCore::ANGLEWebKitBridge::validateShaderSource):
34090        * platform/graphics/ANGLEWebKitBridge.h:
34091        (ANGLEWebKitBridge):
34092        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
34093        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
34094        (WebCore::CustomFilterCompiledProgram::compileShader):
34095        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
34096        (WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram):
34097        * platform/graphics/filters/CustomFilterCompiledProgram.h:
34098        (WebCore):
34099        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
34100        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
34101        (WebCore::CustomFilterGlobalContext::webglShaderValidator):
34102        (WebCore):
34103        (WebCore::CustomFilterGlobalContext::mixShaderValidator):
34104        (WebCore::CustomFilterGlobalContext::createShaderValidator):
34105        (WebCore::CustomFilterGlobalContext::getValidatedProgram):
34106        (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
34107        * platform/graphics/filters/CustomFilterGlobalContext.h:
34108        (WebCore):
34109        (CustomFilterGlobalContext):
34110        * platform/graphics/filters/CustomFilterProgramInfo.h:
34111        (WebCore::CustomFilterProgramInfo::mixSettings):
34112        * platform/graphics/filters/CustomFilterValidatedProgram.cpp: Added.
34113        (WebCore):
34114        (WebCore::CustomFilterValidatedProgram::defaultVertexShaderString):
34115        (WebCore::CustomFilterValidatedProgram::defaultFragmentShaderString):
34116        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
34117        (WebCore::CustomFilterValidatedProgram::compiledProgram):
34118        (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
34119        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
34120        (WebCore::CustomFilterValidatedProgram::blendFunctionString):
34121        (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
34122        (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
34123        * platform/graphics/filters/CustomFilterValidatedProgram.h: Added.
34124        (WebCore):
34125        (CustomFilterValidatedProgram):
34126        (WebCore::CustomFilterValidatedProgram::create):
34127        (WebCore::CustomFilterValidatedProgram::programInfo):
34128        (WebCore::CustomFilterValidatedProgram::isInitialized):
34129        (WebCore::CustomFilterValidatedProgram::detachFromGlobalContext):
34130        * platform/graphics/filters/FECustomFilter.cpp:
34131        (WebCore::FECustomFilter::FECustomFilter):
34132            Accept a CustomFilterValidatedProgram instead of CustomFilterProgram.
34133        (WebCore::FECustomFilter::create):
34134        (WebCore::FECustomFilter::initializeContext):
34135        (WebCore::FECustomFilter::bindVertexAttribute):
34136        (WebCore::FECustomFilter::bindProgramAndBuffers):
34137        * platform/graphics/filters/FECustomFilter.h:
34138        (WebCore):
34139        (FECustomFilter):
34140        * rendering/FilterEffectRenderer.cpp:
34141        (WebCore):
34142        (WebCore::createCustomFilterEffect):
34143        (WebCore::FilterEffectRenderer::build):
34144            Only create an FECustomFilter if the program validates.
34145        * rendering/FilterEffectRenderer.h:
34146        (WebCore):
34147        (FilterEffectRenderer):
34148
341492012-08-30  Julien Chaffraix  <jchaffraix@webkit.org>
34150
34151        Crash in RenderTable::calcBorderEnd
34152        https://bugs.webkit.org/show_bug.cgi?id=95487
34153
34154        Reviewed by Abhishek Arya.
34155
34156        r126590 opened the window for a race condition in RenderObjectChildList::removeChildNode.
34157        This is caused because willBeRemovedFromTree should be strictly following by the actual removal
34158        and wasn't.
34159
34160        This race condition was caused by clearSelection() being called just after willBeRemovedFromTree,
34161        which forced a section's cells recalc and would re-add the soon-to-be-removed child, causing the
34162        crash.
34163
34164        Test: fast/table/crash-clearSelection-collapsed-borders.html
34165
34166        * rendering/RenderObjectChildList.cpp:
34167        (WebCore::RenderObjectChildList::removeChildNode):
34168        Moved the clearSeletion call before willBeRemovedFromTree. Added a warning about running code
34169        after willBeRemovedFromTree and before removing the child from the tree.
34170
341712012-08-30  Geoffrey Garen  <ggaren@apple.com>
34172
34173        Use one object instead of two for closures, eliminating ScopeChainNode
34174        https://bugs.webkit.org/show_bug.cgi?id=95501
34175
34176        Reviewed by Filip Pizlo.
34177
34178        Mechanical changes to update for JSC interface changes.
34179
341802012-08-30  Pratik Solanki  <psolanki@apple.com>
34181
34182        objc_msgSend and IMP should be cast appropriately before using
34183        https://bugs.webkit.org/show_bug.cgi?id=95242
34184
34185        Reviewed by Benjamin Poulain.
34186
34187        Use wtfObjcMsgSend and wtfCallIMP templates which do appropriate casts
34188        to a function pointer with right types when calling objc_msgSend and an
34189        IMP method directly.
34190
34191        No new tests because no functional changes.
34192
34193        * page/mac/EventHandlerMac.mm:
34194        (WebCore::selfRetainingNSScrollViewScrollWheel):
34195        * platform/mac/WebCoreObjCExtras.mm:
34196        (deallocCallback):
34197
341982012-08-30  Benjamin Poulain  <bpoulain@apple.com>
34199
34200        Replace JSC::UString by WTF::String
34201        https://bugs.webkit.org/show_bug.cgi?id=95271
34202
34203        Reviewed by Geoffrey Garen.
34204
34205        Update the code to use String instead of UString.
34206
34207        On x86_64, this reduces the binary size by 22kb.
34208
34209        Since it is no longer possible to differenciate JSC::jsString() and WebCore::jsString() by the input
34210        types, WebCore::jsString() is renated to WebCore::jsStringWithCache().
34211
34212        Since the cache is using a PtrHash, JSC::jsString() is used in place of the old WebCore::jsString() when
34213        the string is generated locally. This is because the cache can never match in those cases.
34214
342152012-08-30  Rob Buis  <rbuis@rim.com>
34216
34217        [CMake] Suppress ANGLE compilation warnings
34218        https://bugs.webkit.org/show_bug.cgi?id=95377
34219
34220        Reviewed by Antonio Gomes.
34221
34222        Compile ANGLE sources in a static library, and make sure the compile flags suppress warnings.
34223
34224        * CMakeLists.txt:
34225
342262012-08-30  Victor Carbune  <victor@rosedu.org>
34227
34228        [Chromium] Layout Test media/track/track-cue-rendering-snap-to-lines-not-set.html is flaky
34229        https://bugs.webkit.org/show_bug.cgi?id=89167
34230
34231        Reviewed by Eric Carlson.
34232
34233        Fix for rendering tracks when snap-to-lines not set.
34234
34235        No new tests. Removed from TestExpectations existing test.
34236
34237        * html/track/TextTrackCue.cpp:
34238        (WebCore::TextTrackCue::TextTrackCue):
34239        (WebCore::TextTrackCue::calculateDisplayParameters): Updated the place
34240        where m_computedLinePosition is determined.
34241
342422012-08-27  James Robinson  <jamesr@chromium.org>
34243
34244        [chromium] Add CompositorSupport interface for constructing compositor classes
34245        https://bugs.webkit.org/show_bug.cgi?id=95040
34246
34247        Reviewed by Darin Fisher.
34248
34249        Uses WebCompositorSupport interfaces where appropriate to construct compositor types.
34250
34251        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
34252        (WebCore::createWebAnimation):
34253        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
34254        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
34255        * platform/graphics/chromium/DrawingBufferChromium.cpp:
34256        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
34257        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
34258        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
34259        (WebCore::GraphicsLayerChromium::setContentsToImage):
34260        (WebCore::GraphicsLayerChromium::setContentsTo):
34261        (WebCore::GraphicsLayerChromium::addAnimation):
34262        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
34263
342642012-08-30  Dan Bernstein  <mitz@apple.com>
34265
34266        [CG] ImageCG.cpp contains a mix of Image and BitmapImage functions
34267        https://bugs.webkit.org/show_bug.cgi?id=95470
34268
34269        Reviewed by Darin Adler.
34270
34271        * WebCore.gypi: Added BitmapImageCG.cpp.
34272        * WebCore.vcproj/WebCore.vcproj: Ditto.
34273        * WebCore.xcodeproj/project.pbxproj: Ditto.
34274        * platform/graphics/cg/BitmapImageCG.cpp: Copied from Source/WebCore/platform/graphics/cg/ImageCG.cpp
34275        then deleted Image function implementations.
34276        * platform/graphics/cg/ImageCG.cpp: Deleted BitmapImage and FrameData function implementations.
34277
342782012-08-30  Victor Carbune  <victor@rosedu.org>
34279
34280        [Chromium] The CC button is not painted
34281        https://bugs.webkit.org/show_bug.cgi?id=95395
34282
34283        Reviewed by Eric Carlson.
34284
34285        The actual Chromium resource for the CC button was not used by the Chromium theme.
34286
34287        Existing track rendering tests will be rebaselined and contain the new CC button.
34288
34289        * rendering/RenderMediaControlsChromium.cpp:
34290        (WebCore::paintMediaClosedCaptionsButton): Added for proper painting of the resource.
34291        (WebCore):
34292        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
34293        Changed to call paintMediaClosedCaptionsButton when the control is the CC button.
34294        * rendering/RenderThemeChromiumSkia.cpp:
34295        (WebCore::RenderThemeChromiumSkia::paintMediaToggleClosedCaptionsButton):
34296        Implemented proper behaviour.
34297        (WebCore):
34298        * rendering/RenderThemeChromiumSkia.h:
34299        (RenderThemeChromiumSkia):
34300
343012012-08-30  Tommy Widenflycht  <tommyw@google.com>
34302
34303        MediaStream API: Introduce MediaConstraints
34304        https://bugs.webkit.org/show_bug.cgi?id=95198
34305
34306        Reviewed by Adam Barth.
34307
34308        This introduces MediaConstraints together with relevant infrastructure, a chromium mock and LayoutTests.
34309
34310        Patch covered by expanded existing tests.
34311
34312        * CMakeLists.txt:
34313        * GNUmakefile.list.am:
34314        * Modules/mediastream/MediaConstraintsImpl.cpp: Added.
34315        (WebCore):
34316        (WebCore::MediaConstraintsImpl::create):
34317        (WebCore::MediaConstraintsImpl::initialize):
34318        (WebCore::MediaConstraintsImpl::~MediaConstraintsImpl):
34319        (WebCore::MediaConstraintsImpl::getMandatoryConstraintNames):
34320        (WebCore::MediaConstraintsImpl::getOptionalConstraintNames):
34321        (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
34322        (WebCore::MediaConstraintsImpl::getOptionalConstraintValue):
34323        * Modules/mediastream/MediaConstraintsImpl.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
34324        (WebCore):
34325        (MediaConstraintsImpl):
34326        (WebCore::MediaConstraintsImpl::MediaConstraintsImpl):
34327        * Modules/mediastream/RTCPeerConnection.cpp:
34328        (WebCore::RTCPeerConnection::create):
34329        (WebCore::RTCPeerConnection::RTCPeerConnection):
34330        * Modules/mediastream/RTCPeerConnection.h:
34331        (WebCore):
34332        (RTCPeerConnection):
34333        * WebCore.gypi:
34334        * bindings/js/Dictionary.cpp:
34335        (WebCore::Dictionary::getOwnPropertyNames):
34336        (WebCore):
34337        * bindings/js/Dictionary.h:
34338        (Dictionary):
34339        * bindings/v8/Dictionary.cpp:
34340        (WebCore::Dictionary::getOwnPropertyNames):
34341        (WebCore):
34342        * bindings/v8/Dictionary.h:
34343        (Dictionary):
34344        * platform/chromium/support/WebMediaConstraints.cpp: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.cpp.
34345        (WebKit):
34346        (WebKit::WebMediaConstraints::WebMediaConstraints):
34347        (WebKit::WebMediaConstraints::assign):
34348        (WebKit::WebMediaConstraints::reset):
34349        (WebKit::WebMediaConstraints::isNull):
34350        (WebKit::WebMediaConstraints::getMandatoryConstraintNames):
34351        (WebKit::WebMediaConstraints::getOptionalConstraintNames):
34352        (WebKit::WebMediaConstraints::getMandatoryConstraintValue):
34353        (WebKit::WebMediaConstraints::getOptionalConstraintValue):
34354        * platform/mediastream/MediaConstraints.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
34355        (WebCore):
34356        (MediaConstraints):
34357        (WebCore::MediaConstraints::~MediaConstraints):
34358        (WebCore::MediaConstraints::MediaConstraints):
34359        * platform/mediastream/RTCPeerConnectionHandler.cpp:
34360        (RTCPeerConnectionHandlerDummy):
34361        (WebCore::RTCPeerConnectionHandlerDummy::initialize):
34362        * platform/mediastream/RTCPeerConnectionHandler.h:
34363        (WebCore):
34364        (RTCPeerConnectionHandler):
34365        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
34366        (WebCore::RTCPeerConnectionHandlerChromium::initialize):
34367        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
34368        (RTCPeerConnectionHandlerChromium):
34369
343702012-08-24  Robert Hogan  <robert@webkit.org>
34371
34372        CSS 2.1 failure: margin-collapse-clear-012 fails
34373        https://bugs.webkit.org/show_bug.cgi?id=80394
34374
34375        Reviewed by David Hyatt.
34376
34377        CSS2.1 states: "If the top and bottom margins of an element with clearance are adjoining, its margins collapse with 
34378        the adjoining margins of following siblings but that resulting margin does not collapse with the bottom margin of the parent block."
34379        This is a change in the spec since http://trac.webkit.org/changeset/47678, so prevent the margins of collapsed blocks from collapsing
34380        with parent margins.
34381
34382        Also, in the case of self-collapsing blocks adjust the clearance so that it is equal to [height of float to clear] - margin-top of the 
34383        self-collapsing block. (See the 'Explanation' section near the end of http://www.w3.org/TR/CSS21/visuren.html#clearance). This allows
34384        the correct value of any margins collapsed with subsequent siblings to contribute to the height of the parent. For example if a block
34385        with margin-top of 40px has to clear a float of 100px, the clearance is now 60px so set that as the height of the parent. If a subsequent 
34386        sibling has a collapsed margin value of 140px (e.g. from a margin-top of 80px and a margin-bottom of 140px) then the height of the parent
34387        becomes 200px by adding on that collapsed margin. 
34388
34389        Tests: css2.1/20110323/margin-collapse-clear-012.htm
34390               css2.1/20110323/margin-collapse-clear-013.htm
34391               css2.1/20110323/margin-collapse-027.htm
34392               fast/css/margin-collapse-013-reduction.html
34393               fast/css/margin-collapse-top-margin-clearance.html
34394               fast/css/margin-collapse-top-margin-clearance-with-sibling.html
34395
34396        * rendering/RenderBlock.cpp:
34397        (WebCore::RenderBlock::clearFloatsIfNeeded):
34398        (WebCore::RenderBlock::handleAfterSideOfBlock): Without this margin-collapse/block-inside-inline/025.html adds in the margin to
34399          an anonymous block containing a block child. FF does this, Opera does not. The spec is not crystal-clear but Opera's behaviour
34400          seems correct - it's totally unintuitive to think the margins of an anonymous block and its block-flow child should be considered adjoining.
34401          Maybe this is a FIXME pending clarification in the spec?
34402        * rendering/RenderBlock.h:
34403        (WebCore::RenderBlock::MarginInfo::setCanCollapseMarginAfterWithChildren):
34404
344052012-08-30  Rik Cabanier  <cabanier@adobe.com>
34406
34407        Add support for blendmode to webkit rendering engine
34408        https://bugs.webkit.org/show_bug.cgi?id=95258
34409
34410        Reviewed by Simon Fraser.
34411
34412        This code adds support for blendmodes to the WebCore engine. The CSS parser already
34413        supported this keyword but didn't pass it along. Support for rendering blending will
34414        be provided in subsequent patches
34415
34416        Test: css3/compositing/should-have-compositing-layer.html
34417
34418        * css/StyleBuilder.cpp:
34419        (WebCore::StyleBuilder::StyleBuilder):
34420        * css/StyleResolver.cpp:
34421        (WebCore::StyleResolver::collectMatchingRulesForList):
34422        * rendering/RenderBox.h:
34423        * rendering/RenderBoxModelObject.h:
34424        (RenderBoxModelObject):
34425        (WebCore::RenderBoxModelObject::requiresLayer):
34426        * rendering/RenderInline.h:
34427        (WebCore::RenderInline::requiresLayer):
34428        * rendering/RenderLayer.cpp:
34429        (WebCore::RenderLayer::RenderLayer):
34430        (WebCore):
34431        (WebCore::RenderLayer::updateBlendMode):
34432        (WebCore::RenderLayer::ensureBacking):
34433        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
34434        (WebCore::RenderLayer::styleChanged):
34435        * rendering/RenderLayer.h:
34436        (RenderLayer):
34437        (WebCore::RenderLayer::hasBlendMode):
34438        * rendering/RenderLayerCompositor.cpp:
34439        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
34440        (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
34441        (WebCore::RenderLayerCompositor::reasonForCompositing):
34442        (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
34443        (WebCore::RenderLayerCompositor::requiresCompositingForBlending):
34444        (WebCore):
34445        * rendering/RenderLayerCompositor.h:
34446        (RenderLayerCompositor):
34447        * rendering/RenderObject.h:
34448        (RenderObject):
34449        (WebCore::RenderObject::hasBlendMode):
34450        (WebCore::RenderObject::createsGroup):
34451        * rendering/RenderTableRow.h:
34452        * rendering/style/RenderStyle.h:
34453
344542012-08-30  Tony Chang  <tony@chromium.org>
34455
34456        Make RenderBox::computeInlineDirectionMargins const
34457        https://bugs.webkit.org/show_bug.cgi?id=95255
34458
34459        Reviewed by Ojan Vafai.
34460
34461        This is part of making computeLogical{Height,Width} return computed values rather than
34462        mutating the RenderBox directly. This makes a submethod const.
34463
34464        This change is just a refactor, but I've added some tests to cover code that wasn't
34465        previously covered by layout tests.
34466
34467        Tests: fast/block/margins-perpendicular-containing-block.html
34468               fast/table/margins-flipped-text-direction.html
34469               fast/table/margins-perpendicular-containing-block.html
34470
34471        * rendering/RenderBox.cpp:
34472        (WebCore::RenderBox::computeLogicalWidthInRegion): Handle flipped text direction manually.
34473        (WebCore::RenderBox::computeInlineDirectionMargins): Make const with out parameters.
34474        No longer need to call setMargin{Start,End}ForChild.
34475        (WebCore::shouldFlipBeforeAfterMargins): Helper function to figure out how to map a logical
34476        writing mode direction to another logical writing mode direction.
34477        (WebCore::RenderBox::computeLogicalHeight): Use const method. This also makes it more
34478        obvious that when computing the height, we only modify the before/after margins.
34479        * rendering/RenderBox.h:
34480        (RenderBox): Make computeInlineDirectionMargins const with out parameters.
34481        * rendering/RenderTable.cpp:
34482        (WebCore::RenderTable::computeLogicalWidth): Same as RenderBox::comptueLogicalWidthInregion.
34483
344842012-08-30  Dirk Schulze  <krit@webkit.org>
34485
34486        Refactor WrapShape classes to BasicShape
34487        https://bugs.webkit.org/show_bug.cgi?id=95461
34488
34489        Reviewed by Rob Buis.
34490
34491        This is a follow up patch of bug 95411. While the previous patch
34492        just renamed the files, this patch renames the classes, enumerations
34493        and functions.
34494
34495        Just refactoring of internal names. No new tests.
34496
34497        * css/BasicShapeFunctions.cpp:
34498        (WebCore::valueForBasicShape):
34499        (WebCore::basicShapeForValue):
34500        * css/BasicShapeFunctions.h:
34501        (WebCore):
34502        * css/CSSBasicShapes.cpp:
34503        (WebCore::CSSBasicShapeRectangle::cssText):
34504        (WebCore::CSSBasicShapeCircle::cssText):
34505        (WebCore::CSSBasicShapeEllipse::cssText):
34506        (WebCore::CSSBasicShapePolygon::cssText):
34507        * css/CSSBasicShapes.h:
34508        (WebCore::CSSBasicShape::~CSSBasicShape):
34509        (WebCore::CSSBasicShape::CSSBasicShape):
34510        (WebCore::CSSBasicShapeRectangle::create):
34511        (WebCore::CSSBasicShapeRectangle::type):
34512        (WebCore::CSSBasicShapeRectangle::CSSBasicShapeRectangle):
34513        (WebCore::CSSBasicShapeCircle::create):
34514        (WebCore::CSSBasicShapeCircle::type):
34515        (WebCore::CSSBasicShapeCircle::CSSBasicShapeCircle):
34516        (WebCore::CSSBasicShapeEllipse::create):
34517        (WebCore::CSSBasicShapeEllipse::type):
34518        (WebCore::CSSBasicShapeEllipse::CSSBasicShapeEllipse):
34519        (WebCore::CSSBasicShapePolygon::create):
34520        (WebCore::CSSBasicShapePolygon::type):
34521        (WebCore::CSSBasicShapePolygon::CSSBasicShapePolygon):
34522        * css/CSSComputedStyleDeclaration.cpp:
34523        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
34524        * css/CSSParser.cpp:
34525        (WebCore::CSSParser::parseValue):
34526        (WebCore::CSSParser::parseBasicShapeRectangle):
34527        (WebCore::CSSParser::parseBasicShapeCircle):
34528        (WebCore::CSSParser::parseBasicShapeEllipse):
34529        (WebCore::CSSParser::parseBasicShapePolygon):
34530        (WebCore::CSSParser::parseBasicShape):
34531        * css/CSSParser.h:
34532        (WebCore):
34533        * css/CSSPrimitiveValue.cpp:
34534        (WebCore::CSSPrimitiveValue::init):
34535        * css/CSSPrimitiveValue.h:
34536        (WebCore):
34537        (WebCore::CSSPrimitiveValue::getShapeValue):
34538        (CSSPrimitiveValue):
34539        * css/StyleBuilder.cpp:
34540        (WebCore):
34541        (WebCore::ApplyPropertyWrapShape::setValue):
34542        (WebCore::ApplyPropertyWrapShape::applyValue):
34543        (WebCore::ApplyPropertyWrapShape::createHandler):
34544        * rendering/RenderBlock.cpp:
34545        (WebCore::RenderBlock::updateWrapShapeInfoAfterStyleChange):
34546        * rendering/RenderBlock.h:
34547        (RenderBlock):
34548        * rendering/WrapShapeInfo.cpp:
34549        (WebCore::WrapShapeInfo::isWrapShapeInfoEnabledForRenderBlock):
34550        (WebCore::WrapShapeInfo::computeShapeSize):
34551        * rendering/style/BasicShapes.cpp:
34552        (WebCore::BasicShape::destroy):
34553        * rendering/style/BasicShapes.h:
34554        (WebCore::BasicShape::BasicShape):
34555        (WebCore::BasicShapeRectangle::create):
34556        (WebCore::BasicShapeRectangle::BasicShapeRectangle):
34557        (WebCore::BasicShapeCircle::create):
34558        (WebCore::BasicShapeCircle::BasicShapeCircle):
34559        (WebCore::BasicShapeEllipse::create):
34560        (WebCore::BasicShapeEllipse::BasicShapeEllipse):
34561        (WebCore::BasicShapePolygon::create):
34562        (WebCore::BasicShapePolygon::BasicShapePolygon):
34563        * rendering/style/RenderStyle.h:
34564        * rendering/style/StyleRareNonInheritedData.h:
34565        (StyleRareNonInheritedData):
34566
345672012-08-30  Aaron Colwell  <acolwell@chromium.org>
34568
34569        Fix a crash in SourceBufferList.remove().
34570        https://bugs.webkit.org/show_bug.cgi?id=94950
34571
34572        Reviewed by Eric Carlson.
34573
34574        Move SourceBuffer::clear() call before the removal of the SourceBuffer from
34575        SourceBufferList::m_list to avoid a use after free if m_list holds the last
34576        reference.
34577
34578        Test: http/tests/media/media-source/video-media-source-sourcebufferlist-crash.html
34579
34580        * Modules/mediasource/SourceBufferList.cpp:
34581        (WebCore::SourceBufferList::remove):
34582
345832012-08-30  Otto Derek Cheung  <otcheung@rim.com>
34584
34585        [BlackBerry] Modifying how IP domains are handled in Cookies
34586        https://bugs.webkit.org/show_bug.cgi?id=95381
34587
34588        Reviewed by Rob Buis.
34589        Internally reviewed by Joe Mason.
34590
34591        Current implementation handles IP addresses like normal domains.
34592        This makes invalid cross domain cookies possibe by setting cookie
34593        domains to a suffix of the targeted IP. (ex. hackers on 11.121.61.97
34594        can set cookies to 61.97, so they show up on the targeted website of
34595        10.120.61.97)
34596
34597        New Implementation is to detect IP addresses and treat them without
34598        exploding them with the delimiter ".". That way, IP addresses will
34599        be stored as a whole and other IPs won't have access to it.
34600
34601        PR 130051
34602
34603        Manually tested by accessing a webpage via IP (hosted through
34604        LAMP - ex:10.121.61.97) and tried to set cookies with domains that
34605        are a suffix to the ip address (ex: .97, 121.61.97).
34606        Also tried to set cookies to other ip addresses that "domain matches"
34607        the IP address (ex. 11.121.61.97). Verified that they all failed.
34608
34609        Tested using the cookies test page: http://browser.swlab.rim.net/test/cookies
34610
34611        * platform/blackberry/CookieManager.cpp:
34612        (WebCore::CookieManager::getRawCookies):
34613        (WebCore::CookieManager::checkAndTreatCookie):
34614        (WebCore::CookieManager::findOrCreateCookieMap):
34615        * platform/blackberry/CookieManager.h:
34616        * platform/blackberry/CookieParser.cpp:
34617        (WebCore::CookieParser::CookieParser):
34618        (WebCore::CookieParser::parseOneCookie):
34619        * platform/blackberry/CookieParser.h:
34620        (CookieParser):
34621        * platform/blackberry/ParsedCookie.cpp:
34622        (WebCore::ParsedCookie::ParsedCookie):
34623        * platform/blackberry/ParsedCookie.h:
34624        (WebCore::ParsedCookie::setDomain):
34625        (WebCore::ParsedCookie::domainIsIPAddress):
34626        (ParsedCookie):
34627
346282012-08-30  Ilya Tikhonovsky  <loislo@chromium.org>
34629
34630        Web Inspector: [regression] ui: heap profiler: splitter between containment and retainment views has white background.
34631        https://bugs.webkit.org/show_bug.cgi?id=95460
34632
34633        Reviewed by Yury Semikhatsky.
34634
34635        it was regressed at r122332.
34636
34637        * inspector/front-end/heapProfiler.css:
34638        (.heap-snapshot-view .retainers-view-header):
34639
346402012-08-30  Sheriff Bot  <webkit.review.bot@gmail.com>
34641
34642        Unreviewed, rolling out r127131.
34643        http://trac.webkit.org/changeset/127131
34644        https://bugs.webkit.org/show_bug.cgi?id=95463
34645
34646        It makes the fast/regions/ test crash on Chromium (Requested
34647        by jchaffraix on #webkit).
34648
34649        * css/StyleResolver.cpp:
34650        (WebCore::StyleResolver::collectMatchingRulesForList):
34651        * rendering/InlineBox.cpp:
34652        * rendering/InlineBox.h:
34653        (WebCore):
34654        (InlineBox):
34655        * rendering/InlineFlowBox.cpp:
34656        (WebCore::InlineFlowBox::addToLine):
34657        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
34658        * rendering/RenderRegion.h:
34659        (RenderRegion):
34660
346612012-08-30  Alexander Pavlov  <apavlov@chromium.org>
34662
34663        Web Inspector: Some urls in CSS stylesheets cause errors when generating Computed Styles HTML
34664        https://bugs.webkit.org/show_bug.cgi?id=95427
34665
34666        Reviewed by Vsevolod Vlasov.
34667
34668        Pass the parent StylesSidebarPane into ComputedStylePropertiesSection to avoid referencing an undefined field.
34669        Avoid duplicating the parent pane by externally setting the |data| field on style property sections.
34670
34671        * inspector/front-end/StylesSidebarPane.js:
34672        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
34673        (WebInspector.StylesSidebarPane.prototype.addBlankSection):
34674        (WebInspector.StylePropertiesSection.prototype.get pane):
34675        (WebInspector.ComputedStylePropertiesSection):
34676        (WebInspector.ComputedStylePropertiesSection.prototype.get pane):
34677        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
34678        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
34679
346802012-08-30  Keishi Hattori  <keishi@webkit.org>
34681
34682        Tick marks don't match thumb when applying padding or border to input type=range
34683        https://bugs.webkit.org/show_bug.cgi?id=93791
34684
34685        Reviewed by Kent Tamura.
34686
34687        Tick marks don't match thumb when styling input type=range. This change
34688        calculate tick mark positions from track element size. Bug 94915 handles
34689        drawing the track inside the content area.
34690
34691        Tests: fast/forms/datalist/input-appearance-range-with-padding-with-datalist.html
34692               fast/forms/datalist/input-appearance-range-with-transform.html
34693
34694        * html/HTMLInputElement.cpp:
34695        (WebCore::HTMLInputElement::sliderTrackElement):
34696        (WebCore):
34697        * html/HTMLInputElement.h:
34698        (HTMLInputElement):
34699        * html/InputType.h:
34700        (WebCore::InputType::sliderTrackElement):
34701        * html/RangeInputType.cpp:
34702        (WebCore::RangeInputType::sliderTrackElement):
34703        (WebCore):
34704        * html/RangeInputType.h:
34705        (RangeInputType):
34706        * rendering/RenderTheme.cpp:
34707        (WebCore::RenderTheme::paintSliderTicks): rect's position is relative to
34708        the transformed ancestor element. sliderBounds is absolute. We use them
34709        to calculate the track element position relative to the transformed
34710        ancestor element.
34711
347122012-08-30  Julien Chaffraix  <jchaffraix@webkit.org>
34713
34714        Remove the now-unneeded invalidations in RenderTable::removeCaption
34715        https://bugs.webkit.org/show_bug.cgi?id=94889
34716
34717        Reviewed by Abhishek Arya.
34718
34719        Following bug 94842 and 95090, the invalidation code was pushed down to
34720        RenderTableCaption. This made apparent that we did some invalidations that
34721        were not needed.
34722
34723        Refactoring covered by existing tests.
34724
34725        * rendering/RenderTable.cpp:
34726        (WebCore::RenderTable::removeCaption):
34727        Removed setNeedsRecalcStyle() as it's unneeded now. It was probably needed back when
34728        we didn't support multiple captions (see bug 58249) but the need was never documented
34729        so you could wonder if it was really needed in the first place.
34730
347312012-08-30  Ilya Tikhonovsky  <loislo@chromium.org>
34732
34733        Web Inspector: [regression] ui: selectors in heap profiler view have no arrows at the right side of the text.
34734        https://bugs.webkit.org/show_bug.cgi?id=95455
34735
34736        Reviewed by Yury Semikhatsky.
34737
34738        In console we use a span which wraps selectors and have necessary background.
34739
34740        * inspector/front-end/HeapSnapshotView.js:
34741        (WebInspector.HeapSnapshotView.prototype.get statusBarItems.appendArrowImage):
34742        (WebInspector.HeapSnapshotView.prototype.get statusBarItems):
34743
347442012-08-30  Andrew Lo  <anlo@rim.com>
34745
34746        [BlackBerry] LayerTiler needs to respect new setting for prefill rect.
34747        https://bugs.webkit.org/show_bug.cgi?id=95446
34748
34749        Reviewed by Rob Buis.
34750
34751        Internally reviewed by Arvid Nilsson.
34752        Internal PR181637
34753        Use new prefill rectangle setting to determine which tiles should be
34754        prefilled in LayerTiler.
34755
34756        * platform/graphics/blackberry/LayerTiler.cpp:
34757        (WebCore::LayerTiler::shouldPrefillTile):
34758
347592012-08-29  Dirk Schulze  <krit@webkit.org>
34760
34761        Refactor WrapShape to Shape/BasicShape
34762        https://bugs.webkit.org/show_bug.cgi?id=95411
34763
34764        Reviewed by Andreas Kling.
34765
34766        The wrap shapes are currently specified by CSS3 Exclusions but are useful for other
34767        CSS related proposals like CSS Masking as well. This is the first patch on a chain
34768        of patches to refactor WrapShape to BasicShape. With this patch all relevant files
34769        get renamend and the build systems updated. The classes will be renamend in a second
34770        step.
34771
34772        Just renaming of files. No new tests.
34773
34774        * CMakeLists.txt:
34775        * GNUmakefile.list.am:
34776        * Target.pri:
34777        * WebCore.gypi:
34778        * WebCore.vcproj/WebCore.vcproj:
34779        * WebCore.xcodeproj/project.pbxproj:
34780        * css/BasicShapeFunctions.cpp: Renamed from Source/WebCore/css/WrapShapeFunctions.cpp.
34781        (WebCore):
34782        (WebCore::valueForWrapShape):
34783        (WebCore::convertToLength):
34784        (WebCore::wrapShapeForValue):
34785        * css/BasicShapeFunctions.h: Renamed from Source/WebCore/css/WrapShapeFunctions.h.
34786        (WebCore):
34787        * css/CSSAllInOne.cpp:
34788        * css/CSSBasicShapes.cpp: Renamed from Source/WebCore/css/CSSWrapShapes.cpp.
34789        (WebCore):
34790        (WebCore::CSSWrapShapeRectangle::cssText):
34791        (WebCore::CSSWrapShapeCircle::cssText):
34792        (WebCore::CSSWrapShapeEllipse::cssText):
34793        (WebCore::CSSWrapShapePolygon::cssText):
34794        * css/CSSBasicShapes.h: Renamed from Source/WebCore/css/CSSWrapShapes.h.
34795        (WebCore):
34796        (CSSWrapShape):
34797        (WebCore::CSSWrapShape::~CSSWrapShape):
34798        (WebCore::CSSWrapShape::CSSWrapShape):
34799        (CSSWrapShapeRectangle):
34800        (WebCore::CSSWrapShapeRectangle::create):
34801        (WebCore::CSSWrapShapeRectangle::x):
34802        (WebCore::CSSWrapShapeRectangle::y):
34803        (WebCore::CSSWrapShapeRectangle::width):
34804        (WebCore::CSSWrapShapeRectangle::height):
34805        (WebCore::CSSWrapShapeRectangle::radiusX):
34806        (WebCore::CSSWrapShapeRectangle::radiusY):
34807        (WebCore::CSSWrapShapeRectangle::setX):
34808        (WebCore::CSSWrapShapeRectangle::setY):
34809        (WebCore::CSSWrapShapeRectangle::setWidth):
34810        (WebCore::CSSWrapShapeRectangle::setHeight):
34811        (WebCore::CSSWrapShapeRectangle::setRadiusX):
34812        (WebCore::CSSWrapShapeRectangle::setRadiusY):
34813        (WebCore::CSSWrapShapeRectangle::type):
34814        (WebCore::CSSWrapShapeRectangle::CSSWrapShapeRectangle):
34815        (CSSWrapShapeCircle):
34816        (WebCore::CSSWrapShapeCircle::create):
34817        (WebCore::CSSWrapShapeCircle::centerX):
34818        (WebCore::CSSWrapShapeCircle::centerY):
34819        (WebCore::CSSWrapShapeCircle::radius):
34820        (WebCore::CSSWrapShapeCircle::setCenterX):
34821        (WebCore::CSSWrapShapeCircle::setCenterY):
34822        (WebCore::CSSWrapShapeCircle::setRadius):
34823        (WebCore::CSSWrapShapeCircle::type):
34824        (WebCore::CSSWrapShapeCircle::CSSWrapShapeCircle):
34825        (CSSWrapShapeEllipse):
34826        (WebCore::CSSWrapShapeEllipse::create):
34827        (WebCore::CSSWrapShapeEllipse::centerX):
34828        (WebCore::CSSWrapShapeEllipse::centerY):
34829        (WebCore::CSSWrapShapeEllipse::radiusX):
34830        (WebCore::CSSWrapShapeEllipse::radiusY):
34831        (WebCore::CSSWrapShapeEllipse::setCenterX):
34832        (WebCore::CSSWrapShapeEllipse::setCenterY):
34833        (WebCore::CSSWrapShapeEllipse::setRadiusX):
34834        (WebCore::CSSWrapShapeEllipse::setRadiusY):
34835        (WebCore::CSSWrapShapeEllipse::type):
34836        (WebCore::CSSWrapShapeEllipse::CSSWrapShapeEllipse):
34837        (CSSWrapShapePolygon):
34838        (WebCore::CSSWrapShapePolygon::create):
34839        (WebCore::CSSWrapShapePolygon::appendPoint):
34840        (WebCore::CSSWrapShapePolygon::getXAt):
34841        (WebCore::CSSWrapShapePolygon::getYAt):
34842        (WebCore::CSSWrapShapePolygon::values):
34843        (WebCore::CSSWrapShapePolygon::setWindRule):
34844        (WebCore::CSSWrapShapePolygon::windRule):
34845        (WebCore::CSSWrapShapePolygon::type):
34846        (WebCore::CSSWrapShapePolygon::CSSWrapShapePolygon):
34847        * css/CSSComputedStyleDeclaration.cpp:
34848        * css/CSSParser.cpp:
34849        * css/CSSPrimitiveValue.cpp:
34850        * css/StyleBuilder.cpp:
34851        * rendering/style/BasicShapes.cpp: Renamed from Source/WebCore/rendering/style/WrapShapes.cpp.
34852        (WebCore):
34853        (WebCore::WrapShape::destroy):
34854        * rendering/style/BasicShapes.h: Renamed from Source/WebCore/rendering/style/WrapShapes.h.
34855        (WebCore):
34856        (WrapShape):
34857        (WebCore::WrapShape::deref):
34858        (WebCore::WrapShape::type):
34859        (WebCore::WrapShape::WrapShape):
34860        (WrapShapeRectangle):
34861        (WebCore::WrapShapeRectangle::create):
34862        (WebCore::WrapShapeRectangle::x):
34863        (WebCore::WrapShapeRectangle::y):
34864        (WebCore::WrapShapeRectangle::width):
34865        (WebCore::WrapShapeRectangle::height):
34866        (WebCore::WrapShapeRectangle::cornerRadiusX):
34867        (WebCore::WrapShapeRectangle::cornerRadiusY):
34868        (WebCore::WrapShapeRectangle::setX):
34869        (WebCore::WrapShapeRectangle::setY):
34870        (WebCore::WrapShapeRectangle::setWidth):
34871        (WebCore::WrapShapeRectangle::setHeight):
34872        (WebCore::WrapShapeRectangle::setCornerRadiusX):
34873        (WebCore::WrapShapeRectangle::setCornerRadiusY):
34874        (WebCore::WrapShapeRectangle::WrapShapeRectangle):
34875        (WrapShapeCircle):
34876        (WebCore::WrapShapeCircle::create):
34877        (WebCore::WrapShapeCircle::centerX):
34878        (WebCore::WrapShapeCircle::centerY):
34879        (WebCore::WrapShapeCircle::radius):
34880        (WebCore::WrapShapeCircle::setCenterX):
34881        (WebCore::WrapShapeCircle::setCenterY):
34882        (WebCore::WrapShapeCircle::setRadius):
34883        (WebCore::WrapShapeCircle::WrapShapeCircle):
34884        (WrapShapeEllipse):
34885        (WebCore::WrapShapeEllipse::create):
34886        (WebCore::WrapShapeEllipse::centerX):
34887        (WebCore::WrapShapeEllipse::centerY):
34888        (WebCore::WrapShapeEllipse::radiusX):
34889        (WebCore::WrapShapeEllipse::radiusY):
34890        (WebCore::WrapShapeEllipse::setCenterX):
34891        (WebCore::WrapShapeEllipse::setCenterY):
34892        (WebCore::WrapShapeEllipse::setRadiusX):
34893        (WebCore::WrapShapeEllipse::setRadiusY):
34894        (WebCore::WrapShapeEllipse::WrapShapeEllipse):
34895        (WrapShapePolygon):
34896        (WebCore::WrapShapePolygon::create):
34897        (WebCore::WrapShapePolygon::windRule):
34898        (WebCore::WrapShapePolygon::values):
34899        (WebCore::WrapShapePolygon::getXAt):
34900        (WebCore::WrapShapePolygon::getYAt):
34901        (WebCore::WrapShapePolygon::setWindRule):
34902        (WebCore::WrapShapePolygon::appendPoint):
34903        (WebCore::WrapShapePolygon::WrapShapePolygon):
34904        * rendering/style/StyleRareNonInheritedData.h:
34905
349062012-08-30  Andrei Onea  <onea@adobe.com>
34907
34908        [CSSRegions]Add support for text-shadow in region styling
34909        https://bugs.webkit.org/show_bug.cgi?id=94472
34910
34911        Reviewed by David Hyatt.
34912
34913        The CSSRegions spec allows region styling to be applied on the text-shadow property
34914        as well. We need to also add this in WebKit.
34915
34916        Test: fast/regions/region-style-text-shadow.html
34917
34918        * css/StyleResolver.cpp:
34919        (WebCore::StyleResolver::collectMatchingRulesForList):
34920        Make sure we actually collect text-shadow property from parser in an @region rule.
34921        * rendering/InlineBox.cpp:
34922        (WebCore::InlineBox::styleInRegion):
34923        (WebCore):
34924        (WebCore::InlineBox::regionDuringLayout):
34925        * rendering/InlineBox.h:
34926        (WebCore):
34927        (InlineBox):
34928        * rendering/InlineFlowBox.cpp:
34929        (WebCore::InlineFlowBox::addToLine):
34930        Take into account region styling, so that "knownToHaveNoOverflow" is computed
34931        properly.
34932        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
34933        Take into account region styling, so that the visual overflow rect is computed
34934        properly.
34935        * rendering/RenderRegion.h:
34936        (RenderRegion):
34937        Made computeStyleInRegion public.
34938
349392012-08-30  Andreas Kling  <kling@webkit.org>
34940
34941        Element: Share code between setAttributeNode() and other attribute setters.
34942        <http://webkit.org/b/95328>
34943
34944        Reviewed by Antti Koivisto.
34945
34946        Removed the specialized ElementAttributeData::replaceAttribute() that was only used for
34947        replacing an existing Attr node on an Element. Instead, just use Element::setAttributeInternal()
34948        like all the other attribute setters.
34949
34950        * dom/Element.cpp:
34951        (WebCore::Element::setAttributeNode):
34952        * dom/ElementAttributeData.cpp:
34953        * dom/ElementAttributeData.h:
34954        (ElementAttributeData):
34955
349562012-08-30  Xan Lopez  <xlopez@igalia.com>
34957
34958        1.9.90 drops symbols, breaking compatibility
34959        https://bugs.webkit.org/show_bug.cgi?id=93477
34960
34961        Reviewed by Martin Robinson.
34962
34963        Add a bunch of compatibility methods to the GObject DOM bindings
34964        to cope with recent renames.
34965
34966        * bindings/gobject/WebKitDOMCustom.cpp:
34967        (webkit_dom_html_element_get_class_list):
34968        (webkit_dom_element_get_webkit_region_overflow):
34969        (webkit_dom_webkit_named_flow_get_content_nodes):
34970        (webkit_dom_webkit_named_flow_get_regions_by_content_node):
34971        * bindings/gobject/WebKitDOMCustom.h:
34972
349732012-08-29  Antti Koivisto  <antti@apple.com>
34974
34975        Cache and share parsed imported stylesheets
34976        https://bugs.webkit.org/show_bug.cgi?id=95219
34977
34978        Reviewed by Andreas Kling.
34979
34980        We currently cache and share parsed data structures of stylesheets loaded with <link>. We should do
34981        the same with stylesheets loaded using @import rules as they are also fairly common.
34982        
34983        This patch adds support for caching and sharing stylesheets loaded using @import rules. Only leaf
34984        stylesheets (that don't have @import rules themselves) can be cached for now.
34985
34986        * css/CSSImportRule.cpp:
34987        (WebCore::CSSImportRule::reattachStyleSheetContents):
34988        (WebCore):
34989        * css/CSSImportRule.h:
34990        (CSSImportRule):
34991        * css/CSSStyleSheet.cpp:
34992        (WebCore::CSSStyleSheet::willMutateRules):
34993        (WebCore::CSSStyleSheet::reattachCSSOMWrappers):
34994        * css/CSSStyleSheet.h:
34995        (CSSStyleSheet):
34996        * css/StyleRuleImport.cpp:
34997        (WebCore::StyleRuleImport::setCSSStyleSheet):
34998        (WebCore::StyleRuleImport::reattachStyleSheetContents):
34999        (WebCore):
35000        * css/StyleRuleImport.h:
35001        (StyleRuleImport):
35002        * loader/cache/CachedCSSStyleSheet.cpp:
35003        (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
35004
350052012-08-30  Kangil Han  <kangil.han@samsung.com>
35006
35007        Fix compile warning when enable tiled backing store
35008        https://bugs.webkit.org/show_bug.cgi?id=95422
35009
35010        Reviewed by Kentaro Hara.
35011
35012        Fixed compile warning messages when enabled tiled backing store.
35013        In case of TiledBackingStore, it was first thought about static_cast<unsigned>.
35014        However, if minus value is assigned to the comparison, it would be critical.
35015        So, it was modified as using int value in tiled coordinate calculation.
35016
35017        * page/Frame.cpp:
35018        (WebCore::Frame::tiledBackingStorePaintEnd): comparison between signed and unsigned integer expressions [-Wsign-compare]
35019        * platform/graphics/TiledBackingStore.cpp:
35020        (WebCore::TiledBackingStore::invalidate): comparison between signed and unsigned integer expressions [-Wsign-compare]
35021        (WebCore::TiledBackingStore::paint): comparison between signed and unsigned integer expressions [-Wsign-compare]
35022        (WebCore::TiledBackingStore::coverageRatio): comparison between signed and unsigned integer expressions [-Wsign-compare]
35023        (WebCore::TiledBackingStore::createTiles): comparison between signed and unsigned integer expressions [-Wsign-compare]
35024        * platform/graphics/cairo/GLContext.cpp:
35025        (WebCore::GLContext::createOffscreenContext): no return statement in function returning non-void [-Wreturn-type]
35026
350272012-08-30  Anton Muhin  <antonm@chromium.org>
35028
35029        Heap-use-after-free in WebCore::ElementV8Internal::onclickAttrGetter
35030        https://bugs.webkit.org/show_bug.cgi?id=94440
35031
35032        Reviewed by Adam Barth.
35033
35034        The problem appears due to onerror callback which resets onclick attribute.
35035        As a part of changing onclick attribute value, previous event listener
35036        gets deref which led to its destruction and hence use-after-free.
35037        Refing it in ::getListenerObject helps to prevent this unfortunate scenario.
35038
35039        Test: fast/events/set-attribute-listener-window-onerror-crash.html
35040
35041        * bindings/v8/V8AbstractEventListener.h:
35042        (WebCore::V8AbstractEventListener::getListenerObject):
35043
350442012-08-30  Vsevolod Vlasov  <vsevik@chromium.org>
35045
35046        Web Inspector: [Sources] Invisible right sidebar issue
35047        https://bugs.webkit.org/show_bug.cgi?id=94924
35048
35049        Reviewed by Pavel Feldman.
35050
35051        Debugger sidebar resizer is now hidden when sidebar is hidden.
35052        Debugger sidebar show button is moved to the upper right corner in this case.
35053
35054        * inspector/front-end/ScriptsPanel.js:
35055        (WebInspector.ScriptsPanel.prototype._showDebuggerSidebar):
35056        (WebInspector.ScriptsPanel.prototype.set _hideDebuggerSidebar):
35057        * inspector/front-end/scriptsPanel.css:
35058        (button.status-bar-item.scripts-debugger-show-hide-button):
35059        (button.status-bar-item.scripts-debugger-show-hide-button:active):
35060        (button.status-bar-item.scripts-debugger-show-hide-button.toggled-shown):
35061        (button.status-bar-item.scripts-debugger-show-hide-button.toggled-shown:active):
35062        (button.status-bar-item.scripts-debugger-show-hide-button.toggled-hidden):
35063        (button.status-bar-item.scripts-debugger-show-hide-button.toggled-hidden:active):
35064
350652012-08-30  Ilya Tikhonovsky  <loislo@chromium.org>
35066
35067        Web Inspector: move GeneratedImage members into its own cpp file
35068        https://bugs.webkit.org/show_bug.cgi?id=95351
35069
35070        Reviewed by Yury Semikhatsky.
35071
35072        It is trivial patch. The methods of GeneratedImage were in GeneratorGeneratedImage.cpp file.
35073        It was Ok when it was a single method.
35074
35075        * CMakeLists.txt:
35076        * GNUmakefile.list.am:
35077        * Target.pri:
35078        * WebCore.gypi:
35079        * WebCore.vcproj/WebCore.vcproj:
35080        * WebCore.xcodeproj/project.pbxproj:
35081        * platform/graphics/GeneratedImage.cpp: Added.
35082        (WebCore):
35083        (WebCore::GeneratedImage::computeIntrinsicDimensions):
35084        (WebCore::GeneratedImage::reportMemoryUsage):
35085        * platform/graphics/GeneratorGeneratedImage.cpp:
35086
350872012-08-30  Patrick Gansterer  <paroga@webkit.org>
35088
35089        Build fix for WinCE after r126974.
35090
35091        * platform/graphics/BitmapImage.cpp:
35092        (WebCore::BitmapImage::reportMemoryUsage):
35093
350942012-08-30  Adam Barth  <abarth@webkit.org>
35095
35096        Replace uses of WTF::String::operator+= with StringBuilder
35097        https://bugs.webkit.org/show_bug.cgi?id=95416
35098
35099        Reviewed by Benjamin Poulain.
35100
35101        WTF::String::operator+= appears to be a sandtrap for contributors. The
35102        vast majority of the callers are using very inefficient string
35103        patterns. This patch removes the use of operator+= in favor of
35104        StringBuilder. Eventually, I'd like to remove operator+= so that more
35105        code doesn't fall into this trap.
35106
35107        * Modules/websockets/WebSocketHandshake.cpp:
35108        (WebCore::resourceName):
35109        * html/HTMLAnchorElement.cpp:
35110        (WebCore::appendServerMapMousePosition):
35111        (WebCore::HTMLAnchorElement::handleClick):
35112        * html/canvas/CanvasRenderingContext2D.cpp:
35113        (WebCore::CanvasRenderingContext2D::font):
35114        * platform/network/ResourceRequestBase.cpp:
35115        (WebCore::ResourceRequestBase::addHTTPHeaderField):
35116        * rendering/RenderLayerBacking.cpp:
35117        (WebCore::RenderLayerBacking::nameForLayer):
35118        * rendering/RenderTreeAsText.cpp:
35119        (WebCore::RenderTreeAsText::writeRenderObject):
35120        (WebCore::nodePosition):
35121        * rendering/style/RenderStyle.cpp:
35122        (WebCore::RenderStyle::setContent):
35123
351242012-08-30  Shinya Kawanaka  <shinyak@chromium.org>
35125
35126        AuthorShadowDOM support for textarea element.
35127        https://bugs.webkit.org/show_bug.cgi?id=91485
35128
35129        Reviewed by Dimitri Glazkov.
35130
35131        We add AuthorShadowDOM support for textarea element.
35132
35133        Unlike other replaced elements (e.g. meter, progress, img), we do not need to add
35134        extra RenderBlock when we add AuthorShadowDOM. However, since inner element will not have
35135        renderer when AuthorShadowDOM does not have any shadow insertion point, we have to check
35136        the existence of the renderer of inner element.
35137
35138        Tests: fast/dom/shadow/shadowdom-for-textarea-with-attribute.html
35139               fast/dom/shadow/shadowdom-for-textarea-with-placeholder.html
35140               fast/dom/shadow/shadowdom-for-textarea-with-style.html
35141               fast/dom/shadow/shadowdom-for-textarea.html
35142
35143        * dom/ShadowRoot.cpp:
35144        (WebCore::allowsAuthorShadowRoot): Needs allow textarea to have AuthorShadowRoot.
35145        * rendering/RenderTextControl.cpp: When AuthorShadowDOM does not have any insertion point,
35146        innerTextElement() will not have any renderer. We have to tweak these renderers not to be crashed.
35147        (WebCore::RenderTextControl::textBlockWidth):
35148        (WebCore::RenderTextControl::updateFromElement):
35149        (WebCore::RenderTextControl::computeLogicalHeight):
35150        (WebCore::RenderTextControl::hitInnerTextElement):
35151        (WebCore::RenderTextControl::computePreferredLogicalWidths):
35152
351532012-08-29  Adam Barth  <abarth@webkit.org>
35154
35155        [V8] ScriptController::matchesCurrentContext duplicates code from ScriptController::currentWorldContext
35156        https://bugs.webkit.org/show_bug.cgi?id=95156
35157
35158        Reviewed by Eric Seidel.
35159
35160        matchesCurrentContext duplicated code from currentWorldContext in order
35161        to avoid creating a new v8::Local handle in the (common) case that
35162        we're already in the right context. This patch just exposes an accessor
35163        for the underlying handle so that the bindings code can do this work
35164        itself.
35165
35166        * bindings/scripts/CodeGeneratorV8.pm:
35167        (GenerateToV8Converters):
35168        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
35169        (WebCore::V8TestActiveDOMObject::wrapSlow):
35170        * bindings/scripts/test/V8/V8TestNode.cpp:
35171        (WebCore::V8TestNode::wrapSlow):
35172        * bindings/v8/ScriptController.cpp:
35173        (WebCore::ScriptController::unsafeHandleToCurrentWorldContext):
35174        (WebCore):
35175        (WebCore::ScriptController::currentWorldContext):
35176        * bindings/v8/ScriptController.h:
35177        (ScriptController):
35178        * bindings/v8/V8DOMWindowShell.h:
35179        (WebCore::V8DOMWindowShell::context):
35180
351812012-08-29  Nat Duca  <nduca@chromium.org>
35182
35183        [chromium] setNeedsAnimate should not cause commitRequested to become true
35184        https://bugs.webkit.org/show_bug.cgi?id=95393
35185
35186        Reviewed by James Robinson.
35187
35188        We use the commitRequested state to determine if the page has been damaged, which
35189        then is used by the input flow control logic to coalesce input events. However, we
35190        actually have two notions of commitRequested. At the CCLayerTreeHost level, commit
35191        being requested means "we've changed the tree in some way." At the proxy level, it
35192        means "we've sent a commit request to the impl thread." Without this patch,
35193        we use the latter state to answer ::commitRequested. That causes setNeedsAnimate
35194        to incorrectly cause the commitRequested bit to be set.
35195
35196        This change separates the setNeedsCommit state from commitRequestSentToImplThread.
35197        This allows us to correctly answer commitRequested in face of mixed animation and
35198        invalidation requests.
35199
35200        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
35201        (WebCore::CCThreadProxy::CCThreadProxy):
35202        (WebCore::CCThreadProxy::setNeedsAnimate):
35203        (WebCore::CCThreadProxy::setNeedsCommit):
35204        (WebCore::CCThreadProxy::beginFrame):
35205        * platform/graphics/chromium/cc/CCThreadProxy.h:
35206        (CCThreadProxy):
35207
352082012-08-29  Simon Hausmann  <simon.hausmann@nokia.com>
35209
35210        [Qt] REGRESSION(r126694): It broke the debug build
35211        https://bugs.webkit.org/show_bug.cgi?id=95037
35212
35213        Unreviewed trivial build fix for debug builds.
35214
35215        Don't pass WTFStrings through printf, use .ascii().data().
35216
35217        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
35218        (WebCore::StandardFilterProgram::StandardFilterProgram):
35219
352202012-08-29  Rafael Brandao  <rafael.lobo@openbossa.org>
35221
35222        Fix assertion on Document::recalcStyle to not recalc style while painting
35223        https://bugs.webkit.org/show_bug.cgi?id=95386
35224
35225        Reviewed by Eric Seidel.
35226
35227        * dom/Document.cpp: Move assertion outside the if to reflect that safety check.
35228
352292012-08-29  Aaron Colwell  <acolwell@chromium.org>
35230
35231        Add WebKit prefix to MediaSource, SourceBuffer, & SourceBufferList DOMWindow constructor attributes.
35232        https://bugs.webkit.org/show_bug.cgi?id=95247
35233
35234        Reviewed by Eric Carlson.
35235
35236        Add WebKit prefix to MediaSource, SourceBuffer, and SourceBufferList object constructor attributes.
35237
35238        Covered by existing layout tests..
35239
35240        * page/DOMWindow.idl:
35241
352422012-08-29  Nate Chapin  <japhet@chromium.org>
35243
35244        ProgressTracker never completes if iframe detached during parsing 
35245        https://bugs.webkit.org/show_bug.cgi?id=92272
35246
35247        Reviewed by Adam Barth.
35248
35249        Add a simple helper class to FrameLoader to ensure progressStarted/progressCompleted calls are matched,
35250        and balance the calls when the Frame is detached.
35251
35252        No new tests, as this behavior has only been producing reliably by setting a breakpoint in a specific place.
35253
35254        * loader/FrameLoader.cpp:
35255        (FrameLoader::FrameProgressTracker):
35256        (WebCore::FrameLoader::FrameProgressTracker::create):
35257        (WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
35258        (WebCore::FrameLoader::FrameProgressTracker::progressStarted):
35259        (WebCore::FrameLoader::FrameProgressTracker::progressCompleted):
35260        (WebCore::FrameLoader::FrameProgressTracker::FrameProgressTracker):
35261        (WebCore):
35262        (WebCore::FrameLoader::init):
35263        (WebCore::FrameLoader::prepareForLoadStart):
35264        (WebCore::FrameLoader::clearProvisionalLoad):
35265        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
35266        (WebCore::FrameLoader::detachFromParent):
35267        * loader/FrameLoader.h:
35268        (FrameLoader):
35269
352702012-08-29  Yoshifumi Inoue  <yosin@chromium.org>
35271
35272        [Forms] Rename DateTimeFieldElement::FieldEventHandler to FieldOwner
35273        https://bugs.webkit.org/show_bug.cgi?id=95280
35274
35275        Reviewed by Kent Tamura.
35276
35277        This patch renames DateTimeFieldElement::FieldEventHandler to FieldOwner
35278        for matching functionaly of class and class name to add functions like
35279        focusOnNextField().
35280
35281        This patch affects ports which enables both ENABLE_INPUT_TYPE_TIME and
35282        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
35283
35284        This patch is a part of changing Shift+Tab focus navigation of
35285        multiple fields input time UI, bug 95168.
35286
35287        No new tests. This patch doesn't change behavior.
35288
35289        * html/shadow/DateTimeEditElement.h:
35290        (DateTimeEditElement):
35291        * html/shadow/DateTimeFieldElement.cpp:
35292        (WebCore::DateTimeFieldElement::FieldOwner::~FieldOwner):
35293        (WebCore::DateTimeFieldElement::DateTimeFieldElement):
35294        (WebCore::DateTimeFieldElement::focusOnNextField):
35295        (WebCore::DateTimeFieldElement::updateVisibleValue):
35296        * html/shadow/DateTimeFieldElement.h:
35297        (FieldOwner):
35298        (WebCore::DateTimeFieldElement::removeEventHandler):
35299        (DateTimeFieldElement):
35300        * html/shadow/DateTimeFieldElements.cpp:
35301        (WebCore::DateTimeAMPMFieldElement::DateTimeAMPMFieldElement):
35302        (WebCore::DateTimeAMPMFieldElement::create):
35303        (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement):
35304        (WebCore::DateTimeHourFieldElement::create):
35305        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
35306        (WebCore::DateTimeMillisecondFieldElement::create):
35307        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
35308        (WebCore::DateTimeMinuteFieldElement::create):
35309        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
35310        (WebCore::DateTimeSecondFieldElement::create):
35311        * html/shadow/DateTimeFieldElements.h:
35312        (DateTimeAMPMFieldElement):
35313        (DateTimeHourFieldElement):
35314        (DateTimeMillisecondFieldElement):
35315        (DateTimeMinuteFieldElement):
35316        (DateTimeSecondFieldElement):
35317        * html/shadow/DateTimeNumericFieldElement.cpp:
35318        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
35319        * html/shadow/DateTimeNumericFieldElement.h:
35320        (DateTimeNumericFieldElement):
35321        * html/shadow/DateTimeSymbolicFieldElement.cpp:
35322        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
35323        * html/shadow/DateTimeSymbolicFieldElement.h:
35324        (DateTimeSymbolicFieldElement):
35325
353262012-08-29  Dominic Mazzoni  <dmazzoni@google.com>
35327
35328        AX: Canvas should have a distinct role
35329        https://bugs.webkit.org/show_bug.cgi?id=95248
35330
35331        Reviewed by Chris Fleizach.
35332
35333        Add new role for a canvas element, and a method to determine if
35334        a canvas has fallback content, so each platform can decide on the
35335        appropriate role mapping to use.
35336
35337        Test: accessibility/canvas-description-and-role.html
35338
35339        * accessibility/AccessibilityNodeObject.cpp:
35340        (WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
35341        (WebCore):
35342        * accessibility/AccessibilityNodeObject.h:
35343        (AccessibilityNodeObject):
35344        * accessibility/AccessibilityObject.h:
35345        (WebCore::AccessibilityObject::isCanvas):
35346        (WebCore::AccessibilityObject::canvasHasFallbackContent):
35347        * accessibility/AccessibilityRenderObject.cpp:
35348        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
35349        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
35350        (WebCore::AccessibilityRenderObject::canHaveChildren):
35351        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
35352        (atkRole):
35353        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35354        (createAccessibilityRoleMap):
35355        (-[WebAccessibilityObjectWrapper role]):
35356
353572012-08-29  Michael Saboff  <msaboff@apple.com>
35358
35359        use after free in WebCore::FileReader::doAbort
35360        https://bugs.webkit.org/show_bug.cgi?id=91004
35361
35362        Reviewed by Jian Li.
35363
35364        Added check in FileReader::abort to not process the abort if we aren't in the LOADING
35365        state.  This is per the FileAPI spec section 8.5.6 step #1.
35366
35367        Tests: fast/files/file-reader-immediate-abort.html
35368               fast/files/file-reader-done-reading-abort.html
35369
35370        * fileapi/FileReader.cpp:
35371        (WebCore::FileReader::abort):
35372
353732012-08-29  Alex Sakhartchouk  <alexst@chromium.org>
35374
35375        [chromium] CCLayerTreeHost::finishCommitOnImplThread wrong setter order
35376        https://bugs.webkit.org/show_bug.cgi?id=94828
35377
35378        Reviewed by Adrienne Walker.
35379
35380        setDeviceScaleFactor affects maxScrollPosition, making sure it's properly updated.
35381        This also removes setter order dependency.
35382
35383        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
35384        (WebCore::CCLayerTreeHostImpl::setDeviceScaleFactor):
35385
353862012-08-29  James Robinson  <jamesr@chromium.org>
35387
35388        Unreviewed, rolling out r126956.
35389        http://trac.webkit.org/changeset/126956
35390        https://bugs.webkit.org/show_bug.cgi?id=94721
35391
35392        Breaks several unit tests - see https://bugs.webkit.org/show_bug.cgi?id=95358 for instance.
35393
35394        * platform/graphics/chromium/cc/CCScheduler.cpp:
35395        (WebCore::CCScheduler::CCScheduler):
35396        (WebCore::CCScheduler::beginFrameComplete):
35397        (WebCore::CCScheduler::vsyncTick):
35398        (WebCore::CCScheduler::processScheduledActions):
35399        * platform/graphics/chromium/cc/CCScheduler.h:
35400        (CCSchedulerClient):
35401        (CCScheduler):
35402        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
35403        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
35404        (WebCore::CCTextureUpdateController::hasMoreUpdates):
35405        (WebCore):
35406        (WebCore::CCTextureUpdateController::updateMoreTextures):
35407        (WebCore::CCTextureUpdateController::onTimerFired):
35408        (WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
35409        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
35410        (WebCore):
35411        (WebCore::CCTextureUpdateController::create):
35412        (CCTextureUpdateController):
35413        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
35414        (WebCore::CCThreadProxy::didLoseContextOnImplThread):
35415        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
35416        (WebCore::CCThreadProxy::hasMoreResourceUpdates):
35417        (WebCore):
35418        (WebCore::CCThreadProxy::scheduledActionCommit):
35419        * platform/graphics/chromium/cc/CCThreadProxy.h:
35420        (WebCore):
35421
354222012-08-29  James Robinson  <jamesr@chromium.org>
35423
35424        [chromium] Register/unregister contents layers with GraphicsLayerChromium
35425        https://bugs.webkit.org/show_bug.cgi?id=95379
35426
35427        Reviewed by Adrienne Walker.
35428
35429        Several composited layer types in WebCore are represented by a painted layer and a child "contents layer" that
35430        represents some non-painted specific content type. For example, a composited video has a WebCore-painted layer
35431        for CSS background and border effects and a child platform video layer backed by a WebVideoLayer with the output
35432        of the video decoding pipeline. Cross-platform code associates the PlatformLayer from the various composited
35433        systems with the right GraphicsLayer, but the object owning the layer and the GraphicsLayer holding the pointer
35434        otherwise have no relationship. This makes shutdown a bit tricky since the object destroying the contents layer
35435        has no direct way to notify the GraphicsLayer holding the contents layer pointer that it is going away. The
35436        GraphicsLayer will be notified after the next style recalc that its contents layer is gone, but may need to do
35437        any number of bookkeeping operations before that happens.
35438
35439        On most platforms the PlatformLayer is refcounted, so the GraphicsLayer simply holds a ref to its contents layer
35440        from the time it is orphaned until the next style recalc and compositing tree rebuild. In Chromium, however,
35441        PlatformLayer is not refcounted. This adds an explicit registration mechanism for layers that may be contents
35442        layers.  A layer has to be registered with GraphicsLayerChromium before it can be used as a contents layer -
35443        typically this is just done at creation - and unregistered before it is destroyed.
35444
35445        Tests: fast/canvas/transformed-canvas-reset.html
35446               platform/chromium/virtual/gpu/fast/canvas/transformed-canvas-reset.html
35447
35448        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
35449        (WebCore::ScrollingCoordinatorPrivate::~ScrollingCoordinatorPrivate):
35450        (WebCore::createScrollbarLayer):
35451        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
35452        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
35453        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
35454        * platform/graphics/chromium/DrawingBufferChromium.cpp:
35455        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
35456        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
35457        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
35458        (WebCore::GraphicsLayerChromium::updateNames):
35459        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
35460        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
35461        (WebCore::GraphicsLayerChromium::setContentsToImage):
35462        (WebCore):
35463        (WebCore::GraphicsLayerChromium::registerContentsLayer):
35464        (WebCore::GraphicsLayerChromium::unregisterContentsLayer):
35465        (WebCore::GraphicsLayerChromium::clearContentsLayerIfUnregistered):
35466        (WebCore::GraphicsLayerChromium::setContentsTo):
35467        (WebCore::GraphicsLayerChromium::updateChildList):
35468        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
35469        (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
35470        (WebCore::GraphicsLayerChromium::updateContentsRect):
35471        * platform/graphics/chromium/GraphicsLayerChromium.h:
35472        (GraphicsLayerChromium):
35473
354742012-08-29  Rafael Brandao  <rafael.lobo@openbossa.org>
35475
35476        [Texmap] CSS Transform flicks at the end of animation
35477        https://bugs.webkit.org/show_bug.cgi?id=95347
35478
35479        Reviewed by Noam Rosenthal.
35480
35481        * platform/graphics/GraphicsLayerAnimation.cpp: Check if the last loop has
35482        been completed and then use 1.0 as normalized value for the progress, otherwise
35483        it would work as if there was a new loop forward and then cycle the progress value.
35484
354852012-08-29  Abhishek Arya  <inferno@chromium.org>
35486
35487        Crash in WebCore::StyleSheetContents::checkLoadCompleted.
35488        https://bugs.webkit.org/show_bug.cgi?id=95106
35489
35490        Reviewed by Antti Koivisto.
35491
35492        RefPtr StyleSheetContents since it can get blown away in script execution inside
35493        sheetLoaded().
35494
35495        Test: fast/css/style-element-process-crash.html
35496
35497        * css/StyleSheetContents.cpp:
35498        (WebCore::StyleSheetContents::checkLoadCompleted):
35499
355002012-08-29  José Dapena Paz  <jdapena@igalia.com>
35501
35502        [Gtk] Process Gtk 3.4 smooth scroll events properly.
35503        https://bugs.webkit.org/show_bug.cgi?id=88070
35504
35505        Gtk 3.3.18 added smooth scroll events, adding a new scroll direction that
35506        provides detailed delta information.
35507
35508        Added GDK_SMOOTH_SCROLL_MASK to the events listened, and added
35509        code to process properly the new direction GDK_SCROLL_SMOOTH and
35510        its deltas.
35511
35512        Reviewed by Martin Robinson.
35513
35514        Test: fast/events/continuous-platform-wheelevent-in-scrolling-div.html
35515
35516        * platform/gtk/PlatformWheelEventGtk.cpp:
35517        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
35518
355192012-08-29  Dana Jansens  <danakj@chromium.org>
35520
35521        [chromium] Remove HUD layer when rootLayer is set to null
35522        https://bugs.webkit.org/show_bug.cgi?id=95257
35523
35524        Reviewed by James Robinson.
35525
35526        When the rootLayer changes, remove the HUD layer from the old
35527        root layer immediately. Then, during commit, set the hud layer
35528        on the impl side only if there is a HUD layer present, and if
35529        there is a rootLayer present for it to be a child of.
35530
35531        Tests: CCHudWithRootLayerChange
35532
35533        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
35534        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
35535        (WebCore::CCLayerTreeHost::willCommit):
35536        (WebCore::CCLayerTreeHost::setRootLayer):
35537        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
35538        (WebCore::CCLayerTreeHost::hudLayer):
35539        (CCLayerTreeHost):
35540
355412012-08-29  Roland Takacs  <rtakacs@inf.u-szeged.hu>, Helder Correia  <helder.correia@nokia.com>
35542
35543        [Texmap] Move TextureMapperGL to use GraphicsContext3D
35544        https://bugs.webkit.org/show_bug.cgi?id=78672
35545
35546        Reviewed by Noam Rosenthal.
35547
35548        It is based on a previous patch by Helder Correia.
35549
35550        TextureMapperGL (TMGL) includes direct GL calls and
35551        GraphicsContext3D (GC3D) offers many conveniences over the
35552        former approach: using existing CSS shader code, ANGLE for
35553        shader compilation, reusing WebCore::Texture, having shaders and
35554        textures that can delete themselves.
35555
35556        A GC3D object is created by TMGL with the newly introduced
35557        builder createForCurrentGLContext(), which in turn uses
35558        the new RenderToCurrentGLContext flag underneath.
35559
35560        TMGL's dependency on OpenGLShims.h was completely removed.
35561        However, GC3D does not map every single GL constant. Thus, it's
35562        important to document the following:
35563            - GL_FALSE was mapped to false.
35564            - GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_PIXELS,
35565            GL_UNPACK_SKIP_ROWS, GL_TEXTURE_RECTANGLE_ARB, and
35566            GL_UNSIGNED_INT_8_8_8_8_REV were locally defined in TMGL.
35567
35568        The patch was originally developed by Helder Correia and finished
35569        by Roland Takacs.
35570
35571        No new tests, refactoring.
35572
35573        * platform/graphics/GraphicsContext3D.h:
35574        * platform/graphics/texmap/TextureMapperGL.cpp:
35575        (SharedGLData):
35576        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
35577        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
35578        (WebCore::TextureMapperGLData::sharedGLData):
35579        (WebCore::TextureMapperGLData::TextureMapperGLData):
35580        (TextureMapperGLData):
35581        (WebCore::scissorClip):
35582        (WebCore::TextureMapperGL::ClipStack::apply):
35583        (WebCore::TextureMapperGLData::initializeStencil):
35584        (WebCore::TextureMapperGL::TextureMapperGL):
35585        (WebCore::TextureMapperGL::beginPainting):
35586        (WebCore::TextureMapperGL::endPainting):
35587        (WebCore::TextureMapperGL::drawQuad):
35588        (WebCore::TextureMapperGL::drawBorder):
35589        (WebCore):
35590        (WebCore::TextureMapperGL::drawTextureRectangleARB):
35591        (WebCore::TextureMapperGL::drawTexture):
35592        (WebCore::viewportMatrix):
35593        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
35594        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
35595        (WebCore::BitmapTextureGL::didReset):
35596        (WebCore::BitmapTextureGL::updateContents):
35597        (WebCore::TextureMapperGL::drawFiltered):
35598        (WebCore::BitmapTextureGL::initializeStencil):
35599        (WebCore::BitmapTextureGL::clearIfNeeded):
35600        (WebCore::BitmapTextureGL::createFboIfNeeded):
35601        (WebCore::BitmapTextureGL::bind):
35602        (WebCore::BitmapTextureGL::~BitmapTextureGL):
35603        (WebCore::TextureMapperGL::bindDefaultSurface):
35604        (WebCore::TextureMapperGL::beginScissorClip):
35605        (WebCore::TextureMapperGL::beginClip):
35606        (WebCore::TextureMapperGL::endClip):
35607        (WebCore::TextureMapperGL::createTexture):
35608        * platform/graphics/texmap/TextureMapperGL.h:
35609        (WebCore::TextureMapperGL::graphicsContext3D):
35610        (TextureMapperGL):
35611        (ClipStack):
35612        (WebCore::BitmapTextureGL::textureTarget):
35613        (BitmapTextureGL):
35614        (WebCore::BitmapTextureGL::BitmapTextureGL):
35615        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
35616        (WebCore):
35617        (WebCore::TextureMapperShaderManager::getShaderProgram):
35618        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
35619        (WebCore::TextureMapperShaderProgram::initializeProgram):
35620        (WebCore::TextureMapperShaderProgram::getUniformLocation):
35621        (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
35622        (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple):
35623        (WebCore::TextureMapperShaderProgramSolidColor::TextureMapperShaderProgramSolidColor):
35624        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
35625        (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
35626        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::TextureMapperShaderProgramRectOpacityAndMask):
35627        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::TextureMapperShaderProgramAntialiasingNoMask):
35628        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
35629        (WebCore::StandardFilterProgram::~StandardFilterProgram):
35630        (WebCore::StandardFilterProgram::StandardFilterProgram):
35631        (WebCore::StandardFilterProgram::create):
35632        (WebCore::StandardFilterProgram::prepare):
35633        (WebCore::TextureMapperShaderManager::getShaderForFilter):
35634        * platform/graphics/texmap/TextureMapperShaderManager.h:
35635        (WebCore::TextureMapperShaderProgram::id):
35636        (WebCore::TextureMapperShaderProgram::vertexAttrib):
35637        (TextureMapperShaderProgram):
35638        (WebCore::TextureMapperShaderProgram::matrixLocation):
35639        (WebCore::TextureMapperShaderProgram::flipLocation):
35640        (WebCore::TextureMapperShaderProgram::textureSizeLocation):
35641        (WebCore::TextureMapperShaderProgram::sourceTextureLocation):
35642        (WebCore::TextureMapperShaderProgram::maskTextureLocation):
35643        (WebCore::TextureMapperShaderProgram::opacityLocation):
35644        (WebCore::TextureMapperShaderProgram::isValidUniformLocation):
35645        (StandardFilterProgram):
35646        (WebCore::StandardFilterProgram::vertexAttrib):
35647        (WebCore::StandardFilterProgram::texCoordAttrib):
35648        (WebCore::StandardFilterProgram::textureUniform):
35649        (WebCore::TextureMapperShaderProgramSimple::create):
35650        (TextureMapperShaderProgramSimple):
35651        (WebCore::TextureMapperShaderProgramRectSimple::create):
35652        (TextureMapperShaderProgramRectSimple):
35653        (WebCore::TextureMapperShaderProgramOpacityAndMask::create):
35654        (TextureMapperShaderProgramOpacityAndMask):
35655        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::create):
35656        (TextureMapperShaderProgramRectOpacityAndMask):
35657        (WebCore::TextureMapperShaderProgramSolidColor::create):
35658        (WebCore::TextureMapperShaderProgramSolidColor::colorLocation):
35659        (TextureMapperShaderProgramSolidColor):
35660        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::create):
35661        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadVerticesInTextureCoordinatesLocation):
35662        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadEdgesInScreenSpaceLocation):
35663        (TextureMapperShaderProgramAntialiasingNoMask):
35664        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
35665        (TextureMapperShaderManager):
35666
356672012-08-29  Adam Barth  <abarth@webkit.org>
35668
35669        Convert more static Strings to use ASCIILiteral
35670        https://bugs.webkit.org/show_bug.cgi?id=95313
35671
35672        Reviewed by Eric Seidel.
35673
35674        This patch converts another swath of static strings to use ASCIILiteral
35675        as recommended by http://trac.webkit.org/wiki/EfficientStrings.
35676
35677        * Modules/mediasource/MediaSource.cpp:
35678        (WebCore::MediaSource::openKeyword):
35679        (WebCore):
35680        (WebCore::MediaSource::closedKeyword):
35681        (WebCore::MediaSource::endedKeyword):
35682        * Modules/mediasource/MediaSource.h:
35683        (MediaSource):
35684        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
35685        (WebCore::customHandlersStateString):
35686        * Modules/notifications/Notification.cpp:
35687        (WebCore::Notification::permissionString):
35688        * accessibility/AccessibilityMediaControls.cpp:
35689        (WebCore::AccessibilityMediaControl::controlTypeName):
35690        (WebCore::AccessibilityMediaControl::title):
35691        (WebCore::AccessibilityMediaControlsContainer::elementTypeName):
35692        (WebCore::AccessibilityMediaTimeline::helpText):
35693        * bindings/js/JSInspectorFrontendHostCustom.cpp:
35694        (WebCore::JSInspectorFrontendHost::platform):
35695        (WebCore::JSInspectorFrontendHost::port):
35696        * bindings/js/ScriptEventListener.cpp:
35697        (WebCore::eventParameterName):
35698        * bindings/v8/ScriptEventListener.cpp:
35699        (WebCore::eventParameterName):
35700        * css/CSSWrapShapes.cpp:
35701        (WebCore::CSSWrapShapeRectangle::cssText):
35702        (WebCore::CSSWrapShapeCircle::cssText):
35703        (WebCore::CSSWrapShapeEllipse::cssText):
35704        (WebCore::CSSWrapShapePolygon::cssText):
35705        * css/StyleSheetContents.cpp:
35706        (WebCore::StyleSheetContents::parseAuthorStyleSheet):
35707        * dom/Document.cpp:
35708        (WebCore::Document::readyState):
35709        * editing/MarkupAccumulator.cpp:
35710        (WebCore::appendCharactersReplacingEntities):
35711        * editing/markup.cpp:
35712        (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
35713        (WebCore::StyledMarkupAccumulator::styleNodeCloseTag):
35714        (WebCore::StyledMarkupAccumulator::appendElement):
35715        (WebCore::createMarkup):
35716        * html/track/TextTrackCue.cpp:
35717        (WebCore::startKeyword):
35718        (WebCore::middleKeyword):
35719        (WebCore::endKeyword):
35720        (WebCore::verticalGrowingLeftKeyword):
35721        (WebCore::verticalGrowingRightKeyword):
35722        (WebCore::TextTrackCue::updateDisplayTree):
35723        (WebCore::TextTrackCue::settingName):
35724        * page/DiagnosticLoggingKeys.cpp:
35725        (WebCore::DiagnosticLoggingKeys::mediaLoadedKey):
35726        (WebCore::DiagnosticLoggingKeys::mediaLoadingFailedKey):
35727        (WebCore::DiagnosticLoggingKeys::pluginLoadedKey):
35728        (WebCore::DiagnosticLoggingKeys::pluginLoadingFailedKey):
35729        (WebCore::DiagnosticLoggingKeys::pageContainsPluginKey):
35730        (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey):
35731        (WebCore::DiagnosticLoggingKeys::passKey):
35732        (WebCore::DiagnosticLoggingKeys::failKey):
35733        (WebCore::DiagnosticLoggingKeys::noopKey):
35734        * page/PageVisibilityState.cpp:
35735        (WebCore::pageVisibilityStateString):
35736        * page/UserContentURLPattern.cpp:
35737        (WebCore::UserContentURLPattern::parse):
35738        * platform/KURLWTFURL.cpp:
35739        (WebCore::KURL::string):
35740        * platform/MIMETypeRegistry.cpp:
35741        (WebCore::defaultMIMEType):
35742        (WebCore::mimeTypeAssociationMap):
35743        * platform/network/ContentTypeParser.cpp:
35744        (WebCore::ContentTypeParser::parse):
35745        * platform/network/win/DownloadBundleWin.cpp:
35746        (WebCore::DownloadBundle::fileExtension):
35747        * storage/StorageTracker.cpp:
35748        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
35749        * svg/SVGAnimatedBoolean.cpp:
35750        (WebCore::SVGAnimatedBooleanAnimator::constructFromString):
35751
357522012-08-29  David Hyatt  <hyatt@apple.com>
35753
35754        [New Multicolumn] Rename methods to prepare for proper pagination of columns
35755        https://bugs.webkit.org/show_bug.cgi?id=95375
35756
35757        Reviewed by Simon Fraser.
35758
35759        This patch is doing some renaming and refactoring to prepare for proper pagination of columns. Most of the renames
35760        involve changing RenderFlowThread functions to exactly match the names of their RenderBlock callers. These names
35761        end up being more accurate once the top of a page and remaining height on a page no longer have a 1:1 mapping to
35762        the RenderRegion's dimensions.
35763        
35764        The renames/additions include:
35765            renderRegionForLine -> regionAtBlockOffset
35766            Justification: The block method is already called regionAtBlockOffset. No lines are involved, so line was
35767            never the correct term to be passing in.
35768            
35769            regionLogicalXXXForLine -> pageLogicalXXXForOffset
35770            Justification: Matches the RenderBlock callers, and it's more accurate to talk in terms of "pages" now that
35771            we have RenderRegionSets that can contain multiple "pages" in a single region.
35772            
35773            logicalWidthForFlowThreadContent/logicalHeightForFlowThreadContent -> pageLogicalWidth/Height.
35774            Justification: Makes it more clear we're talking about the width and height of a single page/column rather
35775            than the width and height of the region itself.
35776            
35777            logicalHeightOfAllFlowThreadContent
35778            This method is new and represents the total flow thread logical height that is consumed by the region.
35779            It has to be distinguished from the pageLogicalHeight for a region since sets can have multiple pages/columns.
35780
35781        Note with this patch we're essentially adopting the convention used by all of the pagination code besides regions
35782        of referring to anything we paginate as a "page." I continue to believe this is the simplest way to talk about
35783        these objects in code that is generically dealing with all three (like the breaking code in RenderBlock).
35784 
35785        Eventually we might adopt the fragment terminology in the latest CSS draft, in which case 
35786        RenderRegion would become RenderFragment, RenderFlowThread would become RenderFragmentedBlock, and uses of
35787        the generic "page" would become "fragment" instead, but we'll wait for that draft's terminology to stabilize first
35788        before switching away from the current names.
35789
35790        * rendering/RenderBlock.cpp:
35791        (WebCore::RenderBlock::hasNextPage):
35792        (WebCore::RenderBlock::pageLogicalTopForOffset):
35793        (WebCore::RenderBlock::pageLogicalHeightForOffset):
35794        (WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
35795        (WebCore::RenderBlock::regionAtBlockOffset):
35796        * rendering/RenderFlowThread.cpp:
35797        (WebCore::RenderFlowThread::layout):
35798        (WebCore::RenderFlowThread::computeLogicalWidth):
35799        (WebCore::RenderFlowThread::computeLogicalHeight):
35800        (WebCore::RenderFlowThread::regionAtBlockOffset):
35801        (WebCore::RenderFlowThread::pageLogicalTopForOffset):
35802        (WebCore::RenderFlowThread::pageLogicalWidthForOffset):
35803        (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
35804        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
35805        (WebCore::RenderFlowThread::mapFromFlowToRegion):
35806        (WebCore::RenderFlowThread::setRegionRangeForBox):
35807        * rendering/RenderFlowThread.h:
35808        * rendering/RenderMultiColumnSet.h:
35809        * rendering/RenderRegion.cpp:
35810        (WebCore::RenderRegion::pageLogicalWidth):
35811        (WebCore::RenderRegion::pageLogicalHeight):
35812        (WebCore):
35813        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
35814        (WebCore::RenderRegion::layout):
35815        * rendering/RenderRegion.h:
35816        (RenderRegion):
35817
358182012-08-29  David Grogan  <dgrogan@chromium.org>
35819
35820        IndexedDB: Throw TypeError for invalid version parameters
35821        https://bugs.webkit.org/show_bug.cgi?id=95143
35822
35823        Reviewed by Tony Chang.
35824
35825        Still need to throw for -1, but developers are running into the string
35826        scenario so handling that is more urgent. See
35827        https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/chromium-html5/QvjsPbBdP4M
35828
35829        Test: storage/indexeddb/intversion-bad-parameters.html
35830
35831        * Modules/indexeddb/IDBFactory.cpp:
35832        (WebCore::IDBFactory::open):
35833
358342012-08-29  Alexandru Chiculita  <achicu@adobe.com>
35835
35836        [CSS Shaders] Use CSS transform parsing code within CSS Shader
35837        https://bugs.webkit.org/show_bug.cgi?id=71401
35838
35839        Reviewed by Dean Jackson.
35840
35841        Added computed style for the transform parameters of the custom() filter function.
35842        Implemented the FECustomFilter bindings needed to push the value to an actual matrix for the CSS Shader.
35843        
35844        Note that transform parameters animations support will come in a different patch: 
35845        https://bugs.webkit.org/show_bug.cgi?id=94980.
35846
35847        Test: css3/filters/custom/effect-custom-transform-parameters.html
35848
35849        * GNUmakefile.list.am:
35850        * Target.pri:
35851        * WebCore.gypi:
35852        * WebCore.vcproj/WebCore.vcproj:
35853        * WebCore.xcodeproj/project.pbxproj:
35854        * css/CSSComputedStyleDeclaration.cpp:
35855        (WebCore::matrixTransformValue): Extracted code from computedTransform into a function, so that we
35856        can reuse it.
35857        (WebCore):
35858        (WebCore::computedTransform):
35859        (WebCore::valueForCustomFilterNumberParameter): Made all the custom filter related functions static to match
35860        most of the other functions in this file.
35861        (WebCore::valueForCustomFilterTransformParameter):
35862        (WebCore::valueForCustomFilterParameter): 
35863        (WebCore::CSSComputedStyleDeclaration::valueForFilter): Needed the object size to compute the transform.
35864        (WebCore::CSSComputedStyleDeclaration::valueForShadow): Added the const keyword.
35865        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Passed in the object to the valueForFilter.
35866        * css/CSSComputedStyleDeclaration.h:
35867        (WebCore):
35868        (CSSComputedStyleDeclaration):
35869        * css/StyleResolver.cpp:
35870        (StyleResolver::parseCustomFilterTransformParameter):
35871        (StyleResolver::parseCustomFilterParameter):
35872        (StyleResolver::parseCustomFilterParameterList): 
35873        * css/StyleResolver.h:
35874        (StyleResolver):
35875        * platform/graphics/filters/CustomFilterParameter.h:
35876        * platform/graphics/filters/CustomFilterTransformParameter.h: Filter parameter wrapper for the FilterOperations.
35877        (WebCore):
35878        (CustomFilterTransformParameter):
35879        (WebCore::CustomFilterTransformParameter::create):
35880        (WebCore::CustomFilterTransformParameter::blend): Animations will come in future patch.
35881        (WebCore::CustomFilterTransformParameter::operator==):
35882        (WebCore::CustomFilterTransformParameter::applyTransform):
35883        (WebCore::CustomFilterTransformParameter::operations):
35884        (WebCore::CustomFilterTransformParameter::setOperations):
35885        (WebCore::CustomFilterTransformParameter::CustomFilterTransformParameter):
35886        * platform/graphics/filters/FECustomFilter.cpp:
35887        (WebCore::FECustomFilter::bindProgramTransformParameter):
35888        (WebCore):
35889        (WebCore::FECustomFilter::bindProgramParameters):
35890        * platform/graphics/filters/FECustomFilter.h:
35891        (WebCore):
35892        (FECustomFilter):
35893
358942012-08-29  Rafael Brandao  <rafael.lobo@openbossa.org>
35895
35896        Use Animation::IterationCountInfinite instead of -1 when setting iteration count
35897        https://bugs.webkit.org/show_bug.cgi?id=95339
35898
35899        Reviewed by Andreas Kling.
35900
35901        * css/CSSToStyleMap.cpp: Replace -1 for the proper enum.
35902
359032012-08-29  Martin Robinson  <mrobinson@igalia.com>
35904
35905        [TexMap][cairo] Add GC3D::RenderToCurrentGLContext support
35906        https://bugs.webkit.org/show_bug.cgi?id=92441
35907
35908        Reviewed by Noam Rosenthal.
35909
35910        Add a RenderToCurrentGLContext for the Cairo GraphicsContext3D. This will allow
35911        TextureMapperGL to be rewritten on top of GraphicsContext3D by exposing the GC3D
35912        interface for the widget's GL context.
35913
35914        No new tests. This will be covered by the existing AC tests after the patch on
35915        bug 78672 lands.
35916
35917        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
35918        (WebCore::GraphicsContext3D::GraphicsContext3D): Only create the offscreen
35919        rendering buffers if we are rendering offscreen. Pass the rendering style to
35920        the private data factory.
35921        (WebCore::GraphicsContext3D::~GraphicsContext3D): Only destroy the offscreen
35922        rendering buffers if we are rendering offscreen.
35923        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
35924        (WebCore::GraphicsContext3DPrivate::create): Pass the rendering style through.
35925        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate): If we are using
35926        a "current GL context" rendering style, we don't need to create a GL context.
35927        We'll always just use the one that's currently active.
35928        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Assert that we only
35929        do this with the offscreen rendering style.
35930        * platform/graphics/cairo/GraphicsContext3DPrivate.h: Update method definitions
35931        and expose the rendering style member GraphicsContext3D.
35932
359332012-08-29  Martin Leutelt  <martin.leutelt@basyskom.com>
35934
35935        [Qt] Implement CompositeDifference
35936        https://bugs.webkit.org/show_bug.cgi?id=77355
35937
35938        Reviewed by Noam Rosenthal.
35939
35940        Add mapping for difference composite mode for
35941        future use.
35942        
35943        * platform/graphics/qt/GraphicsContextQt.cpp:
35944        (WebCore::toQtCompositionMode):
35945
359462012-08-29  Rob Buis  <rbuis@rim.com>
35947
35948        [BlackBerry] Adjust wtf include header style
35949        https://bugs.webkit.org/show_bug.cgi?id=95368
35950
35951        Reviewed by Yong Li.
35952
35953        Switch to #include <wtf/...> like the other ports.
35954
35955        * platform/graphics/blackberry/LayerFilterRenderer.h:
35956
359572012-08-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
35958
35959        Web Inspector: Timeline: avoid "IPC message too big" on save/load
35960        https://bugs.webkit.org/show_bug.cgi?id=91991
35961
35962        Reviewed by Alexander Pavlov.
35963
35964        Motivation: Now timeline tries to save all data with one chunk.
35965        Sometimes this causes "IPC message too big" error.
35966
35967        Solution: Reuse Profiles/Heap save/load code.
35968
35969        * inspector/front-end/FileUtils.js:
35970        (WebInspector.OutputStream): Moved from HeapSnapshotView.js
35971        (WebInspector.findBalancedCurlyBrackets): Moved from HeapSnapshotLoader.js
35972        (WebInspector.ChunkedXHRReader): Added.
35973        (WebInspector.ChunkedFileWriter): Moved from HeapSnapshotView.js
35974        * inspector/front-end/HeapSnapshotLoader.js: Utility method moved to FileUtils.js
35975        * inspector/front-end/HeapSnapshotView.js: IO specific classes moved to FileUtils.js
35976        * inspector/front-end/HeapSnapshotWorker.js: Added dependency to FileUtils.js
35977        * inspector/front-end/TimelineModel.js: Adopted chunked IO API.
35978        (WebInspector.TimelineModelLoader): Class for chunked deserialization.
35979        (WebInspector.TimelineModelWriteToFileDelegate): Chunked serializer.
35980
359812012-08-29  David Hyatt  <hyatt@apple.com>
35982
35983        [New Multicolumn] Implement hit testing for columns.
35984        https://bugs.webkit.org/show_bug.cgi?id=95367
35985
35986        Reviewed by Simon Fraser.
35987
35988        Add an implementation of nodeAtPoint for RenderMultiColumnSet that works similarly to painting.
35989        Multiple calls get made as you walk through the columns to hitTestFlowThreadPortionInRegion.
35990
35991        * rendering/RenderMultiColumnSet.cpp:
35992        (WebCore::RenderMultiColumnSet::nodeAtPoint):
35993        (WebCore):
35994        * rendering/RenderMultiColumnSet.h:
35995        (RenderMultiColumnSet):
35996        * rendering/RenderRegion.cpp:
35997        (WebCore::RenderRegion::nodeAtPoint):
35998
359992012-08-29  Anna Cavender  <annacc@chromium.org>
36000
36001        Create a toggle button for closed captions.
36002        https://bugs.webkit.org/show_bug.cgi?id=94395
36003
36004        Reviewed by Eric Carlson.
36005
36006        This patch will create a button that toggles any captions or subtitles on or off.
36007
36008        Test: media/video-controls-captions.html
36009
36010        * css/mediaControlsChromium.css:
36011        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
36012        New style for new button.
36013
36014        * html/HTMLMediaElement.cpp:
36015        (WebCore::HTMLMediaElement::HTMLMediaElement):
36016        Initialize new variable for keeping track of user (button) disabled captions.
36017
36018        (WebCore::HTMLMediaElement::loadTimerFired):
36019        Rename configureNewTextTracks() to configureTextTracks().
36020
36021        (WebCore::HTMLMediaElement::prepareForLoad):
36022        Do not set closedCaptionsVisible to false, we should instead honor the
36023        checks for default out-of-band tracks.
36024
36025        (WebCore::HTMLMediaElement::textTrackModeChanged):
36026        Rename configureNewTextTracks() to configureTextTracks().
36027
36028        (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
36029        Add checks for when user has requested to see or not see captions.
36030
36031        (WebCore::HTMLMediaElement::configureTextTracks):
36032        Rename configureNewTextTracks() to configureTextTracks().
36033
36034        (WebCore::HTMLMediaElement::hasClosedCaptions):
36035        Return true if we have any caption or subtitle text tracks.
36036
36037        (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
36038        Update the text track display and the closed captions button when the
36039        closed captions button is toggled.
36040
36041        (WebCore::HTMLMediaElement::configureTextTrackDisplay):
36042        If the visibility of any text tracks has changed, update the display and
36043        the controls.
36044
36045        (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
36046        New function that updates both the text track display and the closed
36047        captions button.
36048
36049        * html/HTMLMediaElement.h:
36050        (HTMLMediaElement):
36051        New function updateClosedCaptionsControls()
36052
36053        Adding the button:
36054        * html/shadow/MediaControlRootElementChromium.cpp:
36055        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
36056        (WebCore::MediaControlRootElementChromium::initializeControls):
36057        (WebCore::MediaControlRootElementChromium::setMediaController):
36058        (WebCore::MediaControlRootElementChromium::reset):
36059        (WebCore::MediaControlRootElementChromium::reportedError):
36060        (WebCore::MediaControlRootElementChromium::changedClosedCaptionsVisibility):
36061        (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
36062        * html/shadow/MediaControlRootElementChromium.h:
36063        (WebCore):
36064        (MediaControlRootElementChromium):
36065
36066        Ensure that Linux and Windows render themes will support closed captions:
36067        * rendering/RenderThemeChromiumSkia.cpp:
36068        (WebCore):
36069        (WebCore::supportsClosedCaptioning):
36070        * rendering/RenderThemeChromiumSkia.h:
36071        (RenderThemeChromiumSkia):
36072
360732012-08-29  Jessie Berlin  <jberlin@apple.com>
36074
36075        run-bindings-tests failing on Apple Mountain Lion Testers.
36076        https://bugs.webkit.org/show_bug.cgi?id=95354
36077
36078        Reviewed by Eric Seidel.
36079
36080        The binding tests were expecting incorrect results on Mac. The versions using the @property
36081        syntax are correct for Leopard and above. CodeGeneratorObjC.pm was determining which syntax
36082        to use based on the value of MACOSX_DEPLOYMENT_TARGET, which might not be set in the
36083        environment the tests get run in but is correctly set by xcodebuild.
36084
36085        * bindings/scripts/CodeGeneratorObjC.pm:
36086        (GenerateHeader):
36087        Remove the code to support Tiger and earlier and the reliance on MACOSX_DEPLOYMENT_TARGET.
36088        * bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h:
36089        Update the expectations to expect the @property syntax (done with --reset-results).
36090        * bindings/scripts/test/ObjC/DOMTestEventConstructor.h:
36091        Ditto.
36092        * bindings/scripts/test/ObjC/DOMTestException.h:
36093        Ditto.
36094        * bindings/scripts/test/ObjC/DOMTestInterface.h:
36095        Ditto.
36096        * bindings/scripts/test/ObjC/DOMTestObj.h:
36097        Ditto.
36098        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
36099        Ditto.
36100
361012012-08-29  Vivek Galatage  <vivekgalatage@gmail.com>
36102
36103        Web Inspector: Refactor InspectorFrontendClientLocal to remove ScriptState as member
36104        https://bugs.webkit.org/show_bug.cgi?id=95343
36105
36106        Reviewed by Yury Semikhatsky.
36107
36108        The ScriptState is not required to be stored as a member to
36109        InspectorFrontendClientLocal hence removing it as member.
36110
36111        No new tests due to code refactoring.
36112
36113        * inspector/InspectorFrontendClientLocal.cpp:
36114        (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
36115        (WebCore::InspectorFrontendClientLocal::~InspectorFrontendClientLocal):
36116        (WebCore::InspectorFrontendClientLocal::windowObjectCleared):
36117        * inspector/InspectorFrontendClientLocal.h:
36118        (WebCore):
36119        (InspectorFrontendClientLocal):
36120
361212012-08-28  Shawn Singh  <shawnsingh@chromium.org>
36122
36123        [chromium] Do not clip root layer's subtree to viewport
36124        https://bugs.webkit.org/show_bug.cgi?id=95235
36125
36126        Reviewed by Adrienne Walker.
36127
36128        The root layer's renderSurface already correctly clips everything
36129        to the viewport's bounds.  There are some useful reasons that we
36130        should not cause the root layer itself to clip the subtree any
36131        further, in particular so that surfaces can remain more cacheable,
36132        and to make root layer semantics more homogeneous.
36133
36134        Existing tests updated, and otherwise this change is already
36135        covered by layout and unit tests.
36136
36137        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
36138        (WebCore::calculateDrawTransformsInternal):
36139
361402012-08-28  David Hyatt  <hyatt@apple.com>
36141
36142        [New Multicolumn] Implement column contents painting.
36143        https://bugs.webkit.org/show_bug.cgi?id=95251
36144
36145        Reviewed by Simon Fraser.
36146
36147        This patch implements paintColumnContents for the new multicolumn blocks. There are a number of
36148        improvements made over the current multi-column implementation. They include the fact that left
36149        and right columns will now be unclipped, so contents of columns can actually spill out of the block now.
36150        Outlines now also work properly. The contents of the first column and last column can also now overflow
36151        visually out of the top and bottom of those columns respectively.
36152
36153        * rendering/RenderMultiColumnSet.cpp:
36154        (WebCore::RenderMultiColumnSet::flowThreadPortionRectAt):
36155        This method returns the exact portion of the flow thread that matches the column dimensions.
36156        The width and height are the column width and height. It is equivalent to RenderRegion::flowThreadPortionRect,
36157        but is applied only for a specific column in the set.
36158
36159        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
36160        This method expands the flowThreadPortionRect to unclip the edges of left and right columns, the top and
36161        bottom edges of first and last columns, and it also expands the painting to go into half of the column
36162        gap. It is analogous to RenderRegion::flowThreadPortionOverflowRect, but it's doing the right thing
36163        for each individual column.
36164
36165        (WebCore::RenderMultiColumnSet::paintColumnContents):
36166        The implementation of column contents painting. Each column is iterated over, and the two rects above
36167        are computed and passed in to RenderFlowThread::paintFlowThreadPortionInRegion. This code does the right
36168        thing with offsets and clipping when handed these two rects and handles all of the rest.
36169
36170        * rendering/RenderMultiColumnSet.h:
36171        Declare the new functions that return the flow thread portion rects.
36172
36173        * rendering/RenderRegion.cpp:
36174        (WebCore::RenderRegion::flowThreadPortionOverflowRect):
36175        (WebCore):
36176        (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
36177        * rendering/RenderRegion.h:
36178        (RenderRegion):
36179        * rendering/RenderRegionSet.cpp:
36180        Refactor this so that it can be invoked by column sets and operate on the first and last columns instead
36181        of only being tied to the first and last regions.
36182
36183        (WebCore::RenderRegionSet::expandToEncompassFlowThreadContentsIfNeeded):
36184        Fix a bug here where the flowThread.y() should not have been subtracted. We're in local flow thread
36185        coordinates.
36186
361872012-08-29  Sheriff Bot  <webkit.review.bot@gmail.com>
36188
36189        Unreviewed, rolling out r126972.
36190        http://trac.webkit.org/changeset/126972
36191        https://bugs.webkit.org/show_bug.cgi?id=95349
36192
36193        accessibility/canvas-description-and-role.html has been
36194        failing consistently on several bots and Dominic needs some
36195        time to investigate why (Requested by jchaffraix on #webkit).
36196
36197        * accessibility/AccessibilityNodeObject.cpp:
36198        * accessibility/AccessibilityNodeObject.h:
36199        * accessibility/AccessibilityObject.h:
36200        (AccessibilityObject):
36201        * accessibility/AccessibilityRenderObject.cpp:
36202        (WebCore::AccessibilityRenderObject::accessibilityDescription):
36203        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
36204        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
36205        (WebCore::AccessibilityRenderObject::canHaveChildren):
36206        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
36207        (atkRole):
36208        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
36209        (createAccessibilityRoleMap):
36210        (-[WebAccessibilityObjectWrapper role]):
36211
362122012-08-29  Vsevolod Vlasov  <vsevik@chromium.org>
36213
36214        Web Inspector: Minor ResourceScriptMapping polish.
36215        https://bugs.webkit.org/show_bug.cgi?id=95350
36216
36217        Reviewed by Alexander Pavlov.
36218
36219        Added some compiler annotations.
36220        ResourceScriptMapping is no longer a UISourceCodeProvider, removed unused methods and obsolete compiler annotations.
36221
36222        * inspector/front-end/ResourceScriptMapping.js:
36223        (WebInspector.ResourceScriptMapping):
36224
362252012-08-29  Vsevolod Vlasov  <vsevik@chromium.org>
36226
36227        Web Inspector: Extract StylesSourceMapping from StylesUISourceCodeProvider.
36228        https://bugs.webkit.org/show_bug.cgi?id=95345
36229
36230        Reviewed by Alexander Pavlov.
36231
36232        * WebCore.gypi:
36233        * WebCore.vcproj/WebCore.vcproj:
36234        * inspector/compile-front-end.py:
36235        * inspector/front-end/ResourceScriptMapping.js:
36236        (WebInspector.ResourceScriptMapping): Drive-by: ResourceScriptMapping now uses workspace object passed in parameters, not the global one.
36237        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
36238        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
36239        * inspector/front-end/StylesSourceMapping.js: Copied from Source/WebCore/inspector/front-end/StylesUISourceCodeProvider.js.
36240        (WebInspector.StylesSourceMapping):
36241        (WebInspector.StylesSourceMapping.prototype.addUISourceCode):
36242        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
36243        (WebInspector.StylesSourceMapping.prototype.uiLocationToRawLocation):
36244        (WebInspector.StylesSourceMapping.prototype.reset):
36245        * inspector/front-end/StylesUISourceCodeProvider.js:
36246        (WebInspector.StylesUISourceCodeProvider):
36247        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
36248        (WebInspector.StylesUISourceCodeProvider.prototype._reset): Drive-by: _populate is now called with setTimeout.
36249        * inspector/front-end/WebKit.qrc:
36250        * inspector/front-end/inspector.html:
36251
362522012-08-29  Alexander Pavlov  <apavlov@chromium.org>
36253
36254        Web Inspector: Page with @import and :last-child in an edited stylesheet will crash
36255        https://bugs.webkit.org/show_bug.cgi?id=95324
36256
36257        Reviewed by Antti Koivisto.
36258
36259        Ensure the destroyed StyleRules removal from StyleResolver by creating a separate RuleMutationScope for clearing the StyleSheetContents.
36260
36261        Test: inspector/styles/import-pseudoclass-crash.html
36262
36263        * inspector/InspectorStyleSheet.cpp:
36264        (WebCore::InspectorStyleSheet::reparseStyleSheet):
36265
362662012-08-29  Vsevolod Vlasov  <vsevik@chromium.org>
36267
36268        Web Inspector: Turn workspace into a container of UiSourceCodes put in different projects.
36269        https://bugs.webkit.org/show_bug.cgi?id=95335
36270
36271        Reviewed by Pavel Feldman.
36272
36273        Workspace now contains a project that could be filled with uiSourceCodes.
36274        Workspace project is still filled by script / style mappings as before.
36275        The next step would be to extract NetworkUISourceCodeProvider.
36276
36277        * inspector/front-end/BreakpointManager.js:
36278        (WebInspector.BreakpointManager):
36279        * inspector/front-end/CompilerScriptMapping.js:
36280        (WebInspector.CompilerScriptMapping):
36281        (WebInspector.CompilerScriptMapping.prototype._reset):
36282        * inspector/front-end/DebuggerScriptMapping.js:
36283        (WebInspector.DebuggerScriptMapping):
36284        * inspector/front-end/ResourceScriptMapping.js:
36285        (WebInspector.ResourceScriptMapping):
36286        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
36287        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
36288        (WebInspector.ResourceScriptMapping.prototype._reset):
36289        * inspector/front-end/RevisionHistoryView.js:
36290        (WebInspector.RevisionHistoryView):
36291        * inspector/front-end/SASSSourceMapping.js:
36292        (WebInspector.SASSSourceMapping):
36293        (_bindUISourceCode):
36294        (rawLocationToUILocation):
36295        (_reset):
36296        * inspector/front-end/ScriptSnippetModel.js:
36297        (WebInspector.ScriptSnippetModel):
36298        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
36299        (WebInspector.ScriptSnippetModel.prototype.deleteScriptSnippet):
36300        (WebInspector.SnippetScriptMapping.prototype.addScript):
36301        * inspector/front-end/ScriptsPanel.js:
36302        (WebInspector.ScriptsPanel):
36303        * inspector/front-end/StylesUISourceCodeProvider.js:
36304        (WebInspector.StylesUISourceCodeProvider):
36305        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
36306        (WebInspector.StylesUISourceCodeProvider.prototype._reset):
36307        * inspector/front-end/Workspace.js:
36308        (WebInspector.WorkspaceController):
36309        (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36310        (WebInspector.Project):
36311        (WebInspector.Project.prototype.reset):
36312        (WebInspector.Project.prototype.addUISourceCode):
36313        (WebInspector.Project.prototype.replaceUISourceCode):
36314        (WebInspector.Project.prototype.removeUISourceCode):
36315        (WebInspector.Project.prototype.uiSourceCodeForURL):
36316        (WebInspector.Project.prototype.uiSourceCodes):
36317        (WebInspector.Workspace):
36318        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
36319        (WebInspector.Workspace.prototype.project):
36320        (WebInspector.Workspace.prototype.uiSourceCodes):
36321        * inspector/front-end/inspector.js:
36322
363232012-08-29  Florin Malita  <fmalita@chromium.org>
36324
36325        Incorrect large-area clipping
36326        https://bugs.webkit.org/show_bug.cgi?id=95197
36327
36328        Reviewed by Nikolas Zimmermann.
36329
36330        ImageBuffers allocated for clipping and masking are clamped to kMaxImageBufferSize max
36331        (4096x4096). In order to properly account for the scaling factor introduced by this
36332        clamping, the repaintRect translation component needs to be pushed after the scaling
36333        transform.
36334
36335        Tests: svg/custom/clamped-masking-clipping-expected.svg
36336               svg/custom/clamped-masking-clipping.svg
36337
36338        * rendering/svg/SVGRenderingContext.cpp:
36339        (WebCore::SVGRenderingContext::createImageBuffer):
36340
363412012-08-29  Yury Semikhatsky  <yurys@chromium.org>
36342
36343        Web Inspector: unsafe static_cast in RetainedDOMInfo::IsEquivalent
36344        https://bugs.webkit.org/show_bug.cgi?id=95315
36345
36346        Reviewed by Vsevolod Vlasov.
36347
36348        * bindings/v8/RetainedDOMInfo.cpp:
36349        (WebCore::RetainedDOMInfo::IsEquivalent): compare retained object info
36350        labels before casting v8::RetainedObjectInfo to WebCore::RetainedObjectInfo
36351        as the |other| object may not be a descendant of WebCore::RetainedObjectInfo.
36352
363532012-08-29  Jochen Eisinger  <jochen@chromium.org>
36354
36355        REGRESSION(r126816): Missing includes when compiling without SVG
36356        https://bugs.webkit.org/show_bug.cgi?id=95312
36357
36358        Reviewed by Eric Seidel.
36359
36360        * rendering/FilterEffectRenderer.h:
36361        * rendering/RenderLayerFilterInfo.h:
36362
363632012-08-29  Adam Barth  <abarth@webkit.org>
36364
36365        Improve string efficiency using StringBuilder and StringOperations
36366        https://bugs.webkit.org/show_bug.cgi?id=95304
36367
36368        Reviewed by Eric Seidel.
36369
36370        As recommended by http://trac.webkit.org/wiki/EfficientStrings.
36371
36372        * css/CSSLineBoxContainValue.cpp:
36373        (WebCore::CSSLineBoxContainValue::customCssText):
36374        * css/CSSPropertySourceData.cpp:
36375        (WebCore::CSSPropertySourceData::toString):
36376        * css/MediaList.cpp:
36377        (WebCore::MediaQuerySet::mediaText):
36378        * css/ShadowValue.cpp:
36379        (WebCore::ShadowValue::customCssText):
36380        * dom/MicroDataItemList.cpp:
36381        (WebCore::MicroDataItemList::undefinedItemType):
36382        * editing/HTMLInterchange.cpp:
36383        (WebCore::convertedSpaceString):
36384
363852012-08-29  James Robinson  <jamesr@chromium.org>
36386
36387        [chromium] Use floating point literals in expressions that initialize floats
36388        https://bugs.webkit.org/show_bug.cgi?id=95293
36389
36390        Reviewed by Adam Barth.
36391
36392        Visual studio's C4305, which is on for some chromium code, complains about these.
36393
36394        * platform/graphics/chromium/cc/CCLayerSorter.cpp:
36395        (WebCore::CCLayerSorter::createGraphEdges):
36396        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
36397        (WebCore::CCLayerTreeHostImpl::scrollBy):
36398        (WebCore::CCLayerTreeHostImpl::computePinchZoomDeltas):
36399
364002012-08-29  Vsevolod Vlasov  <vsevik@chromium.org>
36401
36402        Web Inspector: Extract StylesUISourceCodeProvider to separate file.
36403        https://bugs.webkit.org/show_bug.cgi?id=95319
36404
36405        Reviewed by Alexander Pavlov.
36406
36407        * WebCore.gypi:
36408        * WebCore.vcproj/WebCore.vcproj: Also added WebGLProfiler files forgotten before.
36409        * inspector/compile-front-end.py:
36410        * inspector/front-end/StyleSource.js:
36411        * inspector/front-end/StylesUISourceCodeProvider.js: Copied from Source/WebCore/inspector/front-end/StyleSource.js.
36412        (WebInspector.StylesUISourceCodeProvider):
36413        (WebInspector.StylesUISourceCodeProvider.prototype.uiSourceCodes):
36414        (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
36415        (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
36416        (WebInspector.StylesUISourceCodeProvider.prototype._populate):
36417        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
36418        (WebInspector.StylesUISourceCodeProvider.prototype.reset):
36419        * inspector/front-end/WebKit.qrc:
36420        * inspector/front-end/inspector.html:
36421
364222012-08-29  Philip Rogers  <pdr@google.com>
36423
36424        Use SVGImage instead of cached image when drawing without a render tree.
36425        https://bugs.webkit.org/show_bug.cgi?id=95002
36426
36427        Reviewed by Nikolas Zimmermann.
36428
36429        Previously if we tried to use canvas.context2d.drawImage() with an SVG image
36430        that was not in the render tree, we would crash. This patch changes this behavior
36431        so that we use SVGImage::draw() to draw images that are not in the render tree.
36432
36433        Test: svg/as-image/svg-canvas-draw-image-detached.html
36434
36435        * svg/graphics/SVGImageCache.cpp:
36436        (WebCore::SVGImageCache::requestedSizeAndScales):
36437        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
36438
364392012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
36440
36441        [Qt] REGRESSION(r125428): fast/profiler/nested-start-and-stop-profiler.html fails
36442        https://bugs.webkit.org/show_bug.cgi?id=93897
36443
36444        Reviewed by Kenneth Rohde Christiansen.
36445
36446        Before r125428 run-time methods (wrapped signals, slots or invokable
36447        functions) were subclasses of JSInternalFunction and therefore real
36448        function objects in the JavaScript sense. r125428 changed them to be
36449        just callable objects, but they did not have Function.prototype as
36450        prototype anymore for example nor was their name correct (resulting in
36451        a layout test failure).
36452
36453        This patch changes run-time methods back to being real function objects
36454        that have a correct name and have Function.prototype in their prototype
36455        change
36456
36457        The objects returned by JSObjectMakeFunctionWithCallbackInjected are
36458        light-weight internal function objects that do not support
36459        JSObject{Set/Get}Private. Therefore we inject our own prototype right
36460        before the Function.prototype prototype, which uses private data to
36461        store a pointer to our C++ QtRuntimeMethod object.  This complicates
36462        the retrieval of the pointer to that instance slightly, which is why
36463        this patch introduces the toRuntimeMethod convenience function that
36464        looks up our prototype first and does a check for type-safety.
36465
36466        At the same time the patch removes the length properties from the
36467        run-time method itself as well as connect/disconnect.  The length
36468        property on a function signifies the number of arguments, but in all
36469        three cases that number is actually variable, because of overloading.
36470        That is why we choose not to expose it in the first place.
36471
36472        In QtInstance we cache the JS wrapper objects for QtRuntimeMethod in a
36473        JSWeakObjectMap. JSWeakObjectMap requires the stored objects to be
36474        either the result of JSObjectMake or the global object of a context ref
36475        (AFAICS), which is ensured using an ASSERT. Objects created via
36476        JSObjectMakeFunctionWithCalllback do not fall into the required
36477        category, cause a failing assertion and can therefore not be stored in
36478        the weak object map.
36479
36480        Consequently this patch removes the use of JSWeakObjectMap again and
36481        goes back to the old way of using the internal Weak<> API, for the time
36482        being. In a future patch the storage will be simplified to not require
36483        the use of a weak object map cache for the run-time methods anymore.
36484
36485        * bridge/qt/qt_instance.cpp: Remove unused WeakMap code.
36486        * bridge/qt/qt_instance.h: Remove method cache.
36487        (QtInstance):
36488        * bridge/qt/qt_runtime.cpp:
36489        (JSC::Bindings::prototypeForSignalsAndSlots):
36490        (JSC::Bindings::QtRuntimeMethod::call):
36491        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
36492        (JSC::Bindings::QtRuntimeMethod::toRuntimeMethod):
36493        (Bindings):
36494        (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
36495        * bridge/qt/qt_runtime.h:
36496        (QtRuntimeMethod): Remove unused member variables.
36497
364982012-08-29  Ilya Tikhonovsky  <loislo@chromium.org>
36499
36500        Unreviewed: Single line build fix.
36501
36502        * platform/graphics/BitmapImage.cpp:
36503        (WebCore::BitmapImage::reportMemoryUsage):
36504
365052012-08-24  Ilya Tikhonovsky  <loislo@chromium.org>
36506
36507        Web Inspector: NMI: Instrument WebCore part of the Image class hierarchy
36508        https://bugs.webkit.org/show_bug.cgi?id=94959
36509
36510        Drive by fix: remove unused GeneratedImage.cpp
36511
36512        Reviewed by Yury Semikhatsky.
36513
36514        * html/HTMLImageElement.cpp:
36515        (WebCore::HTMLImageElement::reportMemoryUsage):
36516        (WebCore):
36517        * html/HTMLImageElement.h:
36518        (HTMLImageElement):
36519        * loader/cache/CachedImage.cpp:
36520        (WebCore::CachedImage::reportMemoryUsage):
36521        * platform/graphics/BitmapImage.cpp:
36522        (WebCore::BitmapImage::reportMemoryUsage):
36523        (WebCore):
36524        * platform/graphics/BitmapImage.h:
36525        (FrameData):
36526        (BitmapImage):
36527        * platform/graphics/CrossfadeGeneratedImage.cpp:
36528        (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
36529        (WebCore):
36530        * platform/graphics/CrossfadeGeneratedImage.h:
36531        (WebCore):
36532        (CrossfadeGeneratedImage):
36533        * platform/graphics/GeneratedImage.cpp: Removed.
36534        * platform/graphics/GeneratedImage.h:
36535        (GeneratedImage):
36536        * platform/graphics/GeneratorGeneratedImage.cpp:
36537        (WebCore::GeneratedImage::reportMemoryUsage):
36538        (WebCore):
36539        (WebCore::GeneratorGeneratedImage::reportMemoryUsage):
36540        * platform/graphics/GeneratorGeneratedImage.h:
36541        (GeneratorGeneratedImage):
36542        * platform/graphics/Image.cpp:
36543        (WebCore::Image::reportMemoryUsage):
36544        (WebCore):
36545        * platform/graphics/Image.h:
36546        (WebCore):
36547        (Image):
36548        * svg/graphics/SVGImage.cpp:
36549        (WebCore::SVGImage::reportMemoryUsage):
36550        (WebCore):
36551        * svg/graphics/SVGImage.h:
36552        (SVGImage):
36553
365542012-08-29  Dominic Mazzoni  <dmazzoni@google.com>
36555
36556        AX: Canvas should have a distinct role
36557        https://bugs.webkit.org/show_bug.cgi?id=95248
36558
36559        Reviewed by Chris Fleizach.
36560
36561        Add new role for a canvas element, and a method to determine if
36562        a canvas has fallback content, so each platform can decide on the
36563        appropriate role mapping to use.
36564
36565        Test: accessibility/canvas-description-and-role.html
36566
36567        * accessibility/AccessibilityNodeObject.cpp:
36568        (WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
36569        (WebCore):
36570        * accessibility/AccessibilityNodeObject.h:
36571        (AccessibilityNodeObject):
36572        * accessibility/AccessibilityObject.h:
36573        (WebCore::AccessibilityObject::isCanvas):
36574        (WebCore::AccessibilityObject::canvasHasFallbackContent):
36575        * accessibility/AccessibilityRenderObject.cpp:
36576        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
36577        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
36578        (WebCore::AccessibilityRenderObject::canHaveChildren):
36579        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
36580        (atkRole):
36581        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
36582        (createAccessibilityRoleMap):
36583        (-[WebAccessibilityObjectWrapper role]):
36584
365852012-08-29  Ryuan Choi  <ryuan.choi@samsung.com>
36586
36587        [EFL] Move several files to remove webkit1 dependency from WebCore.
36588        https://bugs.webkit.org/show_bug.cgi?id=95264
36589
36590        Reviewed by Gyuyoung Kim.
36591
36592        ColorChooserEfl.cpp, PopupMenuEfl.cpp and SearchPopupMenuEfl.cpp are WebKit1/Efl
36593        specific files and they can not be shared with WebKit2/Efl.
36594
36595        In order to remove WebKit dependency from WebCore, this patch moves them
36596        to WebKit/efl/WebCoreSupport.
36597
36598        No behavior change. Just a refactoring.
36599
36600        * PlatformEfl.cmake: Removed files which moved from sources and WebKit/efl/WebCoreSupport from includes.
36601        * WebCore.gypi: Ditto.
36602
366032012-08-28  Dominic Mazzoni  <dmazzoni@google.com>
36604
36605        AX: Focusable elements without a role should not be ignored
36606        https://bugs.webkit.org/show_bug.cgi?id=94302
36607
36608        Reviewed by Chris Fleizach.
36609
36610        Changes the accessibility logic so that a generic element that's focusable is
36611        not ignored for accessibility, and returns its inner text as its title. That way
36612        if you Tab to the element, a reasonable accessibility notification is generated.
36613
36614        One exception is the body element, because focusing the body is equivalent to
36615        blurring the current focused element and does not result in a "focus" accessibility
36616        notification.
36617
36618        Also fixes logic that determined if an element was contentEditable by making
36619        sure it catches the case with no attribute value (e.g. <div contentEditable>),
36620        which also implies contentEditable=true according to the spec.
36621
36622        Test: accessibility/focusable-div.html
36623
36624        * accessibility/AccessibilityRenderObject.cpp:
36625        (WebCore):
36626        (WebCore::nodeHasContentEditableAttributeSet):
36627        (WebCore::AccessibilityRenderObject::title):
36628        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
36629
366302012-08-29  Adam Barth  <abarth@webkit.org>
36631
36632        Deploy ASCIILiteral hotness throughout WebCore
36633        https://bugs.webkit.org/show_bug.cgi?id=95282
36634
36635        Reviewed by Eric Seidel.
36636
36637        As recommended by http://trac.webkit.org/wiki/EfficientStrings.
36638        This patch converts all the DEFINE_STATIC_LOCAL Strings.
36639
36640        * Modules/indexeddb/IDBDatabase.cpp:
36641        (WebCore::IDBDatabase::transaction):
36642        * Modules/indexeddb/IDBIndex.cpp:
36643        (WebCore::IDBIndex::openCursor):
36644        (WebCore::IDBIndex::openKeyCursor):
36645        * Modules/indexeddb/IDBObjectStore.cpp:
36646        (WebCore::IDBObjectStore::openCursor):
36647        * Modules/mediastream/MediaStreamTrack.cpp:
36648        (WebCore::MediaStreamTrack::kind):
36649        * css/CSSPropertySourceData.cpp:
36650        (WebCore::CSSPropertySourceData::toString):
36651        * dom/Document.cpp:
36652        (WebCore::Document::processHttpEquiv):
36653        * dom/MicroDataItemList.cpp:
36654        (WebCore::MicroDataItemList::undefinedItemType):
36655        * dom/ScriptElement.cpp:
36656        (WebCore::ScriptElement::notifyFinished):
36657        * editing/MarkupAccumulator.cpp:
36658        (WebCore::MarkupAccumulator::shouldAddNamespaceElement):
36659        * html/FormController.cpp:
36660        (WebCore::formStateSignature):
36661        * html/HTMLTrackElement.cpp:
36662        (WebCore::HTMLTrackElement::canLoadUrl):
36663        * html/ImageInputType.cpp:
36664        (WebCore::ImageInputType::appendFormData):
36665        * html/canvas/CanvasRenderingContext2D.cpp:
36666        (WebCore::CanvasRenderingContext2D::getImageData):
36667        * html/parser/XSSAuditor.cpp:
36668        (WebCore::XSSAuditor::init):
36669        (WebCore::XSSAuditor::filterToken):
36670        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
36671        * inspector/InspectorCSSAgent.cpp:
36672        (WebCore::computePseudoClassMask):
36673        * inspector/InspectorDebuggerAgent.cpp:
36674        (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
36675        * inspector/InspectorIndexedDBAgent.cpp:
36676        (WebCore):
36677        * inspector/InspectorOverlay.cpp:
36678        * inspector/InspectorStyleSheet.cpp:
36679        (WebCore::InspectorStyle::setPropertyText):
36680        (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
36681        * loader/ImageLoader.cpp:
36682        (WebCore::ImageLoader::notifyFinished):
36683        * loader/MainResourceLoader.cpp:
36684        (WebCore::MainResourceLoader::didReceiveResponse):
36685        * loader/TextTrackLoader.cpp:
36686        (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
36687        * loader/icon/IconDatabase.cpp:
36688        (WebCore::IconDatabase::defaultDatabaseFilename):
36689        * page/ContentSecurityPolicy.cpp:
36690        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
36691        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
36692        (WebCore::CSPDirectiveList::allowInlineScript):
36693        (WebCore::CSPDirectiveList::allowInlineStyle):
36694        (WebCore::CSPDirectiveList::allowEval):
36695        (WebCore::CSPDirectiveList::allowScriptNonce):
36696        (WebCore::CSPDirectiveList::allowScriptFromSource):
36697        (WebCore::CSPDirectiveList::allowObjectFromSource):
36698        (WebCore::CSPDirectiveList::allowChildFrameFromSource):
36699        (WebCore::CSPDirectiveList::allowImageFromSource):
36700        (WebCore::CSPDirectiveList::allowStyleFromSource):
36701        (WebCore::CSPDirectiveList::allowFontFromSource):
36702        (WebCore::CSPDirectiveList::allowMediaFromSource):
36703        (WebCore::CSPDirectiveList::allowConnectToSource):
36704        (WebCore::CSPDirectiveList::allowFormAction):
36705        (WebCore::CSPDirectiveList::addDirective):
36706        * page/Page.cpp:
36707        (WebCore::Page::groupName):
36708        * platform/animation/Animation.cpp:
36709        (WebCore::Animation::initialAnimationName):
36710        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
36711        (WebCore::CookieDatabaseBackingStore::upgradeTableIfNeeded):
36712        * platform/blackberry/RenderThemeBlackBerry.cpp:
36713        (WebCore::RenderThemeBlackBerry::defaultGUIFont):
36714        * platform/chromium/ClipboardUtilitiesChromium.cpp:
36715        (WebCore::replaceNewlinesWithWindowsStyleNewlines):
36716        * platform/efl/RenderThemeEfl.cpp:
36717        (WebCore::RenderThemeEfl::systemFont):
36718        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
36719        (WebCore):
36720        * platform/win/ClipboardUtilitiesWin.cpp:
36721        (WebCore::replaceNewlinesWithWindowsStyleNewlines):
36722        * rendering/RenderThemeChromiumSkia.cpp:
36723        (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
36724        * svg/SVGAngle.cpp:
36725        (WebCore::SVGAngle::valueAsString):
36726        * svg/SVGTransform.cpp:
36727        (WebCore::SVGTransform::transformTypePrefixForParsing):
36728        * xml/parser/XMLTokenizer.cpp:
36729        (WebCore::XMLTokenizer::nextToken):
36730        * xml/parser/XMLTreeBuilder.cpp:
36731        (WebCore::XMLTreeBuilder::processXMLEntity):
36732
367332012-08-28  Adam Barth  <abarth@webkit.org>
36734
36735        Deploy ASCIILiteral and StringBuilder in more places in WebCore
36736        https://bugs.webkit.org/show_bug.cgi?id=95291
36737
36738        Reviewed by Benjamin Poulain.
36739
36740        I wanted to deploy ASCIILiteral in more places in WebCore, but there's
36741        a bunch of code that should be using StringBuilder, which I couldn't
36742        resist deploying as well.
36743
36744        * Modules/mediastream/PeerConnection00.cpp:
36745        (WebCore::PeerConnection00::createIceOptions):
36746        * bindings/js/JSBlobCustom.cpp:
36747        (WebCore::JSBlobConstructor::constructJSBlob):
36748        * bindings/v8/V8LazyEventListener.cpp:
36749        (WebCore::V8LazyEventListener::prepareListenerObject):
36750        * bindings/v8/custom/V8BlobCustom.cpp:
36751        (WebCore::V8Blob::constructorCallback):
36752        * css/CSSCanvasValue.cpp:
36753        (WebCore::CSSCanvasValue::customCssText):
36754        * css/CSSCrossfadeValue.cpp:
36755        (WebCore::CSSCrossfadeValue::customCssText):
36756        * css/CSSPageRule.cpp:
36757        (WebCore::CSSPageRule::selectorText):
36758        * css/CSSSelector.cpp:
36759        (WebCore::CSSSelector::selectorText):
36760        * editing/EditorCommand.cpp:
36761        (WebCore::executeToggleStyleInList):
36762        * editing/SmartReplaceICU.cpp:
36763        (WebCore::getSmartSet):
36764        * editing/markup.cpp:
36765        (WebCore::fillContainerFromString):
36766        * html/HTMLTitleElement.cpp:
36767        (WebCore::HTMLTitleElement::text):
36768        * inspector/InspectorConsoleAgent.cpp:
36769        (WebCore::InspectorConsoleAgent::didFailLoading):
36770        * page/EventSource.cpp:
36771        (WebCore::EventSource::didReceiveResponse):
36772        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
36773        (WebCore::platformLanguage):
36774        * platform/graphics/GraphicsLayer.cpp:
36775        (WebCore::GraphicsLayer::animationNameForTransition):
36776        * platform/network/blackberry/rss/RSSAtomParser.cpp:
36777        (WebCore::RSSAtomParser::parseContent):
36778        * platform/sql/SQLiteDatabase.cpp:
36779        (WebCore::SQLiteDatabase::open):
36780        (WebCore::SQLiteDatabase::setFullsync):
36781        (WebCore::SQLiteDatabase::maximumSize):
36782        (WebCore::SQLiteDatabase::pageSize):
36783        (WebCore::SQLiteDatabase::freeSpaceSize):
36784        (WebCore::SQLiteDatabase::totalSize):
36785        (WebCore::SQLiteDatabase::tableExists):
36786        (WebCore::SQLiteDatabase::clearAllTables):
36787        (WebCore::SQLiteDatabase::runVacuumCommand):
36788        (WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
36789        (WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
36790        * platform/win/FileSystemWin.cpp:
36791        (WebCore::bundleName):
36792        (WebCore::storageDirectory):
36793        * plugins/PluginStream.cpp:
36794        (WebCore::PluginStream::startStream):
36795        * rendering/RenderMenuList.cpp:
36796        (WebCore::RenderMenuList::setTextFromOption):
36797
367982012-08-29  Yoshifumi Inoue  <yosin@chromium.org>
36799
36800        [Forms] Make HTMLInputElement::blur()/focus() override-able by input type
36801        https://bugs.webkit.org/show_bug.cgi?id=95279
36802
36803        Reviewed by Hajime Morrita.
36804
36805        This patch allows HTMLInputElement::focus() and blur() functions to be
36806        override-able.
36807
36808        This patch is part of Shift+Tab focus navigation change for multiple
36809        field time input UI, bug 95168.
36810
36811        No new tests. This patch doesn't change behavior.
36812
36813        * dom/Element.h:
36814        (WebCore::Element): Changed blur() to virtual function.
36815        * html/HTMLInputElement.cpp:
36816        (WebCore::HTMLInputElement::blur): Added to call InputType::blur().
36817        (WebCore::HTMLInputElement::defaultBlur): Added for default implementation of blur().
36818        (WebCore::HTMLInputElement::defaultFocus): Added for default implementation of focus().
36819        (WebCore::HTMLInputElement::focus): Added to call InputType::focus()
36820        * html/HTMLInputElement.h:
36821        (HTMLInputElement): Added declarations of blur(), defaultBlur(), defaultFocus() and focus().
36822        * html/InputType.cpp:
36823        (WebCore::InputType::blur): Added to call HTMLInputElement::defaultBlur() as default implementation.
36824        (WebCore::InputType::focus):  Added to call HTMLInputElement::defaultFocus() as default implementation.
36825        * html/InputType.h:
36826        (InputType): Added declarations of blur(), and focus().
36827
368282012-08-29  Sheriff Bot  <webkit.review.bot@gmail.com>
36829
36830        Unreviewed, rolling out r126963.
36831        http://trac.webkit.org/changeset/126963
36832        https://bugs.webkit.org/show_bug.cgi?id=95298
36833
36834        Does not compile with clang (Requested by abarth on #webkit).
36835
36836        * html/HTMLInputElement.cpp:
36837        * html/HTMLInputElement.h:
36838        (HTMLInputElement):
36839        * html/InputType.cpp:
36840        * html/InputType.h:
36841        (InputType):
36842
368432012-08-28  Yoshifumi Inoue  <yosin@chromium.org>
36844
36845        [Forms] Make HTMLInputElement::blur()/focus() override-able by input type
36846        https://bugs.webkit.org/show_bug.cgi?id=95279
36847
36848        Reviewed by Hajime Morrita.
36849
36850        This patch allows HTMLInputElement::focus() and blur() functions to be
36851        override-able.
36852
36853        This patch is part of Shift+Tab focus navigation change for multiple
36854        field time input UI, bug 95168.
36855
36856        No new tests. This patch doesn't change behavior.
36857
36858        * html/HTMLInputElement.cpp:
36859        (WebCore::HTMLInputElement::blur): Added to call InputType::blur().
36860        (WebCore::HTMLInputElement::defaultBlur): Added for default implementation of blur().
36861        (WebCore::HTMLInputElement::defaultFocus): Added for default implementation of focus().
36862        (WebCore::HTMLInputElement::focus): Added to call InputType::focus()
36863        * html/HTMLInputElement.h:
36864        (HTMLInputElement): Added declarations of blur(), defaultBlur(), defaultFocus() and focus().
36865        * html/InputType.cpp:
36866        (WebCore::InputType::blur): Added to call HTMLInputElement::defaultBlur() as default implementation.
36867        (WebCore::InputType::focus):  Added to call HTMLInputElement::defaultFocus() as default implementation.
36868        * html/InputType.h:
36869        (InputType): Added declarations of blur(), and focus().
36870
368712012-08-28  Geoffrey Garen  <ggaren@apple.com>
36872
36873        Added JSScope::objectInScope(), and refactored callers to use it
36874        https://bugs.webkit.org/show_bug.cgi?id=95281
36875
36876        Reviewed by Gavin Barraclough.
36877
36878        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
36879        (WebCore::JSJavaScriptCallFrame::scopeChain):
36880        (WebCore::JSJavaScriptCallFrame::scopeType):
36881
368822012-08-28  Andrei Bucur  <abucur@adobe.com>
36883
36884        Layout Test fast/repaint/japanese-rl-selection-repaint-in-regions.html is failing after r126304
36885        https://bugs.webkit.org/show_bug.cgi?id=94730
36886
36887        Reviewed by Adam Barth.
36888
36889        Having an intermediary node between the named flow renderers and the view may introduce subtle bugs that are hard to track. Also it doesn't fix
36890        the pointless destruction of a RenderNamedFlowThread in some special cases (e.g. region->detach, destroy flow thread, region->attach, recreate flow
36891        thread).
36892        This patch proposes a new way of lazily destroying the renderers for NULL named flows, at layout time. When a renderer has no content nodes or regions
36893        attached, its named flow is considered to be in the NULL state. When starting a layout process it is a good time to go through the renderers of the
36894        NULL named flows and destroy them.
36895
36896        Tests: No functional change, the old tests should pass without issues.
36897
36898        * CMakeLists.txt:
36899        * GNUmakefile.list.am:
36900        * Target.pri:
36901        * WebCore.gypi:
36902        * WebCore.vcproj/WebCore.vcproj:
36903        * WebCore.xcodeproj/project.pbxproj:
36904        * dom/WebKitNamedFlow.cpp:
36905        (WebCore::WebKitNamedFlow::getRegionsByContent):
36906        (WebCore::WebKitNamedFlow::getRegions):
36907        (WebCore::WebKitNamedFlow::setRenderer):
36908        * rendering/FlowThreadController.cpp:
36909        (WebCore::FlowThreadController::FlowThreadController):
36910        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
36911        (WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
36912        * rendering/FlowThreadController.h:
36913        (WebCore):
36914        (FlowThreadController):
36915        * rendering/RenderFlowThreadContainer.cpp: Removed.
36916        * rendering/RenderFlowThreadContainer.h: Removed.
36917        * rendering/RenderNamedFlowThread.cpp:
36918        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
36919        (WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
36920        (WebCore::RenderNamedFlowThread::addRegionToThread):
36921        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
36922        (WebCore::RenderNamedFlowThread::registerNamedFlowContentNode):
36923        (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
36924        (WebCore::RenderNamedFlowThread::setMarkForDestruction):
36925        (WebCore):
36926        (WebCore::RenderNamedFlowThread::resetMarkForDestruction):
36927        (WebCore::RenderNamedFlowThread::isMarkedForDestruction):
36928        * rendering/RenderNamedFlowThread.h:
36929        (RenderNamedFlowThread):
36930        * rendering/RenderObject.cpp:
36931        (WebCore::RenderObject::markContainingBlocksForLayout):
36932        * rendering/RenderObject.h:
36933
369342012-08-28  Kenichi Ishibashi  <bashi@chromium.org>
36935
36936        style->fontMetrics() should be available when setting line-height
36937        https://bugs.webkit.org/show_bug.cgi?id=93327
36938
36939        Reviewed by Darin Adler.
36940
36941        Setting line-height assumes the fontMetrics are available for the affected font, but
36942        the fontMetrics won't be available immediately after setting other properties like
36943        font-size. Call styleResolver->updateFont() before setting line-height to update fontMetrics.
36944
36945        Added a test case to fast/canvas/crash-set-font.html.
36946
36947        * html/canvas/CanvasRenderingContext2D.cpp:
36948        (WebCore::CanvasRenderingContext2D::setFont):
36949        Call styleResolver->updateFont() before styleResolver->applyPropertyToCurrentStyle(CSSPropertyLineHeight,...)
36950
369512012-08-28  David Reveman  <reveman@chromium.org>
36952
36953        [Chromium] Scheduler will never process a commit until it receives a vsync tick.
36954        https://bugs.webkit.org/show_bug.cgi?id=94721
36955
36956        Reviewed by James Robinson.
36957
36958        Add updateResourcesComplete callback to CCScheduler and use this to
36959        indicate completion of texture updates instead of calling
36960        CCSchedulerClient::hasMoreResourceUpdates when receiving a vsync tick.
36961
36962        Unit tests: CCTextureUpdateControllerTest.UpdateMoreTextures
36963                    CCTextureUpdateControllerTest.HasMoreUpdates
36964                    CCTextureUpdateControllerTest.UpdatesCompleteInFiniteTime
36965
36966        * platform/graphics/chromium/cc/CCScheduler.cpp:
36967        (WebCore::CCScheduler::CCScheduler):
36968        (WebCore::CCScheduler::beginFrameComplete):
36969        (WebCore::CCScheduler::vsyncTick):
36970        (WebCore::CCScheduler::updateResourcesComplete):
36971        (WebCore):
36972        (WebCore::CCScheduler::processScheduledActions):
36973        * platform/graphics/chromium/cc/CCScheduler.h:
36974        (CCSchedulerClient):
36975        (CCScheduler):
36976        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
36977        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
36978        (WebCore::CCTextureUpdateController::updateMoreTextures):
36979        (WebCore::CCTextureUpdateController::discardUploads):
36980        (WebCore::CCTextureUpdateController::onTimerFired):
36981        (WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
36982        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
36983        (CCTextureUpdateControllerClient):
36984        (WebCore::CCTextureUpdateControllerClient::~CCTextureUpdateControllerClient):
36985        (WebCore):
36986        (WebCore::CCTextureUpdateController::create):
36987        (CCTextureUpdateController):
36988        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
36989        (WebCore::CCThreadProxy::didLoseContextOnImplThread):
36990        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
36991        (WebCore::CCThreadProxy::scheduledActionCommit):
36992        (WebCore::CCThreadProxy::updateTexturesCompleted):
36993        (WebCore):
36994        * platform/graphics/chromium/cc/CCThreadProxy.h:
36995        (WebCore):
36996
369972012-08-28  John Bates  <jbates@google.com>
36998
36999        [Chromium] Update some compositor trace events
37000        https://bugs.webkit.org/show_bug.cgi?id=95275
37001
37002        Reviewed by James Robinson.
37003
37004        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
37005        (WebCore::CCFrameRateController::setActive):
37006        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
37007        (WebCore::CCThreadProxy::onVSyncParametersChanged):
37008
370092012-08-28  Adam Barth  <abarth@webkit.org>
37010
37011        crypto.getRandomValues should throw an exception when given a big array
37012        https://bugs.webkit.org/show_bug.cgi?id=95269
37013
37014        Reviewed by Eric Seidel.
37015
37016        The W3C Web Cryptography Working Group has taken up specifying
37017        window.crypto. The latest draft calls for getRandomValues to throw an
37018        exception when given an array that's large.
37019
37020        Test: security/crypto-random-values-limits.html
37021
37022        * page/Crypto.cpp:
37023        (WebCore::Crypto::getRandomValues):
37024
370252012-08-28  Tom Sepez  <tsepez@chromium.org>
37026
37027        CSP doesn't turn off eval, etc. in Web Workers
37028        https://bugs.webkit.org/show_bug.cgi?id=93392
37029
37030        Reviewed by Adam Barth.
37031
37032        On the JSC side, the blocking of eval() in workers was handled correctly, so it is
37033        a matter of adding calls check the policy for setTimeout and SetInterval.  On the v8
37034        side, it is a matter of handling the above, plus eval().
37035
37036        On the v8 side, the v8 context isn't available when the callers want to disable eval.
37037        Rather than creating it earlier, which is problematic, remember the setting in the
37038        WorkerContextExecutionProxy and apply before the next call to its evaluate() method.
37039
37040        Tests: http/tests/security/contentSecurityPolicy/worker-eval-blocked.html
37041               http/tests/security/contentSecurityPolicy/worker-function-function-blocked.html
37042
37043        * bindings/js/JSWorkerContextCustom.cpp:
37044        (WebCore::JSWorkerContext::setTimeout):
37045        (WebCore::JSWorkerContext::setInterval):
37046        * bindings/v8/WorkerContextExecutionProxy.cpp:
37047        (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
37048        (WebCore::WorkerContextExecutionProxy::evaluate):
37049        (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
37050        (WebCore):
37051        * bindings/v8/WorkerContextExecutionProxy.h:
37052        (WorkerContextExecutionProxy):
37053        * bindings/v8/WorkerScriptController.cpp:
37054        (WebCore::WorkerScriptController::disableEval):
37055        * bindings/v8/custom/V8WorkerContextCustom.cpp:
37056        (WebCore::SetTimeoutOrInterval):
37057
370582012-08-28  Aaron Colwell  <acolwell@chromium.org>
37059
37060        Make MediaSource event dispatch asynchronous.
37061        https://bugs.webkit.org/show_bug.cgi?id=95217
37062
37063        Reviewed by Eric Carlson.
37064
37065        Update MediaSource & SourceBufferList to use a GenericEventQueue to dispatch events 
37066        instead of using synchronous dispatch.
37067
37068        Test: http/tests/media/media-source/video-media-source-async-events.html
37069
37070        * Modules/mediasource/MediaSource.cpp:
37071        (WebCore::MediaSource::MediaSource): Create GenericEventQueue & pass a pointer to SourceBufferList.
37072        (WebCore::MediaSource::addSourceBuffer):
37073        (WebCore::MediaSource::setReadyState): Updated to use new scheduleEvent() helper method.
37074        (WebCore::MediaSource::scheduleEvent): New method for creating events and adding them to the event queue.
37075        (WebCore):
37076        * Modules/mediasource/MediaSource.h: Added GenericEventQueue member and scheduleEvent() signature.
37077        (MediaSource):
37078        * Modules/mediasource/SourceBufferList.cpp:
37079        (WebCore::SourceBufferList::SourceBufferList):
37080        (WebCore::SourceBufferList::remove):
37081        (WebCore::SourceBufferList::createAndFireEvent): Updated to queue events instead of synchronously dispatch them.
37082        * Modules/mediasource/SourceBufferList.h:
37083        (WebCore):
37084        (WebCore::SourceBufferList::create):
37085        (SourceBufferList):
37086
370872012-08-28  Leandro Gracia Gil  <leandrogracia@chromium.org>
37088
37089        Content detection should not disrupt the page behaviour
37090        https://bugs.webkit.org/show_bug.cgi?id=94727
37091
37092        Reviewed by Adam Barth.
37093
37094        Tested by WebViewTest::DetectContentAroundPosition.
37095
37096        * dom/Node.cpp:
37097        (WebCore::Node::willRespondToTouchEvents): checks if a node listens to touch events. Very similar to willRespondToMouseClickEvents.
37098        (WebCore):
37099        * dom/Node.h:
37100        (Node):
37101
371022012-08-28  Simon Fraser  <simon.fraser@apple.com>
37103
37104        Handle sticky that overflows its container
37105        https://bugs.webkit.org/show_bug.cgi?id=95260
37106
37107        Reviewed by Ojan Vafai.
37108
37109        When an element with position:sticky overflows its container,
37110        don't have the sticky code push it back inside that container.
37111        It will just never get offset in the sticky direction.
37112
37113        Test: fast/css/sticky/sticky-overflowing.html
37114
37115        * rendering/RenderBoxModelObject.cpp:
37116        (WebCore::RenderBoxModelObject::stickyPositionOffset):
37117
371182012-08-28  Mark Pilgrim  <pilgrim@chromium.org>
37119
37120        [Chromium] Remove decodeAudioFileData from PlatformSupport
37121        https://bugs.webkit.org/show_bug.cgi?id=95250
37122
37123        Reviewed by Adam Barth.
37124
37125        Part of a refactoring series. See tracking bug 82948.
37126
37127        * platform/audio/chromium/AudioBusChromium.cpp:
37128        (WebCore::decodeAudioFileData):
37129        (WebCore):
37130        (WebCore::AudioBus::loadPlatformResource):
37131        (WebCore::createBusFromInMemoryAudioFile):
37132        * platform/chromium/PlatformSupport.h:
37133        (PlatformSupport):
37134
371352012-08-27  Alexandru Chiculita  <achicu@adobe.com>
37136
37137        [CSS Filters] Filters should render using sRGB until the specification says how it works
37138        https://bugs.webkit.org/show_bug.cgi?id=94372
37139
37140        Reviewed by Dirk Schulze.
37141
37142        The short-hand version of the CSS Filters should render using sRGB until a CSS property is added 
37143        to allow choosing the color space to be used when computing the filters. 
37144        For now I've just made all the CSS filters use sRGB by defualt. Note that this change has no effect on SVG filters.
37145
37146        Test: css3/filters/null-effect-check.html
37147
37148        * rendering/FilterEffectRenderer.cpp:
37149        (WebCore::FilterEffectRenderer::build):
37150
371512012-08-28  Sheriff Bot  <webkit.review.bot@gmail.com>
37152
37153        Unreviewed, rolling out r126914.
37154        http://trac.webkit.org/changeset/126914
37155        https://bugs.webkit.org/show_bug.cgi?id=95239
37156
37157        it breaks everything and fixes nothing (Requested by pizlo on
37158        #webkit).
37159
37160        * Modules/geolocation/Geolocation.cpp:
37161        (WebCore::Geolocation::Watchers::find):
37162        (WebCore::Geolocation::Watchers::remove):
37163        * Modules/indexeddb/IDBDatabase.cpp:
37164        (WebCore::IDBDatabase::objectStoreNames):
37165        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37166        (WebCore::IDBDatabaseBackendImpl::metadata):
37167        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
37168        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
37169        (WebCore::IDBFactoryBackendImpl::openBackingStore):
37170        (WebCore::IDBFactoryBackendImpl::open):
37171        * Modules/indexeddb/IDBObjectStore.cpp:
37172        (WebCore::IDBObjectStore::indexNames):
37173        (WebCore::IDBObjectStore::put):
37174        (WebCore::IDBObjectStore::index):
37175        (WebCore::IDBObjectStore::deleteIndex):
37176        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37177        (WebCore::IDBObjectStoreBackendImpl::metadata):
37178        (WebCore::makeIndexWriters):
37179        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
37180        * Modules/indexeddb/IDBTransaction.cpp:
37181        (WebCore::IDBTransaction::objectStore):
37182        (WebCore::IDBTransaction::objectStoreDeleted):
37183        (WebCore::IDBTransaction::onAbort):
37184        (WebCore::IDBTransaction::dispatchEvent):
37185        * Modules/webdatabase/AbstractDatabase.cpp:
37186        (WebCore::AbstractDatabase::performOpenAndVerify):
37187        * Modules/webdatabase/DatabaseTracker.cpp:
37188        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
37189        * Modules/webdatabase/OriginUsageRecord.cpp:
37190        (WebCore::OriginUsageRecord::diskUsage):
37191        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
37192        (WebCore::SQLTransactionCoordinator::acquireLock):
37193        (WebCore::SQLTransactionCoordinator::releaseLock):
37194        (WebCore::SQLTransactionCoordinator::shutdown):
37195        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
37196        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
37197        * Modules/webdatabase/chromium/QuotaTracker.cpp:
37198        (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
37199        (WebCore::QuotaTracker::updateDatabaseSize):
37200        * Modules/websockets/WebSocketDeflateFramer.cpp:
37201        (WebCore::WebSocketExtensionDeflateFrame::processResponse):
37202        * Modules/websockets/WebSocketExtensionDispatcher.cpp:
37203        (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
37204        * accessibility/AXObjectCache.cpp:
37205        (WebCore::AXObjectCache::~AXObjectCache):
37206        * bindings/gobject/DOMObjectCache.cpp:
37207        (WebKit::DOMObjectCache::clearByFrame):
37208        * bindings/js/DOMObjectHashTableMap.h:
37209        (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
37210        (WebCore::DOMObjectHashTableMap::get):
37211        * bindings/js/JSDOMBinding.cpp:
37212        (WebCore::cacheDOMStructure):
37213        * bindings/js/JSDOMGlobalObject.cpp:
37214        (WebCore::JSDOMGlobalObject::visitChildren):
37215        * bindings/js/JSDOMGlobalObject.h:
37216        (WebCore::getDOMConstructor):
37217        * bindings/js/PageScriptDebugServer.cpp:
37218        (WebCore::PageScriptDebugServer::addListener):
37219        (WebCore::PageScriptDebugServer::removeListener):
37220        * bindings/js/ScriptCachedFrameData.cpp:
37221        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
37222        (WebCore::ScriptCachedFrameData::restore):
37223        * bindings/js/ScriptController.cpp:
37224        (WebCore::ScriptController::~ScriptController):
37225        (WebCore::ScriptController::clearWindowShell):
37226        (WebCore::ScriptController::attachDebugger):
37227        (WebCore::ScriptController::updateDocument):
37228        (WebCore::ScriptController::createRootObject):
37229        (WebCore::ScriptController::collectIsolatedContexts):
37230        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
37231        (WebCore::ScriptController::clearScriptObjects):
37232        * bindings/js/ScriptController.h:
37233        (WebCore::ScriptController::windowShell):
37234        (WebCore::ScriptController::existingWindowShell):
37235        * bindings/js/ScriptDebugServer.cpp:
37236        (WebCore::ScriptDebugServer::setBreakpoint):
37237        (WebCore::ScriptDebugServer::removeBreakpoint):
37238        (WebCore::ScriptDebugServer::hasBreakpoint):
37239        * bindings/js/SerializedScriptValue.cpp:
37240        (WebCore::CloneSerializer::checkForDuplicate):
37241        (WebCore::CloneSerializer::dumpIfTerminal):
37242        (WebCore::CloneSerializer::write):
37243        * bindings/scripts/CodeGeneratorV8.pm:
37244        (GenerateImplementation):
37245        * bindings/scripts/test/V8/V8Float64Array.cpp:
37246        (WebCore::V8Float64Array::GetRawTemplate):
37247        (WebCore::V8Float64Array::GetTemplate):
37248        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
37249        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
37250        (WebCore::V8TestActiveDOMObject::GetTemplate):
37251        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
37252        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
37253        (WebCore::V8TestCustomNamedGetter::GetTemplate):
37254        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
37255        (WebCore::V8TestEventConstructor::GetRawTemplate):
37256        (WebCore::V8TestEventConstructor::GetTemplate):
37257        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
37258        (WebCore::V8TestEventTarget::GetRawTemplate):
37259        (WebCore::V8TestEventTarget::GetTemplate):
37260        * bindings/scripts/test/V8/V8TestException.cpp:
37261        (WebCore::V8TestException::GetRawTemplate):
37262        (WebCore::V8TestException::GetTemplate):
37263        * bindings/scripts/test/V8/V8TestInterface.cpp:
37264        (WebCore::V8TestInterface::GetRawTemplate):
37265        (WebCore::V8TestInterface::GetTemplate):
37266        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
37267        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
37268        (WebCore::V8TestMediaQueryListListener::GetTemplate):
37269        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
37270        (WebCore::V8TestNamedConstructor::GetRawTemplate):
37271        (WebCore::V8TestNamedConstructor::GetTemplate):
37272        * bindings/scripts/test/V8/V8TestNode.cpp:
37273        (WebCore::V8TestNode::GetRawTemplate):
37274        (WebCore::V8TestNode::GetTemplate):
37275        * bindings/scripts/test/V8/V8TestObj.cpp:
37276        (WebCore::V8TestObj::GetRawTemplate):
37277        (WebCore::V8TestObj::GetTemplate):
37278        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
37279        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
37280        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
37281        * bindings/v8/DOMWrapperWorld.cpp:
37282        (WebCore::DOMWrapperWorld::deallocate):
37283        (WebCore::DOMWrapperWorld::getOrCreateIsolatedWorld):
37284        * bindings/v8/NPV8Object.cpp:
37285        (WebCore::freeV8NPObject):
37286        (WebCore::npCreateV8ScriptObject):
37287        * bindings/v8/ScriptController.cpp:
37288        (WebCore::ScriptController::clearScriptObjects):
37289        (WebCore::ScriptController::resetIsolatedWorlds):
37290        (WebCore::ScriptController::evaluateInIsolatedWorld):
37291        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
37292        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
37293        (WebCore::ScriptController::collectIsolatedContexts):
37294        * bindings/v8/SerializedScriptValue.cpp:
37295        * bindings/v8/V8DOMMap.h:
37296        (WebCore::WeakReferenceMap::removeIfPresent):
37297        (WebCore::WeakReferenceMap::visit):
37298        * bindings/v8/V8GCController.cpp:
37299        (WebCore::enumerateGlobalHandles):
37300        * bindings/v8/V8PerContextData.cpp:
37301        (WebCore::V8PerContextData::dispose):
37302        * bindings/v8/npruntime.cpp:
37303        * bridge/IdentifierRep.cpp:
37304        (WebCore::IdentifierRep::get):
37305        * bridge/NP_jsobject.cpp:
37306        (ObjectMap::add):
37307        (ObjectMap::remove):
37308        * bridge/jni/jsc/JavaClassJSC.cpp:
37309        (JavaClass::~JavaClass):
37310        * bridge/qt/qt_instance.cpp:
37311        (JSC::Bindings::WeakMap::set):
37312        * bridge/runtime_root.cpp:
37313        (JSC::Bindings::RootObject::invalidate):
37314        * css/CSSCanvasValue.cpp:
37315        (WebCore::CSSCanvasValue::canvasChanged):
37316        (WebCore::CSSCanvasValue::canvasResized):
37317        * css/CSSComputedStyleDeclaration.cpp:
37318        (WebCore::counterToCSSValue):
37319        * css/CSSCrossfadeValue.cpp:
37320        (WebCore::CSSCrossfadeValue::crossfadeChanged):
37321        * css/CSSFontFaceSource.cpp:
37322        (WebCore::CSSFontFaceSource::getFontData):
37323        * css/CSSFontSelector.cpp:
37324        (WebCore::CSSFontSelector::addFontFaceRule):
37325        (WebCore::CSSFontSelector::getFontData):
37326        * css/CSSImageGeneratorValue.cpp:
37327        (WebCore::CSSImageGeneratorValue::addClient):
37328        (WebCore::CSSImageGeneratorValue::removeClient):
37329        (WebCore::CSSImageGeneratorValue::getImage):
37330        * css/CSSSegmentedFontFace.cpp:
37331        (WebCore::CSSSegmentedFontFace::getFontData):
37332        * css/CSSSelector.cpp:
37333        (WebCore::CSSSelector::parsePseudoType):
37334        * css/CSSValuePool.cpp:
37335        (WebCore::CSSValuePool::createColorValue):
37336        (WebCore::CSSValuePool::createFontFamilyValue):
37337        (WebCore::CSSValuePool::createFontFaceValue):
37338        * css/PropertySetCSSStyleDeclaration.cpp:
37339        (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
37340        * css/StyleBuilder.cpp:
37341        (WebCore::ApplyPropertyCounter::applyInheritValue):
37342        (WebCore::ApplyPropertyCounter::applyValue):
37343        * css/StyleResolver.cpp:
37344        (WebCore::StyleResolver::collectFeatures):
37345        (WebCore::StyleResolver::ruleSetForScope):
37346        (WebCore::StyleResolver::appendAuthorStylesheets):
37347        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
37348        (WebCore::StyleResolver::collectMatchingRulesForList):
37349        * css/StyleSheetContents.cpp:
37350        (WebCore::StyleSheetContents::parserAddNamespace):
37351        (WebCore::StyleSheetContents::determineNamespace):
37352        * dom/CheckedRadioButtons.cpp:
37353        (WebCore::CheckedRadioButtons::addButton):
37354        (WebCore::CheckedRadioButtons::removeButton):
37355        * dom/ChildListMutationScope.cpp:
37356        (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
37357        (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
37358        (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
37359        (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
37360        * dom/Document.cpp:
37361        (WebCore::Document::pageGroupUserSheets):
37362        (WebCore::Document::windowNamedItems):
37363        (WebCore::Document::documentNamedItems):
37364        (WebCore::Document::getCSSCanvasElement):
37365        * dom/DocumentMarkerController.cpp:
37366        (WebCore::DocumentMarkerController::markerContainingPoint):
37367        (WebCore::DocumentMarkerController::renderedRectsForMarkers):
37368        (WebCore::DocumentMarkerController::removeMarkers):
37369        (WebCore::DocumentMarkerController::repaintMarkers):
37370        (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
37371        (WebCore::DocumentMarkerController::showMarkers):
37372        * dom/DocumentOrderedMap.cpp:
37373        (WebCore::DocumentOrderedMap::remove):
37374        * dom/ElementAttributeData.cpp:
37375        (WebCore::ensureAttrListForElement):
37376        * dom/EventDispatcher.cpp:
37377        (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
37378        * dom/EventListenerMap.cpp:
37379        (WebCore::EventListenerMap::eventTypes):
37380        (WebCore::EventListenerMap::add):
37381        (WebCore::EventListenerMap::remove):
37382        (WebCore::EventListenerMap::find):
37383        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
37384        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
37385        (WebCore::EventListenerIterator::nextListener):
37386        * dom/IdTargetObserverRegistry.cpp:
37387        (WebCore::IdTargetObserverRegistry::addObserver):
37388        (WebCore::IdTargetObserverRegistry::removeObserver):
37389        * dom/MemoryInstrumentation.h:
37390        (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
37391        (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
37392        * dom/MutationObserverInterestGroup.cpp:
37393        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
37394        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
37395        * dom/Node.cpp:
37396        (WebCore::Node::dumpStatistics):
37397        (WebCore::Node::clearRareData):
37398        (WebCore::NodeListsNodeData::invalidateCaches):
37399        (WebCore::Node::collectMatchingObserversForMutation):
37400        * dom/NodeRareData.h:
37401        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
37402        (WebCore::NodeListsNodeData::addCacheWithName):
37403        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
37404        (WebCore::NodeListsNodeData::adoptTreeScope):
37405        * dom/ProcessingInstruction.cpp:
37406        (WebCore::ProcessingInstruction::checkStyleSheet):
37407        * dom/ScriptExecutionContext.cpp:
37408        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
37409        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
37410        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
37411        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
37412        (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
37413        * dom/SelectorQuery.cpp:
37414        (WebCore::SelectorQueryCache::add):
37415        * dom/SpaceSplitString.cpp:
37416        (WebCore::SpaceSplitStringData::create):
37417        * dom/StyledElement.cpp:
37418        (WebCore::StyledElement::updateAttributeStyle):
37419        * editing/mac/AlternativeTextUIController.mm:
37420        (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
37421        * html/FormController.cpp:
37422        (WebCore::SavedFormState::serializeTo):
37423        (WebCore::SavedFormState::appendControlState):
37424        (WebCore::SavedFormState::takeControlState):
37425        (WebCore::SavedFormState::getReferencedFilePaths):
37426        (WebCore::FormKeyGenerator::formKey):
37427        (WebCore::FormController::createSavedFormStateMap):
37428        (WebCore::FormController::formElementsState):
37429        (WebCore::FormController::takeStateForFormElement):
37430        (WebCore::FormController::getReferencedFilePaths):
37431        * html/HTMLCollection.cpp:
37432        (WebCore::HTMLCollectionCacheBase::append):
37433        * html/canvas/WebGLFramebuffer.cpp:
37434        (WebCore::WebGLFramebuffer::getAttachment):
37435        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
37436        (WebCore::WebGLFramebuffer::checkStatus):
37437        (WebCore::WebGLFramebuffer::deleteObjectImpl):
37438        (WebCore::WebGLFramebuffer::initializeAttachments):
37439        * inspector/CodeGeneratorInspector.py:
37440        * inspector/DOMPatchSupport.cpp:
37441        (WebCore::DOMPatchSupport::diff):
37442        (WebCore::DOMPatchSupport::innerPatchChildren):
37443        (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
37444        * inspector/InjectedScriptManager.cpp:
37445        (WebCore::InjectedScriptManager::injectedScriptForId):
37446        (WebCore::InjectedScriptManager::injectedScriptIdFor):
37447        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
37448        (WebCore::InjectedScriptManager::releaseObjectGroup):
37449        (WebCore::InjectedScriptManager::injectedScriptFor):
37450        * inspector/InspectorCSSAgent.cpp:
37451        (WebCore::SelectorProfile::commitSelector):
37452        (WebCore::SelectorProfile::commitSelectorTime):
37453        (WebCore::SelectorProfile::toInspectorObject):
37454        (WebCore::InspectorCSSAgent::forcePseudoState):
37455        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
37456        (WebCore::InspectorCSSAgent::assertStyleSheetForId):
37457        (WebCore::InspectorCSSAgent::didRemoveDOMNode):
37458        (WebCore::InspectorCSSAgent::didModifyDOMAttr):
37459        (WebCore::InspectorCSSAgent::resetPseudoStates):
37460        * inspector/InspectorConsoleAgent.cpp:
37461        (WebCore::InspectorConsoleAgent::stopTiming):
37462        (WebCore::InspectorConsoleAgent::count):
37463        * inspector/InspectorDOMAgent.cpp:
37464        (WebCore::InspectorDOMAgent::nodeForId):
37465        (WebCore::InspectorDOMAgent::performSearch):
37466        (WebCore::InspectorDOMAgent::getSearchResults):
37467        * inspector/InspectorDOMDebuggerAgent.cpp:
37468        (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
37469        * inspector/InspectorDOMStorageAgent.cpp:
37470        (WebCore::InspectorDOMStorageAgent::clearFrontend):
37471        (WebCore::InspectorDOMStorageAgent::enable):
37472        (WebCore::InspectorDOMStorageAgent::storageId):
37473        (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
37474        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
37475        (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
37476        * inspector/InspectorDatabaseAgent.cpp:
37477        (WebCore::InspectorDatabaseAgent::enable):
37478        (WebCore::InspectorDatabaseAgent::databaseId):
37479        (WebCore::InspectorDatabaseAgent::findByFileName):
37480        (WebCore::InspectorDatabaseAgent::databaseForId):
37481        * inspector/InspectorDebuggerAgent.cpp:
37482        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
37483        (WebCore::InspectorDebuggerAgent::removeBreakpoint):
37484        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
37485        (WebCore::InspectorDebuggerAgent::searchInContent):
37486        (WebCore::InspectorDebuggerAgent::getScriptSource):
37487        (WebCore::InspectorDebuggerAgent::didParseSource):
37488        * inspector/InspectorIndexedDBAgent.cpp:
37489        (WebCore):
37490        * inspector/InspectorMemoryAgent.cpp:
37491        (WebCore):
37492        * inspector/InspectorPageAgent.cpp:
37493        (WebCore::cachedResourcesForFrame):
37494        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
37495        (WebCore::InspectorPageAgent::frameDetached):
37496        * inspector/InspectorProfilerAgent.cpp:
37497        (WebCore::InspectorProfilerAgent::getProfileHeaders):
37498        (WebCore):
37499        (WebCore::InspectorProfilerAgent::getProfile):
37500        * inspector/InspectorResourceAgent.cpp:
37501        (WebCore::buildObjectForHeaders):
37502        (WebCore::InspectorResourceAgent::willSendRequest):
37503        * inspector/InspectorState.cpp:
37504        (WebCore::InspectorState::getBoolean):
37505        (WebCore::InspectorState::getString):
37506        (WebCore::InspectorState::getLong):
37507        (WebCore::InspectorState::getDouble):
37508        (WebCore::InspectorState::getObject):
37509        * inspector/InspectorStyleSheet.cpp:
37510        (WebCore::InspectorStyle::styleWithProperties):
37511        (WebCore::InspectorStyleSheet::inspectorStyleForId):
37512        * inspector/InspectorValues.cpp:
37513        (WebCore::InspectorObjectBase::get):
37514        (WebCore::InspectorObjectBase::writeJSON):
37515        * inspector/InspectorWorkerAgent.cpp:
37516        (WebCore::InspectorWorkerAgent::workerContextTerminated):
37517        (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
37518        (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
37519        * inspector/NetworkResourcesData.cpp:
37520        (WebCore::NetworkResourcesData::removeCachedResource):
37521        (WebCore::NetworkResourcesData::clear):
37522        * loader/CrossOriginAccessControl.cpp:
37523        (WebCore::isSimpleCrossOriginAccessRequest):
37524        (WebCore::createAccessControlPreflightRequest):
37525        * loader/CrossOriginPreflightResultCache.cpp:
37526        (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
37527        (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
37528        * loader/DocumentLoader.cpp:
37529        (WebCore::DocumentLoader::getSubresources):
37530        (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
37531        * loader/MainResourceLoader.cpp:
37532        (WebCore::MainResourceLoader::didReceiveResponse):
37533        * loader/ResourceLoadScheduler.cpp:
37534        (WebCore::ResourceLoadScheduler::servePendingRequests):
37535        * loader/appcache/ApplicationCache.cpp:
37536        (WebCore::ApplicationCache::removeResource):
37537        (WebCore::ApplicationCache::clearStorageID):
37538        (WebCore::ApplicationCache::dump):
37539        * loader/appcache/ApplicationCacheGroup.cpp:
37540        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
37541        (WebCore::ApplicationCacheGroup::startLoadingEntry):
37542        (WebCore::ApplicationCacheGroup::addEntry):
37543        * loader/appcache/ApplicationCacheHost.cpp:
37544        (WebCore::ApplicationCacheHost::fillResourceList):
37545        * loader/appcache/ApplicationCacheResource.cpp:
37546        (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
37547        * loader/appcache/ApplicationCacheStorage.cpp:
37548        (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
37549        (WebCore::ApplicationCacheStorage::cacheGroupForURL):
37550        (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
37551        (WebCore::ApplicationCacheStorage::store):
37552        (WebCore::ApplicationCacheStorage::empty):
37553        (WebCore::ApplicationCacheStorage::storeCopyOfCache):
37554        * loader/archive/ArchiveFactory.cpp:
37555        (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
37556        * loader/cache/CachedRawResource.cpp:
37557        (WebCore::CachedRawResource::canReuse):
37558        * loader/cache/CachedResource.cpp:
37559        (WebCore::CachedResource::switchClientsToRevalidatedResource):
37560        (WebCore::CachedResource::updateResponseAfterRevalidation):
37561        * loader/cache/CachedResourceClientWalker.h:
37562        (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
37563        * loader/cache/CachedResourceLoader.cpp:
37564        (WebCore::CachedResourceLoader::~CachedResourceLoader):
37565        (WebCore::CachedResourceLoader::requestResource):
37566        (WebCore::CachedResourceLoader::setAutoLoadImages):
37567        (WebCore::CachedResourceLoader::removeCachedResource):
37568        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
37569        (WebCore::CachedResourceLoader::reportMemoryUsage):
37570        * loader/cache/MemoryCache.cpp:
37571        (WebCore::MemoryCache::removeResourcesWithOrigin):
37572        (WebCore::MemoryCache::getOriginsWithCache):
37573        (WebCore::MemoryCache::getStatistics):
37574        (WebCore::MemoryCache::reportMemoryUsage):
37575        (WebCore::MemoryCache::setDisabled):
37576        * loader/icon/IconDatabase.cpp:
37577        (WebCore::IconDatabase::removeAllIcons):
37578        (WebCore::IconDatabase::iconRecordCountWithData):
37579        (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
37580        * page/DOMWindow.cpp:
37581        (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
37582        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
37583        * page/EventHandler.cpp:
37584        (WebCore::EventHandler::handleTouchEvent):
37585        * page/Frame.cpp:
37586        (WebCore::Frame::injectUserScripts):
37587        * page/PageGroup.cpp:
37588        (WebCore::PageGroup::pageGroup):
37589        (WebCore::PageGroup::closeLocalStorage):
37590        (WebCore::PageGroup::clearLocalStorageForAllOrigins):
37591        (WebCore::PageGroup::clearLocalStorageForOrigin):
37592        (WebCore::PageGroup::syncLocalStorage):
37593        (WebCore::PageGroup::addUserScriptToWorld):
37594        (WebCore::PageGroup::addUserStyleSheetToWorld):
37595        (WebCore::PageGroup::removeUserScriptFromWorld):
37596        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
37597        * page/PageSerializer.cpp:
37598        (WebCore::PageSerializer::urlForBlankFrame):
37599        * page/SecurityPolicy.cpp:
37600        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
37601        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
37602        * page/Settings.cpp:
37603        (WebCore::setGenericFontFamilyMap):
37604        (WebCore::getGenericFontFamilyForScript):
37605        * page/SpeechInput.cpp:
37606        (WebCore::SpeechInput::registerListener):
37607        * page/WindowFeatures.cpp:
37608        (WebCore::WindowFeatures::boolFeature):
37609        (WebCore::WindowFeatures::floatFeature):
37610        * page/animation/AnimationController.cpp:
37611        (WebCore::AnimationControllerPrivate::updateAnimations):
37612        (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
37613        (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
37614        (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
37615        * page/animation/CompositeAnimation.cpp:
37616        (WebCore::CompositeAnimation::clearRenderer):
37617        (WebCore::CompositeAnimation::updateTransitions):
37618        (WebCore::CompositeAnimation::updateKeyframeAnimations):
37619        (WebCore::CompositeAnimation::animate):
37620        (WebCore::CompositeAnimation::getAnimatedStyle):
37621        (WebCore::CompositeAnimation::setAnimating):
37622        (WebCore::CompositeAnimation::timeToNextService):
37623        (WebCore::CompositeAnimation::getAnimationForProperty):
37624        (WebCore::CompositeAnimation::suspendAnimations):
37625        (WebCore::CompositeAnimation::resumeAnimations):
37626        (WebCore::CompositeAnimation::overrideImplicitAnimations):
37627        (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
37628        (WebCore::CompositeAnimation::isAnimatingProperty):
37629        (WebCore::CompositeAnimation::numberOfActiveAnimations):
37630        * platform/Language.cpp:
37631        (WebCore::languageDidChange):
37632        * platform/MIMETypeRegistry.cpp:
37633        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
37634        * platform/audio/HRTFElevation.cpp:
37635        (WebCore::getConcatenatedImpulseResponsesForSubject):
37636        * platform/blackberry/CookieManager.cpp:
37637        (WebCore::CookieManager::generateHtmlFragmentForCookies):
37638        (WebCore::CookieManager::removeAllCookies):
37639        * platform/blackberry/CookieMap.cpp:
37640        (WebCore::CookieMap::removeOldestCookie):
37641        (WebCore::CookieMap::getAllChildCookies):
37642        * platform/cf/BinaryPropertyList.cpp:
37643        (WebCore::BinaryPropertyListPlan::writeIntegerArray):
37644        * platform/chromium/support/WebHTTPLoadInfo.cpp:
37645        (WebKit::addHeader):
37646        * platform/chromium/support/WebURLRequest.cpp:
37647        (WebKit::WebURLRequest::visitHTTPHeaderFields):
37648        * platform/chromium/support/WebURLResponse.cpp:
37649        (WebKit::WebURLResponse::addHTTPHeaderField):
37650        (WebKit::WebURLResponse::visitHTTPHeaderFields):
37651        * platform/graphics/DisplayRefreshMonitor.cpp:
37652        (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
37653        (WebCore::DisplayRefreshMonitorManager::unregisterClient):
37654        * platform/graphics/FontCache.cpp:
37655        (WebCore::FontCache::getCachedFontPlatformData):
37656        (WebCore::FontCache::getVerticalData):
37657        (WebCore::FontCache::getCachedFontData):
37658        (WebCore::FontCache::releaseFontData):
37659        (WebCore::FontCache::purgeInactiveFontData):
37660        * platform/graphics/GlyphPageTreeNode.cpp:
37661        (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
37662        (WebCore::GlyphPageTreeNode::pageCount):
37663        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
37664        (WebCore::GlyphPageTreeNode::pruneTreeFontData):
37665        (WebCore::GlyphPageTreeNode::pruneCustomFontData):
37666        (WebCore::GlyphPageTreeNode::pruneFontData):
37667        (WebCore::GlyphPageTreeNode::showSubtree):
37668        (showGlyphPageTrees):
37669        * platform/graphics/TiledBackingStore.cpp:
37670        (WebCore::TiledBackingStore::updateTileBuffers):
37671        (WebCore::TiledBackingStore::resizeEdgeTiles):
37672        (WebCore::TiledBackingStore::setKeepRect):
37673        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
37674        (WebCore::AVFWrapper::avfWrapperForCallbackContext):
37675        * platform/graphics/blackberry/LayerTiler.cpp:
37676        (WebCore::LayerTiler::layerVisibilityChanged):
37677        (WebCore::LayerTiler::uploadTexturesIfNeeded):
37678        (WebCore::LayerTiler::addTileJob):
37679        (WebCore::LayerTiler::deleteTextures):
37680        (WebCore::LayerTiler::pruneTextures):
37681        (WebCore::LayerTiler::bindContentsTexture):
37682        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
37683        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
37684        (WebCore::TextureCacheCompositingThread::textureForColor):
37685        * platform/graphics/ca/GraphicsLayerCA.cpp:
37686        (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
37687        (WebCore::GraphicsLayerCA::pauseAnimation):
37688        (WebCore::GraphicsLayerCA::layerDidDisplay):
37689        (WebCore::GraphicsLayerCA::updateGeometry):
37690        (WebCore::GraphicsLayerCA::updateTransform):
37691        (WebCore::GraphicsLayerCA::updateChildrenTransform):
37692        (WebCore::GraphicsLayerCA::updateMasksToBounds):
37693        (WebCore::GraphicsLayerCA::updateContentsVisibility):
37694        (WebCore::GraphicsLayerCA::updateContentsOpaque):
37695        (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
37696        (WebCore::GraphicsLayerCA::updateFilters):
37697        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
37698        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
37699        (WebCore::GraphicsLayerCA::updateContentsImage):
37700        (WebCore::GraphicsLayerCA::updateContentsRect):
37701        (WebCore::GraphicsLayerCA::updateMaskLayer):
37702        (WebCore::GraphicsLayerCA::updateLayerAnimations):
37703        (WebCore::GraphicsLayerCA::setAnimationOnLayer):
37704        (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
37705        (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
37706        (WebCore::GraphicsLayerCA::suspendAnimations):
37707        (WebCore::GraphicsLayerCA::resumeAnimations):
37708        (WebCore::GraphicsLayerCA::findOrMakeClone):
37709        (WebCore::GraphicsLayerCA::setOpacityInternal):
37710        (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
37711        * platform/graphics/ca/mac/TileCache.mm:
37712        (WebCore::TileCache::~TileCache):
37713        (WebCore::TileCache::setNeedsDisplay):
37714        (WebCore::TileCache::setScale):
37715        (WebCore::TileCache::setAcceleratesDrawing):
37716        (WebCore::TileCache::setTileDebugBorderWidth):
37717        (WebCore::TileCache::setTileDebugBorderColor):
37718        (WebCore::TileCache::revalidateTiles):
37719        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
37720        (PlatformCALayer::animationStarted):
37721        (resubmitAllAnimations):
37722        (PlatformCALayer::animationForKey):
37723        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
37724        (WebCore::LookupAltName):
37725        (WebCore::fontContainsCharacter):
37726        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
37727        (WebCore::getDerivedFontData):
37728        * platform/graphics/chromium/TiledLayerChromium.cpp:
37729        (WebCore::TiledLayerChromium::pushPropertiesTo):
37730        (WebCore::TiledLayerChromium::setLayerTreeHost):
37731        (WebCore::TiledLayerChromium::invalidateContentRect):
37732        (WebCore::TiledLayerChromium::setTexturePriorities):
37733        (WebCore::TiledLayerChromium::resetUpdateState):
37734        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
37735        (WebCore::CCDamageTracker::trackDamageFromLeftoverRects):
37736        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
37737        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
37738        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
37739        (WebCore::CCLayerTilingData::setBounds):
37740        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
37741        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
37742        (WebCore::CCLayerTreeHost::startRateLimiter):
37743        (WebCore::CCLayerTreeHost::stopRateLimiter):
37744        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
37745        (WebCore::findRenderPassById):
37746        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
37747        (WebCore::CCResourceProvider::inUseByConsumer):
37748        (WebCore::CCResourceProvider::deleteResource):
37749        (WebCore::CCResourceProvider::deleteOwnedResources):
37750        (WebCore::CCResourceProvider::resourceType):
37751        (WebCore::CCResourceProvider::upload):
37752        (WebCore::CCResourceProvider::lockForRead):
37753        (WebCore::CCResourceProvider::unlockForRead):
37754        (WebCore::CCResourceProvider::lockForWrite):
37755        (WebCore::CCResourceProvider::unlockForWrite):
37756        (WebCore::CCResourceProvider::destroyChild):
37757        (WebCore::CCResourceProvider::getChildToParentMap):
37758        (WebCore::CCResourceProvider::prepareSendToParent):
37759        (WebCore::CCResourceProvider::prepareSendToChild):
37760        (WebCore::CCResourceProvider::receiveFromChild):
37761        (WebCore::CCResourceProvider::receiveFromParent):
37762        (WebCore::CCResourceProvider::transferResource):
37763        (WebCore::CCResourceProvider::trimMailboxDeque):
37764        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
37765        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
37766        (WebCore::CustomFilterGlobalContext::getCompiledProgram):
37767        (WebCore::CustomFilterGlobalContext::removeCompiledProgram):
37768        * platform/graphics/filters/CustomFilterProgram.cpp:
37769        (WebCore::CustomFilterProgram::notifyClients):
37770        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
37771        (WebCore::getCachedHarfbuzzFace):
37772        (WebCore::releaseCachedHarfbuzzFace):
37773        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
37774        (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
37775        (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
37776        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
37777        (WebCore::SimpleFontData::getCFStringAttributes):
37778        * platform/graphics/mac/SimpleFontDataMac.mm:
37779        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
37780        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
37781        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
37782        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37783        (WebCore::GraphicsContext3D::compileShader):
37784        (WebCore::GraphicsContext3D::getShaderiv):
37785        (WebCore::GraphicsContext3D::getShaderInfoLog):
37786        (WebCore::GraphicsContext3D::getShaderSource):
37787        * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
37788        (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
37789        (WebCore::EGLDisplayOpenVG::destroySurface):
37790        (WebCore::EGLDisplayOpenVG::contextForSurface):
37791        * platform/graphics/texmap/TextureMapperGL.cpp:
37792        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
37793        (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
37794        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37795        (WebCore::TextureMapperShaderManager::getShaderProgram):
37796        (WebCore::TextureMapperShaderManager::getShaderForFilter):
37797        * platform/graphics/wince/FontPlatformData.cpp:
37798        (WebCore::FixedSizeFontData::create):
37799        * platform/gtk/DataObjectGtk.cpp:
37800        (WebCore::DataObjectGtk::forClipboard):
37801        * platform/gtk/GtkDragAndDropHelper.cpp:
37802        (WebCore::GtkDragAndDropHelper::handleGetDragData):
37803        (WebCore::GtkDragAndDropHelper::handleDragLeave):
37804        (WebCore::GtkDragAndDropHelper::handleDragMotion):
37805        (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
37806        (WebCore::GtkDragAndDropHelper::handleDragDrop):
37807        * platform/gtk/RenderThemeGtk3.cpp:
37808        (WebCore::gtkStyleChangedCallback):
37809        (WebCore::getStyleContext):
37810        * platform/mac/ScrollbarThemeMac.mm:
37811        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
37812        * platform/network/CredentialStorage.cpp:
37813        (WebCore::CredentialStorage::set):
37814        (WebCore::CredentialStorage::get):
37815        * platform/network/HTTPHeaderMap.cpp:
37816        (WebCore::HTTPHeaderMap::copyData):
37817        (WebCore::HTTPHeaderMap::get):
37818        * platform/network/MIMEHeader.cpp:
37819        (WebCore::MIMEHeader::parseHeader):
37820        * platform/network/ResourceHandle.cpp:
37821        (WebCore::ResourceHandle::create):
37822        * platform/network/ResourceRequestBase.cpp:
37823        (WebCore::ResourceRequestBase::addHTTPHeaderField):
37824        (WebCore::ResourceRequestBase::addHTTPHeaderFields):
37825        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
37826        (WebCore::ResourceRequest::targetTypeFromMimeType):
37827        (WebCore::ResourceRequest::initializePlatformRequest):
37828        * platform/network/cf/ResourceHandleCFNet.cpp:
37829        (WebCore::makeFinalRequest):
37830        * platform/network/cf/ResourceRequestCFNet.cpp:
37831        (WebCore::setHeaderFields):
37832        * platform/network/curl/ResourceHandleManager.cpp:
37833        (WebCore::ResourceHandleManager::initializeHandle):
37834        * platform/network/mac/ResourceRequestMac.mm:
37835        (WebCore::ResourceRequest::doUpdatePlatformRequest):
37836        * platform/network/qt/ResourceRequestQt.cpp:
37837        (WebCore::ResourceRequest::toNetworkRequest):
37838        * platform/network/soup/ResourceHandleSoup.cpp:
37839        (WebCore::sendRequestCallback):
37840        (WebCore::ResourceHandle::setClientCertificate):
37841        * platform/network/soup/ResourceRequestSoup.cpp:
37842        (WebCore::ResourceRequest::updateSoupMessage):
37843        (WebCore::ResourceRequest::toSoupMessage):
37844        * platform/network/soup/ResourceResponseSoup.cpp:
37845        (WebCore::ResourceResponse::toSoupMessage):
37846        * platform/network/win/ResourceHandleWin.cpp:
37847        (WebCore::ResourceHandle::start):
37848        * platform/qt/RunLoopQt.cpp:
37849        (WebCore::RunLoop::TimerBase::timerFired):
37850        * platform/text/LocaleToScriptMappingDefault.cpp:
37851        (WebCore::scriptNameToCode):
37852        (WebCore::localeToScriptCodeForFontSelection):
37853        * platform/text/TextEncodingRegistry.cpp:
37854        (WebCore::pruneBlacklistedCodecs):
37855        (WebCore::dumpTextEncodingNameMap):
37856        * platform/text/transcoder/FontTranscoder.cpp:
37857        (WebCore::FontTranscoder::converterType):
37858        * platform/text/win/TextCodecWin.cpp:
37859        (WebCore::LanguageManager::LanguageManager):
37860        (WebCore::getCodePage):
37861        (WebCore::TextCodecWin::registerExtendedEncodingNames):
37862        (WebCore::TextCodecWin::registerExtendedCodecs):
37863        (WebCore::TextCodecWin::enumerateSupportedEncodings):
37864        * platform/win/ClipboardUtilitiesWin.cpp:
37865        (WebCore::getDataMapItem):
37866        (WebCore::getClipboardData):
37867        (WebCore::setClipboardData):
37868        * platform/win/ClipboardWin.cpp:
37869        (WebCore::ClipboardWin::types):
37870        * platform/win/FileSystemWin.cpp:
37871        (WebCore::cachedStorageDirectory):
37872        * platform/win/RunLoopWin.cpp:
37873        (WebCore::RunLoop::TimerBase::timerFired):
37874        * platform/win/WCDataObject.cpp:
37875        (WebCore::WCDataObject::createInstance):
37876        * platform/wince/MIMETypeRegistryWinCE.cpp:
37877        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
37878        * platform/wx/ContextMenuWx.cpp:
37879        (WebCore::ContextMenu::appendItem):
37880        * plugins/PluginDatabase.cpp:
37881        (WebCore::PluginDatabase::refresh):
37882        (WebCore::PluginDatabase::MIMETypeForExtension):
37883        (WebCore::PluginDatabase::remove):
37884        * plugins/PluginMainThreadScheduler.cpp:
37885        (WebCore::PluginMainThreadScheduler::scheduleCall):
37886        (WebCore::PluginMainThreadScheduler::dispatchCalls):
37887        * plugins/PluginStream.cpp:
37888        (WebCore::PluginStream::startStream):
37889        * plugins/blackberry/PluginDataBlackBerry.cpp:
37890        (WebCore::PluginData::initPlugins):
37891        * plugins/wx/PluginDataWx.cpp:
37892        (WebCore::PluginData::initPlugins):
37893        * rendering/FlowThreadController.cpp:
37894        (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
37895        * rendering/InlineFlowBox.cpp:
37896        (WebCore::InlineFlowBox::requiresIdeographicBaseline):
37897        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
37898        * rendering/RenderBlock.cpp:
37899        (WebCore::RenderBlock::clearFloats):
37900        * rendering/RenderBlockLineLayout.cpp:
37901        (WebCore::setLogicalWidthForTextRun):
37902        * rendering/RenderBoxModelObject.cpp:
37903        (WebCore::ImageQualityController::highQualityRepaintTimerFired):
37904        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
37905        * rendering/RenderCounter.cpp:
37906        (WebCore::RenderCounter::destroyCounterNodes):
37907        (WebCore::RenderCounter::destroyCounterNode):
37908        (WebCore::updateCounters):
37909        (WebCore::RenderCounter::rendererStyleChanged):
37910        * rendering/RenderFlowThread.cpp:
37911        (WebCore::RenderFlowThread::setRegionRangeForBox):
37912        (WebCore::RenderFlowThread::getRegionRangeForBox):
37913        * rendering/RenderLayer.cpp:
37914        (WebCore::RenderLayer::paint):
37915        (WebCore::performOverlapTests):
37916        * rendering/RenderLayerFilterInfo.cpp:
37917        (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
37918        (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
37919        * rendering/RenderNamedFlowThread.cpp:
37920        (WebCore::RenderNamedFlowThread::dependsOn):
37921        (WebCore::RenderNamedFlowThread::pushDependencies):
37922        * rendering/RenderRegion.cpp:
37923        (WebCore::RenderRegion::setRenderBoxRegionInfo):
37924        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
37925        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
37926        (WebCore::RenderRegion::computeChildrenStyleInRegion):
37927        * rendering/RenderTableSection.cpp:
37928        (WebCore::RenderTableSection::cachedCollapsedBorder):
37929        * rendering/RenderThemeMac.mm:
37930        (WebCore::RenderThemeMac::systemColor):
37931        * rendering/RenderView.cpp:
37932        (WebCore::RenderView::selectionBounds):
37933        (WebCore::RenderView::setSelection):
37934        * rendering/RenderWidget.cpp:
37935        (WebCore::RenderWidget::resumeWidgetHierarchyUpdates):
37936        * rendering/RootInlineBox.cpp:
37937        (WebCore::RootInlineBox::ascentAndDescentForBox):
37938        * rendering/VerticalPositionCache.h:
37939        (WebCore::VerticalPositionCache::get):
37940        * rendering/WrapShapeInfo.cpp:
37941        (WebCore::WrapShapeInfo::ensureWrapShapeInfoForRenderBlock):
37942        * rendering/svg/RenderSVGInlineText.cpp:
37943        (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
37944        * rendering/svg/RenderSVGResourceFilter.cpp:
37945        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
37946        * rendering/svg/RenderSVGResourceGradient.cpp:
37947        (WebCore::RenderSVGResourceGradient::applyResource):
37948        * rendering/svg/RenderSVGResourcePattern.cpp:
37949        (WebCore::RenderSVGResourcePattern::applyResource):
37950        * rendering/svg/SVGResourcesCache.cpp:
37951        (WebCore::SVGResourcesCache::resourceDestroyed):
37952        * rendering/svg/SVGRootInlineBox.cpp:
37953        (WebCore::swapItemsInLayoutAttributes):
37954        * rendering/svg/SVGTextLayoutAttributes.cpp:
37955        (WebCore::SVGTextLayoutAttributes::dump):
37956        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
37957        (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
37958        (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
37959        * rendering/svg/SVGTextLayoutEngine.cpp:
37960        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
37961        * rendering/svg/SVGTextMetricsBuilder.cpp:
37962        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
37963        * storage/StorageAreaSync.cpp:
37964        (WebCore::StorageAreaSync::syncTimerFired):
37965        (WebCore::StorageAreaSync::performImport):
37966        (WebCore::StorageAreaSync::sync):
37967        * storage/StorageMap.cpp:
37968        (WebCore::StorageMap::key):
37969        (WebCore::StorageMap::setItem):
37970        * storage/StorageNamespaceImpl.cpp:
37971        (WebCore::StorageNamespaceImpl::localStorageNamespace):
37972        (WebCore::StorageNamespaceImpl::copy):
37973        (WebCore::StorageNamespaceImpl::close):
37974        (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
37975        (WebCore::StorageNamespaceImpl::sync):
37976        * svg/SVGDocumentExtensions.cpp:
37977        (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
37978        (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
37979        (WebCore::SVGDocumentExtensions::addPendingResource):
37980        (WebCore::SVGDocumentExtensions::isElementPendingResources):
37981        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
37982        (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
37983        (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
37984        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
37985        * svg/SVGElement.cpp:
37986        (WebCore::SVGElement::~SVGElement):
37987        * svg/animation/SMILTimeContainer.cpp:
37988        (WebCore::SMILTimeContainer::updateAnimations):
37989        * svg/graphics/SVGImageCache.cpp:
37990        (WebCore::SVGImageCache::~SVGImageCache):
37991        (WebCore::SVGImageCache::removeClientFromCache):
37992        (WebCore::SVGImageCache::requestedSizeAndScales):
37993        (WebCore::SVGImageCache::imageContentChanged):
37994        (WebCore::SVGImageCache::redraw):
37995        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
37996        * svg/graphics/filters/SVGFilterBuilder.h:
37997        (WebCore::SVGFilterBuilder::effectReferences):
37998        (WebCore::SVGFilterBuilder::addBuiltinEffects):
37999        * svg/properties/SVGAnimatedProperty.h:
38000        (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
38001        * svg/properties/SVGAttributeToPropertyMap.cpp:
38002        (WebCore::SVGAttributeToPropertyMap::addProperties):
38003        (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
38004        * workers/WorkerContext.cpp:
38005        (WebCore::WorkerContext::hasPendingActivity):
38006        * workers/WorkerEventQueue.cpp:
38007        (WebCore::WorkerEventQueue::close):
38008        * xml/XMLHttpRequest.cpp:
38009        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
38010        (WebCore::XMLHttpRequest::getAllResponseHeaders):
38011        * xml/XPathFunctions.cpp:
38012        (WebCore::XPath::createFunction):
38013        * xml/XPathParser.cpp:
38014        (isAxisName):
38015        * xml/XSLTProcessorLibxslt.cpp:
38016        (WebCore::xsltParamArrayFromParameterMap):
38017        * xml/XSLTProcessorQt.cpp:
38018        (WebCore::XSLTProcessor::transformToString):
38019
380202012-08-28  Jer Noble  <jer.noble@apple.com>
38021
38022        Crash in WebCore::logPluginRequest + 183
38023        https://bugs.webkit.org/show_bug.cgi?id=95218
38024
38025        Reviewed by Oliver Hunt.
38026
38027        Crash is within findPluginMIMETypeFromURL, caused by a null-dereference of 
38028        page()->pluginData().  Add a null-check and return an empty string.
38029
38030        * loader/SubframeLoader.cpp:
38031        (WebCore::findPluginMIMETypeFromURL):
38032
380332012-08-28  Simon Fraser  <simon.fraser@apple.com>
38034
38035        Regression (r126774): Crash when scrolling after removing sticky element.
38036        https://bugs.webkit.org/show_bug.cgi?id=95174
38037
38038        Reviewed by Abhishek Arya.
38039
38040        RenderBox::willBeDestroyed() needs to check for both fixed and sticky
38041        position to determine whether to remove an object from FrameView's
38042        set of fixed objects.
38043
38044        Test: fast/css/sticky/remove-sticky-crash.html
38045
38046        * rendering/RenderBox.cpp:
38047        (WebCore::RenderBox::willBeDestroyed):
38048
380492012-08-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
38050
38051        Rename first/second to key/value in HashMap iterators
38052        https://bugs.webkit.org/show_bug.cgi?id=82784
38053
38054        Reviewed by Eric Seidel.
38055
38056        * Modules/geolocation/Geolocation.cpp:
38057        (WebCore::Geolocation::Watchers::find):
38058        (WebCore::Geolocation::Watchers::remove):
38059        * Modules/indexeddb/IDBDatabase.cpp:
38060        (WebCore::IDBDatabase::objectStoreNames):
38061        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
38062        (WebCore::IDBDatabaseBackendImpl::metadata):
38063        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
38064        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
38065        (WebCore::IDBFactoryBackendImpl::openBackingStore):
38066        (WebCore::IDBFactoryBackendImpl::open):
38067        * Modules/indexeddb/IDBObjectStore.cpp:
38068        (WebCore::IDBObjectStore::indexNames):
38069        (WebCore::IDBObjectStore::put):
38070        (WebCore::IDBObjectStore::index):
38071        (WebCore::IDBObjectStore::deleteIndex):
38072        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
38073        (WebCore::IDBObjectStoreBackendImpl::metadata):
38074        (WebCore::makeIndexWriters):
38075        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
38076        * Modules/indexeddb/IDBTransaction.cpp:
38077        (WebCore::IDBTransaction::objectStore):
38078        (WebCore::IDBTransaction::objectStoreDeleted):
38079        (WebCore::IDBTransaction::onAbort):
38080        (WebCore::IDBTransaction::dispatchEvent):
38081        * Modules/webdatabase/AbstractDatabase.cpp:
38082        (WebCore::AbstractDatabase::performOpenAndVerify):
38083        * Modules/webdatabase/DatabaseTracker.cpp:
38084        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
38085        * Modules/webdatabase/OriginUsageRecord.cpp:
38086        (WebCore::OriginUsageRecord::diskUsage):
38087        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
38088        (WebCore::SQLTransactionCoordinator::acquireLock):
38089        (WebCore::SQLTransactionCoordinator::releaseLock):
38090        (WebCore::SQLTransactionCoordinator::shutdown):
38091        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
38092        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
38093        * Modules/webdatabase/chromium/QuotaTracker.cpp:
38094        (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
38095        (WebCore::QuotaTracker::updateDatabaseSize):
38096        * Modules/websockets/WebSocketDeflateFramer.cpp:
38097        (WebCore::WebSocketExtensionDeflateFrame::processResponse):
38098        * Modules/websockets/WebSocketExtensionDispatcher.cpp:
38099        (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
38100        * accessibility/AXObjectCache.cpp:
38101        (WebCore::AXObjectCache::~AXObjectCache):
38102        * bindings/gobject/DOMObjectCache.cpp:
38103        (WebKit::DOMObjectCache::clearByFrame):
38104        * bindings/js/DOMObjectHashTableMap.h:
38105        (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
38106        (WebCore::DOMObjectHashTableMap::get):
38107        * bindings/js/JSDOMBinding.cpp:
38108        (WebCore::cacheDOMStructure):
38109        * bindings/js/JSDOMGlobalObject.cpp:
38110        (WebCore::JSDOMGlobalObject::visitChildren):
38111        * bindings/js/JSDOMGlobalObject.h:
38112        (WebCore::getDOMConstructor):
38113        * bindings/js/PageScriptDebugServer.cpp:
38114        (WebCore::PageScriptDebugServer::addListener):
38115        (WebCore::PageScriptDebugServer::removeListener):
38116        * bindings/js/ScriptCachedFrameData.cpp:
38117        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
38118        (WebCore::ScriptCachedFrameData::restore):
38119        * bindings/js/ScriptController.cpp:
38120        (WebCore::ScriptController::~ScriptController):
38121        (WebCore::ScriptController::clearWindowShell):
38122        (WebCore::ScriptController::attachDebugger):
38123        (WebCore::ScriptController::updateDocument):
38124        (WebCore::ScriptController::createRootObject):
38125        (WebCore::ScriptController::collectIsolatedContexts):
38126        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
38127        (WebCore::ScriptController::clearScriptObjects):
38128        * bindings/js/ScriptController.h:
38129        (WebCore::ScriptController::windowShell):
38130        (WebCore::ScriptController::existingWindowShell):
38131        * bindings/js/ScriptDebugServer.cpp:
38132        (WebCore::ScriptDebugServer::setBreakpoint):
38133        (WebCore::ScriptDebugServer::removeBreakpoint):
38134        (WebCore::ScriptDebugServer::hasBreakpoint):
38135        * bindings/js/SerializedScriptValue.cpp:
38136        (WebCore::CloneSerializer::checkForDuplicate):
38137        (WebCore::CloneSerializer::dumpIfTerminal):
38138        (WebCore::CloneSerializer::write):
38139        * bindings/scripts/CodeGeneratorV8.pm:
38140        (GenerateImplementation):
38141        * bindings/scripts/test/V8/V8Float64Array.cpp:
38142        (WebCore::V8Float64Array::GetRawTemplate):
38143        (WebCore::V8Float64Array::GetTemplate):
38144        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
38145        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
38146        (WebCore::V8TestActiveDOMObject::GetTemplate):
38147        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
38148        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
38149        (WebCore::V8TestCustomNamedGetter::GetTemplate):
38150        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
38151        (WebCore::V8TestEventConstructor::GetRawTemplate):
38152        (WebCore::V8TestEventConstructor::GetTemplate):
38153        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
38154        (WebCore::V8TestEventTarget::GetRawTemplate):
38155        (WebCore::V8TestEventTarget::GetTemplate):
38156        * bindings/scripts/test/V8/V8TestException.cpp:
38157        (WebCore::V8TestException::GetRawTemplate):
38158        (WebCore::V8TestException::GetTemplate):
38159        * bindings/scripts/test/V8/V8TestInterface.cpp:
38160        (WebCore::V8TestInterface::GetRawTemplate):
38161        (WebCore::V8TestInterface::GetTemplate):
38162        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
38163        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
38164        (WebCore::V8TestMediaQueryListListener::GetTemplate):
38165        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
38166        (WebCore::V8TestNamedConstructor::GetRawTemplate):
38167        (WebCore::V8TestNamedConstructor::GetTemplate):
38168        * bindings/scripts/test/V8/V8TestNode.cpp:
38169        (WebCore::V8TestNode::GetRawTemplate):
38170        (WebCore::V8TestNode::GetTemplate):
38171        * bindings/scripts/test/V8/V8TestObj.cpp:
38172        (WebCore::V8TestObj::GetRawTemplate):
38173        (WebCore::V8TestObj::GetTemplate):
38174        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
38175        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
38176        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
38177        * bindings/v8/DOMWrapperWorld.cpp:
38178        (WebCore::DOMWrapperWorld::deallocate):
38179        (WebCore::DOMWrapperWorld::getOrCreateIsolatedWorld):
38180        * bindings/v8/NPV8Object.cpp:
38181        (WebCore::freeV8NPObject):
38182        (WebCore::npCreateV8ScriptObject):
38183        * bindings/v8/ScriptController.cpp:
38184        (WebCore::ScriptController::clearScriptObjects):
38185        (WebCore::ScriptController::resetIsolatedWorlds):
38186        (WebCore::ScriptController::evaluateInIsolatedWorld):
38187        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
38188        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
38189        (WebCore::ScriptController::collectIsolatedContexts):
38190        * bindings/v8/SerializedScriptValue.cpp:
38191        * bindings/v8/V8DOMMap.h:
38192        (WebCore::WeakReferenceMap::removeIfPresent):
38193        (WebCore::WeakReferenceMap::visit):
38194        * bindings/v8/V8GCController.cpp:
38195        (WebCore::enumerateGlobalHandles):
38196        * bindings/v8/V8PerContextData.cpp:
38197        (WebCore::V8PerContextData::dispose):
38198        * bindings/v8/npruntime.cpp:
38199        * bridge/IdentifierRep.cpp:
38200        (WebCore::IdentifierRep::get):
38201        * bridge/NP_jsobject.cpp:
38202        (ObjectMap::add):
38203        (ObjectMap::remove):
38204        * bridge/jni/jsc/JavaClassJSC.cpp:
38205        (JavaClass::~JavaClass):
38206        * bridge/qt/qt_instance.cpp:
38207        (JSC::Bindings::WeakMap::set):
38208        * bridge/runtime_root.cpp:
38209        (JSC::Bindings::RootObject::invalidate):
38210        * css/CSSCanvasValue.cpp:
38211        (WebCore::CSSCanvasValue::canvasChanged):
38212        (WebCore::CSSCanvasValue::canvasResized):
38213        * css/CSSComputedStyleDeclaration.cpp:
38214        (WebCore::counterToCSSValue):
38215        * css/CSSCrossfadeValue.cpp:
38216        (WebCore::CSSCrossfadeValue::crossfadeChanged):
38217        * css/CSSFontFaceSource.cpp:
38218        (WebCore::CSSFontFaceSource::getFontData):
38219        * css/CSSFontSelector.cpp:
38220        (WebCore::CSSFontSelector::addFontFaceRule):
38221        (WebCore::CSSFontSelector::getFontData):
38222        * css/CSSImageGeneratorValue.cpp:
38223        (WebCore::CSSImageGeneratorValue::addClient):
38224        (WebCore::CSSImageGeneratorValue::removeClient):
38225        (WebCore::CSSImageGeneratorValue::getImage):
38226        * css/CSSSegmentedFontFace.cpp:
38227        (WebCore::CSSSegmentedFontFace::getFontData):
38228        * css/CSSSelector.cpp:
38229        (WebCore::CSSSelector::parsePseudoType):
38230        * css/CSSValuePool.cpp:
38231        (WebCore::CSSValuePool::createColorValue):
38232        (WebCore::CSSValuePool::createFontFamilyValue):
38233        (WebCore::CSSValuePool::createFontFaceValue):
38234        * css/PropertySetCSSStyleDeclaration.cpp:
38235        (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
38236        * css/StyleBuilder.cpp:
38237        (WebCore::ApplyPropertyCounter::applyInheritValue):
38238        (WebCore::ApplyPropertyCounter::applyValue):
38239        * css/StyleResolver.cpp:
38240        (WebCore::StyleResolver::collectFeatures):
38241        (WebCore::StyleResolver::ruleSetForScope):
38242        (WebCore::StyleResolver::appendAuthorStylesheets):
38243        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
38244        (WebCore::StyleResolver::collectMatchingRulesForList):
38245        * css/StyleSheetContents.cpp:
38246        (WebCore::StyleSheetContents::parserAddNamespace):
38247        (WebCore::StyleSheetContents::determineNamespace):
38248        * dom/CheckedRadioButtons.cpp:
38249        (WebCore::CheckedRadioButtons::addButton):
38250        (WebCore::CheckedRadioButtons::removeButton):
38251        * dom/ChildListMutationScope.cpp:
38252        (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
38253        (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
38254        (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
38255        (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
38256        * dom/Document.cpp:
38257        (WebCore::Document::pageGroupUserSheets):
38258        (WebCore::Document::windowNamedItems):
38259        (WebCore::Document::documentNamedItems):
38260        (WebCore::Document::getCSSCanvasElement):
38261        * dom/DocumentMarkerController.cpp:
38262        (WebCore::DocumentMarkerController::markerContainingPoint):
38263        (WebCore::DocumentMarkerController::renderedRectsForMarkers):
38264        (WebCore::DocumentMarkerController::removeMarkers):
38265        (WebCore::DocumentMarkerController::repaintMarkers):
38266        (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
38267        (WebCore::DocumentMarkerController::showMarkers):
38268        * dom/DocumentOrderedMap.cpp:
38269        (WebCore::DocumentOrderedMap::remove):
38270        * dom/ElementAttributeData.cpp:
38271        (WebCore::ensureAttrListForElement):
38272        * dom/EventDispatcher.cpp:
38273        (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
38274        * dom/EventListenerMap.cpp:
38275        (WebCore::EventListenerMap::eventTypes):
38276        (WebCore::EventListenerMap::add):
38277        (WebCore::EventListenerMap::remove):
38278        (WebCore::EventListenerMap::find):
38279        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
38280        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
38281        (WebCore::EventListenerIterator::nextListener):
38282        * dom/IdTargetObserverRegistry.cpp:
38283        (WebCore::IdTargetObserverRegistry::addObserver):
38284        (WebCore::IdTargetObserverRegistry::removeObserver):
38285        * dom/MemoryInstrumentation.h:
38286        (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
38287        (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
38288        * dom/MutationObserverInterestGroup.cpp:
38289        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
38290        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
38291        * dom/Node.cpp:
38292        (WebCore::Node::dumpStatistics):
38293        (WebCore::Node::clearRareData):
38294        (WebCore::NodeListsNodeData::invalidateCaches):
38295        (WebCore::Node::collectMatchingObserversForMutation):
38296        * dom/NodeRareData.h:
38297        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
38298        (WebCore::NodeListsNodeData::addCacheWithName):
38299        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
38300        (WebCore::NodeListsNodeData::adoptTreeScope):
38301        * dom/ProcessingInstruction.cpp:
38302        (WebCore::ProcessingInstruction::checkStyleSheet):
38303        * dom/ScriptExecutionContext.cpp:
38304        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
38305        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
38306        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
38307        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
38308        (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
38309        * dom/SelectorQuery.cpp:
38310        (WebCore::SelectorQueryCache::add):
38311        * dom/SpaceSplitString.cpp:
38312        (WebCore::SpaceSplitStringData::create):
38313        * dom/StyledElement.cpp:
38314        (WebCore::StyledElement::updateAttributeStyle):
38315        * editing/mac/AlternativeTextUIController.mm:
38316        (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
38317        * html/FormController.cpp:
38318        (WebCore::SavedFormState::serializeTo):
38319        (WebCore::SavedFormState::appendControlState):
38320        (WebCore::SavedFormState::takeControlState):
38321        (WebCore::SavedFormState::getReferencedFilePaths):
38322        (WebCore::FormKeyGenerator::formKey):
38323        (WebCore::FormController::createSavedFormStateMap):
38324        (WebCore::FormController::formElementsState):
38325        (WebCore::FormController::takeStateForFormElement):
38326        (WebCore::FormController::getReferencedFilePaths):
38327        * html/HTMLCollection.cpp:
38328        (WebCore::HTMLCollectionCacheBase::append):
38329        * html/canvas/WebGLFramebuffer.cpp:
38330        (WebCore::WebGLFramebuffer::getAttachment):
38331        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
38332        (WebCore::WebGLFramebuffer::checkStatus):
38333        (WebCore::WebGLFramebuffer::deleteObjectImpl):
38334        (WebCore::WebGLFramebuffer::initializeAttachments):
38335        * inspector/CodeGeneratorInspector.py:
38336        * inspector/DOMPatchSupport.cpp:
38337        (WebCore::DOMPatchSupport::diff):
38338        (WebCore::DOMPatchSupport::innerPatchChildren):
38339        (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
38340        * inspector/InjectedScriptManager.cpp:
38341        (WebCore::InjectedScriptManager::injectedScriptForId):
38342        (WebCore::InjectedScriptManager::injectedScriptIdFor):
38343        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
38344        (WebCore::InjectedScriptManager::releaseObjectGroup):
38345        (WebCore::InjectedScriptManager::injectedScriptFor):
38346        * inspector/InspectorCSSAgent.cpp:
38347        (WebCore::SelectorProfile::commitSelector):
38348        (WebCore::SelectorProfile::commitSelectorTime):
38349        (WebCore::SelectorProfile::toInspectorObject):
38350        (WebCore::InspectorCSSAgent::forcePseudoState):
38351        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
38352        (WebCore::InspectorCSSAgent::assertStyleSheetForId):
38353        (WebCore::InspectorCSSAgent::didRemoveDOMNode):
38354        (WebCore::InspectorCSSAgent::didModifyDOMAttr):
38355        (WebCore::InspectorCSSAgent::resetPseudoStates):
38356        * inspector/InspectorConsoleAgent.cpp:
38357        (WebCore::InspectorConsoleAgent::stopTiming):
38358        (WebCore::InspectorConsoleAgent::count):
38359        * inspector/InspectorDOMAgent.cpp:
38360        (WebCore::InspectorDOMAgent::nodeForId):
38361        (WebCore::InspectorDOMAgent::performSearch):
38362        (WebCore::InspectorDOMAgent::getSearchResults):
38363        * inspector/InspectorDOMDebuggerAgent.cpp:
38364        (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
38365        * inspector/InspectorDOMStorageAgent.cpp:
38366        (WebCore::InspectorDOMStorageAgent::clearFrontend):
38367        (WebCore::InspectorDOMStorageAgent::enable):
38368        (WebCore::InspectorDOMStorageAgent::storageId):
38369        (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
38370        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
38371        (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
38372        * inspector/InspectorDatabaseAgent.cpp:
38373        (WebCore::InspectorDatabaseAgent::enable):
38374        (WebCore::InspectorDatabaseAgent::databaseId):
38375        (WebCore::InspectorDatabaseAgent::findByFileName):
38376        (WebCore::InspectorDatabaseAgent::databaseForId):
38377        * inspector/InspectorDebuggerAgent.cpp:
38378        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
38379        (WebCore::InspectorDebuggerAgent::removeBreakpoint):
38380        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
38381        (WebCore::InspectorDebuggerAgent::searchInContent):
38382        (WebCore::InspectorDebuggerAgent::getScriptSource):
38383        (WebCore::InspectorDebuggerAgent::didParseSource):
38384        * inspector/InspectorIndexedDBAgent.cpp:
38385        (WebCore):
38386        * inspector/InspectorMemoryAgent.cpp:
38387        (WebCore):
38388        * inspector/InspectorPageAgent.cpp:
38389        (WebCore::cachedResourcesForFrame):
38390        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
38391        (WebCore::InspectorPageAgent::frameDetached):
38392        * inspector/InspectorProfilerAgent.cpp:
38393        (WebCore::InspectorProfilerAgent::getProfileHeaders):
38394        (WebCore):
38395        (WebCore::InspectorProfilerAgent::getProfile):
38396        * inspector/InspectorResourceAgent.cpp:
38397        (WebCore::buildObjectForHeaders):
38398        (WebCore::InspectorResourceAgent::willSendRequest):
38399        * inspector/InspectorState.cpp:
38400        (WebCore::InspectorState::getBoolean):
38401        (WebCore::InspectorState::getString):
38402        (WebCore::InspectorState::getLong):
38403        (WebCore::InspectorState::getDouble):
38404        (WebCore::InspectorState::getObject):
38405        * inspector/InspectorStyleSheet.cpp:
38406        (WebCore::InspectorStyle::styleWithProperties):
38407        (WebCore::InspectorStyleSheet::inspectorStyleForId):
38408        * inspector/InspectorValues.cpp:
38409        (WebCore::InspectorObjectBase::get):
38410        (WebCore::InspectorObjectBase::writeJSON):
38411        * inspector/InspectorWorkerAgent.cpp:
38412        (WebCore::InspectorWorkerAgent::workerContextTerminated):
38413        (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
38414        (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
38415        * inspector/NetworkResourcesData.cpp:
38416        (WebCore::NetworkResourcesData::removeCachedResource):
38417        (WebCore::NetworkResourcesData::clear):
38418        * loader/CrossOriginAccessControl.cpp:
38419        (WebCore::isSimpleCrossOriginAccessRequest):
38420        (WebCore::createAccessControlPreflightRequest):
38421        * loader/CrossOriginPreflightResultCache.cpp:
38422        (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
38423        (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
38424        * loader/DocumentLoader.cpp:
38425        (WebCore::DocumentLoader::getSubresources):
38426        (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
38427        * loader/MainResourceLoader.cpp:
38428        (WebCore::MainResourceLoader::didReceiveResponse):
38429        * loader/ResourceLoadScheduler.cpp:
38430        (WebCore::ResourceLoadScheduler::servePendingRequests):
38431        * loader/appcache/ApplicationCache.cpp:
38432        (WebCore::ApplicationCache::removeResource):
38433        (WebCore::ApplicationCache::clearStorageID):
38434        (WebCore::ApplicationCache::dump):
38435        * loader/appcache/ApplicationCacheGroup.cpp:
38436        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
38437        (WebCore::ApplicationCacheGroup::startLoadingEntry):
38438        (WebCore::ApplicationCacheGroup::addEntry):
38439        * loader/appcache/ApplicationCacheHost.cpp:
38440        (WebCore::ApplicationCacheHost::fillResourceList):
38441        * loader/appcache/ApplicationCacheResource.cpp:
38442        (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
38443        * loader/appcache/ApplicationCacheStorage.cpp:
38444        (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
38445        (WebCore::ApplicationCacheStorage::cacheGroupForURL):
38446        (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
38447        (WebCore::ApplicationCacheStorage::store):
38448        (WebCore::ApplicationCacheStorage::empty):
38449        (WebCore::ApplicationCacheStorage::storeCopyOfCache):
38450        * loader/archive/ArchiveFactory.cpp:
38451        (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
38452        * loader/cache/CachedRawResource.cpp:
38453        (WebCore::CachedRawResource::canReuse):
38454        * loader/cache/CachedResource.cpp:
38455        (WebCore::CachedResource::switchClientsToRevalidatedResource):
38456        (WebCore::CachedResource::updateResponseAfterRevalidation):
38457        * loader/cache/CachedResourceClientWalker.h:
38458        (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
38459        * loader/cache/CachedResourceLoader.cpp:
38460        (WebCore::CachedResourceLoader::~CachedResourceLoader):
38461        (WebCore::CachedResourceLoader::requestResource):
38462        (WebCore::CachedResourceLoader::setAutoLoadImages):
38463        (WebCore::CachedResourceLoader::removeCachedResource):
38464        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
38465        (WebCore::CachedResourceLoader::reportMemoryUsage):
38466        * loader/cache/MemoryCache.cpp:
38467        (WebCore::MemoryCache::removeResourcesWithOrigin):
38468        (WebCore::MemoryCache::getOriginsWithCache):
38469        (WebCore::MemoryCache::getStatistics):
38470        (WebCore::MemoryCache::reportMemoryUsage):
38471        (WebCore::MemoryCache::setDisabled):
38472        * loader/icon/IconDatabase.cpp:
38473        (WebCore::IconDatabase::removeAllIcons):
38474        (WebCore::IconDatabase::iconRecordCountWithData):
38475        (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
38476        * page/DOMWindow.cpp:
38477        (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
38478        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
38479        * page/EventHandler.cpp:
38480        (WebCore::EventHandler::handleTouchEvent):
38481        * page/Frame.cpp:
38482        (WebCore::Frame::injectUserScripts):
38483        * page/PageGroup.cpp:
38484        (WebCore::PageGroup::pageGroup):
38485        (WebCore::PageGroup::closeLocalStorage):
38486        (WebCore::PageGroup::clearLocalStorageForAllOrigins):
38487        (WebCore::PageGroup::clearLocalStorageForOrigin):
38488        (WebCore::PageGroup::syncLocalStorage):
38489        (WebCore::PageGroup::addUserScriptToWorld):
38490        (WebCore::PageGroup::addUserStyleSheetToWorld):
38491        (WebCore::PageGroup::removeUserScriptFromWorld):
38492        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
38493        * page/PageSerializer.cpp:
38494        (WebCore::PageSerializer::urlForBlankFrame):
38495        * page/SecurityPolicy.cpp:
38496        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
38497        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
38498        * page/Settings.cpp:
38499        (WebCore::setGenericFontFamilyMap):
38500        (WebCore::getGenericFontFamilyForScript):
38501        * page/SpeechInput.cpp:
38502        (WebCore::SpeechInput::registerListener):
38503        * page/WindowFeatures.cpp:
38504        (WebCore::WindowFeatures::boolFeature):
38505        (WebCore::WindowFeatures::floatFeature):
38506        * page/animation/AnimationController.cpp:
38507        (WebCore::AnimationControllerPrivate::updateAnimations):
38508        (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
38509        (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
38510        (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
38511        * page/animation/CompositeAnimation.cpp:
38512        (WebCore::CompositeAnimation::clearRenderer):
38513        (WebCore::CompositeAnimation::updateTransitions):
38514        (WebCore::CompositeAnimation::updateKeyframeAnimations):
38515        (WebCore::CompositeAnimation::animate):
38516        (WebCore::CompositeAnimation::getAnimatedStyle):
38517        (WebCore::CompositeAnimation::setAnimating):
38518        (WebCore::CompositeAnimation::timeToNextService):
38519        (WebCore::CompositeAnimation::getAnimationForProperty):
38520        (WebCore::CompositeAnimation::suspendAnimations):
38521        (WebCore::CompositeAnimation::resumeAnimations):
38522        (WebCore::CompositeAnimation::overrideImplicitAnimations):
38523        (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
38524        (WebCore::CompositeAnimation::isAnimatingProperty):
38525        (WebCore::CompositeAnimation::numberOfActiveAnimations):
38526        * platform/Language.cpp:
38527        (WebCore::languageDidChange):
38528        * platform/MIMETypeRegistry.cpp:
38529        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
38530        * platform/audio/HRTFElevation.cpp:
38531        (WebCore::getConcatenatedImpulseResponsesForSubject):
38532        * platform/blackberry/CookieManager.cpp:
38533        (WebCore::CookieManager::generateHtmlFragmentForCookies):
38534        (WebCore::CookieManager::removeAllCookies):
38535        * platform/blackberry/CookieMap.cpp:
38536        (WebCore::CookieMap::removeOldestCookie):
38537        (WebCore::CookieMap::getAllChildCookies):
38538        * platform/cf/BinaryPropertyList.cpp:
38539        (WebCore::BinaryPropertyListPlan::writeIntegerArray):
38540        * platform/chromium/support/WebHTTPLoadInfo.cpp:
38541        (WebKit::addHeader):
38542        * platform/chromium/support/WebURLRequest.cpp:
38543        (WebKit::WebURLRequest::visitHTTPHeaderFields):
38544        * platform/chromium/support/WebURLResponse.cpp:
38545        (WebKit::WebURLResponse::addHTTPHeaderField):
38546        (WebKit::WebURLResponse::visitHTTPHeaderFields):
38547        * platform/graphics/DisplayRefreshMonitor.cpp:
38548        (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
38549        (WebCore::DisplayRefreshMonitorManager::unregisterClient):
38550        * platform/graphics/FontCache.cpp:
38551        (WebCore::FontCache::getCachedFontPlatformData):
38552        (WebCore::FontCache::getCachedFontData):
38553        (WebCore::FontCache::getVerticalData):
38554        (WebCore::FontCache::releaseFontData):
38555        (WebCore::FontCache::purgeInactiveFontData):
38556        * platform/graphics/GlyphPageTreeNode.cpp:
38557        (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
38558        (WebCore::GlyphPageTreeNode::pageCount):
38559        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
38560        (WebCore::GlyphPageTreeNode::pruneTreeFontData):
38561        (WebCore::GlyphPageTreeNode::pruneCustomFontData):
38562        (WebCore::GlyphPageTreeNode::pruneFontData):
38563        (WebCore::GlyphPageTreeNode::showSubtree):
38564        (showGlyphPageTrees):
38565        * platform/graphics/TiledBackingStore.cpp:
38566        (WebCore::TiledBackingStore::updateTileBuffers):
38567        (WebCore::TiledBackingStore::resizeEdgeTiles):
38568        (WebCore::TiledBackingStore::setKeepRect):
38569        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
38570        (WebCore::AVFWrapper::avfWrapperForCallbackContext):
38571        * platform/graphics/blackberry/LayerTiler.cpp:
38572        (WebCore::LayerTiler::layerVisibilityChanged):
38573        (WebCore::LayerTiler::uploadTexturesIfNeeded):
38574        (WebCore::LayerTiler::addTileJob):
38575        (WebCore::LayerTiler::deleteTextures):
38576        (WebCore::LayerTiler::pruneTextures):
38577        (WebCore::LayerTiler::bindContentsTexture):
38578        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
38579        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
38580        (WebCore::TextureCacheCompositingThread::textureForColor):
38581        * platform/graphics/ca/GraphicsLayerCA.cpp:
38582        (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
38583        (WebCore::GraphicsLayerCA::pauseAnimation):
38584        (WebCore::GraphicsLayerCA::layerDidDisplay):
38585        (WebCore::GraphicsLayerCA::updateGeometry):
38586        (WebCore::GraphicsLayerCA::updateTransform):
38587        (WebCore::GraphicsLayerCA::updateChildrenTransform):
38588        (WebCore::GraphicsLayerCA::updateMasksToBounds):
38589        (WebCore::GraphicsLayerCA::updateContentsVisibility):
38590        (WebCore::GraphicsLayerCA::updateContentsOpaque):
38591        (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
38592        (WebCore::GraphicsLayerCA::updateFilters):
38593        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
38594        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
38595        (WebCore::GraphicsLayerCA::updateContentsImage):
38596        (WebCore::GraphicsLayerCA::updateContentsRect):
38597        (WebCore::GraphicsLayerCA::updateMaskLayer):
38598        (WebCore::GraphicsLayerCA::updateLayerAnimations):
38599        (WebCore::GraphicsLayerCA::setAnimationOnLayer):
38600        (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
38601        (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
38602        (WebCore::GraphicsLayerCA::suspendAnimations):
38603        (WebCore::GraphicsLayerCA::resumeAnimations):
38604        (WebCore::GraphicsLayerCA::findOrMakeClone):
38605        (WebCore::GraphicsLayerCA::setOpacityInternal):
38606        (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
38607        * platform/graphics/ca/mac/TileCache.mm:
38608        (WebCore::TileCache::~TileCache):
38609        (WebCore::TileCache::setNeedsDisplay):
38610        (WebCore::TileCache::setScale):
38611        (WebCore::TileCache::setAcceleratesDrawing):
38612        (WebCore::TileCache::setTileDebugBorderWidth):
38613        (WebCore::TileCache::setTileDebugBorderColor):
38614        (WebCore::TileCache::revalidateTiles):
38615        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
38616        (PlatformCALayer::animationStarted):
38617        (resubmitAllAnimations):
38618        (PlatformCALayer::animationForKey):
38619        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
38620        (WebCore::LookupAltName):
38621        (WebCore::fontContainsCharacter):
38622        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
38623        (WebCore::getDerivedFontData):
38624        * platform/graphics/chromium/TiledLayerChromium.cpp:
38625        (WebCore::TiledLayerChromium::pushPropertiesTo):
38626        (WebCore::TiledLayerChromium::setLayerTreeHost):
38627        (WebCore::TiledLayerChromium::invalidateContentRect):
38628        (WebCore::TiledLayerChromium::setTexturePriorities):
38629        (WebCore::TiledLayerChromium::resetUpdateState):
38630        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
38631        (WebCore::CCDamageTracker::trackDamageFromLeftoverRects):
38632        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
38633        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
38634        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
38635        (WebCore::CCLayerTilingData::setBounds):
38636        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
38637        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
38638        (WebCore::CCLayerTreeHost::startRateLimiter):
38639        (WebCore::CCLayerTreeHost::stopRateLimiter):
38640        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
38641        (WebCore::findRenderPassById):
38642        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
38643        (WebCore::CCResourceProvider::inUseByConsumer):
38644        (WebCore::CCResourceProvider::deleteResource):
38645        (WebCore::CCResourceProvider::deleteOwnedResources):
38646        (WebCore::CCResourceProvider::resourceType):
38647        (WebCore::CCResourceProvider::upload):
38648        (WebCore::CCResourceProvider::lockForRead):
38649        (WebCore::CCResourceProvider::unlockForRead):
38650        (WebCore::CCResourceProvider::lockForWrite):
38651        (WebCore::CCResourceProvider::unlockForWrite):
38652        (WebCore::CCResourceProvider::destroyChild):
38653        (WebCore::CCResourceProvider::getChildToParentMap):
38654        (WebCore::CCResourceProvider::prepareSendToParent):
38655        (WebCore::CCResourceProvider::prepareSendToChild):
38656        (WebCore::CCResourceProvider::receiveFromChild):
38657        (WebCore::CCResourceProvider::receiveFromParent):
38658        (WebCore::CCResourceProvider::transferResource):
38659        (WebCore::CCResourceProvider::trimMailboxDeque):
38660        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
38661        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
38662        (WebCore::CustomFilterGlobalContext::getCompiledProgram):
38663        (WebCore::CustomFilterGlobalContext::removeCompiledProgram):
38664        * platform/graphics/filters/CustomFilterProgram.cpp:
38665        (WebCore::CustomFilterProgram::notifyClients):
38666        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
38667        (WebCore::getCachedHarfbuzzFace):
38668        (WebCore::releaseCachedHarfbuzzFace):
38669        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
38670        (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
38671        (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
38672        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
38673        (WebCore::SimpleFontData::getCFStringAttributes):
38674        * platform/graphics/mac/SimpleFontDataMac.mm:
38675        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
38676        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
38677        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
38678        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
38679        (WebCore::GraphicsContext3D::compileShader):
38680        (WebCore::GraphicsContext3D::getShaderiv):
38681        (WebCore::GraphicsContext3D::getShaderInfoLog):
38682        (WebCore::GraphicsContext3D::getShaderSource):
38683        * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
38684        (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
38685        (WebCore::EGLDisplayOpenVG::destroySurface):
38686        (WebCore::EGLDisplayOpenVG::contextForSurface):
38687        * platform/graphics/texmap/TextureMapperGL.cpp:
38688        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
38689        (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
38690        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
38691        (WebCore::TextureMapperShaderManager::getShaderProgram):
38692        (WebCore::TextureMapperShaderManager::getShaderForFilter):
38693        * platform/graphics/wince/FontPlatformData.cpp:
38694        (WebCore::FixedSizeFontData::create):
38695        * platform/gtk/DataObjectGtk.cpp:
38696        (WebCore::DataObjectGtk::forClipboard):
38697        * platform/gtk/GtkDragAndDropHelper.cpp:
38698        (WebCore::GtkDragAndDropHelper::handleGetDragData):
38699        (WebCore::GtkDragAndDropHelper::handleDragLeave):
38700        (WebCore::GtkDragAndDropHelper::handleDragMotion):
38701        (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
38702        (WebCore::GtkDragAndDropHelper::handleDragDrop):
38703        * platform/gtk/RenderThemeGtk3.cpp:
38704        (WebCore::gtkStyleChangedCallback):
38705        (WebCore::getStyleContext):
38706        * platform/mac/ScrollbarThemeMac.mm:
38707        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
38708        * platform/network/CredentialStorage.cpp:
38709        (WebCore::CredentialStorage::set):
38710        (WebCore::CredentialStorage::get):
38711        * platform/network/HTTPHeaderMap.cpp:
38712        (WebCore::HTTPHeaderMap::copyData):
38713        (WebCore::HTTPHeaderMap::get):
38714        * platform/network/MIMEHeader.cpp:
38715        (WebCore::MIMEHeader::parseHeader):
38716        * platform/network/ResourceHandle.cpp:
38717        (WebCore::ResourceHandle::create):
38718        * platform/network/ResourceRequestBase.cpp:
38719        (WebCore::ResourceRequestBase::addHTTPHeaderField):
38720        (WebCore::ResourceRequestBase::addHTTPHeaderFields):
38721        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
38722        (WebCore::ResourceRequest::targetTypeFromMimeType):
38723        (WebCore::ResourceRequest::initializePlatformRequest):
38724        * platform/network/cf/ResourceHandleCFNet.cpp:
38725        (WebCore::makeFinalRequest):
38726        * platform/network/cf/ResourceRequestCFNet.cpp:
38727        (WebCore::setHeaderFields):
38728        * platform/network/curl/ResourceHandleManager.cpp:
38729        (WebCore::ResourceHandleManager::initializeHandle):
38730        * platform/network/mac/ResourceRequestMac.mm:
38731        (WebCore::ResourceRequest::doUpdatePlatformRequest):
38732        * platform/network/qt/ResourceRequestQt.cpp:
38733        (WebCore::ResourceRequest::toNetworkRequest):
38734        * platform/network/soup/ResourceHandleSoup.cpp:
38735        (WebCore::sendRequestCallback):
38736        (WebCore::ResourceHandle::setClientCertificate):
38737        * platform/network/soup/ResourceRequestSoup.cpp:
38738        (WebCore::ResourceRequest::updateSoupMessage):
38739        (WebCore::ResourceRequest::toSoupMessage):
38740        * platform/network/soup/ResourceResponseSoup.cpp:
38741        (WebCore::ResourceResponse::toSoupMessage):
38742        * platform/network/win/ResourceHandleWin.cpp:
38743        (WebCore::ResourceHandle::start):
38744        * platform/qt/RunLoopQt.cpp:
38745        (WebCore::RunLoop::TimerBase::timerFired):
38746        * platform/text/LocaleToScriptMappingDefault.cpp:
38747        (WebCore::scriptNameToCode):
38748        (WebCore::localeToScriptCodeForFontSelection):
38749        * platform/text/TextEncodingRegistry.cpp:
38750        (WebCore::pruneBlacklistedCodecs):
38751        (WebCore::dumpTextEncodingNameMap):
38752        * platform/text/transcoder/FontTranscoder.cpp:
38753        (WebCore::FontTranscoder::converterType):
38754        * platform/text/win/TextCodecWin.cpp:
38755        (WebCore::LanguageManager::LanguageManager):
38756        (WebCore::getCodePage):
38757        (WebCore::TextCodecWin::registerExtendedEncodingNames):
38758        (WebCore::TextCodecWin::registerExtendedCodecs):
38759        (WebCore::TextCodecWin::enumerateSupportedEncodings):
38760        * platform/win/ClipboardUtilitiesWin.cpp:
38761        (WebCore::getDataMapItem):
38762        (WebCore::getClipboardData):
38763        (WebCore::setClipboardData):
38764        * platform/win/ClipboardWin.cpp:
38765        (WebCore::ClipboardWin::types):
38766        * platform/win/FileSystemWin.cpp:
38767        (WebCore::cachedStorageDirectory):
38768        * platform/win/RunLoopWin.cpp:
38769        (WebCore::RunLoop::TimerBase::timerFired):
38770        * platform/win/WCDataObject.cpp:
38771        (WebCore::WCDataObject::createInstance):
38772        * platform/wince/MIMETypeRegistryWinCE.cpp:
38773        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
38774        * platform/wx/ContextMenuWx.cpp:
38775        (WebCore::ContextMenu::appendItem):
38776        * plugins/PluginDatabase.cpp:
38777        (WebCore::PluginDatabase::refresh):
38778        (WebCore::PluginDatabase::MIMETypeForExtension):
38779        (WebCore::PluginDatabase::remove):
38780        * plugins/PluginMainThreadScheduler.cpp:
38781        (WebCore::PluginMainThreadScheduler::scheduleCall):
38782        (WebCore::PluginMainThreadScheduler::dispatchCalls):
38783        * plugins/PluginStream.cpp:
38784        (WebCore::PluginStream::startStream):
38785        * plugins/blackberry/PluginDataBlackBerry.cpp:
38786        (WebCore::PluginData::initPlugins):
38787        * plugins/wx/PluginDataWx.cpp:
38788        (WebCore::PluginData::initPlugins):
38789        * rendering/FlowThreadController.cpp:
38790        (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
38791        * rendering/InlineFlowBox.cpp:
38792        (WebCore::InlineFlowBox::requiresIdeographicBaseline):
38793        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
38794        * rendering/RenderBlock.cpp:
38795        (WebCore::RenderBlock::clearFloats):
38796        * rendering/RenderBlockLineLayout.cpp:
38797        (WebCore::setLogicalWidthForTextRun):
38798        * rendering/RenderBoxModelObject.cpp:
38799        (WebCore::ImageQualityController::highQualityRepaintTimerFired):
38800        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
38801        * rendering/RenderCounter.cpp:
38802        (WebCore::RenderCounter::destroyCounterNodes):
38803        (WebCore::RenderCounter::destroyCounterNode):
38804        (WebCore::updateCounters):
38805        (WebCore::RenderCounter::rendererStyleChanged):
38806        * rendering/RenderFlowThread.cpp:
38807        (WebCore::RenderFlowThread::setRegionRangeForBox):
38808        (WebCore::RenderFlowThread::getRegionRangeForBox):
38809        * rendering/RenderLayer.cpp:
38810        (WebCore::RenderLayer::paint):
38811        (WebCore::performOverlapTests):
38812        * rendering/RenderLayerFilterInfo.cpp:
38813        (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
38814        (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
38815        * rendering/RenderNamedFlowThread.cpp:
38816        (WebCore::RenderNamedFlowThread::dependsOn):
38817        (WebCore::RenderNamedFlowThread::pushDependencies):
38818        * rendering/RenderRegion.cpp:
38819        (WebCore::RenderRegion::setRenderBoxRegionInfo):
38820        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
38821        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
38822        (WebCore::RenderRegion::computeChildrenStyleInRegion):
38823        * rendering/RenderTableSection.cpp:
38824        (WebCore::RenderTableSection::cachedCollapsedBorder):
38825        * rendering/RenderThemeMac.mm:
38826        (WebCore::RenderThemeMac::systemColor):
38827        * rendering/RenderView.cpp:
38828        (WebCore::RenderView::selectionBounds):
38829        (WebCore::RenderView::setSelection):
38830        * rendering/RenderWidget.cpp:
38831        (WebCore::RenderWidget::resumeWidgetHierarchyUpdates):
38832        * rendering/RootInlineBox.cpp:
38833        (WebCore::RootInlineBox::ascentAndDescentForBox):
38834        * rendering/VerticalPositionCache.h:
38835        (WebCore::VerticalPositionCache::get):
38836        * rendering/WrapShapeInfo.cpp:
38837        (WebCore::WrapShapeInfo::ensureWrapShapeInfoForRenderBlock):
38838        * rendering/svg/RenderSVGInlineText.cpp:
38839        (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
38840        * rendering/svg/RenderSVGResourceFilter.cpp:
38841        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
38842        * rendering/svg/RenderSVGResourceGradient.cpp:
38843        (WebCore::RenderSVGResourceGradient::applyResource):
38844        * rendering/svg/RenderSVGResourcePattern.cpp:
38845        (WebCore::RenderSVGResourcePattern::applyResource):
38846        * rendering/svg/SVGResourcesCache.cpp:
38847        (WebCore::SVGResourcesCache::resourceDestroyed):
38848        * rendering/svg/SVGRootInlineBox.cpp:
38849        (WebCore::swapItemsInLayoutAttributes):
38850        * rendering/svg/SVGTextLayoutAttributes.cpp:
38851        (WebCore::SVGTextLayoutAttributes::dump):
38852        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
38853        (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
38854        (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
38855        * rendering/svg/SVGTextLayoutEngine.cpp:
38856        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
38857        * rendering/svg/SVGTextMetricsBuilder.cpp:
38858        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
38859        * storage/StorageAreaSync.cpp:
38860        (WebCore::StorageAreaSync::syncTimerFired):
38861        (WebCore::StorageAreaSync::performImport):
38862        (WebCore::StorageAreaSync::sync):
38863        * storage/StorageMap.cpp:
38864        (WebCore::StorageMap::key):
38865        (WebCore::StorageMap::setItem):
38866        * storage/StorageNamespaceImpl.cpp:
38867        (WebCore::StorageNamespaceImpl::localStorageNamespace):
38868        (WebCore::StorageNamespaceImpl::copy):
38869        (WebCore::StorageNamespaceImpl::close):
38870        (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
38871        (WebCore::StorageNamespaceImpl::sync):
38872        * svg/SVGDocumentExtensions.cpp:
38873        (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
38874        (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
38875        (WebCore::SVGDocumentExtensions::addPendingResource):
38876        (WebCore::SVGDocumentExtensions::isElementPendingResources):
38877        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
38878        (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
38879        (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
38880        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
38881        * svg/SVGElement.cpp:
38882        (WebCore::SVGElement::~SVGElement):
38883        * svg/animation/SMILTimeContainer.cpp:
38884        (WebCore::SMILTimeContainer::updateAnimations):
38885        * svg/graphics/SVGImageCache.cpp:
38886        (WebCore::SVGImageCache::~SVGImageCache):
38887        (WebCore::SVGImageCache::removeClientFromCache):
38888        (WebCore::SVGImageCache::requestedSizeAndScales):
38889        (WebCore::SVGImageCache::imageContentChanged):
38890        (WebCore::SVGImageCache::redraw):
38891        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
38892        * svg/graphics/filters/SVGFilterBuilder.h:
38893        (WebCore::SVGFilterBuilder::effectReferences):
38894        (WebCore::SVGFilterBuilder::addBuiltinEffects):
38895        * svg/properties/SVGAnimatedProperty.h:
38896        (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
38897        * svg/properties/SVGAttributeToPropertyMap.cpp:
38898        (WebCore::SVGAttributeToPropertyMap::addProperties):
38899        (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
38900        * workers/WorkerContext.cpp:
38901        (WebCore::WorkerContext::hasPendingActivity):
38902        * workers/WorkerEventQueue.cpp:
38903        (WebCore::WorkerEventQueue::close):
38904        * xml/XMLHttpRequest.cpp:
38905        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
38906        (WebCore::XMLHttpRequest::getAllResponseHeaders):
38907        * xml/XPathFunctions.cpp:
38908        (WebCore::XPath::createFunction):
38909        * xml/XPathParser.cpp:
38910        (isAxisName):
38911        * xml/XSLTProcessorLibxslt.cpp:
38912        (WebCore::xsltParamArrayFromParameterMap):
38913        * xml/XSLTProcessorQt.cpp:
38914        (WebCore::XSLTProcessor::transformToString):
38915
389162012-08-27  Jeffrey Pfau  <jpfau@apple.com>
38917
38918        Make shared workers respect third-party storage blocking setting
38919        https://bugs.webkit.org/show_bug.cgi?id=94559
38920
38921        Reviewed by Adam Barth.
38922
38923        Shared workers can fundamentally leak information between pages in
38924        different contexts if the workers can be accessed from a third-party
38925        context. Thus, if third-party storage blocking is enabled, shared
38926        workers should be disallowed in third-party contexts.
38927
38928        Tests: http/tests/security/cross-origin-shared-worker-allowed.html
38929               http/tests/security/cross-origin-shared-worker.html
38930
38931        * page/SecurityOrigin.h: Add canAccessSharedWorkers function
38932        (WebCore::SecurityOrigin::canAccessSharedWorkers):
38933        * workers/SharedWorker.cpp:
38934        (WebCore::SharedWorker::create): Ensure that we can access shared workers before creating the worker.
38935
389362012-07-10  Robert Hogan  <robert@webkit.org>
38937
38938        REGRESSION (r94492): Unstable layout of static block inside text-align: center div
38939        https://bugs.webkit.org/show_bug.cgi?id=77754
38940
38941        Reviewed by David Hyatt.
38942
38943        Text-align of 'center' on an out-of-flow element determines its x-position in the line - it 
38944        doesn't mean that the element should be centred in the line as though it were a block of text.
38945        
38946        This is a partial revert of http://trac.webkit.org/changeset/113584 and a correction to 
38947        http://trac.webkit.org/changeset/94492.
38948
38949        Tests: fast/css/center-align-absolute-position-inline-block.html
38950               fast/css/center-align-absolute-position.html
38951
38952        * rendering/RenderBlock.cpp:
38953        (WebCore::RenderBlock::layoutPositionedObjects): Remove an update to the static position when
38954          it depended on the child's width. Reverts code added in r113584.
38955        * rendering/RenderBlock.h:
38956        (RenderBlock): Remove child parameter from startAlignedOffsetForLine()
38957        * rendering/RenderBlockLineLayout.cpp:
38958        (WebCore::setStaticPositions): ditto
38959        (WebCore::RenderBlock::startAlignedOffsetForLine): No need to account for the child's width when calculating
38960          the offset for the line.
38961
389622012-08-27  Jon Lee  <jonlee@apple.com>
38963
38964        [Mac] Add SPI to WK1 to retrieve internal IDs for web notifications
38965        https://bugs.webkit.org/show_bug.cgi?id=95099
38966        <rdar://problem/12180186>
38967
38968        Reviewed by Jessie Berlin.
38969
38970        This is work toward providing Mac support for web notifications in DRT and WTR (77969).
38971
38972        Expose functions to convert JSValue to Notification, and to get the NotificationController from a page.
38973
38974        * WebCore.exp.in:
38975        * WebCore.xcodeproj/project.pbxproj: Promote NotificationController.h and JSNotification.h to private headers.
38976
389772012-08-28  Dominic Mazzoni  <dmazzoni@google.com>
38978
38979        AX: Should be able to tab to focus a link in a canvas subtree
38980        https://bugs.webkit.org/show_bug.cgi?id=94967
38981
38982        Reviewed by Chris Fleizach.
38983
38984        Skips the hasNonEmptyBoundingBox check in isKeyboardFocusable
38985        when in a canvas subtree.
38986
38987        Test: fast/events/tab-focus-link-in-canvas.html
38988
38989        * html/HTMLAnchorElement.cpp:
38990        (WebCore::HTMLAnchorElement::isKeyboardFocusable):
38991
389922012-08-28  Koji Ishii  <kojiishi@gmail.com>
38993
38994        OPENTYPE_VERTICAL support for Chromium Win
38995        https://bugs.webkit.org/show_bug.cgi?id=94822
38996
38997        Reviewed by Tony Chang.
38998
38999        To fix bug 51450 - Glyphs in vertical text tests are rotated 90 degrees clockwise on Chromium Windows,
39000        this patch adds support of OPENTYPE_VERTICAL feature for Chromium Windows.
39001        Since enabling OPENTYPE_VERTICAL feature would require rather a big number of tests to rebaseline,
39002        the actual fix is separated into this patch, and the feature will be enabled in bug 51450,
39003        so that it is easier to revert on any perf regressions, as suggested by Tony in comment #50 of bug 51450.
39004
39005        All changes in this patch are behind #if ENABLE(OPENTYPE_VERTICAL) and therefore no tests are included in this patch.
39006        All tests in fast/writing-modes currently skipped will be enabled in bug 51450.
39007
39008        * WebCore.gyp/WebCore.gyp: Added platform/graphics/opentype/OpenType*.
39009        * WebCore.gypi: Ditto.
39010        * platform/graphics/FontCache.h: SKia uses uint32_t as FontFileKey.
39011        * platform/graphics/GlyphPageTreeNode.cpp:
39012        (WebCore::fill): Replace vertical alternate glyphs if vertical flow.
39013        * platform/graphics/SimpleFontData.cpp: Added m_verticalData.
39014        (WebCore::SimpleFontData::SimpleFontData):
39015        * platform/graphics/SimpleFontData.h:
39016        (WebCore::SimpleFontData::verticalData):
39017        (SimpleFontData):
39018        (WebCore::SimpleFontData::widthForGlyph):
39019        * platform/graphics/chromium/FontChromiumWin.cpp:
39020        (WebCore::Font::drawGlyphs): Draw glyphs verticaly if font->verticalData().
39021        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
39022        (WebCore::FontPlatformData::verticalData): Added.
39023        (WebCore):
39024        (WebCore::FontPlatformData::openTypeTable): Added.
39025        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
39026        (WebCore):
39027        (FontPlatformData): Added verticalData() and openTypeTable().
39028
390292012-08-28  Andy Estes  <aestes@apple.com>
39030
39031        Add header guards to WebTileCacheLayer.h.
39032        https://bugs.webkit.org/show_bug.cgi?id=95171
39033
39034        Reviewed by Simon Hausmann.
39035
39036        Headers love include guards.
39037
39038        * platform/graphics/ca/mac/WebTileCacheLayer.h:
39039
390402012-08-28  Dana Jansens  <danakj@chromium.org>
39041
39042        [chromium] Be robust to WebCore popping an empty GraphicsContext stack
39043        https://bugs.webkit.org/show_bug.cgi?id=95152
39044
39045        Reviewed by James Robinson.
39046
39047        * platform/graphics/skia/OpaqueRegionSkia.cpp:
39048        (WebCore::OpaqueRegionSkia::popCanvasLayer):
39049
390502012-08-28  David Hyatt  <hyatt@apple.com>
39051
39052        [New Multicolumn] Rename some flow thread methods and region methods/members to make them
39053        more accurate and also change some function signatures so they can be used by RenderMultiColumnSet.
39054        https://bugs.webkit.org/show_bug.cgi?id=95213
39055        
39056        Reviewed by Simon Fraser.
39057
39058        Rename regionRect()/setRegionRect()/m_regionRect on RenderRegion to be flowThreadPortionRect instead.
39059        The term regionRect() makes it sound like you're painting a rect in the region's coordinate space,
39060        but regionRect() actually represents the portion of the flow thread in the flow thread's coordinate space
39061        that this region "owns."
39062        
39063        Also fix paintIntoRegion and hitTestRegion to take specific flow thread portion rects to paint. This
39064        allows a region set to paint a portion of a portion, i.e., if a multicolumn set owns part of the flow thread
39065        it has to be able to further break up that part into individual columns and issue multiple paint calls, one
39066        for each column.
39067
39068        * rendering/RenderFlowThread.cpp:
39069        (WebCore::RenderFlowThread::layout):
39070        (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
39071        (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
39072        (WebCore::RenderFlowThread::repaintRectangleInRegions):
39073        (WebCore::RenderFlowThread::renderRegionForLine):
39074        (WebCore::RenderFlowThread::regionLogicalTopForLine):
39075        (WebCore::RenderFlowThread::regionLogicalWidthForLine):
39076        (WebCore::RenderFlowThread::regionLogicalHeightForLine):
39077        (WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
39078        (WebCore::RenderFlowThread::mapFromFlowToRegion):
39079        (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
39080        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
39081        * rendering/RenderFlowThread.h:
39082        * rendering/RenderMultiColumnSet.cpp:
39083        (WebCore::RenderMultiColumnSet::columnCount):
39084        (WebCore::RenderMultiColumnSet::paintColumnContents):
39085        * rendering/RenderRegion.cpp:
39086        (WebCore::RenderRegion::flowThreadPortionOverflowRect):
39087        (WebCore::RenderRegion::paintReplaced):
39088        (WebCore::RenderRegion::nodeAtPoint):
39089        (WebCore::RenderRegion::layout):
39090        (WebCore::RenderRegion::offsetFromLogicalTopOfFirstPage):
39091        * rendering/RenderRegion.h:
39092        (WebCore::RenderRegion::setFlowThreadPortionRect):
39093        (WebCore::RenderRegion::flowThreadPortionRect):
39094        (RenderRegion):
39095        * rendering/RenderRegionSet.cpp:
39096        (WebCore::RenderRegionSet::expandToEncompassFlowThreadContentsIfNeeded):
39097
390982012-08-28  Alpha Lam  <hclam@chromium.org>
39099
39100        Report frame bytes by platform ImageDecoder
39101        https://bugs.webkit.org/show_bug.cgi?id=94241
39102
39103        Reviewed by James Robinson.
39104
39105        Decoded frame bytes should be reported by the platform ImageSource and
39106        ImageDecoder. BitmapImage used to guess system memory used by a frame
39107        but this is no longer true if a frame is backed by an accelerated
39108        surface or defer-decoded.
39109
39110        Adds ImageSource::frameBytesAtIndex and ImageDecoder::frameBytesAtIndex
39111        such that platform can report memory usage correctly.
39112
39113        No new tests. Refactoring without change of behavior.
39114        Tested on Chromium port with pixel tests without any crash or failure.
39115
39116        * platform/graphics/BitmapImage.cpp:
39117        (WebCore::BitmapImage::destroyDecodedData):
39118        (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
39119        (WebCore::BitmapImage::destroyMetadataAndNotify):
39120        (WebCore::BitmapImage::cacheFrame):
39121        (WebCore::BitmapImage::dataChanged):
39122        * platform/graphics/BitmapImage.h:
39123        (WebCore::FrameData::FrameData):
39124        (FrameData):
39125        (BitmapImage):
39126        * platform/graphics/ImageSource.cpp:
39127        (WebCore::ImageSource::frameBytesAtIndex):
39128        (WebCore):
39129        * platform/graphics/ImageSource.h:
39130        * platform/graphics/cg/ImageSourceCG.cpp:
39131        (WebCore::ImageSource::frameBytesAtIndex):
39132        (WebCore):
39133        * platform/image-decoders/ImageDecoder.cpp:
39134        (WebCore::ImageDecoder::frameBytesAtIndex):
39135        (WebCore):
39136        * platform/image-decoders/ImageDecoder.h:
39137        (ImageDecoder):
39138
391392012-08-28  Gustavo Noronha Silva  <gns@gnome.org>
39140
39141        [GTK] Does not regenerate CSS-related sources when configuration changes
39142        https://bugs.webkit.org/show_bug.cgi?id=94927
39143
39144        Reviewed by Eric Seidel.
39145
39146        In bug 94094 the gtk EWS consistently failed to build the patch. The
39147        reason that happens is the .in files have not been touched, so the CSS
39148        property names and value keywords sources are not regenerated. By
39149        adding an explicit dependency on configure.ac and GNUmakefile.am the
39150        problem is fixed (see bug 82465, attachment 160265).
39151
39152        * GNUmakefile.am: add explicit dependency from the CSS-related .in files
39153        on configure.ac and WebCore's GNUmakefile.am
39154
391552012-08-28  Sheriff Bot  <webkit.review.bot@gmail.com>
39156
39157        Unreviewed, rolling out r126813.
39158        http://trac.webkit.org/changeset/126813
39159        https://bugs.webkit.org/show_bug.cgi?id=95211
39160
39161        Broke Chromium debug builds (Requested by beverloo on
39162        #webkit).
39163
39164        * WebCore.gypi:
39165
391662012-08-28  Iain Merrick  <husky@chromium.org>
39167
39168        [chromium] Split some ASSERT(a && b && c) statements into separate lines.
39169        https://bugs.webkit.org/show_bug.cgi?id=95206
39170
39171        Reviewed by James Robinson.
39172
39173        This makes for easier debugging, as you can immediately see which clause
39174        has failed.
39175
39176        No change in behavior, no new tests needed.
39177
39178        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
39179        (WebCore::CCResourceProvider::deleteResource):
39180        (WebCore::CCResourceProvider::upload):
39181        (WebCore::CCResourceProvider::lockForRead):
39182        (WebCore::CCResourceProvider::unlockForRead):
39183        (WebCore::CCResourceProvider::lockForWrite):
39184        (WebCore::CCResourceProvider::unlockForWrite):
39185        (WebCore::CCResourceProvider::transferResource):
39186
391872012-08-28  Anna Cavender  <annacc@chromium.org>
39188
39189        [Chrome] Enable track by default.
39190        https://bugs.webkit.org/show_bug.cgi?id=95153
39191
39192        Reviewed by Eric Carlson.
39193
39194        This change turns <track> and TextTrack API on by default for Chrome.
39195
39196        Existing Tests: media/track/*
39197
39198        * bindings/generic/RuntimeEnabledFeatures.cpp:
39199        (WebCore):
39200
392012012-08-28  Arvid Nilsson  <anilsson@rim.com>
39202
39203        [BlackBerry] Checkerboard observed after pinch zooming page with AC layers
39204        https://bugs.webkit.org/show_bug.cgi?id=95192
39205
39206        PR 199177
39207        The LayerTiler was passing transformed ("pixel") coordinates to
39208        GraphicsLayerClient::contentsVisible(), and that method expects
39209        untransformed ("document") coordinates. When the scale was not 1.0,
39210        this was comparing apples and oranges.
39211
39212        Fixed by packaging up the transformation code into a reusable method
39213        and mapping the "pixel" tile rect to "document" coordinates before the
39214        visibility testing.
39215
39216        Reviewed by Antonio Gomes.
39217
39218        Not currently testable by the BlackBerry testing infrastructure.
39219
39220        * platform/graphics/blackberry/LayerTiler.cpp:
39221        (WebCore::LayerTiler::shouldPerformRenderJob):
39222        * platform/graphics/blackberry/LayerWebKitThread.cpp:
39223        (WebCore::LayerWebKitThread::paintContents):
39224        (WebCore::LayerWebKitThread::mapFromTransformed):
39225        (WebCore):
39226        * platform/graphics/blackberry/LayerWebKitThread.h:
39227        (LayerWebKitThread):
39228
392292012-08-28  Parth Patel  <parpatel@rim.com>
39230
39231        [BlackBerry] Removing unnecessary include of Class BlackBerryPlatformClient
39232        https://bugs.webkit.org/show_bug.cgi?id=95113
39233
39234        Reviewed by Kentaro Hara.
39235
39236        Refactoring has lead to relocation of many or all methods from Class
39237        BlackBerryPlatformClient to other classes. Some files include
39238        BlackBerryPlatformClient but does not use its instance thus these
39239        includes has to be removed.
39240
39241        No new tests as there are no logical modifications done.
39242
39243        * platform/network/blackberry/NetworkManager.cpp:
39244
392452012-08-28  Hugo Parente Lima  <hugo.lima@openbossa.org>
39246
39247        [WK2] Send click events to WebCore when the user clicked on a non-special node with TOUCH_ADJUSTMENT enabled.
39248        https://bugs.webkit.org/show_bug.cgi?id=91012
39249
39250        Reviewed by Antonio Gomes.
39251
39252        Don't abort the gesture tap handling when the tap hits a non user
39253        interactable node like a text node.
39254
39255        Test: touchadjustment/focusout-on-touch.html
39256
39257        * page/EventHandler.cpp:
39258        (WebCore::EventHandler::handleGestureTap):
39259
392602012-08-28  Andreas Kling  <kling@webkit.org>
39261
39262        Simplify cloning of inline style (below Node.cloneNode)
39263        <http://webkit.org/b/95095>
39264
39265        Reviewed by Eric Seidel.
39266
39267        Just use StylePropertySet::copy() instead of copying the properties and CSS parser mode manually
39268        when cloning an element that has inline style.
39269
39270        * css/StylePropertySet.cpp:
39271        (WebCore::StylePropertySet::StylePropertySet):
39272        * css/StylePropertySet.h:
39273        (StylePropertySet):
39274        * dom/ElementAttributeData.cpp:
39275        (WebCore::ElementAttributeData::cloneDataFrom):
39276
392772012-08-28  Sukolsak Sakshuwong  <sukolsak@gmail.com>
39278
39279        Crash in EditingStyle::mergeStyle
39280        https://bugs.webkit.org/show_bug.cgi?id=94740
39281
39282        Reviewed by Ryosuke Niwa.
39283
39284        This bug happened when we selected "1<progress><a style>2</a></progress>"
39285        and executed a create link command because
39286
39287        1. The selection ended at <progress>, not the text node inside it, because
39288           <progress> is an atomic node.
39289        2. We called removeInlineStyle() to remove conflicting styles.
39290           Since the selection started at the text node "1" and ended at <progress>,
39291           we did not get to remove <a>.
39292        3. We called fixRangeAndApplyInlineStyle(), which in turn called
39293           applyInlineStyleToNodeRange(). This method split the node range
39294           into smaller runs. In this case, the run was the whole
39295           "1<progress><a style>2</a></progress>".
39296        4. We called removeStyleFromRunBeforeApplyingStyle(). This method tried
39297           to remove <a> by calling removeInlineStyleFromElement() on <a> with
39298           extractedStyle = 0. But the method expected that extractedStyle was not null.
39299           So, it crashed.
39300
39301        This bug doesn't happen with non-atomic nodes because if <a> is inside a non-atomic
39302        node, <a> will be covered by the selection. Therefore, it will be removed in
39303        step #2 and we will never call removeInlineStyleFromElement() on <a>
39304        again. Thus, the assertion that extractedStyle is not null is reasonable.
39305        Hence, this patch fixes this bug by skipping over atomic nodes when we apply style.
39306
39307        Test: editing/style/apply-style-atomic.html
39308
39309        * editing/ApplyStyleCommand.cpp:
39310        (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
39311        (WebCore::ApplyStyleCommand::removeInlineStyle):
39312
393132012-08-28  Thiago Marcos P. Santos  <thiago.santos@intel.com>
39314
39315        [EFL] Range input ignores padding
39316        https://bugs.webkit.org/show_bug.cgi?id=94595
39317
39318        Reviewed by Kenneth Rohde Christiansen.
39319
39320        We do not constrain the slider size anymore since it was ignoring the
39321        padding. Also paint the slider thumb on the step it was suppose
39322        to be painted. WebKit will now take care of the positioning of the
39323        thumb, the behavior will be now more coherent with other ports.
39324
39325        As side effect, this patch also fixes setting a slider RTL that wasn't
39326        working before and can be verified by the existing tests. Also
39327        datalist will stop at tick marks.
39328
39329        No new tests, rebaselined the existing ones and unskipping failures.
39330
39331        * platform/efl/RenderThemeEfl.cpp:
39332        (WebCore):
39333        (WebCore::RenderThemeEfl::paintThemePart):
39334        (WebCore::RenderThemeEfl::edjeGroupFromFormType):
39335        (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
39336        (WebCore::RenderThemeEfl::adjustSliderThumbStyle):
39337        (WebCore::RenderThemeEfl::adjustSliderThumbSize):
39338        (WebCore::RenderThemeEfl::paintSliderThumb):
39339        * platform/efl/RenderThemeEfl.h:
39340
393412012-08-28  Kevin Funk  <kevin.funk@kdab.com>
39342
39343        Compile fix: use fabs() instead of abs() for doubles
39344        https://bugs.webkit.org/show_bug.cgi?id=95184
39345
39346        Reviewed by Kentaro Hara.
39347
39348        Simple compilation fix.
39349
39350        * platform/ScrollAnimatorNone.cpp:
39351
393522012-08-28  Christophe Dumez  <christophe.dumez@intel.com>
39353
39354        REGRESSION (r124512): Failures in MathML Presentation tests on GTK and EFL
39355        https://bugs.webkit.org/show_bug.cgi?id=93073
39356
39357        Reviewed by Kenneth Rohde Christiansen.
39358
39359        Provide SimpleFontData::platformBoundsForGlyph() implementation
39360        for FreeType backend. This fixes several CSS line-box-contain
39361        test cases as well as the MathML tests for ports using
39362        FreeType.
39363
39364        No new tests, already covered by:
39365        fast/block/lineboxcontain/block-glyphs-replaced.html
39366        fast/block/lineboxcontain/glyphs.html
39367        mathml/*
39368
39369        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
39370        (WebCore::SimpleFontData::platformBoundsForGlyph):
39371
393722012-08-28  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
39373
39374        Rename HitTestPoint and pointInContainer
39375        https://bugs.webkit.org/show_bug.cgi?id=90992
39376
39377        Reviewed by Eric Seidel.
39378
39379        The former hitTestPoint is not just a point. It can be either a point or an area being
39380        hit tested. This patches renames 'point' to 'location' to make it more obvious that the
39381        code does not only handle points.
39382
39383        * rendering/EllipsisBox.cpp:
39384        (WebCore::EllipsisBox::nodeAtPoint):
39385        * rendering/EllipsisBox.h:
39386        (EllipsisBox):
39387        * rendering/HitTestResult.cpp:
39388        (WebCore::HitTestLocation::HitTestLocation):
39389        (WebCore::HitTestLocation::~HitTestLocation):
39390        (WebCore::HitTestLocation::operator=):
39391        (WebCore::HitTestLocation::move):
39392        (WebCore::HitTestLocation::intersectsRect):
39393        (WebCore::HitTestLocation::intersects):
39394        (WebCore::HitTestLocation::rectForPoint):
39395        (WebCore::HitTestResult::HitTestResult):
39396        (WebCore::HitTestResult::operator=):
39397        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
39398        (WebCore::HitTestResult::dictationAlternatives):
39399        * rendering/HitTestResult.h:
39400        (HitTestLocation):
39401        (HitTestResult):
39402        (WebCore::HitTestResult::hitTestLocation):
39403        * rendering/InlineBox.cpp:
39404        (WebCore::InlineBox::nodeAtPoint):
39405        * rendering/InlineBox.h:
39406        (InlineBox):
39407        * rendering/InlineFlowBox.cpp:
39408        (WebCore::InlineFlowBox::nodeAtPoint):
39409        * rendering/InlineFlowBox.h:
39410        (InlineFlowBox):
39411        * rendering/InlineTextBox.cpp:
39412        (WebCore::InlineTextBox::nodeAtPoint):
39413        * rendering/InlineTextBox.h:
39414        (InlineTextBox):
39415        * rendering/RenderBlock.cpp:
39416        (WebCore::RenderBlock::isPointInOverflowControl):
39417        (WebCore::RenderBlock::nodeAtPoint):
39418        (WebCore::RenderBlock::hitTestFloats):
39419        (WebCore::RenderBlock::hitTestColumns):
39420        (WebCore::RenderBlock::adjustForColumnRect):
39421        (WebCore::RenderBlock::hitTestContents):
39422        * rendering/RenderBlock.h:
39423        (RenderBlock):
39424        * rendering/RenderBox.cpp:
39425        (WebCore::RenderBox::nodeAtPoint):
39426        * rendering/RenderBox.h:
39427        (RenderBox):
39428        * rendering/RenderEmbeddedObject.cpp:
39429        (WebCore::RenderEmbeddedObject::nodeAtPoint):
39430        * rendering/RenderEmbeddedObject.h:
39431        (RenderEmbeddedObject):
39432        * rendering/RenderFlowThread.cpp:
39433        (WebCore::RenderFlowThread::hitTestRegion):
39434        * rendering/RenderFlowThread.h:
39435        * rendering/RenderFrameSet.cpp:
39436        (WebCore::RenderFrameSet::nodeAtPoint):
39437        * rendering/RenderFrameSet.h:
39438        (RenderFrameSet):
39439        * rendering/RenderImage.cpp:
39440        (WebCore::RenderImage::nodeAtPoint):
39441        * rendering/RenderImage.h:
39442        (RenderImage):
39443        * rendering/RenderInline.cpp:
39444        (WebCore::RenderInline::nodeAtPoint):
39445        * rendering/RenderInline.h:
39446        (RenderInline):
39447        * rendering/RenderLayer.cpp:
39448        (WebCore::ClipRect::intersects):
39449        (WebCore::RenderLayer::hitTest):
39450        (WebCore::RenderLayer::createLocalTransformState):
39451        (WebCore::RenderLayer::hitTestLayer):
39452        (WebCore::RenderLayer::hitTestContents):
39453        (WebCore::RenderLayer::hitTestList):
39454        (WebCore::RenderLayer::hitTestPaginatedChildLayer):
39455        (WebCore::RenderLayer::hitTestChildLayerColumns):
39456        * rendering/RenderLayer.h:
39457        (ClipRect):
39458        (RenderLayer):
39459        * rendering/RenderLineBoxList.cpp:
39460        (WebCore::RenderLineBoxList::hitTest):
39461        * rendering/RenderLineBoxList.h:
39462        (RenderLineBoxList):
39463        * rendering/RenderListBox.cpp:
39464        (WebCore::RenderListBox::isPointInOverflowControl):
39465        (WebCore::RenderListBox::nodeAtPoint):
39466        * rendering/RenderListBox.h:
39467        (RenderListBox):
39468        * rendering/RenderObject.cpp:
39469        (WebCore::RenderObject::hitTest):
39470        (WebCore::RenderObject::nodeAtPoint):
39471        * rendering/RenderObject.h:
39472        (RenderObject):
39473        * rendering/RenderRegion.cpp:
39474        (WebCore::RenderRegion::nodeAtPoint):
39475        * rendering/RenderRegion.h:
39476        (RenderRegion):
39477        * rendering/RenderTable.cpp:
39478        (WebCore::RenderTable::nodeAtPoint):
39479        * rendering/RenderTable.h:
39480        (RenderTable):
39481        * rendering/RenderTableRow.cpp:
39482        (WebCore::RenderTableRow::nodeAtPoint):
39483        * rendering/RenderTableRow.h:
39484        (RenderTableRow):
39485        * rendering/RenderTableSection.cpp:
39486        (WebCore::RenderTableSection::nodeAtPoint):
39487        * rendering/RenderTableSection.h:
39488        (RenderTableSection):
39489        * rendering/RenderText.h:
39490        * rendering/RenderTextControlMultiLine.cpp:
39491        (WebCore::RenderTextControlMultiLine::nodeAtPoint):
39492        * rendering/RenderTextControlMultiLine.h:
39493        (RenderTextControlMultiLine):
39494        * rendering/RenderTextControlSingleLine.cpp:
39495        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
39496        * rendering/RenderTextControlSingleLine.h:
39497        (RenderTextControlSingleLine):
39498        * rendering/RenderWidget.cpp:
39499        (WebCore::RenderWidget::nodeAtPoint):
39500        * rendering/RenderWidget.h:
39501        (RenderWidget):
39502        * rendering/RootInlineBox.cpp:
39503        (WebCore::RootInlineBox::nodeAtPoint):
39504        * rendering/RootInlineBox.h:
39505        (RootInlineBox):
39506        * rendering/svg/RenderSVGForeignObject.cpp:
39507        (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
39508        (WebCore::RenderSVGForeignObject::nodeAtPoint):
39509        * rendering/svg/RenderSVGForeignObject.h:
39510        (RenderSVGForeignObject):
39511        * rendering/svg/RenderSVGModelObject.cpp:
39512        (WebCore::RenderSVGModelObject::nodeAtPoint):
39513        * rendering/svg/RenderSVGModelObject.h:
39514        (RenderSVGModelObject):
39515        * rendering/svg/RenderSVGRoot.cpp:
39516        (WebCore::RenderSVGRoot::nodeAtPoint):
39517        * rendering/svg/RenderSVGRoot.h:
39518        (RenderSVGRoot):
39519        * rendering/svg/RenderSVGText.cpp:
39520        (WebCore::RenderSVGText::nodeAtFloatPoint):
39521        (WebCore::RenderSVGText::nodeAtPoint):
39522        * rendering/svg/RenderSVGText.h:
39523        (RenderSVGText):
39524        * rendering/svg/SVGInlineTextBox.cpp:
39525        (WebCore::SVGInlineTextBox::nodeAtPoint):
39526        * rendering/svg/SVGInlineTextBox.h:
39527        (SVGInlineTextBox):
39528
395292012-08-28  Simon Hausmann  <simon.hausmann@nokia.com>
39530
39531        [Qt] New test introduced in r126611 fails: fast/css/image-set-setting.html
39532        https://bugs.webkit.org/show_bug.cgi?id=95054
39533
39534        Reviewed by Eric Seidel.
39535
39536        Add missing files to the build for CSS_IMAGE_SET.
39537
39538        * Target.pri:
39539
395402012-08-28  Pavel Feldman  <pfeldman@chromium.org>
39541
39542        Web Inspector: introduce overlay page and migrate "paused in debugger" to it.
39543        https://bugs.webkit.org/show_bug.cgi?id=95080
39544
39545        Reviewed by Yury Semikhatsky.
39546
39547        Separate page instance is now used to render overlay. Paused in debugger is migrated to the new overlay.
39548
39549        * CMakeLists.txt:
39550        * DerivedSources.make:
39551        * GNUmakefile.am:
39552        * WebCore.gyp/WebCore.gyp:
39553        * WebCore.gypi:
39554        * WebCore.vcproj/WebCore.vcproj:
39555        * WebCore.xcodeproj/project.pbxproj:
39556        * inspector/InspectorOverlay.cpp:
39557        (WebCore::InspectorOverlay::~InspectorOverlay):
39558        (WebCore):
39559        (WebCore::InspectorOverlay::paint):
39560        (WebCore::InspectorOverlay::drawOutline):
39561        (WebCore::InspectorOverlay::setPausedInDebuggerMessage):
39562        (WebCore::InspectorOverlay::drawNodeHighlight):
39563        (WebCore::InspectorOverlay::drawRectHighlight):
39564        (WebCore::InspectorOverlay::drawOverlayPage):
39565        (WebCore::InspectorOverlay::overlayPage):
39566        (WebCore::InspectorOverlay::evaluateInOverlay):
39567        * inspector/InspectorOverlay.h:
39568        (InspectorOverlay):
39569        * inspector/InspectorOverlayPage.html: Added.
39570        * inspector/InspectorPageAgent.cpp:
39571        (WebCore::InspectorPageAgent::didPaint):
39572
395732012-08-28  Andrey Adaikin  <aandrey@chromium.org>
39574
39575        Web Inspector: [WebGL] Simple experimental frontend implementation
39576        https://bugs.webkit.org/show_bug.cgi?id=94696
39577
39578        Reviewed by Vsevolod Vlasov.
39579
39580        A simple experimental frontend for WebGL instrumentation.
39581        This is a draft unpolished UI just to start with. Iterations on the UI will follow.
39582
39583        * WebCore.gypi:
39584        * inspector/front-end/Settings.js:
39585        (WebInspector.ExperimentsSettings):
39586        * inspector/front-end/WebGLPanel.js: Added.
39587        (WebInspector.WebGLPanel):
39588        (WebInspector.WebGLPanel.prototype.get toolbarItemLabel):
39589        (WebInspector.WebGLPanel.prototype.get statusBarItems):
39590        (WebInspector.WebGLPanel.prototype.wasShown):
39591        (WebInspector.WebGLPanel.prototype.willHide):
39592        (WebInspector.WebGLPanel.prototype._toggleWebGLInspection):
39593        (WebInspector.WebGLPanel.prototype._onCaptureFrameButtonClick):
39594        (WebInspector.WebGLPanel.prototype._onTraceLogListItemClick):
39595        (WebInspector.WebGLPanel.prototype._onFunctionCallItemClick):
39596        (WebInspector.WebGLManager):
39597        (WebInspector.WebGLManager.prototype.start):
39598        (WebInspector.WebGLManager.prototype.stop):
39599        (WebInspector.WebGLManager.prototype.dropTraceLog):
39600        (WebInspector.WebGLManager.prototype.captureFrame):
39601        (WebInspector.WebGLManager.prototype.getTraceLog):
39602        (WebInspector.WebGLManager.prototype.replayTraceLog):
39603        (WebInspector.WebGLManager.prototype._started):
39604        (WebInspector.WebGLManager.prototype._stopped):
39605        * inspector/front-end/WebKit.qrc:
39606        * inspector/front-end/inspector.html:
39607        * inspector/front-end/inspector.js:
39608        (WebInspector._panelDescriptors):
39609        * inspector/front-end/webGLPanel.css: Added.
39610        (.webgl-toggle-status-bar-item .glyph):
39611        (.webgl-toggle-status-bar-item.toggled-on .glyph):
39612        (.webgl-trace-logs-list):
39613        (.webgl-trace-log):
39614        (.webgl-trace-logs-list div, .webgl-trace-log div):
39615        (#webgl-capture-frame-button):
39616        (#webgl-replay-image-container):
39617        (#webgl-replay-image):
39618
396192012-08-28  Kentaro Hara  <haraken@chromium.org>
39620
39621        Unreviewed, rolling out r126852.
39622        http://trac.webkit.org/changeset/126852
39623        https://bugs.webkit.org/show_bug.cgi?id=94433
39624
39625        broke qt and mac tests
39626
39627        * bindings/js/ScheduledAction.cpp:
39628        (WebCore::ScheduledAction::create):
39629        * bindings/js/ScriptController.cpp:
39630        (WebCore::ScriptController::initScript):
39631        * bindings/v8/V8DOMWindowShell.cpp:
39632        (WebCore::V8DOMWindowShell::initializeIfNeeded):
39633        * bindings/v8/custom/V8DOMWindowCustom.cpp:
39634        (WebCore::WindowSetTimeoutImpl):
39635        * page/ContentSecurityPolicy.cpp:
39636        (CSPDirectiveList):
39637        (WebCore::CSPDirectiveList::reportViolation):
39638        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
39639        (WebCore::CSPDirectiveList::allowEval):
39640        (WebCore::ContentSecurityPolicy::didReceiveHeader):
39641        (WebCore):
39642        (WebCore::isAllowedByAllWithCallStack):
39643        (WebCore::ContentSecurityPolicy::allowEval):
39644        (WebCore::ContentSecurityPolicy::reportViolation):
39645        (WebCore::ContentSecurityPolicy::logToConsole):
39646        * page/ContentSecurityPolicy.h:
39647        (WebCore):
39648        * page/DOMSecurityPolicy.cpp:
39649        (WebCore::DOMSecurityPolicy::allowsEval):
39650
396512012-08-28  Mike West  <mkwst@chromium.org>
39652
39653        Add call stacks to Content Security Policy checks when relevant.
39654        https://bugs.webkit.org/show_bug.cgi?id=94433
39655
39656        Reviewed by Adam Barth.
39657
39658        Previously, we generated stack traces only for eval-related CSP
39659        violations. As it turns out, we can call createScriptCallStack from
39660        practically anywhere. This patch takes advantage of that to generate
39661        stack traces whenever a warning is logged to the console. If we're in
39662        a JavaScript stack, brilliant: we get a detailed warning. If not, the
39663        stack trace is empty, and we don't pass it into the console logging
39664        method.
39665
39666        This has the advantage of giving us good developer-facing logging for
39667        any and all violations that result from script-based injection of
39668        resources. Yay!
39669
39670        Tests: http/tests/inspector/csp-injected-content-warning-contains-stacktrace.html
39671               http/tests/inspector/csp-inline-warning-contains-stacktrace.html
39672
39673        * bindings/js/ScriptController.cpp:
39674        (WebCore::ScriptController::initScript):
39675        * bindings/js/ScheduledAction.cpp:
39676        (WebCore::ScheduledAction::create):
39677        * bindings/v8/V8DOMWindowShell.cpp:
39678        (WebCore::V8DOMWindowShell::initContextIfNeeded):
39679        * bindings/v8/custom/V8DOMWindowCustom.cpp:
39680        (WebCore::WindowSetTimeoutImpl):
39681            Dropping stack trace from call to ContentSecurityPolicy::allowEval.
39682        * page/ContentSecurityPolicy.cpp:
39683        (CSPDirectiveList):
39684        (WebCore::CSPDirectiveList::reportViolation):
39685        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
39686        (WebCore::CSPDirectiveList::allowEval):
39687            No longer piping a stack trace through CSPDirectiveList::allowEval
39688            to reportViolation.
39689        (WebCore::ContentSecurityPolicy::didReceiveHeader):
39690            Dropping stack trace from call to ContentSecurityPolicy::allowEval.
39691        (WebCore):
39692        (WebCore::isAllowedByAll):
39693        (WebCore::ContentSecurityPolicy::allowEval):
39694        (WebCore::ContentSecurityPolicy::reportViolation):
39695        (WebCore::ContentSecurityPolicy::logToConsole):
39696            No longer piping a stack trace through ContentSecurityPolicy down to
39697            the point where it would be logged. Instead, we simply generate the
39698            stack trace just before logging it, and only pass it to
39699            addConsoleMessage if it's non-empty.
39700        * page/ContentSecurityPolicy.h:
39701        (WebCore):
39702        * page/DOMSecurityPolicy.cpp:
39703        (WebCore::DOMSecurityPolicy::allowsEval):
39704            Dropping stack trace from call to ContentSecurityPolicy::allowEval.
39705
397062012-08-27  Andrey Kosyakov  <caseq@chromium.org>
39707
39708        Web Inspector: persist the state of glue records to parents button of Timeline panel
39709        https://bugs.webkit.org/show_bug.cgi?id=95091
39710
39711        Reviewed by Vsevolod Vlasov.
39712
39713        Add a setting for "Glue records" button on the timeline, use it to persist the state of the button.
39714
39715        * inspector/front-end/TimelinePanel.js:
39716        (WebInspector.TimelinePanel):
39717        (WebInspector.TimelinePanel.prototype._createStatusBarItems.get this):
39718        (WebInspector.TimelinePanel.prototype._createStatusBarItems):
39719
397202012-08-27  Taiju Tsuiki  <tzik@chromium.org>
39721
39722        Web Inspector: Add delete button to FileSystemView
39723        https://bugs.webkit.org/show_bug.cgi?id=93940
39724
39725        Reviewed by Vsevolod Vlasov.
39726
39727        Adding status bar button to allow user to delete entries in FileSystem
39728        for debugging use.
39729
39730        Test: http/tests/inspector/filesystem/delete-entry.html
39731
39732        * inspector/front-end/FileSystemModel.js:
39733        (WebInspector.FileSystemModel.prototype.requestFileContent):
39734        (WebInspector.FileSystemModel.prototype.deleteEntry.hookFileSystemDeletion):
39735        (WebInspector.FileSystemModel.prototype.deleteEntry):
39736        (WebInspector.FileSystemModel.prototype._removeFileSystem):
39737        (WebInspector.FileSystemModel.Entry.prototype.deleteEntry):
39738        (WebInspector.FileSystemRequestManager):
39739        (WebInspector.FileSystemRequestManager.prototype.deleteEntry.requestAccepted):
39740        (WebInspector.FileSystemRequestManager.prototype.deleteEntry):
39741        (WebInspector.FileSystemRequestManager.prototype._deletionCompleted):
39742        (WebInspector.FileSystemDispatcher.prototype.deletionCompleted):
39743        * inspector/front-end/FileSystemView.js:
39744        (WebInspector.FileSystemView):
39745        (WebInspector.FileSystemView.prototype.get statusBarItems):
39746        (WebInspector.FileSystemView.prototype._refresh):
39747        (WebInspector.FileSystemView.prototype._confirmDelete):
39748        (WebInspector.FileSystemView.prototype._delete):
39749        (WebInspector.FileSystemView.EntryTreeElement.prototype.deleteEntry):
39750        (WebInspector.FileSystemView.EntryTreeElement.prototype._deletionCompleted):
39751
397522012-08-27  Yoshifumi Inoue  <yosin@chromium.org>
39753
39754        [ShadowDOM] Shadow elements in the input element should be focusable.
39755        https://bugs.webkit.org/show_bug.cgi?id=95169
39756
39757        Reviewed by Kent Tamura.
39758
39759        This patch introduces new virtual function HTMLElement::hasCustomFocusLogic()
39760        to allow input type implementations to use shadow element with focus
39761        navigation.
39762
39763        No new tests. This patch doesn't change behavior.
39764
39765        (WebCore::HTMLElement::hasCustomFocusLogic): Added to return false as
39766        default value.
39767        * html/HTMLElement.h:
39768        (HTMLElement): Added a declaration of hasCustomFocusLogic().
39769        * html/HTMLInputElement.cpp:
39770        (WebCore::HTMLInputElement::hasCustomFocusLogic): Added to call InputType::hasCustomFocusLogic(),
39771        * html/HTMLInputElement.h:
39772        (HTMLInputElement): Added a declaration of hasCustomFocusLogic().
39773        * html/HTMLMediaElement.cpp:
39774        (WebCore::HTMLMediaElement::hasCustomFocusLogic): Added to return true for "audio" and "video" elements.
39775        * html/HTMLMediaElement.h:
39776        (HTMLMediaElement): Add a declaration of hasCustomFocusLogic()
39777        * html/HTMLTextAreaElement.cpp:
39778        (WebCore::HTMLTextAreaElement::hasCustomFocusLogic): Added to return true.
39779        * html/HTMLTextAreaElement.h:
39780        (HTMLTextAreaElement): Add a declaration of hasCustomFocusLogic().
39781        * page/FocusController.cpp:
39782        (WebCore::hasCustomFocusLogic): Changed to call HTMLElement::hasCustomFocusLogic()
39783        rather than checking tag names.
39784        * html/InputType.cpp:
39785        (WebCore::InputType::hasCustomFocusLogic): Added to return true as default value.
39786        * html/InputType.h:
39787        (InputType): Added a declaration of hasCustomFocusLogic().
39788
397892012-08-27  Beth Dakin  <bdakin@apple.com>
39790
39791        https://bugs.webkit.org/show_bug.cgi?id=94848
39792        When paged-x/y is specified on the root, columnGap is ignored, and garbage pixels 
39793        are likely
39794
39795        Reviewed by Dan Bernstein.
39796
39797        We used to call setPagination() from applyOverflowToViewport(), but that is too 
39798        late. We want to setPagination() before we actually lay anything out so that all 
39799        of the styles (including columnGap!) will be properly set on the RenderView. 
39800
39801        No longer handle pagination here since we take care of it in 
39802        applyPaginationToViewport()        
39803        * page/FrameView.cpp:
39804        (WebCore::FrameView::applyOverflowToViewport):
39805
39806        New function to call setPagination(). This function gets the appropriate renderer 
39807        and uses its RenderStyle to determine if pagination should be set.
39808        (WebCore::FrameView::applyPaginationToViewport):
39809        (WebCore):
39810
39811        Call applyPaginationToViewport() before the call to updateStyleIfNeeded().
39812        (WebCore::FrameView::layout):
39813
39814        This code was meant to prevent garbage pixels in column gaps for pagination on the 
39815        RenderView, but paintContents() does not always get called when we paint into 
39816        tiles, so I moved this code to RenderView.
39817        (WebCore::FrameView::paintContents):
39818        * page/FrameView.h:
39819        (FrameView):
39820
39821        The code from RenderView::paintContents() to prevent garbage pixels is moved here.
39822        * rendering/RenderView.cpp:
39823        (WebCore::RenderView::paint):
39824
398252012-08-27  Kent Tamura  <tkent@chromium.org>
39826
39827        REGRESSION(r109480): Form state for iframe content is not restored
39828        https://bugs.webkit.org/show_bug.cgi?id=90870
39829
39830        Reviewed by Jochen Eisinger.
39831
39832        Since r109480, we have restored form state only for documents
39833        loaded by FrameLoader::loadItem(). However we should restore form
39834        state for documents in sub-frames of documents loaded by
39835        FrameLoader::loadItem().
39836
39837        Test: fast/loader/form-state-restore-with-frames.html
39838
39839        * history/HistoryItem.cpp:
39840        (WebCore::HistoryItem::isAncestorOf):
39841        Added. A function to search descendants for the specified
39842        HistoryItem. This is used by isAssociatedToRequestedHistoryItem().
39843        * history/HistoryItem.h:
39844        (HistoryItem): Declare isAncestorOf().
39845        * loader/HistoryController.cpp:
39846        (WebCore::HistoryController::saveDocumentState):
39847        Don't save form state for detached document.
39848        This is needed because saveDocumentState() is called twice; before
39849        document detach and after document detach. We need to avoid the
39850        latter call because formElementsState() for a detached document
39851        produces an empty state.
39852        (WebCore::isAssociatedToRequestedHistoryItem):
39853        Added. This function checks the current HistoryItem is associated
39854        to the HistoryItem specified to FrameLoader::loadItem().
39855        (WebCore::HistoryController::restoreDocumentState):
39856        Uses isAssociatedToRequestedHistoryItem().
39857
398582012-08-27  Ian Vollick  <vollick@chromium.org>
39859
39860        [chromium] Should accelerate rotations of >= 180 degrees
39861        https://bugs.webkit.org/show_bug.cgi?id=94860
39862
39863        Reviewed by James Robinson.
39864
39865        WebTransformOperation now stores enough information to interpolate
39866        without resorting to WebTransformationMatrix::blend which is both
39867        expensive, and in the case of big rotations, error prone. For example,
39868        we now store the axis and angle for rotations, so if two rotations are
39869        interpolated, and they are about the same axis, we can simply
39870        interpolate the angles.
39871
39872        Unit tests:
39873          WebTransformOperationTest.transformTypesAreUnique
39874          WebTransformOperationTest.matchTypesSameLength
39875          WebTransformOperationTest.identityAlwaysMatches
39876          WebTransformOperationTest.largeRotationsWithSameAxis
39877          WebTransformOperationTest.largeRotationsWithSameAxisInDifferentDirection
39878          WebTransformOperationTest.largeRotationsWithDifferentAxes
39879          WebTransformOperationTest.blendRotationFromIdentity
39880          WebTransformOperationTest.blendTranslationFromIdentity
39881          WebTransformOperationTest.blendScaleFromIdentity
39882          WebTransformOperationTest.blendSkewFromIdentity
39883          WebTransformOperationTest.blendPerspectiveFromIdentity
39884          WebTransformOperationTest.blendRotationToIdentity
39885          WebTransformOperationTest.blendTranslationToIdentity
39886          WebTransformOperationTest.blendScaleToIdentity
39887          WebTransformOperationTest.blendSkewToIdentity
39888          WebTransformOperationTest.blendPerspectiveToIdentity
39889          AnimationTranslationUtilTest.createTransformAnimationWithBigRotation
39890          AnimationTranslationUtilTest.createTransformAnimationWithBigRotationAndEmptyTransformOperationList
39891
39892        * platform/chromium/support/WebTransformOperations.cpp:
39893        (std):
39894        (WebKit::WebTransformOperation::WebTransformOperation):
39895        (WebTransformOperation):
39896          Added x y z and angle.
39897        (WebKit::WebTransformOperation::isIdentity):
39898          Returns true if this->matrix.isIdentity()
39899        (WebKit::isIdentity):
39900          Returns true if the argument is null or ->isIdentity()
39901        (WebKit):
39902        (WebKit::shareSameAxis):
39903          A helper function that determines if two transform operations
39904          share the same axis. Also returns the axis and 'from' angle
39905          to use in the interpolation (in case the axes point in different
39906          directions).
39907        (WebKit::blendDoubles):
39908          Linearly interpolates doubles.
39909        (WebKit::blendTransformOperations):
39910          Blends two WebTransformOperation objects.
39911        (WebKit::WebTransformOperations::blend):
39912          Blends two WebTransformOperations objects, taking special care
39913          when either isIdentity().
39914        (WebKit::WebTransformOperations::matchesTypes):
39915          Was changed to reflect the fact that identity transform operations
39916          match anything.
39917        (WebKit::WebTransformOperations::appendTranslate):
39918        (WebKit::WebTransformOperations::appendRotate):
39919        (WebKit::WebTransformOperations::appendScale):
39920        (WebKit::WebTransformOperations::appendSkew):
39921        (WebKit::WebTransformOperations::appendPerspective):
39922        (WebKit::WebTransformOperations::appendIdentity):
39923          The 'append' functions all populate the new members in
39924          WebTransformOperation.
39925        (WebKit::WebTransformOperations::isIdentity):
39926          Returns false iff any of its transform operations !isIdentity().
39927        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
39928        (WebCore::toWebTransformOperations):
39929        (WebCore::WebTransformAnimationCurve):
39930          Removed the >= 180 degree restriction.
39931
399322012-08-27  Sheriff Bot  <webkit.review.bot@gmail.com>
39933
39934        Unreviewed, rolling out r126836.
39935        http://trac.webkit.org/changeset/126836
39936        https://bugs.webkit.org/show_bug.cgi?id=95163
39937
39938        Broke all Apple ports, EFL, and Qt. (Requested by tkent on
39939        #webkit).
39940
39941        * Modules/geolocation/Geolocation.cpp:
39942        (WebCore::Geolocation::Watchers::find):
39943        (WebCore::Geolocation::Watchers::remove):
39944        * Modules/indexeddb/IDBDatabase.cpp:
39945        (WebCore::IDBDatabase::objectStoreNames):
39946        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
39947        (WebCore::IDBDatabaseBackendImpl::metadata):
39948        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
39949        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
39950        (WebCore::IDBFactoryBackendImpl::openBackingStore):
39951        (WebCore::IDBFactoryBackendImpl::open):
39952        * Modules/indexeddb/IDBObjectStore.cpp:
39953        (WebCore::IDBObjectStore::indexNames):
39954        (WebCore::IDBObjectStore::put):
39955        (WebCore::IDBObjectStore::index):
39956        (WebCore::IDBObjectStore::deleteIndex):
39957        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
39958        (WebCore::IDBObjectStoreBackendImpl::metadata):
39959        (WebCore::makeIndexWriters):
39960        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
39961        * Modules/indexeddb/IDBTransaction.cpp:
39962        (WebCore::IDBTransaction::objectStore):
39963        (WebCore::IDBTransaction::objectStoreDeleted):
39964        (WebCore::IDBTransaction::onAbort):
39965        (WebCore::IDBTransaction::dispatchEvent):
39966        * Modules/webdatabase/AbstractDatabase.cpp:
39967        (WebCore::AbstractDatabase::performOpenAndVerify):
39968        * Modules/webdatabase/DatabaseTracker.cpp:
39969        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
39970        * Modules/webdatabase/OriginUsageRecord.cpp:
39971        (WebCore::OriginUsageRecord::diskUsage):
39972        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
39973        (WebCore::SQLTransactionCoordinator::acquireLock):
39974        (WebCore::SQLTransactionCoordinator::releaseLock):
39975        (WebCore::SQLTransactionCoordinator::shutdown):
39976        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
39977        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
39978        * Modules/webdatabase/chromium/QuotaTracker.cpp:
39979        (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
39980        (WebCore::QuotaTracker::updateDatabaseSize):
39981        * Modules/websockets/WebSocketDeflateFramer.cpp:
39982        (WebCore::WebSocketExtensionDeflateFrame::processResponse):
39983        * Modules/websockets/WebSocketExtensionDispatcher.cpp:
39984        (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
39985        * accessibility/AXObjectCache.cpp:
39986        (WebCore::AXObjectCache::~AXObjectCache):
39987        * bindings/gobject/DOMObjectCache.cpp:
39988        (WebKit::DOMObjectCache::clearByFrame):
39989        * bindings/js/DOMObjectHashTableMap.h:
39990        (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
39991        (WebCore::DOMObjectHashTableMap::get):
39992        * bindings/js/JSDOMBinding.cpp:
39993        (WebCore::cacheDOMStructure):
39994        * bindings/js/JSDOMGlobalObject.cpp:
39995        (WebCore::JSDOMGlobalObject::visitChildren):
39996        * bindings/js/JSDOMGlobalObject.h:
39997        (WebCore::getDOMConstructor):
39998        * bindings/js/PageScriptDebugServer.cpp:
39999        (WebCore::PageScriptDebugServer::addListener):
40000        (WebCore::PageScriptDebugServer::removeListener):
40001        * bindings/js/ScriptCachedFrameData.cpp:
40002        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
40003        (WebCore::ScriptCachedFrameData::restore):
40004        * bindings/js/ScriptController.cpp:
40005        (WebCore::ScriptController::~ScriptController):
40006        (WebCore::ScriptController::clearWindowShell):
40007        (WebCore::ScriptController::attachDebugger):
40008        (WebCore::ScriptController::updateDocument):
40009        (WebCore::ScriptController::createRootObject):
40010        (WebCore::ScriptController::collectIsolatedContexts):
40011        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
40012        (WebCore::ScriptController::clearScriptObjects):
40013        * bindings/js/ScriptController.h:
40014        (WebCore::ScriptController::windowShell):
40015        (WebCore::ScriptController::existingWindowShell):
40016        * bindings/js/ScriptDebugServer.cpp:
40017        (WebCore::ScriptDebugServer::setBreakpoint):
40018        (WebCore::ScriptDebugServer::removeBreakpoint):
40019        (WebCore::ScriptDebugServer::hasBreakpoint):
40020        * bindings/js/SerializedScriptValue.cpp:
40021        (WebCore::CloneSerializer::checkForDuplicate):
40022        (WebCore::CloneSerializer::dumpIfTerminal):
40023        (WebCore::CloneSerializer::write):
40024        * bindings/scripts/CodeGeneratorV8.pm:
40025        (GenerateImplementation):
40026        * bindings/scripts/test/V8/V8Float64Array.cpp:
40027        (WebCore::V8Float64Array::GetRawTemplate):
40028        (WebCore::V8Float64Array::GetTemplate):
40029        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
40030        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
40031        (WebCore::V8TestActiveDOMObject::GetTemplate):
40032        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
40033        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
40034        (WebCore::V8TestCustomNamedGetter::GetTemplate):
40035        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
40036        (WebCore::V8TestEventConstructor::GetRawTemplate):
40037        (WebCore::V8TestEventConstructor::GetTemplate):
40038        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
40039        (WebCore::V8TestEventTarget::GetRawTemplate):
40040        (WebCore::V8TestEventTarget::GetTemplate):
40041        * bindings/scripts/test/V8/V8TestException.cpp:
40042        (WebCore::V8TestException::GetRawTemplate):
40043        (WebCore::V8TestException::GetTemplate):
40044        * bindings/scripts/test/V8/V8TestInterface.cpp:
40045        (WebCore::V8TestInterface::GetRawTemplate):
40046        (WebCore::V8TestInterface::GetTemplate):
40047        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
40048        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
40049        (WebCore::V8TestMediaQueryListListener::GetTemplate):
40050        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
40051        (WebCore::V8TestNamedConstructor::GetRawTemplate):
40052        (WebCore::V8TestNamedConstructor::GetTemplate):
40053        * bindings/scripts/test/V8/V8TestNode.cpp:
40054        (WebCore::V8TestNode::GetRawTemplate):
40055        (WebCore::V8TestNode::GetTemplate):
40056        * bindings/scripts/test/V8/V8TestObj.cpp:
40057        (WebCore::V8TestObj::GetRawTemplate):
40058        (WebCore::V8TestObj::GetTemplate):
40059        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
40060        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
40061        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
40062        * bindings/v8/DOMWrapperWorld.cpp:
40063        (WebCore::DOMWrapperWorld::deallocate):
40064        (WebCore::DOMWrapperWorld::getOrCreateIsolatedWorld):
40065        * bindings/v8/NPV8Object.cpp:
40066        (WebCore::freeV8NPObject):
40067        (WebCore::npCreateV8ScriptObject):
40068        * bindings/v8/ScriptController.cpp:
40069        (WebCore::ScriptController::clearScriptObjects):
40070        (WebCore::ScriptController::resetIsolatedWorlds):
40071        (WebCore::ScriptController::evaluateInIsolatedWorld):
40072        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
40073        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
40074        (WebCore::ScriptController::collectIsolatedContexts):
40075        * bindings/v8/SerializedScriptValue.cpp:
40076        * bindings/v8/V8DOMMap.h:
40077        (WebCore::WeakReferenceMap::removeIfPresent):
40078        (WebCore::WeakReferenceMap::visit):
40079        * bindings/v8/V8GCController.cpp:
40080        (WebCore::enumerateGlobalHandles):
40081        * bindings/v8/V8PerContextData.cpp:
40082        (WebCore::V8PerContextData::dispose):
40083        * bindings/v8/npruntime.cpp:
40084        * bridge/IdentifierRep.cpp:
40085        (WebCore::IdentifierRep::get):
40086        * bridge/NP_jsobject.cpp:
40087        (ObjectMap::add):
40088        (ObjectMap::remove):
40089        * bridge/jni/jsc/JavaClassJSC.cpp:
40090        (JavaClass::~JavaClass):
40091        * bridge/qt/qt_instance.cpp:
40092        (JSC::Bindings::WeakMap::set):
40093        * bridge/runtime_root.cpp:
40094        (JSC::Bindings::RootObject::invalidate):
40095        * css/CSSCanvasValue.cpp:
40096        (WebCore::CSSCanvasValue::canvasChanged):
40097        (WebCore::CSSCanvasValue::canvasResized):
40098        * css/CSSComputedStyleDeclaration.cpp:
40099        (WebCore::counterToCSSValue):
40100        * css/CSSCrossfadeValue.cpp:
40101        (WebCore::CSSCrossfadeValue::crossfadeChanged):
40102        * css/CSSFontFaceSource.cpp:
40103        (WebCore::CSSFontFaceSource::getFontData):
40104        * css/CSSFontSelector.cpp:
40105        (WebCore::CSSFontSelector::addFontFaceRule):
40106        (WebCore::CSSFontSelector::getFontData):
40107        * css/CSSImageGeneratorValue.cpp:
40108        (WebCore::CSSImageGeneratorValue::addClient):
40109        (WebCore::CSSImageGeneratorValue::removeClient):
40110        (WebCore::CSSImageGeneratorValue::getImage):
40111        * css/CSSSegmentedFontFace.cpp:
40112        (WebCore::CSSSegmentedFontFace::getFontData):
40113        * css/CSSSelector.cpp:
40114        (WebCore::CSSSelector::parsePseudoType):
40115        * css/CSSValuePool.cpp:
40116        (WebCore::CSSValuePool::createColorValue):
40117        (WebCore::CSSValuePool::createFontFamilyValue):
40118        (WebCore::CSSValuePool::createFontFaceValue):
40119        * css/PropertySetCSSStyleDeclaration.cpp:
40120        (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
40121        * css/StyleBuilder.cpp:
40122        (WebCore::ApplyPropertyCounter::applyInheritValue):
40123        (WebCore::ApplyPropertyCounter::applyValue):
40124        * css/StyleResolver.cpp:
40125        (WebCore::StyleResolver::collectFeatures):
40126        (WebCore::StyleResolver::ruleSetForScope):
40127        (WebCore::StyleResolver::appendAuthorStylesheets):
40128        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
40129        (WebCore::StyleResolver::collectMatchingRulesForList):
40130        * css/StyleSheetContents.cpp:
40131        (WebCore::StyleSheetContents::parserAddNamespace):
40132        (WebCore::StyleSheetContents::determineNamespace):
40133        * dom/CheckedRadioButtons.cpp:
40134        (WebCore::CheckedRadioButtons::addButton):
40135        (WebCore::CheckedRadioButtons::removeButton):
40136        * dom/ChildListMutationScope.cpp:
40137        (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
40138        (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
40139        (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
40140        (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
40141        * dom/Document.cpp:
40142        (WebCore::Document::pageGroupUserSheets):
40143        (WebCore::Document::windowNamedItems):
40144        (WebCore::Document::documentNamedItems):
40145        (WebCore::Document::getCSSCanvasElement):
40146        * dom/DocumentMarkerController.cpp:
40147        (WebCore::DocumentMarkerController::markerContainingPoint):
40148        (WebCore::DocumentMarkerController::renderedRectsForMarkers):
40149        (WebCore::DocumentMarkerController::removeMarkers):
40150        (WebCore::DocumentMarkerController::repaintMarkers):
40151        (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
40152        (WebCore::DocumentMarkerController::showMarkers):
40153        * dom/DocumentOrderedMap.cpp:
40154        (WebCore::DocumentOrderedMap::remove):
40155        * dom/ElementAttributeData.cpp:
40156        (WebCore::ensureAttrListForElement):
40157        * dom/EventDispatcher.cpp:
40158        (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
40159        * dom/EventListenerMap.cpp:
40160        (WebCore::EventListenerMap::eventTypes):
40161        (WebCore::EventListenerMap::add):
40162        (WebCore::EventListenerMap::remove):
40163        (WebCore::EventListenerMap::find):
40164        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
40165        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
40166        (WebCore::EventListenerIterator::nextListener):
40167        * dom/IdTargetObserverRegistry.cpp:
40168        (WebCore::IdTargetObserverRegistry::addObserver):
40169        (WebCore::IdTargetObserverRegistry::removeObserver):
40170        * dom/MemoryInstrumentation.h:
40171        (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
40172        (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
40173        * dom/MutationObserverInterestGroup.cpp:
40174        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
40175        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
40176        * dom/Node.cpp:
40177        (WebCore::Node::dumpStatistics):
40178        (WebCore::Node::clearRareData):
40179        (WebCore::NodeListsNodeData::invalidateCaches):
40180        (WebCore::Node::collectMatchingObserversForMutation):
40181        * dom/NodeRareData.h:
40182        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
40183        (WebCore::NodeListsNodeData::addCacheWithName):
40184        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
40185        (WebCore::NodeListsNodeData::adoptTreeScope):
40186        * dom/ProcessingInstruction.cpp:
40187        (WebCore::ProcessingInstruction::checkStyleSheet):
40188        * dom/ScriptExecutionContext.cpp:
40189        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
40190        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
40191        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
40192        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
40193        (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
40194        * dom/SelectorQuery.cpp:
40195        (WebCore::SelectorQueryCache::add):
40196        * dom/SpaceSplitString.cpp:
40197        (WebCore::SpaceSplitStringData::create):
40198        * dom/StyledElement.cpp:
40199        (WebCore::StyledElement::updateAttributeStyle):
40200        * editing/mac/AlternativeTextUIController.mm:
40201        (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
40202        * html/FormController.cpp:
40203        (WebCore::SavedFormState::serializeTo):
40204        (WebCore::SavedFormState::appendControlState):
40205        (WebCore::SavedFormState::takeControlState):
40206        (WebCore::SavedFormState::getReferencedFilePaths):
40207        (WebCore::FormKeyGenerator::formKey):
40208        (WebCore::FormController::createSavedFormStateMap):
40209        (WebCore::FormController::formElementsState):
40210        (WebCore::FormController::takeStateForFormElement):
40211        (WebCore::FormController::getReferencedFilePaths):
40212        * html/HTMLCollection.cpp:
40213        (WebCore::HTMLCollectionCacheBase::append):
40214        * html/canvas/WebGLFramebuffer.cpp:
40215        (WebCore::WebGLFramebuffer::getAttachment):
40216        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
40217        (WebCore::WebGLFramebuffer::checkStatus):
40218        (WebCore::WebGLFramebuffer::deleteObjectImpl):
40219        (WebCore::WebGLFramebuffer::initializeAttachments):
40220        * inspector/CodeGeneratorInspector.py:
40221        * inspector/DOMPatchSupport.cpp:
40222        (WebCore::DOMPatchSupport::diff):
40223        (WebCore::DOMPatchSupport::innerPatchChildren):
40224        (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
40225        * inspector/InjectedScriptManager.cpp:
40226        (WebCore::InjectedScriptManager::injectedScriptForId):
40227        (WebCore::InjectedScriptManager::injectedScriptIdFor):
40228        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
40229        (WebCore::InjectedScriptManager::releaseObjectGroup):
40230        (WebCore::InjectedScriptManager::injectedScriptFor):
40231        * inspector/InspectorCSSAgent.cpp:
40232        (WebCore::SelectorProfile::commitSelector):
40233        (WebCore::SelectorProfile::commitSelectorTime):
40234        (WebCore::SelectorProfile::toInspectorObject):
40235        (WebCore::InspectorCSSAgent::forcePseudoState):
40236        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
40237        (WebCore::InspectorCSSAgent::assertStyleSheetForId):
40238        (WebCore::InspectorCSSAgent::didRemoveDOMNode):
40239        (WebCore::InspectorCSSAgent::didModifyDOMAttr):
40240        (WebCore::InspectorCSSAgent::resetPseudoStates):
40241        * inspector/InspectorConsoleAgent.cpp:
40242        (WebCore::InspectorConsoleAgent::stopTiming):
40243        (WebCore::InspectorConsoleAgent::count):
40244        * inspector/InspectorDOMAgent.cpp:
40245        (WebCore::InspectorDOMAgent::nodeForId):
40246        (WebCore::InspectorDOMAgent::performSearch):
40247        (WebCore::InspectorDOMAgent::getSearchResults):
40248        * inspector/InspectorDOMDebuggerAgent.cpp:
40249        (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
40250        * inspector/InspectorDOMStorageAgent.cpp:
40251        (WebCore::InspectorDOMStorageAgent::clearFrontend):
40252        (WebCore::InspectorDOMStorageAgent::enable):
40253        (WebCore::InspectorDOMStorageAgent::storageId):
40254        (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
40255        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
40256        (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
40257        * inspector/InspectorDatabaseAgent.cpp:
40258        (WebCore::InspectorDatabaseAgent::enable):
40259        (WebCore::InspectorDatabaseAgent::databaseId):
40260        (WebCore::InspectorDatabaseAgent::findByFileName):
40261        (WebCore::InspectorDatabaseAgent::databaseForId):
40262        * inspector/InspectorDebuggerAgent.cpp:
40263        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
40264        (WebCore::InspectorDebuggerAgent::removeBreakpoint):
40265        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
40266        (WebCore::InspectorDebuggerAgent::searchInContent):
40267        (WebCore::InspectorDebuggerAgent::getScriptSource):
40268        (WebCore::InspectorDebuggerAgent::didParseSource):
40269        * inspector/InspectorIndexedDBAgent.cpp:
40270        (WebCore):
40271        * inspector/InspectorMemoryAgent.cpp:
40272        (WebCore):
40273        * inspector/InspectorPageAgent.cpp:
40274        (WebCore::cachedResourcesForFrame):
40275        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
40276        (WebCore::InspectorPageAgent::frameDetached):
40277        * inspector/InspectorProfilerAgent.cpp:
40278        (WebCore::InspectorProfilerAgent::getProfileHeaders):
40279        (WebCore):
40280        (WebCore::InspectorProfilerAgent::getProfile):
40281        * inspector/InspectorResourceAgent.cpp:
40282        (WebCore::buildObjectForHeaders):
40283        (WebCore::InspectorResourceAgent::willSendRequest):
40284        * inspector/InspectorState.cpp:
40285        (WebCore::InspectorState::getBoolean):
40286        (WebCore::InspectorState::getString):
40287        (WebCore::InspectorState::getLong):
40288        (WebCore::InspectorState::getDouble):
40289        (WebCore::InspectorState::getObject):
40290        * inspector/InspectorStyleSheet.cpp:
40291        (WebCore::InspectorStyle::styleWithProperties):
40292        (WebCore::InspectorStyleSheet::inspectorStyleForId):
40293        * inspector/InspectorValues.cpp:
40294        (WebCore::InspectorObjectBase::get):
40295        (WebCore::InspectorObjectBase::writeJSON):
40296        * inspector/InspectorWorkerAgent.cpp:
40297        (WebCore::InspectorWorkerAgent::workerContextTerminated):
40298        (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
40299        (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
40300        * inspector/NetworkResourcesData.cpp:
40301        (WebCore::NetworkResourcesData::removeCachedResource):
40302        (WebCore::NetworkResourcesData::clear):
40303        * loader/CrossOriginAccessControl.cpp:
40304        (WebCore::isSimpleCrossOriginAccessRequest):
40305        (WebCore::createAccessControlPreflightRequest):
40306        * loader/CrossOriginPreflightResultCache.cpp:
40307        (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
40308        (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
40309        * loader/DocumentLoader.cpp:
40310        (WebCore::DocumentLoader::getSubresources):
40311        (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
40312        * loader/MainResourceLoader.cpp:
40313        (WebCore::MainResourceLoader::didReceiveResponse):
40314        * loader/ResourceLoadScheduler.cpp:
40315        (WebCore::ResourceLoadScheduler::servePendingRequests):
40316        * loader/appcache/ApplicationCache.cpp:
40317        (WebCore::ApplicationCache::removeResource):
40318        (WebCore::ApplicationCache::clearStorageID):
40319        (WebCore::ApplicationCache::dump):
40320        * loader/appcache/ApplicationCacheGroup.cpp:
40321        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
40322        (WebCore::ApplicationCacheGroup::startLoadingEntry):
40323        (WebCore::ApplicationCacheGroup::addEntry):
40324        * loader/appcache/ApplicationCacheHost.cpp:
40325        (WebCore::ApplicationCacheHost::fillResourceList):
40326        * loader/appcache/ApplicationCacheResource.cpp:
40327        (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
40328        * loader/appcache/ApplicationCacheStorage.cpp:
40329        (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
40330        (WebCore::ApplicationCacheStorage::cacheGroupForURL):
40331        (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
40332        (WebCore::ApplicationCacheStorage::store):
40333        (WebCore::ApplicationCacheStorage::empty):
40334        (WebCore::ApplicationCacheStorage::storeCopyOfCache):
40335        * loader/archive/ArchiveFactory.cpp:
40336        (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
40337        * loader/cache/CachedRawResource.cpp:
40338        (WebCore::CachedRawResource::canReuse):
40339        * loader/cache/CachedResource.cpp:
40340        (WebCore::CachedResource::switchClientsToRevalidatedResource):
40341        (WebCore::CachedResource::updateResponseAfterRevalidation):
40342        * loader/cache/CachedResourceClientWalker.h:
40343        (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
40344        * loader/cache/CachedResourceLoader.cpp:
40345        (WebCore::CachedResourceLoader::~CachedResourceLoader):
40346        (WebCore::CachedResourceLoader::requestResource):
40347        (WebCore::CachedResourceLoader::setAutoLoadImages):
40348        (WebCore::CachedResourceLoader::removeCachedResource):
40349        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
40350        (WebCore::CachedResourceLoader::reportMemoryUsage):
40351        * loader/cache/MemoryCache.cpp:
40352        (WebCore::MemoryCache::removeResourcesWithOrigin):
40353        (WebCore::MemoryCache::getOriginsWithCache):
40354        (WebCore::MemoryCache::getStatistics):
40355        (WebCore::MemoryCache::reportMemoryUsage):
40356        (WebCore::MemoryCache::setDisabled):
40357        * loader/icon/IconDatabase.cpp:
40358        (WebCore::IconDatabase::removeAllIcons):
40359        (WebCore::IconDatabase::iconRecordCountWithData):
40360        (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
40361        * page/DOMWindow.cpp:
40362        (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
40363        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
40364        * page/EventHandler.cpp:
40365        (WebCore::EventHandler::handleTouchEvent):
40366        * page/Frame.cpp:
40367        (WebCore::Frame::injectUserScripts):
40368        * page/PageGroup.cpp:
40369        (WebCore::PageGroup::pageGroup):
40370        (WebCore::PageGroup::closeLocalStorage):
40371        (WebCore::PageGroup::clearLocalStorageForAllOrigins):
40372        (WebCore::PageGroup::clearLocalStorageForOrigin):
40373        (WebCore::PageGroup::syncLocalStorage):
40374        (WebCore::PageGroup::addUserScriptToWorld):
40375        (WebCore::PageGroup::addUserStyleSheetToWorld):
40376        (WebCore::PageGroup::removeUserScriptFromWorld):
40377        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
40378        * page/PageSerializer.cpp:
40379        (WebCore::PageSerializer::urlForBlankFrame):
40380        * page/SecurityPolicy.cpp:
40381        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
40382        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
40383        * page/Settings.cpp:
40384        (WebCore::setGenericFontFamilyMap):
40385        (WebCore::getGenericFontFamilyForScript):
40386        * page/SpeechInput.cpp:
40387        (WebCore::SpeechInput::registerListener):
40388        * page/WindowFeatures.cpp:
40389        (WebCore::WindowFeatures::boolFeature):
40390        (WebCore::WindowFeatures::floatFeature):
40391        * page/animation/AnimationController.cpp:
40392        (WebCore::AnimationControllerPrivate::updateAnimations):
40393        (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
40394        (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
40395        (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
40396        * page/animation/CompositeAnimation.cpp:
40397        (WebCore::CompositeAnimation::clearRenderer):
40398        (WebCore::CompositeAnimation::updateTransitions):
40399        (WebCore::CompositeAnimation::updateKeyframeAnimations):
40400        (WebCore::CompositeAnimation::animate):
40401        (WebCore::CompositeAnimation::getAnimatedStyle):
40402        (WebCore::CompositeAnimation::setAnimating):
40403        (WebCore::CompositeAnimation::timeToNextService):
40404        (WebCore::CompositeAnimation::getAnimationForProperty):
40405        (WebCore::CompositeAnimation::suspendAnimations):
40406        (WebCore::CompositeAnimation::resumeAnimations):
40407        (WebCore::CompositeAnimation::overrideImplicitAnimations):
40408        (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
40409        (WebCore::CompositeAnimation::isAnimatingProperty):
40410        (WebCore::CompositeAnimation::numberOfActiveAnimations):
40411        * platform/Language.cpp:
40412        (WebCore::languageDidChange):
40413        * platform/MIMETypeRegistry.cpp:
40414        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
40415        * platform/audio/HRTFElevation.cpp:
40416        (WebCore::getConcatenatedImpulseResponsesForSubject):
40417        * platform/blackberry/CookieManager.cpp:
40418        (WebCore::CookieManager::generateHtmlFragmentForCookies):
40419        (WebCore::CookieManager::removeAllCookies):
40420        * platform/blackberry/CookieMap.cpp:
40421        (WebCore::CookieMap::removeOldestCookie):
40422        (WebCore::CookieMap::getAllChildCookies):
40423        * platform/cf/BinaryPropertyList.cpp:
40424        (WebCore::BinaryPropertyListPlan::writeIntegerArray):
40425        * platform/chromium/support/WebHTTPLoadInfo.cpp:
40426        (WebKit::addHeader):
40427        * platform/chromium/support/WebURLRequest.cpp:
40428        (WebKit::WebURLRequest::visitHTTPHeaderFields):
40429        * platform/chromium/support/WebURLResponse.cpp:
40430        (WebKit::WebURLResponse::addHTTPHeaderField):
40431        (WebKit::WebURLResponse::visitHTTPHeaderFields):
40432        * platform/graphics/DisplayRefreshMonitor.cpp:
40433        (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
40434        (WebCore::DisplayRefreshMonitorManager::unregisterClient):
40435        * platform/graphics/FontCache.cpp:
40436        (WebCore::FontCache::getCachedFontPlatformData):
40437        (WebCore::FontCache::getCachedFontData):
40438        (WebCore::FontCache::releaseFontData):
40439        (WebCore::FontCache::purgeInactiveFontData):
40440        * platform/graphics/GlyphPageTreeNode.cpp:
40441        (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
40442        (WebCore::GlyphPageTreeNode::pageCount):
40443        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
40444        (WebCore::GlyphPageTreeNode::pruneTreeFontData):
40445        (WebCore::GlyphPageTreeNode::pruneCustomFontData):
40446        (WebCore::GlyphPageTreeNode::pruneFontData):
40447        (WebCore::GlyphPageTreeNode::showSubtree):
40448        (showGlyphPageTrees):
40449        * platform/graphics/TiledBackingStore.cpp:
40450        (WebCore::TiledBackingStore::updateTileBuffers):
40451        (WebCore::TiledBackingStore::resizeEdgeTiles):
40452        (WebCore::TiledBackingStore::setKeepRect):
40453        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
40454        (WebCore::AVFWrapper::avfWrapperForCallbackContext):
40455        * platform/graphics/blackberry/LayerTiler.cpp:
40456        (WebCore::LayerTiler::layerVisibilityChanged):
40457        (WebCore::LayerTiler::uploadTexturesIfNeeded):
40458        (WebCore::LayerTiler::addTileJob):
40459        (WebCore::LayerTiler::deleteTextures):
40460        (WebCore::LayerTiler::pruneTextures):
40461        (WebCore::LayerTiler::bindContentsTexture):
40462        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
40463        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
40464        (WebCore::TextureCacheCompositingThread::textureForColor):
40465        * platform/graphics/ca/GraphicsLayerCA.cpp:
40466        (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
40467        (WebCore::GraphicsLayerCA::pauseAnimation):
40468        (WebCore::GraphicsLayerCA::layerDidDisplay):
40469        (WebCore::GraphicsLayerCA::updateGeometry):
40470        (WebCore::GraphicsLayerCA::updateTransform):
40471        (WebCore::GraphicsLayerCA::updateChildrenTransform):
40472        (WebCore::GraphicsLayerCA::updateMasksToBounds):
40473        (WebCore::GraphicsLayerCA::updateContentsVisibility):
40474        (WebCore::GraphicsLayerCA::updateContentsOpaque):
40475        (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
40476        (WebCore::GraphicsLayerCA::updateFilters):
40477        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40478        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
40479        (WebCore::GraphicsLayerCA::updateContentsImage):
40480        (WebCore::GraphicsLayerCA::updateContentsRect):
40481        (WebCore::GraphicsLayerCA::updateMaskLayer):
40482        (WebCore::GraphicsLayerCA::updateLayerAnimations):
40483        (WebCore::GraphicsLayerCA::setAnimationOnLayer):
40484        (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
40485        (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
40486        (WebCore::GraphicsLayerCA::suspendAnimations):
40487        (WebCore::GraphicsLayerCA::resumeAnimations):
40488        (WebCore::GraphicsLayerCA::findOrMakeClone):
40489        (WebCore::GraphicsLayerCA::setOpacityInternal):
40490        (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
40491        * platform/graphics/ca/mac/TileCache.mm:
40492        (WebCore::TileCache::setNeedsDisplay):
40493        (WebCore::TileCache::setScale):
40494        (WebCore::TileCache::setAcceleratesDrawing):
40495        (WebCore::TileCache::setTileDebugBorderWidth):
40496        (WebCore::TileCache::setTileDebugBorderColor):
40497        (WebCore::TileCache::revalidateTiles):
40498        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
40499        (PlatformCALayer::animationStarted):
40500        (resubmitAllAnimations):
40501        (PlatformCALayer::animationForKey):
40502        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
40503        (WebCore::LookupAltName):
40504        (WebCore::fontContainsCharacter):
40505        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
40506        (WebCore::getDerivedFontData):
40507        * platform/graphics/chromium/TiledLayerChromium.cpp:
40508        (WebCore::TiledLayerChromium::pushPropertiesTo):
40509        (WebCore::TiledLayerChromium::setLayerTreeHost):
40510        (WebCore::TiledLayerChromium::invalidateContentRect):
40511        (WebCore::TiledLayerChromium::setTexturePriorities):
40512        (WebCore::TiledLayerChromium::resetUpdateState):
40513        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
40514        (WebCore::CCDamageTracker::trackDamageFromLeftoverRects):
40515        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
40516        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
40517        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
40518        (WebCore::CCLayerTilingData::setBounds):
40519        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
40520        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
40521        (WebCore::CCLayerTreeHost::startRateLimiter):
40522        (WebCore::CCLayerTreeHost::stopRateLimiter):
40523        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
40524        (WebCore::findRenderPassById):
40525        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
40526        (WebCore::CCResourceProvider::inUseByConsumer):
40527        (WebCore::CCResourceProvider::deleteResource):
40528        (WebCore::CCResourceProvider::deleteOwnedResources):
40529        (WebCore::CCResourceProvider::resourceType):
40530        (WebCore::CCResourceProvider::upload):
40531        (WebCore::CCResourceProvider::lockForRead):
40532        (WebCore::CCResourceProvider::unlockForRead):
40533        (WebCore::CCResourceProvider::lockForWrite):
40534        (WebCore::CCResourceProvider::unlockForWrite):
40535        (WebCore::CCResourceProvider::destroyChild):
40536        (WebCore::CCResourceProvider::getChildToParentMap):
40537        (WebCore::CCResourceProvider::prepareSendToParent):
40538        (WebCore::CCResourceProvider::prepareSendToChild):
40539        (WebCore::CCResourceProvider::receiveFromChild):
40540        (WebCore::CCResourceProvider::receiveFromParent):
40541        (WebCore::CCResourceProvider::transferResource):
40542        (WebCore::CCResourceProvider::trimMailboxDeque):
40543        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
40544        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
40545        (WebCore::CustomFilterGlobalContext::getCompiledProgram):
40546        * platform/graphics/filters/CustomFilterProgram.cpp:
40547        (WebCore::CustomFilterProgram::notifyClients):
40548        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
40549        (WebCore::getCachedHarfbuzzFace):
40550        (WebCore::releaseCachedHarfbuzzFace):
40551        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
40552        (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
40553        (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
40554        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
40555        (WebCore::SimpleFontData::getCFStringAttributes):
40556        * platform/graphics/mac/SimpleFontDataMac.mm:
40557        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
40558        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
40559        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
40560        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
40561        (WebCore::GraphicsContext3D::compileShader):
40562        (WebCore::GraphicsContext3D::getShaderiv):
40563        (WebCore::GraphicsContext3D::getShaderInfoLog):
40564        (WebCore::GraphicsContext3D::getShaderSource):
40565        * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
40566        (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
40567        (WebCore::EGLDisplayOpenVG::destroySurface):
40568        (WebCore::EGLDisplayOpenVG::contextForSurface):
40569        * platform/graphics/texmap/TextureMapperGL.cpp:
40570        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
40571        (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
40572        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
40573        (WebCore::TextureMapperShaderManager::getShaderProgram):
40574        (WebCore::TextureMapperShaderManager::getShaderForFilter):
40575        * platform/graphics/wince/FontPlatformData.cpp:
40576        (WebCore::FixedSizeFontData::create):
40577        * platform/gtk/DataObjectGtk.cpp:
40578        (WebCore::DataObjectGtk::forClipboard):
40579        * platform/gtk/GtkDragAndDropHelper.cpp:
40580        (WebCore::GtkDragAndDropHelper::handleGetDragData):
40581        (WebCore::GtkDragAndDropHelper::handleDragLeave):
40582        (WebCore::GtkDragAndDropHelper::handleDragMotion):
40583        (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
40584        (WebCore::GtkDragAndDropHelper::handleDragDrop):
40585        * platform/gtk/RenderThemeGtk3.cpp:
40586        (WebCore::gtkStyleChangedCallback):
40587        (WebCore::getStyleContext):
40588        * platform/mac/ScrollbarThemeMac.mm:
40589        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
40590        * platform/network/CredentialStorage.cpp:
40591        (WebCore::CredentialStorage::set):
40592        (WebCore::CredentialStorage::get):
40593        * platform/network/HTTPHeaderMap.cpp:
40594        (WebCore::HTTPHeaderMap::copyData):
40595        (WebCore::HTTPHeaderMap::get):
40596        * platform/network/MIMEHeader.cpp:
40597        (WebCore::MIMEHeader::parseHeader):
40598        * platform/network/ResourceHandle.cpp:
40599        (WebCore::ResourceHandle::create):
40600        * platform/network/ResourceRequestBase.cpp:
40601        (WebCore::ResourceRequestBase::addHTTPHeaderField):
40602        (WebCore::ResourceRequestBase::addHTTPHeaderFields):
40603        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
40604        (WebCore::ResourceRequest::targetTypeFromMimeType):
40605        (WebCore::ResourceRequest::initializePlatformRequest):
40606        * platform/network/cf/ResourceHandleCFNet.cpp:
40607        (WebCore::makeFinalRequest):
40608        * platform/network/cf/ResourceRequestCFNet.cpp:
40609        (WebCore::setHeaderFields):
40610        * platform/network/curl/ResourceHandleManager.cpp:
40611        (WebCore::ResourceHandleManager::initializeHandle):
40612        * platform/network/mac/ResourceRequestMac.mm:
40613        (WebCore::ResourceRequest::doUpdatePlatformRequest):
40614        * platform/network/qt/ResourceRequestQt.cpp:
40615        (WebCore::ResourceRequest::toNetworkRequest):
40616        * platform/network/soup/ResourceHandleSoup.cpp:
40617        (WebCore::sendRequestCallback):
40618        (WebCore::ResourceHandle::setClientCertificate):
40619        * platform/network/soup/ResourceRequestSoup.cpp:
40620        (WebCore::ResourceRequest::updateSoupMessage):
40621        (WebCore::ResourceRequest::toSoupMessage):
40622        * platform/network/soup/ResourceResponseSoup.cpp:
40623        (WebCore::ResourceResponse::toSoupMessage):
40624        * platform/network/win/ResourceHandleWin.cpp:
40625        (WebCore::ResourceHandle::start):
40626        * platform/qt/RunLoopQt.cpp:
40627        (WebCore::RunLoop::TimerBase::timerFired):
40628        * platform/text/LocaleToScriptMappingDefault.cpp:
40629        (WebCore::scriptNameToCode):
40630        (WebCore::localeToScriptCodeForFontSelection):
40631        * platform/text/TextEncodingRegistry.cpp:
40632        (WebCore::pruneBlacklistedCodecs):
40633        (WebCore::dumpTextEncodingNameMap):
40634        * platform/text/transcoder/FontTranscoder.cpp:
40635        (WebCore::FontTranscoder::converterType):
40636        * platform/text/win/TextCodecWin.cpp:
40637        (WebCore::LanguageManager::LanguageManager):
40638        (WebCore::getCodePage):
40639        (WebCore::TextCodecWin::registerExtendedEncodingNames):
40640        (WebCore::TextCodecWin::registerExtendedCodecs):
40641        (WebCore::TextCodecWin::enumerateSupportedEncodings):
40642        * platform/win/ClipboardUtilitiesWin.cpp:
40643        (WebCore::getDataMapItem):
40644        (WebCore::getClipboardData):
40645        (WebCore::setClipboardData):
40646        * platform/win/ClipboardWin.cpp:
40647        (WebCore::ClipboardWin::types):
40648        * platform/win/FileSystemWin.cpp:
40649        (WebCore::cachedStorageDirectory):
40650        * platform/win/RunLoopWin.cpp:
40651        (WebCore::RunLoop::TimerBase::timerFired):
40652        * platform/win/WCDataObject.cpp:
40653        (WebCore::WCDataObject::createInstance):
40654        * platform/wince/MIMETypeRegistryWinCE.cpp:
40655        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
40656        * platform/wx/ContextMenuWx.cpp:
40657        (WebCore::ContextMenu::appendItem):
40658        * plugins/PluginDatabase.cpp:
40659        (WebCore::PluginDatabase::refresh):
40660        (WebCore::PluginDatabase::MIMETypeForExtension):
40661        (WebCore::PluginDatabase::remove):
40662        * plugins/PluginMainThreadScheduler.cpp:
40663        (WebCore::PluginMainThreadScheduler::scheduleCall):
40664        (WebCore::PluginMainThreadScheduler::dispatchCalls):
40665        * plugins/PluginStream.cpp:
40666        (WebCore::PluginStream::startStream):
40667        * plugins/blackberry/PluginDataBlackBerry.cpp:
40668        (WebCore::PluginData::initPlugins):
40669        * plugins/wx/PluginDataWx.cpp:
40670        (WebCore::PluginData::initPlugins):
40671        * rendering/FlowThreadController.cpp:
40672        (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
40673        * rendering/InlineFlowBox.cpp:
40674        (WebCore::InlineFlowBox::requiresIdeographicBaseline):
40675        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
40676        * rendering/RenderBlock.cpp:
40677        (WebCore::RenderBlock::clearFloats):
40678        * rendering/RenderBlockLineLayout.cpp:
40679        (WebCore::setLogicalWidthForTextRun):
40680        * rendering/RenderBoxModelObject.cpp:
40681        (WebCore::ImageQualityController::highQualityRepaintTimerFired):
40682        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
40683        * rendering/RenderCounter.cpp:
40684        (WebCore::RenderCounter::destroyCounterNodes):
40685        (WebCore::RenderCounter::destroyCounterNode):
40686        (WebCore::updateCounters):
40687        (WebCore::RenderCounter::rendererStyleChanged):
40688        * rendering/RenderFlowThread.cpp:
40689        (WebCore::RenderFlowThread::setRegionRangeForBox):
40690        (WebCore::RenderFlowThread::getRegionRangeForBox):
40691        * rendering/RenderLayer.cpp:
40692        (WebCore::RenderLayer::paint):
40693        (WebCore::performOverlapTests):
40694        * rendering/RenderLayerFilterInfo.cpp:
40695        (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
40696        (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
40697        * rendering/RenderNamedFlowThread.cpp:
40698        (WebCore::RenderNamedFlowThread::dependsOn):
40699        (WebCore::RenderNamedFlowThread::pushDependencies):
40700        * rendering/RenderRegion.cpp:
40701        (WebCore::RenderRegion::setRenderBoxRegionInfo):
40702        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
40703        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
40704        (WebCore::RenderRegion::computeChildrenStyleInRegion):
40705        * rendering/RenderTableSection.cpp:
40706        (WebCore::RenderTableSection::cachedCollapsedBorder):
40707        * rendering/RenderThemeMac.mm:
40708        (WebCore::RenderThemeMac::systemColor):
40709        * rendering/RenderView.cpp:
40710        (WebCore::RenderView::selectionBounds):
40711        (WebCore::RenderView::setSelection):
40712        * rendering/RenderWidget.cpp:
40713        (WebCore::RenderWidget::resumeWidgetHierarchyUpdates):
40714        * rendering/RootInlineBox.cpp:
40715        (WebCore::RootInlineBox::ascentAndDescentForBox):
40716        * rendering/VerticalPositionCache.h:
40717        (WebCore::VerticalPositionCache::get):
40718        * rendering/WrapShapeInfo.cpp:
40719        (WebCore::WrapShapeInfo::ensureWrapShapeInfoForRenderBlock):
40720        * rendering/svg/RenderSVGInlineText.cpp:
40721        (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
40722        * rendering/svg/RenderSVGResourceFilter.cpp:
40723        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
40724        * rendering/svg/RenderSVGResourceGradient.cpp:
40725        (WebCore::RenderSVGResourceGradient::applyResource):
40726        * rendering/svg/RenderSVGResourcePattern.cpp:
40727        (WebCore::RenderSVGResourcePattern::applyResource):
40728        * rendering/svg/SVGResourcesCache.cpp:
40729        (WebCore::SVGResourcesCache::resourceDestroyed):
40730        * rendering/svg/SVGRootInlineBox.cpp:
40731        (WebCore::swapItemsInLayoutAttributes):
40732        * rendering/svg/SVGTextLayoutAttributes.cpp:
40733        (WebCore::SVGTextLayoutAttributes::dump):
40734        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
40735        (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
40736        (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
40737        * rendering/svg/SVGTextLayoutEngine.cpp:
40738        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
40739        * rendering/svg/SVGTextMetricsBuilder.cpp:
40740        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
40741        * storage/StorageAreaSync.cpp:
40742        (WebCore::StorageAreaSync::syncTimerFired):
40743        (WebCore::StorageAreaSync::performImport):
40744        (WebCore::StorageAreaSync::sync):
40745        * storage/StorageMap.cpp:
40746        (WebCore::StorageMap::key):
40747        (WebCore::StorageMap::setItem):
40748        * storage/StorageNamespaceImpl.cpp:
40749        (WebCore::StorageNamespaceImpl::localStorageNamespace):
40750        (WebCore::StorageNamespaceImpl::copy):
40751        (WebCore::StorageNamespaceImpl::close):
40752        (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
40753        (WebCore::StorageNamespaceImpl::sync):
40754        * svg/SVGDocumentExtensions.cpp:
40755        (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
40756        (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
40757        (WebCore::SVGDocumentExtensions::addPendingResource):
40758        (WebCore::SVGDocumentExtensions::isElementPendingResources):
40759        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
40760        (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
40761        (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
40762        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
40763        * svg/SVGElement.cpp:
40764        (WebCore::SVGElement::~SVGElement):
40765        * svg/animation/SMILTimeContainer.cpp:
40766        (WebCore::SMILTimeContainer::updateAnimations):
40767        * svg/graphics/SVGImageCache.cpp:
40768        (WebCore::SVGImageCache::~SVGImageCache):
40769        (WebCore::SVGImageCache::removeClientFromCache):
40770        (WebCore::SVGImageCache::requestedSizeAndScales):
40771        (WebCore::SVGImageCache::imageContentChanged):
40772        (WebCore::SVGImageCache::redraw):
40773        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
40774        * svg/graphics/filters/SVGFilterBuilder.h:
40775        (WebCore::SVGFilterBuilder::effectReferences):
40776        (WebCore::SVGFilterBuilder::addBuiltinEffects):
40777        * svg/properties/SVGAnimatedProperty.h:
40778        (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
40779        * svg/properties/SVGAttributeToPropertyMap.cpp:
40780        (WebCore::SVGAttributeToPropertyMap::addProperties):
40781        (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
40782        * workers/WorkerContext.cpp:
40783        (WebCore::WorkerContext::hasPendingActivity):
40784        * workers/WorkerEventQueue.cpp:
40785        (WebCore::WorkerEventQueue::close):
40786        * xml/XMLHttpRequest.cpp:
40787        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
40788        (WebCore::XMLHttpRequest::getAllResponseHeaders):
40789        * xml/XPathFunctions.cpp:
40790        (WebCore::XPath::createFunction):
40791        * xml/XPathParser.cpp:
40792        (isAxisName):
40793        * xml/XSLTProcessorLibxslt.cpp:
40794        (WebCore::xsltParamArrayFromParameterMap):
40795        * xml/XSLTProcessorQt.cpp:
40796        (WebCore::XSLTProcessor::transformToString):
40797
407982012-08-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
40799
40800        Rename first/second to key/value in HashMap iterators
40801        https://bugs.webkit.org/show_bug.cgi?id=82784
40802
40803        Reviewed by Eric Seidel.
40804
40805        * Modules/geolocation/Geolocation.cpp:
40806        (WebCore::Geolocation::Watchers::find):
40807        (WebCore::Geolocation::Watchers::remove):
40808        * Modules/indexeddb/IDBDatabase.cpp:
40809        (WebCore::IDBDatabase::objectStoreNames):
40810        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
40811        (WebCore::IDBDatabaseBackendImpl::metadata):
40812        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
40813        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
40814        (WebCore::IDBFactoryBackendImpl::openBackingStore):
40815        (WebCore::IDBFactoryBackendImpl::open):
40816        * Modules/indexeddb/IDBObjectStore.cpp:
40817        (WebCore::IDBObjectStore::indexNames):
40818        (WebCore::IDBObjectStore::put):
40819        (WebCore::IDBObjectStore::index):
40820        (WebCore::IDBObjectStore::deleteIndex):
40821        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
40822        (WebCore::IDBObjectStoreBackendImpl::metadata):
40823        (WebCore::makeIndexWriters):
40824        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
40825        * Modules/indexeddb/IDBTransaction.cpp:
40826        (WebCore::IDBTransaction::objectStore):
40827        (WebCore::IDBTransaction::objectStoreDeleted):
40828        (WebCore::IDBTransaction::onAbort):
40829        (WebCore::IDBTransaction::dispatchEvent):
40830        * Modules/webdatabase/AbstractDatabase.cpp:
40831        (WebCore::AbstractDatabase::performOpenAndVerify):
40832        * Modules/webdatabase/DatabaseTracker.cpp:
40833        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
40834        * Modules/webdatabase/OriginUsageRecord.cpp:
40835        (WebCore::OriginUsageRecord::diskUsage):
40836        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
40837        (WebCore::SQLTransactionCoordinator::acquireLock):
40838        (WebCore::SQLTransactionCoordinator::releaseLock):
40839        (WebCore::SQLTransactionCoordinator::shutdown):
40840        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
40841        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
40842        * Modules/webdatabase/chromium/QuotaTracker.cpp:
40843        (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
40844        (WebCore::QuotaTracker::updateDatabaseSize):
40845        * Modules/websockets/WebSocketDeflateFramer.cpp:
40846        (WebCore::WebSocketExtensionDeflateFrame::processResponse):
40847        * Modules/websockets/WebSocketExtensionDispatcher.cpp:
40848        (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
40849        * accessibility/AXObjectCache.cpp:
40850        (WebCore::AXObjectCache::~AXObjectCache):
40851        * bindings/gobject/DOMObjectCache.cpp:
40852        (WebKit::DOMObjectCache::clearByFrame):
40853        * bindings/js/DOMObjectHashTableMap.h:
40854        (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
40855        (WebCore::DOMObjectHashTableMap::get):
40856        * bindings/js/JSDOMBinding.cpp:
40857        (WebCore::cacheDOMStructure):
40858        * bindings/js/JSDOMGlobalObject.cpp:
40859        (WebCore::JSDOMGlobalObject::visitChildren):
40860        * bindings/js/JSDOMGlobalObject.h:
40861        (WebCore::getDOMConstructor):
40862        * bindings/js/PageScriptDebugServer.cpp:
40863        (WebCore::PageScriptDebugServer::addListener):
40864        (WebCore::PageScriptDebugServer::removeListener):
40865        * bindings/js/ScriptCachedFrameData.cpp:
40866        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
40867        (WebCore::ScriptCachedFrameData::restore):
40868        * bindings/js/ScriptController.cpp:
40869        (WebCore::ScriptController::~ScriptController):
40870        (WebCore::ScriptController::clearWindowShell):
40871        (WebCore::ScriptController::attachDebugger):
40872        (WebCore::ScriptController::updateDocument):
40873        (WebCore::ScriptController::createRootObject):
40874        (WebCore::ScriptController::collectIsolatedContexts):
40875        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
40876        (WebCore::ScriptController::clearScriptObjects):
40877        * bindings/js/ScriptController.h:
40878        (WebCore::ScriptController::windowShell):
40879        (WebCore::ScriptController::existingWindowShell):
40880        * bindings/js/ScriptDebugServer.cpp:
40881        (WebCore::ScriptDebugServer::setBreakpoint):
40882        (WebCore::ScriptDebugServer::removeBreakpoint):
40883        (WebCore::ScriptDebugServer::hasBreakpoint):
40884        * bindings/js/SerializedScriptValue.cpp:
40885        (WebCore::CloneSerializer::checkForDuplicate):
40886        (WebCore::CloneSerializer::dumpIfTerminal):
40887        (WebCore::CloneSerializer::write):
40888        * bindings/scripts/CodeGeneratorV8.pm:
40889        (GenerateImplementation):
40890        * bindings/scripts/test/V8/V8Float64Array.cpp:
40891        (WebCore::V8Float64Array::GetRawTemplate):
40892        (WebCore::V8Float64Array::GetTemplate):
40893        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
40894        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
40895        (WebCore::V8TestActiveDOMObject::GetTemplate):
40896        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
40897        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
40898        (WebCore::V8TestCustomNamedGetter::GetTemplate):
40899        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
40900        (WebCore::V8TestEventConstructor::GetRawTemplate):
40901        (WebCore::V8TestEventConstructor::GetTemplate):
40902        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
40903        (WebCore::V8TestEventTarget::GetRawTemplate):
40904        (WebCore::V8TestEventTarget::GetTemplate):
40905        * bindings/scripts/test/V8/V8TestException.cpp:
40906        (WebCore::V8TestException::GetRawTemplate):
40907        (WebCore::V8TestException::GetTemplate):
40908        * bindings/scripts/test/V8/V8TestInterface.cpp:
40909        (WebCore::V8TestInterface::GetRawTemplate):
40910        (WebCore::V8TestInterface::GetTemplate):
40911        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
40912        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
40913        (WebCore::V8TestMediaQueryListListener::GetTemplate):
40914        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
40915        (WebCore::V8TestNamedConstructor::GetRawTemplate):
40916        (WebCore::V8TestNamedConstructor::GetTemplate):
40917        * bindings/scripts/test/V8/V8TestNode.cpp:
40918        (WebCore::V8TestNode::GetRawTemplate):
40919        (WebCore::V8TestNode::GetTemplate):
40920        * bindings/scripts/test/V8/V8TestObj.cpp:
40921        (WebCore::V8TestObj::GetRawTemplate):
40922        (WebCore::V8TestObj::GetTemplate):
40923        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
40924        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
40925        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
40926        * bindings/v8/DOMWrapperWorld.cpp:
40927        (WebCore::DOMWrapperWorld::deallocate):
40928        (WebCore::DOMWrapperWorld::getOrCreateIsolatedWorld):
40929        * bindings/v8/NPV8Object.cpp:
40930        (WebCore::freeV8NPObject):
40931        (WebCore::npCreateV8ScriptObject):
40932        * bindings/v8/ScriptController.cpp:
40933        (WebCore::ScriptController::clearScriptObjects):
40934        (WebCore::ScriptController::resetIsolatedWorlds):
40935        (WebCore::ScriptController::evaluateInIsolatedWorld):
40936        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
40937        (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
40938        (WebCore::ScriptController::collectIsolatedContexts):
40939        * bindings/v8/SerializedScriptValue.cpp:
40940        * bindings/v8/V8DOMMap.h:
40941        (WebCore::WeakReferenceMap::removeIfPresent):
40942        (WebCore::WeakReferenceMap::visit):
40943        * bindings/v8/V8GCController.cpp:
40944        (WebCore::enumerateGlobalHandles):
40945        * bindings/v8/V8PerContextData.cpp:
40946        (WebCore::V8PerContextData::dispose):
40947        * bindings/v8/npruntime.cpp:
40948        * bridge/IdentifierRep.cpp:
40949        (WebCore::IdentifierRep::get):
40950        * bridge/NP_jsobject.cpp:
40951        (ObjectMap::add):
40952        (ObjectMap::remove):
40953        * bridge/jni/jsc/JavaClassJSC.cpp:
40954        (JavaClass::~JavaClass):
40955        * bridge/qt/qt_instance.cpp:
40956        (JSC::Bindings::WeakMap::set):
40957        * bridge/runtime_root.cpp:
40958        (JSC::Bindings::RootObject::invalidate):
40959        * css/CSSCanvasValue.cpp:
40960        (WebCore::CSSCanvasValue::canvasChanged):
40961        (WebCore::CSSCanvasValue::canvasResized):
40962        * css/CSSComputedStyleDeclaration.cpp:
40963        (WebCore::counterToCSSValue):
40964        * css/CSSCrossfadeValue.cpp:
40965        (WebCore::CSSCrossfadeValue::crossfadeChanged):
40966        * css/CSSFontFaceSource.cpp:
40967        (WebCore::CSSFontFaceSource::getFontData):
40968        * css/CSSFontSelector.cpp:
40969        (WebCore::CSSFontSelector::addFontFaceRule):
40970        (WebCore::CSSFontSelector::getFontData):
40971        * css/CSSImageGeneratorValue.cpp:
40972        (WebCore::CSSImageGeneratorValue::addClient):
40973        (WebCore::CSSImageGeneratorValue::removeClient):
40974        (WebCore::CSSImageGeneratorValue::getImage):
40975        * css/CSSSegmentedFontFace.cpp:
40976        (WebCore::CSSSegmentedFontFace::getFontData):
40977        * css/CSSSelector.cpp:
40978        (WebCore::CSSSelector::parsePseudoType):
40979        * css/CSSValuePool.cpp:
40980        (WebCore::CSSValuePool::createColorValue):
40981        (WebCore::CSSValuePool::createFontFamilyValue):
40982        (WebCore::CSSValuePool::createFontFaceValue):
40983        * css/PropertySetCSSStyleDeclaration.cpp:
40984        (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
40985        * css/StyleBuilder.cpp:
40986        (WebCore::ApplyPropertyCounter::applyInheritValue):
40987        (WebCore::ApplyPropertyCounter::applyValue):
40988        * css/StyleResolver.cpp:
40989        (WebCore::StyleResolver::collectFeatures):
40990        (WebCore::StyleResolver::ruleSetForScope):
40991        (WebCore::StyleResolver::appendAuthorStylesheets):
40992        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
40993        (WebCore::StyleResolver::collectMatchingRulesForList):
40994        * css/StyleSheetContents.cpp:
40995        (WebCore::StyleSheetContents::parserAddNamespace):
40996        (WebCore::StyleSheetContents::determineNamespace):
40997        * dom/CheckedRadioButtons.cpp:
40998        (WebCore::CheckedRadioButtons::addButton):
40999        (WebCore::CheckedRadioButtons::removeButton):
41000        * dom/ChildListMutationScope.cpp:
41001        (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
41002        (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
41003        (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
41004        (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
41005        * dom/Document.cpp:
41006        (WebCore::Document::pageGroupUserSheets):
41007        (WebCore::Document::windowNamedItems):
41008        (WebCore::Document::documentNamedItems):
41009        (WebCore::Document::getCSSCanvasElement):
41010        * dom/DocumentMarkerController.cpp:
41011        (WebCore::DocumentMarkerController::markerContainingPoint):
41012        (WebCore::DocumentMarkerController::renderedRectsForMarkers):
41013        (WebCore::DocumentMarkerController::removeMarkers):
41014        (WebCore::DocumentMarkerController::repaintMarkers):
41015        (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
41016        (WebCore::DocumentMarkerController::showMarkers):
41017        * dom/DocumentOrderedMap.cpp:
41018        (WebCore::DocumentOrderedMap::remove):
41019        * dom/ElementAttributeData.cpp:
41020        (WebCore::ensureAttrListForElement):
41021        * dom/EventDispatcher.cpp:
41022        (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
41023        * dom/EventListenerMap.cpp:
41024        (WebCore::EventListenerMap::eventTypes):
41025        (WebCore::EventListenerMap::add):
41026        (WebCore::EventListenerMap::remove):
41027        (WebCore::EventListenerMap::find):
41028        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
41029        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
41030        (WebCore::EventListenerIterator::nextListener):
41031        * dom/IdTargetObserverRegistry.cpp:
41032        (WebCore::IdTargetObserverRegistry::addObserver):
41033        (WebCore::IdTargetObserverRegistry::removeObserver):
41034        * dom/MemoryInstrumentation.h:
41035        (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
41036        (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
41037        * dom/MutationObserverInterestGroup.cpp:
41038        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
41039        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
41040        * dom/Node.cpp:
41041        (WebCore::Node::dumpStatistics):
41042        (WebCore::Node::clearRareData):
41043        (WebCore::NodeListsNodeData::invalidateCaches):
41044        (WebCore::Node::collectMatchingObserversForMutation):
41045        * dom/NodeRareData.h:
41046        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
41047        (WebCore::NodeListsNodeData::addCacheWithName):
41048        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
41049        (WebCore::NodeListsNodeData::adoptTreeScope):
41050        * dom/ProcessingInstruction.cpp:
41051        (WebCore::ProcessingInstruction::checkStyleSheet):
41052        * dom/ScriptExecutionContext.cpp:
41053        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
41054        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
41055        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
41056        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
41057        (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
41058        * dom/SelectorQuery.cpp:
41059        (WebCore::SelectorQueryCache::add):
41060        * dom/SpaceSplitString.cpp:
41061        (WebCore::SpaceSplitStringData::create):
41062        * dom/StyledElement.cpp:
41063        (WebCore::StyledElement::updateAttributeStyle):
41064        * editing/mac/AlternativeTextUIController.mm:
41065        (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
41066        * html/FormController.cpp:
41067        (WebCore::SavedFormState::serializeTo):
41068        (WebCore::SavedFormState::appendControlState):
41069        (WebCore::SavedFormState::takeControlState):
41070        (WebCore::SavedFormState::getReferencedFilePaths):
41071        (WebCore::FormKeyGenerator::formKey):
41072        (WebCore::FormController::createSavedFormStateMap):
41073        (WebCore::FormController::formElementsState):
41074        (WebCore::FormController::takeStateForFormElement):
41075        (WebCore::FormController::getReferencedFilePaths):
41076        * html/HTMLCollection.cpp:
41077        (WebCore::HTMLCollectionCacheBase::append):
41078        * html/canvas/WebGLFramebuffer.cpp:
41079        (WebCore::WebGLFramebuffer::getAttachment):
41080        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
41081        (WebCore::WebGLFramebuffer::checkStatus):
41082        (WebCore::WebGLFramebuffer::deleteObjectImpl):
41083        (WebCore::WebGLFramebuffer::initializeAttachments):
41084        * inspector/CodeGeneratorInspector.py:
41085        * inspector/DOMPatchSupport.cpp:
41086        (WebCore::DOMPatchSupport::diff):
41087        (WebCore::DOMPatchSupport::innerPatchChildren):
41088        (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
41089        * inspector/InjectedScriptManager.cpp:
41090        (WebCore::InjectedScriptManager::injectedScriptForId):
41091        (WebCore::InjectedScriptManager::injectedScriptIdFor):
41092        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
41093        (WebCore::InjectedScriptManager::releaseObjectGroup):
41094        (WebCore::InjectedScriptManager::injectedScriptFor):
41095        * inspector/InspectorCSSAgent.cpp:
41096        (WebCore::SelectorProfile::commitSelector):
41097        (WebCore::SelectorProfile::commitSelectorTime):
41098        (WebCore::SelectorProfile::toInspectorObject):
41099        (WebCore::InspectorCSSAgent::forcePseudoState):
41100        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
41101        (WebCore::InspectorCSSAgent::assertStyleSheetForId):
41102        (WebCore::InspectorCSSAgent::didRemoveDOMNode):
41103        (WebCore::InspectorCSSAgent::didModifyDOMAttr):
41104        (WebCore::InspectorCSSAgent::resetPseudoStates):
41105        * inspector/InspectorConsoleAgent.cpp:
41106        (WebCore::InspectorConsoleAgent::stopTiming):
41107        (WebCore::InspectorConsoleAgent::count):
41108        * inspector/InspectorDOMAgent.cpp:
41109        (WebCore::InspectorDOMAgent::nodeForId):
41110        (WebCore::InspectorDOMAgent::performSearch):
41111        (WebCore::InspectorDOMAgent::getSearchResults):
41112        * inspector/InspectorDOMDebuggerAgent.cpp:
41113        (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
41114        * inspector/InspectorDOMStorageAgent.cpp:
41115        (WebCore::InspectorDOMStorageAgent::clearFrontend):
41116        (WebCore::InspectorDOMStorageAgent::enable):
41117        (WebCore::InspectorDOMStorageAgent::storageId):
41118        (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
41119        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
41120        (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
41121        * inspector/InspectorDatabaseAgent.cpp:
41122        (WebCore::InspectorDatabaseAgent::enable):
41123        (WebCore::InspectorDatabaseAgent::databaseId):
41124        (WebCore::InspectorDatabaseAgent::findByFileName):
41125        (WebCore::InspectorDatabaseAgent::databaseForId):
41126        * inspector/InspectorDebuggerAgent.cpp:
41127        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
41128        (WebCore::InspectorDebuggerAgent::removeBreakpoint):
41129        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
41130        (WebCore::InspectorDebuggerAgent::searchInContent):
41131        (WebCore::InspectorDebuggerAgent::getScriptSource):
41132        (WebCore::InspectorDebuggerAgent::didParseSource):
41133        * inspector/InspectorIndexedDBAgent.cpp:
41134        (WebCore):
41135        * inspector/InspectorMemoryAgent.cpp:
41136        (WebCore):
41137        * inspector/InspectorPageAgent.cpp:
41138        (WebCore::cachedResourcesForFrame):
41139        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
41140        (WebCore::InspectorPageAgent::frameDetached):
41141        * inspector/InspectorProfilerAgent.cpp:
41142        (WebCore::InspectorProfilerAgent::getProfileHeaders):
41143        (WebCore):
41144        (WebCore::InspectorProfilerAgent::getProfile):
41145        * inspector/InspectorResourceAgent.cpp:
41146        (WebCore::buildObjectForHeaders):
41147        (WebCore::InspectorResourceAgent::willSendRequest):
41148        * inspector/InspectorState.cpp:
41149        (WebCore::InspectorState::getBoolean):
41150        (WebCore::InspectorState::getString):
41151        (WebCore::InspectorState::getLong):
41152        (WebCore::InspectorState::getDouble):
41153        (WebCore::InspectorState::getObject):
41154        * inspector/InspectorStyleSheet.cpp:
41155        (WebCore::InspectorStyle::styleWithProperties):
41156        (WebCore::InspectorStyleSheet::inspectorStyleForId):
41157        * inspector/InspectorValues.cpp:
41158        (WebCore::InspectorObjectBase::get):
41159        (WebCore::InspectorObjectBase::writeJSON):
41160        * inspector/InspectorWorkerAgent.cpp:
41161        (WebCore::InspectorWorkerAgent::workerContextTerminated):
41162        (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
41163        (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
41164        * inspector/NetworkResourcesData.cpp:
41165        (WebCore::NetworkResourcesData::removeCachedResource):
41166        (WebCore::NetworkResourcesData::clear):
41167        * loader/CrossOriginAccessControl.cpp:
41168        (WebCore::isSimpleCrossOriginAccessRequest):
41169        (WebCore::createAccessControlPreflightRequest):
41170        * loader/CrossOriginPreflightResultCache.cpp:
41171        (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
41172        (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
41173        * loader/DocumentLoader.cpp:
41174        (WebCore::DocumentLoader::getSubresources):
41175        (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
41176        * loader/MainResourceLoader.cpp:
41177        (WebCore::MainResourceLoader::didReceiveResponse):
41178        * loader/ResourceLoadScheduler.cpp:
41179        (WebCore::ResourceLoadScheduler::servePendingRequests):
41180        * loader/appcache/ApplicationCache.cpp:
41181        (WebCore::ApplicationCache::removeResource):
41182        (WebCore::ApplicationCache::clearStorageID):
41183        (WebCore::ApplicationCache::dump):
41184        * loader/appcache/ApplicationCacheGroup.cpp:
41185        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
41186        (WebCore::ApplicationCacheGroup::startLoadingEntry):
41187        (WebCore::ApplicationCacheGroup::addEntry):
41188        * loader/appcache/ApplicationCacheHost.cpp:
41189        (WebCore::ApplicationCacheHost::fillResourceList):
41190        * loader/appcache/ApplicationCacheResource.cpp:
41191        (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
41192        * loader/appcache/ApplicationCacheStorage.cpp:
41193        (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
41194        (WebCore::ApplicationCacheStorage::cacheGroupForURL):
41195        (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
41196        (WebCore::ApplicationCacheStorage::store):
41197        (WebCore::ApplicationCacheStorage::empty):
41198        (WebCore::ApplicationCacheStorage::storeCopyOfCache):
41199        * loader/archive/ArchiveFactory.cpp:
41200        (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
41201        * loader/cache/CachedRawResource.cpp:
41202        (WebCore::CachedRawResource::canReuse):
41203        * loader/cache/CachedResource.cpp:
41204        (WebCore::CachedResource::switchClientsToRevalidatedResource):
41205        (WebCore::CachedResource::updateResponseAfterRevalidation):
41206        * loader/cache/CachedResourceClientWalker.h:
41207        (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
41208        * loader/cache/CachedResourceLoader.cpp:
41209        (WebCore::CachedResourceLoader::~CachedResourceLoader):
41210        (WebCore::CachedResourceLoader::requestResource):
41211        (WebCore::CachedResourceLoader::setAutoLoadImages):
41212        (WebCore::CachedResourceLoader::removeCachedResource):
41213        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
41214        (WebCore::CachedResourceLoader::reportMemoryUsage):
41215        * loader/cache/MemoryCache.cpp:
41216        (WebCore::MemoryCache::removeResourcesWithOrigin):
41217        (WebCore::MemoryCache::getOriginsWithCache):
41218        (WebCore::MemoryCache::getStatistics):
41219        (WebCore::MemoryCache::reportMemoryUsage):
41220        (WebCore::MemoryCache::setDisabled):
41221        * loader/icon/IconDatabase.cpp:
41222        (WebCore::IconDatabase::removeAllIcons):
41223        (WebCore::IconDatabase::iconRecordCountWithData):
41224        (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
41225        * page/DOMWindow.cpp:
41226        (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
41227        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
41228        * page/EventHandler.cpp:
41229        (WebCore::EventHandler::handleTouchEvent):
41230        * page/Frame.cpp:
41231        (WebCore::Frame::injectUserScripts):
41232        * page/PageGroup.cpp:
41233        (WebCore::PageGroup::pageGroup):
41234        (WebCore::PageGroup::closeLocalStorage):
41235        (WebCore::PageGroup::clearLocalStorageForAllOrigins):
41236        (WebCore::PageGroup::clearLocalStorageForOrigin):
41237        (WebCore::PageGroup::syncLocalStorage):
41238        (WebCore::PageGroup::addUserScriptToWorld):
41239        (WebCore::PageGroup::addUserStyleSheetToWorld):
41240        (WebCore::PageGroup::removeUserScriptFromWorld):
41241        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
41242        * page/PageSerializer.cpp:
41243        (WebCore::PageSerializer::urlForBlankFrame):
41244        * page/SecurityPolicy.cpp:
41245        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
41246        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
41247        * page/Settings.cpp:
41248        (WebCore::setGenericFontFamilyMap):
41249        (WebCore::getGenericFontFamilyForScript):
41250        * page/SpeechInput.cpp:
41251        (WebCore::SpeechInput::registerListener):
41252        * page/WindowFeatures.cpp:
41253        (WebCore::WindowFeatures::boolFeature):
41254        (WebCore::WindowFeatures::floatFeature):
41255        * page/animation/AnimationController.cpp:
41256        (WebCore::AnimationControllerPrivate::updateAnimations):
41257        (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
41258        (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
41259        (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
41260        * page/animation/CompositeAnimation.cpp:
41261        (WebCore::CompositeAnimation::clearRenderer):
41262        (WebCore::CompositeAnimation::updateTransitions):
41263        (WebCore::CompositeAnimation::updateKeyframeAnimations):
41264        (WebCore::CompositeAnimation::animate):
41265        (WebCore::CompositeAnimation::getAnimatedStyle):
41266        (WebCore::CompositeAnimation::setAnimating):
41267        (WebCore::CompositeAnimation::timeToNextService):
41268        (WebCore::CompositeAnimation::getAnimationForProperty):
41269        (WebCore::CompositeAnimation::suspendAnimations):
41270        (WebCore::CompositeAnimation::resumeAnimations):
41271        (WebCore::CompositeAnimation::overrideImplicitAnimations):
41272        (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
41273        (WebCore::CompositeAnimation::isAnimatingProperty):
41274        (WebCore::CompositeAnimation::numberOfActiveAnimations):
41275        * platform/Language.cpp:
41276        (WebCore::languageDidChange):
41277        * platform/MIMETypeRegistry.cpp:
41278        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
41279        * platform/audio/HRTFElevation.cpp:
41280        (WebCore::getConcatenatedImpulseResponsesForSubject):
41281        * platform/blackberry/CookieManager.cpp:
41282        (WebCore::CookieManager::generateHtmlFragmentForCookies):
41283        (WebCore::CookieManager::removeAllCookies):
41284        * platform/blackberry/CookieMap.cpp:
41285        (WebCore::CookieMap::removeOldestCookie):
41286        (WebCore::CookieMap::getAllChildCookies):
41287        * platform/cf/BinaryPropertyList.cpp:
41288        (WebCore::BinaryPropertyListPlan::writeIntegerArray):
41289        * platform/chromium/support/WebHTTPLoadInfo.cpp:
41290        (WebKit::addHeader):
41291        * platform/chromium/support/WebURLRequest.cpp:
41292        (WebKit::WebURLRequest::visitHTTPHeaderFields):
41293        * platform/chromium/support/WebURLResponse.cpp:
41294        (WebKit::WebURLResponse::addHTTPHeaderField):
41295        (WebKit::WebURLResponse::visitHTTPHeaderFields):
41296        * platform/graphics/DisplayRefreshMonitor.cpp:
41297        (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
41298        (WebCore::DisplayRefreshMonitorManager::unregisterClient):
41299        * platform/graphics/FontCache.cpp:
41300        (WebCore::FontCache::getCachedFontPlatformData):
41301        (WebCore::FontCache::getCachedFontData):
41302        (WebCore::FontCache::releaseFontData):
41303        (WebCore::FontCache::purgeInactiveFontData):
41304        * platform/graphics/GlyphPageTreeNode.cpp:
41305        (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
41306        (WebCore::GlyphPageTreeNode::pageCount):
41307        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
41308        (WebCore::GlyphPageTreeNode::pruneTreeFontData):
41309        (WebCore::GlyphPageTreeNode::pruneCustomFontData):
41310        (WebCore::GlyphPageTreeNode::pruneFontData):
41311        (WebCore::GlyphPageTreeNode::showSubtree):
41312        (showGlyphPageTrees):
41313        * platform/graphics/TiledBackingStore.cpp:
41314        (WebCore::TiledBackingStore::updateTileBuffers):
41315        (WebCore::TiledBackingStore::resizeEdgeTiles):
41316        (WebCore::TiledBackingStore::setKeepRect):
41317        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
41318        (WebCore::AVFWrapper::avfWrapperForCallbackContext):
41319        * platform/graphics/blackberry/LayerTiler.cpp:
41320        (WebCore::LayerTiler::layerVisibilityChanged):
41321        (WebCore::LayerTiler::uploadTexturesIfNeeded):
41322        (WebCore::LayerTiler::addTileJob):
41323        (WebCore::LayerTiler::deleteTextures):
41324        (WebCore::LayerTiler::pruneTextures):
41325        (WebCore::LayerTiler::bindContentsTexture):
41326        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
41327        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
41328        (WebCore::TextureCacheCompositingThread::textureForColor):
41329        * platform/graphics/ca/GraphicsLayerCA.cpp:
41330        (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
41331        (WebCore::GraphicsLayerCA::pauseAnimation):
41332        (WebCore::GraphicsLayerCA::layerDidDisplay):
41333        (WebCore::GraphicsLayerCA::updateGeometry):
41334        (WebCore::GraphicsLayerCA::updateTransform):
41335        (WebCore::GraphicsLayerCA::updateChildrenTransform):
41336        (WebCore::GraphicsLayerCA::updateMasksToBounds):
41337        (WebCore::GraphicsLayerCA::updateContentsVisibility):
41338        (WebCore::GraphicsLayerCA::updateContentsOpaque):
41339        (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
41340        (WebCore::GraphicsLayerCA::updateFilters):
41341        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
41342        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
41343        (WebCore::GraphicsLayerCA::updateContentsImage):
41344        (WebCore::GraphicsLayerCA::updateContentsRect):
41345        (WebCore::GraphicsLayerCA::updateMaskLayer):
41346        (WebCore::GraphicsLayerCA::updateLayerAnimations):
41347        (WebCore::GraphicsLayerCA::setAnimationOnLayer):
41348        (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
41349        (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
41350        (WebCore::GraphicsLayerCA::suspendAnimations):
41351        (WebCore::GraphicsLayerCA::resumeAnimations):
41352        (WebCore::GraphicsLayerCA::findOrMakeClone):
41353        (WebCore::GraphicsLayerCA::setOpacityInternal):
41354        (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
41355        * platform/graphics/ca/mac/TileCache.mm:
41356        (WebCore::TileCache::setNeedsDisplay):
41357        (WebCore::TileCache::setScale):
41358        (WebCore::TileCache::setAcceleratesDrawing):
41359        (WebCore::TileCache::setTileDebugBorderWidth):
41360        (WebCore::TileCache::setTileDebugBorderColor):
41361        (WebCore::TileCache::revalidateTiles):
41362        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
41363        (PlatformCALayer::animationStarted):
41364        (resubmitAllAnimations):
41365        (PlatformCALayer::animationForKey):
41366        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
41367        (WebCore::LookupAltName):
41368        (WebCore::fontContainsCharacter):
41369        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
41370        (WebCore::getDerivedFontData):
41371        * platform/graphics/chromium/TiledLayerChromium.cpp:
41372        (WebCore::TiledLayerChromium::pushPropertiesTo):
41373        (WebCore::TiledLayerChromium::setLayerTreeHost):
41374        (WebCore::TiledLayerChromium::invalidateContentRect):
41375        (WebCore::TiledLayerChromium::setTexturePriorities):
41376        (WebCore::TiledLayerChromium::resetUpdateState):
41377        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
41378        (WebCore::CCDamageTracker::trackDamageFromLeftoverRects):
41379        * platform/graphics/chromium/cc/CCDirectRenderer.cpp:
41380        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
41381        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
41382        (WebCore::CCLayerTilingData::setBounds):
41383        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
41384        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
41385        (WebCore::CCLayerTreeHost::startRateLimiter):
41386        (WebCore::CCLayerTreeHost::stopRateLimiter):
41387        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
41388        (WebCore::findRenderPassById):
41389        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
41390        (WebCore::CCResourceProvider::inUseByConsumer):
41391        (WebCore::CCResourceProvider::deleteResource):
41392        (WebCore::CCResourceProvider::deleteOwnedResources):
41393        (WebCore::CCResourceProvider::resourceType):
41394        (WebCore::CCResourceProvider::upload):
41395        (WebCore::CCResourceProvider::lockForRead):
41396        (WebCore::CCResourceProvider::unlockForRead):
41397        (WebCore::CCResourceProvider::lockForWrite):
41398        (WebCore::CCResourceProvider::unlockForWrite):
41399        (WebCore::CCResourceProvider::destroyChild):
41400        (WebCore::CCResourceProvider::getChildToParentMap):
41401        (WebCore::CCResourceProvider::prepareSendToParent):
41402        (WebCore::CCResourceProvider::prepareSendToChild):
41403        (WebCore::CCResourceProvider::receiveFromChild):
41404        (WebCore::CCResourceProvider::receiveFromParent):
41405        (WebCore::CCResourceProvider::transferResource):
41406        (WebCore::CCResourceProvider::trimMailboxDeque):
41407        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
41408        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
41409        (WebCore::CustomFilterGlobalContext::getCompiledProgram):
41410        * platform/graphics/filters/CustomFilterProgram.cpp:
41411        (WebCore::CustomFilterProgram::notifyClients):
41412        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
41413        (WebCore::getCachedHarfbuzzFace):
41414        (WebCore::releaseCachedHarfbuzzFace):
41415        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
41416        (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
41417        (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
41418        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
41419        (WebCore::SimpleFontData::getCFStringAttributes):
41420        * platform/graphics/mac/SimpleFontDataMac.mm:
41421        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
41422        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
41423        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
41424        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
41425        (WebCore::GraphicsContext3D::compileShader):
41426        (WebCore::GraphicsContext3D::getShaderiv):
41427        (WebCore::GraphicsContext3D::getShaderInfoLog):
41428        (WebCore::GraphicsContext3D::getShaderSource):
41429        * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
41430        (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
41431        (WebCore::EGLDisplayOpenVG::destroySurface):
41432        (WebCore::EGLDisplayOpenVG::contextForSurface):
41433        * platform/graphics/texmap/TextureMapperGL.cpp:
41434        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
41435        (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
41436        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
41437        (WebCore::TextureMapperShaderManager::getShaderProgram):
41438        (WebCore::TextureMapperShaderManager::getShaderForFilter):
41439        * platform/graphics/wince/FontPlatformData.cpp:
41440        (WebCore::FixedSizeFontData::create):
41441        * platform/gtk/DataObjectGtk.cpp:
41442        (WebCore::DataObjectGtk::forClipboard):
41443        * platform/gtk/GtkDragAndDropHelper.cpp:
41444        (WebCore::GtkDragAndDropHelper::handleGetDragData):
41445        (WebCore::GtkDragAndDropHelper::handleDragLeave):
41446        (WebCore::GtkDragAndDropHelper::handleDragMotion):
41447        (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
41448        (WebCore::GtkDragAndDropHelper::handleDragDrop):
41449        * platform/gtk/RenderThemeGtk3.cpp:
41450        (WebCore::gtkStyleChangedCallback):
41451        (WebCore::getStyleContext):
41452        * platform/mac/ScrollbarThemeMac.mm:
41453        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
41454        * platform/network/CredentialStorage.cpp:
41455        (WebCore::CredentialStorage::set):
41456        (WebCore::CredentialStorage::get):
41457        * platform/network/HTTPHeaderMap.cpp:
41458        (WebCore::HTTPHeaderMap::copyData):
41459        (WebCore::HTTPHeaderMap::get):
41460        * platform/network/MIMEHeader.cpp:
41461        (WebCore::MIMEHeader::parseHeader):
41462        * platform/network/ResourceHandle.cpp:
41463        (WebCore::ResourceHandle::create):
41464        * platform/network/ResourceRequestBase.cpp:
41465        (WebCore::ResourceRequestBase::addHTTPHeaderField):
41466        (WebCore::ResourceRequestBase::addHTTPHeaderFields):
41467        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
41468        (WebCore::ResourceRequest::targetTypeFromMimeType):
41469        (WebCore::ResourceRequest::initializePlatformRequest):
41470        * platform/network/cf/ResourceHandleCFNet.cpp:
41471        (WebCore::makeFinalRequest):
41472        * platform/network/cf/ResourceRequestCFNet.cpp:
41473        (WebCore::setHeaderFields):
41474        * platform/network/curl/ResourceHandleManager.cpp:
41475        (WebCore::ResourceHandleManager::initializeHandle):
41476        * platform/network/mac/ResourceRequestMac.mm:
41477        (WebCore::ResourceRequest::doUpdatePlatformRequest):
41478        * platform/network/qt/ResourceRequestQt.cpp:
41479        (WebCore::ResourceRequest::toNetworkRequest):
41480        * platform/network/soup/ResourceHandleSoup.cpp:
41481        (WebCore::sendRequestCallback):
41482        (WebCore::ResourceHandle::setClientCertificate):
41483        * platform/network/soup/ResourceRequestSoup.cpp:
41484        (WebCore::ResourceRequest::updateSoupMessage):
41485        (WebCore::ResourceRequest::toSoupMessage):
41486        * platform/network/soup/ResourceResponseSoup.cpp:
41487        (WebCore::ResourceResponse::toSoupMessage):
41488        * platform/network/win/ResourceHandleWin.cpp:
41489        (WebCore::ResourceHandle::start):
41490        * platform/qt/RunLoopQt.cpp:
41491        (WebCore::RunLoop::TimerBase::timerFired):
41492        * platform/text/LocaleToScriptMappingDefault.cpp:
41493        (WebCore::scriptNameToCode):
41494        (WebCore::localeToScriptCodeForFontSelection):
41495        * platform/text/TextEncodingRegistry.cpp:
41496        (WebCore::pruneBlacklistedCodecs):
41497        (WebCore::dumpTextEncodingNameMap):
41498        * platform/text/transcoder/FontTranscoder.cpp:
41499        (WebCore::FontTranscoder::converterType):
41500        * platform/text/win/TextCodecWin.cpp:
41501        (WebCore::LanguageManager::LanguageManager):
41502        (WebCore::getCodePage):
41503        (WebCore::TextCodecWin::registerExtendedEncodingNames):
41504        (WebCore::TextCodecWin::registerExtendedCodecs):
41505        (WebCore::TextCodecWin::enumerateSupportedEncodings):
41506        * platform/win/ClipboardUtilitiesWin.cpp:
41507        (WebCore::getDataMapItem):
41508        (WebCore::getClipboardData):
41509        (WebCore::setClipboardData):
41510        * platform/win/ClipboardWin.cpp:
41511        (WebCore::ClipboardWin::types):
41512        * platform/win/FileSystemWin.cpp:
41513        (WebCore::cachedStorageDirectory):
41514        * platform/win/RunLoopWin.cpp:
41515        (WebCore::RunLoop::TimerBase::timerFired):
41516        * platform/win/WCDataObject.cpp:
41517        (WebCore::WCDataObject::createInstance):
41518        * platform/wince/MIMETypeRegistryWinCE.cpp:
41519        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
41520        * platform/wx/ContextMenuWx.cpp:
41521        (WebCore::ContextMenu::appendItem):
41522        * plugins/PluginDatabase.cpp:
41523        (WebCore::PluginDatabase::refresh):
41524        (WebCore::PluginDatabase::MIMETypeForExtension):
41525        (WebCore::PluginDatabase::remove):
41526        * plugins/PluginMainThreadScheduler.cpp:
41527        (WebCore::PluginMainThreadScheduler::scheduleCall):
41528        (WebCore::PluginMainThreadScheduler::dispatchCalls):
41529        * plugins/PluginStream.cpp:
41530        (WebCore::PluginStream::startStream):
41531        * plugins/blackberry/PluginDataBlackBerry.cpp:
41532        (WebCore::PluginData::initPlugins):
41533        * plugins/wx/PluginDataWx.cpp:
41534        (WebCore::PluginData::initPlugins):
41535        * rendering/FlowThreadController.cpp:
41536        (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
41537        * rendering/InlineFlowBox.cpp:
41538        (WebCore::InlineFlowBox::requiresIdeographicBaseline):
41539        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
41540        * rendering/RenderBlock.cpp:
41541        (WebCore::RenderBlock::clearFloats):
41542        * rendering/RenderBlockLineLayout.cpp:
41543        (WebCore::setLogicalWidthForTextRun):
41544        * rendering/RenderBoxModelObject.cpp:
41545        (WebCore::ImageQualityController::highQualityRepaintTimerFired):
41546        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
41547        * rendering/RenderCounter.cpp:
41548        (WebCore::RenderCounter::destroyCounterNodes):
41549        (WebCore::RenderCounter::destroyCounterNode):
41550        (WebCore::updateCounters):
41551        (WebCore::RenderCounter::rendererStyleChanged):
41552        * rendering/RenderFlowThread.cpp:
41553        (WebCore::RenderFlowThread::setRegionRangeForBox):
41554        (WebCore::RenderFlowThread::getRegionRangeForBox):
41555        * rendering/RenderLayer.cpp:
41556        (WebCore::RenderLayer::paint):
41557        (WebCore::performOverlapTests):
41558        * rendering/RenderLayerFilterInfo.cpp:
41559        (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
41560        (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
41561        * rendering/RenderNamedFlowThread.cpp:
41562        (WebCore::RenderNamedFlowThread::dependsOn):
41563        (WebCore::RenderNamedFlowThread::pushDependencies):
41564        * rendering/RenderRegion.cpp:
41565        (WebCore::RenderRegion::setRenderBoxRegionInfo):
41566        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
41567        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
41568        (WebCore::RenderRegion::computeChildrenStyleInRegion):
41569        * rendering/RenderTableSection.cpp:
41570        (WebCore::RenderTableSection::cachedCollapsedBorder):
41571        * rendering/RenderThemeMac.mm:
41572        (WebCore::RenderThemeMac::systemColor):
41573        * rendering/RenderView.cpp:
41574        (WebCore::RenderView::selectionBounds):
41575        (WebCore::RenderView::setSelection):
41576        * rendering/RenderWidget.cpp:
41577        (WebCore::RenderWidget::resumeWidgetHierarchyUpdates):
41578        * rendering/RootInlineBox.cpp:
41579        (WebCore::RootInlineBox::ascentAndDescentForBox):
41580        * rendering/VerticalPositionCache.h:
41581        (WebCore::VerticalPositionCache::get):
41582        * rendering/WrapShapeInfo.cpp:
41583        (WebCore::WrapShapeInfo::ensureWrapShapeInfoForRenderBlock):
41584        * rendering/svg/RenderSVGInlineText.cpp:
41585        (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
41586        * rendering/svg/RenderSVGResourceFilter.cpp:
41587        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
41588        * rendering/svg/RenderSVGResourceGradient.cpp:
41589        (WebCore::RenderSVGResourceGradient::applyResource):
41590        * rendering/svg/RenderSVGResourcePattern.cpp:
41591        (WebCore::RenderSVGResourcePattern::applyResource):
41592        * rendering/svg/SVGResourcesCache.cpp:
41593        (WebCore::SVGResourcesCache::resourceDestroyed):
41594        * rendering/svg/SVGRootInlineBox.cpp:
41595        (WebCore::swapItemsInLayoutAttributes):
41596        * rendering/svg/SVGTextLayoutAttributes.cpp:
41597        (WebCore::SVGTextLayoutAttributes::dump):
41598        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
41599        (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
41600        (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
41601        * rendering/svg/SVGTextLayoutEngine.cpp:
41602        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
41603        * rendering/svg/SVGTextMetricsBuilder.cpp:
41604        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
41605        * storage/StorageAreaSync.cpp:
41606        (WebCore::StorageAreaSync::syncTimerFired):
41607        (WebCore::StorageAreaSync::performImport):
41608        (WebCore::StorageAreaSync::sync):
41609        * storage/StorageMap.cpp:
41610        (WebCore::StorageMap::key):
41611        (WebCore::StorageMap::setItem):
41612        * storage/StorageNamespaceImpl.cpp:
41613        (WebCore::StorageNamespaceImpl::localStorageNamespace):
41614        (WebCore::StorageNamespaceImpl::copy):
41615        (WebCore::StorageNamespaceImpl::close):
41616        (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
41617        (WebCore::StorageNamespaceImpl::sync):
41618        * svg/SVGDocumentExtensions.cpp:
41619        (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
41620        (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
41621        (WebCore::SVGDocumentExtensions::addPendingResource):
41622        (WebCore::SVGDocumentExtensions::isElementPendingResources):
41623        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
41624        (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
41625        (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
41626        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
41627        * svg/SVGElement.cpp:
41628        (WebCore::SVGElement::~SVGElement):
41629        * svg/animation/SMILTimeContainer.cpp:
41630        (WebCore::SMILTimeContainer::updateAnimations):
41631        * svg/graphics/SVGImageCache.cpp:
41632        (WebCore::SVGImageCache::~SVGImageCache):
41633        (WebCore::SVGImageCache::removeClientFromCache):
41634        (WebCore::SVGImageCache::requestedSizeAndScales):
41635        (WebCore::SVGImageCache::imageContentChanged):
41636        (WebCore::SVGImageCache::redraw):
41637        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
41638        * svg/graphics/filters/SVGFilterBuilder.h:
41639        (WebCore::SVGFilterBuilder::effectReferences):
41640        (WebCore::SVGFilterBuilder::addBuiltinEffects):
41641        * svg/properties/SVGAnimatedProperty.h:
41642        (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
41643        * svg/properties/SVGAttributeToPropertyMap.cpp:
41644        (WebCore::SVGAttributeToPropertyMap::addProperties):
41645        (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
41646        * workers/WorkerContext.cpp:
41647        (WebCore::WorkerContext::hasPendingActivity):
41648        * workers/WorkerEventQueue.cpp:
41649        (WebCore::WorkerEventQueue::close):
41650        * xml/XMLHttpRequest.cpp:
41651        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
41652        (WebCore::XMLHttpRequest::getAllResponseHeaders):
41653        * xml/XPathFunctions.cpp:
41654        (WebCore::XPath::createFunction):
41655        * xml/XPathParser.cpp:
41656        (isAxisName):
41657        * xml/XSLTProcessorLibxslt.cpp:
41658        (WebCore::xsltParamArrayFromParameterMap):
41659        * xml/XSLTProcessorQt.cpp:
41660        (WebCore::XSLTProcessor::transformToString):
41661
416622012-08-27  David Reveman  <reveman@chromium.org>
41663
41664        [Chromium] Stop texture updates when context is lost.
41665        https://bugs.webkit.org/show_bug.cgi?id=94983
41666
41667        Reviewed by James Robinson.
41668
41669        Free m_currentTextureUpdateController when
41670        CCThreadProxy::didLoseContextOnImplThread() is called.
41671
41672        Unit test: CCLayerTreeHostTestLostContextWhileUpdatingResources.runMultiThread
41673
41674        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
41675        (WebCore::CCThreadProxy::didLoseContextOnImplThread):
41676        (WebCore::CCThreadProxy::scheduledActionCommit):
41677
416782012-08-27  Dean Jackson  <dino@apple.com>
41679
41680        Unreviewed attempted build fix for Mac.
41681
41682        After https://bugs.webkit.org/show_bug.cgi?id=95155 and the subsequent r126831
41683        LayoutTypesInlineMethods.h needed to be added to the WebCore target.
41684
41685        * WebCore.xcodeproj/project.pbxproj:
41686
416872012-08-27  Julien Chaffraix  <jchaffraix@webkit.org>
41688
41689        Crash in RenderTable::removeCaption
41690        https://bugs.webkit.org/show_bug.cgi?id=95090
41691
41692        Reviewed by Abhishek Arya.
41693
41694        The issue came from the caption addition logic not being called when
41695        we move the caption due to being hooked on RenderTable::addChild
41696        and not RenderTableCaption::insertedIntoTree. This change implemented
41697        the previous hook and simplified our caption handling.
41698
41699        Test: fast/table/table-caption-moved-crash.html
41700
41701        * rendering/RenderTable.cpp:
41702        (WebCore::RenderTable::addChild):
41703        Removed the add-a-caption code as it is now executed from RenderTableCaption::insertedIntoTree.
41704
41705        (WebCore::RenderTable::addCaption):
41706        Added this helper method.
41707
41708        (WebCore::RenderTable::removeCaption):
41709        Changed this function to be more bullet-proof. The old code was checking |index| as it wasn't
41710        bullet proof so let's keep it.
41711
41712        (WebCore::RenderTable::recalcSections):
41713        Removed the caption handling code as we should properly handle them now.
41714
41715        * rendering/RenderTable.h:
41716        Added addCaption.
41717
41718        * rendering/RenderTableCaption.cpp:
41719        (WebCore::RenderTableCaption::insertedIntoTree):
41720        * rendering/RenderTableCaption.h:
41721        Added insertedIntoTree.
41722
417232012-08-27  Nikhil Bhargava  <nbhargava@google.com>
41724
41725        Add new file to xcode project -- Update to Bug 95107
41726        https://bugs.webkit.org/show_bug.cgi?id=95155
41727
41728        Reviewed by Tim Horton.
41729
41730        Add LayoutTypesInlineMethods.h to xcode project file.
41731
41732        * WebCore.xcodeproj/project.pbxproj:
41733
417342012-08-27  James Robinson  <jamesr@chromium.org>
41735
41736        [chromium] Add some #includes that were implicitly picked up to CCScrollbarGeometry*
41737        https://bugs.webkit.org/show_bug.cgi?id=95158
41738
41739        Reviewed by Adrienne Walker.
41740
41741        These includes are picked up implicitly, better to #include them explicitly to be more robust to refactors.
41742
41743        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp:
41744        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h:
41745        * platform/graphics/chromium/cc/CCScrollbarGeometryStub.h:
41746
417472012-08-27  Adam Barth  <abarth@webkit.org>
41748
41749        [V8] V8DOMWindowShell::installDOMWindow is subtle and should explain itself more
41750        https://bugs.webkit.org/show_bug.cgi?id=95151
41751
41752        Reviewed by Kentaro Hara.
41753
41754        This patch adds some text to V8DOMWindowShell::installDOMWindow that
41755        explaining what this code is doing. I've also renamed some variables
41756        and created a helper function in an attempt to make it clearer what's
41757        going on.
41758
41759        * bindings/v8/V8DOMWindowShell.cpp:
41760        (WebCore::toInnerGlobalObject):
41761        (WebCore):
41762        (WebCore::V8DOMWindowShell::installDOMWindow):
41763        (WebCore::V8DOMWindowShell::updateDocumentProperty):
41764
417652012-08-27  Luke Macpherson   <macpherson@chromium.org>
41766
41767        Fix CSSParserValue::createCSSValue() for viewport based units.
41768        https://bugs.webkit.org/show_bug.cgi?id=94772
41769
41770        Reviewed by Tony Chang.
41771
41772        Viewport units were not added to CSSParserValue::createCSSValue(). This patch handles that case.
41773        Patch also converts from list of if clauses to a switch statement to catch future errors.
41774
41775        Test: fast/css/variables/calc-vw-crash.html
41776
41777        * css/CSSParserValues.cpp:
41778        (WebCore::CSSParserValue::createCSSValue):
41779
417802012-08-27  Dimitri Glazkov  <dglazkov@chromium.org>
41781
41782        Rename ContentDistributor::distributeShadowChildrenTo to distributeNodeChildrenTo.
41783        https://bugs.webkit.org/show_bug.cgi?id=95150
41784
41785        Reviewed by Hajime Morita.
41786
41787        Also, made the function take ContainerNode, which decouples it from the callsite's context.
41788
41789        No new tests, simple rename.
41790
41791        * html/shadow/ContentDistributor.cpp:
41792        (WebCore::ContentDistributor::distribute): Changed the callsite.
41793        (WebCore::ContentDistributor::distributeNodeChildrenTo): Renamed from distributeShadowChildrenTo.
41794        * html/shadow/ContentDistributor.h:
41795        (WebCore): Added forward decl for ContainerNode.
41796        (ContentDistributor): Changed the decl name.
41797
417982012-08-27  Adam Barth  <abarth@webkit.org>
41799
41800        [V8] V8DOMWindowShell::setContext has no callers
41801        https://bugs.webkit.org/show_bug.cgi?id=95147
41802
41803        Reviewed by Kentaro Hara.
41804
41805        Dead code is dead.
41806
41807        * bindings/v8/V8DOMWindowShell.cpp:
41808        * bindings/v8/V8DOMWindowShell.h:
41809        (V8DOMWindowShell):
41810
418112012-08-27  Dimitri Glazkov  <dglazkov@chromium.org>
41812
41813        Rename ContentDistributor::distributeShadowChildrenTo to distributeNodeChildrenTo.
41814        https://bugs.webkit.org/show_bug.cgi?id=95150
41815
41816        Reviewed by Hajime Morita.
41817
41818        Also, made the function take ContainerNode, which decouples it from the callsite's context.
41819
41820        No new tests, simple rename.
41821
41822        * html/shadow/ContentDistributor.cpp:
41823        (WebCore::ContentDistributor::distribute): Changed the callsite.
41824        (WebCore::ContentDistributor::distributeNodeChildrenTo): Renamed from distributeShadowChildrenTo.
41825        * html/shadow/ContentDistributor.h:
41826        (WebCore): Added forward decl for ContainerNode.
41827        (ContentDistributor): Changed the decl name.
41828
418292012-08-27  Adam Barth  <abarth@webkit.org>
41830
41831        [V8] Inline V8DOMWindowShell::clearDocumentWrapper
41832        https://bugs.webkit.org/show_bug.cgi?id=95133
41833
41834        Reviewed by Eric Seidel.
41835
41836        Now that we use ScopedPersistent for m_document, clearDocumentWrapper
41837        is just one line. It's clearer to just inline it into its callers.
41838
41839        * bindings/v8/V8DOMWindowShell.cpp:
41840        (WebCore::V8DOMWindowShell::clearForClose):
41841        (WebCore::V8DOMWindowShell::clearForNavigation):
41842        (WebCore::V8DOMWindowShell::updateDocumentWrapper):
41843            - Notice that ScopedPersistent::set already calls clear, so there's
41844              no reason to call clear redundantly.
41845        * bindings/v8/V8DOMWindowShell.h:
41846        (V8DOMWindowShell):
41847
418482012-08-27  Dana Jansens  <danakj@chromium.org>
41849
41850        [chromium] A general mechanism for passing data into and out of appendQuads and quadCuller via CCAppendQuadsData
41851        https://bugs.webkit.org/show_bug.cgi?id=95109
41852
41853        Reviewed by Adrienne Walker.
41854
41855        The appendQuads() method has a number of out-parameters that are needed
41856        by different steps in the append process:
41857        - hadMissingTiles is needed by the layers to report checkerboards.
41858        - hadOcclusionFromOutsideTargetSurface is needed by CCQuadCuller to
41859        report occlusion.
41860
41861        Currently one is plumbed through function arguments, and one is
41862        plumbed as a member variable on the CCQuadCuller instance.
41863
41864        We will also need an in-parameter for the DelegatedRendererLayer for
41865        ubercomp. Instead of continuously adding more plumbing for these
41866        parameters, we create a general machanism to get data to and from the
41867        right places.
41868
41869        Covered by existing tests; no change in behaviour. Specifically,
41870        CCLayerTreeHostImpl tests for missing/checkerboard tiles and
41871        surface-external occlusion.
41872
41873        * platform/graphics/chromium/cc/CCAppendQuadsData.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCSolidColorLayerImpl.h.
41874        (WebCore):
41875        (WebCore::CCAppendQuadsData::CCAppendQuadsData):
41876        (CCAppendQuadsData):
41877        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
41878        (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
41879        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
41880        (CCHeadsUpDisplayLayerImpl):
41881        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
41882        (WebCore::CCIOSurfaceLayerImpl::appendQuads):
41883        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
41884        (CCIOSurfaceLayerImpl):
41885        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
41886        (WebCore::CCLayerImpl::appendDebugBorderQuad):
41887        * platform/graphics/chromium/cc/CCLayerImpl.h:
41888        (WebCore):
41889        (WebCore::CCLayerImpl::appendQuads):
41890        (CCLayerImpl):
41891        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
41892        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
41893        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
41894        (WebCore::CCQuadCuller::CCQuadCuller):
41895        (WebCore::CCQuadCuller::append):
41896        * platform/graphics/chromium/cc/CCQuadCuller.h:
41897        (WebCore):
41898        (CCQuadCuller):
41899        * platform/graphics/chromium/cc/CCQuadSink.h:
41900        (WebCore):
41901        (CCQuadSink):
41902        * platform/graphics/chromium/cc/CCRenderPass.cpp:
41903        (WebCore::CCRenderPass::appendQuadsForLayer):
41904        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
41905        * platform/graphics/chromium/cc/CCRenderPass.h:
41906        (WebCore):
41907        (CCRenderPass):
41908        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
41909        (WebCore::CCRenderSurface::appendQuads):
41910        * platform/graphics/chromium/cc/CCRenderSurface.h:
41911        (WebCore):
41912        (CCRenderSurface):
41913        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
41914        (WebCore::CCScrollbarLayerImpl::appendQuads):
41915        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
41916        (CCScrollbarLayerImpl):
41917        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
41918        (WebCore::CCSolidColorLayerImpl::appendQuads):
41919        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
41920        (CCSolidColorLayerImpl):
41921        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
41922        (WebCore::CCTextureLayerImpl::appendQuads):
41923        * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
41924        (CCTextureLayerImpl):
41925        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
41926        (WebCore::CCTiledLayerImpl::appendQuads):
41927        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
41928        (CCTiledLayerImpl):
41929        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
41930        (WebCore::CCVideoLayerImpl::appendQuads):
41931        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
41932        (CCVideoLayerImpl):
41933
419342012-08-27  Adam Barth  <abarth@webkit.org>
41935
41936        Delete checks for impossible conditions in V8DOMWindowShell
41937        https://bugs.webkit.org/show_bug.cgi?id=95145
41938
41939        Reviewed by Eric Seidel.
41940
41941        These situations do not occur. We don't need to check for them.
41942
41943        * bindings/js/ScriptController.cpp:
41944        (WebCore::ScriptController::updateDocument):
41945        * bindings/v8/V8DOMWindowShell.cpp:
41946        (WebCore::V8DOMWindowShell::createNewContext):
41947        (WebCore::V8DOMWindowShell::updateDocumentProperty):
41948        (WebCore::V8DOMWindowShell::setSecurityToken):
41949        (WebCore::V8DOMWindowShell::updateDocument):
41950        * page/Frame.cpp:
41951        (WebCore::Frame::setDocument):
41952            - updateDocument used to just return early when m_doc was 0. Now we
41953              don't even bother to call it.
41954
419552012-08-27  Nikhil Bhargava  <nbhargava@google.com>
41956
41957        Split LayoutTypes.h to improve compile time
41958        https://bugs.webkit.org/show_bug.cgi?id=95107
41959
41960        Reviewed by Eric Seidel.
41961
41962        The inlines from LayoutTypes.h are moved to LayoutTypesInlineMethods.h.
41963        Files that only need the types to be forward declared, don't need to
41964        include definitions for FractionalLayout items (those are expensive to
41965        include)
41966
41967        No new tests. Functionality should be the same.
41968
41969        * WebCore.gypi:
41970        * accessibility/AccessibilityObject.h:
41971        * css/LengthFunctions.cpp:
41972        * dom/DocumentMarkerController.h:
41973        * dom/Node.h:
41974        * inspector/InspectorOverlay.h:
41975        * inspector/InspectorTimelineAgent.h:
41976        * inspector/TimelineRecordFactory.h:
41977        * loader/SubframeLoader.h:
41978        * page/FocusController.h:
41979        * page/Page.h:
41980        * platform/Length.h:
41981        * platform/PopupMenuClient.h:
41982        * platform/graphics/transforms/TransformationMatrix.cpp:
41983        * platform/graphics/transforms/TransformationMatrix.h:
41984        * rendering/AutoTableLayout.h:
41985        * rendering/FixedTableLayout.h:
41986        * rendering/HitTestingTransformState.cpp:
41987        * rendering/LayoutTypes.h:
41988        * rendering/LayoutTypesInlineMethods.h: Added.
41989        (WebCore):
41990        * rendering/RenderMenuList.h:
41991        * rendering/RenderThemeChromiumCommon.h:
41992        * rendering/TextAutosizer.h:
41993        * rendering/style/ShadowData.cpp:
41994        * rendering/style/ShadowData.h:
41995        * rendering/style/WrapShapes.h:
41996        * rendering/svg/SVGRenderSupport.h:
41997        * rendering/svg/SVGRenderingContext.h:
41998        * svg/graphics/SVGImage.h:
41999
420002012-08-27  James Robinson  <jamesr@chromium.org>
42001
42002        [chromium] Put CCThreadImpl / WebCompositorImpl in webcore_chromium_compositor_files gyp section
42003        https://bugs.webkit.org/show_bug.cgi?id=94995
42004
42005        Reviewed by Adrienne Walker.
42006
42007        These need to be controllable by use_libcc_for_compositor
42008
42009        * WebCore.gypi:
42010
420112012-08-27  Simon Fraser  <simon.fraser@apple.com>
42012
42013        If both left and right (or top and bottom) are specified for sticky, use left (or top)
42014        https://bugs.webkit.org/show_bug.cgi?id=95146
42015
42016        Reviewed by Dan Bernstein.
42017
42018        Remove the incorrect FIXME comment, and swap the left and right,
42019        and top and bottom constraints so that left and top win out,
42020        as they do for position:relative.
42021
42022        Test: fast/css/sticky/sticky-both-sides.html
42023
42024        * rendering/RenderBoxModelObject.cpp:
42025        (WebCore::RenderBoxModelObject::stickyPositionOffset):
42026
420272012-08-27  Adam Barth  <abarth@webkit.org>
42028
42029        [V8] Improve the names of some private functions of V8DOMWindowShell.cpp
42030        https://bugs.webkit.org/show_bug.cgi?id=95132
42031
42032        Reviewed by Eric Seidel.
42033
42034        V8DOMWindowShell has a concept of a "DocumentWrapperCache", but that's
42035        more easily understood as the "document" property of the Window. This
42036        patch renames a couple functions to make this clearer.
42037
42038        This patch as renames disposeContextHandles to disposeContext because
42039        that's what's actually happening.
42040
42041        * bindings/v8/V8DOMWindowShell.cpp:
42042        (WebCore::V8DOMWindowShell::isContextInitialized):
42043        (WebCore::V8DOMWindowShell::disposeContext):
42044        (WebCore::V8DOMWindowShell::clearForClose):
42045        (WebCore::V8DOMWindowShell::clearForNavigation):
42046        (WebCore):
42047        (WebCore::V8DOMWindowShell::initializeIfNeeded):
42048        (WebCore::V8DOMWindowShell::updateDocumentProperty):
42049        (WebCore::V8DOMWindowShell::clearDocumentProperty):
42050        (WebCore::V8DOMWindowShell::updateDocument):
42051        * bindings/v8/V8DOMWindowShell.h:
42052        (V8DOMWindowShell):
42053
420542012-08-24  James Robinson  <jamesr@chromium.org>
42055
42056        WebGL should not flip textures on presentation if contents are unchanged
42057        https://bugs.webkit.org/show_bug.cgi?id=94961
42058
42059        Reviewed by Kenneth Russell.
42060
42061        For WebGL contexts where antialias and preserveDrawingBuffer are false, chromium implements DrawingBuffer using
42062        two textures and flips them on presentation. If the page hasn't actually rendered anything into the WebGL
42063        context since the last presentation, this makes an old frame available. This fixes the bug by marking the
42064        DrawingBuffer when its contents change.
42065
42066        Test: compositing/webgl/webgl-repaint.html
42067
42068        * html/canvas/WebGLRenderingContext.cpp:
42069        (WebCore):
42070        (WebCore::WebGLRenderingContext::markContextChanged):
42071        * platform/graphics/chromium/DrawingBufferChromium.cpp:
42072        (WebCore::DrawingBuffer::DrawingBuffer):
42073        (WebCore::DrawingBuffer::prepareBackBuffer):
42074        * platform/graphics/gpu/DrawingBuffer.h:
42075        (WebCore::DrawingBuffer::markContentsChanged):
42076        (DrawingBuffer):
42077
420782012-08-27  Adam Barth  <abarth@webkit.org>
42079
42080        [V8] Clean up V8DOMWindowShell's findFrame
42081        https://bugs.webkit.org/show_bug.cgi?id=95130
42082
42083        Reviewed by Eric Seidel.
42084
42085        This patch just deletes a bunch of unneeded variables from findFrame
42086        and adds an ASSERT for what a comment claims to be true.
42087
42088        * bindings/v8/V8DOMWindowShell.cpp:
42089        (WebCore::findFrame):
42090
420912012-08-27  Roger Fong  <roger_fong@apple.com>
42092
42093        Hook procedure should check to see if hook has already been removed before attempting removal.
42094        https://bugs.webkit.org/show_bug.cgi?id=95118
42095
42096        Reviewed by Simon Fraser.
42097
42098        When the hookFired method in LayerChangesFlusher.cpp gets called in response to a message posted to the message queue
42099        it calls CallNextHook to pass the message to the next hook procedure in the hook chain.
42100        
42101        Sometimes, the message can get passed to another hook procedure that can dispatch another message. 
42102        This message gets passed back through the hook chain and we eventually re-enter the hookFired method.
42103
42104        When that hookFired call completes, it may remove the hook. 
42105        When CallNextHook returns, the original call to hookFired may try to remove the hook as well. 
42106        However, there is no need as the hook as already been removed.
42107        This results in an assertion failure, assert(m_hook), when we call removeHook.
42108
42109        * platform/graphics/ca/win/LayerChangesFlusher.cpp:
42110        (WebCore::LayerChangesFlusher::hookFired):
42111        Simply check to see if the hook has already been removed before actually trying to remove it.
42112
421132012-08-24  James Robinson  <jamesr@chromium.org>
42114
42115        [chromium] Clean up dependencies of WebScrollbar and WebScrollbarLayer
42116        https://bugs.webkit.org/show_bug.cgi?id=94996
42117
42118        Reviewed by Adrienne Walker.
42119
42120        Moves WebScrollbarImpl into WebCore/platform/support to make it accessible to chromium-specific WebCore code and
42121        uses it to construct WebScrollbar instances around WebCore::Scrollbars.
42122
42123        * WebCore.gypi:
42124        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
42125        (WebCore::createScrollbarLayer):
42126        * platform/chromium/support/WebScrollbarImpl.cpp: Renamed from Source/WebKit/chromium/src/WebScrollbarImpl.cpp.
42127        (WebKit):
42128        (WebKit::WebScrollbarImpl::WebScrollbarImpl):
42129        (WebKit::WebScrollbarImpl::isOverlay):
42130        (WebKit::WebScrollbarImpl::value):
42131        (WebKit::WebScrollbarImpl::location):
42132        (WebKit::WebScrollbarImpl::size):
42133        (WebKit::WebScrollbarImpl::enabled):
42134        (WebKit::WebScrollbarImpl::maximum):
42135        (WebKit::WebScrollbarImpl::totalSize):
42136        (WebKit::WebScrollbarImpl::isScrollViewScrollbar):
42137        (WebKit::WebScrollbarImpl::isScrollableAreaActive):
42138        (WebKit::WebScrollbarImpl::getTickmarks):
42139        (WebKit::WebScrollbarImpl::controlSize):
42140        (WebKit::WebScrollbarImpl::pressedPart):
42141        (WebKit::WebScrollbarImpl::hoveredPart):
42142        (WebKit::WebScrollbarImpl::scrollbarOverlayStyle):
42143        (WebKit::WebScrollbarImpl::orientation):
42144        (WebKit::WebScrollbarImpl::isCustomScrollbar):
42145        * platform/chromium/support/WebScrollbarImpl.h: Renamed from Source/WebKit/chromium/src/WebScrollbarImpl.h.
42146        (WebCore):
42147        (WebKit):
42148        (WebScrollbarImpl):
42149
421502012-08-27  Tony Chang  <tony@chromium.org>
42151
42152        Make RenderBox::computePositionedLogicalHeight const
42153        https://bugs.webkit.org/show_bug.cgi?id=94984
42154
42155        Reviewed by Ojan Vafai.
42156
42157        This is step 1 in making computeLogical{Height,Width} const.
42158        computeLogicalHeight calls computePositionedLogicalHeight, so this patch
42159        makes that const first.
42160
42161        No new tests, just refactoring.  Covered by fast/block/positioning/differing-writing-modes-replaced.html
42162        and others.
42163
42164        * rendering/RenderBox.cpp:
42165        (WebCore::RenderBox::computeLogicalHeight): Call const version of computePositionedLogicalHeight.
42166        (WebCore::RenderBox::computePositionedLogicalHeight): Make const, fills in struct instead.
42167        (WebCore::RenderBox::computePositionedLogicalHeightUsing): Make const
42168        and pass in a LogicalExtentComputedValues struct instead of 4 separate args for the results.
42169        (WebCore::RenderBox::computePositionedLogicalHeightReplaced): Make const, fills in struct instead.
42170        * rendering/RenderBox.h:
42171        (WebCore::RenderBox::MarginsComputedValues::MarginsComputedValues):
42172        (MarginsComputedValues): Struct of just margins.  Not used yet, but will be for
42173        computeInlineDirectionMargins and computeBlockDirectionMargins.
42174        (WebCore::RenderBox::LogicalExtentComputedValues::LogicalExtentComputedValues):
42175        (LogicalExtentComputedValues): Struct to be used by computeLogical{Width,Height}. Only used by
42176        computeLogicalHeight so far.
42177
421782012-08-27  Rob Buis  <rbuis@rim.com>
42179
42180        Fix compiler warnings in TextureMapperLayer.cpp
42181        https://bugs.webkit.org/show_bug.cgi?id=95128
42182
42183        Reviewed by Noam Rosenthal.
42184
42185        Fix the warnings caused by -Wsign-compare.
42186
42187        * platform/graphics/texmap/TextureMapperLayer.cpp:
42188        (WebCore::TextureMapperLayer::paintSelfAndChildren):
42189        (WebCore::shouldKeepContentTexture):
42190
421912012-08-27  Adam Barth  <abarth@webkit.org>
42192
42193        [V8] Clean up reportFatalError in V8DOMWindowShell.cpp
42194        https://bugs.webkit.org/show_bug.cgi?id=95124
42195
42196        Reviewed by Eric Seidel.
42197
42198        We don't need a PLATFORM(CHROMIUM) ifdef because MemoryUsageSupport has
42199        a stub implementation on non-Chromium platforms. These comments are out
42200        of date. We've been "temporarily" calling CRASH here for as long as the
42201        bindings have existed and we don't plan to stop.
42202
42203        * bindings/v8/V8DOMWindowShell.cpp:
42204        (WebCore::reportFatalError):
42205
422062012-08-27  Adam Barth  <abarth@webkit.org>
42207
42208        [V8] Clean up V8DOMWindowShell's reportUncaughtException
42209        https://bugs.webkit.org/show_bug.cgi?id=95126
42210
42211        Reviewed by Eric Seidel.
42212
42213        This patch changes reportUncaughtException to operate in terms of a
42214        DOMWindow rather than a Frame. In general, the bindings should use
42215        DOMWindows rather than Frames because a DOMWindow is specific to a
42216        given Document whereas a Frame displays many Documents over its
42217        lifetime.
42218
42219        I've also updated some variable names to be more consistent with WebKit
42220        naming conventions.
42221
42222        * bindings/v8/V8DOMWindowShell.cpp:
42223        (WebCore::reportUncaughtException):
42224
422252012-08-27  Adam Barth  <abarth@webkit.org>
42226
42227        The static functions in V8DOMWindowShell.cpp are poorly named
42228        https://bugs.webkit.org/show_bug.cgi?id=95122
42229
42230        Reviewed by Eric Seidel.
42231
42232        This patch cleans up the naming of the static functions in
42233        V8DOMWindowShell.cpp.
42234
42235        I've inlined handleFatalErrorInV8 into its one caller.
42236
42237        * bindings/v8/V8DOMWindowShell.cpp:
42238        (WebCore::reportFatalError):
42239            - Removed V8 from the name becaues this entire file is about V8.
42240        (WebCore::reportUncaughtException):
42241            - Ditto.
42242        (WebCore::findFrame):
42243            - Remove the "get" prefix because it's a weak verb.
42244        (WebCore::reportUnsafeJavaScriptAccess):
42245        (WebCore::initializeV8IfNeeded):
42246        (WebCore::checkDocumentWrapper):
42247            - Move this function up to the top of the file with the rest of the
42248              static functions.
42249        (WebCore):
42250
422512012-08-27  Adam Barth  <abarth@webkit.org>
42252
42253        [V8] initContextIfNeeded is overly specific
42254        https://bugs.webkit.org/show_bug.cgi?id=95120
42255
42256        Reviewed by Eric Seidel.
42257
42258        This patch is part of a series to clean up V8DOMWindowShell.  This
42259        patch renames initContextIfNeeded to initializeIfNeeded because callers
42260        shouldn't need to worry about what V8DOMWindow needs to initialize.
42261
42262        * bindings/scripts/CodeGeneratorV8.pm:
42263        (GenerateToV8Converters):
42264        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
42265        (WebCore::V8TestActiveDOMObject::wrapSlow):
42266        * bindings/v8/ScriptController.cpp:
42267        (WebCore::ScriptController::evaluateInIsolatedWorld):
42268        (WebCore::ScriptController::mainWorldContext):
42269        (WebCore::ScriptController::matchesCurrentContext):
42270        * bindings/v8/V8DOMWindowShell.cpp:
42271        (WebCore::V8DOMWindowShell::initializeIfNeeded):
42272        (WebCore::V8DOMWindowShell::updateDocument):
42273        (WebCore::V8DOMWindowShell::namedItemAdded):
42274        (WebCore::V8DOMWindowShell::namedItemRemoved):
42275        * bindings/v8/V8DOMWindowShell.h:
42276        (V8DOMWindowShell):
42277        * bindings/v8/WorkerContextExecutionProxy.cpp:
42278        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
42279        (WebCore::WorkerContextExecutionProxy::evaluate):
42280        * bindings/v8/WorkerContextExecutionProxy.h:
42281        (WorkerContextExecutionProxy):
42282
422832012-08-27  Brian Salomon  <bsalomon@google.com>
42284
42285        [Skia/Chromium] Remove use of deprecated Skia names
42286        https://bugs.webkit.org/show_bug.cgi?id=95108
42287
42288        Reviewed by Eric Seidel.
42289
42290        kSkia8888_PM_GrPixelConfig has been deprecated in favor of kSkia8888_GrPixelConfig.
42291        SkGrTexturePixelRef has been deprecated in favor of SkGrPixelRef.
42292
42293        Covered by existing tests (image filter and canvas tests).
42294
42295        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
42296        (WebCore::createAcceleratedCanvas):
42297        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
42298        * platform/graphics/skia/ImageBufferSkia.cpp:
42299        (WebCore::createAcceleratedCanvas):
42300
423012012-08-27  Adrienne Walker  <enne@google.com>
42302
42303        [chromium] Unreviewed, remove OVERRIDE from non-virtual function.
42304        https://bugs.webkit.org/show_bug.cgi?id=94859
42305
42306        Unreviewed build fix.
42307
42308        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h:
42309        (CCScrollbarGeometryFixedThumb):
42310
423112012-08-27  Adrienne Walker  <enne@google.com>
42312
42313        [chromium] Prevent scrollbar thumb size from changing during compositor zoom
42314        https://bugs.webkit.org/show_bug.cgi?id=94859
42315
42316        Reviewed by James Robinson.
42317
42318        During a pinch zoom, the total size of a scrollable area will change,
42319        causing the thumb to become a different size. This will cause the
42320        thumb texture (painted at a specific size) to stretch. To fix this,
42321        add a new CCScrollbarGeometryFixedThumb class which behaves just like
42322        a normal WebScrollbarThemeGeometry class, but constrains the thumb to
42323        be a fixed size.
42324
42325        * WebCore.gypi:
42326        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
42327        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
42328        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp: Added.
42329        (WebCore):
42330        (WebCore::CCScrollbarGeometryFixedThumb::create):
42331        (WebCore::CCScrollbarGeometryFixedThumb::~CCScrollbarGeometryFixedThumb):
42332        (WebCore::CCScrollbarGeometryFixedThumb::update):
42333        (WebCore::CCScrollbarGeometryFixedThumb::clone):
42334        (WebCore::CCScrollbarGeometryFixedThumb::thumbLength):
42335        (WebCore::CCScrollbarGeometryFixedThumb::thumbPosition):
42336        (WebCore::CCScrollbarGeometryFixedThumb::splitTrack):
42337        (WebCore::CCScrollbarGeometryFixedThumb::CCScrollbarGeometryFixedThumb):
42338        * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h: Added.
42339        (WebCore):
42340        (CCScrollbarGeometryFixedThumb):
42341        * platform/graphics/chromium/cc/CCScrollbarGeometryStub.cpp: Added.
42342        (WebCore):
42343        (WebCore::CCScrollbarGeometryStub::CCScrollbarGeometryStub):
42344        (WebCore::CCScrollbarGeometryStub::~CCScrollbarGeometryStub):
42345        (WebCore::CCScrollbarGeometryStub::clone):
42346        (WebCore::CCScrollbarGeometryStub::thumbPosition):
42347        (WebCore::CCScrollbarGeometryStub::thumbLength):
42348        (WebCore::CCScrollbarGeometryStub::trackPosition):
42349        (WebCore::CCScrollbarGeometryStub::trackLength):
42350        (WebCore::CCScrollbarGeometryStub::hasButtons):
42351        (WebCore::CCScrollbarGeometryStub::hasThumb):
42352        (WebCore::CCScrollbarGeometryStub::trackRect):
42353        (WebCore::CCScrollbarGeometryStub::thumbRect):
42354        (WebCore::CCScrollbarGeometryStub::minimumThumbLength):
42355        (WebCore::CCScrollbarGeometryStub::scrollbarThickness):
42356        (WebCore::CCScrollbarGeometryStub::backButtonStartRect):
42357        (WebCore::CCScrollbarGeometryStub::backButtonEndRect):
42358        (WebCore::CCScrollbarGeometryStub::forwardButtonStartRect):
42359        (WebCore::CCScrollbarGeometryStub::forwardButtonEndRect):
42360        (WebCore::CCScrollbarGeometryStub::constrainTrackRectToTrackPieces):
42361        (WebCore::CCScrollbarGeometryStub::splitTrack):
42362        * platform/graphics/chromium/cc/CCScrollbarGeometryStub.h: Added.
42363        (WebCore):
42364        (CCScrollbarGeometryStub):
42365        (WebCore::CCScrollbarGeometryStub::update):
42366        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
42367        (WebCore::CCScrollbarLayerImpl::setScrollbarGeometry):
42368        (WebCore::CCScrollbarLayerImpl::setScrollbarData):
42369        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
42370        (WebCore::CCScrollbarLayerImpl::scrollbarGeometry):
42371        (CCScrollbarLayerImpl):
42372
423732012-08-27  Dana Jansens  <danakj@chromium.org>
42374
42375        [chromium] Have RenderSurface create and add its own generated RenderPass
42376        https://bugs.webkit.org/show_bug.cgi?id=94957
42377
42378        Reviewed by Adrienne Walker.
42379
42380        Have CCRenderSurface create and add its RenderPass to the appropriate
42381        data structures. Previously CCLayerTreeHostImpl had this responsibility
42382        but this limits us to a single RenderPass per RenderSurface. In ubercomp
42383        we have layers that generate many RenderPasses that all contribute to a
42384        single RenderSurface. This target RenderSurface can create all the needed
42385        RenderPasses in the correct order for itself when asked to now.
42386
42387        We invent CCRenderPassSink and make FrameData implement it, so that the
42388        RenderSurface does not need to know the details of how the RenderPasses
42389        it generates will be stored.
42390
42391        Test: CCRenderSurfaceTest.sanityCheckSurfaceCreatesCorrectRenderPass
42392
42393        * WebCore.gypi:
42394        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
42395        (WebCore::CCLayerTreeHostImpl::FrameData::appendRenderPass):
42396        (WebCore):
42397        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
42398        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
42399        (FrameData):
42400        * platform/graphics/chromium/cc/CCRenderPassSink.h: Added.
42401        (WebCore):
42402        (CCRenderPassSink):
42403        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
42404        (WebCore::CCRenderSurface::appendRenderPasses):
42405        (WebCore):
42406        * platform/graphics/chromium/cc/CCRenderSurface.h:
42407        (WebCore):
42408        (CCRenderSurface):
42409
424102012-08-27  Takashi Sakamoto  <tasak@google.com>
42411
42412        ShadowRoot insertion point change aborts css transition
42413        https://bugs.webkit.org/show_bug.cgi?id=93755
42414
42415        Reviewed by Hajime Morita.
42416
42417        ElementShadow always detaches shadow hosts when distribution is
42418        changed, i.e. select attribute's value is changed. However it clears
42419        the style of the shadow host. So when distribution is changed,
42420        no css transition can be started at the same time. To avoid this
42421        problem, invalidateDistribution, i.e. a method for invalidating current
42422        distribution, should not make shadow host reattach. Instead, it should
42423        make distribute nodes reattached and set needsRecalcStyle flag of
42424        shadow host.
42425
42426        Test: transitions/transition-on-shadow-host-with-distributed-node.html
42427
42428        * dom/ElementShadow.cpp:
42429        (WebCore::ElementShadow::addShadowRoot):
42430        To support replaced elements, i.e. IMG, and so on, shadow host's
42431        renderer must be updated when author shadow roots are addded.
42432        So invoke shadow host's reattach instead of shadowRoot's attach.
42433        (WebCore::ElementShadow::invalidateDistribution):
42434        Remove shadow host's lazy reattach (detach and lazyAttach). Instead, do
42435        distributed nodes' lazy reattach and set shadow host's needsRecalcStyle
42436        flag.
42437        * dom/Node.h:
42438        (WebCore::Node::lazyReattach):
42439        Newly added. The method works like Node::reattach, but use
42440        lazyAttach instead of attach.
42441        (WebCore):
42442
424432012-08-27  Justin Novosad  <junov@chromium.org>
42444
42445        [Chromium] Fixing infinite recursion in Canvas2DLayerManager
42446        https://bugs.webkit.org/show_bug.cgi?id=95110
42447
42448        Reviewed by Stephen White.
42449
42450        Fixed infinite recursion by not reporting a change in memory allocation
42451        when Canvas2DLayerBridge::freeMemoryIfPossible fails to free memory.
42452        Also modified Canvas2DLayerManager::layerAllocatedStorageChanged to
42453        only initiate a memory eviction pass if memory consumption has
42454        increased.
42455
42456        Test: webkit_unit_tests Canvas2DLayerManagerTest*
42457
42458        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
42459        (WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
42460        * platform/graphics/chromium/Canvas2DLayerManager.cpp:
42461        (WebCore::Canvas2DLayerManager::layerAllocatedStorageChanged):
42462
424632012-08-27  Anna Cavender  <annacc@chromium.org>
42464
42465        TextTrack modes are strings
42466        https://bugs.webkit.org/show_bug.cgi?id=85050
42467
42468        Reviewed by Eric Carlson.
42469
42470        The spec recently changed away from enumeration to string for the type
42471        of TextTrack mode.
42472        http://dev.w3.org/html5/spec/media-elements.html#texttrackmode
42473
42474        No new tests. Updates to existing tests.
42475
42476        * html/HTMLMediaElement.cpp:
42477
42478        Use the new string mode rather than the old enum.  Also, TextTrack::setMode()
42479        no longer requires an ExceptionCode:
42480        (WebCore::HTMLMediaElement::loadInternal):
42481        (WebCore::HTMLMediaElement::textTrackModeChanged):
42482        (WebCore::HTMLMediaElement::textTrackKindChanged):
42483        (WebCore::HTMLMediaElement::addTextTrack):
42484        (WebCore::HTMLMediaElement::showingTrackWithSameKind):
42485        (WebCore::HTMLMediaElement::configureTextTrackGroup):
42486        (WebCore::HTMLMediaElement::configureNewTextTracks):
42487        (WebCore::HTMLMediaElement::configureTextTrackDisplay):
42488
42489        * html/track/TextTrack.cpp:
42490
42491        Update these methods to use ConstructFromLiteral for efficiency:
42492        (WebCore::TextTrack::subtitlesKeyword):
42493        (WebCore::TextTrack::captionsKeyword):
42494        (WebCore::TextTrack::descriptionsKeyword):
42495        (WebCore::TextTrack::chaptersKeyword):
42496        (WebCore::TextTrack::metadataKeyword):
42497
42498        New methods to use for the mode string (replacing the enum):
42499        (WebCore::TextTrack::disabledKeyword):
42500        (WebCore::TextTrack::hiddenKeyword):
42501        (WebCore::TextTrack::showingKeyword):
42502
42503        (WebCore::TextTrack::TextTrack): Initialize mode to disabled.
42504        (WebCore::TextTrack::setMode): Remove ExceptionCode and no longer throw an
42505        INVALID_ACCESS_ERR.
42506        (WebCore::TextTrack::mode): Return a keyword string instead of an enum.
42507
42508        Use the new string mode rather than the old enum:
42509        (WebCore::TextTrack::cues):
42510        (WebCore::TextTrack::activeCues):
42511        (WebCore::TextTrack::isRendered):
42512
42513        * html/track/TextTrack.h: Remove old enum, add new string keyword methods,
42514        and update mode() and setMode() accordingly.
42515
42516        * html/track/TextTrack.idl: Remove old enum and make mode attribute be a string.
42517
42518        Use the new string mode rather than the old enum:
42519        * html/track/TextTrackCue.cpp:
42520        (WebCore::TextTrackCue::dispatchEvent):
42521        (WebCore::TextTrackCue::isActive):
42522
425232012-08-27  Mike West  <mkwst@chromium.org>
42524
42525        'self' in a CSP directive should match blob: and filesystem: URLs.
42526        https://bugs.webkit.org/show_bug.cgi?id=94918
42527
42528        Reviewed by Adam Barth.
42529
42530        'blob:' and 'filesystem:' URLs are same-origin with the page on which
42531        they were created. Currently, we're using the wrong URL for comparison
42532        when matching against CSP directive source lists. This patch adjusts the
42533        matching logic to compare against the blob's inner URL, rather than
42534        directly against the blob itself.
42535
42536        Tests: http/tests/security/contentSecurityPolicy/blob-urls-match-self.html
42537               http/tests/security/contentSecurityPolicy/filesystem-urls-match-self.html
42538               http/tests/security/contentSecurityPolicy/source-list-parsing-08.html
42539
42540        * page/ContentSecurityPolicy.cpp:
42541        (WebCore::CSPSourceList::matches):
42542            If we should use the inner URL of a given resource, extract it into
42543            a local variable, and pass that into CSPSource for comparison.
42544        * page/SecurityOrigin.cpp:
42545        (WebCore::SecurityOrigin::shouldUseInnerURL):
42546        (WebCore::SecurityOrigin::extractInnerURL):
42547            Move shouldUseInnerURL and extractInnerURL to SecurityOrigin's
42548            public signature.
42549        (WebCore::shouldTreatAsUniqueOrigin):
42550        (WebCore::SecurityOrigin::create):
42551        (WebCore::SecurityOrigin::isSecure):
42552            shouldUseInnerURL and extractInnerURL are now static methods of
42553            SecurityOrigin: updating calls to mathc.
42554        * page/SecurityOrigin.h:
42555
425562012-08-27  Kevin Funk  <kevin.funk@kdab.com>
42557
42558        Fix compilation when both OS(WINCE) and PLATFORM(QT) are true
42559        https://bugs.webkit.org/show_bug.cgi?id=95050
42560
42561        Reviewed by Simon Hausmann.
42562
42563        The compilation of NativeImagePtr.h breaks when both OS(WINCE) and PLATFORM(QT) are enabled.
42564        This patch fixes this.
42565
42566        * platform/graphics/NativeImagePtr.h:
42567
425682012-08-27  Tommy Widenflycht  <tommyw@google.com>
42569
42570        MediaStream API: Fix review comments from patch #93119
42571        https://bugs.webkit.org/show_bug.cgi?id=95064
42572
42573        Reviewed by Adam Barth.
42574
42575        Adding const to accessors.
42576
42577        Change covered by exisiting tests..
42578
42579        * Modules/mediastream/RTCIceCandidate.cpp:
42580        (WebCore::RTCIceCandidate::candidate):
42581        (WebCore::RTCIceCandidate::sdpMid):
42582        (WebCore::RTCIceCandidate::sdpMLineIndex):
42583        * Modules/mediastream/RTCIceCandidate.h:
42584        (RTCIceCandidate):
42585        * Modules/mediastream/RTCSessionDescription.cpp:
42586        (WebCore::RTCSessionDescription::create):
42587        (WebCore::RTCSessionDescription::type):
42588        (WebCore::RTCSessionDescription::sdp):
42589        * Modules/mediastream/RTCSessionDescription.h:
42590        (RTCSessionDescription):
42591
425922012-08-27  Simon Fraser  <simon.fraser@apple.com>
42593
42594        Make Force Repaint work with tiled backing store
42595        https://bugs.webkit.org/show_bug.cgi?id=95102
42596
42597        Reviewed by Dan Bernstein.
42598
42599        forceRepaint() didn't work correctly with tiled backing
42600        store, because it never actually caused a repaint on the tiles.
42601
42602        Fix by having the drawing area call forceRepaint() on
42603        the TileCache (via the TiledBacking interface), which
42604        just ends up as a setNeedsDisplay().
42605
42606        * WebCore.xcodeproj/project.pbxproj:
42607        * platform/graphics/TiledBacking.h:
42608        * platform/graphics/ca/mac/TileCache.h:
42609        * platform/graphics/ca/mac/TileCache.mm:
42610        (WebCore::TileCache::forceRepaint):
42611
426122012-08-27  Victor Carbune  <victor@rosedu.org>
42613
42614        Crash when trying to render empty cues
42615        https://bugs.webkit.org/show_bug.cgi?id=94776
42616
42617        Reviewed by Eric Carlson.
42618
42619        Added extra safety checks.
42620
42621        Test: media/track/track-cue-rendering-empty-cue-crash.html
42622
42623        * html/track/TextTrackCue.cpp:
42624        (WebCore::TextTrackCue::getCueAsHTML):
42625        (WebCore::TextTrackCue::updateDisplayTree):
42626
426272012-08-24  Simon Fraser  <simon.fraser@apple.com>
42628
42629        Implement sticky positioning
42630        https://bugs.webkit.org/show_bug.cgi?id=90046
42631
42632        Reviewed by Ojan Vafai.
42633
42634        Initial implementation of position: -webkit-sticky, which 
42635        constrains an element to be positioned inside the intersection
42636        of its container box, and the viewport. Sticky elements create
42637        stacking context.
42638        
42639        A stickily positioned element behaves like position:relative
42640        (space is reserved for it in-flow), but with an offset that is
42641        determined by the sticky position. Changed isInFlowPositioned()
42642        to cover relative and sticky.
42643        
42644        Added a convenience isPositioned() to RenderObject(), which
42645        is true for an object with any non-static position value.
42646        
42647        Tests: fast/css/sticky/inflow-sticky.html
42648               fast/css/sticky/inline-sticky-abspos-child.html
42649               fast/css/sticky/inline-sticky.html
42650               fast/css/sticky/replaced-sticky.html
42651               fast/css/sticky/sticky-as-positioning-container.html
42652               fast/css/sticky/sticky-left-percentage.html
42653               fast/css/sticky/sticky-left.html
42654               fast/css/sticky/sticky-margins.html
42655               fast/css/sticky/sticky-side-margins.html
42656               fast/css/sticky/sticky-stacking-context.html
42657               fast/css/sticky/sticky-top-margins.html
42658               fast/css/sticky/sticky-top.html
42659               fast/css/sticky/sticky-writing-mode-horizontal-bt.html
42660               fast/css/sticky/sticky-writing-mode-vertical-lr.html
42661               fast/css/sticky/sticky-writing-mode-vertical-rl.html
42662
42663        * css/StyleResolver.cpp:
42664        (WebCore::StyleResolver::adjustRenderStyle): Have position:sticky
42665        create stacking context from the get-go, to make scrolling optimizations easier later.
42666        * page/FrameView.cpp:
42667        (WebCore::FrameView::scrollContentsFastPath): Use hasViewportConstrainedPosition().
42668        * page/FrameView.h: FrameView's "fixed" objects contains both fixed and sticky objects now.
42669        * rendering/RenderBlock.cpp: Use isPositioned().
42670        (WebCore::RenderBlock::isSelectionRoot):
42671        (WebCore::RenderBlock::renderName):
42672        * rendering/RenderBox.cpp:
42673        (WebCore::RenderBox::styleWillChange): Need to look for both stick and fixed positioning to
42674        determine whether to add something to FrameView's fixed object set.
42675        (WebCore::RenderBox::computeRectForRepaint): Need to take the sticky offset into account
42676        when computing repaint rects.
42677        * rendering/RenderBox.h: Implement frameRectForStickyPositioning() for boxes.
42678        * rendering/RenderBoxModelObject.cpp:
42679        (WebCore::RenderBoxModelObject::updateBoxModelInfoFromStyle):
42680        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
42681        (WebCore::RenderBoxModelObject::stickyPositionOffset): Compute the sticky position
42682        offset by taking into account the viewport rect, and the conteriner's contentRect
42683        inset by its margins.
42684        (WebCore::RenderBoxModelObject::offsetForInFlowPosition): Convenience wrapper
42685        for getting relative or sticky offset.
42686        * rendering/RenderBoxModelObject.h: Have requiresLayer() use isPositioned().
42687        (WebCore::RenderBoxModelObject::stickyPositionLogicalOffset):
42688        * rendering/RenderInline.cpp:
42689        (WebCore::RenderInline::styleWillChange): Need to implement this to 
42690        add/remove objects from FrameView's fixed object list, since, prior to sticky,
42691        only boxes could be fixed.
42692        (WebCore::RenderInline::renderName):
42693        (WebCore::RenderInline::positionForPoint):
42694        (WebCore::RenderInline::computeRectForRepaint):
42695        * rendering/RenderInline.h:
42696        * rendering/RenderLayer.cpp:
42697        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Have to look for fixed or sticky.
42698        (WebCore::RenderLayer::calculateClipRects): Use isPositioned().
42699        (WebCore::RenderLayer::shouldBeNormalFlowOnly): Ditto.
42700        * rendering/RenderLayer.h:
42701        * rendering/RenderObject.cpp:
42702        (WebCore::RenderObject::styleWillChange):
42703        (WebCore::RenderObject::propagateStyleToAnonymousChildren): Should use isInFlowPositioned(),
42704        not just isRelPositioned().
42705        (WebCore::RenderObject::offsetParent): Use isPositioned().
42706        * rendering/RenderObject.h:
42707        (WebCore::RenderObject::isInFlowPositioned):
42708        (WebCore::RenderObject::isStickyPositioned):
42709        (WebCore::RenderObject::setStickyPositioned):
42710        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
42711        (RenderObjectBitfields):
42712        * rendering/RenderStyle.h: add hasViewportConstrainedPosition() for fixed or sticky position.
42713
427142012-08-27  Julien Chaffraix  <jchaffraix@webkit.org>
42715
42716        Unreviewed Mac Chromium build fix after r126763.
42717
42718        * platform/graphics/Font.cpp:
42719
427202012-08-25  Antonio Gomes  <agomes@rim.com>
42721
42722        For convenience, make RenderLayer::enclosingElement a public method.
42723        https://bugs.webkit.org/show_bug.cgi?id=95018
42724
42725        Reviewed by George Staikos.
42726
42727        ... this way some platform specific code could make use of it
42728        and remove code duplications.
42729
42730        No new tests needed.
42731
42732        * rendering/RenderLayer.h:
42733        (RenderLayer):
42734
427352012-08-27  Andrey Kosyakov  <caseq@chromium.org>
42736
42737        Web Inspector: display a dimmed warning icon on a timeline record if it has children with warning
42738        https://bugs.webkit.org/show_bug.cgi?id=95087
42739
42740        Reviewed by Yury Semikhatsky.
42741
42742        Propagate warning from child timeline records to the top, display a dimmed warning icons for records
42743        that have children with warnings.
42744
42745        * inspector/front-end/TimelinePanel.js:
42746        (WebInspector.TimelineRecordListRow.prototype.update):
42747        * inspector/front-end/TimelinePresentationModel.js:
42748        (WebInspector.TimelinePresentationModel.Record):
42749        (WebInspector.TimelinePresentationModel.Record.prototype.get aggregatedStats):
42750        (WebInspector.TimelinePresentationModel.Record.prototype.setHasWarning):
42751        * inspector/front-end/timelinePanel.css:
42752        (.timeline-tree-item.child-warning::after):
42753
427542012-08-27  Vsevolod Vlasov  <vsevik@chromium.org>
42755
42756        Web Inspector: Debugger should break on failed assertions in Break on exceptions mode.
42757        https://bugs.webkit.org/show_bug.cgi?id=95088
42758
42759        Reviewed by Yury Semikhatsky.
42760
42761        Debugger now breaks when assert message is added to console from console API.
42762
42763        Test: inspector/debugger/debugger-pause-on-failed-assertion.html
42764
42765        * English.lproj/localizedStrings.js:
42766        * inspector/Inspector.json:
42767        * inspector/InspectorDebuggerAgent.cpp:
42768        (WebCore::InspectorDebuggerAgent::addMessageToConsole):
42769        (WebCore):
42770        * inspector/InspectorDebuggerAgent.h:
42771        (InspectorDebuggerAgent):
42772        * inspector/InspectorInstrumentation.cpp:
42773        (WebCore):
42774        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
42775        * inspector/front-end/DebuggerModel.js:
42776        * inspector/front-end/ScriptsPanel.js:
42777
427782012-08-27  Ned Holbrook  <nholbrook@apple.com>
42779
42780        Improve line breaking performance for complex text
42781        https://bugs.webkit.org/show_bug.cgi?id=83045
42782
42783        Reviewed by Darin Adler.
42784
42785        Currently RenderBlock::LineBreaker::nextLineBreak assumes that measuring individual words is as cheap
42786        as free. This is not the case when dealing with complex text, which benefits from laying out as much
42787        text as possible and by reusing that layout when feasible: by doing so this patch improves line
42788        breaking by 25% as measured with a simple test app.
42789
42790        The bulk of this change is modifying ComplexTextController::advance, which previously required the
42791        text offset to be strictly increasing and assumed unidirectional text; now it supports random seeking
42792        in a naive fashion (by restarting to the beginning) and traverses glyphs in logical order. In the
42793        latter case, the presence of any non-LTR runs triggers the population of a mapping from logical to
42794        visual run indices. Finally, a new flag has been added which inhibits glyph advances from being split
42795        across ligatures (thus causing spurious line breaks).
42796
42797        A ComplexTextController and its associated TextRun and Font are encapsulated in a TextLayout object,
42798        which is instantiated as an opaque object via functions that are no-ops unless building for Mac. A
42799        static member function (isNeeded) checks to see whether a TextRun is complex, in order to avoid
42800        needless instantiation. It also bails if tabs would be enabled since positional effects are not yet
42801        handled in this mode.
42802
42803        No behavioral changes are expected due to this change, so no new tests.
42804
42805        * platform/graphics/Font.cpp:
42806        (WTF): Define deleteOwnedPtr for TextLayout as calling through destroyLayout; relying on operator delete is not workable as the class does not exist on all platforms.
42807        (WTF::WebCore::TextLayout):
42808        (WebCore): Implement no-op TextLayout wrappers for non-Mac platforms.
42809        (WebCore::Font::createLayout):
42810        (WebCore::Font::deleteLayout):
42811        (WebCore::Font::width):
42812        * platform/graphics/Font.h:
42813        (WebCore): Add forward declarations for RenderText and TextLayout.
42814        (Font): Add functions for dealing with pointer to TextLayout implementation.
42815        (WTF): Declare deleteOwnedPtr for TextLayout.
42816        * platform/graphics/mac/ComplexTextController.cpp:
42817        (TextLayout): An instance of this class corresponds to a ComplexTextController for a particular TextRun.
42818        (WebCore::TextLayout::isNeeded): Used by wrapper to avoid instantiation when complex layout is not required.
42819        (WebCore::TextLayout::TextLayout):
42820        (WebCore::TextLayout::width):
42821        (WebCore::TextLayout::fontWithNoWordSpacing): Helper function to allow initialization of member variable.
42822        (WebCore::TextLayout::constructTextRun): Ditto.
42823        (WebCore): Implement real TextLayout wrappers for Mac.
42824        (WebCore::Font::createLayout):
42825        (WebCore::Font::deleteLayout):
42826        (WebCore::Font::width):
42827        (WebCore::ComplexTextController::ComplexTextController): Initialize m_ltrOnly and reserve initial capacity for m_runIndices.
42828        (WebCore::ComplexTextController::indexOfCurrentRun): Return (visual) m_complexTextRuns index corresponding to (logical) m_currentRun, lazily constructing m_runIndices if needed.
42829        (WebCore::ComplexTextController::incrementCurrentRun): Return next m_complexTextRuns index in logical order.
42830        (WebCore::ComplexTextController::advance): Allow restarting, support for bidi reordering, and option to measure only whole glyphs rather than dividing advances.
42831        (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Clear m_ltrOnly on detecting a RTL run.
42832        * platform/graphics/mac/ComplexTextController.h:
42833        (ComplexTextController): Add m_ltrOnly indicating no bidi reordering, and m_runIndices mapping from runs (logical order) to m_complexTextRuns (visual order).
42834        (WebCore::ComplexTextController::ComplexTextRun::indexBegin):
42835        (WebCore::ComplexTextController::ComplexTextRun::isLTR):
42836        (ComplexTextRun): Add helper functions returning values pertinent to individual runs as opposed to the entire containing line.
42837        (WebCore::ComplexTextController::stringBegin): Return first string index.
42838        (WebCore::ComplexTextController::stringEnd): Return one past last string index.
42839        * platform/graphics/mac/ComplexTextControllerCoreText.mm: Initialize m_indexBegin and m_ltr.
42840        (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Initialize m_indexBegin and m_ltr.
42841        * rendering/RenderBlock.h:
42842        (RenderTextInfo): Add single mapping from RenderText to LazyLineBreakIterator and (possibly null) TextLayout since they are recreated under the same circumstances.
42843        * rendering/RenderBlockLineLayout.cpp:
42844        (WebCore::RenderBlock::RenderTextInfo::RenderTextInfo): Make non-inline to avoid compilation errors.
42845        (WebCore::RenderBlock::RenderTextInfo::~RenderTextInfo): Ditto.
42846        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Allow RenderTextInfo to be reused across calls to nextLineBreak.
42847        (WebCore::textWidth): Use TextLayout when supplied for measuring.
42848        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
42849
428502012-08-27  Nico Weber  <thakis@chromium.org>
42851
42852        Add two missing variable initializers to RenderFlowThread
42853        https://bugs.webkit.org/show_bug.cgi?id=95048
42854
42855        Reviewed by Julien Chaffraix.
42856
42857        The m_dispatchRegionLayoutUpdateEvent change is needed to fix this
42858        valgrind warning:
42859        Conditional jump or move depends on uninitialised value(s)
42860          WebCore::RenderFlowThread::layout() (third_party/WebKit/Source/WebCore/rendering/RenderFlowThread.cpp:189)
42861          WebCore::RenderObject::layoutIfNeeded() (third_party/WebKit/Source/WebCore/rendering/RenderObject.h:647)
42862          WebCore::FlowThreadController::layoutRenderNamedFlowThreads() (third_party/WebKit/Source/WebCore/rendering/FlowThreadController.cpp:124)
42863          WebCore::RenderView::layout() (third_party/WebKit/Source/WebCore/rendering/RenderView.cpp:159)
42864          WebCore::FrameView::layout(bool) (third_party/WebKit/Source/WebCore/page/FrameView.cpp:1154)
42865          WebCore::FrameView::layoutTimerFired(WebCore::Timer<WebCore::FrameView>*) (third_party/WebKit/Source/WebCore/page/FrameView.cpp:2074)
42866          WebCore::Timer<WebCore::FrameView>::fired() (third_party/WebKit/Source/WebCore/platform/Timer.h:100)
42867          WebCore::ThreadTimers::sharedTimerFiredInternal() (third_party/WebKit/Source/WebCore/platform/ThreadTimers.cpp:115)
42868          WebCore::ThreadTimers::sharedTimerFired() (third_party/WebKit/Source/WebCore/platform/ThreadTimers.cpp:93)
42869          webkit_glue::WebKitPlatformSupportImpl::DoTimeout() (./webkit/glue/webkitplatformsupport_impl.h:163)
42870        The report came from the `fast/regions/absolute-pos-elem-in-named-flow.html'--pixel-test` test.
42871
42872        m_dispatchRegionLayoutUpdateEvent was added in https://bugs.webkit.org/show_bug.cgi?id=88778
42873        by abucur, reviewed by abarth.
42874
42875        While here, also initialize m_hasRegionsWithStyling, added in https://bugs.webkit.org/show_bug.cgi?id=85633
42876        by mihnea, reviewed by hyatt.
42877
42878        * rendering/RenderFlowThread.cpp:
42879        (WebCore::RenderFlowThread::RenderFlowThread):
42880
428812012-08-27  Justin Novosad  <junov@chromium.org>
42882
42883        [Chromium] Implementing a global limit on memory consumed by deferred 2D canvases
42884        https://bugs.webkit.org/show_bug.cgi?id=94386
42885
42886        Reviewed by Stephen White.
42887
42888        Before this change, there was no global bound on memory that could be
42889        consumed for the purpose of recording 2d canvas deferred draw commands.
42890        There was only a per canvas limit. It is possible for canvases to get
42891        dereferenced without flushing pending draw commands, which may lock
42892        resources until the canvas element is garbage collected. This makes
42893        it possible to grow memory consumption indefinitely by hitting reload
42894        successively on some canvas-intensive web pages.
42895
42896        The solution implemented in this change consists in maintaining a
42897        global registry of deferred canvas layers and tracking the sum of
42898        memory allocated by all canvases for the purpose of storing deferred
42899        draw commands. When memory consumption reaches the allowed limit,
42900        caches are cleared and draw operations are flushed on one or several
42901        canvases, starting with the least recently used, until memory
42902        consumption is below a target level.
42903
42904        New tests: webkit_unit_tests DeferredLayerManagerTest*
42905
42906        * WebCore.gypi:
42907        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
42908        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
42909        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
42910        (WebCore::Canvas2DLayerBridge::storageAllocatedForRecordingChanged):
42911        Overloaded from SkDeferredCanvas::NotificationClient. Called when
42912        there is a change in the number of bytes allocated by the deferred
42913        canvas.
42914        (WebCore):
42915        (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
42916        Overloaded from SkDeferredCanvas::NotificationClient. Called when
42917        pending draw commands are flush by the deferred canvas.
42918        (WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
42919        Called by the Canvas2DLayerManager to request the release of unlocked
42920        memory resources (caches). Request is relayed to SkDeferredCanvas.
42921        returns number of bytes freed.
42922        (WebCore::Canvas2DLayerBridge::flush):
42923        Requests that pending draw commands be flushed immediately from the
42924        deferred canvas queue. Request is relayed to SkDeferredCanvas.
42925        (WebCore::Canvas2DLayerBridge::contextAcquired):
42926        * platform/graphics/chromium/Canvas2DLayerBridge.h:
42927        (Canvas2DLayerBridge):
42928        (WebCore::Canvas2DLayerBridge::bytesAllocated):
42929        (WebCore::Canvas2DLayerBridge::updateBytesAllocated):
42930        * platform/graphics/chromium/Canvas2DLayerManager.cpp: Added.
42931        (WebCore):
42932        (WebCore::Canvas2DLayerManager::Canvas2DLayerManager):
42933        (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
42934        (WebCore::Canvas2DLayerManager::init):
42935        Sets the global limit for the maximum total number of bytes allocated
42936        by deferred layers.
42937        (WebCore::Canvas2DLayerManager::get):
42938        Singleton accessor
42939        (WebCore::Canvas2DLayerManager::layerDidDraw):
42940        Called by Canvas2DLayerBridge to indicate that the layer was drawn to.
42941        (WebCore::Canvas2DLayerManager::addLayerToList):
42942        (WebCore::Canvas2DLayerManager::layerAllocatedStorageChanged):
42943        Called by Canvas2DLayerBridge to indicate thet the memory consumed by
42944        the layer has changed.
42945        (WebCore::Canvas2DLayerManager::layerDidFlush):
42946        Called by Canvas2DLayerBridge to indicated that the pending draw
42947        commands of the layer were flushed.
42948        (WebCore::Canvas2DLayerManager::layerToBeDestroyed):
42949        Called by Canvas2DLayerBridge upon destruction.
42950        (WebCore::Canvas2DLayerManager::freeMemoryIfNecessary):
42951        Called internally. Check that current memory consumption is below
42952        the tolerated limit.  If check fails, intiates resource releases.
42953        (WebCore::Canvas2DLayerManager::removeLayerFromList):
42954        (WebCore::Canvas2DLayerManager::isInList):
42955        (WebCore::Canvas2DLayerManager::updateBytesAllocated):
42956        * platform/graphics/chromium/Canvas2DLayerManager.h: Added.
42957        (WebCore):
42958        (Canvas2DLayerManager):
42959
429602012-08-27  Zeno Albisser  <zeno@webkit.org>
42961
42962        Implement GraphicsSurface::paintToTextureMapper.
42963        https://bugs.webkit.org/show_bug.cgi?id=95077
42964
42965        Forward paintToTextureMapper call directly into
42966        GraphicsSurface. This allows getting rid of platform
42967        specific code in TextureMapperSurfaceBackingStore.
42968
42969        Reviewed by Noam Rosenthal.
42970
42971        * platform/graphics/surfaces/GraphicsSurface.cpp:
42972        (WebCore::GraphicsSurface::paintToTextureMapper):
42973        (WebCore):
42974        * platform/graphics/surfaces/GraphicsSurface.h:
42975        (WebCore):
42976        (GraphicsSurface):
42977        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42978        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
42979        (WebCore):
42980        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42981        (WebCore):
42982        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
42983        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
42984        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
42985
429862012-08-27  Ilya Tikhonovsky  <loislo@chromium.org>
42987
42988        Web Inspector: filter out weak references from retainers tree
42989        https://bugs.webkit.org/show_bug.cgi?id=95082
42990
42991        Reviewed by Yury Semikhatsky.
42992
42993        Weak references don't retain objects.
42994
42995        * inspector/front-end/HeapSnapshotGridNodes.js:
42996
429972012-08-27  Philippe Normand  <pnormand@igalia.com>
42998
42999        [GStreamer][Qt] WebAudio support
43000        https://bugs.webkit.org/show_bug.cgi?id=94806
43001
43002        Reviewed by Simon Hausmann.
43003
43004        Build fix after r126756 in which I forgot to add the new
43005        AudioBusQt.cpp file.
43006
43007        * platform/audio/qt/AudioBusQt.cpp: Added.
43008        (WebCore):
43009        (WebCore::AudioBus::loadPlatformResource):
43010
430112012-08-27  Philippe Normand  <pnormand@igalia.com>
43012
43013        [GStreamer][Qt] WebAudio support
43014        https://bugs.webkit.org/show_bug.cgi?id=94806
43015
43016        Reviewed by Simon Hausmann.
43017
43018        Build system changes to support WebAudio and its GStreamer
43019        backend. A new AudioBusQt implementation is also needed to locate
43020        and load local .wav files. Note: WebAudio is still disabled by default in
43021        build-webkit. Use --web-audio to explicitely enable it at build time.
43022
43023        * DerivedSources.pri:
43024        * Target.pri:
43025        * WebCore.pri:
43026        * WebCore.qrc:
43027        * platform/audio/HRTFElevation.cpp:
43028        (WebCore): Use concatenated HRTF impulse response for increased
43029        performance, just like GTK, Mac and EFL ports.
43030        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp: Undef the
43031        signals macro so gio.h can be properly included.
43032        * platform/audio/qt/AudioBusQt.cpp: Added.
43033        (WebCore):
43034        (WebCore::AudioBus::loadPlatformResource):
43035
430362012-08-27  Andreas Kling  <kling@webkit.org>
43037
43038        REGRESSION(r126524): Heap-buffer-overflow in WebCore::StylePropertySet::copyPropertiesFrom
43039        <http://webkit.org/b/95005>
43040
43041        Reviewed by Antti Koivisto.
43042
43043        Remove incorrect assertion that the StylePropertySet is empty before properties are copied
43044        into it, as this is no guarantee in editing code.
43045        This regressed when splitting the code into mutable/immutable paths. Covered by assertions
43046        on existing tests.
43047
43048        * css/StylePropertySet.cpp:
43049        (WebCore::StylePropertySet::copyPropertiesFrom):
43050
430512012-08-25  Andrey Kosyakov  <caseq@chromium.org>
43052
43053        Web Inspector: display cause for style recalculation and layout on Timeline
43054        https://bugs.webkit.org/show_bug.cgi?id=95000
43055
43056        Reviewed by Pavel Feldman.
43057
43058        Added instrumentation for didInvalidateLayout and didScheduleStyleRecalculation;
43059        Dispaly stacks of the above records in Layout and Recalculate Style as "call site" stacks (need a better wording?);
43060        Display synchronous Layout records in red, provide a warning that these may affect performance;
43061
43062        * English.lproj/localizedStrings.js: +"Note" and a warning test for sync layout;
43063        * inspector/InspectorInstrumentation.cpp: Plumbing new instrumentation methods through to timeline;
43064        (WebCore):
43065        (WebCore::InspectorInstrumentation::didInvalidateLayoutImpl):
43066        (WebCore::InspectorInstrumentation::didScheduleStyleRecalculationImpl):
43067        * inspector/InspectorInstrumentation.h: ditto.
43068        (InspectorInstrumentation):
43069        (WebCore::InspectorInstrumentation::didInvalidateLayout):
43070        (WebCore):
43071        * inspector/InspectorTimelineAgent.cpp: ditto.
43072        (TimelineRecordType):
43073        (WebCore::InspectorTimelineAgent::didInvalidateLayout):
43074        (WebCore):
43075        (WebCore::InspectorTimelineAgent::didScheduleStyleRecalculation):
43076        * inspector/InspectorTimelineAgent.h: ditto.
43077        (InspectorTimelineAgent):
43078        * inspector/front-end/TimelineModel.js:
43079        * inspector/front-end/TimelinePanel.js:
43080        (WebInspector.TimelineRecordListRow.prototype.update): Display records with warnings in their own style;
43081        * inspector/front-end/TimelinePresentationModel.js:
43082        (WebInspector.TimelinePresentationModel._initRecordStyles): Renamed, added new records;
43083        (WebInspector.TimelinePresentationModel.recordStyle): Added new records;
43084        (WebInspector.TimelinePresentationModel.prototype.reset):
43085        (WebInspector.TimelinePresentationModel.prototype._innerAddRecord): Add support for new records, make 'em hidden;
43086        (WebInspector.TimelinePresentationModel.Record): Add support for hidden records;
43087        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
43088        (WebInspector.TimelinePresentationModel.Record.prototype._linkifyTopCallFrame): Linkify originator's top frame if no own stack is present;
43089        * inspector/front-end/timelinePanel.css:
43090        (.timeline-tree-item.warning): Reddish text for records with warnings;
43091        * page/FrameView.cpp:
43092        (WebCore::FrameView::scheduleRelayout): Added call to InspectorInstrumentation::didInvalidateLayout()
43093        (WebCore::FrameView::scheduleRelayoutOfSubtree): Ditto.
43094
430952012-08-27  KyungTae Kim  <ktf.kim@samsung.com>
43096
43097        [EFL] Wrong button height on CSS tests
43098        https://bugs.webkit.org/show_bug.cgi?id=85494
43099
43100        Reviewed by Gyuyoung Kim.
43101        
43102        The codes for overriding styles for buttons must be removed 
43103        for passing the layout test 'fast/css/button-height.html'.
43104        
43105        The 'resetBorder' reset border style for a button (2px outset) to the initial value, 
43106        and it makes the size of <input type=button> different from the size of <button>.
43107        ('fast/css/button-height.html' checks whether they are same.)
43108        
43109        The 'setWhiteSpace' is not needed because the white space already set to 'PRE'.
43110        
43111        The 'setHeight' reset the 'height' style that should not be reset.
43112        ('fast/css/buttons-height.html' set the button's height style.)
43113        
43114        Tests : fast/css/button-height.html  
43115                fast/css/continuationCrash.html  
43116                fast/css/margin-top-bottom-dynamic.html  
43117                fast/css/rtl-ordering.html  
43118                fast/dom/HTMLTextAreaElement/reset-textarea.html  
43119                fast/forms/basic-buttons.html  
43120                fast/forms/blankbuttons.html  
43121                fast/forms/box-shadow-override.html  
43122                fast/forms/button-positioned.html  
43123                fast/forms/button-sizes.html  
43124                fast/forms/button-style-color.html  
43125                fast/forms/button-table-styles.html  
43126                fast/forms/button-text-transform.html  
43127                fast/forms/control-restrict-line-height.html  
43128                fast/forms/file/file-input-direction.html  
43129                fast/forms/file/file-input-disabled.html  
43130                fast/forms/formmove3.html  
43131                fast/forms/input-appearance-height.html  
43132                fast/forms/input-button-sizes.html  
43133                fast/forms/input-value.html  
43134                fast/forms/targeted-frame-submission.html  
43135                fast/html/details-replace-summary-child.html  
43136                fast/html/details-replace-text.html  
43137                fast/overflow/scroll-nested-positioned-layer-in-overflow.html  
43138                fast/overflow/scrollRevealButton.html  
43139                fast/replaced/replaced-breaking.html  
43140                fast/replaced/width100percent-button.html  
43141                fast/text/textIteratorNilRenderer.html  
43142  
43143        * platform/efl/RenderThemeEfl.cpp:  
43144        (WebCore::RenderThemeEfl::adjustButtonStyle): No longer override CSS properties for button styling.
43145
431462012-08-27  Alexander Pavlov  <apavlov@chromium.org>
43147
43148        Web Inspector: DOM tree search issue with quotation marks
43149        https://bugs.webkit.org/show_bug.cgi?id=95065
43150
43151        Reviewed by Pavel Feldman.
43152
43153        Introduced the exact match mode for attributes (query enclosed in double quotes) where only entire attribute values
43154        are matched against the search query (with the double quotes trimmed).
43155
43156        * inspector/InspectorDOMAgent.cpp:
43157        (WebCore::InspectorDOMAgent::performSearch):
43158
431592012-08-27  Andrey Adaikin  <aandrey@chromium.org>
43160
43161        Web Inspector: [WebGL] Implement serializing WebGL state and replaying it later
43162        https://bugs.webkit.org/show_bug.cgi?id=94933
43163
43164        Reviewed by Pavel Feldman.
43165
43166        This will allow us to save the WebGL state at any arbitrary point in order to replay a trace log later on another canvas.
43167        Main points of the change:
43168        - Allow every Resource and Call instances be serialized to a Replayable, and resurrected back during a replay on another canvas.
43169
43170        - Before executing an original WebGL call and saving it to a trace log, first serialize all the Resources that will be involved in
43171          this call, if they are not yet serialized. The latter part is implemented with a Cache instance, checking that we convert a Resource
43172          to a Replayable only once: the first time it was used in the trace log being collected. We do not need to serialize the subsequent
43173          changes to this Resource's state (if any), since they will be saved in the trace log being collected and replayed automatically.
43174
43175        - Some information about the WebGL state may be requested in the runtime (e.g. with the gl.getParameter method). We use this wherever
43176          possible instead of collecting Calls in a Resource log. Otherwise, we have to collect WebGL calls (like gl.texImage2D) in order to
43177          replay them later.
43178
43179        - Later the Replayable objects hierarchy (the TraceLog) may be serialized further for cross-device transmission, for example.
43180        
43181
43182        * inspector/InjectedScriptWebGLModuleSource.js:
43183        (.):
43184
431852012-08-27  Sheriff Bot  <webkit.review.bot@gmail.com>
43186
43187        Unreviewed, rolling out r126694 and r126731.
43188        http://trac.webkit.org/changeset/126694
43189        http://trac.webkit.org/changeset/126731
43190        https://bugs.webkit.org/show_bug.cgi?id=95069
43191
43192        Causes all pages to be rendered as a completely black page in
43193        Qt WebKit2 (Requested by carewolf on #webkit).
43194
43195        * platform/graphics/GraphicsContext3D.h:
43196        * platform/graphics/texmap/TextureMapperGL.cpp:
43197        (SharedGLData):
43198        (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
43199        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
43200        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
43201        (WebCore::TextureMapperGLData::sharedGLData):
43202        (WebCore::TextureMapperGLData::TextureMapperGLData):
43203        (TextureMapperGLData):
43204        (WebCore::scissorClip):
43205        (WebCore::TextureMapperGL::ClipStack::apply):
43206        (WebCore::TextureMapperGLData::initializeStencil):
43207        (WebCore::TextureMapperGL::TextureMapperGL):
43208        (WebCore::TextureMapperGL::beginPainting):
43209        (WebCore::TextureMapperGL::endPainting):
43210        (WebCore::TextureMapperGL::drawQuad):
43211        (WebCore::TextureMapperGL::drawBorder):
43212        (WebCore):
43213        (WebCore::TextureMapperGL::drawTextureRectangleARB):
43214        (WebCore::TextureMapperGL::drawTexture):
43215        (WebCore::viewportMatrix):
43216        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
43217        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
43218        (WebCore::BitmapTextureGL::didReset):
43219        (WebCore::BitmapTextureGL::updateContents):
43220        (WebCore::TextureMapperGL::drawFiltered):
43221        (WebCore::BitmapTextureGL::initializeStencil):
43222        (WebCore::BitmapTextureGL::clearIfNeeded):
43223        (WebCore::BitmapTextureGL::createFboIfNeeded):
43224        (WebCore::BitmapTextureGL::bind):
43225        (WebCore::BitmapTextureGL::~BitmapTextureGL):
43226        (WebCore::TextureMapperGL::bindDefaultSurface):
43227        (WebCore::TextureMapperGL::beginScissorClip):
43228        (WebCore::TextureMapperGL::beginClip):
43229        (WebCore::TextureMapperGL::endClip):
43230        (WebCore::TextureMapperGL::createTexture):
43231        * platform/graphics/texmap/TextureMapperGL.h:
43232        (TextureMapperGL):
43233        (ClipStack):
43234        (WebCore::BitmapTextureGL::textureTarget):
43235        (BitmapTextureGL):
43236        (WebCore::BitmapTextureGL::BitmapTextureGL):
43237        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
43238        (WebCore):
43239        (WebCore::TextureMapperShaderManager::getShaderProgram):
43240        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
43241        (WebCore::TextureMapperShaderProgram::initializeProgram):
43242        (WebCore::TextureMapperShaderProgram::getUniformLocation):
43243        (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
43244        (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple):
43245        (WebCore::TextureMapperShaderProgramSolidColor::TextureMapperShaderProgramSolidColor):
43246        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
43247        (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
43248        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::TextureMapperShaderProgramRectOpacityAndMask):
43249        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::TextureMapperShaderProgramAntialiasingNoMask):
43250        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
43251        (WebCore::StandardFilterProgram::~StandardFilterProgram):
43252        (WebCore::StandardFilterProgram::StandardFilterProgram):
43253        (WebCore::StandardFilterProgram::create):
43254        (WebCore::StandardFilterProgram::prepare):
43255        (WebCore::TextureMapperShaderManager::getShaderForFilter):
43256        * platform/graphics/texmap/TextureMapperShaderManager.h:
43257        (WebCore::TextureMapperShaderProgram::id):
43258        (WebCore::TextureMapperShaderProgram::vertexAttrib):
43259        (TextureMapperShaderProgram):
43260        (WebCore::TextureMapperShaderProgram::matrixLocation):
43261        (WebCore::TextureMapperShaderProgram::flipLocation):
43262        (WebCore::TextureMapperShaderProgram::textureSizeLocation):
43263        (WebCore::TextureMapperShaderProgram::sourceTextureLocation):
43264        (WebCore::TextureMapperShaderProgram::maskTextureLocation):
43265        (WebCore::TextureMapperShaderProgram::opacityLocation):
43266        (WebCore::TextureMapperShaderProgram::isValidUniformLocation):
43267        (StandardFilterProgram):
43268        (WebCore::StandardFilterProgram::vertexAttrib):
43269        (WebCore::StandardFilterProgram::texCoordAttrib):
43270        (WebCore::StandardFilterProgram::textureUniform):
43271        (WebCore::TextureMapperShaderProgramSimple::create):
43272        (TextureMapperShaderProgramSimple):
43273        (WebCore::TextureMapperShaderProgramRectSimple::create):
43274        (WebCore::TextureMapperShaderProgramOpacityAndMask::create):
43275        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::create):
43276        (WebCore::TextureMapperShaderProgramSolidColor::create):
43277        (WebCore::TextureMapperShaderProgramSolidColor::colorLocation):
43278        (TextureMapperShaderProgramSolidColor):
43279        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::create):
43280        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadVerticesInTextureCoordinatesLocation):
43281        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadEdgesInScreenSpaceLocation):
43282        (TextureMapperShaderProgramAntialiasingNoMask):
43283
432842012-08-27  Ilya Tikhonovsky  <loislo@chromium.org>
43285
43286        Web Inspector: HeapSnapshot: filter weak links in markQueriableHeapObjects and two other minor fixes.
43287        https://bugs.webkit.org/show_bug.cgi?id=95068
43288
43289        Reviewed by Yury Semikhatsky.
43290
43291        - count shortcuts as normal links in distance;
43292        shortcuts help us to show object properties without exposing internal scope object
43293        - set initial distance to 1 instead of 0
43294        the initial value for window was 0 and bfs counted the window object as not visited.
43295
43296        * inspector/front-end/HeapSnapshot.js:
43297        (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
43298        (WebInspector.HeapSnapshot.prototype._bfs):
43299        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
43300
433012012-08-27  Sheriff Bot  <webkit.review.bot@gmail.com>
43302
43303        Unreviewed, rolling out r126694 and r126731.
43304        http://trac.webkit.org/changeset/126694
43305        http://trac.webkit.org/changeset/126731
43306        https://bugs.webkit.org/show_bug.cgi?id=95069
43307
43308        Causes all pages to be rendered as a completely black page in
43309        Qt WebKit2 (Requested by carewolf on #webkit).
43310
43311        * platform/graphics/GraphicsContext3D.h:
43312        * platform/graphics/texmap/TextureMapperGL.cpp:
43313        (SharedGLData):
43314        (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
43315        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
43316        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
43317        (WebCore::TextureMapperGLData::sharedGLData):
43318        (WebCore::TextureMapperGLData::TextureMapperGLData):
43319        (TextureMapperGLData):
43320        (WebCore::scissorClip):
43321        (WebCore::TextureMapperGL::ClipStack::apply):
43322        (WebCore::TextureMapperGLData::initializeStencil):
43323        (WebCore::TextureMapperGL::TextureMapperGL):
43324        (WebCore::TextureMapperGL::beginPainting):
43325        (WebCore::TextureMapperGL::endPainting):
43326        (WebCore::TextureMapperGL::drawQuad):
43327        (WebCore::TextureMapperGL::drawBorder):
43328        (WebCore):
43329        (WebCore::TextureMapperGL::drawTextureRectangleARB):
43330        (WebCore::TextureMapperGL::drawTexture):
43331        (WebCore::viewportMatrix):
43332        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
43333        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
43334        (WebCore::BitmapTextureGL::didReset):
43335        (WebCore::BitmapTextureGL::updateContents):
43336        (WebCore::TextureMapperGL::drawFiltered):
43337        (WebCore::BitmapTextureGL::initializeStencil):
43338        (WebCore::BitmapTextureGL::clearIfNeeded):
43339        (WebCore::BitmapTextureGL::createFboIfNeeded):
43340        (WebCore::BitmapTextureGL::bind):
43341        (WebCore::BitmapTextureGL::~BitmapTextureGL):
43342        (WebCore::TextureMapperGL::bindDefaultSurface):
43343        (WebCore::TextureMapperGL::beginScissorClip):
43344        (WebCore::TextureMapperGL::beginClip):
43345        (WebCore::TextureMapperGL::endClip):
43346        (WebCore::TextureMapperGL::createTexture):
43347        * platform/graphics/texmap/TextureMapperGL.h:
43348        (TextureMapperGL):
43349        (ClipStack):
43350        (WebCore::BitmapTextureGL::textureTarget):
43351        (BitmapTextureGL):
43352        (WebCore::BitmapTextureGL::BitmapTextureGL):
43353        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
43354        (WebCore):
43355        (WebCore::TextureMapperShaderManager::getShaderProgram):
43356        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
43357        (WebCore::TextureMapperShaderProgram::initializeProgram):
43358        (WebCore::TextureMapperShaderProgram::getUniformLocation):
43359        (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
43360        (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple):
43361        (WebCore::TextureMapperShaderProgramSolidColor::TextureMapperShaderProgramSolidColor):
43362        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
43363        (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
43364        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::TextureMapperShaderProgramRectOpacityAndMask):
43365        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::TextureMapperShaderProgramAntialiasingNoMask):
43366        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
43367        (WebCore::StandardFilterProgram::~StandardFilterProgram):
43368        (WebCore::StandardFilterProgram::StandardFilterProgram):
43369        (WebCore::StandardFilterProgram::create):
43370        (WebCore::StandardFilterProgram::prepare):
43371        (WebCore::TextureMapperShaderManager::getShaderForFilter):
43372        * platform/graphics/texmap/TextureMapperShaderManager.h:
43373        (WebCore::TextureMapperShaderProgram::id):
43374        (WebCore::TextureMapperShaderProgram::vertexAttrib):
43375        (TextureMapperShaderProgram):
43376        (WebCore::TextureMapperShaderProgram::matrixLocation):
43377        (WebCore::TextureMapperShaderProgram::flipLocation):
43378        (WebCore::TextureMapperShaderProgram::textureSizeLocation):
43379        (WebCore::TextureMapperShaderProgram::sourceTextureLocation):
43380        (WebCore::TextureMapperShaderProgram::maskTextureLocation):
43381        (WebCore::TextureMapperShaderProgram::opacityLocation):
43382        (WebCore::TextureMapperShaderProgram::isValidUniformLocation):
43383        (StandardFilterProgram):
43384        (WebCore::StandardFilterProgram::vertexAttrib):
43385        (WebCore::StandardFilterProgram::texCoordAttrib):
43386        (WebCore::StandardFilterProgram::textureUniform):
43387        (WebCore::TextureMapperShaderProgramSimple::create):
43388        (TextureMapperShaderProgramSimple):
43389        (WebCore::TextureMapperShaderProgramRectSimple::create):
43390        (WebCore::TextureMapperShaderProgramOpacityAndMask::create):
43391        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::create):
43392        (WebCore::TextureMapperShaderProgramSolidColor::create):
43393        (WebCore::TextureMapperShaderProgramSolidColor::colorLocation):
43394        (TextureMapperShaderProgramSolidColor):
43395        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::create):
43396        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadVerticesInTextureCoordinatesLocation):
43397        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadEdgesInScreenSpaceLocation):
43398        (TextureMapperShaderProgramAntialiasingNoMask):
43399
434002012-08-27  Christophe Dumez  <christophe.dumez@intel.com>
43401
43402        Regression(r126721): bindings-tests results need to be updated
43403        https://bugs.webkit.org/show_bug.cgi?id=95060
43404
43405        Reviewed by Kentaro Hara.
43406
43407        Regenerate bindings-tests results after r126721. This change
43408        removed the NULL checks from visitChildren functions.
43409
43410        * bindings/scripts/test/JS/JSTestObj.cpp:
43411        (WebCore::JSTestObj::visitChildren):
43412        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
43413        (WebCore::JSTestSerializedScriptValueInterface::visitChildren):
43414
434152012-08-24  Alexander Pavlov  <apavlov@chromium.org>
43416
43417        Web Inspector: Incorrect property override computation when !important is involved
43418        https://bugs.webkit.org/show_bug.cgi?id=94923
43419
43420        Reviewed by Vsevolod Vlasov.
43421
43422        The cascade of !important properties was totally wrong if a property was listed as !important first and as non-!important later on.
43423
43424        * inspector/front-end/StylesSidebarPane.js:
43425        (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
43426        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
43427
434282012-08-27  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
43429
43430        Rename RegisterProtocolHandler API to NavigatorContentUtils
43431        https://bugs.webkit.org/show_bug.cgi?id=94920
43432
43433        Reviewed by Adam Barth.
43434
43435        Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed.
43436        Module 'protocolhandler' is renamed to 'navigatorcontentutils'.
43437
43438        No new tests as there is no new functionality.
43439
43440        * CMakeLists.txt:
43441        * Configurations/FeatureDefines.xcconfig:
43442        * GNUmakefile.am:
43443        * GNUmakefile.features.am:
43444        * GNUmakefile.list.am:
43445        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp: Renamed from Source/WebCore/Modules/protocolhandler/NavigatorRegisterProtocolHandler.cpp.
43446        (WebCore):
43447        (WebCore::initProtocolHandlerWhitelist):
43448        (WebCore::verifyCustomHandlerURL):
43449        (WebCore::isProtocolWhitelisted):
43450        (WebCore::verifyProtocolHandlerScheme):
43451        (WebCore::NavigatorContentUtils::from):
43452        (WebCore::NavigatorContentUtils::~NavigatorContentUtils):
43453        (WebCore::NavigatorContentUtils::create):
43454        (WebCore::NavigatorContentUtils::registerProtocolHandler):
43455        (WebCore::customHandlersStateString):
43456        (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
43457        (WebCore::NavigatorContentUtils::unregisterProtocolHandler):
43458        (WebCore::NavigatorContentUtils::supplementName):
43459        (WebCore::provideNavigatorContentUtilsTo):
43460        * Modules/navigatorcontentutils/NavigatorContentUtils.h: Renamed from Source/WebCore/Modules/protocolhandler/NavigatorRegisterProtocolHandler.h.
43461        (WebCore):
43462        (NavigatorContentUtils):
43463        (WebCore::NavigatorContentUtils::NavigatorContentUtils):
43464        (WebCore::NavigatorContentUtils::client):
43465        * Modules/navigatorcontentutils/NavigatorContentUtils.idl: Renamed from Source/WebCore/Modules/protocolhandler/NavigatorRegisterProtocolHandler.idl.
43466        * Modules/navigatorcontentutils/NavigatorContentUtilsClient.h: Renamed from Source/WebCore/Modules/protocolhandler/RegisterProtocolHandlerClient.h.
43467        (WebCore):
43468        (NavigatorContentUtilsClient):
43469        (WebCore::NavigatorContentUtilsClient::~NavigatorContentUtilsClient):
43470        * Target.pri:
43471        * WebCore.gyp/WebCore.gyp:
43472        * WebCore.gypi:
43473        * WebCore.pri:
43474        * WebCore.vcproj/WebCore.vcproj:
43475        * WebCore.vcproj/WebCoreCommon.vsprops:
43476        * WebCore.vcproj/copyForwardingHeaders.cmd:
43477
434782012-08-27  Simon Hausmann  <simon.hausmann@nokia.com>
43479
43480        [Qt] REGRESSION(r126694): It broke the debug build
43481        https://bugs.webkit.org/show_bug.cgi?id=95037
43482
43483        Unreviewed trivial build fix for debug builds.
43484
43485        Don't pass WTFStrings through printf, use .ascii().data().
43486
43487        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
43488        (WebCore::StandardFilterProgram::StandardFilterProgram):
43489
434902012-08-26  Yoshifumi Inoue  <yosin@chromium.org>
43491
43492        [Forms] Focus style of millisecond field in multiple fields time input UI is different from other fields
43493        https://bugs.webkit.org/show_bug.cgi?id=95046
43494
43495        Reviewed by Kent Tamura.
43496
43497        This patch fixes typo for input::-webkit-datetime-edit-millisecond-field:focus
43498        selector to make all fields of multiple fields time input UI have same
43499        style on focus.
43500
43501        Test: fast/forms/time-multiple-fields/time-multiple-fields-focus-style.html
43502
43503        * css/html.css: Fix typo for selector input::-webkit-datetime-edit-millisecond-field:focus
43504
435052012-08-26  Nico Weber  <thakis@chromium.org>
43506
43507        Initialized m_hasNonEmptyList to fix a valgrind uninitialized read
43508        https://bugs.webkit.org/show_bug.cgi?id=95045
43509
43510        Reviewed by Kent Tamura.
43511
43512        Conditional jump or move depends on uninitialised value(s)
43513        WebCore::HTMLInputElement::dataList() const (third_party/WebKit/Source/WebCore/html/HTMLInputElement.cpp:1523)
43514        WebCore::RangeInputType::updateTickMarkValues() (third_party/WebKit/Source/WebCore/html/RangeInputType.cpp:351)
43515        WebCore::RangeInputType::findClosestTickMarkValue(WebCore::Decimal const&) (third_party/WebKit/Source/WebCore/html/RangeInputType.cpp:370)
43516        WebCore::HTMLInputElement::findClosestTickMarkValue(WebCore::Decimal const&) (third_party/WebKit/Source/WebCore/html/HTMLInputElement.cpp:324)
43517        WebCore::SliderThumbElement::setPositionFromPoint(WebCore::FractionalLayoutPoint const&) (third_party/WebKit/Source/WebCore/html/shadow/SliderThumbElement.cpp:296)
43518        WebCore::SliderThumbElement::dragFrom(WebCore::FractionalLayoutPoint const&) (third_party/WebKit/Source/WebCore/html/shadow/SliderThumbElement.cpp:246)
43519        WebCore::RangeInputType::handleMouseDownEvent(WebCore::MouseEvent*) (third_party/WebKit/Source/WebCore/html/RangeInputType.cpp:159)
43520        WebCore::HTMLInputElement::defaultEventHandler(WebCore::Event*) (third_party/WebKit/Source/WebCore/html/HTMLInputElement.cpp:1163)
43521        WebCore::MediaControlTimelineElement::defaultEventHandler(WebCore::Event*) (third_party/WebKit/Source/WebCore/html/shadow/MediaControlElements.cpp:916)
43522        WebCore::EventDispatcher::dispatchEventPostProcess(WTF::PassRefPtr<WebCore::Event>, void*) (third_party/WebKit/Source/WebCore/dom/EventDispatcher.cpp:357)
43523        WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) (third_party/WebKit/Source/WebCore/dom/EventDispatcher.cpp:263)
43524        WebCore::MouseEventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const (third_party/WebKit/Source/WebCore/dom/MouseEvent.cpp:238)
43525        WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>) (third_party/WebKit/Source/WebCore/dom/EventDispatcher.cpp:129)
43526        ...
43527        The report came from the `media/audio-delete-while-slider-thumb-clicked.html'--pixel-test` test.
43528
43529        * html/HTMLInputElement.cpp:
43530        (WebCore::HTMLInputElement::HTMLInputElement):
43531        (WebCore::HTMLInputElement::dataList):
43532
435332012-08-26  Geoffrey Garen  <ggaren@apple.com>
43534
43535        Removed the NULL checks from visitChildren functions
43536        https://bugs.webkit.org/show_bug.cgi?id=95021
43537
43538        Reviewed by Oliver Hunt.
43539
43540        As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
43541        during GC, so explicit NULL checks aren't needed anymore.
43542
435432012-08-26  Geoffrey Garen  <ggaren@apple.com>
43544
43545        Removed a JSC-specific hack from the web inspector
43546        https://bugs.webkit.org/show_bug.cgi?id=95033
43547
43548        Reviewed by Filip Pizlo.
43549
43550        The hack was never reviewed. If it had been, I suspect it would have
43551        gotten an r- for making weird assumptions about the engine's implimentation.
43552
43553        * inspector/InjectedScriptSource.js: It's not sound to assume that an
43554        object has no properties except for "arguments" if and only if it's an
43555        activation: non-activations can have a property named "arguments", and
43556        activations can optimize out "arguments".
43557
435582012-08-26  Christopher Cameron  <ccameron@chromium.org>
43559
43560        [chromium] Fix a bug where CCThreadProxy::canDraw() gets stuck at false on tab switch
43561        https://bugs.webkit.org/show_bug.cgi?id=94903
43562
43563        Reviewed by James Robinson.
43564
43565        Suppose the impl thread deletes all textures via
43566        releaseContentsTextures().  The impl thread will not be able to draw
43567        again until resetContentsTexturesPurged() is called in
43568        scheduledActionCommit().  When deleting the textures, the function
43569        releaseContentsTextures() calls setNeedsCommitOnImplThread() to ensure
43570        that a commit will come along to allow drawing again.  If this commit
43571        is aborted, then the page will not draw until a commit is scheduled,
43572        which may be never.
43573
43574        Make beginFrameAborted() call setNeedsCommit(), so that the requested
43575        commit will eventually occur.
43576
43577        No new tests, update to CCSchedulerStateMachineTest's 
43578        TestGoesInvisibleBeforeBeginFrameCompletes to require new
43579        functionality (new test fails with old behavior).
43580
43581        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
43582        (WebCore::CCSchedulerStateMachine::beginFrameAborted):
43583
435842012-08-26  Antti Koivisto  <antti@apple.com>
43585
43586        Remove parent pointer from StyleSheetContents and StyleRuleImport
43587        https://bugs.webkit.org/show_bug.cgi?id=94926
43588
43589        Reviewed by Andreas Kling.
43590
43591        To be able to cache and share @imported stylesheets in the future there must not be any parent
43592        pointers in the stylesheet tree.
43593
43594        Parent pointers are used during loading to invoke load completion callbacks and for
43595        accessing document context information (like the security origin). They are not used after
43596        the sheet load is complete. Instead of keeping the parent pointers around indefinitely as part of the 
43597        stylesheet data structure we just keep a pointer to the root CSSStyleSheet for the duration of the load.
43598        
43599        This patch doesn't enable any new caching or generally change the behavior.
43600
43601        * css/CSSStyleSheet.cpp:
43602        (WebCore::CSSStyleSheet::insertRule):
43603        (WebCore::CSSStyleSheet::rootStyleSheet):
43604        (WebCore):
43605        (WebCore::CSSStyleSheet::ownerDocument):
43606        * css/CSSStyleSheet.h:
43607        (CSSStyleSheet):
43608        * css/StyleRuleImport.cpp:
43609        (WebCore::StyleRuleImport::LoadContext::LoadContext):
43610        
43611            Simplify by making StyleRuleImport CachedStyleSheetClient directly. LoadContext contains
43612            fields that can be thrown away after load completes.
43613
43614        (WebCore):
43615        (WebCore::StyleRuleImport::StyleRuleImport):
43616        (WebCore::StyleRuleImport::~StyleRuleImport):
43617        (WebCore::StyleRuleImport::setCSSStyleSheet):
43618        (WebCore::StyleRuleImport::isLoading):
43619        (WebCore::StyleRuleImport::hadLoadError):
43620        (WebCore::StyleRuleImport::requestStyleSheet):
43621        * css/StyleRuleImport.h:
43622        (StyleRuleImport):
43623        (LoadContext):
43624        * css/StyleSheetContents.cpp:
43625        (WebCore::StyleSheetContents::StyleSheetContents):
43626        
43627            Remove now unnecessary constructor. 
43628
43629        (WebCore::StyleSheetContents::isCacheable):
43630        (WebCore::StyleSheetContents::parserAppendRule):
43631        (WebCore::StyleSheetContents::clearRules):
43632        (WebCore::StyleSheetContents::wrapperInsertRule):
43633        (WebCore::StyleSheetContents::wrapperDeleteRule):
43634        (WebCore::StyleSheetContents::requestImportedStyleSheets):
43635        (WebCore):
43636        (WebCore::StyleSheetContents::parseAuthorStyleSheet):
43637        (WebCore::StyleSheetContents::parseStringAtLine):
43638        (WebCore::StyleSheetContents::checkImportedSheetLoadCompleted):
43639        (WebCore::StyleSheetContents::checkLoadCompleted):
43640        (WebCore::StyleSheetContents::getAncestors):
43641        (WebCore::StyleSheetContents::hasImportCycle):
43642        
43643            Move the cycle checking to the root stylesheet so we don't need to pass the entire chain around.
43644            The extra work here is unlikely to cause problems, massive import trees don't really occur in
43645            practice.
43646
43647        * css/StyleSheetContents.h:
43648        (WebCore::StyleSheetContents::create):
43649        (StyleSheetContents):
43650        * dom/ProcessingInstruction.cpp:
43651        (WebCore::ProcessingInstruction::parseStyleSheet):
43652        * dom/StyleElement.cpp:
43653        (WebCore::StyleElement::createSheet):
43654        * html/HTMLLinkElement.cpp:
43655        (WebCore::HTMLLinkElement::setCSSStyleSheet):
43656
436572012-08-26  Andreas Kling  <kling@webkit.org>
43658
43659        Avoid pointless string/number round-trip in applyRelativeFontStyleChange().
43660        <http://webkit.org/b/95031>
43661
43662        Reviewed by Dan Bernstein.
43663
43664        Create a CSS_PX primitive value directly instead of passing String::number(foo) + "px" to the CSS parser.
43665
43666        * editing/ApplyStyleCommand.cpp:
43667        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
43668
436692012-08-26  Gavin Peters  <gavinp@chromium.org>
43670
43671        Prerenderering should gracefully handle no PrerendererClient or PrerenderingPlatform being provided.
43672        https://bugs.webkit.org/show_bug.cgi?id=95036
43673
43674        Reviewed by Adam Barth.
43675
43676        Some assertions made sure there was a prerendering platform and client, and this change should make prerendering just be a NOP when no platform is provided, and just continue without a client when there is no client provided. These assertions were causing crashes in chromium's content_shell target, and really for no good reason.
43677
43678        No new tests, because DumpRenderTree provides both a PrerenderingPlatform and a PrerendererClient. But there is a new layout test in chromium's WebKitBrowserTest for this behaviour, see http://codereview.chromium.org/10869068/
43679
43680        * loader/Prerenderer.cpp:
43681        (WebCore::Prerenderer::Prerenderer):
43682        (WebCore::Prerenderer::render):
43683        (WebCore::Prerenderer::client):
43684        * loader/Prerenderer.h:
43685        * loader/PrerendererClient.cpp:
43686        (WebCore::PrerendererClient::from):
43687        * platform/chromium/Prerender.cpp:
43688        (WebCore::Prerender::cancel):
43689
436902012-08-26  David Barton  <dbarton@mathscribe.com>
43691
43692        Streamline mathml.css
43693        https://bugs.webkit.org/show_bug.cgi?id=95039
43694
43695        Reviewed by Dan Bernstein.
43696
43697        Remove 3 no-op { margin: 0px } declarations, and combine several { display: inline-block } ones.
43698
43699        Tested by existing tests.
43700
43701        * css/mathml.css:
43702        (math):
43703        (mo, mrow, mfenced, mfrac, msub, msup, msubsup, munder, mover, munderover, msqrt, mroot):
43704        (mrow, mfenced):
43705        (msubsup > *):
43706        (mo, mn, mi, mtext):
43707        (annotation, annotation-xml):
43708        (msqrt):
43709        (mroot):
43710
437112012-08-26  Pavel Feldman  <pfeldman@chromium.org>
43712
43713        Web Inspector: make ConsoleView listen to the JavaScriptContextManager
43714        https://bugs.webkit.org/show_bug.cgi?id=94940
43715
43716        Reviewed by Vsevolod Vlasov.
43717
43718        Otherwise, model is pushing data into the UI.
43719
43720        * inspector/front-end/ConsoleMessage.js:
43721        (WebInspector.ConsoleMessageImpl.prototype.clone):
43722        * inspector/front-end/ConsoleView.js:
43723        (WebInspector.ConsoleView.prototype._contextAdded):
43724        (WebInspector.ConsoleView.prototype._addContext):
43725        (WebInspector.ConsoleView.prototype._contextRemoved):
43726        * inspector/front-end/JavaScriptContextManager.js:
43727        (WebInspector.JavaScriptContextManager):
43728        (WebInspector.JavaScriptContextManager.prototype.contexts):
43729        (WebInspector.JavaScriptContextManager.prototype._frameAdded):
43730        (WebInspector.JavaScriptContextManager.prototype._frameDetached):
43731        * inspector/front-end/ParsedURL.js:
43732        (WebInspector.ParsedURL.completeURL):
43733        (WebInspector.TextEditorDelegateForSourceFrame.prototype.createLink):
43734        * inspector/front-end/inspector.js:
43735
437362012-08-26  Pavel Feldman  <pfeldman@chromium.org>
43737
43738        Web Inspector: provide "show function definition" and "reveal in elements panel" using context menu provider.
43739        https://bugs.webkit.org/show_bug.cgi?id=94932
43740
43741        Reviewed by Vsevolod Vlasov.
43742
43743        Moved corresponding context menu providers into scripts and elements panels.
43744
43745        * WebCore.gypi:
43746        * WebCore.vcproj/WebCore.vcproj:
43747        * inspector/compile-front-end.py:
43748        * inspector/front-end/ElementsPanel.js:
43749        (WebInspector.ElementsPanel.prototype.revealAndSelectNode):
43750        (WebInspector.ElementsPanel.prototype.appendApplicableItems.selectNode):
43751        (WebInspector.ElementsPanel.prototype.appendApplicableItems.revealElement):
43752        (WebInspector.ElementsPanel.prototype.appendApplicableItems):
43753        * inspector/front-end/ElementsPanelDescriptor.js: Copied from Source/WebCore/inspector/front-end/ScriptsPanelDescriptor.js.
43754        (WebInspector.ElementsPanelDescriptor):
43755        (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
43756        * inspector/front-end/ObjectPropertiesSection.js:
43757        (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
43758        (WebInspector.ObjectPropertyTreeElement.prototype.update):
43759        (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43760        * inspector/front-end/ScriptsPanel.js:
43761        (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
43762        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
43763        (WebInspector.ScriptsPanel.prototype._appendFunctionItems.didGetDetails):
43764        (WebInspector.ScriptsPanel.prototype._appendFunctionItems.revealFunction):
43765        (WebInspector.ScriptsPanel.prototype._appendFunctionItems):
43766        * inspector/front-end/ScriptsPanelDescriptor.js:
43767        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
43768        * inspector/front-end/WebKit.qrc:
43769        * inspector/front-end/inspector.html:
43770        * inspector/front-end/inspector.js:
43771        (WebInspector._panelDescriptors):
43772
437732012-08-26  Joe Mason  <jmason@rim.com>
43774
43775        [BlackBerry] Stop leaking a pthread_attr in CookieDatabaseBackingStore
43776        https://bugs.webkit.org/show_bug.cgi?id=95029
43777
43778        Reviewed by Rob Buis.
43779
43780        No new tests (no behaviour change)
43781        RIM PR 198519
43782
43783        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
43784        (WebCore::CookieDatabaseBackingStore::CookieDatabaseBackingStore): use pthread_attr_default
43785        instead of pthread_attr_init
43786
437872012-08-25  David Barton  <dbarton@mathscribe.com>
43788
43789        Remove { vertical-align: baseline } declarations from mathml.css
43790        https://bugs.webkit.org/show_bug.cgi?id=95015
43791
43792        Reviewed by Eric Seidel.
43793
43794        The { vertical-align: baseline } declarations in mathml.css had no positive effect, and could
43795        wrongly override a previous { vertical-align: sub } or { vertical-align: super } declaration.
43796
43797        Added 1 test to mathml/presentation/subsup.xhtml.
43798
43799        * css/mathml.css:
43800        (math):
43801        (mrow, mfenced):
43802        (msub, msup):
43803        (msubsup):
43804        (munder, mover, munderover):
43805            - Remove { vertical-align: baseline } declarations
43806
438072012-08-25  Roland Takacs  <rtakacs@inf.u-szeged.hu>, Helder Correia  <helder.correia@nokia.com>
43808
43809        [Texmap] Move TextureMapperGL to use GraphicsContext3D
43810        https://bugs.webkit.org/show_bug.cgi?id=78672
43811
43812        Reviewed by Noam Rosenthal.
43813
43814        It is based on a previous patch by Helder Correia.
43815
43816        TextureMapperGL (TMGL) includes direct GL calls and
43817        GraphicsContext3D (GC3D) offers many conveniences over the
43818        former approach: using existing CSS shader code, ANGLE for
43819        shader compilation, reusing WebCore::Texture, having shaders and
43820        textures that can delete themselves.
43821
43822        A GC3D object is created by TMGL with the newly introduced
43823        builder createForCurrentGLContext(), which in turn uses
43824        the new RenderToCurrentGLContext flag underneath.
43825
43826        TMGL's dependency on OpenGLShims.h was completely removed.
43827        However, GC3D does not map every single GL constant. Thus, it's
43828        important to document the following:
43829            - GL_FALSE was mapped to false.
43830            - GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_PIXELS,
43831            GL_UNPACK_SKIP_ROWS, GL_TEXTURE_RECTANGLE_ARB, and
43832            GL_UNSIGNED_INT_8_8_8_8_REV were locally defined in TMGL.
43833
43834        The patch was originally developed by Helder Correia and finished
43835        by Roland Takacs.
43836
43837        No new tests, refactoring.
43838
43839        * platform/graphics/GraphicsContext3D.h:
43840        * platform/graphics/texmap/TextureMapperGL.cpp:
43841        (SharedGLData):
43842        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
43843        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
43844        (WebCore::TextureMapperGLData::sharedGLData):
43845        (WebCore::TextureMapperGLData::TextureMapperGLData):
43846        (TextureMapperGLData):
43847        (WebCore::scissorClip):
43848        (WebCore::TextureMapperGL::ClipStack::apply):
43849        (WebCore::TextureMapperGLData::initializeStencil):
43850        (WebCore::TextureMapperGL::TextureMapperGL):
43851        (WebCore::TextureMapperGL::beginPainting):
43852        (WebCore::TextureMapperGL::endPainting):
43853        (WebCore::TextureMapperGL::drawQuad):
43854        (WebCore::TextureMapperGL::drawBorder):
43855        (WebCore):
43856        (WebCore::TextureMapperGL::drawTextureRectangleARB):
43857        (WebCore::TextureMapperGL::drawTexture):
43858        (WebCore::viewportMatrix):
43859        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
43860        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
43861        (WebCore::BitmapTextureGL::didReset):
43862        (WebCore::BitmapTextureGL::updateContents):
43863        (WebCore::TextureMapperGL::drawFiltered):
43864        (WebCore::BitmapTextureGL::initializeStencil):
43865        (WebCore::BitmapTextureGL::clearIfNeeded):
43866        (WebCore::BitmapTextureGL::createFboIfNeeded):
43867        (WebCore::BitmapTextureGL::bind):
43868        (WebCore::BitmapTextureGL::~BitmapTextureGL):
43869        (WebCore::TextureMapperGL::bindDefaultSurface):
43870        (WebCore::TextureMapperGL::beginScissorClip):
43871        (WebCore::TextureMapperGL::beginClip):
43872        (WebCore::TextureMapperGL::endClip):
43873        (WebCore::TextureMapperGL::createTexture):
43874        * platform/graphics/texmap/TextureMapperGL.h:
43875        (WebCore::TextureMapperGL::graphicsContext3D):
43876        (TextureMapperGL):
43877        (ClipStack):
43878        (WebCore::BitmapTextureGL::textureTarget):
43879        (BitmapTextureGL):
43880        (WebCore::BitmapTextureGL::BitmapTextureGL):
43881        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
43882        (WebCore):
43883        (WebCore::TextureMapperShaderManager::getShaderProgram):
43884        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
43885        (WebCore::TextureMapperShaderProgram::initializeProgram):
43886        (WebCore::TextureMapperShaderProgram::getUniformLocation):
43887        (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
43888        (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple):
43889        (WebCore::TextureMapperShaderProgramSolidColor::TextureMapperShaderProgramSolidColor):
43890        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
43891        (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
43892        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::TextureMapperShaderProgramRectOpacityAndMask):
43893        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::TextureMapperShaderProgramAntialiasingNoMask):
43894        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
43895        (WebCore::StandardFilterProgram::~StandardFilterProgram):
43896        (WebCore::StandardFilterProgram::StandardFilterProgram):
43897        (WebCore::StandardFilterProgram::create):
43898        (WebCore::StandardFilterProgram::prepare):
43899        (WebCore::TextureMapperShaderManager::getShaderForFilter):
43900        * platform/graphics/texmap/TextureMapperShaderManager.h:
43901        (WebCore::TextureMapperShaderProgram::id):
43902        (WebCore::TextureMapperShaderProgram::vertexAttrib):
43903        (TextureMapperShaderProgram):
43904        (WebCore::TextureMapperShaderProgram::matrixLocation):
43905        (WebCore::TextureMapperShaderProgram::flipLocation):
43906        (WebCore::TextureMapperShaderProgram::textureSizeLocation):
43907        (WebCore::TextureMapperShaderProgram::sourceTextureLocation):
43908        (WebCore::TextureMapperShaderProgram::maskTextureLocation):
43909        (WebCore::TextureMapperShaderProgram::opacityLocation):
43910        (WebCore::TextureMapperShaderProgram::isValidUniformLocation):
43911        (StandardFilterProgram):
43912        (WebCore::StandardFilterProgram::vertexAttrib):
43913        (WebCore::StandardFilterProgram::texCoordAttrib):
43914        (WebCore::StandardFilterProgram::textureUniform):
43915        (WebCore::TextureMapperShaderProgramSimple::create):
43916        (TextureMapperShaderProgramSimple):
43917        (WebCore::TextureMapperShaderProgramRectSimple::create):
43918        (TextureMapperShaderProgramRectSimple):
43919        (WebCore::TextureMapperShaderProgramOpacityAndMask::create):
43920        (TextureMapperShaderProgramOpacityAndMask):
43921        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::create):
43922        (TextureMapperShaderProgramRectOpacityAndMask):
43923        (WebCore::TextureMapperShaderProgramSolidColor::create):
43924        (WebCore::TextureMapperShaderProgramSolidColor::colorLocation):
43925        (TextureMapperShaderProgramSolidColor):
43926        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::create):
43927        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadVerticesInTextureCoordinatesLocation):
43928        (WebCore::TextureMapperShaderProgramAntialiasingNoMask::expandedQuadEdgesInScreenSpaceLocation):
43929        (TextureMapperShaderProgramAntialiasingNoMask):
43930        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
43931        (TextureMapperShaderManager):
43932
439332012-08-25  Philip Rogers  <pdr@google.com>
43934
43935        Roll out r126056 and r126626
43936        https://bugs.webkit.org/show_bug.cgi?id=95017
43937
43938        Reviewed by Dirk Schulze.
43939
43940        This patch rolls out r126056 which regressed a test.
43941        The getBBox() code removed turns out to be required for tight bounding
43942        boxes in SVGPathElement::getBBox().
43943
43944        When this regression occurred the relevant test was skipped in r126626. This
43945        patch reverts that skip.
43946
43947        No new tests.
43948
43949        * svg/SVGPathElement.cpp:
43950        (WebCore::SVGPathElement::getBBox):
43951        (WebCore):
43952        * svg/SVGPathElement.h:
43953        (SVGPathElement):
43954
439552012-08-25  Adam Barth  <abarth@webkit.org>
43956
43957        [V8] V8NodeFilterCondition should use ScopedPersistent
43958        https://bugs.webkit.org/show_bug.cgi?id=95010
43959
43960        Reviewed by Eric Seidel.
43961
43962        V8NodeFilterCondition just re-implements ScopedPersistent by hand.
43963
43964        * bindings/v8/V8NodeFilterCondition.cpp:
43965        (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
43966        (WebCore::V8NodeFilterCondition::~V8NodeFilterCondition):
43967        (WebCore::V8NodeFilterCondition::acceptNode):
43968        * bindings/v8/V8NodeFilterCondition.h:
43969        (WebCore):
43970        (V8NodeFilterCondition):
43971        (WebCore::V8NodeFilterCondition::create):
43972
439732012-07-18  Robert Hogan  <robert@webkit.org>
43974
43975        Tables with just border-style set on the cells do not get a grid
43976        https://bugs.webkit.org/show_bug.cgi?id=84286
43977
43978        Reviewed by Julien Chaffraix.
43979
43980        This is happening because every cell gets a zero-width border in createSharedCellStyle() if the table border is not explictly set. 
43981        FF and Opera don't do this, so leave the cell's border alone if there is no table border explicitly set.
43982
43983        Test: fast/css/table-rules-attribute-none-with-cell-borders.html
43984
43985        * html/HTMLTableElement.cpp:
43986        (WebCore::HTMLTableElement::createSharedCellStyle):
43987        * rendering/RenderTreeAsText.cpp:
43988        (WebCore::RenderTreeAsText::writeRenderObject): Without this we would end up rebaselining a bunch of tests to report 'border: []'
43989         rather than 'border: [none]'. The problem here was that writeRenderObject would only report the first border if it differed from
43990         BorderValue(). What we want is for it to report the first border always and then any borders after that if they differ.
43991
439922012-08-25  Andrey Kosyakov  <caseq@chromium.org>
43993
43994        Web Inspector: missing time ruler in Timeline and Network panels
43995        https://bugs.webkit.org/show_bug.cgi?id=95001
43996
43997        Reviewed by Pavel Feldman.
43998
43999        Fixed a call site for Calculator.boundarySpan(), which is now a function rather than a property.
44000
44001        * inspector/front-end/TimelineGrid.js:
44002        (WebInspector.TimelineGrid.prototype.updateDividers):
44003
440042012-08-25  Michelangelo De Simone  <michelangelo@webkit.org>
44005
44006        [Crash] Null pointer in CSSParser::parseMixFunction()
44007        https://bugs.webkit.org/show_bug.cgi?id=94998
44008
44009        Reviewed by Benjamin Poulain.
44010
44011        parseMixFunction() may try to access invalid memory when the arguments of the
44012        mix() function are comma-terminated.
44013
44014        * css/CSSParser.cpp:
44015        (WebCore::CSSParser::parseMixFunction):
44016
440172012-08-24  Helder Correia  <helder.correia@nokia.com>
44018
44019        [Texmap] Move TextureMapperGL to use GraphicsContext3D
44020        https://bugs.webkit.org/show_bug.cgi?id=78672
44021
44022        Reviewed by Noam Rosenthal.
44023
44024        Introducing a new GraphicsContext3D::texImage2DDirect() to allow
44025        initialization of textures without allocation. The existing
44026        textImage2D() refuses a null pixel buffer, and
44027        texImage2DResourceSafe() allows it but performs memory
44028        allocation and zeroes the bits. This was not fast enough for
44029        BitmapTextureGL frequent setting up.
44030
44031        No new tests, refactoring.
44032
44033        * platform/graphics/GraphicsContext3D.h:
44034        (GraphicsContext3D):
44035        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
44036        (WebCore::GraphicsContext3D::texImage2D):
44037        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
44038        (WebCore::GraphicsContext3D::texImage2DDirect):
44039        (WebCore):
44040        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
44041        (WebCore::GraphicsContext3D::texImage2D):
44042
440432012-08-24  Roger Fong  <roger_fong@apple.com>
44044
44045        -webkit-font-smoothing: antialiased should use CG font rendering code path, not GDI
44046        https://bugs.webkit.org/show_bug.cgi?id=54004
44047        <rdar://problem/8971429>
44048
44049        Reviewed by Dan Bernstein.
44050
44051        When specifying -webkit-font-smoothing: antialised; the code path ends up using GDI to draw the text. 
44052        GDI ends up drawing subpixel antialiased text, not aliased text anyways.
44053        The CG code path also has the capability of drawing antialiased text. The reason that the GDI path was 
44054        used in the first place is no longer a concern here so we can stop using the GDI code path.
44055
44056        * platform/graphics/win/FontCGWin.cpp: Removing GDI font drawing code path.
44057        (WebCore):
44058        (WebCore::Font::drawGlyphs):
44059
440602012-08-24  Sami Kyostila  <skyostil@chromium.org>
44061
44062        Add support for compositing the contents of overflow:scroll areas
44063        https://bugs.webkit.org/show_bug.cgi?id=91117
44064
44065        Reviewed by Simon Fraser.
44066
44067        Patch by Simon Fraser with modifications by Sami Kyostila and Ian Vollick.
44068
44069        Allow a RenderLayer which exists for overflow scrolling
44070        to use a composited layer for the scrolled contents, which
44071        allows for compositing-accelerated overflow scrolling.
44072
44073        Tests:
44074            compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html
44075            compositing/overflow/iframe-inside-overflow-clipping.html
44076            compositing/overflow/nested-scrolling.html
44077            compositing/overflow/overflow-auto-with-touch-no-overflow.html
44078            compositing/overflow/overflow-auto-with-touch.html
44079            compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html
44080            compositing/overflow/overflow-hidden-with-touch.html
44081            compositing/overflow/overflow-overlay-with-touch-no-overflow.html
44082            compositing/overflow/overflow-overlay-with-touch.html
44083            compositing/overflow/overflow-scroll-with-touch-no-overflow.html
44084            compositing/overflow/overflow-visible-with-touch.html
44085            compositing/overflow/remove-overflow-crash.html
44086            compositing/overflow/remove-overflow-crash2.html
44087            compositing/overflow/scrolling-content-clip-to-viewport.html
44088            compositing/overflow/textarea-scroll-touch.html
44089
44090        * platform/graphics/GraphicsLayerClient.h: New paint phase flag
44091        used for scrolled contents. Provide a typedef for the flags
44092        so that they can be ORed together.
44093
44094        * rendering/RenderLayer.h:
44095        (WebCore::ClipRectsCache::ClipRectsCache):
44096        (ClipRectsCache): In debug builds, store a m_respectingOverflowClip
44097        flag so we can ASSERT later that we're fetching clip rects with the
44098        same setting the rects were generated with.
44099        Add new PaintLayerPaintingOverflowContents painting flag.
44100
44101        * rendering/RenderLayer.cpp:
44102        (WebCore::RenderLayer::usesCompositedScrolling): New method returns
44103        true if this layer is using composited overflow scrolling.
44104        (WebCore::RenderLayer::scrollTo): Don't repaint if we're doing
44105        a composited scroll.
44106        (WebCore::RenderLayer::paintLayer): Pass the right flags to backgroundClipRect();
44107        if we're painting scrolled contents, we don't want to take the overflow clip rect
44108        into account.
44109        (WebCore::RenderLayer::paintLayerContents): Ditto. Also don't do the intersectsDamageRect()
44110        check if we're painting scrolled contents.
44111        (WebCore::RenderLayer::updateClipRects): New parameter to tell whether to respect overflow clipping.
44112        Assert if we're fetching cached rects with a different 'respect clip' flag to the one they were generated
44113        with.
44114        (WebCore::RenderLayer::calculateClipRects): Take the 'respectOverflowClip' flag into account
44115        when computing clip rects.
44116        (WebCore::RenderLayer::parentClipRects): Ditto
44117        (WebCore::RenderLayer::backgroundClipRect): Ditto
44118        (WebCore::RenderLayer::calculateRects): Ditto
44119        (WebCore::RenderLayer::childrenClipRect): This function is called from widget code, so may use a different
44120        'respect clip rects' setting than that used for painting, so it has to compute clip rects on the fly.
44121        (WebCore::RenderLayer::shouldBeNormalFlowOnly): Composited scrolling makes a layer not normal-flow only.
44122
44123        * rendering/RenderLayerBacking.h:
44124        (RenderLayerBacking): New member variables for the layers for scrolled contents, and the scrolling
44125        layer which handles the scroll offset.
44126        (WebCore::RenderLayerBacking::hasScrollingLayer):
44127        (WebCore::RenderLayerBacking::scrollingLayer):
44128        (WebCore::RenderLayerBacking::scrollingContentsLayer):
44129
44130        * rendering/RenderLayerBacking.cpp:
44131        (WebCore::RenderLayerBacking::~RenderLayerBacking):
44132        (WebCore::RenderLayerBacking::destroyGraphicsLayers): Tear down the scrolling layers, if any.
44133        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling): Renamed from layerOrAncestorIsTransformed,
44134        since it has to look for composited scrolling layers too.
44135        (WebCore::RenderLayerBacking::shouldClipCompositedBounds): We don't want the contents of scrolling layers
44136        to get clipped to the viewport.
44137        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Create scrolling layers if necessary.
44138        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Set scrolling layer geometry.
44139        (WebCore::RenderLayerBacking::updateInternalHierarchy): Hook up scrolling layers.
44140        (WebCore::RenderLayerBacking::updateDrawsContent): Scrolling layers affect whether the main graphics layer
44141        needs to draw content.
44142        (WebCore::RenderLayerBacking::updateScrollingLayers): Create or destroy scrolling layers.
44143        (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer): If we have a scrolled contents layer,
44144        the main layer should not paint the foreground.
44145        (WebCore::RenderLayerBacking::parentForSublayers): Sublayers are parented in the scrolling contents
44146        layer if one exists.
44147        (WebCore::RenderLayerBacking::setContentsNeedDisplay): Need to dirty the scrolling contents layer.
44148        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): Ditto.
44149        (WebCore::RenderLayerBacking::paintIntoLayer): Set the right painting flags.
44150        (WebCore::RenderLayerBacking::paintContents): Only clip to the bounds if we're not painting overflow contents.
44151
441522012-08-24  Florin Malita  <fmalita@chromium.org>
44153
44154        ASSERTION FAILED: !attached() in WebCore::Node::attach()
44155        https://bugs.webkit.org/show_bug.cgi?id=94650
44156
44157        Reviewed by Abhishek Arya.
44158
44159        Prevent SVGTests::handleAttributeChange() from attaching elements with detached parents.
44160
44161        Test: svg/custom/system-language-crash.html
44162
44163        * svg/SVGTests.cpp:
44164        (WebCore::SVGTests::handleAttributeChange):
44165
441662012-08-24  Glenn Adams  <glenn@skynav.com>
44167
44168        CSSStyleDeclaration.cssText should not contain extraneous whitespace in final delimiter
44169        https://bugs.webkit.org/show_bug.cgi?id=94633
44170
44171        Reviewed by Benjamin Poulain.
44172
44173        Ensure cssText final delimiter does not contain extraneous space character after semicolon.
44174
44175        Test: cssom/cssstyledeclaration-csstext-final-delimiter.html
44176
44177        * css/CSSFontFaceRule.cpp:
44178        (WebCore::CSSFontFaceRule::cssText):
44179        Conditionally add SPACE in serialized rule since asText() no longer
44180        contains extra space.
44181        Construct result using StringBuilder.
44182        
44183        * css/CSSPageRule.cpp:
44184        (WebCore::CSSPageRule::cssText):
44185        Conditionally add SPACE in serialized rule since asText() no longer
44186        contains extra space.
44187        Construct result using StringBuilder.
44188        
44189        * css/CSSProperty.cpp:
44190        (WebCore::CSSProperty::cssText):
44191        Ensure serialized property does longer contains extra space in cssText.
44192        Construct result using StringBuilder.
44193        
44194        * css/CSSStyleRule.cpp:
44195        (WebCore::CSSStyleRule::cssText):
44196        Conditionally add SPACE in serialized rule since asText() no longer
44197        contains extra space.
44198        Construct result using StringBuilder.
44199        
44200        * css/CSSStyleSheet.cpp:
44201        (WebCore::CSSStyleSheet::addRule):
44202        Conditionally add SPACE in reserialized rule in case passed style no
44203        longer contains extra space.  Note that if it does already contain an
44204        extra space that inserting an extra space here is harmless (i.e., is
44205        effectively normalized during parse).
44206        Construct result using StringBuilder.
44207        
44208        * css/StylePropertySet.cpp:
44209        (WebCore::StylePropertySet::asText):
44210        Ensure serialized property set does longer contains extra space in final
44211        delimiter.
44212        Construct result using StringBuilder.
44213        
44214        * css/WebKitCSSKeyframeRule.cpp:
44215        (WebCore::StyleKeyframe::cssText):
44216        Conditionally add SPACE in serialized rule since asText() no longer
44217        contains extra space.
44218        Construct result using StringBuilder.
44219        
44220        * editing/ApplyStyleCommand.cpp:
44221        (WebCore::ApplyStyleCommand::addBlockStyle):
44222        Conditionally add SPACE in block style since cssText no longer contains
44223        extra space.
44224        Construct result using StringBuilder.
44225        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
44226        Conditionally add SPACE in pre-existing inline style since cssText no
44227        longer contains extra space.
44228        Construct result using StringBuilder.
44229        
442302012-08-23  James Robinson  <jamesr@chromium.org>
44231
44232        [chromium] Convert WebLayerTreeView interface into pure virtual
44233        https://bugs.webkit.org/show_bug.cgi?id=94866
44234
44235        Reviewed by Adrienne Walker.
44236
44237        Renames CCLayerTreeHostClient::updateAnimations -> CCLayerTreeHostClient::animate to avoid a naming collision
44238        and to better match the other imperative-sounding calls (like layout).
44239
44240        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
44241        (WebCore::CCLayerTreeHost::updateAnimations):
44242        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
44243        (CCLayerTreeHostClient):
44244
442452012-08-24  James Robinson  <jamesr@chromium.org>
44246
44247        [chromium] Clean up WebAnimation animationId/groupId generation
44248        https://bugs.webkit.org/show_bug.cgi?id=94973
44249
44250        Reviewed by Adrienne Walker.
44251
44252        This gets rid of AnimationIdVendor and simplifies GraphicsLayerChromium's name<->id mapping. We only have to
44253        track the IDs of animations that we have started and can let WebAnimation generate new IDs if we haven't seen
44254        the name before.
44255
44256        * WebCore.gypi:
44257        * platform/graphics/chromium/AnimationIdVendor.cpp: Removed.
44258        * platform/graphics/chromium/AnimationIdVendor.h: Removed.
44259        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
44260        (WebCore::createWebAnimation):
44261        * platform/graphics/chromium/AnimationTranslationUtil.h:
44262        (WebCore):
44263        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
44264        (WebCore::GraphicsLayerChromium::addAnimation):
44265        (WebCore::GraphicsLayerChromium::pauseAnimation):
44266        (WebCore::GraphicsLayerChromium::removeAnimation):
44267        * platform/graphics/chromium/GraphicsLayerChromium.h:
44268
442692012-08-24  Benjamin Poulain  <bpoulain@apple.com>
44270
44271        Populate DatabaseTracker's origins lazily on demand
44272        https://bugs.webkit.org/show_bug.cgi?id=94649
44273
44274        Reviewed by Brady Eidson.
44275
44276        Previously, we would populate m_quotaMap on startup when initialializing DatabaseTracker.
44277        This takes a significant amount of time and memory and it is not needed in many cases.
44278
44279        This patch change DatabaseTracker to invoke populateOrigins() only when needed.
44280        This saves:
44281        -7-15ms on startup.
44282        -96Kbytes of SQLite page cache
44283        -the size of m_quotaMap on that particular system.
44284
44285        * Modules/webdatabase/DatabaseTracker.cpp:
44286        (WebCore::DatabaseTracker::DatabaseTracker):
44287        (WebCore::DatabaseTracker::hasEntryForOriginNoLock):
44288        (WebCore::DatabaseTracker::populateOriginsIfNeeded):
44289        (WebCore::DatabaseTracker::origins):
44290        (WebCore::DatabaseTracker::quotaForOriginNoLock):
44291        (WebCore::DatabaseTracker::addDatabase):
44292        (WebCore::DatabaseTracker::deleteOrigin):
44293        * Modules/webdatabase/DatabaseTracker.h:
44294        (DatabaseTracker):
44295
442962012-08-24  Mark Pilgrim  <pilgrim@chromium.org>
44297
44298        [Chromium] Remove visitedLinkHash from PlatformSupport
44299        https://bugs.webkit.org/show_bug.cgi?id=94965
44300
44301        Reviewed by Adam Barth.
44302
44303        Part of a refactoring series. See tracking bug 82948.
44304
44305        * platform/chromium/LinkHashChromium.cpp:
44306        (WebCore):
44307        (WebCore::visitedLinkHash):
44308        * platform/chromium/PlatformSupport.h:
44309
443102012-08-24  Kevin Ellis  <kevers@chromium.org>
44311
44312        [chromium] Reduce padding on popup menu entries when used on a touch screen.
44313        https://bugs.webkit.org/show_bug.cgi?id=94953
44314
44315        Reviewed by Adam Barth.
44316
44317        Prior to the patch, the height of entries in a popup menu was 44px,
44318        which is excessive.  Reduced the padding to make the menu entries
44319        30px tall to match the wrench menu. 
44320
44321        No new tests required.
44322
44323        * platform/chromium/PopupMenuChromium.cpp:
44324        (WebCore):
44325
443262012-08-24  Helder Correia  <helder.correia@nokia.com>, Roland Takacs  <rtakacs@inf.u-szeged.hu>
44327
44328        [Texmap] Move TextureMapperGL to use GraphicsContext3D
44329        https://bugs.webkit.org/show_bug.cgi?id=78672
44330
44331        Reviewed by Noam Rosenthal.
44332
44333        This is part of a several patch-refactoring.
44334
44335        Introduce additional logic in GraphicsContext3DQt to support a
44336        new RenderToCurrentGLContext RenderStyle. This is necessary to
44337        use GC3D for other things than WebGL, like TextureMapper.
44338
44339        The GC3D constructor now accepts a RenderStyle instead of the
44340        boolean renderDirectlyToHostWindow and thus mimics create()'s
44341        signature. This has been changed for all ports in this patch.
44342
44343        A new GC3D::createForCurrentGLContext() builder was
44344        introduced to better abstract the goal of using GC3D with the
44345        current context.
44346
44347        The patch was originally developed by Helder Correia and finished
44348        by Roland Takacs.
44349
44350        No new tests, refactoring.
44351
443522012-08-24  Sheriff Bot  <webkit.review.bot@gmail.com>
44353
44354        Unreviewed, rolling out r126620.
44355        http://trac.webkit.org/changeset/126620
44356        https://bugs.webkit.org/show_bug.cgi?id=94976
44357
44358        ASSERT((intptr_t)m_bytesAllocated + deltaBytes > 0) is
44359        triggering on the bots (Requested by jchaffraix on #webkit).
44360
44361        * WebCore.gypi:
44362        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
44363        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
44364        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
44365        (WebCore::Canvas2DLayerBridge::contextAcquired):
44366        * platform/graphics/chromium/Canvas2DLayerBridge.h:
44367        (Canvas2DLayerBridge):
44368        * platform/graphics/chromium/Canvas2DLayerManager.cpp: Removed.
44369        * platform/graphics/chromium/Canvas2DLayerManager.h: Removed.
44370
443712012-08-24  Andrei Onea  <onea@adobe.com>
44372
44373        [CSSRegions]Expose WebKitNamedFlowCollection interface through document.getNamedFlows()
44374        https://bugs.webkit.org/show_bug.cgi?id=93368
44375
44376        Reviewed by Ryosuke Niwa.
44377
44378        The WebKitNamedFlowCollection already implemented was being used by Document to store all
44379        the named flows - regardless of state - so we need to use another class to expose to JS.
44380        WebKitNamedFlowCollection was renamed to NamedFlowCollection since it is used only internally,
44381        and the C++ class used to expose to JS is DOMNamedFlowCollection (with the interface name
44382        WebKitNamedFlowCollection). DOMNamedFlowCollection is exposed via Document::webKitGetFlows(),
44383        and it itself exposes the length property, the indexed getter, and the named getter.
44384        http://dev.w3.org/csswg/css3-regions/#document-getnamedflows
44385
44386        Test: fast/regions/webkit-named-flow-collection.html
44387
44388        * CMakeLists.txt:
44389        * DerivedSources.cpp:
44390        * DerivedSources.make:
44391        * DerivedSources.pri:
44392        * GNUmakefile.list.am:
44393        * Target.pri:
44394        * WebCore.gypi:
44395        * WebCore.vcproj/WebCore.vcproj:
44396        * WebCore.xcodeproj/project.pbxproj:
44397        * bindings/gobject/GNUmakefile.am:
44398        * bindings/scripts/CodeGeneratorJS.pm:
44399        (GenerateImplementation):
44400        We need to use same trick as with HTMLPropertiesCollection, to make NamedGetter generate required code.
44401        * dom/DOMAllInOne.cpp:
44402        * dom/DOMNamedFlowCollection.cpp:
44403        (WebCore):
44404        (WebCore::DOMNamedFlowCollection::DOMNamedFlowCollection):
44405        (WebCore::DOMNamedFlowCollection::length):
44406        (WebCore::DOMNamedFlowCollection::item):
44407        (WebCore::DOMNamedFlowCollection::namedItem):
44408        (WebCore::DOMNamedFlowCollection::hasNamedItem):
44409        * dom/DOMNamedFlowCollection.h:
44410        (WebCore):
44411        (DOMNamedFlowCollection):
44412        (WebCore::DOMNamedFlowCollection::create):
44413        * dom/DOMNamedFlowCollection.idl:
44414        * dom/Document.cpp:
44415        (WebCore):
44416        (WebCore::Document::webkitGetNamedFlows):
44417        (WebCore::Document::namedFlows):
44418        * dom/Document.h:
44419        (WebCore):
44420        (Document):
44421        * dom/Document.idl:
44422        * dom/NamedFlowCollection.cpp:
44423        Renamed from Source/WebCore/dom/WebKitNamedFlowCollection.cpp.
44424        (WebCore):
44425        (WebCore::NamedFlowCollection::NamedFlowCollection):
44426        (WebCore::NamedFlowCollection::namedFlows):
44427        (WebCore::NamedFlowCollection::flowByName):
44428        (WebCore::NamedFlowCollection::ensureFlowWithName):
44429        (WebCore::NamedFlowCollection::discardNamedFlow):
44430        (WebCore::NamedFlowCollection::documentDestroyed):
44431        (WebCore::NamedFlowCollection::createCSSOMSnapshot):
44432        Used to create a snapshot of current named flows in CREATED state.
44433        * dom/NamedFlowCollection.h:
44434        Renamed from Source/WebCore/dom/WebKitNamedFlowCollection.h.
44435        (WebCore):
44436        (NamedFlowCollection):
44437        (WebCore::NamedFlowCollection::create):
44438        (WebCore::NamedFlowCollection::document):
44439        (WebCore::NamedFlowCollection::~NamedFlowCollection):
44440        (WebCore::NamedFlowCollection::NamedFlowHashFunctions::hash):
44441        (WebCore::NamedFlowCollection::NamedFlowHashFunctions::equal):
44442        (NamedFlowCollection::NamedFlowHashFunctions):
44443        (WebCore::NamedFlowCollection::NamedFlowHashTranslator::hash):
44444        (WebCore::NamedFlowCollection::NamedFlowHashTranslator::equal):
44445        Moved NamedFlowHashFunctions and NamedFlowHashTranslator definitions to .h
44446        and made them public, so they can be used in DOMNamedFlow as well.
44447        * dom/WebKitNamedFlow.cpp:
44448        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
44449        (WebCore::WebKitNamedFlow::create):
44450        * dom/WebKitNamedFlow.h:
44451        (WebCore):
44452        (WebKitNamedFlow):
44453        * inspector/InspectorCSSAgent.cpp:
44454        * rendering/FlowThreadController.cpp:
44455        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
44456
444572012-08-24  Chris Evans  <cevans@google.com>
44458
44459        Update comment regarding root node handling in XPath for detached trees.
44460        https://bugs.webkit.org/show_bug.cgi?id=36427
44461
44462        Reviewed by Alexey Proskuryakov.
44463
44464        * xml/XPathPath.cpp:
44465        (WebCore::XPath::LocationPath::evaluate): Update XPath root node comment.
44466
444672012-08-24  Justin Novosad  <junov@chromium.org>
44468
44469        [Chromium] Implementing a global limit on memory consumed by deferred 2D canvases
44470        https://bugs.webkit.org/show_bug.cgi?id=94386
44471
44472        Reviewed by Stephen White.
44473
44474        Before this change, there was no global bound on memory that could be
44475        consumed for the purpose of recording 2d canvas deferred draw commands.
44476        There was only a per canvas limit. It is possible for canvases to get
44477        dereferenced without flushing pending draw commands, which may lock
44478        resources until the canvas element is garbage collected. This makes
44479        it possible to grow memory consumption indefinitely by hitting reload
44480        successively on some canvas-intensive web pages.
44481
44482        The solution implemented in this change consists in maintaining a
44483        global registry of deferred canvas layers and tracking the sum of
44484        memory allocated by all canvases for the purpose of storing deferred
44485        draw commands. When memory consumption reaches the allowed limit,
44486        caches are cleared and draw operations are flushed on one or several
44487        canvases, starting with the least recently used, until memory
44488        consumption is below a target level.
44489
44490        New tests: webkit_unit_tests DeferredLayerManagerTest*
44491
44492        * WebCore.gypi:
44493        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
44494        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
44495        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
44496        (WebCore::Canvas2DLayerBridge::storageAllocatedForRecordingChanged):
44497        Overloaded from SkDeferredCanvas::NotificationClient. Called when
44498        there is a change in the number of bytes allocated by the deferred
44499        canvas.
44500        (WebCore):
44501        (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
44502        Overloaded from SkDeferredCanvas::NotificationClient. Called when
44503        pending draw commands are flush by the deferred canvas.
44504        (WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
44505        Called by the Canvas2DLayerManager to request the release of unlocked
44506        memory resources (caches). Request is relayed to SkDeferredCanvas.
44507        returns number of bytes freed.
44508        (WebCore::Canvas2DLayerBridge::flush):
44509        Requests that pending draw commands be flushed immediately from the
44510        deferred canvas queue. Request is relayed to SkDeferredCanvas.
44511        (WebCore::Canvas2DLayerBridge::contextAcquired):
44512        * platform/graphics/chromium/Canvas2DLayerBridge.h:
44513        (Canvas2DLayerBridge):
44514        (WebCore::Canvas2DLayerBridge::bytesAllocated):
44515        (WebCore::Canvas2DLayerBridge::updateBytesAllocated):
44516        * platform/graphics/chromium/Canvas2DLayerManager.cpp: Added.
44517        (WebCore):
44518        (WebCore::Canvas2DLayerManager::Canvas2DLayerManager):
44519        (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
44520        (WebCore::Canvas2DLayerManager::init):
44521        Sets the global limit for the maximum total number of bytes allocated
44522        by deferred layers.
44523        (WebCore::Canvas2DLayerManager::get):
44524        Singleton accessor
44525        (WebCore::Canvas2DLayerManager::layerDidDraw):
44526        Called by Canvas2DLayerBridge to indicate that the layer was drawn to.
44527        (WebCore::Canvas2DLayerManager::addLayerToList):
44528        (WebCore::Canvas2DLayerManager::layerAllocatedStorageChanged):
44529        Called by Canvas2DLayerBridge to indicate thet the memory consumed by
44530        the layer has changed.
44531        (WebCore::Canvas2DLayerManager::layerDidFlush):
44532        Called by Canvas2DLayerBridge to indicated that the pending draw
44533        commands of the layer were flushed.
44534        (WebCore::Canvas2DLayerManager::layerToBeDestroyed):
44535        Called by Canvas2DLayerBridge upon destruction.
44536        (WebCore::Canvas2DLayerManager::freeMemoryIfNecessary):
44537        Called internally. Check that current memory consumption is below
44538        the tolerated limit.  If check fails, intiates resource releases.
44539        (WebCore::Canvas2DLayerManager::removeLayerFromList):
44540        (WebCore::Canvas2DLayerManager::isInList):
44541        (WebCore::Canvas2DLayerManager::updateBytesAllocated):
44542        * platform/graphics/chromium/Canvas2DLayerManager.h: Added.
44543        (WebCore):
44544        (Canvas2DLayerManager):
44545
445462012-08-24  Parth Patel  <parpatel@rim.com>
44547
44548        [BlackBerry] Changes resulting from moving network related methods
44549        from platform client to platform settings.
44550        https://bugs.webkit.org/show_bug.cgi?id=94963
44551
44552        Reviewed by Yong Li.
44553
44554        Changes in response to Network methods moved from
44555        class BlackBerryPlatformClient to class BlackBerryPlatformSettings
44556        in platform repository.
44557
44558        No new tests as there are no logical modifications.
44559
44560        * platform/network/blackberry/NetworkJob.cpp:
44561        (WebCore::NetworkJob::storeCredentials):
44562        * platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp:
44563        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
44564
445652012-08-24  Stephen White  <senorblanco@chromium.org>
44566
44567        Enable accelerated Skia implementation of feBlend filter.
44568        https://bugs.webkit.org/show_bug.cgi?id=94954
44569
44570        Reviewed by James Robinson.
44571
44572        Will be covered by existing tests in svg/ when tests are run with
44573        accelerated painting.
44574
44575        * WebCore.gypi:
44576        * platform/graphics/filters/FEBlend.h:
44577        (FEBlend):
44578        * platform/graphics/filters/skia/FEBlendSkia.cpp: Added.
44579        (WebCore):
44580        (WebCore::toSkiaMode):
44581        (WebCore::FEBlend::platformApplySkia):
44582
445832012-08-24  Robert Kroeger  <rjkroege@chromium.org>
44584
44585        [chromium] CCLayerTreeHostImpl::scrollBy always assumes screen space deltas
44586        https://bugs.webkit.org/show_bug.cgi?id=94946
44587
44588        Reviewed by James Robinson.
44589
44590        Multiply scrollBy deltas in CCLayerTreeHostImpl to correctly support
44591        scrolling on devices that send deltas in DIP (as opposed to screen)
44592        space. Change is a nop on platforms that have not setDeviceScaleFactor
44593        to a non-unity value.
44594
44595        Tested by existing unit tests.
44596
44597        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
44598        (WebCore::CCLayerTreeHostImpl::scrollBy):
44599
446002012-08-24  Anish Bhayani  <anish.bhayani@gmail.com>
44601
44602        webkit-image-set() function not showing up when computing background property
44603        https://bugs.webkit.org/show_bug.cgi?id=94536
44604
44605        Reviewed by Simon Fraser.
44606
44607        Added isBaseValueList() to ensure ImageSetClass is not displaying shorthand notation.
44608        Tests to make sure background shows '-webkit-image-set('.
44609
44610        Test: fast/css/image-set-setting.html
44611
44612        * css/CSSValue.h:
44613        (CSSValue):
44614        (WebCore::CSSValue::isBaseValueList):
44615        * css/StylePropertySet.cpp:
44616        (WebCore::StylePropertySet::getLayeredShorthandValue):
44617
446182012-08-24  Tony Chang  <tony@chromium.org>
44619
44620        Remove unnecessary CSS selector text generation
44621        https://bugs.webkit.org/show_bug.cgi?id=94857
44622
44623        Reviewed by Ojan Vafai.
44624
44625        When setting the selector text, there was some old code that would
44626        check to see if it was unchanged. That got removed, but the code
44627        to generate the previous selector text is still there.
44628
44629        Covered by fast/css/css-set-selector-text.html and
44630        fast/css/css-set-selector-text-crash.html.
44631
44632        * css/CSSPageRule.cpp:
44633        (WebCore::CSSPageRule::setSelectorText): Remove unused oldSelectorText.
44634        * css/CSSStyleRule.cpp:
44635        (WebCore::CSSStyleRule::setSelectorText): Remove unused oldSelectorText
44636        and rather than update the cache, just invalidate the previous entry since
44637        we may not need the new selector text.
44638
446392012-08-24  Cris Neckar  <cdn@chromium.org>
44640
44641        Add support for consumable user gestures
44642        https://bugs.webkit.org/show_bug.cgi?id=94867
44643
44644        Reviewed by Adam Barth.
44645
44646        Adds a static counter of the number of consumable gestures. This is decremented either when
44647        a gestures falls out of scope or is consumed via a call to consumeUserGesture().
44648
44649        Planned usage in Chromium is to prevent the piggybacking of multiple popup windows on a
44650        single user gesture.
44651
44652        No new tests as this should not change behavior. The platform must implement consumable
44653        gestures for this to do anything.
44654
44655        * bindings/v8/ScriptController.cpp:
44656        (WebCore::ScriptController::consumeUserGesture):
44657        (WebCore):
44658        * bindings/v8/ScriptController.h:
44659        (ScriptController):
44660        * dom/UserGestureIndicator.cpp:
44661        (WebCore):
44662        (WebCore::UserGestureIndicator::UserGestureIndicator):
44663        (WebCore::UserGestureIndicator::~UserGestureIndicator):
44664        (WebCore::UserGestureIndicator::consumeUserGesture):
44665        * dom/UserGestureIndicator.h:
44666        (WebCore::UserGestureIndicator::processingUserGesture):
44667        (UserGestureIndicator):
44668
446692012-08-24  Bear Travis  <betravis@adobe.com>
44670
44671        [CSS Exclusions] Enable shape-inside for simple rectangles
44672        https://bugs.webkit.org/show_bug.cgi?id=89259
44673
44674        Reviewed by Levi Weintraub.
44675
44676        This patch is the first in a series enabling shape-inside. It adds
44677        support for inline layout within a single render block with a
44678        rectangular shape-inside.
44679        Each RenderBlock with a valid shape-inside maintains a WrapShapeInfo,
44680        which can calculate the areas, or LineSegments, where inline content
44681        can flow on a line. The WrapShapeInfo class maintains a static map of
44682        RenderBlocks to WrapShapeInfos. The basic algorithm involves three stages:
44683        1. Determine if the RenderBlock has a valid shape-inside, and store it
44684        in a WrapShapeInfo if necessary.
44685        2. If the inline content is affected by a shape-inside, use the
44686        corresponding WrapShapeInfo to break the content into line segments.
44687        3. Lay out the line segments.
44688
44689        Tests: fast/exclusions/shape-inside/shape-inside-floats-simple.html
44690               fast/exclusions/shape-inside/shape-inside-inline-elements.html
44691               fast/exclusions/shape-inside/shape-inside-overflow.html
44692               fast/exclusions/shape-inside/shape-inside-percentage-auto.html
44693               fast/exclusions/shape-inside/shape-inside-text.html
44694
44695        * CMakeLists.txt:
44696        * GNUmakefile.list.am:
44697        * Target.pri:
44698        * WebCore.gypi:
44699        * WebCore.vcproj/WebCore.vcproj:
44700        * WebCore.xcodeproj/project.pbxproj:
44701        * rendering/RenderBlock.cpp:
44702        (WebCore::RenderBlock::willBeDestroyed): Remove WrapShapeInfo when destroyed.
44703        (WebCore::RenderBlock::styleDidChange): Detect modifications to style()->wrapShapeInside.
44704        (WebCore):
44705        (WebCore::RenderBlock::updateWrapShapeInfoAfterStyleChange): Update WrapShapeInfo
44706        when style()->wrapShapeInside changes.
44707        (WebCore::RenderBlock::layoutBlock): Notify WrapShapeInfo of changes in logicalWidth
44708        and logicalHeight before laying out inline content.
44709        * rendering/RenderBlock.h:
44710        (RenderBlock):
44711        (WebCore::RenderBlock::wrapShapeInfo): Return the wrapShapeInfo associated with a
44712        RenderBlock.
44713        * rendering/RenderBlockLineLayout.cpp:
44714        (WebCore::LineWidth::LineWidth): Determine the WrapShapeInfo::LineSegment this LineWidth
44715        corresponds to, if any.
44716        (LineWidth):
44717        (WebCore::LineWidth::updateAvailableWidth): The width's LineSegment boundaries affect
44718        the available width.
44719        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): The current LineSegment
44720        affects the left & right positioning of inline boxes.
44721        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Move to the top of the inside wrap
44722        shape before beginning inline layout, and update the line segments for each line.
44723        * rendering/WrapShapeInfo.cpp: Added.
44724        (WebCore):
44725        (WebCore::WrapShapeInfo::WrapShapeInfo): Create an empty WrapShapeInfo.
44726        (WebCore::WrapShapeInfo::~WrapShapeInfo): No additional cleanup.
44727        (WebCore::WrapShapeInfo::create): Create a WrapShapeInfo reference.
44728        (WebCore::WrapShapeInfo::ensureWrapShapeInfoForRenderBlock): Create a WrapShapeInfo
44729        for a RenderBlock with an inside WrapShape and place it in the WrapShapeInfo map.
44730        (WebCore::WrapShapeInfo::wrapShapeInfoForRenderBlock): Lookup the WrapShapeInfo for
44731        a RenderBlock in the WrapShapeInfo map.
44732        (WebCore::WrapShapeInfo::isWrapShapeInfoEnabledForBlock): Determine if a RenderBlock
44733        has an inside wrap shape that we can use for inline layout.
44734        (WebCore::WrapShapeInfo::removeWrapShapeInfoForRenderBlock): Remove a RenderBlock's
44735        WrapShapeInfo from the WrapShapeInfo map.
44736        (WebCore::WrapShapeInfo::hasSegments): Returns true if there are any line segments
44737        for the current line.
44738        (WebCore::WrapShapeInfo::computeShapeSize): Compute the dimensions of the wrap shape
44739        based on a block's logical width & height.
44740        (WebCore::WrapShapeInfo::computeSegmentsForLine): Sets the current line and computes
44741        its line segments.
44742        * rendering/WrapShapeInfo.h: Added.
44743        (WebCore):
44744        (LineSegment):
44745        (WrapShapeInfo):
44746        (WebCore::WrapShapeInfo::shapeTop): The top of a wrap shape, where the inline content
44747        area begins.
44748        (WebCore::WrapShapeInfo::segments): The list of line segments for the current line.
44749        (WebCore::WrapShapeInfo::wrapShapeSizeNeedsRecomputing): Mark a WrapShapeInfo as
44750        needing to recompute its WrapShape dimensions.
44751        (WebCore::WrapShapeInfo::lineState): The current line state: above, inside, or below
44752        the wrap shape.
44753        * rendering/style/RenderStyle.cpp:
44754        (WebCore::RenderStyle::diff): Changes to shape inside require relayout.
44755
447562012-08-24  David Hyatt  <hyatt@apple.com>
44757
44758        [New Multicolumn] Plumbing to prepare for contents painting and hit testing implementation.
44759        https://bugs.webkit.org/show_bug.cgi?id=94945
44760
44761        Reviewed by Dan Bernstein.
44762
44763        Make some improvements to how column sets interact with flow threads. Make sure the last column set
44764        always expands to hold all of the remaining flow thread contents (including overflow). Rename the
44765        column height, count and width variables to have "computed" in front of them to indicate that they
44766        just represent what the multi-column algorithm computed so that there is no confusion between the
44767        computed column count and the actual number of columns in the set.
44768        
44769        Implement the ability to get the actual column count based off the logical height of the flow thread
44770        portion contained within the column set.
44771        
44772        Fix gap painting to use the actual column count rather than the computed column count.
44773
44774        * rendering/RenderFlowThread.cpp:
44775        (WebCore::RenderFlowThread::layout):
44776        After a flow thread is done laying out, have it tell the last region to expand to
44777        encompass all the remaining contents if it wants to do so. Column and page sets will always do this.
44778
44779        * rendering/RenderMultiColumnFlowThread.h:
44780        (RenderMultiColumnFlowThread):
44781        Override computeLogicalHeight() to do nothing. We want the flow thread to just keep its intrinsic
44782        height, since the last column set is always going to expand to encompass the flow thread's contents
44783        anyway. Unlike CSS Regions, we don't ever "run out of room."
44784        
44785        * rendering/RenderMultiColumnSet.cpp:
44786        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
44787        (WebCore::RenderMultiColumnSet::computeLogicalWidth):
44788        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
44789        (WebCore::RenderMultiColumnSet::columnCount):
44790        (WebCore::RenderMultiColumnSet::columnRectAt):
44791        (WebCore::RenderMultiColumnSet::paintColumnRules):
44792        (WebCore::RenderMultiColumnSet::paintColumnContents):
44793        Rename count, width and height for columns to have "computed" in front of the members and functions.
44794        In particular, this lets us distinguish the computed column count from the actual column count.
44795
44796        * rendering/RenderMultiColumnSet.h:
44797        (WebCore::RenderMultiColumnSet::computedColumnCount):
44798        (WebCore::RenderMultiColumnSet::computedColumnWidth):
44799        (WebCore::RenderMultiColumnSet::computedColumnHeight):
44800        (WebCore::RenderMultiColumnSet::setComputedColumnWidthAndCount):
44801        (WebCore::RenderMultiColumnSet::setComputedColumnHeight):
44802        Rename count, width and height for columns to have "computed" in front of the members and functions.
44803        In particular, this lets us distinguish the computed column count from the actual column count.
44804        
44805        * rendering/RenderRegion.h:
44806        (RenderRegion):
44807        (WebCore::RenderRegion::expandToEncompassFlowThreadContentsIfNeeded):
44808        * rendering/RenderRegionSet.cpp:
44809        (WebCore::RenderRegionSet::expandToEncompassFlowThreadContentsIfNeeded):
44810        (WebCore):
44811        * rendering/RenderRegionSet.h:
44812        (RenderRegionSet):
44813        Make sure region sets expand to encompass all the remaining flow thread contents. We are always
44814        able to generate more columns or pages, so in effect the amount of the flow thread we can
44815        consume is unlimited.
44816
44817
448182012-08-24  Thiago Marcos P. Santos  <thiago.santos@intel.com>
44819
44820        [Qt] Range input progress indicator is upside down when vertical and RTL is set
44821        https://bugs.webkit.org/show_bug.cgi?id=94948
44822
44823        Reviewed by Kenneth Rohde Christiansen.
44824
44825        RTL should not affect vertical sliders, but on Qt it was changing the
44826        direction of the progress indicator, making it flow in the opposite
44827        direction of the knob.
44828
44829        * platform/qt/RenderThemeQtMobile.cpp:
44830        (WebCore::RenderThemeQtMobile::paintSliderTrack):
44831
448322012-08-24  Parth Patel  <parpatel@rim.com>
44833
44834        [BlackBerry] Changes resulting from moving application directory methods from platform client to platform settings.
44835        https://bugs.webkit.org/show_bug.cgi?id=94249
44836
44837        Reviewed by Rob Buis.
44838
44839        PR 170160
44840
44841        Changes in response to Application Directory methods moved from
44842        Class BlackBerryPlatformClient to BlackBerryPlatformSettings in
44843        platform respository since these methods are more appropriate in
44844        class BlackBerryPlatformSettings.
44845
44846        No new tests as there are no logical modifications.
44847
44848        * platform/blackberry/CookieManager.cpp:
44849        (WebCore::CookieManager::CookieManager):
44850        * platform/blackberry/FileSystemBlackBerry.cpp:
44851        (WebCore::homeDirectoryPath):
44852        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
44853        (WebCore::MediaPlayerPrivate::load):
44854        * platform/network/blackberry/AutofillBackingStore.cpp:
44855        (WebCore::autofillBackingStore):
44856        * platform/network/blackberry/CredentialBackingStore.cpp:
44857        (WebCore::credentialBackingStore):
44858        * platform/network/blackberry/NetworkJob.cpp:
44859        (WebCore::NetworkJob::sendRequestWithCredentials):
44860        * plugins/PluginDatabase.cpp:
44861        (WebCore::PluginDatabase::isPreferredPluginDirectory):
44862
448632012-08-24  Ilya Tikhonovsky  <loislo@chromium.org>
44864
44865        Web Inspector: do not count weak and shortcut edges.
44866        https://bugs.webkit.org/show_bug.cgi?id=94947
44867
44868        Reviewed by Yury Semikhatsky.
44869
44870        When calculating distance from an object to Window in heap profiler we should only
44871        take into account strong real references. This means that shortcuts and weak edges should be ignored.
44872
44873        * inspector/front-end/HeapSnapshot.js:
44874        (WebInspector.HeapSnapshot.prototype._bfs):
44875
448762012-08-24  Julien Chaffraix  <jchaffraix@webkit.org>
44877
44878        Crash in RenderTableCell::borderTop() due to custom scrollbars after r124168
44879        https://bugs.webkit.org/show_bug.cgi?id=93903
44880
44881        Reviewed by Tony Chang.
44882
44883        r124168 changed when we create scrollbars so that it happens (rightly) at style change time.
44884        However the RenderScrollbar code assumes that any overflow: scroll RenderScrollbar would be
44885        created at layout time as it directly tries to layout to scrollbar parts. The big issues with
44886        the move is that the first style change operates on a detached renderer which means that we
44887        could crash in some situation.
44888
44889        Test: scrollbars/custom-scrollbar-table-cell.html
44890
44891        * rendering/RenderScrollbarPart.cpp:
44892        (WebCore::RenderScrollbarPart::computeScrollbarWidth):
44893        (WebCore::RenderScrollbarPart::computeScrollbarHeight):
44894        Fixed the crash by using style information instead of calling the renderer. This is guaranteed
44895        to be safe but it also means that custom scrollbars sizing is not right on table cells with
44896        collapsing borders. The existing logic was querying layout information at style change so I
44897        wouldn't bet on it working properly anyway.
44898
448992012-08-24  Julien Chaffraix  <jchaffraix@webkit.org>
44900
44901        Remove RenderTableSection::removeChild
44902        https://bugs.webkit.org/show_bug.cgi?id=94883
44903
44904        Reviewed by Abhishek Arya.
44905
44906        This change removed removeChild, replaced by willBeRemoved calls in the children
44907        class. This is done to ensure that post-removal invalidations are properly done
44908        in table rows and table cells.
44909
44910        Refactoring covered by existing tests.
44911
44912        * rendering/RenderTableSection.cpp:
44913        (WebCore::RenderTableSection::removeChild):
44914        * rendering/RenderTableSection.h:
44915        Removed this function...
44916
44917        * rendering/RenderTableCell.cpp:
44918        (WebCore::RenderTableCell::willBeRemovedFromTree):
44919        * rendering/RenderTableCell.h:
44920        (RenderTableCell):
44921        * rendering/RenderTableRow.cpp:
44922        (WebCore::RenderTableRow::willBeRemovedFromTree):
44923        * rendering/RenderTableRow.h:
44924        ... and moved the invalidation into the willBeRemovedFromTree functions.
44925        The willBeRemovedFromTree replaced the willBeDestroyed functions in the
44926        2 classes as the invalidation really represented tree removal updates,
44927        not death updates.
44928
449292012-08-24  Joshua Netterfield  <jnetterfield@rim.com>
44930
44931        [BlackBerry] Extend LayerFilterRenderer in preparation for CSS Shaders
44932        https://bugs.webkit.org/show_bug.cgi?id=94724
44933
44934        Reviewed by George Staikos.
44935
44936        LayerFilterRenderer defines a CSS Filter in terms of one or more `Action`s.
44937        A LayerFilterRendererAction holds a vertex shader, a fragment shader, and
44938        zero or more `Parameter`s. A Parameter is a uniform, varying, or other
44939        information which is needed to render a filter.
44940
44941        This patch implements certain new Parameter types, including vertex/element
44942        buffers and vertex attributes which are needed to implement composited
44943        CSS Shaders on BB10. In addition, a new drawing mode is required in order
44944        to draw CSS Shaders meshes from vertex/element buffers.
44945
44946        No new tests, because this patch introduces no new functionality. When
44947        the patch which enables CSS Shaders on BB10 in upstreamed, tests for
44948        CSS Shaders will prove this code to be correct.
44949
44950        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
44951        (WebCore::operationTypeToProgramID):
44952        (WebCore::Uniform::Uniform):
44953        (WebCore::Uniform1f::create):
44954        (WebCore::Uniform1f::Uniform1f):
44955        (WebCore):
44956        (WebCore::Uniform1i::apply):
44957        (WebCore::Uniform1i::create):
44958        (WebCore::Uniform1i::Uniform1i):
44959        (WebCore::Uniform2f::create):
44960        (WebCore::Uniform2f::Uniform2f):
44961        (WebCore::Uniform3f::create):
44962        (WebCore::Uniform3f::Uniform3f):
44963        (WebCore::Uniform4f::apply):
44964        (WebCore::Uniform4f::create):
44965        (WebCore::Uniform4f::Uniform4f):
44966        (WebCore::Matrix4fv::apply):
44967        (WebCore::Matrix4fv::create):
44968        (WebCore::Matrix4fv::Matrix4fv):
44969        (WebCore::Matrix4fv::~Matrix4fv):
44970        (WebCore::Buffer::apply):
44971        (WebCore::Buffer::restoreState):
44972        (WebCore::Buffer::create):
44973        (WebCore::Buffer::Buffer):
44974        (WebCore::VertexAttribf::apply):
44975        (WebCore::VertexAttribf::restoreState):
44976        (WebCore::VertexAttribf::create):
44977        (WebCore::VertexAttribf::VertexAttribf):
44978        (WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
44979        (WebCore::LayerFilterRendererAction::useActionOn):
44980        (WebCore::LayerFilterRendererAction::restoreState):
44981        (WebCore::LayerFilterRenderer::LayerFilterRenderer):
44982        (WebCore::LayerFilterRenderer::actionsForOperations):
44983        (WebCore::LayerFilterRenderer::applyActions):
44984        * platform/graphics/blackberry/LayerFilterRenderer.h:
44985        (Parameter):
44986        (WebCore::Parameter::restoreState):
44987        (WebCore::Parameter::~Parameter):
44988        (WebCore::Parameter::Parameter):
44989        (WebCore):
44990        (Uniform):
44991        (WebCore::Uniform::~Uniform):
44992        (Uniform1f):
44993        (Uniform1i):
44994        (Uniform2f):
44995        (Uniform3f):
44996        (Uniform4f):
44997        (Matrix4fv):
44998        (Buffer):
44999        (VertexAttribf):
45000        (WebCore::LayerFilterRendererAction::appendParameter):
45001        (LayerFilterRendererAction):
45002        (WebCore::LayerFilterRendererAction::drawingMode):
45003        (WebCore::LayerFilterRendererAction::setDrawingMode):
45004        (WebCore::LayerFilterRendererAction::drawingModeParameter):
45005        (WebCore::LayerFilterRendererAction::setDrawingModeParameter):
45006
450072012-08-24  Tommy Widenflycht  <tommyw@google.com>
45008
45009        MediaStream API: Add readyState functionality to RTCPeerConnection
45010        https://bugs.webkit.org/show_bug.cgi?id=94813
45011
45012        Reviewed by Adam Barth.
45013
45014        This patch adds readyState functionality to RTCPeerConnection together with related callbacks and methods.
45015
45016        Test: fast/mediastream/RTCPeerConnection-state.html
45017
45018        * Modules/mediastream/RTCPeerConnection.cpp:
45019        (WebCore::RTCPeerConnection::RTCPeerConnection):
45020        (WebCore::RTCPeerConnection::readyState):
45021        (WebCore):
45022        (WebCore::RTCPeerConnection::close):
45023        (WebCore::RTCPeerConnection::didChangeReadyState):
45024        (WebCore::RTCPeerConnection::stop):
45025        (WebCore::RTCPeerConnection::changeReadyState):
45026        * Modules/mediastream/RTCPeerConnection.h:
45027        (RTCPeerConnection):
45028        * Modules/mediastream/RTCPeerConnection.idl:
45029        * platform/mediastream/RTCPeerConnectionHandler.cpp:
45030        (RTCPeerConnectionHandlerDummy):
45031        (WebCore::RTCPeerConnectionHandlerDummy::stop):
45032        (WebCore):
45033        * platform/mediastream/RTCPeerConnectionHandler.h:
45034        (RTCPeerConnectionHandler):
45035        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
45036        (RTCPeerConnectionHandlerClient):
45037        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
45038        (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
45039        (WebCore::RTCPeerConnectionHandlerChromium::stop):
45040        (WebCore):
45041        (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
45042        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
45043        (RTCPeerConnectionHandlerChromium):
45044
450452012-08-24  Andrey Adaikin  <aandrey@chromium.org>
45046
45047        Web Inspector: [WebGL] A follow up to simplify code with nested closures
45048        https://bugs.webkit.org/show_bug.cgi?id=94931
45049
45050        Reviewed by Pavel Feldman.
45051
45052        Simplifies the code with nested closures.
45053
45054        * inspector/InjectedScriptWebGLModuleSource.js:
45055        (.):
45056
450572012-08-24  Vsevolod Vlasov  <vsevik@chromium.org>
45058
45059        Web Inspector: Get rid of frontendReused logic on front-end.
45060        https://bugs.webkit.org/show_bug.cgi?id=94929
45061
45062        Reviewed by Pavel Feldman.
45063
45064        Removed frontendReused method from ResourceTreeModel.
45065
45066        * inspector/front-end/ResourceTreeModel.js:
45067        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
45068        * inspector/front-end/Workspace.js:
45069        (WebInspector.Workspace): workspace doesn't need to listen for CachedResourcesLoaded event anymore.
45070        * inspector/front-end/inspector.js: removed unused method.
45071
450722012-08-24  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
45073
45074        Share WebKit-Gtk's Enchant implementation with others WebKit ports.
45075        https://bugs.webkit.org/show_bug.cgi?id=94320
45076
45077        Reviewed by Carlos Garcia Campos.
45078
45079        The main reason of this change is to share WebKit-Gtk implementation of spelling
45080        with others ports that use the Enchant library.
45081        This is the first step to enable spelling for WebKit-Efl (https://bugs.webkit.org/show_bug.cgi?id=91854)
45082
45083        Files that implement spelling were moved to platform/text/enchant directory.
45084
45085        This patch stops using Pango backend to find the beginning/end of the word.
45086        Those information are delivered through ICU interface by using TextBreakIterator.
45087
45088        * GNUmakefile.am: Added newly created 'enchant' directory to WebKit-Gtk's sources.
45089        * GNUmakefile.list.am: Updated location of TextCheckerEnchant.{h,cpp} files.
45090
45091        * editing/visible_units.cpp: Removed 'static' modifier for 'isLogicalStartOfWord' and 'islogicalEndOfWord' functions.
45092        (WebCore::isLogicalStartOfWord):
45093        (WebCore::islogicalEndOfWord):
45094        * editing/visible_units.h: Added isLogicalStartOfWord' and 'islogicalEndOfWord' functions to header as they are used by TextCheckerEnchant.cpp
45095
45096        * platform/text/enchant/TextCheckerEnchant.cpp: Renamed from Source/WebCore/platform/text/gtk/TextCheckerEnchant.cpp.
45097        (enchantDictDescribeCallback): Added comments.
45098        (TextCheckerEnchant::TextCheckerEnchant):
45099        (TextCheckerEnchant::~TextCheckerEnchant):
45100        (TextCheckerEnchant::ignoreWord):
45101        (TextCheckerEnchant::learnWord):
45102        (TextCheckerEnchant::checkSpellingOfString): Using ICU instead of Pango to find out the beginning/end of the word.
45103        (TextCheckerEnchant::getGuessesForWord): Replaced gchar type to char.
45104        (TextCheckerEnchant::updateSpellCheckingLanguages): Using WebCore::defaulLanguage() instead of Pango backend.
45105        (TextCheckerEnchant::getSpellCheckingLanguages):
45106        (TextCheckerEnchant::freeEnchantBrokerDictionaries):
45107        * platform/text/enchant/TextCheckerEnchant.h: Renamed from Source/WebCore/platform/text/gtk/TextCheckerEnchant.h.
45108        (WebCore):
45109        (TextCheckerEnchant):
45110        (WebCore::TextCheckerEnchant::create):
45111
451122012-08-24  Pavel Feldman  <pfeldman@chromium.org>
45113
45114        Web Inspector: do not send profile headers to the front-end until explicitly requested.
45115        https://bugs.webkit.org/show_bug.cgi?id=94928
45116
45117        Reviewed by Vsevolod Vlasov.
45118
45119        Simple flag is added.
45120
45121        * inspector/InspectorProfilerAgent.cpp:
45122        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
45123        (WebCore::InspectorProfilerAgent::addProfile):
45124        (WebCore::InspectorProfilerAgent::disable):
45125        (WebCore::InspectorProfilerAgent::getProfileHeaders):
45126        (WebCore):
45127        (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
45128        * inspector/InspectorProfilerAgent.h:
45129        (InspectorProfilerAgent):
45130
451312012-08-24  Pavel Feldman  <pfeldman@chromium.org>
45132
45133        Web Inspector: make ui component compile
45134        https://bugs.webkit.org/show_bug.cgi?id=94827
45135
45136        Reviewed by Vsevolod Vlasov.
45137
45138        Moved buildImagePreviewContents into the sdk-aware code.
45139        Drive-by more compilation fixes.
45140
45141        * inspector/compile-front-end.py:
45142        * inspector/front-end/DOMPresentationUtils.js:
45143        (WebInspector.DOMPresentationUtils.buildImagePreviewContents.errorCallback):
45144        (WebInspector.DOMPresentationUtils.buildImagePreviewContents.buildContent):
45145        (WebInspector.DOMPresentationUtils.buildImagePreviewContents):
45146        * inspector/front-end/Database.js:
45147        * inspector/front-end/DefaultTextEditor.js:
45148        (WebInspector.TextEditorMainPanel):
45149        (WebInspector.TextEditorMainPanel.prototype._createLink):
45150        * inspector/front-end/ElementsPanel.js:
45151        * inspector/front-end/NetworkPanel.js:
45152        (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
45153        * inspector/front-end/ParsedURL.js:
45154        (WebInspector.ParsedURL.prototype.get displayName):
45155        * inspector/front-end/ResourceUtils.js:
45156        * inspector/front-end/SourceFrame.js:
45157        (WebInspector.TextEditorDelegateForSourceFrame.prototype.populateTextAreaContextMenu):
45158        (WebInspector.TextEditorDelegateForSourceFrame.prototype.createLink):
45159        * inspector/front-end/TextEditor.js:
45160        (WebInspector.TextEditorDelegate.prototype.populateTextAreaContextMenu):
45161        (WebInspector.TextEditorDelegate.prototype.createLink):
45162        * inspector/front-end/TimelinePresentationModel.js:
45163        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
45164        * inspector/front-end/UIUtils.js:
45165
451662012-08-24  'Pavel Feldman'  <pfeldman@chromium.org>
45167
45168        Not reviewed: fixing inspector/elements/iframe-load-event.html broken by r126572.
45169
45170        * inspector/front-end/DOMAgent.js:
45171        (WebInspector.DOMNode.prototype.resolveURL):
45172
451732012-08-24  Andrey Adaikin  <aandrey@chromium.org>
45174
45175        Web Inspector: [WebGL] Implement custom wrap functions on GL context
45176        https://bugs.webkit.org/show_bug.cgi?id=94799
45177
45178        Reviewed by Pavel Feldman.
45179
45180        Implement custom wrap functions on WebGL rendering context for WebGL instrumentation.
45181
45182        * inspector/InjectedScriptWebGLModuleSource.js:
45183        (.):
45184
451852012-08-24  Pavel Feldman  <pfeldman@chromium.org>
45186
45187        Web Inspector: resolve URLs upon creation, get rid of populateHrefContextMenu
45188        https://bugs.webkit.org/show_bug.cgi?id=94900
45189
45190        Reviewed by Vsevolod Vlasov.
45191
45192        - This change makes sure we resolve URLs upon adding the to the UI. Then we treat them as absolute links in context menu, etc.
45193        - There is no need to override context menu for links anymore - system menu will do.
45194
45195        * inspector/front-end/AuditResultView.js:
45196        (WebInspector.AuditResultView):
45197        * inspector/front-end/ConsoleView.js:
45198        * inspector/front-end/DOMAgent.js:
45199        (WebInspector.DOMNode.prototype.descendantUserPropertyCount):
45200        (WebInspector.DOMNode.prototype.resolveURL):
45201        * inspector/front-end/ElementsPanel.js:
45202        * inspector/front-end/ElementsTreeOutline.js:
45203        (WebInspector.ElementsTreeOutline.prototype.populateContextMenu):
45204        (WebInspector.ElementsTreeElement.prototype._buildAttributeDOM):
45205        * inspector/front-end/HandlerRegistry.js:
45206        (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
45207        (WebInspector.HandlerRegistry.prototype._appendContentProviderItems):
45208        (WebInspector.HandlerRegistry.prototype._appendHrefItems):
45209        * inspector/front-end/ParsedURL.js:
45210        (WebInspector.ParsedURL.completeURL):
45211        * inspector/front-end/ResourceUtils.js:
45212        (WebInspector.linkifyRequestAsNode):
45213        * inspector/front-end/StylesSidebarPane.js:
45214        (WebInspector.StylesSidebarPane):
45215        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
45216        * inspector/front-end/UIUtils.js:
45217
452182012-08-24  Xan Lopez  <xlopez@igalia.com>
45219
45220        [GTK] Use the new 'feature_defines' variable to generate DOM bindings
45221        https://bugs.webkit.org/show_bug.cgi?id=94919
45222
45223        Reviewed by Carlos Garcia Campos.
45224
45225        Update to use the new 'feature_defines' variable, otherwise the
45226        bindings will be broken.
45227
45228        * bindings/gobject/GNUmakefile.am: ditto.
45229
452302012-08-24  Kentaro Hara  <haraken@chromium.org>
45231
45232        Remove RefPtr from HTMLTextAreaElement::m_placeholder
45233        https://bugs.webkit.org/show_bug.cgi?id=94338
45234
45235        Reviewed by Kent Tamura.
45236
45237        To avoid reference cycles of RefPtr<Node>s, we want to remove
45238        unnecessary RefPtr<Node>s. The rationale is described in bug 94324.
45239
45240        HTMLTextAreaElement::m_placeholder does not need to be a RefPtr<Node>,
45241        because it is guaranteed to point to a shadow DOM tree of the
45242        HTMLTextAreaElement node, which is guaranteed to exist in the subtree
45243        of the HTMLTextAreaElement node.
45244
45245        No tests. No change in behavior.
45246
45247        * html/HTMLTextAreaElement.cpp:
45248        (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
45249        (WebCore::HTMLTextAreaElement::placeholderElement):
45250        (WebCore::HTMLTextAreaElement::attach):
45251        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
45252        * html/HTMLTextAreaElement.h:
45253        (HTMLTextAreaElement):
45254
452552012-08-24  Dan Carney  <dcarney@google.com>
45256
45257        [V8] Refactor away IsolatedWorld
45258        https://bugs.webkit.org/show_bug.cgi?id=93971
45259
45260        Reviewed by Kentaro Hara.
45261
45262        Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld.
45263        This paves the way towards a JSC-like use of DOMWrapperWorld.
45264
45265        No new tests. No change in functionality.
45266
45267        * UseV8.cmake:
45268        * WebCore.gypi:
45269        * bindings/v8/DOMWrapperWorld.cpp:
45270        (WebCore):
45271        (WebCore::DOMWrapperWorld::createUninitializedWorld):
45272        (WebCore::DOMWrapperWorld::createMainWorld):
45273        (WebCore::mainThreadNormalWorld):
45274        (WebCore::isolatedWorldMap):
45275        (WebCore::DOMWrapperWorld::deallocate):
45276        (WebCore::DOMWrapperWorld::getOrCreateIsolatedWorld):
45277        * bindings/v8/DOMWrapperWorld.h:
45278        (DOMWrapperWorld):
45279        (WebCore::DOMWrapperWorld::isolatedWorldsExist):
45280        (WebCore::DOMWrapperWorld::isMainWorld):
45281        (WebCore::DOMWrapperWorld::worldId):
45282        (WebCore::DOMWrapperWorld::extensionGroup):
45283        (WebCore::DOMWrapperWorld::domDataStore):
45284        (WebCore::DOMWrapperWorld::deref):
45285        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
45286        * bindings/v8/IsolatedWorld.cpp: Removed.
45287        * bindings/v8/IsolatedWorld.h: Removed.
45288        * bindings/v8/ScriptController.cpp:
45289        (WebCore::ScriptController::evaluateInIsolatedWorld):
45290        * bindings/v8/V8DOMMap.cpp:
45291        (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
45292        (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
45293        * bindings/v8/V8DOMMap.h:
45294        (DOMDataStoreHandle):
45295        * bindings/v8/V8DOMWrapper.h:
45296        (WebCore::V8DOMWrapper::getCachedWrapper):
45297        * bindings/v8/V8IsolatedContext.cpp:
45298        (WebCore::V8IsolatedContext::V8IsolatedContext):
45299        (WebCore::V8IsolatedContext::destroy):
45300        * bindings/v8/V8IsolatedContext.h:
45301        (V8IsolatedContext):
45302        (WebCore::V8IsolatedContext::getEntered):
45303        (WebCore::V8IsolatedContext::world):
45304        * bindings/v8/V8PerIsolateData.h:
45305        (WebCore::V8PerIsolateData::registerDOMDataStore):
45306        (WebCore::V8PerIsolateData::unregisterDOMDataStore):
45307
453082012-08-24  Adam Barth  <abarth@webkit.org>
45309
45310        [V8] Improve the developer ergonomics of ScopedPersistent
45311        https://bugs.webkit.org/show_bug.cgi?id=94901
45312
45313        Reviewed by Kentaro Hara.
45314
45315        As requested by haraken, this patch adds some helper functions to
45316        ScopedPersistent so that we don't need to call get() all the time.
45317
45318        * bindings/v8/ScheduledAction.cpp:
45319        (WebCore::ScheduledAction::execute):
45320        * bindings/v8/ScopedPersistent.h:
45321        (WebCore::ScopedPersistent::get):
45322        (WebCore::ScopedPersistent::operator->):
45323        (ScopedPersistent):
45324        (WebCore::ScopedPersistent::isEmpty):
45325        * bindings/v8/ScriptValue.cpp:
45326        (WebCore::ScriptValue::getString):
45327        (WebCore::ScriptValue::toString):
45328        * bindings/v8/ScriptValue.h:
45329        (WebCore::ScriptValue::isFunction):
45330        (WebCore::ScriptValue::isNull):
45331        (WebCore::ScriptValue::isUndefined):
45332        (WebCore::ScriptValue::isObject):
45333        (WebCore::ScriptValue::hasNoValue):
45334        * bindings/v8/V8AbstractEventListener.cpp:
45335        (WebCore::V8AbstractEventListener::~V8AbstractEventListener):
45336        (WebCore::V8AbstractEventListener::getReceiverObject):
45337        * bindings/v8/V8AbstractEventListener.h:
45338        (WebCore::V8AbstractEventListener::hasExistingListenerObject):
45339        * bindings/v8/V8DOMWindowShell.cpp:
45340        (WebCore::V8DOMWindowShell::isContextInitialized):
45341        (WebCore::V8DOMWindowShell::disposeContextHandles):
45342        (WebCore::V8DOMWindowShell::clearForClose):
45343        (WebCore::V8DOMWindowShell::clearForNavigation):
45344        (WebCore::V8DOMWindowShell::initContextIfNeeded):
45345        (WebCore::V8DOMWindowShell::updateDocumentWrapper):
45346        (WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
45347        (WebCore::V8DOMWindowShell::clearDocumentWrapperCache):
45348        (WebCore::V8DOMWindowShell::setSecurityToken):
45349        (WebCore::V8DOMWindowShell::updateDocument):
45350        (WebCore::V8DOMWindowShell::namedItemAdded):
45351        (WebCore::V8DOMWindowShell::namedItemRemoved):
45352        (WebCore::V8DOMWindowShell::updateSecurityOrigin):
45353        * bindings/v8/V8PerContextData.cpp:
45354        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
45355        (WebCore::V8PerContextData::constructorForTypeSlowCase):
45356
453572012-08-23  Pavel Feldman  <pfeldman@chromium.org>
45358
45359        Web Inspector: move ResourceViews to "components" module - it is used from the Resources as well.
45360        https://bugs.webkit.org/show_bug.cgi?id=94904
45361
45362        Reviewed by Vsevolod Vlasov.
45363
45364        * WebCore.gypi:
45365        * inspector/compile-front-end.py:
45366        * inspector/front-end/NetworkPanel.js:
45367        * inspector/front-end/inspector.html:
45368
453692012-08-24  Xiaobo Wang  <xbwang@torchmobile.com.cn>
45370
45371        Check argument count in the dispatch function for overloaded functions
45372        https://bugs.webkit.org/show_bug.cgi?id=94790
45373
45374        Reviewed by Kentaro Hara.
45375
45376        Throw NotEnoughArguments exception for overloaded functions if actual argument
45377        count is less than the least mandatory argument count among all overloaded.
45378
45379        Reset JS and V8 binding tests result for the change.
45380
45381        * bindings/scripts/CodeGeneratorJS.pm:
45382        (GenerateFunctionParametersCheck):
45383        (GenerateOverloadedFunction):
45384        * bindings/scripts/CodeGeneratorV8.pm:
45385        (GenerateFunctionParametersCheck):
45386        (GenerateOverloadedFunctionCallback):
45387        * bindings/scripts/test/JS/JSTestObj.cpp:
45388        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
45389        (WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
45390        * bindings/scripts/test/V8/V8TestObj.cpp:
45391        (WebCore::TestObjV8Internal::overloadedMethodCallback):
45392        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
45393
453942012-08-23  Frederik Gladhorn  <gladhorn@kde.org>
45395
45396        Make it possible to build WebKit with Python 3 (and 2)
45397        https://bugs.webkit.org/show_bug.cgi?id=94814
45398
45399        Exceptions need a hack to work with both.
45400        string.join was already deprecated in Python 2.
45401        Relative imports are no longer supported, use package name instead.
45402
45403        Reviewed by Ryosuke Niwa.
45404
45405        * inspector/CodeGeneratorInspector.py:
45406        (EnumConstants.get_enum_constant_code):
45407        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
45408        (Generator.go):
45409        (Generator.process_event):
45410        (Generator.process_command):
45411
454122012-08-24  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
45413
45414        Get rid of m_useLatchedWheelEventNode
45415        https://bugs.webkit.org/show_bug.cgi?id=94684
45416
45417        Reviewed by Ryosuke Niwa.
45418
45419        Moves the setting of m_useLatchedWheelEventNode into PlatformWheelEvent.
45420
45421        * page/EventHandler.cpp:
45422        (WebCore::EventHandler::EventHandler):
45423        (WebCore::EventHandler::handleWheelEvent):
45424        (WebCore::EventHandler::defaultWheelEventHandler):
45425        (WebCore::EventHandler::handleGestureScrollCore):
45426        * page/EventHandler.h:
45427        * platform/PlatformWheelEvent.h:
45428        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
45429        (WebCore::PlatformWheelEvent::setUseLatchedEventNode):
45430        (PlatformWheelEvent):
45431        (WebCore::PlatformWheelEvent::hasPreciseScrollingDeltas):
45432        (WebCore::PlatformWheelEvent::useLatchedEventNode):
45433
454342012-08-24  Yoshifumi Inoue  <yosin@chromium.org>
45435
45436        [Forms] Multiple fields time input UI should handle Delete key as Backspace key
45437        https://bugs.webkit.org/show_bug.cgi?id=94902
45438
45439        Reviewed by Kent Tamura.
45440
45441        This patch adds treating "Delete" key as same as "Backspace" key for
45442        multiple fields time input UI. This patch affects ports which enable
45443        both ENABLE_INPUT_TYPE_TIME and ENABLES_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
45444
45445        No new tests. This patch adds a test case for "Delete" key to
45446        fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
45447
45448        * html/shadow/DateTimeFieldElement.cpp:
45449        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Changed
45450        condition expression to check both Backspace(U+0008) key and
45451        Delete(U+007F) key.
45452
454532012-08-24  Sheriff Bot  <webkit.review.bot@gmail.com>
45454
45455        Unreviewed, rolling out r126546.
45456        http://trac.webkit.org/changeset/126546
45457        https://bugs.webkit.org/show_bug.cgi?id=94911
45458
45459        Caused inspector tests to timeout (Requested by dominicc on
45460        #webkit).
45461
45462        * WebCore.gypi:
45463        * inspector/compile-front-end.py:
45464        * inspector/front-end/NetworkPanel.js:
45465        * inspector/front-end/inspector.html:
45466
454672012-08-24  Sergio Villar Senin  <svillar@igalia.com>
45468
45469        [GTK] Purge unused favicons from IconDatabase after 30 days
45470        https://bugs.webkit.org/show_bug.cgi?id=82346
45471
45472        Reviewed by Gustavo Noronha Silva.
45473
45474        Favicons will be removed from the icon database after not being used
45475        for more than 30 days. This will keep the database size under
45476        control.
45477
45478        * loader/icon/IconDatabase.cpp:
45479        (WebCore):
45480        (WebCore::IconDatabase::performURLImport): filter icons older than
45481        30 days.
45482
454832012-08-23  Sheriff Bot  <webkit.review.bot@gmail.com>
45484
45485        Unreviewed, rolling out r126542.
45486        http://trac.webkit.org/changeset/126542
45487        https://bugs.webkit.org/show_bug.cgi?id=94907
45488
45489        Broke WK2 build on OS X (Requested by tronical_ on #webkit).
45490
45491        * inspector/CodeGeneratorInspector.py:
45492        (EnumConstants.get_enum_constant_code):
45493        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
45494        (Generator.go):
45495        (Generator.process_event):
45496        (Generator.process_command):
45497
454982012-08-23  Kentaro Hara  <haraken@chromium.org>
45499
45500        [V8] StringCache should not return already disposed strings
45501        https://bugs.webkit.org/show_bug.cgi?id=94899
45502
45503        Reviewed by Adam Barth.
45504
45505        See this Chromium bug (http://code.google.com/p/chromium/issues/detail?id=143937)
45506        for details.
45507
45508        I investigated the crash and found that v8ExternalString() can return
45509        already disposed strings:
45510
45511          class StringCache {
45512            v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, ...)
45513            {
45514                if (m_lastStringImpl.get() == stringImpl) {
45515                    ASSERT(!m_lastV8String.IsNearDeath());
45516                    ASSERT(!m_lastV8String.IsEmpty());
45517                    return v8::Local<v8::String>::New(m_lastV8String); // m_lastV8String might be already disposed.
45518                }
45519                return v8ExternalStringSlow(stringImpl, ...);
45520            }
45521          }
45522
45523        I couldn't find why m_lastV8String can be prematurely disposed, but the
45524        following fix solves the crash:
45525
45526          class StringCache {
45527            v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, ...)
45528            {
45529                if (m_lastStringImpl.get() == stringImpl && m_lastV8String.IsWeak())
45530                    return v8::Local<v8::String>::New(m_lastV8String);
45531                return v8ExternalStringSlow(stringImpl, ...);
45532            }
45533          }
45534
45535        Although the ideal fix might be to fix the root cause of the premature disposal,
45536        I think that the proposed fix is reasonable for safety. In fact, we've so far
45537        encountered crashes caused by premature disposals (e.g. r123500). The proposed fix
45538        will prevent future crashes caused by premature disposals.
45539
45540        No tests. The crash depends on GC behavior and I couldn't write a test that
45541        reproduces the crash. Open http://lore.com/testdrive/Navigating-the-Universe
45542        and confirm that Chromium doesn't crash.
45543
45544        * bindings/v8/V8ValueCache.cpp:
45545        (WebCore::StringCache::v8ExternalStringSlow):
45546        * bindings/v8/V8ValueCache.h:
45547        (WebCore::StringCache::v8ExternalString):
45548
455492012-08-23  Pavel Feldman  <pfeldman@chromium.org>
45550
45551        Web Inspector: move ResourceViews to "components" module - it is used from the Resources as well.
45552        https://bugs.webkit.org/show_bug.cgi?id=94904
45553
45554        Reviewed by Vsevolod Vlasov.
45555
45556        * WebCore.gypi:
45557        * inspector/compile-front-end.py:
45558        * inspector/front-end/NetworkPanel.js:
45559        * inspector/front-end/inspector.html:
45560
455612012-08-23  Adam Barth  <abarth@webkit.org>
45562
45563        [V8] V8DOMWindowShell should use ScopedPersistent
45564        https://bugs.webkit.org/show_bug.cgi?id=94882
45565
45566        Reviewed by Kentaro Hara.
45567
45568        This patch updates V8DOMWindowShell to use ScopedPersistent rather than
45569        manually managing v8::Persistent handles. I've also fixed some style
45570        issues in code I needed to edit for this patch. This class could use
45571        more touchup, but I'm going to hold off until the next patch.
45572
45573        * bindings/v8/ScopedPersistent.h:
45574        (WebCore::ScopedPersistent::adopt):
45575        (ScopedPersistent):
45576        * bindings/v8/V8DOMWindowShell.cpp:
45577        (WebCore::initializeV8IfNeeded):
45578        (WebCore):
45579        (WebCore::V8DOMWindowShell::isContextInitialized):
45580        (WebCore::V8DOMWindowShell::disposeContextHandles):
45581        (WebCore::V8DOMWindowShell::destroyGlobal):
45582        (WebCore::V8DOMWindowShell::clearForClose):
45583        (WebCore::V8DOMWindowShell::clearForNavigation):
45584        (WebCore::V8DOMWindowShell::initContextIfNeeded):
45585        (WebCore::V8DOMWindowShell::setContext):
45586        (WebCore::V8DOMWindowShell::updateDocumentWrapper):
45587        (WebCore::V8DOMWindowShell::clearDocumentWrapper):
45588        (WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
45589        (WebCore::V8DOMWindowShell::clearDocumentWrapperCache):
45590        (WebCore::V8DOMWindowShell::setSecurityToken):
45591        (WebCore::V8DOMWindowShell::updateDocument):
45592        (WebCore::getter):
45593        (WebCore::V8DOMWindowShell::namedItemAdded):
45594        (WebCore::V8DOMWindowShell::namedItemRemoved):
45595        (WebCore::V8DOMWindowShell::updateSecurityOrigin):
45596        * bindings/v8/V8DOMWindowShell.h:
45597        (WebCore::V8DOMWindowShell::context):
45598        (V8DOMWindowShell):
45599
456002012-08-23  Sheriff Bot  <webkit.review.bot@gmail.com>
45601
45602        Unreviewed, rolling out r126496.
45603        http://trac.webkit.org/changeset/126496
45604        https://bugs.webkit.org/show_bug.cgi?id=94895
45605
45606        Broke TestNotificationActiveDescendantChanged (Requested by
45607        dominicc on #webkit).
45608
45609        * accessibility/AccessibilityNodeObject.cpp:
45610        * accessibility/AccessibilityNodeObject.h:
45611        (AccessibilityNodeObject):
45612        * accessibility/AccessibilityObject.cpp:
45613        * accessibility/AccessibilityObject.h:
45614        (AccessibilityObject):
45615        * accessibility/AccessibilityRenderObject.cpp:
45616        (WebCore::AccessibilityRenderObject::title):
45617        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
45618        (WebCore::AccessibilityRenderObject::isDescendantOfElementType):
45619        * accessibility/AccessibilityRenderObject.h:
45620        (AccessibilityRenderObject):
45621
456222012-08-23  Frederik Gladhorn  <gladhorn@kde.org>
45623
45624        Make it possible to build WebKit with Python 3 (and 2)
45625        https://bugs.webkit.org/show_bug.cgi?id=94814
45626
45627        Exceptions need a hack to work with both.
45628        string.join was already deprecated in Python 2.
45629        Relative imports are no longer supported, use package name instead.
45630
45631        Reviewed by Ryosuke Niwa.
45632
45633        * inspector/CodeGeneratorInspector.py:
45634        (EnumConstants.get_enum_constant_code):
45635        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
45636        (Generator.go):
45637        (Generator.process_event):
45638        (Generator.process_command):
45639
456402012-08-23  Antoine Labour  <piman@chromium.org>
45641
45642        [chromium] Fix lost context when textures are evicted
45643        https://bugs.webkit.org/show_bug.cgi?id=94892
45644
45645        Reviewed by James Robinson.
45646
45647        After eviction, the CCPrioritizedTextureManager is in a limbo state
45648        where all its resources are invalid. If we try to release them we will
45649        double-destroy them.
45650
45651        New test: CCLayerTreeHostTestLostContextAfterEvictTextures.
45652
45653        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
45654        (WebCore::CCThreadProxy::recreateContextOnImplThread):
45655
456562012-08-23  Keishi Hattori  <keishi@webkit.org>
45657
45658        REGRESSION(r126132): thumb doesn't match click position for rtl input type=range
45659        https://bugs.webkit.org/show_bug.cgi?id=94890
45660
45661        Reviewed by Kent Tamura.
45662
45663        r126132 broke rtl input type=range so the thumb doesn't match click position.
45664
45665        Added new tests to range-hit-test-with-padding.html.
45666
45667        * html/shadow/SliderThumbElement.cpp:
45668        (WebCore::SliderThumbElement::setPositionFromPoint):
45669
456702012-08-23  James Robinson  <jamesr@chromium.org>
45671
45672        Add OVERRIDE and deinline virtual getters on *PlatformGestureCurve
45673        https://bugs.webkit.org/show_bug.cgi?id=94887
45674
45675        Reviewed by Dirk Pranke.
45676
45677        This makes clang happy. Clang makes me happy. By induction, this makes me happy.
45678
45679        * platform/TouchpadFlingPlatformGestureCurve.cpp:
45680        (WebCore::TouchpadFlingPlatformGestureCurve::debugName):
45681        (WebCore):
45682        * platform/TouchpadFlingPlatformGestureCurve.h:
45683        (TouchpadFlingPlatformGestureCurve):
45684        * platform/WheelFlingPlatformGestureCurve.cpp:
45685        (WebCore::WheelFlingPlatformGestureCurve::debugName):
45686        (WebCore):
45687        * platform/WheelFlingPlatformGestureCurve.h:
45688        (WheelFlingPlatformGestureCurve):
45689
456902012-08-23  Yoshifumi Inoue  <yosin@chromium.org>
45691
45692        [Forms] Step mismatched value should be editable in multiple field time UI.
45693        https://bugs.webkit.org/show_bug.cgi?id=94664
45694
45695        Reviewed by Kent Tamura.
45696
45697        This patch changes layout method of multiple field time input UI to
45698        check value of the "input" element in addition to step and range to
45699        allow users to change step mismatched value from UI.
45700
45701        Tests: fast/forms/time-multiple-fields/time-multiple-fields-change-layout-by-value.html: for changing layout by value change.
45702        This patch also adds new test case into fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html.
45703
45704        * html/TimeInputType.cpp:
45705        (WebCore::TimeInputType::createShadowSubtree): Changed for DateTimeEditElement::create signature change.
45706        (WebCore::TimeInputType::minOrMaxAttributeChanged): Changed to call updateInnerTextValue instead of removed updateEditElementLayout()
45707        (WebCore::TimeInputType::stepAttributeChanged): ditto.
45708        (WebCore::TimeInputType::updateInnerTextValue): Changed for DateTimeEditElement::setValueAsDate() and setEmptyValue() signature change.
45709        * html/TimeInputType.h:
45710        (TimeInputType): Removed updateEditElementLayout() declaration.
45711        * html/shadow/DateTimeEditElement.cpp:
45712        (DateTimeEditBuilder):
45713        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Added a new parameter date value to constructor to use it for layout decision.
45714        (WebCore::DateTimeEditBuilder::needMillisecondField): Changed to check date value too.
45715        (WebCore::DateTimeEditBuilder::needMinuteField): ditto
45716        (WebCore::DateTimeEditBuilder::needSecondField): ditto
45717        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly): ditto
45718        (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto
45719        (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto
45720        (WebCore::DateTimeEditElement::create): Changed for removing stepRange parameter.
45721        (WebCore::DateTimeEditElement::layout): Changed to keep focus field for new layout.
45722        (WebCore::DateTimeEditElement::setValueAsDate): Changed to call layout() with StepRange and date value.
45723        (WebCore::DateTimeEditElement::setEmptyValue): ditto
45724        * html/shadow/DateTimeEditElement.h:
45725        (DateTimeEditElement):
45726
457272012-08-23  Andreas Kling  <kling@webkit.org>
45728
45729        Use immutable StylePropertySets for element inline style declarations.
45730        <http://webkit.org/b/94714>
45731
45732        Reviewed by Antti Koivisto.
45733
45734        Construct the inline styles as immutable StylePropertySets initially (until they are
45735        modified through CSSOM APIs), reducing their memory footprint and enabling us to do
45736        sharing optimizations in the future.
45737
45738        * css/CSSParser.cpp:
45739        (WebCore::CSSParser::parseInlineStyleDeclaration):
45740        (WebCore::CSSParser::parseDeclaration):
45741        * css/CSSParser.h:
45742        * dom/ElementAttributeData.cpp:
45743        (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
45744
457452012-08-23  Adam Barth  <abarth@webkit.org>
45746
45747        [V8] V8AbstractEventListener re-implements ScopedPersistent by hand
45748        https://bugs.webkit.org/show_bug.cgi?id=94873
45749
45750        Reviewed by Eric Seidel.
45751
45752        Rather than calling New/Dispose manually, this patch changes
45753        V8AbstractEventListener to use ScopedPersistent.
45754
45755        * bindings/v8/V8AbstractEventListener.cpp:
45756        (WebCore::V8AbstractEventListener::weakEventListenerCallback):
45757        (WebCore::V8AbstractEventListener::~V8AbstractEventListener):
45758        (WebCore::V8AbstractEventListener::setListenerObject):
45759        (WebCore::V8AbstractEventListener::getReceiverObject):
45760        * bindings/v8/V8AbstractEventListener.h:
45761        (WebCore::V8AbstractEventListener::getListenerObject):
45762        (WebCore::V8AbstractEventListener::getExistingListenerObject):
45763        (WebCore::V8AbstractEventListener::existingListenerObjectPersistentHandle):
45764        (WebCore::V8AbstractEventListener::hasExistingListenerObject):
45765        (V8AbstractEventListener):
45766
457672012-08-23  Simon Fraser  <simon.fraser@apple.com>
45768
45769        Prep work for: Implement sticky positioning
45770        https://bugs.webkit.org/show_bug.cgi?id=90046
45771
45772        Reviewed by Dave Hyatt.
45773        
45774        Do some method renaming in preparation for adding a new kind
45775        of in-flow positioning: sticky positioning.
45776        
45777        Rename RenderStyle::isOutOfFlowPositioned() to hasOutOfFlowPosition().
45778        Add RenderStyle::hasInFlowPosition().
45779        
45780        Use RenderObject::isInFlowPositioned() in places where it will apply
45781        for both relative and sticky positioning.
45782        
45783        Add RenderBoxModelObject::offsetForInFlowPosition(), which currently
45784        applies just to relative positioning, but will also apply to sticky.
45785
45786        * css/CSSComputedStyleDeclaration.cpp:
45787        (WebCore::getPositionOffsetValue):
45788        * css/StyleResolver.cpp:
45789        (WebCore::StyleResolver::collectMatchingRulesForList):
45790        * editing/TextIterator.cpp:
45791        (WebCore::ignoresContainerClip):
45792        * rendering/LayoutState.cpp:
45793        (WebCore::LayoutState::LayoutState):
45794        * rendering/RenderBlock.cpp:
45795        (WebCore::RenderBlock::styleWillChange):
45796        (WebCore::RenderBlock::isSelectionRoot):
45797        (WebCore::RenderBlock::blockSelectionGaps):
45798        (WebCore::positionForPointRespectingEditingBoundaries):
45799        * rendering/RenderBox.cpp:
45800        (WebCore::RenderBox::styleWillChange):
45801        (WebCore::RenderBox::updateBoxModelInfoFromStyle):
45802        (WebCore::RenderBox::mapLocalToContainer):
45803        (WebCore::RenderBox::offsetFromContainer):
45804        (WebCore::RenderBox::computeRectForRepaint):
45805        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
45806        (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
45807        (WebCore::RenderBox::layoutOverflowRectForPropagation):
45808        * rendering/RenderBox.h:
45809        * rendering/RenderBoxModelObject.cpp:
45810        (WebCore::accumulateInFlowPositionOffsets):
45811        (WebCore::RenderBoxModelObject::relativePositionOffset):
45812        (WebCore::RenderBoxModelObject::offsetForInFlowPosition):
45813        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
45814        * rendering/RenderBoxModelObject.h:
45815        (RenderBoxModelObject):
45816        (WebCore::RenderBoxModelObject::stickyPositionLogicalOffset):
45817        (WebCore::RenderBoxModelObject::requiresLayer):
45818        * rendering/RenderInline.cpp:
45819        (WebCore::inFlowPositionedInlineAncestor): We need to actually return
45820        the ancestor, since we will need to copy its position type once there
45821        is more than one kind of in-flow position.
45822        (WebCore::updateStyleOfAnonymousBlockContinuations):
45823        (WebCore::RenderInline::styleDidChange):
45824        (WebCore::RenderInline::addChildIgnoringContinuation):
45825        (WebCore::RenderInline::clippedOverflowRectForRepaint):
45826        (WebCore::RenderInline::computeRectForRepaint):
45827        (WebCore::RenderInline::offsetFromContainer):
45828        (WebCore::RenderInline::mapLocalToContainer):
45829        (WebCore::RenderInline::offsetForInFlowPositionedInline):
45830        * rendering/RenderInline.h:
45831        (WebCore::RenderInline::requiresLayer):
45832        * rendering/RenderLayer.cpp:
45833        (WebCore::RenderLayer::updateLayerPosition):
45834        (WebCore::isPositionedContainer):
45835        (WebCore::RenderLayer::calculateClipRects):
45836        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
45837        * rendering/RenderLayer.h:
45838        (WebCore::RenderLayer::offsetForInFlowPosition):
45839        * rendering/RenderObject.cpp:
45840        (WebCore::RenderObject::markContainingBlocksForLayout):
45841        (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
45842        (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
45843        (WebCore::RenderObject::containingBlock):
45844        * rendering/RenderObject.h:
45845        (WebCore::RenderObject::isRelPositioned):
45846        * rendering/RenderObjectChildList.cpp:
45847        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
45848        * rendering/style/RenderStyle.h:
45849
458502012-08-23  Ryosuke Niwa  <rniwa@webkit.org>
45851
45852        EFL build fix attempt after r126494. Try touching the IDL file.
45853
45854        * Modules/battery/BatteryManager.idl:
45855
458562012-08-23  Adam Barth  <abarth@webkit.org>
45857
45858        Unreviewed attempt to fix build failure in Debug.
45859
45860        * bindings/v8/ScriptValue.h:
45861
458622012-08-23  Joshua Bell  <jsbell@chromium.org>
45863
45864        IndexedDB: Expose mechanism for database to force a connection to close
45865        https://bugs.webkit.org/show_bug.cgi?id=91010
45866
45867        Reviewed by Tony Chang.
45868
45869        In response to user action (e.g. "delete my browsing data") a connection may
45870        need to be forcibly terminated. This allows an event to be sent to a connection
45871        from the back end via IDBDatabaseCallbacks to initiate closing the connection.
45872
45873        Test: [chromium] webkit_unit_test --gtest_filter='IDBDatabaseBackendTest.ForcedClose'
45874
45875        * Modules/indexeddb/IDBDatabase.cpp:
45876        (WebCore::IDBDatabase::forceClose): Abort all transactions and close.
45877        (WebCore):
45878        * Modules/indexeddb/IDBDatabase.h:
45879        (IDBDatabase): Entry point.
45880        * Modules/indexeddb/IDBDatabaseCallbacks.h:
45881        (IDBDatabaseCallbacks): Event plumbing from back end.
45882        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
45883        (WebCore::IDBDatabaseCallbacksImpl::onForcedClose): Ditto.
45884        (WebCore):
45885        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
45886        (IDBDatabaseCallbacksImpl): Ditto.
45887        * inspector/InspectorIndexedDBAgent.cpp:
45888        (WebCore): Method stub.
45889
458902012-08-23  James Robinson  <jamesr@chromium.org>
45891
45892        [chromium] Convert WebAnimationCurve subtypes into pure virtual
45893        https://bugs.webkit.org/show_bug.cgi?id=94068
45894
45895        Reviewed by Adrienne Walker.
45896
45897        Updates users of the Web*AnimationCurve interface for its new pointery goodness.
45898
45899        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
45900        (WebCore::appendKeyframeWithStandardTimingFunction):
45901        (WebCore::appendKeyframeWithCustomBezierTimingFunction):
45902        (WebCore::WebTransformAnimationCurve):
45903        (WebCore::createWebAnimation):
45904
459052012-08-23  Emil A Eklund  <eae@chromium.org>
45906
45907        Add saturation arithmetic support to FractionalLayoutUnit
45908        https://bugs.webkit.org/show_bug.cgi?id=94364
45909
45910        Reviewed by Benjamin Poulain.
45911
45912        Add experimental saturation arithmetic support to FractionalLayoutUnit,
45913        guarded by a flag.
45914        The idea here is to saturate (or clamp) rather than overflow when
45915        computing positions and sizes.
45916
45917        No new tests for WebCore, not enabled by default.
45918
45919        * platform/FractionalLayoutUnit.h:
45920        (WebCore::FractionalLayoutUnit::intMinForLayoutUnit):
45921        Use INT_MIN instead of -INT_MAX to compute minimum value as the two are
45922        not the same.
45923        
45924        (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
45925        (WebCore::FractionalLayoutUnit::fromFloatCeil):
45926        (WebCore::FractionalLayoutUnit::fromFloatFloor):
45927        (WebCore::FractionalLayoutUnit::fromFloatRound):
45928        (WebCore::FractionalLayoutUnit::setValue):
45929        Add range checks.
45930
45931        (WebCore::operator*):
45932        (WebCore::operator+):
45933        (WebCore::operator-):
45934        (WebCore::operator+=):
45935        (WebCore::operator-=):
45936        Use the saturatedAddition and saturatedSubtraction functions, which have
45937        been optimized to reduce branching, instead of range checks for the most
45938        common operators.
45939
459402012-08-23  Kenneth Russell  <kbr@google.com>
45941
45942        Unreviewed, rolling out r126483.
45943        http://trac.webkit.org/changeset/126483
45944        https://bugs.webkit.org/show_bug.cgi?id=92272
45945
45946        Caused two Chromium browser_tests to time out 100% reliably.
45947
45948        * loader/FrameLoader.cpp:
45949        (WebCore::FrameLoader::init):
45950        (WebCore::FrameLoader::prepareForLoadStart):
45951        (WebCore::FrameLoader::clearProvisionalLoad):
45952        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
45953        (WebCore::FrameLoader::detachFromParent):
45954        * loader/FrameLoader.h:
45955        (FrameLoader):
45956
459572012-08-23  Kentaro Hara  <haraken@chromium.org>
45958
45959        Unreviewed. Just added comments I forgot to add in r126506.
45960
45961        * bindings/v8/ScriptController.h:
45962        (WebCore):
45963        (ScriptController):
45964
459652012-08-23  Kenneth Russell  <kbr@google.com>
45966
45967        Unreviewed, rolling out r126483.
45968        http://trac.webkit.org/changeset/126483
45969        https://bugs.webkit.org/show_bug.cgi?id=92272
45970
45971        Caused two Chromium browser_tests to time out 100% reliably.
45972
45973        * loader/FrameLoader.cpp:
45974        (WebCore::FrameLoader::init):
45975        (WebCore::FrameLoader::prepareForLoadStart):
45976        (WebCore::FrameLoader::clearProvisionalLoad):
45977        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
45978        (WebCore::FrameLoader::detachFromParent):
45979        * loader/FrameLoader.h:
45980        (FrameLoader):
45981
459822012-08-23  Kentaro Hara  <haraken@chromium.org>
45983
45984        [V8] Remove V8Proxy.{h,cpp}
45985        https://bugs.webkit.org/show_bug.cgi?id=94794
45986
45987        Reviewed by Dimitri Glazkov.
45988
45989        Now V8Proxy is no longer used. We can completely remove V8Proxy from the codebase.
45990
45991        No tests. No change in behavior.
45992
45993        * UseV8.cmake:
45994        * WebCore.gypi:
45995        * bindings/scripts/CodeGeneratorV8.pm:
45996        (GenerateImplementation):
45997        (GenerateCallbackImplementation):
45998        * bindings/scripts/test/V8/V8Float64Array.cpp:
45999        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
46000        * bindings/scripts/test/V8/V8TestCallback.cpp:
46001        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
46002        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
46003        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
46004        * bindings/scripts/test/V8/V8TestException.cpp:
46005        * bindings/scripts/test/V8/V8TestInterface.cpp:
46006        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
46007        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
46008        * bindings/scripts/test/V8/V8TestNode.cpp:
46009        * bindings/scripts/test/V8/V8TestObj.cpp:
46010        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
46011        * bindings/v8/ScriptController.cpp:
46012        (WebCore::ScriptController::ScriptController):
46013        (WebCore::ScriptController::~ScriptController):
46014        (WebCore::ScriptController::callFunction):
46015        (WebCore::ScriptController::clearWindowShell):
46016        * bindings/v8/ScriptController.h:
46017        (WebCore):
46018        (ScriptController):
46019        * bindings/v8/V8AbstractEventListener.h:
46020        (WebCore):
46021        * bindings/v8/V8Binding.cpp:
46022        * bindings/v8/V8DOMWindowShell.cpp:
46023        (WebCore::reportFatalErrorInV8):
46024        * bindings/v8/V8DOMWrapper.h:
46025        (WebCore):
46026        * bindings/v8/V8ObjectConstructor.cpp:
46027        (WebCore::V8ObjectConstructor::newInstanceInDocument):
46028        * bindings/v8/V8Proxy.cpp: Removed.
46029        * bindings/v8/V8Proxy.h: Removed.
46030        * bindings/v8/V8RecursionScope.h:
46031        (WebCore):
46032        * bindings/v8/V8Utilities.cpp:
46033        * bindings/v8/custom/V8CustomXPathNSResolver.h:
46034
460352012-08-23  Otto Derek Cheung  <otcheung@rim.com>
46036
46037
46038        [BlackBerry] Add a check to filter out cookies that tries to set the domain to a top level domain 
46039        https://bugs.webkit.org/show_bug.cgi?id=94722
46040
46041        Reviewed by Rob Buis.
46042
46043        Changing the topleveldomain method name for better readability.
46044
46045        Also renaming the TopLevelDomain.h in platform to DomainTools
46046        because there exists other tests that should belong in the same file.
46047
46048        Only changing method names and include file names.
46049
46050        * platform/blackberry/CookieParser.cpp:
46051        (WebCore::CookieParser::parseOneCookie):
46052
460532012-08-23  Shezan Baig  <shezbaig.wk@gmail.com>
46054
46055        Fix cross-direction stretch for replaced elements in column flexbox
46056        https://bugs.webkit.org/show_bug.cgi?id=94604
46057
46058        Reviewed by Ojan Vafai.
46059
46060        Moved the logic that constrains logical width by MinSize and MaxSize to
46061        a new helper function called constrainLogicalWidthInRegionByMinMax.
46062        This helper function is used from both computeLogicalWidthInRegion and
46063        RenderFlexibleBox::applyStretchAlignmentToChild.
46064
46065        RenderFlexibleBox no longer checks for isMultiline when stretching
46066        elements in a column flexbox. Instead, we now constrain the available
46067        width by the child's min-width and max-width, and set the override
46068        width only if that constrained width is different from the child's
46069        current logicalWidth.
46070
46071        No new tests. The existing css3/flexbox/flexitem.html test was extended
46072        to exercise the new code.
46073
46074        * rendering/RenderBox.cpp:
46075        (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax): New helper
46076        method to constrain logical width by min-width and max-width.
46077        (WebCore):
46078        (WebCore::RenderBox::computeLogicalWidthInRegion): Changed to use the
46079        new constrainLogicalWidthInRegionByMinMax helper method.
46080        * rendering/RenderBox.h:
46081        (RenderBox):
46082        * rendering/RenderFlexibleBox.cpp:
46083        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Changed to
46084        use constrainLogicalWidthInRegionByMinMax to determine the override
46085        width for the child.
46086
460872012-08-23  Adam Barth  <abarth@webkit.org>
46088
46089        [V8] ScriptState is using stone knifes and bear skins
46090        https://bugs.webkit.org/show_bug.cgi?id=94846
46091
46092        Reviewed by Eric Seidel.
46093
46094        This patch just modernizes ScriptState to use some of the newer tools
46095        available in the V8 bindings. There shouldn't be any behavior changes.
46096
46097        * bindings/v8/ScriptState.cpp:
46098        (WebCore::ScriptState::ScriptState):
46099        (WebCore::ScriptState::~ScriptState):
46100        (WebCore::ScriptState::domWindow):
46101        (WebCore::ScriptState::scriptExecutionContext):
46102        (WebCore::ScriptState::forContext):
46103        (WebCore::ScriptState::current):
46104        * bindings/v8/ScriptState.h:
46105        (WebCore):
46106        (WebCore::ScriptState::context):
46107        (ScriptState):
46108        (WebCore::ScriptStateProtectedPtr::ScriptStateProtectedPtr):
46109        (ScriptStateProtectedPtr):
46110        * bindings/v8/V8Binding.cpp:
46111        (WebCore::toScriptExecutionContext):
46112        (WebCore):
46113        * bindings/v8/V8Binding.h:
46114        (WebCore):
46115
461162012-08-23  Dana Jansens  <danakj@chromium.org>
46117
46118        [chromium] Don't require a RenderSurface* in order to create a RenderPass
46119        https://bugs.webkit.org/show_bug.cgi?id=94862
46120
46121        Reviewed by Adrienne Walker.
46122
46123        If a test wants to create a RenderPass, they are required to create a
46124        Layer, and a RenderSurface. This is not ideal, we should let tests
46125        create RenderPasses more simply by giving the information that it needs.
46126
46127        This also helps us recreate the RenderPasses after receiving a copy
46128        via IPC.
46129
46130        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
46131        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
46132        * platform/graphics/chromium/cc/CCRenderPass.cpp:
46133        (WebCore::CCRenderPass::create):
46134        (WebCore::CCRenderPass::CCRenderPass):
46135        * platform/graphics/chromium/cc/CCRenderPass.h:
46136        (CCRenderPass):
46137
461382012-08-23  Adam Barth  <abarth@webkit.org>
46139
46140        [V8] ScriptValue should use ScopedPresistent rather than calling New/Dispose directly
46141        https://bugs.webkit.org/show_bug.cgi?id=94864
46142
46143        Reviewed by Eric Seidel.
46144
46145        ScriptValue was created before ScopedPersistent existed and therefore
46146        calls New/Dispose manually. Instead, it should use the less error-prone
46147        approach of having ScopedPersistent balance those calls.
46148
46149        * bindings/v8/ScriptValue.cpp:
46150        (WebCore::ScriptValue::serialize):
46151        (WebCore::ScriptValue::getString):
46152        (WebCore::ScriptValue::toString):
46153        (WebCore::ScriptValue::toInspectorValue):
46154        * bindings/v8/ScriptValue.h:
46155        (WebCore::ScriptValue::ScriptValue):
46156        (WebCore::ScriptValue::operator=):
46157        (WebCore::ScriptValue::operator==):
46158        (WebCore::ScriptValue::isEqual):
46159        (WebCore::ScriptValue::isFunction):
46160        (WebCore::ScriptValue::isNull):
46161        (WebCore::ScriptValue::isUndefined):
46162        (WebCore::ScriptValue::isObject):
46163        (WebCore::ScriptValue::hasNoValue):
46164        (WebCore::ScriptValue::clear):
46165        (WebCore::ScriptValue::v8Value):
46166        (ScriptValue):
46167
461682012-08-22  James Robinson  <jamesr@chromium.org>
46169
46170        [chromium] Remove WebLayer::setChildren API
46171        https://bugs.webkit.org/show_bug.cgi?id=94749
46172
46173        Reviewed by Adrienne Walker.
46174
46175        Sets up the child list directly instead of building an intermediate buffer. Covered by compositing/*
46176
46177        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
46178        (WebCore::GraphicsLayerChromium::updateChildList):
46179
461802012-08-23  Dominic Mazzoni  <dmazzoni@google.com>
46181
46182        AX: Focusable elements without a role should not be ignored
46183        https://bugs.webkit.org/show_bug.cgi?id=94302
46184
46185        Reviewed by Chris Fleizach.
46186
46187        Changes the accessibility logic so that a generic element that's focusable is
46188        not ignored for accessibility, and returns its inner text as its title. That way
46189        if you Tab to the element, a reasonable accessibility notification is generated.
46190
46191        One exception is the body element, because focusing the body is equivalent to
46192        blurring the current focused element and does not result in a "focus" accessibility
46193        notification.
46194
46195        Also fixes logic that determined if an element was contentEditable by making
46196        sure it catches the case with no attribute value (e.g. <div contentEditable>),
46197        which also implies contentEditable=true according to the spec.
46198
46199        Test: accessibility/focusable-div.html
46200
46201        * accessibility/AccessibilityRenderObject.cpp:
46202        (WebCore):
46203        (WebCore::nodeHasContentEditableAttributeSet):
46204        (WebCore::AccessibilityRenderObject::title):
46205        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
46206
462072012-08-23  Julien Chaffraix  <jchaffraix@webkit.org>
46208
46209        Remove RenderTable::removeChild
46210        https://bugs.webkit.org/show_bug.cgi?id=94842
46211
46212        Reviewed by Abhishek Arya.
46213
46214        This change removed removeChild, replaced by willBeRemovedFromTree calls. The upside is that
46215        the invalidations are now guaranteed to run if we split a table (which is not guaranteed when
46216        using removeChild). This change also shows that our code may be doing too much work in some
46217        of the child's removal, in which case the code was marked as needed.
46218
46219        Covered by existing tests.
46220
46221        * rendering/RenderTable.cpp:
46222        (WebCore::RenderTable::removeCaption):
46223        Helper function used to remove the caption from our Vector. The invalidation are very likely
46224        unneeded so added a comment about that.
46225
46226        * rendering/RenderTable.h:
46227        * rendering/RenderTableCaption.cpp:
46228        (WebCore::RenderTableCaption::willBeRemovedFromTree):
46229        (WebCore::RenderTableCaption::table):
46230        * rendering/RenderTableCaption.h:
46231        * rendering/RenderTableCol.cpp:
46232        (WebCore::RenderTableCol::willBeRemovedFromTree):
46233        * rendering/RenderTableCol.h:
46234        Added the following functions to do the invalidation.
46235
462362012-08-23  Mark Hahnenberg  <mhahnenberg@apple.com>
46237
46238        Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
46239        https://bugs.webkit.org/show_bug.cgi?id=93884
46240
46241        Reviewed by Filip Pizlo.
46242
46243        With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of  
46244        MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,  
46245        we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined  
46246        objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).  
46247        For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not  
46248        masquerade as undefined within frame B, but it will continue to masquerade in frame A. 
46249
46250        Test: fast/js/document-all-between-frames.html
46251
46252        All of the changes in WebCore are simply passing the additional ExecState argument to JSValue::toBoolean. 
46253
46254        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
46255        (WebCore::JSSQLStatementErrorCallback::handleEvent):
46256        * bindings/js/JSDOMWindowCustom.cpp:
46257        (WebCore::JSDOMWindow::addEventListener):
46258        (WebCore::JSDOMWindow::removeEventListener):
46259        * bindings/js/JSDataViewCustom.cpp:
46260        (WebCore::getDataViewMember):
46261        * bindings/js/JSDeviceMotionEventCustom.cpp:
46262        (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
46263        * bindings/js/JSDeviceOrientationEventCustom.cpp:
46264        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
46265        * bindings/js/JSDictionary.cpp:
46266        (WebCore::JSDictionary::convertValue):
46267        * bindings/js/JSHTMLCanvasElementCustom.cpp:
46268        (WebCore::JSHTMLCanvasElement::getContext):
46269        * bindings/js/JSInspectorFrontendHostCustom.cpp:
46270        (WebCore::populateContextMenuItems):
46271        * bindings/js/JSMessageEventCustom.cpp:
46272        (WebCore::handleInitMessageEvent):
46273        * bindings/js/JSWebGLRenderingContextCustom.cpp:
46274        (WebCore::dataFunctionMatrix):
46275        * bindings/js/JSXMLHttpRequestCustom.cpp:
46276        (WebCore::JSXMLHttpRequest::open):
46277        * bindings/js/JavaScriptCallFrame.cpp:
46278        (WebCore::JavaScriptCallFrame::exec):
46279        (WebCore):
46280        * bindings/js/JavaScriptCallFrame.h:
46281        (JavaScriptCallFrame):
46282        * bindings/js/ScriptDebugServer.cpp:
46283        (WebCore::ScriptDebugServer::hasBreakpoint):
46284        * bindings/js/SerializedScriptValue.cpp:
46285        (WebCore::CloneSerializer::dumpIfTerminal):
46286        * bindings/scripts/CodeGeneratorJS.pm: Also add the custom create function for MasqueradesAsUndefined JS DOM wrappers. 
46287        (GenerateEventListenerCall):
46288        (GenerateHeader):
46289        (JSValueToNative):
46290        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
46291        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
46292        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
46293        * bindings/scripts/test/JS/JSTestEventTarget.h:
46294        (WebCore::JSTestEventTarget::create):
46295        * bindings/scripts/test/JS/JSTestObj.cpp:
46296        (WebCore::setJSTestObjCreate):
46297        (WebCore::setJSTestObjReflectedBooleanAttr):
46298        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
46299        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
46300        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
46301        * bridge/c/c_utility.cpp:
46302        (JSC::Bindings::convertValueToNPVariant):
46303        * bridge/jni/jni_jsobject.mm:
46304        (JavaJSObject::convertValueToJObject):
46305        * bridge/qt/qt_runtime.cpp:
46306        (JSC::Bindings::convertValueToQVariant):
46307
463082012-08-23  Adenilson Cavalcanti  <cavalcantii@gmail.com>
46309
46310        CSSParser: Move enumeration to a common place (StylePropertyShorthand)
46311        https://bugs.webkit.org/show_bug.cgi?id=93210
46312
46313        Reviewed by Dean Jackson.
46314
46315        CSSParser::parseAnimationShorthand() uses an enumeration with the same
46316        elements as another enumeration present in StylePropertyShorthand, but
46317        with different ordering of values. This patch puts both enums in the same place.
46318
46319        No new tests. No change in behavior.
46320
46321        * css/CSSParser.cpp:
46322        (WebCore::CSSParser::parseAnimationShorthand):
46323        * css/StylePropertyShorthand.cpp:
46324        (WebCore::webkitAnimationShorthandForParsing):
46325        (WebCore):
46326        * css/StylePropertyShorthand.h:
46327        (WebCore):
46328
463292012-08-23  Mike West  <mkwst@chromium.org>
46330
46331        Trailing spaces in CSP source lists should not generate console warnings.
46332        https://bugs.webkit.org/show_bug.cgi?id=94847
46333
46334        Reviewed by Adam Barth.
46335
46336        Trailing space after a valid source in a Content Security Policy source
46337        list was accidentally generating console warnings about an invalid
46338        (empty) source. This patch silently ignores trailing whitespace instead.
46339
46340        A test-case has been added to 'source-list-parsing-02.html' to cover
46341        this case.
46342
46343        * page/ContentSecurityPolicy.cpp:
46344        (WebCore::CSPSourceList::parse):
46345            Return early if we reach the end of the source list after skipping
46346            leading whitespace.
46347
463482012-08-23  Adam Barth  <abarth@webkit.org>
46349
46350        [V8] OwnHandle is a bit of a misnomer
46351        https://bugs.webkit.org/show_bug.cgi?id=94841
46352
46353        Reviewed by Eric Seidel.
46354
46355        You don't really own the handle in the same way that you own a pointer
46356        with OwnPtr. This class is more correctly called ScopedPersistent
46357        because it just forces you to balance New() and Dispose() calls.
46358
46359        * WebCore.gypi:
46360        * bindings/v8/JavaScriptCallFrame.h:
46361        (JavaScriptCallFrame):
46362        * bindings/v8/OwnHandle.h: Removed.
46363        * bindings/v8/ScheduledAction.h:
46364        (ScheduledAction):
46365        * bindings/v8/ScopedPersistent.h: Copied from Source/WebCore/bindings/v8/OwnHandle.h.
46366        (ScopedPersistent):
46367        (WebCore::ScopedPersistent::ScopedPersistent):
46368        (WebCore::ScopedPersistent::~ScopedPersistent):
46369        * bindings/v8/ScriptDebugServer.cpp:
46370        (WebCore::ScriptDebugServer::compileScript):
46371        (WebCore::ScriptDebugServer::runScript):
46372        * bindings/v8/ScriptDebugServer.h:
46373        (ScriptDebugServer):
46374        * bindings/v8/ScriptInstance.h:
46375        (V8ScriptInstance):
46376        * bindings/v8/V8PerContextData.h:
46377        (V8PerContextData):
46378
463792012-08-23  Nate Chapin  <japhet@chromium.org>
46380
46381        ProgressTracker never completes if iframe detached during parsing 
46382        https://bugs.webkit.org/show_bug.cgi?id=92272
46383
46384        Reviewed by Adam Barth.
46385
46386        Add a simple helper class to FrameLoader to ensure progressStarted/progressCompleted calls are matched,
46387        and balance the calls when the Frame is detached.
46388
46389        No new tests, as this behavior has only been producing reliably by setting a breakpoint in a specific place.
46390
46391        * loader/FrameLoader.cpp:
46392        (WebCore::FrameLoader::init):
46393        (WebCore::FrameLoader::FrameProgressTracker::progressStarted):
46394        (WebCore::FrameLoader::FrameProgressTracker::progressCompleted):
46395        (WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
46396        (WebCore::FrameLoader::prepareForLoadStart):
46397        (WebCore::FrameLoader::clearProvisionalLoad):
46398        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
46399        (WebCore::FrameLoader::detachFromParent):
46400        * loader/FrameLoader.h:
46401        (FrameProgressTracker):
46402        (WebCore::FrameLoader::FrameProgressTracker::create):
46403        (WebCore::FrameLoader::FrameProgressTracker::FrameProgressTracker):
46404
464052012-08-23  Dana Jansens  <danakj@chromium.org>
46406
46407        [chromium] Create sharedQuadState at same time as creating quads and give them to the quadSink
46408        https://bugs.webkit.org/show_bug.cgi?id=94752
46409
46410        Reviewed by Adrienne Walker.
46411
46412        Previously, CCRenderPass would create a sharedQuadState for a layer,
46413        and pass it in to the layer. Then the layer would point all its quads
46414        at the sharedQuadState.
46415
46416        After this change, the layer creates its own sharedQuadState, gives it
46417        to the RenderPass (via CCQuadSink), and points its quads at it.
46418
46419        This approach allows a layer to generate more than one sharedQuadState
46420        with different quads pointing to different shared states. Also, this
46421        will allow the layer representing a delegating renderer (via ubercomp)
46422        to copy sharedQuadStates from the delegating renderer in order to
46423        merge its quads into the RenderPass for the current renderer.
46424
46425        Covered by existing tests, no change in behaviour.
46426
46427        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
46428        (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
46429        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
46430        (CCHeadsUpDisplayLayerImpl):
46431        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
46432        (WebCore::CCIOSurfaceLayerImpl::appendQuads):
46433        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
46434        (CCIOSurfaceLayerImpl):
46435        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
46436        (WebCore::CCLayerImpl::createSharedQuadState):
46437        * platform/graphics/chromium/cc/CCLayerImpl.h:
46438        (CCLayerImpl):
46439        (WebCore::CCLayerImpl::appendQuads):
46440        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
46441        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
46442        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
46443        (WebCore::CCQuadCuller::CCQuadCuller):
46444        (WebCore::CCQuadCuller::append):
46445        (WebCore::CCQuadCuller::useSharedQuadState):
46446        (WebCore):
46447        * platform/graphics/chromium/cc/CCQuadCuller.h:
46448        (WebCore):
46449        (CCQuadCuller):
46450        * platform/graphics/chromium/cc/CCQuadSink.h:
46451        (WebCore):
46452        (CCQuadSink):
46453        * platform/graphics/chromium/cc/CCRenderPass.cpp:
46454        (WebCore::CCRenderPass::appendQuadsForLayer):
46455        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
46456        (WebCore::CCRenderPass::appendQuadsToFillScreen):
46457        * platform/graphics/chromium/cc/CCRenderPass.h:
46458        (WebCore):
46459        (CCRenderPass):
46460        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
46461        (WebCore::CCRenderSurface::appendQuads):
46462        * platform/graphics/chromium/cc/CCRenderSurface.h:
46463        (CCRenderSurface):
46464        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
46465        (WebCore::CCScrollbarLayerImpl::appendQuads):
46466        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
46467        (CCScrollbarLayerImpl):
46468        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
46469        (WebCore::CCSharedQuadState::create):
46470        (WebCore::CCSharedQuadState::CCSharedQuadState):
46471        * platform/graphics/chromium/cc/CCSharedQuadState.h:
46472        (CCSharedQuadState):
46473        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
46474        (WebCore::CCSolidColorLayerImpl::appendQuads):
46475        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
46476        (CCSolidColorLayerImpl):
46477        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
46478        (WebCore::CCTextureLayerImpl::appendQuads):
46479        * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
46480        (CCTextureLayerImpl):
46481        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
46482        (WebCore::CCTiledLayerImpl::appendQuads):
46483        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
46484        (CCTiledLayerImpl):
46485        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
46486        (WebCore::CCVideoLayerImpl::appendQuads):
46487        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
46488        (CCVideoLayerImpl):
46489
464902012-08-23  Mark Rowe  <mrowe@apple.com>
46491
46492        Remove some unneeded cruft from WebCore.xcodeproj.
46493
46494        * WebCore.xcodeproj/project.pbxproj:
46495
464962012-08-23  Mark Rowe  <mrowe@apple.com>
46497
46498        Make WebCore build with the latest version of clang.
46499
46500        Reviewed by Dan Bernstein.
46501
46502        * html/shadow/MediaControlRootElement.h: Remove m_textTrackDisplay as it is unused.
46503        * platform/audio/mac/AudioFileReaderMac.cpp:
46504        (WebCore::AudioFileReader::AudioFileReader): Remove m_filePath as it is unused.
46505        * platform/audio/mac/AudioFileReaderMac.h:
46506        (AudioFileReader): Ditto.
46507        * platform/graphics/ImageSource.h:
46508        (ImageSource): Guard m_alphaOption and m_gammaAndColorProfileOption with !USE(CG)
46509        as they're unused on platforms using CG.
46510        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
46511        (MediaPlayerPrivateAVFoundationObjC): Remove m_player as it is unused.
46512        * platform/graphics/cg/ImageSourceCG.cpp:
46513        (WebCore::ImageSource::ImageSource): Don't initialize the m_alphaOption and
46514        m_gammaAndColorProfileOption members since we never use them.
46515        * platform/graphics/mac/GraphicsContext3DMac.mm:
46516        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate): Remove m_graphicsContext3D
46517        as it is unused.
46518
465192012-08-23  Alexandre Elias  <aelias@chromium.org>
46520
46521        [chromium] Rename LayerRendererChromium to GL-specific name
46522        https://bugs.webkit.org/show_bug.cgi?id=94835
46523
46524        Reviewed by James Robinson.
46525
46526        Over time, LayerRendererChromium has evolved to be a GL-specific
46527        subclass of CCRenderer that has no awareness of layers (as it operates
46528        only with drawQuads).
46529
46530        This patch renames LayerRendererChromium to CCRendererGL, replaces all
46531        instances of "layerRenderer" with just "renderer", and removes a
46532        few unnecessary includes of LayerRendererChromium.h.
46533
46534        No new tests (no-op refactoring).
46535
46536        * WebCore.gypi:
46537        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
46538        * platform/graphics/chromium/ContentLayerChromium.cpp:
46539        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
46540        * platform/graphics/chromium/GeometryBinding.cpp:
46541        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
46542        (WebCore::HeadsUpDisplayLayerChromium::update):
46543        * platform/graphics/chromium/ImageLayerChromium.cpp:
46544        (WebCore::ImageLayerChromium::createTextureUpdaterIfNeeded):
46545        * platform/graphics/chromium/LayerTextureSubImage.cpp:
46546        * platform/graphics/chromium/ProgramBinding.cpp:
46547        * platform/graphics/chromium/RenderSurfaceChromium.h:
46548        (WebCore):
46549        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
46550        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
46551        * platform/graphics/chromium/TextureCopier.cpp:
46552        * platform/graphics/chromium/TiledLayerChromium.cpp:
46553        (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
46554        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
46555        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
46556        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
46557        (WebCore::sortLayers):
46558        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
46559        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
46560        (WebCore::CCLayerTreeHost::initializeRenderer):
46561        (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
46562        (WebCore::CCLayerTreeHost::finishAllRendering):
46563        (WebCore::CCLayerTreeHost::rendererCapabilities):
46564        (WebCore::CCLayerTreeHost::initializeRendererIfNeeded):
46565        (WebCore::CCLayerTreeHost::updateLayers):
46566        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
46567        (WebCore::RendererCapabilities::RendererCapabilities):
46568        (CCLayerTreeHost):
46569        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
46570        (WebCore::CCLayerTreeHostImpl::canDraw):
46571        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
46572        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
46573        (WebCore::CCLayerTreeHostImpl::drawLayers):
46574        (WebCore::CCLayerTreeHostImpl::finishAllRendering):
46575        (WebCore::CCLayerTreeHostImpl::isContextLost):
46576        (WebCore::CCLayerTreeHostImpl::rendererCapabilities):
46577        (WebCore::CCLayerTreeHostImpl::swapBuffers):
46578        (WebCore::CCLayerTreeHostImpl::readback):
46579        (WebCore::CCLayerTreeHostImpl::setVisible):
46580        (WebCore::CCLayerTreeHostImpl::initializeRenderer):
46581        (WebCore::CCLayerTreeHostImpl::setViewportSize):
46582        (WebCore::CCLayerTreeHostImpl::ensureRenderSurfaceLayerList):
46583        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
46584        (WebCore):
46585        (WebCore::CCLayerTreeHostImpl::renderer):
46586        (CCLayerTreeHostImpl):
46587        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
46588        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
46589        * platform/graphics/chromium/cc/CCPriorityCalculator.cpp:
46590        * platform/graphics/chromium/cc/CCProxy.h:
46591        (WebCore):
46592        (CCProxy):
46593        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
46594        * platform/graphics/chromium/cc/CCRenderSurface.h:
46595        (WebCore):
46596        * platform/graphics/chromium/cc/CCRenderer.h:
46597        (CCRenderer):
46598        * platform/graphics/chromium/cc/CCRendererGL.cpp: Renamed from Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp.
46599        (WebCore::CCRendererGL::create):
46600        (WebCore):
46601        (WebCore::CCRendererGL::CCRendererGL):
46602        (WebCore::CCRendererGL::initialize):
46603        (WebCore::CCRendererGL::~CCRendererGL):
46604        (WebCore::CCRendererGL::context):
46605        (WebCore::CCRendererGL::debugGLCall):
46606        (WebCore::CCRendererGL::setVisible):
46607        (WebCore::CCRendererGL::releaseRenderPassTextures):
46608        (WebCore::CCRendererGL::viewportChanged):
46609        (WebCore::CCRendererGL::clearFramebuffer):
46610        (WebCore::CCRendererGL::beginDrawingFrame):
46611        (WebCore::CCRendererGL::doNoOp):
46612        (WebCore::CCRendererGL::drawQuad):
46613        (WebCore::CCRendererGL::drawCheckerboardQuad):
46614        (WebCore::CCRendererGL::drawDebugBorderQuad):
46615        (WebCore::applyFilters):
46616        (WebCore::CCRendererGL::drawBackgroundFilters):
46617        (WebCore::CCRendererGL::drawRenderPassQuad):
46618        (WebCore::CCRendererGL::drawSolidColorQuad):
46619        (TileProgramUniforms):
46620        (WebCore::tileUniformLocation):
46621        (WebCore::CCRendererGL::drawTileQuad):
46622        (WebCore::CCRendererGL::drawYUVVideoQuad):
46623        (WebCore::CCRendererGL::drawStreamVideoQuad):
46624        (WebCore::TextureProgramBinding::set):
46625        (TextureProgramBinding):
46626        (WebCore::TexTransformTextureProgramBinding::set):
46627        (TexTransformTextureProgramBinding):
46628        (WebCore::CCRendererGL::drawTextureQuad):
46629        (WebCore::CCRendererGL::drawIOSurfaceQuad):
46630        (WebCore::CCRendererGL::finishDrawingFrame):
46631        (WebCore::CCRendererGL::toGLMatrix):
46632        (WebCore::CCRendererGL::setShaderFloatQuad):
46633        (WebCore::CCRendererGL::setShaderOpacity):
46634        (WebCore::CCRendererGL::drawQuadGeometry):
46635        (WebCore::CCRendererGL::copyTextureToFramebuffer):
46636        (WebCore::CCRendererGL::finish):
46637        (WebCore::CCRendererGL::swapBuffers):
46638        (WebCore::CCRendererGL::onSwapBuffersComplete):
46639        (WebCore::CCRendererGL::onMemoryAllocationChanged):
46640        (WebCore::CCRendererGL::onMemoryAllocationChangedOnImplThread):
46641        (WebCore::CCRendererGL::discardFramebuffer):
46642        (WebCore::CCRendererGL::ensureFramebuffer):
46643        (WebCore::CCRendererGL::onContextLost):
46644        (WebCore::CCRendererGL::getFramebufferPixels):
46645        (WebCore::CCRendererGL::getFramebufferTexture):
46646        (WebCore::CCRendererGL::useScopedTexture):
46647        (WebCore::CCRendererGL::bindFramebufferToOutputSurface):
46648        (WebCore::CCRendererGL::bindFramebufferToTexture):
46649        (WebCore::CCRendererGL::enableScissorTestRect):
46650        (WebCore::CCRendererGL::disableScissorTest):
46651        (WebCore::CCRendererGL::setDrawViewportSize):
46652        (WebCore::CCRendererGL::makeContextCurrent):
46653        (WebCore::CCRendererGL::initializeSharedObjects):
46654        (WebCore::CCRendererGL::tileCheckerboardProgram):
46655        (WebCore::CCRendererGL::solidColorProgram):
46656        (WebCore::CCRendererGL::renderPassProgram):
46657        (WebCore::CCRendererGL::renderPassProgramAA):
46658        (WebCore::CCRendererGL::renderPassMaskProgram):
46659        (WebCore::CCRendererGL::renderPassMaskProgramAA):
46660        (WebCore::CCRendererGL::tileProgram):
46661        (WebCore::CCRendererGL::tileProgramOpaque):
46662        (WebCore::CCRendererGL::tileProgramAA):
46663        (WebCore::CCRendererGL::tileProgramSwizzle):
46664        (WebCore::CCRendererGL::tileProgramSwizzleOpaque):
46665        (WebCore::CCRendererGL::tileProgramSwizzleAA):
46666        (WebCore::CCRendererGL::textureProgram):
46667        (WebCore::CCRendererGL::textureProgramFlip):
46668        (WebCore::CCRendererGL::textureIOSurfaceProgram):
46669        (WebCore::CCRendererGL::videoYUVProgram):
46670        (WebCore::CCRendererGL::videoStreamTextureProgram):
46671        (WebCore::CCRendererGL::cleanupSharedObjects):
46672        (WebCore::CCRendererGL::isContextLost):
46673        * platform/graphics/chromium/cc/CCRendererGL.h: Renamed from Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h.
46674        (WebKit):
46675        (WebCore):
46676        (CCRendererGL):
46677        (WebCore::CCRendererGL::sharedGeometryQuad):
46678        (WebCore::CCRendererGL::sharedGeometry):
46679        (WebCore::CCRendererGL::isFramebufferDiscarded):
46680        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
46681        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
46682        (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
46683        (WebCore::CCSingleThreadProxy::initializeRenderer):
46684        (WebCore::CCSingleThreadProxy::recreateContext):
46685        (WebCore::CCSingleThreadProxy::rendererCapabilities):
46686        (WebCore::CCSingleThreadProxy::doCommit):
46687        (WebCore::CCSingleThreadProxy::forceSerializeOnSwapBuffers):
46688        (WebCore::CCSingleThreadProxy::commitAndComposite):
46689        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
46690        (CCSingleThreadProxy):
46691        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
46692        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
46693        (WebCore::CCThreadProxy::CCThreadProxy):
46694        (WebCore::CCThreadProxy::compositeAndReadback):
46695        (WebCore::CCThreadProxy::initializeRenderer):
46696        (WebCore::CCThreadProxy::recreateContext):
46697        (WebCore::CCThreadProxy::rendererCapabilities):
46698        (WebCore::CCThreadProxy::forceSerializeOnSwapBuffersOnImplThread):
46699        (WebCore::CCThreadProxy::beginFrame):
46700        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
46701        (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
46702        (WebCore::CCThreadProxy::initializeRendererOnImplThread):
46703        (WebCore::CCThreadProxy::recreateContextOnImplThread):
46704        * platform/graphics/chromium/cc/CCThreadProxy.h:
46705        (CCThreadProxy):
46706
467072012-08-23  Shezan Baig  <shezbaig.wk@gmail.com>
46708
46709        Flexbox doesn't need to compute logical height for stretched items in row flow
46710        https://bugs.webkit.org/show_bug.cgi?id=94807
46711
46712        Reviewed by Tony Chang.
46713
46714        Change logicalHeightConstrainedByMinMax to
46715        constrainLogicalHeightByMinMax. The new method doesn't compute the
46716        MainOrPreferred logical height (that computation has been moved back to
46717        computeLogicalHeight). RenderFlexibleBox now just constrains the
46718        stretchedLogicalHeight by min/max.
46719
46720        No new tests. This is a cleanup of bug 94237.
46721
46722        * rendering/RenderBox.cpp:
46723        (WebCore::RenderBox::constrainLogicalHeightByMinMax): Instead of
46724        computing the MainOrPreferred logical height, just constrain the given
46725        logical height by MinSize and MaxSize.
46726        (WebCore::RenderBox::computeLogicalHeight): Compute the MainOrPreferred
46727        logical height before constraining by min/max.
46728        * rendering/RenderBox.h:
46729        (RenderBox):
46730        * rendering/RenderFlexibleBox.cpp:
46731        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Use
46732        constrainLogicalHeightByMinMax to constrain the stretchedLogicalHeight.
46733
467342012-08-23  Adam Barth  <abarth@webkit.org>
46735
46736        [V8] V8ScriptInstance is much more complicated than necessary
46737        https://bugs.webkit.org/show_bug.cgi?id=94785
46738
46739        Reviewed by Kentaro Hara.
46740
46741        V8ScriptInstance just needs to be a one-line wrapper around OwnHandle.
46742
46743        * bindings/v8/OwnHandle.h:
46744        (WebCore::OwnHandle::get):
46745        * bindings/v8/ScriptInstance.cpp:
46746        (WebCore::V8ScriptInstance::V8ScriptInstance):
46747        (WebCore::V8ScriptInstance::~V8ScriptInstance):
46748        (WebCore::V8ScriptInstance::instance):
46749        * bindings/v8/ScriptInstance.h:
46750        (WebCore::V8ScriptInstance::create):
46751        (V8ScriptInstance):
46752
467532012-08-23  Christophe Dumez  <christophe.dumez@intel.com>
46754
46755        Serialization of JavaScript values does not appear to respect new HTML5 Structured Clone semantics
46756        https://bugs.webkit.org/show_bug.cgi?id=65292
46757
46758        Reviewed by Oliver Hunt.
46759
46760        JSC now correctly serialize Boolean, Number and String objects as per
46761        the structured clone algorithm specification. This patch reduces the
46762        delta with the V8 implementation of SerializedScriptValue.
46763
46764        No new tests, already tested by fast/dom/Window/window-postmessage-clone.html
46765
46766        * bindings/js/SerializedScriptValue.cpp:
46767        (WebCore):
46768        (WebCore::CloneSerializer::dumpStringObject):
46769        (CloneSerializer):
46770        (WebCore::CloneSerializer::dumpIfTerminal):
46771        (WebCore::CloneDeserializer::readTerminal):
46772
467732012-08-23  Joshua Bell  <jsbell@chromium.org>
46774
46775        IndexedDB: Move onSuccess(IDBDatabaseBackendInterface) to IDBOpenDBRequest
46776        https://bugs.webkit.org/show_bug.cgi?id=94757
46777
46778        Reviewed by Tony Chang.
46779
46780        Move the implementation of IDBCallbacks::onSuccess(IDBDatabaseBackendInterface)
46781        from IDBRequest to the new IDBOpenDBRequest, which is the only request type that
46782        should be receiving that callback.
46783
46784        No new tests - no functional changes.
46785
46786        * Modules/indexeddb/IDBCallbacks.h:
46787        (IDBCallbacks):
46788        (WebCore::IDBCallbacks::onSuccess):
46789        * Modules/indexeddb/IDBOpenDBRequest.cpp:
46790        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
46791        (WebCore::IDBOpenDBRequest::onSuccess):
46792        (WebCore):
46793        * Modules/indexeddb/IDBOpenDBRequest.h:
46794        (IDBOpenDBRequest):
46795        * Modules/indexeddb/IDBRequest.cpp:
46796        * Modules/indexeddb/IDBRequest.h:
46797
467982012-08-23  Andrei Onea  <onea@adobe.com>
46799
46800        [CSSRegions]Crash when moving anonymous block children inside a named flow
46801        https://bugs.webkit.org/show_bug.cgi?id=90865
46802
46803        Reviewed by Abhishek Arya.
46804
46805        When an anonymous block's children are detached in RenderBlock::collapseAnonymousBoxChild, the reference
46806        to their enclosingRenderFlowThread is lost and causes a crash in RenderObject::willBeRemovedFromTree.
46807        Because of this, we now maintain the enclosingRenderFlowThread during the whole lifetime of the
46808        RenderBlock::collapseAnonymousBoxChild function, using a CurrentRenderFlowThreadMaintainer local.
46809        
46810
46811        Test: fast/regions/move-anonymous-block-inside-named-flow-crash.html
46812
46813        * rendering/RenderBlock.cpp:
46814        (WebCore::RenderBlock::collapseAnonymousBoxChild):
46815        * rendering/RenderFlowThread.cpp:
46816        (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
46817        (WebCore):
46818        (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
46819        Moved CurrentRenderFlowThreadMaintaner declaration from .cpp to .h, so that we can access it from
46820        RenderBlock::collapseAnonymousBoxChild.
46821        * rendering/RenderFlowThread.h:
46822        (CurrentRenderFlowThreadMaintainer):
46823        (WebCore):
46824        * rendering/RenderObject.cpp:
46825        (WebCore::RenderObject::willBeRemovedFromTree):
46826
468272012-08-23  Kevin Ollivier  <kevino@theolliviers.com>
46828
46829        [wx] Unreviewed build fix. Add wx to the list of platforms that use CoreText
46830        APIs on Mac.
46831
46832        * platform/graphics/SimpleFontData.h:
46833        (SimpleFontData):
46834
468352012-08-23  Kevin Ollivier  <kevino@theolliviers.com>
46836
46837        [wx] Unreviewed build fix. Don't rely on implicit casts, explicitly use the
46838        Cursor constructor that takes a platform cursor for creating native cursors.
46839
46840        * platform/wx/CursorWx.cpp:
46841        (WebCore::pointerCursor):
46842        (WebCore::crossCursor):
46843        (WebCore::handCursor):
46844        (WebCore::iBeamCursor):
46845        (WebCore::waitCursor):
46846        (WebCore::helpCursor):
46847        (WebCore::eastResizeCursor):
46848        (WebCore::northResizeCursor):
46849        (WebCore::northEastResizeCursor):
46850        (WebCore::northWestResizeCursor):
46851        (WebCore::columnResizeCursor):
46852        (WebCore::rowResizeCursor):
46853        (WebCore::notAllowedCursor):
46854        (WebCore::zoomInCursor):
46855        (WebCore::moveCursor):
46856
468572012-08-23  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
46858
46859        Remove redundant check for negative values when using WebCore::Color::alpha()
46860        https://bugs.webkit.org/show_bug.cgi?id=94811
46861
46862        Reviewed by Eric Seidel.
46863
46864        Though alpha() returns a signed value (int), its value is stored on an unsigned
46865        typedef (RGBA32) and is safeguarded by alphaChannel() that its value never goes
46866        beyond 255, so no integer overflow, thus we can safely remove redundant check
46867        for negative values while using it.
46868
46869        This change does not affect behavior, so no new tests needed.
46870
46871        * platform/graphics/Image.cpp:
46872        (WebCore::Image::fillWithSolidColor):
46873        * rendering/RenderBoxModelObject.cpp:
46874        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
46875        (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Using hasAlpha() for readibility.
46876        * rendering/RenderView.cpp:
46877        (WebCore::RenderView::paintBoxDecorations):
46878        * rendering/style/RenderStyle.h:
46879
468802012-08-23  Zan Dobersek  <zandobersek@gmail.com>
46881
46882        [Gtk] Move feature defines processing into a GNUmakefile that's simple to autogenerate
46883        https://bugs.webkit.org/show_bug.cgi?id=87127
46884
46885        Reviewed by Martin Robinson.
46886
46887        List all the feature defines with their default value in
46888        GNUmakefile.features.am and append them to the 'feature_defines_defaults'.
46889        variable.
46890
46891        In GNUmakefile.am, include the GNUmakefile.features.am. When checking the
46892        AM conditionals for feature-enabling, append the appropriate define to
46893        'feature_defines_overrides'.
46894
46895        After all such overrides are performed, append the proper define (of which
46896        value was possibly overridden) for each feature to the 'feature_defines'
46897        variable. Finally, append all these defines to webcore_cppflags in the form
46898        of macros for preprocessing.
46899
46900        No new tests - no new functionality.
46901
46902        * GNUmakefile.am:
46903        * GNUmakefile.features.am: Added.
46904
469052012-08-23  Adam Barth  <abarth@webkit.org>
46906
46907        [V8] ScheduledAction is ugly and needs a cleanup
46908        https://bugs.webkit.org/show_bug.cgi?id=94784
46909
46910        Reviewed by Eric Seidel.
46911
46912        This patch updates ScheduledAction to use modern WebKit machinery, like
46913        OwnHandle and Vector.
46914
46915        * bindings/v8/OwnHandle.h:
46916        (OwnHandle):
46917        * bindings/v8/ScheduledAction.cpp:
46918        (WebCore::ScheduledAction::ScheduledAction):
46919        (WebCore::ScheduledAction::~ScheduledAction):
46920        (WebCore::ScheduledAction::execute):
46921        * bindings/v8/ScheduledAction.h:
46922        (WebCore):
46923        (ScheduledAction):
46924        (WebCore::ScheduledAction::ScheduledAction):
46925
469262012-08-23  Andrey Kosyakov  <caseq@chromium.org>
46927
46928        Web Inspector: dblclick on Timeline overview no longer selects entire timeline range
46929        https://bugs.webkit.org/show_bug.cgi?id=94826
46930
46931        Reviewed by Vsevolod Vlasov.
46932
46933        Only install a glass pane for drag-n-drop upon first mouseout event -- otherwise, glass pane
46934        will interfere with double clicks.
46935
46936        * inspector/front-end/UIUtils.js:
46937        (WebInspector._elementDragStart.onMouseOut):
46938        (WebInspector._elementDragStart):
46939        (WebInspector._elementDragEnd):
46940
469412012-08-23  Adrienne Walker  <enne@google.com>
46942
46943        Convert ScrollableArea ASSERT_NOT_REACHED virtuals
46944        https://bugs.webkit.org/show_bug.cgi?id=93306
46945
46946        Reviewed by Darin Adler.
46947
46948        ASSERT_NOT_REACHED is a bad way to make sure that a virtual function
46949        gets an override, because it only fails at run-time in debug builds.
46950
46951        To fix this, convert the virtuals in ScrollableArea that have
46952        ASSERT_NOT_REACHED to be either pure virtual or implemented directly
46953        in ScrollableArea. Add implementations where necessary to make derived
46954        classes concrete.
46955
46956        Additionally, consistently add OVERRIDE for virtual functions in
46957        derived classes that override ScrollableArea methods.
46958
46959        * WebCore.exp.in:
46960        * page/FrameView.h:
46961        (FrameView):
46962        * platform/ScrollView.h:
46963        (ScrollView):
46964        * platform/ScrollableArea.cpp:
46965        (WebCore::ScrollableArea::scrollPosition):
46966        (WebCore):
46967        (WebCore::ScrollableArea::minimumScrollPosition):
46968        (WebCore::ScrollableArea::maximumScrollPosition):
46969        (WebCore::ScrollableArea::visibleContentRect):
46970        * platform/ScrollableArea.h:
46971        (ScrollableArea):
46972        (WebCore::ScrollableArea::overhangAmount):
46973        * platform/chromium/FramelessScrollView.cpp:
46974        (WebCore::FramelessScrollView::isOnActivePage):
46975        (WebCore):
46976        (WebCore::FramelessScrollView::scrollableAreaBoundingBox):
46977        * platform/chromium/FramelessScrollView.h:
46978        (FramelessScrollView):
46979        * platform/win/PopupMenuWin.cpp:
46980        (WebCore::PopupMenuWin::visibleHeight):
46981        (WebCore):
46982        (WebCore::PopupMenuWin::visibleWidth):
46983        (WebCore::PopupMenuWin::contentsSize):
46984        (WebCore::PopupMenuWin::isOnActivePage):
46985        (WebCore::PopupMenuWin::scrollableAreaBoundingBox):
46986        * platform/win/PopupMenuWin.h:
46987        (PopupMenuWin):
46988        * rendering/RenderListBox.cpp:
46989        * rendering/RenderListBox.h:
46990        (RenderListBox):
46991
469922012-08-23  Alexander Shalamov  <alexander.shalamov@intel.com>
46993
46994        getComputedStyle returns wrong value for CSS3 2D transformations
46995        https://bugs.webkit.org/show_bug.cgi?id=94211
46996
46997        Reviewed by Simon Fraser.
46998
46999        When computed style is calculated for CSS3 2D transformation, content
47000        box size is used. According to W3C specification, object's bounding
47001        box should be used. This patch fixes transformation matrix calculation.
47002
47003        Layout tests getComputedStyle-transform.html and computed-style-origin.html
47004        were modified to test changes.
47005
47006        * css/CSSComputedStyleDeclaration.cpp:
47007        (WebCore::computedTransform):
47008        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
47009        (WebCore::pixelSnappedSizingBox): Removed unused method
47010
470112012-08-23  Takashi Sakamoto  <tasak@google.com>
47012
47013        Distributed nodes should not share styles.
47014        https://bugs.webkit.org/show_bug.cgi?id=90661
47015
47016        Reviewed by Hajime Morita.
47017
47018        styleForElement tries to use previous sibling's style for distributed
47019        nodes. However distributed nodes are children of a shadow host, but
47020        the nodes are not siblings as the result of distribution.
47021        The spec is:
47022        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-dom-subtrees
47023        So sharing previous sibling's style should be disabled for distrbuted
47024        nodes.
47025
47026        Test: fast/dom/shadow/style-of-distributed-node.html
47027
47028        * css/StyleResolver.cpp:
47029        (WebCore::StyleResolver::StyleResolver):
47030        Initialized m_distributedToInsertionPoint. Its initial value is false.
47031        (WebCore::StyleResolver::initForStyleResolve):
47032        After invoking NodeRenderingContext, if the context returns any
47033        insertion point, set m_distributedToInsertionPoint to be true.
47034        Otherwise, false. The value is used in styleForElement.
47035        (WebCore::StyleResolver::styleForElement):
47036        If m_distributedToInsertionPoint is true, disable local sibling style
47037        cache.
47038        * css/StyleResolver.h:
47039        (StyleResolver):
47040        Added a new member variable, m_distributedToInsertionPoint.
47041        The variable keeps whether the m_element is distributed to an
47042        insertion point.
47043
470442012-08-23  John Griggs  <jgriggs@rim.com>
47045
47046                Replace access ot HTMLMediaElement from MediaPlayerPrivateBlackBerry with methods in MediaPlayerClient - updated with notes from initial reviews.  https://bugs.webkit.org/show_bug.cgi?id=84291
47047
47048                Reviewed by Eric Carlson.
47049
47050                Code standard compliance - no functional change, so no new tests required.
47051
47052                * html/HTMLMediaElement.cpp:
47053                (WebCore::HTMLMediaElement::mediaPlayerExitFullscreen):
47054                (WebCore):
47055                (WebCore::HTMLMediaElement::mediaPlayerIsVideo):
47056                (WebCore::HTMLMediaElement::mediaPlayerContentBoxRect):
47057                (WebCore::HTMLMediaElement::mediaPlayerSetSize):
47058                (WebCore::HTMLMediaElement::mediaPlayerPause):
47059                (WebCore::HTMLMediaElement::mediaPlayerPlay):
47060                (WebCore::HTMLMediaElement::mediaPlayerIsPaused):
47061                (WebCore::HTMLMediaElement::mediaPlayerHostWindow):
47062                (WebCore::HTMLMediaElement::mediaPlayerWindowClipRect):
47063                * html/HTMLMediaElement.h:
47064                (HTMLMediaElement):
47065                * platform/graphics/MediaPlayer.h:
47066                (WebCore):
47067                (WebCore::MediaPlayerClient::mediaPlayerExitFullscreen):
47068                (WebCore::MediaPlayerClient::mediaPlayerIsVideo):
47069                (WebCore::MediaPlayerClient::mediaPlayerContentBoxRect):
47070                (WebCore::MediaPlayerClient::mediaPlayerSetSize):
47071                (WebCore::MediaPlayerClient::mediaPlayerPause):
47072                (WebCore::MediaPlayerClient::mediaPlayerPlay):
47073                (WebCore::MediaPlayerClient::mediaPlayerIsPaused):
47074                (WebCore::MediaPlayerClient::mediaPlayerHostWindow):
47075                (WebCore::MediaPlayerClient::mediaPlayerWindowClipRect):
47076                * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
47077                (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
47078                (WebCore::MediaPlayerPrivate::load):
47079                (WebCore::MediaPlayerPrivate::paint):
47080                (WebCore::MediaPlayerPrivate::resizeSourceDimensions):
47081                (WebCore::MediaPlayerPrivate::updateStates):
47082                (WebCore::MediaPlayerPrivate::onPauseStateChanged):
47083                (WebCore::MediaPlayerPrivate::onPlayNotified):
47084                (WebCore::MediaPlayerPrivate::onPauseNotified):
47085                (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
47086                (WebCore::MediaPlayerPrivate::showErrorDialog):
47087                (WebCore::MediaPlayerPrivate::platformWindow):
47088                (WebCore::MediaPlayerPrivate::isElementPaused):
47089                (WebCore::MediaPlayerPrivate::isTabVisible):
47090                * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
47091                (MediaPlayerPrivate):
47092
470932012-08-23  John Mellor  <johnme@chromium.org>
47094
47095        Text Autosizing: Multiply large fonts less, as they are already more legible.
47096        https://bugs.webkit.org/show_bug.cgi?id=94227
47097
47098        Reviewed by Kenneth Rohde Christiansen.
47099
47100        Rather than uniformly multiplying font sizes by the multiplier (derived
47101        from the width of the block), we should multiply fonts that are already
47102        large less, since they are already more legible hence there is less need
47103        for them to grow.
47104
47105        However it is still important to maintain differentiation between text
47106        that the author specified to be of different sizes.
47107
47108        This algorithm multiplies text by the multiplier up until a predefined
47109        "pleasant" font size; beyond that the computedSize goes up with
47110        specifiedSize but at a gradient of less than 1 in order to gradually
47111        fade out the size increase; finally for very large specifiedSizes the
47112        computedSize will be the same as the specifiedSize.
47113
47114        For further details, including a graph, please see the bug report.
47115
47116        Test: fast/text-autosizing/various-font-sizes.html
47117
47118        * rendering/TextAutosizer.cpp:
47119        (WebCore::TextAutosizer::computeAutosizedFontSize):
47120
47121            Implements the custom multiplication. See comment for details.
47122
47123        * rendering/style/RenderStyle.cpp:
47124        (WebCore::RenderStyle::lineHeight):
47125
47126            Use computeAutosizedFontSize instead of directly multiplying.
47127
47128        (WebCore::RenderStyle::setFontSize):
47129
47130            Use computeAutosizedFontSize instead of directly multiplying.
47131
471322012-08-23  Emil A Eklund  <eae@chromium.org>
47133
47134        Remove dependency on RenderStyle from FractionalLayoutBoxExtent and LayoutBox
47135        https://bugs.webkit.org/show_bug.cgi?id=94146
47136
47137        Reviewed by Eric Seidel.
47138
47139        FractionalLayoutBoxExtent and LayoutBox currently have a dependency on
47140        RenderStyle to resolve writing mode and text direction.
47141        This is undesirable and breaks encapsulation.
47142
47143        Change FractionalLayoutBoxExtent and LengthBox to take a writing mode
47144        parameter, and text direction as needed, instead of a pointer to a
47145        RenderStyle object.
47146
47147        No new tests, no change in functionality.
47148
47149        * WebCore.gypi:
47150        * WebCore.vcproj/WebCore.vcproj:
47151        * WebCore.xcodeproj/project.pbxproj:
47152        Add new WritingMode.h file.
47153        
47154        * css/CSSPrimitiveValueMappings.h:
47155        * css/CSSProperty.h:
47156        * css/CSSToStyleMap.h:
47157        Change includes as needed.
47158
47159        * platform/LengthBox.h:
47160        * platform/LengthBox.cpp:
47161        (WebCore::LengthBox::logicalLeft):
47162        (WebCore::LengthBox::logicalRight):
47163        (WebCore::LengthBox::before):
47164        (WebCore::LengthBox::after):
47165        Change methods to take a WirtingMode parameter instead of a RenderStyle pointer.
47166        
47167        (WebCore::LengthBox::start):
47168        (WebCore::LengthBox::end):
47169        Change methods to take WritingMode and TextDirection parameters instead of a RenderStyle pointer.
47170        
47171        * platform/graphics/FractionalLayoutBoxExtent.h:
47172        * platform/graphics/FractionalLayoutBoxExtent.cpp:
47173        (WebCore::FractionalLayoutBoxExtent::logicalTop):
47174        (WebCore::FractionalLayoutBoxExtent::logicalBottom):
47175        (WebCore::FractionalLayoutBoxExtent::logicalLeft):
47176        (WebCore::FractionalLayoutBoxExtent::logicalRight):
47177        (WebCore::FractionalLayoutBoxExtent::before):
47178        (WebCore::FractionalLayoutBoxExtent::after):
47179        (WebCore::FractionalLayoutBoxExtent::setBefore):
47180        (WebCore::FractionalLayoutBoxExtent::setAfter):
47181        (WebCore::FractionalLayoutBoxExtent::mutableLogicalLeft):
47182        (WebCore::FractionalLayoutBoxExtent::mutableLogicalRight):
47183        (WebCore::FractionalLayoutBoxExtent::mutableBefore):
47184        (WebCore::FractionalLayoutBoxExtent::mutableAfter):
47185        Change methods to take a WritingMode parameter instead of a RenderStyle pointer.
47186
47187        (WebCore::FractionalLayoutBoxExtent::start):
47188        (WebCore::FractionalLayoutBoxExtent::end):
47189        (WebCore::FractionalLayoutBoxExtent::setStart):
47190        (WebCore::FractionalLayoutBoxExtent::setEnd):
47191        Change methods to take WritingMode and TextDirection parameters instead of a RenderStyle pointer.
47192
47193        * platform/text/TextDirection.h:
47194        (WebCore::isLeftToRightDirection):
47195        Add convenience method.
47196        
47197        * platform/text/WritingMode.h: Added.
47198        Move WritingMode enum from RenderStyleConstants to new file.
47199        
47200        (WebCore::isHorizontalWritingMode):
47201        (WebCore::isFlippedLinesWritingMode):
47202        (WebCore::isFlippedBlocksWritingMode):
47203        Add convenience methods for working with writing modes.
47204        
47205        * rendering/InlineFlowBox.cpp:
47206        * rendering/RenderBox.cpp:
47207        * rendering/RenderBox.h:
47208        * rendering/style/RenderStyle.h:
47209        Update calls to FractionalLayoutBoxExtent/LengthBox to pass WritingMode/
47210        TextDirection as needed.
47211
47212        * rendering/style/RenderStyleConstants.h:
47213        Remove WritingMode enum as it is now in a dedicated file.
47214
472152012-08-23  Pavel Feldman  <pfeldman@chromium.org>
47216
47217        Web Inspector: introduce canFilter on panel (otherwise we check for function existence).
47218        https://bugs.webkit.org/show_bug.cgi?id=94820
47219
47220        Reviewed by Alexander Pavlov.
47221
47222        Drive-by: fix for network panel sorting null pointer access.
47223
47224        * inspector/front-end/NetworkPanel.js:
47225        (WebInspector.NetworkPanel.prototype.performSearch):
47226        (WebInspector.NetworkPanel.prototype.canFilter):
47227        * inspector/front-end/Panel.js:
47228        (WebInspector.Panel.prototype.replaceAllWith):
47229        (WebInspector.Panel.prototype.canFilter):
47230        (WebInspector.Panel.prototype.performFilter):
47231        * inspector/front-end/SearchController.js:
47232        (WebInspector.SearchController.prototype._updateFilterVisibility):
47233        (WebInspector.SearchController.prototype._performFilter):
47234
472352012-08-23  Pavel Feldman  <pfeldman@chromium.org>
47236
47237        Web Inspector: introduce TimelineGrid.Calculator interface.
47238        https://bugs.webkit.org/show_bug.cgi?id=94819
47239
47240        Reviewed by Alexander Pavlov.
47241
47242        This way we can compile TimelineGrid properly.
47243
47244        * inspector/front-end/MemoryStatistics.js:
47245        (WebInspector.MemoryStatistics.prototype._calculateVisibleIndexes):
47246        * inspector/front-end/TimelineGrid.js:
47247        (WebInspector.TimelineGrid.prototype.updateDividers):
47248        (WebInspector.TimelineGrid.Calculator):
47249        (WebInspector.TimelineGrid.Calculator.prototype.computePosition):
47250        (WebInspector.TimelineGrid.Calculator.prototype.formatTime):
47251        (WebInspector.TimelineGrid.Calculator.prototype.minimumBoundary):
47252        (WebInspector.TimelineGrid.Calculator.prototype.maximumBoundary):
47253        (WebInspector.TimelineGrid.Calculator.prototype.boundarySpan):
47254        * inspector/front-end/TimelineOverviewPane.js:
47255        (WebInspector.TimelineOverviewCalculator.prototype.computePosition):
47256        (WebInspector.TimelineOverviewCalculator.prototype.computeBarGraphPercentages):
47257        (WebInspector.TimelineOverviewCalculator.prototype.setWindow):
47258        (WebInspector.TimelineOverviewCalculator.prototype.formatTime):
47259        (WebInspector.TimelineOverviewCalculator.prototype.maximumBoundary):
47260        (WebInspector.TimelineOverviewCalculator.prototype.minimumBoundary):
47261        (WebInspector.TimelineOverviewCalculator.prototype.boundarySpan):
47262        * inspector/front-end/TimelinePanel.js:
47263        (WebInspector.TimelinePanel.prototype._shouldShowFrames):
47264        (WebInspector.TimelineCalculator.prototype.computePosition):
47265        (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
47266        (WebInspector.TimelineCalculator.prototype.setWindow):
47267        (WebInspector.TimelineCalculator.prototype.formatTime):
47268        (WebInspector.TimelineCalculator.prototype.maximumBoundary):
47269        (WebInspector.TimelineCalculator.prototype.minimumBoundary):
47270        (WebInspector.TimelineCalculator.prototype.boundarySpan):
47271
472722012-08-23  David Reveman  <reveman@chromium.org>
47273
47274        [Chromium] Unnecessary delay when starting to update resources with an inactive vsync timer.
47275        https://bugs.webkit.org/show_bug.cgi?id=94719
47276
47277        Reviewed by James Robinson.
47278
47279        Replace nextTickTime() with nextTickTimeIfActivated() and return
47280        appropriate value when timer is inactive.
47281
47282        No new tests.
47283
47284        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
47285        (WebCore::CCDelayBasedTimeSource::nextTickTimeIfActivated):
47286        (WebCore::CCDelayBasedTimeSource::nextTickTarget):
47287        (WebCore):
47288        (WebCore::CCDelayBasedTimeSource::postNextTickTask):
47289        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
47290        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
47291        (WebCore::CCFrameRateController::nextTickTimeIfActivated):
47292        * platform/graphics/chromium/cc/CCFrameRateController.h:
47293        (CCFrameRateController):
47294        * platform/graphics/chromium/cc/CCScheduler.cpp:
47295        (WebCore::CCScheduler::processScheduledActions):
47296        * platform/graphics/chromium/cc/CCTimeSource.h:
47297        (CCTimeSource):
47298
472992012-08-23  Pavel Feldman  <pfeldman@chromium.org>
47300
47301        Web Inspector: make treeoutline.js compiler-friendly
47302        https://bugs.webkit.org/show_bug.cgi?id=94818
47303
47304        Reviewed by Alexander Pavlov.
47305
47306        This change declares base methods on TreeElement so that we did not need to check for their existence.
47307
47308        * inspector/front-end/AdvancedSearchController.js:
47309        (WebInspector.FileBasedSearchResultsPane.prototype._appendShowMoreMatchesElement):
47310        (WebInspector.FileBasedSearchResultsPane.prototype._addFileTreeElement):
47311        * inspector/front-end/ElementsTreeOutline.js:
47312        (WebInspector.ElementsTreeElement.prototype.onselect):
47313        * inspector/front-end/SidebarPane.js:
47314        (WebInspector.SidebarPane.prototype.expand):
47315        (WebInspector.SidebarPane.prototype.onexpand):
47316        (WebInspector.SidebarPane.prototype.collapse):
47317        * inspector/front-end/treeoutline.js:
47318        (TreeOutline.prototype._treeKeyDown):
47319        (TreeOutline.prototype._searchInputKeyDown):
47320        (TreeElement.prototype._fireDidChange):
47321        (TreeElement.prototype._attach):
47322        (TreeElement.treeElementDoubleClicked):
47323        (TreeElement.prototype.collapse):
47324        (TreeElement.prototype.expand):
47325        (TreeElement.prototype.reveal):
47326        (TreeElement.prototype.select):
47327        (TreeElement.prototype.deselect):
47328        (TreeElement.prototype.onpopulate):
47329        (TreeElement.prototype.onenter):
47330        (TreeElement.prototype.ondelete):
47331        (TreeElement.prototype.onspace):
47332        (TreeElement.prototype.onattach):
47333        (TreeElement.prototype.onexpand):
47334        (TreeElement.prototype.oncollapse):
47335        (TreeElement.prototype.ondblclick):
47336        (TreeElement.prototype.onreveal):
47337        (TreeElement.prototype.onselect):
47338
473392012-08-23  Yury Semikhatsky  <yurys@chromium.org>
47340
47341        Web Inspector: use temporary directory for modules generated by compile-front-end.py
47342        https://bugs.webkit.org/show_bug.cgi?id=94804
47343
47344        Reviewed by Pavel Feldman.
47345
47346        Create temporary directory for generated js modules and remove the directory
47347        after the compilation.
47348
47349        * inspector/compile-front-end.py:
47350
473512012-08-23  Simon Hausmann  <simon.hausmann@nokia.com>
47352
47353        [Qt] Fix make install on Windows
47354        https://bugs.webkit.org/show_bug.cgi?id=94816
47355
47356        Reviewed by Laszlo Gombos.
47357
47358        This old left-over rule for Windows to add dlltarget to INSTALLS caused
47359        various bugs: WebCore's Makefile had an actual install target that
47360        tried to install the WebCore static library and it also screwed up
47361        api.pri's install rule by overriding what is usually set up for qt
47362        modules, i.e. the install path was missing INSTALL_ROOT. We don't need
47363        these rules at all, the default qmake features take care of setting up
47364        target install rules accordingly.
47365
47366        * WebCore.pri:
47367
473682012-08-23  Pavel Feldman  <pfeldman@chromium.org>
47369
47370        Web Inspector: extract ParsedURL into a separate file.
47371        https://bugs.webkit.org/show_bug.cgi?id=94817
47372
47373        Reviewed by Alexander Pavlov.
47374
47375        * WebCore.gypi:
47376        * WebCore.vcproj/WebCore.vcproj:
47377        * inspector/compile-front-end.py:
47378        * inspector/front-end/AuditRules.js:
47379        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
47380        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived):
47381        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived):
47382        * inspector/front-end/DefaultTextEditor.js:
47383        (WebInspector.TextEditorMainPanel.prototype._rewriteHref):
47384        * inspector/front-end/ParsedURL.js: Added.
47385        (WebInspector.ParsedURL):
47386        (WebInspector.ParsedURL.completeURL):
47387        (WebInspector.ParsedURL.prototype.get displayName):
47388        (String.prototype.asParsedURL):
47389        * inspector/front-end/ResourceUtils.js:
47390        (WebInspector.resourceURLForRelatedNode):
47391        * inspector/front-end/StylesSidebarPane.js:
47392        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
47393        * inspector/front-end/WebKit.qrc:
47394        * inspector/front-end/inspector.html:
47395
473962012-08-23  Pavel Feldman  <pfeldman@chromium.org>
47397
47398        Web Inspector: register context menu providers for lazily loaded panels.
47399        https://bugs.webkit.org/show_bug.cgi?id=94812
47400
47401        Reviewed by Alexander Pavlov.
47402
47403        - Panel descriptors now register providers that lazily load panels on demand.
47404        - Removed custom profiles context provider infrastructure in favor of generic one.
47405
47406        * WebCore.gypi:
47407        * WebCore.vcproj/WebCore.vcproj:
47408        * inspector/compile-front-end.py:
47409        * inspector/front-end/NetworkPanel.js:
47410        (WebInspector.NetworkPanel):
47411        * inspector/front-end/NetworkPanelDescriptor.js: Added.
47412        (WebInspector.NetworkPanelDescriptor):
47413        (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
47414        * inspector/front-end/ObjectPropertiesSection.js:
47415        (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
47416        * inspector/front-end/ProfilesPanel.js:
47417        (WebInspector.ProfilesPanel):
47418        (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
47419        (WebInspector.ProfilesPanel.prototype.appendApplicableItems.didReceiveHeapObjectId):
47420        (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
47421        * inspector/front-end/ScriptsPanel.js:
47422        (WebInspector.ScriptsPanel):
47423        * inspector/front-end/ScriptsPanelDescriptor.js: Added.
47424        (WebInspector.ScriptsPanelDescriptor):
47425        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
47426        * inspector/front-end/WebKit.qrc:
47427        * inspector/front-end/inspector.html:
47428        * inspector/front-end/inspector.js:
47429        (WebInspector._panelDescriptors):
47430
474312012-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
47432
47433        Unreviewed. Fix make distcheck.
47434
47435        * GNUmakefile.am: Add idl files in Modules/quota to EXTRA_DIST.
47436        * GNUmakefile.list.am: Add missing files to compilation.
47437
474382012-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
47439
47440        REGRESSION(r126306): it broke the plugin process
47441        https://bugs.webkit.org/show_bug.cgi?id=94797
47442
47443        Reviewed by Xan Lopez.
47444
47445        * GNUmakefile.am:
47446        * GNUmakefile.list.am:
47447
474482012-08-23  Simon Hausmann  <simon.hausmann@nokia.com>
47449
47450        Unreviewed trivial build fix for Qt/Mac on OS X 10.6: Avoid using an
47451        enum value that clashes with an existing class name that's used in the
47452        same file.
47453
47454        * bridge/qt/qt_runtime.cpp:
47455        (JSC::Bindings::valueRealType):
47456        (JSC::Bindings::convertValueToQVariant):
47457
474582012-08-22  Patrick Gansterer  <paroga@webkit.org>
47459
47460        Build fix for WinCE after r126359.
47461
47462        * rendering/RenderThemeWinCE.cpp:
47463
474642012-08-23  Dominic Cooney  <dominicc@chromium.org>
47465
47466        Unreviewed, rolling out r126391.
47467        http://trac.webkit.org/changeset/126391
47468        https://bugs.webkit.org/show_bug.cgi?id=94302
47469
47470        Breaks Chromium browser_tests AccessibilityFooter,
47471        AccessibilityListMarkers, AccessibilityUI
47472
47473        * accessibility/AccessibilityNodeObject.cpp:
47474        * accessibility/AccessibilityNodeObject.h:
47475        (AccessibilityNodeObject):
47476        * accessibility/AccessibilityObject.cpp:
47477        * accessibility/AccessibilityObject.h:
47478        (AccessibilityObject):
47479        * accessibility/AccessibilityRenderObject.cpp:
47480        (WebCore::AccessibilityRenderObject::title):
47481        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
47482        (WebCore::AccessibilityRenderObject::isDescendantOfElementType):
47483        * accessibility/AccessibilityRenderObject.h:
47484        (AccessibilityRenderObject):
47485
474862012-08-23  Andrey Adaikin  <aandrey@chromium.org>
47487
47488        Web Inspector: [WebGL] Allow collecting calls for Resource objects affecting their states
47489        https://bugs.webkit.org/show_bug.cgi?id=94686
47490
47491        Reviewed by Pavel Feldman.
47492
47493        Allow collecting calls for WebGL Resource objects affecting their states.
47494        Clone Call's mutable arguments before pushing it to the log.
47495
47496        * inspector/InjectedScriptWebGLModuleSource.js:
47497        (.):
47498
474992012-08-23  Robin Cao  <robin.cao@torchmobile.com.cn>
47500
47501        [BlackBerry] draw <video> on <canvas> does not work
47502        https://bugs.webkit.org/show_bug.cgi?id=94791
47503        PR #195866
47504
47505        Reviewed by George Staikos.
47506
47507        Re-implement MediaPlayerPrivate::paintCurrentFrameInContext() in the
47508        blackberry port. This method is mainly called from <canvas>, and it
47509        is supposed to paint video frames using software rendering path.
47510
47511        On the other hand, MediaPlayerPrivate::paint() will choose accelerated
47512        rendering if possible.
47513
47514        media/video-canvas-alpha.html covers this.
47515
47516        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
47517        (WebCore::MediaPlayerPrivate::paint):
47518        (WebCore):
47519        (WebCore::MediaPlayerPrivate::paintCurrentFrameInContext):
47520        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
47521        (MediaPlayerPrivate):
47522
475232012-08-23  Kentaro Hara  <haraken@chromium.org>
47524
47525        Unreviewed. Build fix for r126399.
47526
47527        * bindings/v8/ScriptInstance.cpp:
47528
475292012-08-23  Pavel Feldman  <pfeldman@chromium.org>
47530
47531        Web Inspector: treat 0 cookies as "no cookies" and render it accordingly in the UI
47532        https://bugs.webkit.org/show_bug.cgi?id=94732
47533
47534        Reviewed by Yury Semikhatsky.
47535
47536        * inspector/front-end/RequestCookiesView.js:
47537        (WebInspector.RequestCookiesView.prototype.get _gotCookies):
47538
475392012-08-23  KwangYong Choi  <ky0.choi@samsung.com>
47540
47541        [EFL] Use vertical slider theme when the slider is vertical
47542        https://bugs.webkit.org/show_bug.cgi?id=93838
47543
47544        Reviewed by Kenneth Rohde Christiansen.
47545
47546        Applied vertical slider theme to the vertical sliders. The height
47547        of the vertical slider is wrong when it's applied horizontal
47548        slider theme.
47549
47550        And do not resize slider when its size is not specified. It's natural
47551        to use the default value of renderer.
47552
47553        No new tests. It's covered by existing range and datalist tests.
47554
47555        * platform/efl/RenderThemeEfl.cpp:
47556        (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
47557
475582012-08-23  Kentaro Hara  <haraken@chromium.org>
47559
47560        [V8] Remove almost all #include "V8Proxy.h"
47561        https://bugs.webkit.org/show_bug.cgi?id=94777
47562
47563        Reviewed by Adam Barth.
47564
47565        No tests. No change in behavior.
47566
47567        * bindings/v8/NPV8Object.cpp:
47568        * bindings/v8/PageScriptDebugServer.cpp:
47569        * bindings/v8/ScheduledAction.cpp:
47570        * bindings/v8/ScriptController.cpp:
47571        * bindings/v8/ScriptInstance.cpp:
47572        * bindings/v8/ScriptObject.cpp:
47573        * bindings/v8/ScriptRunner.cpp:
47574        * bindings/v8/SerializedScriptValue.cpp:
47575        * bindings/v8/V8AbstractEventListener.cpp:
47576        * bindings/v8/V8Binding.h:
47577        (WebCore):
47578        * bindings/v8/V8BindingMacros.h:
47579        (WebCore):
47580        * bindings/v8/V8Collection.h:
47581        * bindings/v8/V8DOMWindowShell.cpp:
47582        * bindings/v8/V8DOMWrapper.cpp:
47583        * bindings/v8/V8EventListener.cpp:
47584        * bindings/v8/V8GCController.cpp:
47585        * bindings/v8/V8LazyEventListener.cpp:
47586        * bindings/v8/V8NPObject.cpp:
47587        * bindings/v8/V8NPUtils.cpp:
47588        * bindings/v8/V8Proxy.h:
47589        (WebCore):
47590        * bindings/v8/V8Utilities.cpp:
47591        * bindings/v8/WorkerContextExecutionProxy.cpp:
47592        * bindings/v8/WorkerScriptController.cpp:
47593        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
47594        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
47595        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
47596        * bindings/v8/custom/V8AudioContextCustom.cpp:
47597        * bindings/v8/custom/V8BlobCustom.cpp:
47598        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
47599        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
47600        * bindings/v8/custom/V8ClipboardCustom.cpp:
47601        * bindings/v8/custom/V8ConsoleCustom.cpp:
47602        * bindings/v8/custom/V8CoordinatesCustom.cpp:
47603        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
47604        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
47605        * bindings/v8/custom/V8DataViewCustom.cpp:
47606        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
47607        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
47608        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
47609        * bindings/v8/custom/V8DocumentCustom.cpp:
47610        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
47611        * bindings/v8/custom/V8EntryCustom.cpp:
47612        * bindings/v8/custom/V8EntrySyncCustom.cpp:
47613        * bindings/v8/custom/V8EventCustom.cpp:
47614        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
47615        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
47616        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
47617        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
47618        * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
47619        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
47620        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
47621        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
47622        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
47623        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
47624        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
47625        * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
47626        * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
47627        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
47628        * bindings/v8/custom/V8HistoryCustom.cpp:
47629        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
47630        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
47631        * bindings/v8/custom/V8IntentConstructor.cpp:
47632        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
47633        * bindings/v8/custom/V8LocationCustom.cpp:
47634        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
47635        * bindings/v8/custom/V8MessageEventCustom.cpp:
47636        * bindings/v8/custom/V8MessagePortCustom.cpp:
47637        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
47638        * bindings/v8/custom/V8MutationObserverCustom.cpp:
47639        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
47640        * bindings/v8/custom/V8NodeCustom.cpp:
47641        * bindings/v8/custom/V8NodeListCustom.cpp:
47642        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
47643        * bindings/v8/custom/V8NotificationCustom.cpp:
47644        * bindings/v8/custom/V8PopStateEventCustom.cpp:
47645        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
47646        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
47647        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
47648        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
47649        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
47650        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
47651        * bindings/v8/custom/V8StorageCustom.cpp:
47652        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
47653        * bindings/v8/custom/V8TrackEventCustom.cpp:
47654        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
47655        * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
47656        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
47657        * bindings/v8/custom/V8WebSocketCustom.cpp:
47658        * bindings/v8/custom/V8WorkerContextCustom.cpp:
47659        * bindings/v8/custom/V8WorkerCustom.cpp:
47660        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
47661        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
47662        * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
47663
476642012-08-22  Kentaro Hara  <haraken@chromium.org>
47665
47666        Unreviewed, rolling out r126348.
47667        http://trac.webkit.org/changeset/126348
47668        https://bugs.webkit.org/show_bug.cgi?id=94588
47669
47670        We should use v8::String::NewSymbol() for symbols. See
47671        https://bugs.webkit.org/show_bug.cgi?id=94574#c10 for more
47672        details
47673
47674        * bindings/scripts/CodeGeneratorV8.pm:
47675        (GenerateNormalAttrGetter):
47676        (GenerateNormalAttrSetter):
47677        (GenerateNamedConstructorCallback):
47678        (GenerateNonStandardFunction):
47679        (GenerateImplementation):
47680        * bindings/scripts/test/V8/V8Float64Array.cpp:
47681        (WebCore::ConfigureV8Float64ArrayTemplate):
47682        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
47683        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
47684        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
47685        (WebCore::ConfigureV8TestEventTargetTemplate):
47686        * bindings/scripts/test/V8/V8TestInterface.cpp:
47687        (WebCore::ConfigureV8TestInterfaceTemplate):
47688        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
47689        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
47690        * bindings/scripts/test/V8/V8TestObj.cpp:
47691        (WebCore::ConfigureV8TestObjTemplate):
47692        (WebCore::V8TestObj::installPerContextProperties):
47693        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
47694        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
47695        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
47696        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
47697        * bindings/v8/V8Binding.h:
47698        (WebCore):
47699
477002012-08-22  Kentaro Hara  <haraken@chromium.org>
47701
47702        [V8] Remove V8Proxy from CodeGeneratorV8.pm
47703        https://bugs.webkit.org/show_bug.cgi?id=94773
47704
47705        Reviewed by Adam Barth.
47706
47707        To kill V8Proxy, we can remove V8Proxy uses from CodeGeneratorV8.pm.
47708
47709        No tests. No change in behavior.
47710
47711        * bindings/scripts/CodeGeneratorV8.pm:
47712        (GenerateToV8Converters):
47713        * bindings/scripts/test/V8/V8Float64Array.cpp:
47714        (WebCore::V8Float64Array::wrapSlow):
47715        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
47716        (WebCore::V8TestActiveDOMObject::wrapSlow):
47717        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
47718        (WebCore::V8TestCustomNamedGetter::wrapSlow):
47719        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
47720        (WebCore::V8TestEventConstructor::wrapSlow):
47721        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
47722        (WebCore::V8TestEventTarget::wrapSlow):
47723        * bindings/scripts/test/V8/V8TestException.cpp:
47724        (WebCore::V8TestException::wrapSlow):
47725        * bindings/scripts/test/V8/V8TestInterface.cpp:
47726        (WebCore::V8TestInterface::wrapSlow):
47727        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
47728        (WebCore::V8TestMediaQueryListListener::wrapSlow):
47729        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
47730        (WebCore::V8TestNamedConstructor::wrapSlow):
47731        * bindings/scripts/test/V8/V8TestNode.cpp:
47732        (WebCore::V8TestNode::wrapSlow):
47733        * bindings/scripts/test/V8/V8TestObj.cpp:
47734        (WebCore::V8TestObj::wrapSlow):
47735        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
47736        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
47737
477382012-08-22  Sukolsak Sakshuwong  <sukolsak@google.com>
47739
47740        Implement UndoManager's item() method
47741        https://bugs.webkit.org/show_bug.cgi?id=94671
47742
47743        Reviewed by Ryosuke Niwa.
47744
47745        This patch implements UndoManager's item() method and its V8 custom binding.
47746        We need to use custom binding here because we need to return user objects
47747        that are stored in a hidden property of DOMTransaction wrappers, not returning
47748        the wrappers themselves.
47749
47750        Test: editing/undomanager/undomanager-item.html
47751
47752        * bindings/js/JSUndoManagerCustom.cpp:
47753        (WebCore::JSUndoManager::item):
47754        (WebCore):
47755        * bindings/v8/DOMTransaction.cpp:
47756        (WebCore::DOMTransaction::data):
47757        (WebCore):
47758        (WebCore::DOMTransaction::setData):
47759        (WebCore::DOMTransaction::getFunction):
47760        * bindings/v8/DOMTransaction.h:
47761        * bindings/v8/custom/V8UndoManagerCustom.cpp:
47762        (WebCore::V8UndoManager::transactCallback):
47763        (WebCore::V8UndoManager::itemCallback):
47764        (WebCore):
47765        * editing/UndoManager.cpp:
47766        (WebCore::UndoManager::item):
47767        (WebCore):
47768        * editing/UndoManager.h:
47769        (UndoManager):
47770        * editing/UndoManager.idl:
47771
477722012-08-22  Dominic Mazzoni  <dmazzoni@google.com>
47773
47774        AX: Focusable elements without a role should not be ignored
47775        https://bugs.webkit.org/show_bug.cgi?id=94302
47776
47777        Reviewed by Chris Fleizach.
47778
47779        Changes the accessibility logic so that a generic element that's focusable is
47780        not ignored for accessibility, and returns its inner text as its title. That way
47781        if you Tab to the element, a reasonable accessibility notification is generated.
47782
47783        One exception is the body element, because focusing the body is equivalent to
47784        blurring the current focused element and does not result in a "focus" accessibility
47785        notification.
47786
47787        Also fixes logic that determined if an element was contentEditable by making
47788        sure it catches the case with no attribute value (e.g. <div contentEditable>),
47789        which also implies contentEditable=true according to the spec.
47790
47791        Test: accessibility/focusable-div.html
47792
47793        * accessibility/AccessibilityRenderObject.cpp:
47794        (WebCore):
47795        (WebCore::nodeHasContentEditableAttributeSet):
47796        (WebCore::AccessibilityRenderObject::title):
47797        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
47798
477992012-08-22  Kentaro Hara  <haraken@chromium.org>
47800
47801        Unreviewed, rolling out r126383.
47802        http://trac.webkit.org/changeset/126383
47803        https://bugs.webkit.org/show_bug.cgi?id=82888
47804
47805        Chromium win build crash
47806
47807        * bindings/js/JSClipboardCustom.cpp:
47808        (WebCore::JSClipboard::types):
47809        * bindings/v8/custom/V8ClipboardCustom.cpp:
47810        (WebCore::V8Clipboard::typesAccessorGetter):
47811        * dom/Clipboard.h:
47812        (Clipboard):
47813        * platform/blackberry/ClipboardBlackBerry.cpp:
47814        (WebCore::ClipboardBlackBerry::types):
47815        * platform/blackberry/ClipboardBlackBerry.h:
47816        (ClipboardBlackBerry):
47817        * platform/chromium/ChromiumDataObject.cpp:
47818        (WebCore::ChromiumDataObject::types):
47819        * platform/chromium/ChromiumDataObject.h:
47820        (ChromiumDataObject):
47821        * platform/chromium/ClipboardChromium.cpp:
47822        (WebCore::ClipboardChromium::types):
47823        * platform/chromium/ClipboardChromium.h:
47824        (ClipboardChromium):
47825        * platform/efl/ClipboardEfl.cpp:
47826        (WebCore::ClipboardEfl::types):
47827        * platform/efl/ClipboardEfl.h:
47828        (ClipboardEfl):
47829        * platform/gtk/ClipboardGtk.cpp:
47830        (WebCore::ClipboardGtk::types):
47831        * platform/gtk/ClipboardGtk.h:
47832        (ClipboardGtk):
47833        * platform/mac/ClipboardMac.h:
47834        (ClipboardMac):
47835        * platform/mac/ClipboardMac.mm:
47836        (WebCore::addHTMLClipboardTypesForCocoaType):
47837        (WebCore::ClipboardMac::types):
47838        * platform/qt/ClipboardQt.cpp:
47839        (WebCore::ClipboardQt::types):
47840        * platform/qt/ClipboardQt.h:
47841        (ClipboardQt):
47842        * platform/win/ClipboardWin.cpp:
47843        (WebCore::addMimeTypesForFormat):
47844        (WebCore::ClipboardWin::types):
47845        * platform/win/ClipboardWin.h:
47846        (ClipboardWin):
47847        * platform/wx/ClipboardWx.cpp:
47848        (WebCore::ClipboardWx::types):
47849        * platform/wx/ClipboardWx.h:
47850        (ClipboardWx):
47851
478522012-08-22  Kentaro Hara  <haraken@chromium.org>
47853
47854        [V8] Move m_isolatedWorlds and m_isolatedWorldSecurityOrigins from V8Proxy to ScriptController
47855        https://bugs.webkit.org/show_bug.cgi?id=94770
47856
47857        Reviewed by Adam Barth.
47858
47859        Now m_isolatedWorlds and m_isolatedWorldSecurityOrigins of V8Proxy
47860        are used by ScriptController only. We can move them to ScriptController.
47861
47862        No tests. No change in behavior.
47863
47864        * bindings/v8/ScriptController.cpp:
47865        (WebCore::ScriptController::resetIsolatedWorlds):
47866        (WebCore::ScriptController::evaluateInIsolatedWorld):
47867        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
47868        (WebCore::ScriptController::collectIsolatedContexts):
47869        * bindings/v8/ScriptController.h:
47870        (ScriptController):
47871        * bindings/v8/V8Proxy.h:
47872        (V8Proxy):
47873
478742012-08-22  Kentaro Hara  <haraken@chromium.org>
47875
47876        [V8] Move evaluate() from V8Proxy to ScriptController
47877        https://bugs.webkit.org/show_bug.cgi?id=94768
47878
47879        Reviewed by Adam Barth.
47880
47881        To kill V8Proxy, we can move evaluate() from V8Proxy to ScriptController.
47882
47883        - Renamed evaluate() to compileAndRunScript() to avoid name conflict
47884        with existing ScriptController::evaluate().
47885
47886        - Removed toV8Proxy() from NPV8Object, as it is no longer used.
47887
47888        No tests. No change in behavior.
47889
47890        * bindings/v8/NPV8Object.cpp:
47891        (_NPN_EvaluateHelper):
47892        * bindings/v8/ScheduledAction.cpp:
47893        (WebCore::ScheduledAction::execute):
47894        * bindings/v8/ScriptController.cpp:
47895        (WebCore::ScriptController::compileAndRunScript):
47896        (WebCore):
47897        (WebCore::ScriptController::evaluate):
47898        (WebCore::ScriptController::evaluateInIsolatedWorld):
47899        * bindings/v8/ScriptController.h:
47900        (ScriptController):
47901        * bindings/v8/V8Proxy.cpp:
47902        * bindings/v8/V8Proxy.h:
47903
479042012-08-22  Vineet Chaudhary  <rgf748@motorola.com>
47905
47906        Consider replacing return type of Clipboard::types() from HashSet<String> to Vector<String>.
47907        https://bugs.webkit.org/show_bug.cgi?id=82888
47908
47909        Reviewed by Kentaro Hara.
47910
47911        As part of removing custom bindings of types Array Clipboard::types() needs to return
47912        Vector<String> than HashSet<String>
47913
47914        No new tests. Exixting test should pass with this change as no behavoural changes.
47915
47916        * bindings/js/JSClipboardCustom.cpp: Replace data type from HashSet<> to Vector<>.
47917        (WebCore::JSClipboard::types):
47918        * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
47919        (WebCore::V8Clipboard::typesAccessorGetter):
47920        * dom/Clipboard.h: Ditto.
47921        (Clipboard):
47922        * platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
47923        (WebCore::ClipboardBlackBerry::types):
47924        * platform/blackberry/ClipboardBlackBerry.h: Ditto.
47925        (ClipboardBlackBerry):
47926        * platform/chromium/ChromiumDataObject.cpp: Ditto.
47927        (WebCore::ChromiumDataObject::types):
47928        * platform/chromium/ChromiumDataObject.h: Ditto.
47929        (ChromiumDataObject):
47930        * platform/chromium/ClipboardChromium.cpp: Ditto.
47931        (WebCore::ClipboardChromium::types):
47932        * platform/chromium/ClipboardChromium.h: Ditto.
47933        (ClipboardChromium):
47934        * platform/efl/ClipboardEfl.cpp: Ditto.
47935        (WebCore::ClipboardEfl::types):
47936        * platform/efl/ClipboardEfl.h: Ditto.
47937        (ClipboardEfl):
47938        * platform/gtk/ClipboardGtk.cpp: Ditto.
47939        (WebCore::ClipboardGtk::types):
47940        * platform/gtk/ClipboardGtk.h: Ditto.
47941        (ClipboardGtk):
47942        * platform/mac/ClipboardMac.h: Ditto.
47943        (ClipboardMac):
47944        * platform/mac/ClipboardMac.mm: Ditto.
47945        (WebCore::addHTMLClipboardTypesForCocoaType):
47946        (WebCore::ClipboardMac::types):
47947        * platform/qt/ClipboardQt.cpp: Ditto.
47948        (WebCore::ClipboardQt::types):
47949        * platform/qt/ClipboardQt.h: Ditto.
47950        (ClipboardQt):
47951        * platform/win/ClipboardWin.cpp: Ditto.
47952        (WebCore::addMimeTypesForFormat):
47953        (WebCore::ClipboardWin::types):
47954        * platform/win/ClipboardWin.h: Ditto.
47955        (ClipboardWin):
47956        * platform/wx/ClipboardWx.cpp: Ditto.
47957        (WebCore::ClipboardWx::types):
47958        * platform/wx/ClipboardWx.h: Ditto.
47959        (ClipboardWx):
47960
479612012-08-22  James Robinson  <jamesr@chromium.org>
47962
47963        [chromium] Change WebLayer from a concrete type to a pure virtual interface
47964        https://bugs.webkit.org/show_bug.cgi?id=94174
47965
47966        Reviewed by Adrienne Walker.
47967
47968        This updates WebCore code for the WebLayer interface changes. Classes that have ownership of specific layer
47969        types (such as DrawingBufferChromium, Canvas2DLayerBridge and ScrollingCoordinatorChromium) hold ownership
47970        of a specific type and a pointer to the WebLayer to GraphicsLayerChromium to be included in the final layer
47971        tree. GraphicsLayerChromium holds a WebContentLayer and (optionally) a WebImageLayer and WebLayer (for
47972        m_transformLayer) and assembles the final layer tree.
47973
47974        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
47975        (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
47976        (ScrollingCoordinatorPrivate):
47977        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
47978        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
47979        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
47980        (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
47981        (WebCore::scrollableLayerForGraphicsLayer):
47982        (WebCore):
47983        (WebCore::createScrollbarLayer):
47984        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
47985        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
47986        (WebCore::ScrollingCoordinator::setScrollLayer):
47987        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
47988        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
47989        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
47990        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
47991        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
47992        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
47993        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
47994        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
47995        (WebCore::Canvas2DLayerBridge::prepareForDraw):
47996        (WebCore::Canvas2DLayerBridge::layer):
47997        (WebCore::Canvas2DLayerBridge::contextAcquired):
47998        * platform/graphics/chromium/Canvas2DLayerBridge.h:
47999        (Canvas2DLayerBridge):
48000        * platform/graphics/chromium/DrawingBufferChromium.cpp:
48001        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
48002        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
48003        (WebCore::DrawingBufferPrivate::layer):
48004        (DrawingBufferPrivate):
48005        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
48006        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
48007        (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
48008        (WebCore::GraphicsLayerChromium::willBeDestroyed):
48009        (WebCore::GraphicsLayerChromium::updateNames):
48010        (WebCore::GraphicsLayerChromium::removeFromParent):
48011        (WebCore::GraphicsLayerChromium::setSize):
48012        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
48013        (WebCore::GraphicsLayerChromium::setContentsOpaque):
48014        (WebCore::GraphicsLayerChromium::setFilters):
48015        (WebCore::GraphicsLayerChromium::setBackgroundFilters):
48016        (WebCore::GraphicsLayerChromium::setMaskLayer):
48017        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
48018        (WebCore::GraphicsLayerChromium::setOpacity):
48019        (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
48020        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
48021        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
48022        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
48023        (WebCore::GraphicsLayerChromium::setContentsToImage):
48024        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
48025        (WebCore):
48026        (WebCore::GraphicsLayerChromium::setContentsToMedia):
48027        (WebCore::GraphicsLayerChromium::setContentsTo):
48028        (WebCore::GraphicsLayerChromium::addAnimation):
48029        (WebCore::GraphicsLayerChromium::pauseAnimation):
48030        (WebCore::GraphicsLayerChromium::removeAnimation):
48031        (WebCore::GraphicsLayerChromium::suspendAnimations):
48032        (WebCore::GraphicsLayerChromium::resumeAnimations):
48033        (WebCore::GraphicsLayerChromium::platformLayer):
48034        (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
48035        (WebCore::GraphicsLayerChromium::setDebugBorder):
48036        (WebCore::GraphicsLayerChromium::updateChildList):
48037        (WebCore::GraphicsLayerChromium::updateLayerPosition):
48038        (WebCore::GraphicsLayerChromium::updateLayerSize):
48039        (WebCore::GraphicsLayerChromium::updateAnchorPoint):
48040        (WebCore::GraphicsLayerChromium::updateTransform):
48041        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
48042        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
48043        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
48044        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
48045        (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
48046        (WebCore::GraphicsLayerChromium::updateContentsRect):
48047        (WebCore::GraphicsLayerChromium::updateContentsScale):
48048        (WebCore::GraphicsLayerChromium::setupContentsLayer):
48049        * platform/graphics/chromium/GraphicsLayerChromium.h:
48050        (GraphicsLayerChromium):
48051        (WebCore::GraphicsLayerChromium::hasContentsLayer):
48052        (WebCore::GraphicsLayerChromium::contentLayer):
48053        (WebCore::GraphicsLayerChromium::contentsLayer):
48054        * platform/graphics/chromium/LayerChromium.cpp:
48055        (WebCore::LayerChromium::rootLayer):
48056        * platform/graphics/chromium/LayerChromium.h:
48057
480582012-08-22  Kentaro Hara  <haraken@chromium.org>
48059
48060        [V8] Move runScript() from V8Proxy to ScriptRunner
48061        https://bugs.webkit.org/show_bug.cgi?id=94706
48062
48063        Reviewed by Adam Barth.
48064
48065        To kill V8Proxy, we can move runScript() from V8Proxy to ScriptRunner.
48066
48067        - ScriptRunner::runScript() should be a static method.
48068        It should receive ScriptExecutionContext on which the script is evaluated.
48069
48070        - After this patch is landed, I'll remove WorkerContextExecutionContext::runScript()
48071        and ScriptDebugServer::runScript().
48072
48073        No tests. No change in behavior.
48074
48075        * UseV8.cmake:
48076        * WebCore.gypi:
48077        * bindings/v8/ScriptController.cpp:
48078        * bindings/v8/ScriptRunner.cpp: Added.
48079        (WebCore):
48080        (WebCore::ScriptRunner::runScript):
48081        * bindings/v8/ScriptRunner.h: Added.
48082        (WebCore):
48083        (ScriptRunner):
48084        * bindings/v8/V8Binding.cpp:
48085        (WebCore::handleMaxRecursionDepthExceeded):
48086        (WebCore):
48087        * bindings/v8/V8Binding.h:
48088        (WebCore):
48089        * bindings/v8/V8Proxy.cpp:
48090        (WebCore::V8Proxy::evaluate):
48091        * bindings/v8/V8Proxy.h:
48092        (V8Proxy):
48093
480942012-08-22  Adam Barth  <abarth@webkit.org>
48095
48096        [V8] OwnHandle doesn't need to support weak handles
48097        https://bugs.webkit.org/show_bug.cgi?id=94760
48098
48099        Reviewed by Kentaro Hara.
48100
48101        No code uses makeWeak(). We can drop support for it and simplify this
48102        class.
48103
48104        * bindings/v8/OwnHandle.h:
48105        (WebCore):
48106        (OwnHandle):
48107        (WebCore::OwnHandle::OwnHandle):
48108        (WebCore::OwnHandle::~OwnHandle):
48109        (WebCore::OwnHandle::get):
48110        (WebCore::OwnHandle::set):
48111        (WebCore::OwnHandle::clear):
48112
481132012-08-22  Kentaro Hara  <haraken@chromium.org>
48114
48115        [V8] Remove V8Proxy from getXPathNSResolver()
48116        https://bugs.webkit.org/show_bug.cgi?id=94715
48117
48118        Reviewed by Adam Barth.
48119
48120        - The V8Proxy* argument of getXPathNSResolver(..., V8Proxy* = 0) is not used.
48121          We can remove it.
48122
48123        - We can rename getXPathNSResolver() to toXPathNSResolver().
48124
48125        - We can move toXPathNSResolver() from V8DOMWrapper to V8Binding,
48126          since other toXXX() methods are written in V8Binding.
48127
48128        - Change the return value of toXPathNSResolver() from RefPtr to PassRefPtr.
48129
48130        No tests. No change in behavior.
48131
48132        * bindings/scripts/CodeGeneratorV8.pm:
48133        (JSValueToNative):
48134        * bindings/v8/V8Binding.cpp:
48135        (WebCore::toXPathNSResolver):
48136        (WebCore):
48137        * bindings/v8/V8Binding.h:
48138        (WebCore):
48139        * bindings/v8/V8DOMWrapper.cpp:
48140        * bindings/v8/V8DOMWrapper.h:
48141        (V8DOMWrapper):
48142        * bindings/v8/custom/V8DocumentCustom.cpp:
48143        (WebCore::V8Document::evaluateCallback):
48144
481452012-08-22  Kenneth Russell  <kbr@google.com>
48146
48147        Unreviewed, rolling out r126325.
48148        http://trac.webkit.org/changeset/126325
48149        https://bugs.webkit.org/show_bug.cgi?id=94644
48150
48151        Caused subtle but reproducible failure to call onload handler
48152        properly in an SVG layout test in Chromium Mac Debug builds,
48153        indicating potentially larger problem
48154
48155        * css/CSSFontSelector.cpp:
48156        (WebCore::CSSFontSelector::beginLoadTimerFired):
48157        * loader/cache/CachedResourceLoader.cpp:
48158        (WebCore::CachedResourceLoader::decrementRequestCount):
48159
481602012-08-22  Victor Carbune  <victor@rosedu.org>
48161
48162        Display a TextTrackCue when snap-to-lines flag is set
48163        https://bugs.webkit.org/show_bug.cgi?id=79751
48164
48165        Reviewed by Tony Chang.
48166
48167        This patch implements rendering functionality for a given text track,
48168        following closer the exact WebVTT specification. There are two new classes
48169        which have been added in order to succesfully cover rendering when of a text
48170        track cue.
48171
48172        RenderTextTrackCue handles the specific rendering algorithm required,
48173        by checking for overlaps with other boxes that are in the same
48174        container (these can be any other boxes, not necessarily other cues,
48175        the video controls, for example).
48176
48177        TextTrackCueBox extends HTMLDivElement and is an intermediate layer
48178        between the renderer class and the actual cue object. Its purpose is
48179        to instantiate the particular renderer and cover all the default CSS
48180        styling that needs to be applied to the cue.
48181
48182        The layout is done in two steps:
48183          - Step 1: Layout the TextTrackCue with default CSS properties set (this is
48184        the TextTrackCueBox decorated with the respective CSS elements)
48185          - Step 2: RenderTextTrackCue adjusts the box position depending on the
48186        parameters of the TextTrackCue object and the overlaps that may occur with
48187        previously positioned cues.
48188
48189        Tests: media/track/track-cue-rendering-horizontal.html
48190               media/track/track-cue-rendering-vertical.html
48191
48192        * CMakeLists.txt: Updated to include RenderTextTrackCue.
48193        * GNUmakefile.list.am: Updated to include RenderTextTrackCue.
48194        * Target.pri: Updated to include RenderTextTrackCue.
48195        * WebCore.gypi: Updated to include RenderTextTrackCue.
48196        * WebCore.vcproj/WebCore.vcproj: Updated to include RenderTextTrackCue.
48197        * WebCore.xcodeproj/project.pbxproj: Updated to include RenderTextTrackCue.
48198        * css/mediaControls.css: Removed unreliable CSS.
48199        (video::-webkit-media-text-track-display): Removed properties.
48200        * html/shadow/MediaControlElements.cpp: Updated to not use the new class.
48201        (RenderTextTrackContainerElement):
48202        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Simplified
48203        the function by moving the check if track is rendered in TextTrack and used
48204        the TextTrackCueBox for cues.
48205        * html/track/TextTrack.cpp: Added a new method.
48206        (WebCore::TextTrack::isRendered): Method that returns whether the track should
48207        be rendered or not.
48208        (WebCore):
48209        * html/track/TextTrack.h: Added the isRendered method.
48210        (TextTrack):
48211        * html/track/TextTrackCue.cpp: Added several helper methods and
48212        the TextTrackCueBox.
48213        (WebCore):
48214        (WebCore::TextTrackCueBox::TextTrackCueBox): The TextTrackCueBox extends
48215        the HTMLDivElement and represents a bridge class between RenderTextTrackCue
48216        and TextTrackCue. This is required as the layout is done in two steps, as
48217        explained on top of the ChangeLog entry.
48218        (WebCore::TextTrackCueBox::getCue): Returns the associated TextTrackCue object.
48219        (WebCore::TextTrackCueBox::applyCSSProperties): Applies a part of the default CSS
48220        properties, as defined by section 3.5.1 of the WebVTT specification.
48221        (WebCore::TextTrackCueBox::shadowPseudoId): Moved the shadow pseudo id.
48222        (WebCore::TextTrackCueBox::createRenderer): Creates the particular renderer.
48223        (WebCore::TextTrackCue::TextTrackCue): Corrected the internal writing mode map.
48224        (WebCore::TextTrackCue::calculateComputedLinePosition): Updated the compute line
48225        position algorithm. This requires, however, a method to consider only rendered
48226        tracks (and therefore will be addressed completely in subsequent changeset).
48227        (WebCore::TextTrackCue::calculateDisplayParameters): Updated and corrected the
48228        computed display parameters to match the current specification.
48229        (WebCore::TextTrackCue::getDisplayTree): Update to use the TextTrackCueBox class
48230        and moved CSS application to the respective class.
48231        (WebCore::TextTrackCue::getPositionCoordinates): Added comment to specify in which
48232        situation this method is used and change visibility to private.
48233        (WebCore::TextTrackCue::getCSSWritingMode): Returns the CSS writing mode corresponding
48234        to the cue writing mode.
48235        (WebCore::TextTrackCue::getCSSSize): Returns the cue width / height (depending on the
48236        writing direction.
48237        (WebCore::TextTrackCue::getCSSPosition): Returns the default display position, that is
48238        used in the first layout step.
48239        * html/track/TextTrackCue.h:
48240        (WebCore):
48241        (TextTrackCueBox):
48242        (WebCore::TextTrackCueBox::create): Initialization method.
48243        (TextTrackCue):
48244        (WebCore::TextTrackCue::getWritingDirection): Helper method to return the internal
48245        values used to represent the writing direction.
48246        * rendering/RenderTextTrackCue.cpp: Added.
48247        (WebCore):
48248        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
48249        (WebCore::RenderTextTrackCue::layout): The rendering steps, as mentioned in
48250        the WebVTT rendering rules. Currently, this treats only the snap-to-lines set
48251        case. It is implemented following closely the spec, and might be subject to
48252        change as discussions on various bugs evolve.
48253        (WebCore::RenderTextTrackCue::initializeLayoutParameters): Steps 1 - 7.
48254        (WebCore::RenderTextTrackCue::placeBoxInDefaultPosition): Steps 8 - 10.
48255        (WebCore::RenderTextTrackCue::isOutside): Inline method to check if the cue is outside.
48256        (WebCore::RenderTextTrackCue::isOverlapping): Inline method to check if the cue overlaps other boxes.
48257        (WebCore::RenderTextTrackCue::shouldSwitchDirection): Step 12.
48258        (WebCore::RenderTextTrackCue::moveBoxesByStep): Step 13.
48259        (WebCore::RenderTextTrackCue::switchDirection): Steps 15 - 18.
48260        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Cue repositioning
48261        for text track cue when the snap to lines flag is set.
48262        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesNotSet): Cue repositioning
48263        for text track cue when the snap to lines flag is not set. Not implemented yet.
48264        * rendering/RenderTextTrackCue.h: Added.
48265        (WebCore):
48266        (RenderTextTrackCue): Rendering class, handling the display of cues.
48267
482682012-08-21  Kentaro Hara  <haraken@chromium.org>
48269
48270        [V8] Move matchesCurrentContext() from V8Proxy to ScriptController
48271        https://bugs.webkit.org/show_bug.cgi?id=94596
48272
48273        Reviewed by Adam Barth.
48274
48275        To kill V8Proxy:
48276
48277        - We can move matchesCurrentContext() from V8Proxy to ScriptController.
48278        - We can remove V8Proxy::isolatedWorldContext() since it is not used by anybody.
48279        - We can remove V8Proxy::finishedWithEvent() since it is empty.
48280
48281        No tests. No change in behavior.
48282
48283        * bindings/scripts/CodeGeneratorV8.pm:
48284        (GenerateToV8Converters):
48285        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48286        (WebCore::V8TestActiveDOMObject::wrapSlow):
48287        * bindings/scripts/test/V8/V8TestNode.cpp:
48288        (WebCore::V8TestNode::wrapSlow):
48289        * bindings/v8/ScriptController.cpp:
48290        (WebCore::ScriptController::finishedWithEvent):
48291        (WebCore::ScriptController::matchesCurrentContext):
48292        (WebCore):
48293        * bindings/v8/ScriptController.h:
48294        (ScriptController):
48295        * bindings/v8/V8Proxy.cpp:
48296        * bindings/v8/V8Proxy.h:
48297        (V8Proxy):
48298
482992012-08-22  Alejandro Piñeiro  <apinheiro@igalia.com>
48300
48301        [Gtk] Dojo toggle buttons should expose ROLE_TOGGLE_BUTTON not ROLE_PUSH_BUTTON
48302        https://bugs.webkit.org/show_bug.cgi?id=73819
48303
48304        Reviewed by Chris Fleizach.
48305
48306        Added a new role, Toggle Button, based on whether aria-pressed is present.
48307        http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed
48308
48309        Test: platform/gtk/accessibility/aria-toggle-button-role.html
48310
48311        * accessibility/AccessibilityNodeObject.cpp:
48312        (WebCore::AccessibilityNodeObject::determineAccessibilityRole): using buttonRoleType
48313        to classify a button-related role.
48314        (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute): using buttonRoleType
48315        to classify a button-related role.
48316        * accessibility/AccessibilityObject.cpp:
48317        (WebCore::AccessibilityObject::ariaPressedIsPresent): checks if aria-pressed
48318        attribute is present.
48319        (WebCore::AccessibilityObject::buttonRoleType): returns a specific button-related
48320        role if the object is a button-related role.
48321        * accessibility/AccessibilityObject.h:
48322        (AccessibilityObject): added new role ToggleButtonRole.
48323        * accessibility/AccessibilityRenderObject.cpp:
48324        (WebCore::AccessibilityRenderObject::determineAccessibilityRole): using buttonRoleType
48325        to classify a button-related role.
48326        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
48327        (atkRole): added a mapping between ToggleButtonRole and
48328        ATK_ROLE_TOGGLE_BUTTON.
48329        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
48330        (createAccessibilityRoleMap): added a mapping between
48331        ToggleButtonRole and NSAccessibilityButtonRole
48332
483332012-08-22  David Grogan  <dgrogan@chromium.org>
48334
48335        IndexedDB: revert int version when version change transaction aborts
48336        https://bugs.webkit.org/show_bug.cgi?id=94662
48337
48338        Reviewed by Tony Chang.
48339
48340        Test: storage/indexeddb/intversion-revert-on-abort.html
48341
48342        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
48343        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
48344        (WebCore::IDBDatabaseBackendImpl::resetIntVersion):
48345        One-liner modeled after resetVersion.
48346
48347        (WebCore):
48348        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
48349        (IDBDatabaseBackendImpl):
48350
483512012-08-17  Jeffrey Pfau  <jpfau@apple.com>
48352
48353        Allow blocking of Web SQL databases in third-party web workers
48354        https://bugs.webkit.org/show_bug.cgi?id=94170
48355
48356        Reviewed by Adam Barth.
48357
48358        Web workers did not previously know anything about the document that
48359        spawned them. This is undefined for shared workers, but for dedicated
48360        workers, we now pipe the information through.
48361
48362        Tests: http/tests/security/cross-origin-worker-websql-allowed.html
48363               http/tests/security/cross-origin-worker-websql.html
48364
48365        * Modules/webdatabase/WorkerContextWebDatabase.cpp: Pass information about the top origin to canAccessDatabase
48366        (WebCore::WorkerContextWebDatabase::openDatabase):
48367        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
48368        * WebCore.exp.in: Make SecurityOrigin::isolatedCopy const
48369        * page/SecurityOrigin.cpp:
48370        (WebCore::SecurityOrigin::isolatedCopy):
48371        (WebCore::SecurityOrigin::canAccessStorage):
48372        * page/SecurityOrigin.h:
48373        * workers/DedicatedWorkerContext.cpp: Pass topOrigin
48374        (WebCore::DedicatedWorkerContext::create):
48375        (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
48376        * workers/DedicatedWorkerContext.h:
48377        (DedicatedWorkerContext):
48378        * workers/DedicatedWorkerThread.cpp: Pass topOrigin
48379        (WebCore::DedicatedWorkerThread::create):
48380        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
48381        (WebCore::DedicatedWorkerThread::createWorkerContext):
48382        * workers/DedicatedWorkerThread.h:
48383        (DedicatedWorkerThread):
48384        * workers/SharedWorkerContext.cpp: Pass topOrigin
48385        (WebCore::SharedWorkerContext::SharedWorkerContext):
48386        * workers/SharedWorkerThread.cpp:
48387        (WebCore::SharedWorkerThread::SharedWorkerThread):
48388        (WebCore::SharedWorkerThread::createWorkerContext):
48389        * workers/SharedWorkerThread.h:
48390        (SharedWorkerThread): Pass topOrigin
48391        * workers/WorkerContext.cpp:
48392        (WebCore::WorkerContext::WorkerContext):
48393        * workers/WorkerContext.h:
48394        (WebCore::WorkerContext::topOrigin):
48395        (WorkerContext):
48396        * workers/WorkerMessagingProxy.cpp: Pass topOrigin
48397        (WebCore::WorkerMessagingProxy::startWorkerContext):
48398        * workers/WorkerThread.cpp:
48399        (WebCore::WorkerThreadStartupData::create):
48400        (WorkerThreadStartupData):
48401        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
48402        (WebCore::WorkerThread::WorkerThread):
48403        (WebCore::WorkerThread::workerThread):
48404        * workers/WorkerThread.h:
48405        (WorkerThread):
48406
484072012-08-22  Kentaro Hara  <haraken@chromium.org>
48408
48409        [V8] Move context() from V8Proxy to ScriptController
48410        https://bugs.webkit.org/show_bug.cgi?id=94593
48411
48412        Reviewed by Adam Barth.
48413
48414        - This patch removes V8Proxy::context(Frame*).
48415        - This patch moves V8Proxy::context() to ScriptController::context().
48416        - This patch renames ScriptController::context() to ScriptController::currentWorldContext(),
48417        for naming consistency with ScriptController::maintWorldContext().
48418
48419        No tests. No change in behavior.
48420
48421        * bindings/scripts/CodeGeneratorV8.pm:
48422        (GenerateToV8Converters):
48423        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48424        (WebCore::V8TestActiveDOMObject::wrapSlow):
48425        * bindings/scripts/test/V8/V8TestNode.cpp:
48426        (WebCore::V8TestNode::wrapSlow):
48427        * bindings/v8/ScriptController.cpp:
48428        (WebCore::ScriptController::context):
48429        (WebCore):
48430        * bindings/v8/ScriptController.h:
48431        (ScriptController):
48432        * bindings/v8/V8DOMWrapper.cpp:
48433        (WebCore::V8DOMWrapper::setNamedHiddenWindowReference):
48434        * bindings/v8/V8Proxy.cpp:
48435        * bindings/v8/V8Proxy.h:
48436        (V8Proxy):
48437        * bindings/v8/custom/V8DOMWindowCustom.cpp:
48438        (WebCore::WindowSetTimeoutImpl):
48439        (WebCore::V8DOMWindow::eventAccessorGetter):
48440        (WebCore::V8DOMWindow::eventAccessorSetter):
48441        (WebCore::DialogHandler::dialogCreated):
48442        (WebCore::toV8):
48443        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
48444        (WebCore::V8HTMLDocument::openCallback):
48445
484462012-08-22  Kentaro Hara  <haraken@chromium.org>
48447
48448        [V8] Remove V8Proxy from V8DOMWrapper::instantiateV8Object()
48449        https://bugs.webkit.org/show_bug.cgi?id=94713
48450
48451        Reviewed by Adam Barth.
48452
48453        To kill V8Proxy, V8DOMWrapper::instantiateV8Object() should receive Frame*
48454        instead of V8Proxy*.
48455
48456        No tests. No change in behavior.
48457
48458        * bindings/scripts/CodeGeneratorV8.pm:
48459        (GenerateToV8Converters):
48460        * bindings/scripts/test/V8/V8Float64Array.cpp:
48461        (WebCore::V8Float64Array::wrapSlow):
48462        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48463        (WebCore::V8TestActiveDOMObject::wrapSlow):
48464        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48465        (WebCore::V8TestCustomNamedGetter::wrapSlow):
48466        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48467        (WebCore::V8TestEventConstructor::wrapSlow):
48468        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48469        (WebCore::V8TestEventTarget::wrapSlow):
48470        * bindings/scripts/test/V8/V8TestException.cpp:
48471        (WebCore::V8TestException::wrapSlow):
48472        * bindings/scripts/test/V8/V8TestInterface.cpp:
48473        (WebCore::V8TestInterface::wrapSlow):
48474        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48475        (WebCore::V8TestMediaQueryListListener::wrapSlow):
48476        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48477        (WebCore::V8TestNamedConstructor::wrapSlow):
48478        * bindings/scripts/test/V8/V8TestNode.cpp:
48479        (WebCore::V8TestNode::wrapSlow):
48480        * bindings/scripts/test/V8/V8TestObj.cpp:
48481        (WebCore::V8TestObj::wrapSlow):
48482        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48483        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48484        * bindings/v8/V8DOMWrapper.cpp:
48485        (WebCore):
48486        (WebCore::V8DOMWrapper::instantiateV8Object):
48487        * bindings/v8/V8DOMWrapper.h:
48488        (V8DOMWrapper):
48489
484902012-08-22  Joshua Bell  <jsbell@chromium.org>
48491
48492        IndexedDB: IDBRequest can be destructed during abort
48493        https://bugs.webkit.org/show_bug.cgi?id=94618
48494
48495        Reviewed by Tony Chang.
48496
48497        If there are no script references, an IDBRequest could be kept alive
48498        only by enqueued events. On document destruction, the parent transaction
48499        is aborted, which aborts the request. During the abort, the enqueued events
48500        are deleted, releasing the last reference to the IDBRequest which then
48501        destructs in mid-method call and an "unfinished" state, hitting an assert.
48502
48503        This patch keeps the IDBRequest alive through the completion of the abort()
48504        method, which will enqueue another event. In the document destruction case,
48505        this will end up with the IDBRequest having stop() called on it which will
48506        send the IDBRequest into EarlyDeath state, satisfying the destructor assert.
48507
48508        Addresses existing layout tests that behave flakily in Chromium port.
48509
48510        * Modules/indexeddb/IDBRequest.cpp:
48511        (WebCore::IDBRequest::abort):
48512
485132012-08-22  Kentaro Hara  <haraken@chromium.org>
48514
48515        [V8] Move precompileScript() from V8Proxy to ScriptSourceCode
48516        https://bugs.webkit.org/show_bug.cgi?id=94701
48517
48518        Reviewed by Adam Barth.
48519
48520        To kill V8Proxy, we can move precompileScript() from V8Proxy
48521        to ScriptSourceCode.
48522
48523        No tests. No change in behavior.
48524
48525        * bindings/v8/ScriptSourceCode.cpp:
48526        (WebCore::ScriptSourceCode::precompileScript):
48527        (WebCore):
48528        * bindings/v8/ScriptSourceCode.h:
48529        (ScriptSourceCode):
48530        * bindings/v8/V8Proxy.cpp:
48531        (WebCore::V8Proxy::evaluate):
48532        * bindings/v8/V8Proxy.h:
48533        (V8Proxy):
48534
485352012-08-22  Nikhil Bhargava  <nbhargava@google.com>
48536
48537        Reduce Font.h includes across project -- improves RenderObject.h compile time
48538        https://bugs.webkit.org/show_bug.cgi?id=93629
48539
48540        Reviewed by Eric Seidel.
48541
48542        RenderStyle.h no longer depends on Font.h. The files that transitively
48543        need to be updated with proper includes are fixed.
48544
48545        No new tests. Functionality should remain the same.
48546
48547        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
48548        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
48549        * bindings/objc/DOM.mm:
48550        * css/CSSComputedStyleDeclaration.cpp:
48551        * css/CSSPrimitiveValue.cpp:
48552        * css/StyleResolver.h:
48553        * dom/CharacterData.cpp:
48554        * dom/ElementRareData.h:
48555        * dom/NodeRenderingContext.cpp:
48556        * dom/Text.cpp:
48557        * editing/TextIterator.cpp:
48558        * editing/mac/EditorMac.mm:
48559        * html/HTMLTitleElement.cpp:
48560        * html/shadow/TextControlInnerElements.cpp:
48561        * inspector/InspectorOverlay.cpp:
48562        * page/ContextMenuController.cpp:
48563        * page/PrintContext.cpp:
48564        * platform/efl/RenderThemeEfl.cpp:
48565        * platform/graphics/FontMetrics.h:
48566        * platform/gtk/RenderThemeGtk.cpp:
48567        * platform/gtk/RenderThemeGtk2.cpp:
48568        * platform/mac/HTMLConverter.mm:
48569        * rendering/EllipsisBox.cpp:
48570        * rendering/FlowThreadController.cpp:
48571        * rendering/InlineBox.cpp:
48572        * rendering/InlineFlowBox.cpp:
48573        * rendering/InlineFlowBox.h:
48574        (WebCore):
48575        * rendering/RenderButton.cpp:
48576        * rendering/RenderCombineText.cpp:
48577        * rendering/RenderCombineText.h:
48578        * rendering/RenderDeprecatedFlexibleBox.cpp:
48579        * rendering/RenderEmbeddedObject.h:
48580        (WebCore):
48581        * rendering/RenderFileUploadControl.cpp:
48582        * rendering/RenderFullScreen.h:
48583        * rendering/RenderImage.cpp:
48584        * rendering/RenderInline.cpp:
48585        * rendering/RenderListItem.cpp:
48586        * rendering/RenderListMarker.cpp:
48587        * rendering/RenderMultiColumnBlock.cpp:
48588        * rendering/RenderRegion.h:
48589        * rendering/RenderRuby.cpp:
48590        * rendering/RenderRubyRun.cpp:
48591        * rendering/RenderScrollbar.cpp:
48592        * rendering/RenderTable.cpp:
48593        * rendering/RenderTableCell.cpp:
48594        * rendering/RenderTableRow.cpp:
48595        * rendering/RenderTableSection.cpp:
48596        * rendering/RenderTextControl.cpp:
48597        * rendering/RenderTextControlMultiLine.cpp:
48598        * rendering/RenderThemeChromiumSkia.cpp:
48599        * rendering/RenderView.cpp:
48600        * rendering/TextAutosizer.cpp:
48601        * rendering/mathml/RenderMathMLBlock.h:
48602        * rendering/style/KeyframeList.h:
48603        * rendering/style/RenderStyle.cpp:
48604        * rendering/style/RenderStyle.h:
48605        (WebCore):
48606        * rendering/style/StyleInheritedData.cpp:
48607        * rendering/svg/RenderSVGBlock.cpp:
48608        * rendering/svg/RenderSVGInlineText.h:
48609        * svg/SVGLengthContext.cpp:
48610        * svg/SVGTRefElement.cpp:
48611
486122012-08-22  Alex Christensen  <alex.christensen@flexsim.com>
48613        win64 compile error fix for BinaryPropertyList.cpp
48614        https://bugs.webkit.org/show_bug.cgi?id=94122
48615
48616        Reviewed by Eric Seidel.
48617
48618        Fixed compile errors for MSVC x64 without changing performance
48619
48620        * platform/cf/BinaryPropertyList.cpp:
48621        (WebCore::BinaryPropertyListSerializer::appendStringObject):
48622
486232012-08-22  Kwang Yul Seo  <skyul@company100.net>
48624
48625        HTMLTreeBuilder::furthestBlockForFormattingElement should belong to HTMLElementStack
48626        https://bugs.webkit.org/show_bug.cgi?id=93857
48627
48628        Reviewed by Eric Seidel.
48629
48630        HTMLTreeBuilder::furthestBlockForFormattingElement should belong to
48631        HTMLElementStack because it traverses the element stack and finds the
48632        furthest block for the given formatting element.
48633
48634        Currently, it belongs to HTMLTreeBuilder just because
48635        isSpecialNode(const HTMLStackItem*) function used by
48636        furthestBlockForFormattingElement is internal to HTMLTreeBuilder.
48637
48638        Moved isSpecialNode to HTMLStackItem and changed
48639        furthestBlockForFormattingElement to be a method of HTMLElementStack.
48640
48641        No behavior change. Just a refactoring.
48642
48643        * html/parser/HTMLElementStack.cpp:
48644        (WebCore):
48645        (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
48646        (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
48647        (WebCore::HTMLElementStack::furthestBlockForFormattingElement):
48648        * html/parser/HTMLElementStack.h:
48649        (HTMLElementStack):
48650        * html/parser/HTMLStackItem.h:
48651        (WebCore::HTMLStackItem::isInHTMLNamespace):
48652        (HTMLStackItem):
48653        (WebCore::HTMLStackItem::isNumberedHeaderElement):
48654        (WebCore::HTMLStackItem::isTableBodyContextElement):
48655        (WebCore::HTMLStackItem::isSpecialNode):
48656        * html/parser/HTMLTreeBuilder.cpp:
48657        (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
48658        (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
48659        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
48660        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
48661        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
48662        (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
48663        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
48664        * html/parser/HTMLTreeBuilder.h:
48665
486662012-08-22  Alexandre Elias  <aelias@google.com>
48667
48668        [chromium] Add software bitmap resources to CCResourceProvider
48669        https://bugs.webkit.org/show_bug.cgi?id=93677
48670
48671        Reviewed by Adrienne Walker.
48672
48673        Second commit after revert.
48674
48675        This adds the ability to CCResourceProvider to use software bitmaps.
48676        They are allocated as plain-old-memory, and exposed as Skia objects.
48677
48678        We want the ResourceProvider to be able to handle different resource
48679        types at the same time.  In practice, a default resource type is
48680        desired for most uses within a single compositor instance, which is
48681        specified by the default resource type.  Default resource types are
48682        expected to be mostly 1-to-1 with CCRenderer types.
48683
48684        New tests added by parametrizing existing CCResourceProvider tests.
48685
48686        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
48687        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
48688        * platform/graphics/chromium/LayerRendererChromium.cpp:
48689        (WebCore::applyFilters):
48690        (WebCore::LayerRendererChromium::drawRenderPassQuad):
48691        (WebCore::LayerRendererChromium::drawTileQuad):
48692        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
48693        (WebCore::LayerRendererChromium::drawTextureQuad):
48694        (WebCore::LayerRendererChromium::getFramebufferTexture):
48695        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
48696        * platform/graphics/chromium/LayerRendererChromium.h:
48697        (DrawingFrame):
48698        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
48699        (WebCore::CCResourceProvider::createResource):
48700        (WebCore):
48701        (WebCore::CCResourceProvider::createGLTexture):
48702        (WebCore::CCResourceProvider::createBitmap):
48703        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
48704        (WebCore::CCResourceProvider::deleteResource):
48705        (WebCore::CCResourceProvider::upload):
48706        (WebCore::CCResourceProvider::flush):
48707        (WebCore::CCResourceProvider::shallowFlushIfSupported):
48708        (WebCore::CCResourceProvider::lockForRead):
48709        (WebCore::CCResourceProvider::unlockForRead):
48710        (WebCore::CCResourceProvider::lockForWrite):
48711        (WebCore::CCResourceProvider::unlockForWrite):
48712        (WebCore::CCResourceProvider::ScopedReadLockGL::ScopedReadLockGL):
48713        (WebCore::CCResourceProvider::ScopedReadLockGL::~ScopedReadLockGL):
48714        (WebCore::CCResourceProvider::ScopedWriteLockGL::ScopedWriteLockGL):
48715        (WebCore::CCResourceProvider::ScopedWriteLockGL::~ScopedWriteLockGL):
48716        (WebCore::CCResourceProvider::populateSkBitmapWithResource):
48717        (WebCore::CCResourceProvider::ScopedReadLockSoftware::ScopedReadLockSoftware):
48718        (WebCore::CCResourceProvider::ScopedReadLockSoftware::~ScopedReadLockSoftware):
48719        (WebCore::CCResourceProvider::ScopedWriteLockSoftware::ScopedWriteLockSoftware):
48720        (WebCore::CCResourceProvider::ScopedWriteLockSoftware::~ScopedWriteLockSoftware):
48721        (WebCore::CCResourceProvider::CCResourceProvider):
48722        * platform/graphics/chromium/cc/CCResourceProvider.h:
48723        (WebCore):
48724        (WebCore::CCResourceProvider::setCreationPolicy):
48725        (WebCore::CCResourceProvider::creationPolicy):
48726        (CCResourceProvider):
48727        (ScopedReadLockGL):
48728        (WebCore::CCResourceProvider::ScopedReadLockGL::textureId):
48729        (ScopedWriteLockGL):
48730        (WebCore::CCResourceProvider::ScopedWriteLockGL::textureId):
48731        (ScopedReadLockSoftware):
48732        (WebCore::CCResourceProvider::ScopedReadLockSoftware::skBitmap):
48733        (ScopedWriteLockSoftware):
48734        (WebCore::CCResourceProvider::ScopedWriteLockSoftware::skCanvas):
48735        (Resource):
48736
487372012-08-22  Anna Cavender  <annacc@chromium.org>
48738
48739        Update the TextTrackCue Constructor
48740        https://bugs.webkit.org/show_bug.cgi?id=88583
48741
48742        Reviewed by Eric Carlson.
48743
48744        The TextTrackCue constructor has been changed to:
48745        [Constructor(double startTime, double endTime, DOMString text)]
48746        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue
48747
48748        No new tests.  Update to media/track/track-add-remove-cue.html
48749
48750        * html/track/TextTrackCue.cpp:
48751        (WebCore::TextTrackCue::TextTrackCue):
48752        * html/track/TextTrackCue.h:
48753        (WebCore::TextTrackCue::create):
48754        (TextTrackCue):
48755        * html/track/TextTrackCue.idl:
48756        * html/track/WebVTTParser.cpp:
48757        (WebCore::WebVTTParser::createNewCue):
48758
487592012-08-22  Erik Arvidsson  <arv@chromium.org>
48760
48761        Changing class attribute is not reflected in the classList property
48762        https://bugs.webkit.org/show_bug.cgi?id=93665
48763
48764        Reviewed by Ojan Vafai.
48765
48766        Before this change classAttributeChanged was only called for StyledElement. With this refactoring
48767        it gets called for all Elements when the class attribute changes.
48768
48769        Test: fast/dom/Element/class-list-update.html
48770
48771        * css/StyleResolver.cpp:
48772        (WebCore::StyleResolver::collectMatchingRules): To match the old behavior we only include StyledElements.
48773        * dom/ClassNodeList.cpp:
48774        (WebCore::ClassNodeList::nodeMatches): Ditto.
48775        * dom/Element.cpp:
48776        (WebCore::Element::attributeChanged): Moved the call to parseAttribute here, from StyledElement::attributeChanged.
48777        (WebCore::Element::parseAttribute): Moved from StyledElement.
48778        (WebCore):
48779        (WebCore::Element::classAttributeChanged): Ditto.
48780        * dom/Element.h:
48781        (Element):
48782        (WebCore::Element::classNames): Ditto.
48783        (WebCore):
48784        * dom/StyledElement.cpp:
48785        (WebCore::StyledElement::attributeChanged): Let Element::attributeChanged call parseAttribtue instead.
48786        (WebCore::StyledElement::parseAttribute): Move the class attribute handling to Element::parseAttribute.
48787        * dom/StyledElement.h:
48788        (StyledElement):
48789
487902012-08-22  Kentaro Hara  <haraken@chromium.org>
48791
48792        [V8] Replace v8::String::NewSymbol() in CodeGeneratorV8.pm with v8String()
48793        https://bugs.webkit.org/show_bug.cgi?id=94588
48794
48795        Reviewed by Eric Seidel.
48796
48797        v8String() is faster than String::NewSymbol().
48798        This patch implements v8String(char*, Isolate*) and
48799        replaces String::NewSymbol(char*) in CodeGeneratorV8.pm
48800        with v8String(char*, Isolate*).
48801
48802        Performance result:
48803
48804        // 272 nano sec
48805        static v8::Handle<v8::Value> attr3AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
48806        {
48807            v8::Handle<v8::Value> v1 = v8String(String("foo"));
48808            v8::Handle<v8::Value> v2 = v8String(String("bar"));
48809            if (!v1.IsEmpty() && !v2.IsEmpty())
48810                return v8Undefined();
48811            return v8::Null(); // Never reach.
48812        }
48813
48814        // 377 nano sec
48815        static v8::Handle<v8::Value> attr4AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
48816        {
48817            v8::Handle<v8::Value> v1 = v8::String::NewSymbol("foo");
48818            v8::Handle<v8::Value> v2 = v8::String::NewSymbol("bar");
48819            if (!v1.IsEmpty() && !v2.IsEmpty())
48820                return v8Undefined();
48821            return v8::Null(); // Never reach.
48822        }
48823
48824        No tests. No change in behavior.
48825
48826        * bindings/scripts/CodeGeneratorV8.pm:
48827        (GenerateNormalAttrGetter):
48828        (GenerateNormalAttrSetter):
48829        (GenerateNamedConstructorCallback):
48830        (GenerateNonStandardFunction):
48831        (GenerateImplementation):
48832        * bindings/scripts/test/V8/V8Float64Array.cpp:
48833        (WebCore::ConfigureV8Float64ArrayTemplate):
48834        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48835        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
48836        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48837        (WebCore::ConfigureV8TestEventTargetTemplate):
48838        * bindings/scripts/test/V8/V8TestInterface.cpp:
48839        (WebCore::ConfigureV8TestInterfaceTemplate):
48840        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48841        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
48842        * bindings/scripts/test/V8/V8TestObj.cpp:
48843        (WebCore::ConfigureV8TestObjTemplate):
48844        (WebCore::V8TestObj::installPerContextProperties):
48845        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48846        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
48847        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
48848        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
48849        * bindings/v8/V8Binding.h:
48850        (WebCore):
48851        (WebCore::v8String):
48852        * html/HTMLDivElement.idl:
48853
488542012-08-22  Pratik Solanki  <psolanki@apple.com>
48855
48856        Setting WebKitEnableHTTPPipelining doesn't work if default is true
48857        https://bugs.webkit.org/show_bug.cgi?id=94537
48858
48859        Reviewed by David Kilzer.
48860
48861        * platform/network/cf/ResourceRequestCFNet.cpp:
48862        (WebCore::initializeMaximumHTTPConnectionCountPerHost): Read in the HTTP pipelining pref and
48863        allow it to override the default pipelining behavior if it was actually set.
48864
488652012-08-22  W. James MacLean  <wjmaclean@chromium.org>
48866
48867        [chromium] Add touch link highlight animation layers.
48868        https://bugs.webkit.org/show_bug.cgi?id=84487
48869
48870        Reviewed by James Robinson.
48871
48872        Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
48873        implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
48874        Transform support currently limited to translation.
48875
48876        Unit tests for LinkHighlight revised.
48877
48878        Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
48879               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
48880               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
48881               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
48882               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
48883               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
48884               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
48885               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
48886               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
48887               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
48888               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
48889               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
48890               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
48891               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
48892               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
48893               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
48894               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
48895               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
48896               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
48897               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
48898               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
48899               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
48900               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
48901               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
48902               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
48903               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
48904               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
48905               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
48906               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
48907               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
48908               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
48909               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
48910               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
48911               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
48912               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
48913               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
48914               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
48915               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
48916               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
48917               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
48918               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
48919
48920        * WebCore.gypi:
48921        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
48922        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
48923        (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
48924        (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
48925        (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
48926        (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
48927        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
48928        (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
48929        (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
48930        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
48931        * platform/graphics/chromium/GraphicsLayerChromium.h:
48932        (WebCore):
48933        (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
48934        (WebCore::LinkHighlightClient::~LinkHighlightClient):
48935        (GraphicsLayerChromium):
48936        (WebCore::GraphicsLayerChromium::linkHighlight):
48937        * platform/graphics/chromium/LinkHighlight.cpp: Removed.
48938
489392012-08-22  Beth Dakin  <bdakin@apple.com>
48940
48941        https://bugs.webkit.org/show_bug.cgi?id=94401
48942        Add support for making a web site become paginated using overflow: 
48943        paged-x | paged-y
48944        -and corresponding-
48945        <rdar://problem/11831783> 
48946
48947        Reviewed by Dave Hyatt.
48948
48949        This patch adds two new possible values for overflow-y. They are -
48950        webkit-paged-x and -webkit-paged-y. When you set these as overflow-y 
48951        values on the html or body element, they make the RenderView 
48952        paginated, much like the API on Page.
48953
48954        -webkit-paged-x and -webkit-paged-y are only valid values for 
48955        overflow-y, NOT overflow-x. overflow-x defaults to a value of auto 
48956        (for now) unless it has been set to something else.
48957        * css/CSSParser.cpp:
48958        (WebCore::isValidKeywordPropertyAndValue):
48959        (WebCore::CSSParser::parseValue):
48960
48961        Two new CSS value keywords.
48962        * css/CSSValueKeywords.in:
48963
48964        EOverflow has two new values for pagination. 
48965        * rendering/style/RenderStyleConstants.h:
48966        * css/CSSPrimitiveValueMappings.h:
48967        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
48968        (WebCore::CSSPrimitiveValue::operator EOverflow):
48969
48970        A bunch of existing code from StyleResolver::styleForDocument() is 
48971        moved into a helper function so that it can be called from two 
48972        places. 
48973        * css/StyleResolver.cpp:
48974        (WebCore::StyleResolver::collectMatchingRulesForList):
48975
48976        Even though this pagination is very similar to Page::pagination(), it 
48977        is different in one critical way. Page::pagination() will apply to 
48978        all FrameViews, even those in the page cache. For this reason, 
48979        FrameView needs to keep its own Pagination value that just applies to 
48980        this FrameView.
48981        * page/FrameView.cpp:
48982        * page/FrameView.h:
48983        (WebCore):
48984        (FrameView):
48985
48986        Map RenderStyle values to a Pagination::Mode.
48987        (WebCore::paginationModeForRenderStyle):
48988        (WebCore):
48989
48990        Account for paged-x and paged-y here.
48991        (WebCore::FrameView::applyOverflowToViewport):
48992
48993        As is explained in the header, FrameView::pagination() will return 
48994        m_pagination if it has been set. Otherwise, it will return 
48995        Page::pagination() since currently there are no callers that need to 
48996        distinguish between the two.
48997        (WebCore::FrameView::pagination):
48998        (WebCore::FrameView::setPagination):
48999
49000        Generally this means that everywhere in WebCore should ask FrameView 
49001        for the pagination(), not Page. These call sites all look to 
49002        FrameView now.
49003        (WebCore::FrameView::paintContents):
49004        * rendering/RenderView.cpp:
49005        (WebCore::RenderView::requiresColumns):
49006        (WebCore::RenderView::calcColumnWidth):
49007        (WebCore::RenderView::paginationUnit):
49008        (WebCore::RenderView::viewLogicalHeight):
49009
49010        Since we need to define Pagination in Page.h AND FrameView.h, it is 
49011        now in its own header, Pagination.h. And therefore it is no longer 
49012        WebCore::Page::Pagination, but rather it is just WebCore::Pagination.
49013        * page/Page.h:
49014        (Page):
49015        * rendering/Pagination.h: Added.
49016        (WebCore):
49017        (WebCore::Pagination::Pagination):
49018        (Pagination):
49019        (WebCore::Pagination::operator==):
49020        (WebCore::Pagination::operator!=):
49021        * WebCore.exp.in:
49022        * WebCore.xcodeproj/project.pbxproj:
49023        * GNUmakefile.list.am:
49024        * Target.pri:
49025        * WebCore.exp.in:
49026        * WebCore.gypi:
49027
49028        Certain ColumnInfo values are set based on the RenderStyle. So if 
49029        those RenderStyle values change, the ColumnInfo needs to be updated.
49030        * rendering/RenderBlock.cpp:
49031        (WebCore::RenderBlock::updateColumnInfoFromStyle):
49032        (WebCore):
49033        * rendering/RenderBlock.h:
49034        (RenderBlock):
49035
49036        Factor in paged-x and paged-y when determining if a RenderBlock 
49037        requires columns.
49038        (WebCore::RenderBlock::requiresColumns):
49039
49040        RenderStyle::specifiesColumns() is an odd and probably broken 
49041        function. At the very least, it should be re-named, if not removed 
49042        entirely. It does not accurately assess if columns have been 
49043        specified. I had to add this code here because specifiesColumns() 
49044        returns false for paged-x and true for paged-y. We were hitting a 
49045        number of crashes with paged-y because of this, so I chose for the 
49046        time being to limit this check to non-root layers.
49047        * rendering/RenderLayer.cpp:
49048        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
49049
49050        It's just Pagination now, not Page::Pagination.
49051        * testing/InternalSettings.cpp:
49052        (WebCore::InternalSettings::reset):
49053        (WebCore::InternalSettings::setPagination):
49054
490552012-08-22  Dean Jackson  <dino@apple.com>
49056
49057        [WebGL] Mac/ATI/AMD systems need to translate built-in GLSL functions
49058        https://bugs.webkit.org/show_bug.cgi?id=94030
49059
49060        Reviewed by Tim Horton.
49061
49062        ATI/AMD GPUs on Apple platforms do not give correct values for some of
49063        the built-in GLSL functions. Add a compile flag that is passed to ANGLE
49064        so that, with this configuration, it will rewrite the shader to emulate
49065        the function in code.
49066
49067        This is exposing some design weaknesses in the way we call ANGLE. We'll
49068        soon need to add more compiler flags; Future bugs will likely clean
49069        this code up. But this approach is satisfactory for the moment.
49070
49071        This change is tested by the Khronos WebGL conformance test suite, in particular:
49072        conformance/glsl/functions/glsl-function-distance.html
49073        conformance/glsl/functions/glsl-function-dot.html
49074        conformance/glsl/functions/glsl-function-length.html
49075
49076        * platform/graphics/ANGLEWebKitBridge.cpp:
49077        (WebCore::ANGLEWebKitBridge::validateShaderSource): Test for ATI cards
49078        on the Mac platform, and pass in an extra flag to the translation step.
49079        * platform/graphics/ANGLEWebKitBridge.h:
49080        (ANGLEWebKitBridge): Add a new parameter to getTranslatedShaderSourceANGLE
49081        that accepts some extra options to pass to ANGLE.
49082        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
49083        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Pass
49084        the extra options into ANGLE's compile function.
49085
490862012-08-22  Tommy Widenflycht  <tommyw@google.com>
49087
49088        [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler
49089        https://bugs.webkit.org/show_bug.cgi?id=93091
49090
49091        Reviewed by Adam Barth.
49092
49093        Fixing a FIXME that the patch obsoletes.
49094
49095        Covered by existing tests.
49096
49097        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
49098        (WebCore::RTCPeerConnectionHandlerChromium::initialize):
49099
491002012-08-22  Eric Penner  <epenner@google.com>
49101
49102        [chromium] Simplify updateContentRect, removing rect parameter, refactor unit tests.
49103        https://bugs.webkit.org/show_bug.cgi?id=94165
49104
49105        Reviewed by Adrienne Walker.
49106
49107        Remove visible rect parameter from TiledLayerChromium functions. Passing a
49108        rect that is not the visible rect wouldn't make sense, and soon we might
49109        need further visibility information.
49110
49111        In refactoring the unit tests, I removed texture manager from all tests
49112        and put it in the test class. I also made some utility functions to 
49113        simulate the commit flow and remove tons of boilerplate code. I refactored
49114        about half the unit tests to use the utility functions.
49115
49116        Refactored tests.
49117
49118        * platform/graphics/chromium/ContentLayerChromium.cpp:
49119        (WebCore::ContentLayerChromium::update):
49120        (WebCore::ContentLayerChromium::needMoreUpdates):
49121        * platform/graphics/chromium/ImageLayerChromium.cpp:
49122        (WebCore::ImageLayerChromium::update):
49123        * platform/graphics/chromium/TiledLayerChromium.cpp:
49124        (WebCore):
49125        (WebCore::TiledLayerChromium::setTexturePriorities):
49126        (WebCore::TiledLayerChromium::resetUpdateState):
49127        (WebCore::TiledLayerChromium::update):
49128        (WebCore::TiledLayerChromium::needsIdlePaint):
49129        (WebCore::TiledLayerChromium::idlePaintRect):
49130        * platform/graphics/chromium/TiledLayerChromium.h:
49131        (TiledLayerChromium):
49132
491332012-08-22  Otto Derek Cheung  <otcheung@rim.com>
49134
49135        [BlackBerry] Add a check to filter out cookies that tries to set the 
49136        domain to a top level domain
49137        https://bugs.webkit.org/show_bug.cgi?id=94722
49138
49139        Reviewed by Rob Buis.
49140
49141        Adding conditions to check whether a cookie domain is a top level domain.
49142        If it is, throw it out when parsing.
49143
49144        Manual Testing by trying to insert a cookie with an invalid domain
49145        using web-inspector. (ex: when on news.yahoo.com.hk, try to document.
49146        cookie="test1=seeifthiscookieexist; domain=.com.hk")
49147
49148        PR121622
49149
49150        * platform/blackberry/CookieParser.cpp:
49151        WebCore::CookieParser::parseOneCookie):
49152
491532012-08-22  Rob Buis  <rwlbuis@webkit.org>
49154
49155        Remove RenderBlock::paintEllipsisBoxes
49156        https://bugs.webkit.org/show_bug.cgi?id=94709
49157
49158        Reviewed by Eric Seidel.
49159
49160        Remove unused method.
49161
49162        No change in functionality, no new tests.
49163
49164        * rendering/RenderBlock.cpp:
49165        (WebCore::RenderBlock::paintFloats):
49166        * rendering/RenderBlock.h:
49167        (RenderBlock):
49168
491692012-08-22  Tommy Widenflycht  <tommyw@google.com>
49170
49171        MediaStream API: Introduce RTCSessionDescription
49172        https://bugs.webkit.org/show_bug.cgi?id=93119
49173
49174        Reviewed by Adam Barth.
49175
49176        This patch introduces RTCSessionDescription together with its
49177        corresponding WebCore/platform representation.
49178
49179        Test: fast/mediastream/RTCSessionDescription.html
49180
49181        * CMakeLists.txt:
49182        * GNUmakefile.list.am:
49183        * Modules/mediastream/DOMWindowMediaStream.idl:
49184        * Modules/mediastream/RTCSessionDescription.cpp: Added.
49185        (WebCore):
49186        (WebCore::RTCSessionDescription::create):
49187        (WebCore::RTCSessionDescription::RTCSessionDescription):
49188        (WebCore::RTCSessionDescription::~RTCSessionDescription):
49189        (WebCore::RTCSessionDescription::type):
49190        (WebCore::RTCSessionDescription::setType):
49191        (WebCore::RTCSessionDescription::sdp):
49192        (WebCore::RTCSessionDescription::setSdp):
49193        (WebCore::RTCSessionDescription::descriptor):
49194        * Modules/mediastream/RTCSessionDescription.h: Added.
49195        (WebCore):
49196        (RTCSessionDescription):
49197        * Modules/mediastream/RTCSessionDescription.idl: Added.
49198        * WebCore.gypi:
49199        * platform/mediastream/RTCSessionDescriptionDescriptor.cpp: Added.
49200        (WebCore):
49201        (WebCore::RTCSessionDescriptionDescriptor::create):
49202        (WebCore::RTCSessionDescriptionDescriptor::RTCSessionDescriptionDescriptor):
49203        (WebCore::RTCSessionDescriptionDescriptor::~RTCSessionDescriptionDescriptor):
49204        * platform/mediastream/RTCSessionDescriptionDescriptor.h: Added.
49205        (WebCore):
49206        (RTCSessionDescriptionDescriptor):
49207        (WebCore::RTCSessionDescriptionDescriptor::type):
49208        (WebCore::RTCSessionDescriptionDescriptor::setType):
49209        (WebCore::RTCSessionDescriptionDescriptor::sdp):
49210        (WebCore::RTCSessionDescriptionDescriptor::setSdp):
49211
492122012-08-22  Victor Carbune  <victor@rosedu.org>
49213
49214        DOM manipulation crashes the browser
49215
49216        Creating a DOM track element by script and changing the mode crashes
49217        results in a browser crash.
49218        https://bugs.webkit.org/show_bug.cgi?id=94628
49219
49220        Reviewed by Eric Carlson.
49221
49222        Simple fix that creates the text track cue list in case of mode change.
49223
49224        Test: media/track/track-element-dom-change-crash.html
49225
49226        * html/HTMLMediaElement.cpp:
49227        (WebCore::HTMLMediaElement::textTrackModeChanged):
49228
492292012-08-22  Ryosuke Niwa  <rniwa@webkit.org>
49230
49231        Microdata build fix.
49232
49233        * html/HTMLPropertiesCollection.h:
49234        (WebCore::HTMLPropertiesCollection::updatePropertyCache):
49235
492362012-08-22  Tommy Widenflycht  <tommyw@google.com>
49237
49238        MediaStream API: Introduce RTCIceCandidate
49239        https://bugs.webkit.org/show_bug.cgi?id=93117
49240
49241        Reviewed by Adam Barth.
49242
49243        This patch introduces RTCIceCandidate together with its corresponding
49244        WebCore/platform representation.
49245
49246        Test: fast/mediastream/RTCIceCandidate.html
49247
49248        * CMakeLists.txt:
49249        * GNUmakefile.list.am:
49250        * Modules/mediastream/DOMWindowMediaStream.idl:
49251        * Modules/mediastream/RTCIceCandidate.cpp: Added.
49252        (WebCore):
49253        (WebCore::RTCIceCandidate::create):
49254        (WebCore::RTCIceCandidate::RTCIceCandidate):
49255        (WebCore::RTCIceCandidate::~RTCIceCandidate):
49256        (WebCore::RTCIceCandidate::candidate):
49257        (WebCore::RTCIceCandidate::sdpMid):
49258        (WebCore::RTCIceCandidate::sdpMLineIndex):
49259        (WebCore::RTCIceCandidate::descriptor):
49260        * Modules/mediastream/RTCIceCandidate.h: Added.
49261        (WebCore):
49262        (RTCIceCandidate):
49263        * Modules/mediastream/RTCIceCandidate.idl: Added.
49264        * WebCore.gypi:
49265        * platform/mediastream/RTCIceCandidateDescriptor.cpp: Added.
49266        (WebCore):
49267        (WebCore::RTCIceCandidateDescriptor::create):
49268        (WebCore::RTCIceCandidateDescriptor::RTCIceCandidateDescriptor):
49269        (WebCore::RTCIceCandidateDescriptor::~RTCIceCandidateDescriptor):
49270        * platform/mediastream/RTCIceCandidateDescriptor.h: Added.
49271        (WebCore):
49272        (RTCIceCandidateDescriptor):
49273        (WebCore::RTCIceCandidateDescriptor::candidate):
49274        (WebCore::RTCIceCandidateDescriptor::sdpMid):
49275        (WebCore::RTCIceCandidateDescriptor::sdpMLineIndex):
49276
492772012-08-22  Mark Rowe  <mrowe@apple.com>
49278
49279        <http://webkit.org/b/94679> WebCore scrolling thread leaks objects due to them being autoreleased without any autorelease pool in place
49280
49281        Reviewed by Dan Bernstein.
49282
49283        * page/scrolling/mac/ScrollingThreadMac.mm:
49284        (WebCore::ScrollingThread::threadRunLoopSourceCallback): Ensure that an autorelease pool is in place when
49285        dispatching functions on the scrolling thread.
49286
492872012-08-22  Pratik Solanki  <psolanki@apple.com>
49288
49289        Failure to dispatch delegate callbacks if resource load fails synchronously
49290        https://bugs.webkit.org/show_bug.cgi?id=94644
49291
49292        Reviewed by Antti Koivisto.
49293
49294        Resource loads can be triggered by layout after document load is
49295        complete but before we have dispatched didFinishLoadForFrame callback.
49296        In such cases, if the load fails synchronously due to the client
49297        returning 0 from willSendRequest callback, we would fail to call
49298        didFinishLoading. this was fixed for Font resources in r122446 for bug
49299        91018. This fixes it in the general case by having CachedResourceLoader
49300        call FrameLoader::checkLoadComplete() when it is done loading all
49301        resources.
49302
49303        * css/CSSFontSelector.cpp:
49304        (WebCore::CSSFontSelector::beginLoadTimerFired):
49305        * loader/cache/CachedResourceLoader.cpp:
49306        (WebCore::CachedResourceLoader::decrementRequestCount):
49307
493082012-08-22  Kenneth Russell  <kbr@google.com>
49309
49310        Unreviewed, rolling out r126319.
49311        http://trac.webkit.org/changeset/126319
49312        https://bugs.webkit.org/show_bug.cgi?id=84487
49313
49314        Broke Chromium Mac build
49315
49316        * WebCore.gypi:
49317        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
49318        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
49319        (WebCore::GraphicsLayerChromium::willBeDestroyed):
49320        (WebCore::GraphicsLayerChromium::updateNames):
49321        (WebCore::GraphicsLayerChromium::setSize):
49322        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
49323        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
49324        (WebCore::GraphicsLayerChromium::addLinkHighlight):
49325        (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
49326        (WebCore):
49327        (WebCore::GraphicsLayerChromium::updateChildList):
49328        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
49329        * platform/graphics/chromium/GraphicsLayerChromium.h:
49330        (WebCore):
49331        (GraphicsLayerChromium):
49332        * platform/graphics/chromium/LinkHighlight.cpp: Added.
49333        (WebCore):
49334        (WebCore::LinkHighlight::create):
49335        (WebCore::LinkHighlight::LinkHighlight):
49336        (WebCore::LinkHighlight::~LinkHighlight):
49337        (WebCore::LinkHighlight::contentLayer):
49338        (WebCore::LinkHighlight::paintContents):
49339        (WebCore::LinkHighlight::notifyAnimationStarted):
49340        (WebCore::LinkHighlight::notifyAnimationFinished):
49341        * platform/graphics/chromium/LinkHighlight.h: Renamed from Source/WebKit/chromium/src/LinkHighlight.h.
49342        (WebCore):
49343        (LinkHighlight):
49344
493452012-08-22  Alexei Svitkine  <asvitkine@chromium.org>
49346
49347        Respect system setting for rubber-banding in ScrollAnimatorMac.
49348        https://bugs.webkit.org/show_bug.cgi?id=94356
49349
49350        Reviewed by James Robinson.
49351
49352        Respects user defaults setting of NSScrollViewRubberbanding,
49353        which controls rubber-banding in other Mac OS X applications.
49354
49355        If NSScrollViewRubberbanding is not set, defaults to enabling
49356        rubber banding. Otherwise, rubber banding is disabled if the
49357        value is 0 and enabled otherwise.
49358
49359        No new tests since the behavior depends on system settings.
49360
49361        * platform/mac/ScrollAnimatorMac.mm:
49362        (WebCore):
49363        (WebCore::rubberBandingEnabledForSystem):
49364        (WebCore::ScrollAnimatorMac::handleWheelEvent):
49365
493662012-08-22  James Robinson  <jamesr@chromium.org>
49367
49368        [chromium/mac] Remove unnecessary checks for OS version <= 10.5. We don't support those
49369        https://bugs.webkit.org/show_bug.cgi?id=94658
49370
49371        Reviewed by Tony Chang.
49372
49373        The chromium mac port hasn't supported Leopard for a while now, so remove chromium-specific code that checks
49374        for OS X version <= Leopard.
49375
49376        * platform/graphics/chromium/CrossProcessFontLoading.mm:
49377        (WebCore::FontPlatformData::loadFont):
49378        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
49379        (WebCore::canSetCascadeListForCustomFont):
49380
493812012-08-22  W. James MacLean  <wjmaclean@chromium.org>
49382
49383        [chromium] Add touch link highlight animation layers.
49384        https://bugs.webkit.org/show_bug.cgi?id=84487
49385
49386        Reviewed by James Robinson.
49387
49388        Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
49389        implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
49390        Transform support currently limited to translation.
49391
49392        Unit tests for LinkHighlight revised.
49393
49394        Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
49395               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
49396               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
49397               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
49398               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
49399               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
49400               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
49401               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
49402               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
49403               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
49404               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
49405               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
49406               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
49407               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
49408               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
49409               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
49410               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
49411               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
49412               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
49413               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
49414               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
49415               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
49416               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
49417               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
49418               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
49419               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
49420               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
49421               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
49422               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
49423               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
49424               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
49425               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
49426               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
49427               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
49428               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
49429               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
49430               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
49431               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
49432               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
49433               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
49434               platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
49435
49436        * WebCore.gypi:
49437        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
49438        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
49439        (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
49440        (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
49441        (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
49442        (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
49443        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
49444        (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
49445        (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
49446        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
49447        * platform/graphics/chromium/GraphicsLayerChromium.h:
49448        (WebCore):
49449        (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
49450        (WebCore::LinkHighlightClient::~LinkHighlightClient):
49451        (GraphicsLayerChromium):
49452        (WebCore::GraphicsLayerChromium::linkHighlight):
49453        * platform/graphics/chromium/LinkHighlight.cpp: Removed.
49454
494552012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
49456
49457        Unreviewed build fix. Missing PANGO_CFLAGS.
49458
49459        * GNUmakefile.am:
49460
494612012-08-22  Pavel Feldman  <pfeldman@chromium.org>
49462
49463        Web Inspector: make "sdk" component compile independently from the rest of the front-end.
49464        https://bugs.webkit.org/show_bug.cgi?id=94705
49465
49466        Reviewed by Vsevolod Vlasov.
49467
49468        This change refactors the way we compile. Running "compile-front-end.py sdk" will compile sdk only.
49469        It also introduces DOMStorageModel and DatabaseModel that are used to split model / UI layers.
49470
49471        * WebCore.gypi:
49472        * WebCore.vcproj/WebCore.vcproj:
49473        * inspector/InjectedScriptExterns.js:
49474        (InjectedScriptHost.prototype.evaluate):
49475        * inspector/Inspector.json:
49476        * inspector/compile-front-end.py:
49477        (dump_module):
49478        * inspector/front-end/CompilerScriptMapping.js:
49479        * inspector/front-end/ConsoleModel.js:
49480        (WebInspector.ConsoleMessage):
49481        (WebInspector.ConsoleMessage.prototype.clone):
49482        (WebInspector.ConsoleMessage.prototype.location):
49483        * inspector/front-end/DOMAgent.js:
49484        * inspector/front-end/DOMStorage.js:
49485        (WebInspector.DOMStorageModel):
49486        (WebInspector.DOMStorageModel.prototype._addDOMStorage):
49487        (WebInspector.DOMStorageModel.prototype._domStorageUpdated):
49488        (WebInspector.DOMStorageModel.prototype.storageForId):
49489        (WebInspector.DOMStorageModel.prototype.storages):
49490        (WebInspector.DOMStorageDispatcher):
49491        (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
49492        (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
49493        * inspector/front-end/Database.js:
49494        (WebInspector.Database):
49495        (WebInspector.Database.prototype.executeSql):
49496        (WebInspector.DatabaseModel):
49497        (WebInspector.DatabaseModel.prototype.databases):
49498        (WebInspector.DatabaseModel.prototype.databaseForId):
49499        (WebInspector.DatabaseModel.prototype._addDatabase):
49500        (WebInspector.DatabaseModel.prototype._sqlTransactionSucceeded):
49501        (WebInspector.DatabaseModel.prototype._sqlTransactionFailed):
49502        (WebInspector.DatabaseDispatcher):
49503        (WebInspector.DatabaseDispatcher.prototype.addDatabase):
49504        (WebInspector.DatabaseDispatcher.prototype.sqlTransactionSucceeded):
49505        (WebInspector.DatabaseDispatcher.prototype.sqlTransactionFailed):
49506        * inspector/front-end/DebuggerModel.js:
49507        * inspector/front-end/FileUtils.js:
49508        (WebInspector.OutputStreamDelegate.prototype.onTransferStarted):
49509        (WebInspector.OutputStreamDelegate.prototype.onChunkTransferred):
49510        (WebInspector.OutputStreamDelegate.prototype.onTransferFinished):
49511        (WebInspector.OutputStreamDelegate.prototype.onError):
49512        (WebInspector.OutputStream):
49513        (WebInspector.OutputStream.prototype.startTransfer):
49514        (WebInspector.OutputStream.prototype.transferChunk):
49515        (WebInspector.OutputStream.prototype.finishTransfer):
49516        (WebInspector.OutputStream.prototype.dispose):
49517        * inspector/front-end/HandlerRegistry.js:
49518        * inspector/front-end/HeapSnapshotView.js:
49519        * inspector/front-end/InspectorFrontendHostStub.js:
49520        * inspector/front-end/PresentationConsoleMessageHelper.js:
49521        (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
49522        * inspector/front-end/ResourcesPanel.js:
49523        (WebInspector.ResourcesPanel):
49524        (WebInspector.ResourcesPanel.prototype._reset):
49525        (WebInspector.ResourcesPanel.prototype._databaseAdded):
49526        (WebInspector.ResourcesPanel.prototype._addDatabase):
49527        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
49528        (WebInspector.ResourcesPanel.prototype._addDOMStorage):
49529        (WebInspector.ResourcesPanel.prototype._showDatabase.get if):
49530        (WebInspector.ResourcesPanel.prototype._showDatabase.else.get if):
49531        (WebInspector.ResourcesPanel.prototype._showDatabase):
49532        (WebInspector.ResourcesPanel.prototype._showDOMStorage.get if):
49533        (WebInspector.ResourcesPanel.prototype._showDOMStorage):
49534        (WebInspector.ResourcesPanel.prototype._updateDatabaseTables.get if):
49535        (WebInspector.ResourcesPanel.prototype._updateDatabaseTables.tableNamesCallback):
49536        (WebInspector.DatabaseTreeElement.prototype.onselect):
49537        (WebInspector.DatabaseTableTreeElement.prototype.onselect):
49538        (WebInspector.DOMStorageTreeElement.prototype.onselect):
49539        * inspector/front-end/ScriptsPanel.js:
49540        (WebInspector.ScriptsPanel.prototype.showFunctionDefinition):
49541        * inspector/front-end/SearchController.js:
49542        (WebInspector.SearchController.prototype.disableSearchUntilExplicitAction):
49543        * inspector/front-end/Settings.js:
49544        * inspector/front-end/Spectrum.js:
49545        * inspector/front-end/TextEditorModel.js:
49546        * inspector/front-end/UIString.js: Added.
49547        (WebInspector.UIString):
49548        * inspector/front-end/UIUtils.js:
49549        * inspector/front-end/WebKit.qrc:
49550        * inspector/front-end/externs.js:
49551        (InspectorFrontendHostAPI.prototype.platform):
49552        (InspectorFrontendHostAPI.prototype.port):
49553        (InspectorFrontendHostAPI.prototype.bringToFront):
49554        (InspectorFrontendHostAPI.prototype.closeWindow):
49555        (InspectorFrontendHostAPI.prototype.requestAttachWindow):
49556        (InspectorFrontendHostAPI.prototype.requestDetachWindow):
49557        (InspectorFrontendHostAPI.prototype.requestSetDockSide):
49558        (InspectorFrontendHostAPI.prototype.setAttachedWindowHeight):
49559        (InspectorFrontendHostAPI.prototype.moveWindowBy):
49560        (InspectorFrontendHostAPI.prototype.setInjectedScriptForOrigin):
49561        (InspectorFrontendHostAPI.prototype.loaded):
49562        (InspectorFrontendHostAPI.prototype.localizedStringsURL):
49563        (InspectorFrontendHostAPI.prototype.hiddenPanels):
49564        (InspectorFrontendHostAPI.prototype.inspectedURLChanged):
49565        (InspectorFrontendHostAPI.prototype.documentCopy):
49566        (InspectorFrontendHostAPI.prototype.copyText):
49567        (InspectorFrontendHostAPI.prototype.openInNewTab):
49568        (InspectorFrontendHostAPI.prototype.canSave):
49569        (InspectorFrontendHostAPI.prototype.save):
49570        (InspectorFrontendHostAPI.prototype.canAppend):
49571        (InspectorFrontendHostAPI.prototype.append):
49572        (InspectorFrontendHostAPI.prototype.sendMessageToBackend):
49573        (InspectorFrontendHostAPI.prototype.recordActionTaken):
49574        (InspectorFrontendHostAPI.prototype.recordPanelShown):
49575        (InspectorFrontendHostAPI.prototype.recordSettingChanged):
49576        (InspectorFrontendHostAPI.prototype.loadResourceSynchronously):
49577        (InspectorFrontendHostAPI.prototype.setZoomFactor):
49578        (InspectorFrontendHostAPI.prototype.canInspectWorkers):
49579        (SourceMapV3):
49580        (SourceMapV3.Section):
49581        (SourceMapV3.Offset):
49582        * inspector/front-end/inspector.html:
49583        * inspector/front-end/inspector.js:
49584        (WebInspector.inspect):
49585
495862012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
49587
49588        Unreviewed build fix. libWebCore needs include paths
49589        for some bits of WebCoreGtk.
49590
49591        * GNUmakefile.am:
49592
495932012-08-22  Koji Ishii  <kojiishi@gmail.com>
49594
49595        FontMetrics.unitsPerEm(), FontPlatformData.orientation(), SimpleFontData::platformBoundsForGlyph are not implemented on Chromium Windows
49596        https://bugs.webkit.org/show_bug.cgi?id=83512
49597
49598        Reviewed by Tony Chang.
49599
49600        Chromium Windows does not implement following 3 functions that are required for bug 51450.
49601        1. FontMetrics.unitsPerEm() always returns the default value (gDefaultUnitsPerEm = 1000).
49602        2. FontPlatformData.orientation() always returns Horizontal.
49603        3. SimpleFontData::platformBoundsForGlyph() always returns FloatRect().
49604        Tony suggested in bug 51450 review to split code that is not behind
49605        #if ENABLE(OPENTYPE_VERTICAL) to a separate patch.
49606
49607        Test: Following 3 existing but skipped tests are now enabled and pass.
49608              fast/text/emphasis-overlap.html
49609              fast/text/emphasis-avoid-ruby.html
49610              fast/repaint/text-emphasis-v.html
49611
49612        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
49613        (WebCore::FontCache::createFontPlatformData): Add orientation.
49614        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
49615        (WebCore::FontPlatformData::FontPlatformData): Add orientation.
49616        (WebCore::FontPlatformData::operator=): Add orientation.
49617        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
49618        (FontPlatformData):
49619        (WebCore::FontPlatformData::orientation): Add orientation.
49620        (WebCore::FontPlatformData::setOrientation): Add orientation.
49621        (WebCore::FontPlatformData::operator==): Add orientation.
49622        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
49623        (WebCore::SimpleFontData::platformInit): Set FontMetrics.unitsPerEm.
49624        (WebCore::SimpleFontData::createScaledFontData): Add orientation.
49625        (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
49626        * platform/graphics/skia/FontCustomPlatformData.cpp:
49627        (WebCore::FontCustomPlatformData::fontPlatformData): Add orientation.
49628
496292012-08-22  Robert Hogan  <robert@webkit.org>
49630
49631        REGRESSION(r125578): fast/regex/unicodeCaseInsensitive.html crash on Linux Debug Chromium
49632        https://bugs.webkit.org/show_bug.cgi?id=94010
49633
49634        Reviewed by Tony Chang.
49635
49636        r125578 inspected the raw text run for word-end but the index it used to do so was for a normalized
49637        version of the run that could be longer than the raw text run. So to allow proper detection of word-end
49638        in complex text (i) do not normalize tabs to plain white-space and (ii) go back to using the normalized version
49639        of the run for detecting word-end. There is a risk that some fonts may create glyphs for the '\t' character 
49640        but this does not turn up in any of our regression tests and the more common risk appears to be the new-line.
49641
49642        Test: fast/regex/unicodeCaseInsensitive.html
49643
49644        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
49645        (WebCore::normalizeSpacesAndMirrorChars):
49646
496472012-08-22  Andrey Adaikin  <aandrey@chromium.org>
49648
49649        Web Inspector: [WebGL] Support the communication protocol from the injected script
49650        https://bugs.webkit.org/show_bug.cgi?id=94689
49651
49652        Reviewed by Pavel Feldman.
49653
49654        Support the WebGL communication protocol from the injected script module.
49655
49656        * inspector/InjectedScriptWebGLModuleSource.js:
49657        (.):
49658
496592012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
49660
49661        [GTK] Split WebCore/platform into a separate library
49662        https://bugs.webkit.org/show_bug.cgi?id=94435
49663
49664        Reviewed by Martin Robinson.
49665
49666        More people have been reporting problems when linking WebCore because
49667        the command line limit is being exceeded. Splitting WebCore a bit more
49668        is in order.
49669
49670        * GNUmakefile.am: add new libWebCorePlatform convenience library.
49671        * GNUmakefile.list.am: move list of platform/* files to its own variable.
49672
496732012-08-22  Raphael Kubo da Costa  <rakuco@webkit.org>
49674
49675        [EFL] Build failures with harfbuzz outside standard locations
49676        https://bugs.webkit.org/show_bug.cgi?id=93030
49677
49678        Reviewed by Rob Buis.
49679
49680        Add ${HARFBUZZ_INCLUDE_DIRS} to the list of included paths: so far
49681        it was being implicitly pulled from evas's pkg-config file, and
49682        used to work when WebKit-EFL's dependencies were built with
49683        jhbuild -- in this case, harfbuzz is built before evas, which is
49684        then built with harfbuzz support and adds the required paths to
49685        its .pc file.
49686
49687        We need to include things directly to account for the case of
49688        people not using jhbuild and thus not necessarily having harfbuzz
49689        as an evas dependency.
49690
49691        * PlatformEfl.cmake:
49692
496932012-08-22  Raul Hudea  <rhudea@adobe.com>
49694
49695        Crash in WebCore::RenderBlock::removeChild
49696        https://bugs.webkit.org/show_bug.cgi?id=93879
49697
49698        Reviewed by Abhishek Arya.
49699
49700        By adding the lifetime state to the RenderNamedFlowThread (r122556), it become possible for the a RenderRegion object to delete its sibling,
49701        the RenderNamedFlowThread. This is unexpected in the rendering world and cause problems in RenderBlock::removeChild where we retain previous
49702        and next sibling pointers.
49703        So, all the RenderNamedFlowThread are created under a RenderFlowThreadContainer object insted of the RenderView. The new object is created only
49704        when the first named flow is created.
49705
49706        Test: fast/regions/remove-flow-thread-crash.html
49707
49708        * CMakeLists.txt:
49709        * GNUmakefile.list.am:
49710        * Target.pri:
49711        * WebCore.gypi:
49712        * WebCore.vcproj/WebCore.vcproj:
49713        * WebCore.xcodeproj/project.pbxproj:
49714        * rendering/FlowThreadController.cpp:
49715        (WebCore::FlowThreadController::FlowThreadController): Added initialization for the new RenderFlowThreadContainer member
49716        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName): Added the creation of the RenderFlowThreadContainer object and use it as a parent for all RenderNamedFlowThreads
49717        (WebCore::FlowThreadController::styleDidChange): Inform all the RenderNamedFlowThreads that the style changed in regions (initially this code was in RenderView, but now all RenderNamedFlowThreads are children of RenderFlowThreadContainer)
49718        (WebCore):
49719        * rendering/FlowThreadController.h:
49720        (WebCore):
49721        (FlowThreadController):
49722        * rendering/RenderFlowThreadContainer.cpp: Added.
49723        (WebCore):
49724        (WebCore::RenderFlowThreadContainer::RenderFlowThreadContainer):
49725        (WebCore::RenderFlowThreadContainer::layout):
49726        * rendering/RenderFlowThreadContainer.h: Added.
49727        * rendering/RenderObject.cpp:
49728        (WebCore::RenderObject::markContainingBlocksForLayout): Skip to RenderView if the current object is an RenderFlowThreadContainer.
49729        * rendering/RenderObject.h:
49730        (WebCore::RenderObject::isRenderFlowThreadContainer):
49731        * rendering/RenderView.cpp:
49732        (WebCore::RenderView::styleDidChange): Moved the code associated to RenderNamedFlowThreads to FlowThreadController:styleDidChange and call it instead.
49733
497342012-08-22  Rob Buis  <rbuis@rim.com>
49735
49736        [BlackBerry] Add RSS content handling support
49737        https://bugs.webkit.org/show_bug.cgi?id=93496
49738
49739        Reviewed by Yong Li.
49740
49741        Cleanup some more.
49742
49743        * platform/network/blackberry/rss/RSSFilterStream.cpp:
49744        (WebCore):
49745        (WebCore::createParser):
49746        (WebCore::defaultEncodingForLanguage):
49747        (WebCore::isTranscodingNeeded):
49748
497492012-08-21  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
49750
49751        Remove unused TextDrawingMode flags from GraphicsContext
49752        https://bugs.webkit.org/show_bug.cgi?id=21898
49753
49754        Reviewed by Benjamin Poulain.
49755
49756        Remove TextModeClip and TextModeInvisible. These are not used by any port, and
49757        according to https://bugs.webkit.org/show_bug.cgi?id=42110#c2 these were added
49758        just to map CG existing flags, but are not used.
49759
49760        * platform/graphics/GraphicsContext.h:
49761        * platform/graphics/cg/GraphicsContextCG.cpp:
49762        (WebCore::GraphicsContext::setPlatformTextDrawingMode):
49763        * platform/graphics/openvg/PainterOpenVG.cpp:
49764        (WebCore::PainterOpenVG::drawText):
49765        * platform/graphics/skia/PlatformContextSkia.cpp:
49766        (WebCore::PlatformContextSkia::setTextDrawingMode):
49767
497682012-08-22  Sheriff Bot  <webkit.review.bot@gmail.com>
49769
49770        Unreviewed, rolling out r126287.
49771        http://trac.webkit.org/changeset/126287
49772        https://bugs.webkit.org/show_bug.cgi?id=94708
49773
49774        It made WK1 layout testing 3.7x slower (>1hours) (Requested by
49775        ossy on #webkit).
49776
49777        * bridge/qt/qt_instance.cpp:
49778        (JSC::Bindings::unusedWeakObjectMapCallback):
49779        (Bindings):
49780        (JSC::Bindings::WeakMapImpl::WeakMapImpl):
49781        (JSC::Bindings::WeakMapImpl::~WeakMapImpl):
49782        (JSC::Bindings::WeakMap::~WeakMap):
49783        (JSC::Bindings::WeakMap::set):
49784        (JSC::Bindings::WeakMap::get):
49785        (JSC::Bindings::WeakMap::remove):
49786        * bridge/qt/qt_instance.h:
49787        (QtInstance):
49788        * bridge/qt/qt_runtime.cpp:
49789        (JSC::Bindings::prototypeForSignalsAndSlots):
49790        (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
49791        (JSC::Bindings::QtRuntimeMethod::call):
49792        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
49793        (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
49794        * bridge/qt/qt_runtime.h:
49795        (QtRuntimeMethod):
49796
497972012-08-22  Pavel Feldman  <pfeldman@chromium.org>
49798
49799        Not reviewed: follow up to r126297, fixing WebCore.gypi.
49800
49801        * WebCore.gypi:
49802
498032012-08-22  Carlos Garcia Campos  <cgarcia@igalia.com>
49804
49805        [GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2
49806        https://bugs.webkit.org/show_bug.cgi?id=94683
49807
49808        Reviewed by Alejandro G. Castro.
49809
49810        Use a Vector<String> instead of a comma-separated string to
49811        get/set languages.
49812
49813        * platform/text/gtk/TextCheckerEnchant.cpp:
49814        (TextCheckerEnchant::updateSpellCheckingLanguages):
49815        (TextCheckerEnchant::getSpellCheckingLanguages):
49816        * platform/text/gtk/TextCheckerEnchant.h:
49817        (TextCheckerEnchant):
49818
498192012-08-22  Pavel Feldman  <pfeldman@chromium.org>
49820
49821        Web Inspector: move NavigatorView and NavigatorOverlayController to ScriptsPanel module
49822        https://bugs.webkit.org/show_bug.cgi?id=94693
49823
49824        Reviewed by Vsevolod Vlasov.
49825
49826        Loading them via importScript now.
49827
49828        * inspector/compile-front-end.py:
49829        * inspector/front-end/ScriptsPanel.js:
49830        * inspector/front-end/inspector.html:
49831
498322012-08-22  KwangYong Choi  <ky0.choi@samsung.com>
49833
49834        [EFL] Support slider tick mark snapping
49835        https://bugs.webkit.org/show_bug.cgi?id=94560
49836
49837        Reviewed by Kenneth Rohde Christiansen.
49838
49839        Increased the threshold for the EFL port. The value is snapped
49840        when it clicked near tick mark.
49841
49842        No new tests. Covered by fast/forms/datalist/range-snap-to-datalist.html.
49843
49844        * platform/efl/RenderThemeEfl.cpp:
49845        (WebCore):
49846        (WebCore::RenderThemeEfl::sliderTickSnappingThreshold):
49847        * platform/efl/RenderThemeEfl.h:
49848        (RenderThemeEfl):
49849
498502012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
49851
49852        [Qt] Optionally support smooth-scrolling on all platforms
49853        https://bugs.webkit.org/show_bug.cgi?id=74926
49854
49855        Reviewed by Simon Hausmann.
49856
49857        Make GestureAnimations depend on the GESTURE_ANIMATION feature flag,
49858        since GestureAnimations are unused on some platforms.
49859
49860        * Target.pri:
49861        * platform/ScrollAnimatorNone.cpp:
49862        (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
49863        (WebCore::ScrollAnimatorNone::cancelAnimations):
49864        (WebCore::ScrollAnimatorNone::animationTimerFired):
49865        * platform/ScrollAnimatorNone.h:
49866        (ScrollAnimatorNone):
49867
498682012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
49869
49870        [Qt] Port convertQVariantToValue to use the JSC C API
49871        https://bugs.webkit.org/show_bug.cgi?id=93889
49872
49873        Reviewed by Kenneth Rohde Christiansen.
49874
49875        Based on patch by Noam Rosenthal.
49876
49877        This patch is another step towards reducing the use of internal JSC API
49878        in the Qt bridge. Most of the conversion from QVariant to JS values is
49879        straight-forward. The biggest behavioural change is that QVariant lists
49880        are converted on-the-spot instead of lazily. Bug #94691 tracks fixing
49881        that.
49882
49883        * bridge/qt/qt_instance.cpp:
49884        (Bindings):
49885        (JSC::Bindings::QtField::valueFromInstance):
49886        * bridge/qt/qt_runtime.cpp:
49887        (JSC::Bindings::convertQVariantToValue):
49888        (JSC::Bindings::QtRuntimeMethod::call):
49889        (JSC::Bindings::QtConnectionObject::execute):
49890        (JSC::Bindings::::valueAt):
49891        * bridge/qt/qt_runtime.h:
49892        (Bindings):
49893
498942012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
49895
49896        [Qt] REGRESSION(r125428): fast/profiler/nested-start-and-stop-profiler.html fails
49897        https://bugs.webkit.org/show_bug.cgi?id=93897
49898
49899        Reviewed by Kenneth Rohde Christiansen.
49900
49901        Before r125428 run-time methods (wrapped signals, slots or invokable
49902        functions) were subclasses of JSInternalFunction and therefore real
49903        function objects in the JavaScript sense. r125428 changed them to be
49904        just callable objects, but they did not have Function.prototype as
49905        prototype anymore for example nor was their name correct (resulting in
49906        a layout test failure).
49907
49908        This patch changes run-time methods back to being real function objects
49909        that have a correct name and have Function.prototype in their prototype
49910        change
49911
49912        The objects returned by JSObjectMakeFunctionWithCallbackInjected are
49913        light-weight internal function objects that do not support
49914        JSObject{Set/Get}Private. Therefore we inject our own prototype right
49915        before the Function.prototype prototype, which uses private data to
49916        store a pointer to our C++ QtRuntimeMethod object.  This complicates
49917        the retrieval of the pointer to that instance slightly, which is why
49918        this patch introduces the toRuntimeMethod convenience function that
49919        looks up our prototype first and does a check for type-safety.
49920
49921        At the same time the patch removes the length properties from the
49922        run-time method itself as well as connect/disconnect.  The length
49923        property on a function signifies the number of arguments, but in all
49924        three cases that number is actually variable, because of overloading.
49925        That is why we choose not to expose it in the first place.
49926
49927        In QtInstance we cache the JS wrapper objects for QtRuntimeMethod in a
49928        JSWeakObjectMap. JSWeakObjectMap requires the stored objects to be
49929        either the result of JSObjectMake or the global object of a context ref
49930        (AFAICS), which is ensured using an ASSERT. Objects created via
49931        JSObjectMakeFunctionWithCalllback do not fall into the required
49932        category, cause a failing assertion and can therefore not be stored in
49933        the weak object map.
49934
49935        Consequently this patch removes the use of JSWeakObjectMap again and
49936        goes back to the old way of using the internal Weak<> API, for the time
49937        being. In a future patch the storage will be simplified to not require
49938        the use of a weak object map cache for the run-time methods anymore.
49939
49940        * bridge/qt/qt_instance.cpp: Remove unused WeakMap code.
49941        * bridge/qt/qt_instance.h: Remove method cache.
49942        (QtInstance):
49943        * bridge/qt/qt_runtime.cpp:
49944        (JSC::Bindings::prototypeForSignalsAndSlots):
49945        (JSC::Bindings::QtRuntimeMethod::call):
49946        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
49947        (JSC::Bindings::QtRuntimeMethod::toRuntimeMethod):
49948        (Bindings):
49949        (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
49950        * bridge/qt/qt_runtime.h:
49951        (QtRuntimeMethod): Remove unused member variables.
49952
499532012-08-22  Christophe Dumez  <christophe.dumez@intel.com>
49954
49955        window.postMessage() / MessagePort.postMessage() throw wrong exception for invalid ports argument
49956        https://bugs.webkit.org/show_bug.cgi?id=94581
49957
49958        Reviewed by Kentaro Hara.
49959
49960        Update JSC and V8 implementations of window.postMessage() and
49961        MessagePort.postMessage() in order to throw an
49962        INVALID_STATE_ERR instead of a DATA_CLONE_ERR when values
49963        in the "ports" argument are invalid. Additionally, we now
49964        check for duplicate ports and throw an exception for this
49965        case as well.
49966
49967        This change was made to comply with the latest HTML5
49968        specification at:
49969        http://www.w3.org/TR/html5/comms.html
49970
49971        No new tests, already tested by:
49972        fast/events/constructors/message-event-constructor.html
49973        fast/events/message-port-clone.html
49974        fast/events/message-port-multi.html
49975        fast/workers/worker-context-multi-port.html
49976        fast/workers/worker-multi-port.html
49977
49978        * bindings/js/JSMessagePortCustom.cpp:
49979        (WebCore::fillMessagePortArray):
49980        * bindings/v8/V8Utilities.cpp:
49981        (WebCore::extractTransferables):
49982        * dom/MessagePort.cpp:
49983        (WebCore::MessagePort::postMessage):
49984
499852012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
49986
49987        [TouchAdjustment] Adjust to word or selection
49988        https://bugs.webkit.org/show_bug.cgi?id=94449
49989
49990        Reviewed by Antonio Gomes.
49991
49992        Makes each separate word a separate subtarget when context menu triggers
49993        selections, and only the selected part of a partial selected node a 
49994        target when selections are not overridden.
49995
49996        Fix of reverted commit r126026, fix misplaced ASSERT.
49997
49998        Test: touchadjustment/context-menu-text-subtargets.html
49999
50000        * page/TouchAdjustment.cpp:
50001        (TouchAdjustment):
50002        (WebCore::TouchAdjustment::providesContextMenuItems):
50003        (WebCore::TouchAdjustment::appendQuadsToSubtargetList):
50004        (WebCore::TouchAdjustment::appendBasicSubtargetsForNode):
50005        (WebCore::TouchAdjustment::appendContextSubtargetsForNode):
50006        (WebCore::TouchAdjustment::compileSubtargetList):
50007        (WebCore::findBestClickableCandidate):
50008        (WebCore::findBestContextMenuCandidate):
50009
500102012-08-22  Andrey Adaikin  <aandrey@chromium.org>
50011
50012        Web Inspector: [WebGL] Generic framework draft for tracking WebGL resources
50013        https://bugs.webkit.org/show_bug.cgi?id=90597
50014
50015        Reviewed by Pavel Feldman.
50016
50017        Wrap WebGL rendering context methods and collect a trace log if we are in capturing mode.
50018        Stubbed code for collecting calls contributing to a WebGL resource state so that we could replay them later.
50019
50020        Typical scenario:
50021        - we wrap a GL context with InjectedScript.wrapWebGLContext() and return a proxy to the inspected page
50022        - the proxy saves all calls necessary to do a replay later - only those that modify a resource's state
50023        - when we turn on capturing mode (InjectedScript.captureFrame), we save all WebGL calls to a trace log
50024
50025        * inspector/InjectedScriptSource.js:
50026        (.):
50027        * inspector/InjectedScriptWebGLModuleSource.js:
50028        (.):
50029
500302012-08-22  Andrey Adaikin  <aandrey@chromium.org>
50031
50032        Web Inspector: [WebGL] Add minimum transport protocol from backend to frontend
50033        https://bugs.webkit.org/show_bug.cgi?id=88973
50034
50035        Reviewed by Pavel Feldman.
50036
50037        Added the following protocol methods to communicate with the WebGL injected
50038        module: captureFrame, getTraceLog, dropTraceLog, replayTraceLog.
50039
50040        * inspector/CodeGeneratorInspector.py:
50041        * inspector/InjectedScriptWebGLModule.cpp:
50042        (WebCore::InjectedScriptWebGLModule::captureFrame):
50043        (WebCore):
50044        (WebCore::InjectedScriptWebGLModule::dropTraceLog):
50045        (WebCore::InjectedScriptWebGLModule::getTraceLog):
50046        (WebCore::InjectedScriptWebGLModule::replayTraceLog):
50047        * inspector/InjectedScriptWebGLModule.h:
50048        (InjectedScriptWebGLModule):
50049        * inspector/Inspector.json:
50050        * inspector/InspectorController.cpp:
50051        (WebCore::InspectorController::InspectorController):
50052        * inspector/InspectorWebGLAgent.cpp:
50053        (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
50054        (WebCore::InspectorWebGLAgent::dropTraceLog):
50055        (WebCore):
50056        (WebCore::InspectorWebGLAgent::captureFrame):
50057        (WebCore::InspectorWebGLAgent::getTraceLog):
50058        (WebCore::InspectorWebGLAgent::replayTraceLog):
50059        * inspector/InspectorWebGLAgent.h:
50060        (WebCore):
50061        (WebCore::InspectorWebGLAgent::create):
50062        (InspectorWebGLAgent):
50063
500642012-08-22  Hans Wennborg  <hans@chromium.org>
50065
50066        Remove unused field DeleteEntryRequest::m_type
50067        https://bugs.webkit.org/show_bug.cgi?id=94680
50068
50069        Unreviewed build fix.
50070
50071        Remove this unused field. Clang warns about it and it breaks the
50072        Chromium build.
50073
50074        No change in functionality, no new tests.
50075
50076        * inspector/InspectorFileSystemAgent.cpp:
50077        (WebCore):
50078
500792012-08-21  Andrey Kosyakov  <caseq@chromium.org>
50080
50081        Web Inspector: console.time() should use performance.now()
50082        https://bugs.webkit.org/show_bug.cgi?id=94263
50083
50084        Reviewed by Pavel Feldman.
50085
50086        - use monotonicallyIncreasingTime() instead of currentTime() for measuring time intervals
50087            with console.time()/console.timeEnd()
50088        - adjust precision to 3 digits after decimal point (i.e. microseconds) when formatting intervals;
50089
50090        * inspector/InspectorConsoleAgent.cpp:
50091        (WebCore::InspectorConsoleAgent::stopTiming):
50092
500932012-08-22  Takashi Sakamoto  <tasak@google.com>
50094
50095        Dynamically styling ShadowDom content on a node distributed to another shadow insertion point fails.
50096        https://bugs.webkit.org/show_bug.cgi?id=92899
50097
50098        Reviewed by Hajime Morita.
50099
50100        Since childNeedsStyleRecalc is not cleared when parent nodes are
50101        attached, setNeedsStyleRecalc flag is not reached Document. So,
50102        document() doesn't run re-layout.
50103
50104        Test: fast/dom/shadow/shadowdom-dynamic-styling.html
50105
50106        * dom/ContainerNode.h:
50107        (ContainerNode):
50108        (WebCore::ContainerNode::detachAsNode):
50109        Removed detachAsNode, because the below change made the method
50110        not-used.
50111        * dom/Element.cpp:
50112        (WebCore::Element::detach):
50113        Modify to invoke ContainerNode::detach when any shadow subtree is
50114        attached. ContainerNode::detach takes care of childNeedsStyleRecalc
50115        flag.
50116        * dom/ElementShadow.cpp:
50117        (WebCore::ElementShadow::invalidateDistribution):
50118        Use SetAttached for lazyAttach instead of DoNotSetAttached, because
50119        it is reuired to invoke ContainerNode::detach. If not, attached() is
50120        false and reattach() invokes only attach(). This causes to leave
50121        shadow host's childNeedsStyleRecalc flag true after
50122        Element::recalcStyle.
50123
501242012-08-22  Taiju Tsuiki  <tzik@chromium.org>
50125
50126        Web Inspector: Add deleteEntry command and deletionCompleted event to FileSystemAgent
50127        https://bugs.webkit.org/show_bug.cgi?id=91831
50128
50129        Reviewed by Vsevolod Vlasov.
50130
50131        InspectorAgent-side implementation of deleteEntry command.
50132
50133        Test will be added after JS-side implementation landed.
50134
50135        * inspector/Inspector.json:
50136        * inspector/InspectorFileSystemAgent.cpp:
50137        (WebCore):
50138        (WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
50139        (WebCore::InspectorFileSystemAgent::requestDirectoryContent):
50140        (WebCore::InspectorFileSystemAgent::requestMetadata):
50141        (WebCore::InspectorFileSystemAgent::requestFileContent):
50142        (WebCore::InspectorFileSystemAgent::deleteEntry):
50143        (WebCore::InspectorFileSystemAgent::assertFrontend):
50144        * inspector/InspectorFileSystemAgent.h:
50145        (InspectorFileSystemAgent):
50146        * inspector/front-end/FileSystemModel.js:
50147        (WebInspector.FileSystemDispatcher.prototype.fileContentReceived):
50148        (WebInspector.FileSystemDispatcher.prototype.deletionCompleted):
50149
501502012-08-21  Pavel Feldman  <pfeldman@chromium.org>
50151
50152        Web Inspector: TabbedPane: measure tab widths in batches.
50153        https://bugs.webkit.org/show_bug.cgi?id=94484
50154
50155        Reviewed by Vsevolod Vlasov.
50156
50157        - Introduces global batch update schema
50158        - Migrates Toolbar and TabbedPane to the new schema
50159
50160        * inspector/front-end/ScriptsPanel.js:
50161        (WebInspector.ScriptsPanel):
50162        * inspector/front-end/TabbedPane.js:
50163        (WebInspector.TabbedPane.prototype.appendTab):
50164        (WebInspector.TabbedPane.prototype._updateTabElements):
50165        (WebInspector.TabbedPane.prototype._innerUpdateTabElements):
50166        (WebInspector.TabbedPane.prototype._updateWidths):
50167        (WebInspector.TabbedPane.prototype._measureWidths):
50168        (WebInspector.TabbedPaneTab):
50169        (WebInspector.TabbedPaneTab.prototype.width):
50170        (WebInspector.TabbedPaneTab.prototype.setWidth):
50171        * inspector/front-end/Toolbar.js:
50172        (WebInspector.Toolbar):
50173        (WebInspector.Toolbar.prototype._updateDropdownButtonAndHideDropdown):
50174        (WebInspector.Toolbar.prototype._innerUpdateDropdownButtonAndHideDropdown):
50175        * inspector/front-end/UIUtils.js:
50176        (WebInspector.startBatchUpdate):
50177        (WebInspector.invokeOnceAfterBatchUpdate.get if):
50178        (WebInspector.invokeOnceAfterBatchUpdate):
50179        * inspector/front-end/inspector.js:
50180        * inspector/front-end/utilities.js:
50181
501822012-08-21  Kentaro Hara  <haraken@chromium.org>
50183
50184        [V8] Move String related code in V8Binding to a separate file
50185        https://bugs.webkit.org/show_bug.cgi?id=94571
50186
50187        Reviewed by Adam Barth.
50188
50189        This patch moves V8Parameter, V8ParameterBase and String related code
50190        in V8Binding to a separate file.
50191
50192        No tests. No change in behavior.
50193
50194        * UseV8.cmake:
50195        * WebCore.gypi:
50196        * bindings/v8/V8Binding.cpp:
50197        * bindings/v8/V8Binding.h:
50198        * bindings/v8/V8StringResource.cpp: Added.
50199        * bindings/v8/V8StringResource.h: Added.
50200        (WebCore):
50201
502022012-08-21  Sukolsak Sakshuwong  <sukolsak@google.com>
50203
50204        Implement UndoManager's automatic DOM transactions
50205        https://bugs.webkit.org/show_bug.cgi?id=91812
50206
50207        Reviewed by Ryosuke Niwa.
50208
50209        This patch implements automatic DOM transactions in UndoManager
50210        by recording changes in tree structure, attributes, and character data
50211        of nodes under undo scope host.
50212
50213        Tests: editing/undomanager/automatic-transaction-attribute.html
50214               editing/undomanager/automatic-transaction-data.html
50215               editing/undomanager/automatic-transaction-node.html
50216
50217        * CMakeLists.txt:
50218        * GNUmakefile.list.am:
50219        * WebCore.gypi:
50220        * WebCore.vcproj/WebCore.vcproj:
50221        * WebCore.xcodeproj/project.pbxproj:
50222        * bindings/js/DOMTransaction.h:
50223        (WebCore::DOMTransaction::addTransactionStep):
50224        (DOMTransaction):
50225        * bindings/v8/DOMTransaction.cpp:
50226        (DOMTransactionScope):
50227        (WebCore::DOMTransactionScope::DOMTransactionScope):
50228        (WebCore::DOMTransactionScope::~DOMTransactionScope):
50229        (WebCore):
50230        (WebCore::DOMTransaction::apply):
50231        (WebCore::DOMTransaction::unapply):
50232        (WebCore::DOMTransaction::reapply):
50233        * bindings/v8/DOMTransaction.h:
50234        (WebCore::DOMTransaction::addTransactionStep):
50235        (DOMTransaction):
50236        * css/PropertySetCSSStyleDeclaration.cpp:
50237        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
50238        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
50239        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
50240        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
50241        * dom/CharacterData.cpp:
50242        (WebCore::CharacterData::setDataAndUpdate):
50243        * dom/ContainerNode.cpp:
50244        (WebCore::willRemoveChild):
50245        (WebCore::willRemoveChildren):
50246        (WebCore::updateTreeAfterInsertion):
50247        * dom/Element.cpp:
50248        (WebCore::Element::willModifyAttribute):
50249        * editing/DOMTransactionStep.cpp: Added.
50250        (WebCore):
50251        (WebCore::NodeInsertingDOMTransactionStep::NodeInsertingDOMTransactionStep):
50252        (WebCore::NodeInsertingDOMTransactionStep::create):
50253        (WebCore::NodeInsertingDOMTransactionStep::unapply):
50254        (WebCore::NodeInsertingDOMTransactionStep::reapply):
50255        (WebCore::NodeRemovingDOMTransactionStep::NodeRemovingDOMTransactionStep):
50256        (WebCore::NodeRemovingDOMTransactionStep::create):
50257        (WebCore::NodeRemovingDOMTransactionStep::unapply):
50258        (WebCore::NodeRemovingDOMTransactionStep::reapply):
50259        (WebCore::DataReplacingDOMTransactionStep::DataReplacingDOMTransactionStep):
50260        (WebCore::DataReplacingDOMTransactionStep::create):
50261        (WebCore::DataReplacingDOMTransactionStep::unapply):
50262        (WebCore::DataReplacingDOMTransactionStep::reapply):
50263        (WebCore::AttrChangingDOMTransactionStep::AttrChangingDOMTransactionStep):
50264        (WebCore::AttrChangingDOMTransactionStep::create):
50265        (WebCore::AttrChangingDOMTransactionStep::unapply):
50266        (WebCore::AttrChangingDOMTransactionStep::reapply):
50267        * editing/DOMTransactionStep.h: Added.
50268        (WebCore):
50269        (DOMTransactionStep):
50270        (WebCore::DOMTransactionStep::~DOMTransactionStep):
50271        (NodeInsertingDOMTransactionStep):
50272        (NodeRemovingDOMTransactionStep):
50273        (DataReplacingDOMTransactionStep):
50274        (AttrChangingDOMTransactionStep):
50275        * editing/UndoManager.cpp:
50276        (WebCore):
50277        (WebCore::UndoManager::isRecordingAutomaticTransaction):
50278        (WebCore::UndoManager::addTransactionStep):
50279        * editing/UndoManager.h:
50280        (WebCore):
50281        (WebCore::UndoManager::setRecordingDOMTransaction):
50282        (UndoManager):
50283
502842012-08-21  Shezan Baig  <sbaig1@bloomberg.net>
50285
50286        Fix cross-direction stretch for replaced elements in row flexbox
50287        https://bugs.webkit.org/show_bug.cgi?id=94237
50288
50289        Reviewed by Ojan Vafai.
50290
50291        When stretching, don't take into account the instrinsic size of child
50292        replaced elements. Only the fixed size, min size, and max size of the
50293        child should be taken into account. The logic that computed this was
50294        moved from RenderBox::computeLogicalHeight to a new helper method
50295        called logicalHeightConstrainedByMinMax.  This helper method is now
50296        used from RenderFlexibleBox::applyStretchAlignmentToChild, instead of
50297        using RenderBox::computeLogicalHeight.
50298
50299        A similar change will need to be made for column-flowing flexboxes.
50300        This will be addressed in https://webkit.org/b/94604.
50301
50302        No new tests.  The existing css3/flexbox/flexitem.html test was
50303        extended to cover this case.
50304
50305        * rendering/RenderBox.cpp:
50306        (WebCore::RenderBox::logicalHeightConstrainedByMinMax): New helper
50307        method that is used by RenderBox::computeLogicalHeight and also by
50308        RenderFlexibleBox::applyStretchAlignmentToChild.
50309        (WebCore):
50310        (WebCore::RenderBox::computeLogicalHeight): Updated to use the new
50311        logicalHeightConstrainedByMinMax helper method.
50312        * rendering/RenderBox.h:
50313        (RenderBox):
50314        * rendering/RenderFlexibleBox.cpp:
50315        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Use
50316        logicalHeightConstrainedByMinMax instead of computeLogicalHeight.
50317
503182012-08-21  Hayato Ito  <hayato@chromium.org>
50319
50320        Make an event object clonable to support an event propagation across seamless iframes.
50321        https://bugs.webkit.org/show_bug.cgi?id=93678
50322
50323        Reviewed by Dimitri Glazkov.
50324
50325        We should clone an event object when a event propagates across
50326        seamless iframes.  Currently Event and MouseEvent are
50327        supported. Support for other kinds of events will be addressed
50328        later.
50329
50330        This is one of the pre-requirements to support an event
50331        propagation across seamless iframes.
50332
50333        No new tests, no behavior change.
50334
50335        * dom/Event.cpp:
50336        (WebCore::Event::cloneFor):
50337        (WebCore):
50338        * dom/Event.h:
50339        (WebCore):
50340        (Event):
50341        * dom/MouseEvent.cpp:
50342        (WebCore::adjustedClinetX):
50343        (WebCore):
50344        (WebCore::adjustedClinetY):
50345        (WebCore::MouseEvent::cloneFor):
50346        * dom/MouseEvent.h:
50347        (MouseEvent):
50348
503492012-08-21  Joshua Bell  <jsbell@chromium.org>
50350
50351        IndexedDB: IDBRequest can be GCd during event dispatch
50352        https://bugs.webkit.org/show_bug.cgi?id=94235
50353
50354        Reviewed by Ojan Vafai.
50355
50356        Avoid a "race" where GC may attempt to reclaim IDB objects that are marked
50357        "done" prior to the completion of the event dispatch. The script runtime
50358        may decide to do a GC pass before calling the event handler, releasing the
50359        object and turning the dispatch into a no-op.
50360
50361        This is a partial reversion (with renames, etc) of r123275, r124842,
50362        and r121492. Added a new test, although it does not exercise the "race"
50363        condition directly.
50364
50365        Test: storage/indexeddb/pending-activity.html
50366              storage/indexeddb/pending-activity-workers.html
50367
50368        * Modules/indexeddb/IDBCursor.cpp:
50369        (WebCore::IDBCursor::close): Let the IDBRequest know it this cursor won't
50370        make it fire again.
50371        * Modules/indexeddb/IDBRequest.cpp:
50372        (WebCore::IDBRequest::IDBRequest): Reintroduce "am I done?" flag.
50373        (WebCore::IDBRequest::finishCursor): Cursors may fire events at the same
50374        IDBRequest repeatedly, so we need to know when they're are really done.
50375        (WebCore):
50376        (WebCore::IDBRequest::hasPendingActivity): Test the flag.
50377        (WebCore::IDBRequest::dispatchEvent): Set the flag.
50378        * Modules/indexeddb/IDBRequest.h:
50379        (IDBRequest):
50380        * Modules/indexeddb/IDBTransaction.cpp:
50381        (WebCore::IDBTransaction::IDBTransaction): Reintroduce "am I done?" flag.
50382        (WebCore::IDBTransaction::hasPendingActivity): Test the flag.
50383        (WebCore::IDBTransaction::dispatchEvent): Set the flag.
50384        * Modules/indexeddb/IDBTransaction.h:
50385
503862012-08-21  Pavel Feldman  <pfeldman@chromium.org>
50387
50388        Web Inspector: [regression] Settings panel fails to open.
50389        https://bugs.webkit.org/show_bug.cgi?id=94647
50390
50391        Unreviewed: one line JS front-end fix.
50392
50393        * inspector/front-end/ScriptsSearchScope.js:
50394        * inspector/front-end/Settings.js:
50395
503962012-08-21  Julien Chaffraix  <jchaffraix@webkit.org>
50397
50398        Crash in RenderTableSection::setCellLogicalWidths
50399        https://bugs.webkit.org/show_bug.cgi?id=94291
50400
50401        Reviewed by Abhishek Arya.
50402
50403        This issue was that splitAnonymousBoxesAroundChild would move a table section
50404        into a newly created table *without* marking it as needing cell recalc. The table
50405        would thus never build its structure to match its sections. The fix is to hop on
50406        the new willBeRemovedFromTree signal so that the section invalidates itself properly.
50407
50408        Test: fast/table/crash-split-table-section-no-cell-recalc.html
50409
50410        * rendering/RenderTableSection.cpp:
50411        (WebCore::RenderTableSection::willBeRemovedFromTree):
50412        * rendering/RenderTableSection.h:
50413        Replaced willBeDestroyed by willBeRemovedFromTree in RenderTableSection. This ensures that it is called
50414        when moving sections in the tree to mark them as needing cell recalc.
50415
504162012-08-21  Yoshifumi Inoue  <yosin@chromium.org>
50417
50418        [Forms] multiple fields time input UI should not have two focus ring.
50419        https://bugs.webkit.org/show_bug.cgi?id=94579
50420
50421        Reviewed by Hajime Morita.
50422
50423        This patch adds CSS selectors to override focus style for multiple
50424        fields time input UI.
50425
50426        No new tests. fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html
50427        is updated for including focus state appearance.
50428
50429        * css/html.css:
50430        (input::-webkit-datetime-edit-ampm-field:focus): Override default focus appearance.
50431        (input::-webkit-datetime-edit-hour-field:focus): ditto
50432        (input::-webkit-datetime-edit-millisecond-field:focus): ditto
50433        (input::-webkit-datetime-edit-minute-field:focus): ditto
50434        (input::-webkit-datetime-edit-second-field:focus): ditto
50435
504362012-08-21  Adam Barth  <abarth@webkit.org>
50437
50438        V8 shouldn't have its own way of printing cross-origin error messages
50439        https://bugs.webkit.org/show_bug.cgi?id=94641
50440
50441        Reviewed by Eric Seidel.
50442
50443        V8 used to re-implement (poorly) the code for printing out an error
50444        message when a same-origin check failed. This patch deletes that code
50445        in favor of just calling the WebCore version of the code. There more to
50446        clean up here, but I had to stop before spidering over the whole
50447        codebase.
50448
50449        * bindings/generic/BindingSecurity.cpp:
50450        (WebCore::canAccessDocument):
50451        * bindings/js/BindingState.cpp:
50452        * bindings/js/BindingState.h:
50453        * bindings/v8/BindingState.cpp:
50454        (WebCore::printErrorMessageForFrame):
50455        * bindings/v8/BindingState.h:
50456        (WebCore):
50457        * bindings/v8/V8DOMWindowShell.cpp:
50458        (WebCore::reportUnsafeJavaScriptAccess):
50459        * bindings/v8/V8Proxy.cpp:
50460        * bindings/v8/V8Proxy.h:
50461        (V8Proxy):
50462
504632012-08-21  Shinya Kawanaka  <shinyak@chromium.org>
50464
50465        A shadow element in ShadowDOM of a button element does not work.
50466        https://bugs.webkit.org/show_bug.cgi?id=91486
50467
50468        Reviewed by Dimitri Glazkov.
50469
50470        Since a button element is extended from an HTMLFormControlElement, it creates a UserAgentShadowDOM
50471        just before adding an AuthorShadowDOM. However, actually a button element does not need any UserAgentShadowDOM.
50472        So we have to prevent it from creating UserAgentShadowDOM.
50473
50474        Test: fast/dom/shadow/shadowdom-for-button.html
50475
50476        * html/HTMLButtonElement.cpp:
50477        (WebCore::HTMLButtonElement::willAddAuthorShadowRoot):
50478        (WebCore):
50479        * html/HTMLButtonElement.h:
50480
504812012-08-21  Sukolsak Sakshuwong  <sukolsak@google.com>
50482
50483        Remove UndoManager's undoscope content attribute
50484        https://bugs.webkit.org/show_bug.cgi?id=94637
50485
50486        Reviewed by Ryosuke Niwa.
50487
50488        No new tests. Covered by existing tests.
50489
50490        * bindings/v8/DOMTransaction.cpp:
50491        (WebCore::DOMTransaction::callFunction):
50492        * dom/Document.cpp:
50493        (WebCore::Document::undoManager):
50494        * dom/Element.cpp:
50495        (WebCore::Element::~Element):
50496        (WebCore):
50497        * dom/Element.h:
50498        (Element):
50499        * dom/Element.idl:
50500        * dom/ElementRareData.h:
50501        (ElementRareData):
50502        * editing/UndoManager.cpp:
50503        (WebCore::UndoManager::create):
50504        (WebCore::UndoManager::UndoManager):
50505        (WebCore::UndoManager::disconnect):
50506        (WebCore::UndoManager::transact):
50507        (WebCore::UndoManager::undo):
50508        (WebCore::UndoManager::redo):
50509        (WebCore::UndoManager::clearUndo):
50510        (WebCore::UndoManager::clearRedo):
50511        (WebCore):
50512        * editing/UndoManager.h:
50513        (WebCore):
50514        (UndoManager):
50515        (WebCore::UndoManager::document):
50516        (WebCore::UndoManager::ownerNode):
50517        * html/HTMLAttributeNames.in:
50518        * html/HTMLElement.cpp:
50519        (WebCore::HTMLElement::parseAttribute):
50520        (WebCore::HTMLElement::setContentEditable):
50521
505222012-08-21  Joanmarie Diggs  <jdiggs@igalia.com>
50523
50524        [Gtk] No accessible caret-moved events found in certain content
50525        https://bugs.webkit.org/show_bug.cgi?id=72811
50526
50527        Reviewed by Chris Fleizach.
50528
50529        Part of the bug is due to objects which should claim to implement AtkText
50530        failed to do so as a result of containing a mixture of inline and block
50531        spans.
50532
50533        An updated unit test was provided.
50534
50535        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
50536        (roleIsTextType): New method to check if a role is one expected to have
50537        implemented the AtkText interface. Currently that is defined as:
50538         - ParagraphRole
50539         - HeadingRole
50540         - DivRole
50541         - CellRole
50542        (getInterfaceMaskFromObject): If a role is one of the text type roles,
50543        automatically add WAI_TEXT to the accessible object's interface mask.
50544
505452012-08-21  Tony Chang  <tony@chromium.org>
50546
50547        Force XML comments to maintain whitespace
50548        https://bugs.webkit.org/show_bug.cgi?id=94620
50549
50550        Reviewed by Pavel Feldman.
50551
50552        Fix a typo in XMLViewer.css for white-space formatting. This seems
50553        like the desired behavior so you can see, e.g., code formatted in an
50554        XML comment.
50555
50556        Covered by existing xmlviewer tests in http/tests/xmlviewer/dumpAsText
50557
50558        * xml/XMLViewer.css:
50559        (.comment): Fix typo.
50560        * xml/XMLViewer.js:
50561        (createComment): Add style to comment nodes.
50562
505632012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
50564
50565        Unreviewed, rolling out r126202.
50566        http://trac.webkit.org/changeset/126202
50567        https://bugs.webkit.org/show_bug.cgi?id=94657
50568
50569        Causes assertion failures on Chromium Linux dbg compositing
50570        layout tests (Requested by dominicc on #webkit).
50571
50572        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
50573        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
50574        * platform/graphics/chromium/LayerRendererChromium.cpp:
50575        (WebCore::applyFilters):
50576        (WebCore::LayerRendererChromium::drawRenderPassQuad):
50577        (WebCore::LayerRendererChromium::drawTileQuad):
50578        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
50579        (WebCore::LayerRendererChromium::drawTextureQuad):
50580        (WebCore::LayerRendererChromium::getFramebufferTexture):
50581        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
50582        * platform/graphics/chromium/LayerRendererChromium.h:
50583        (LayerRendererChromium):
50584        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
50585        (WebCore::CCResourceProvider::createResource):
50586        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
50587        (WebCore::CCResourceProvider::deleteResource):
50588        (WebCore::CCResourceProvider::upload):
50589        (WebCore::CCResourceProvider::lockForWrite):
50590        (WebCore::CCResourceProvider::unlockForWrite):
50591        (WebCore::CCResourceProvider::flush):
50592        (WebCore::CCResourceProvider::shallowFlushIfSupported):
50593        (WebCore::CCResourceProvider::lockForRead):
50594        (WebCore::CCResourceProvider::unlockForRead):
50595        (WebCore::CCResourceProvider::CCResourceProvider):
50596        * platform/graphics/chromium/cc/CCResourceProvider.h:
50597        (WebCore):
50598        (CCResourceProvider):
50599        (WebCore::CCResourceProvider::Resource::Resource):
50600        (Resource):
50601        (CCScopedLockResourceForRead):
50602        (WebCore::CCScopedLockResourceForRead::CCScopedLockResourceForRead):
50603        (WebCore::CCScopedLockResourceForRead::~CCScopedLockResourceForRead):
50604        (WebCore::CCScopedLockResourceForRead::textureId):
50605        (CCScopedLockResourceForWrite):
50606        (WebCore::CCScopedLockResourceForWrite::CCScopedLockResourceForWrite):
50607        (WebCore::CCScopedLockResourceForWrite::~CCScopedLockResourceForWrite):
50608        (WebCore::CCScopedLockResourceForWrite::textureId):
50609
506102012-08-21  David Grogan  <dgrogan@chromium.org>
50611
50612        IndexedDB: Fire error at request when abort is called in upgradeneeded
50613        https://bugs.webkit.org/show_bug.cgi?id=94402
50614
50615        Reviewed by Tony Chang.
50616
50617        Tests - updated intversion-abort-in-initial-upgradeneeded-expected.txt
50618
50619        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
50620        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
50621        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
50622        (WebCore):
50623        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
50624        Now that second-half open calls don't get abandoned on the queue, we
50625        can ASSERT that there's at most one of them at any time.
50626
50627        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
50628        (IDBDatabaseBackendImpl):
50629        * Modules/indexeddb/IDBRequest.cpp:
50630        (WebCore::IDBRequest::dispatchEvent):
50631        Move setting m_didFireUpgradeNeededEvent before dispatching the event.
50632        If abort is called in the event handler an error event will be
50633        enqueued and ASSERT_WITH_MESSAGE(m_readyState == PENDING ||
50634        m_didFireUpgradeNeededEvent, ...) needs to pass.
50635
50636        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
50637        (WebCore::IDBTransactionBackendImpl::abort):
50638        (WebCore::IDBTransactionBackendImpl::commit):
50639
506402012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
50641
50642        Unreviewed, rolling out r126233.
50643        http://trac.webkit.org/changeset/126233
50644        https://bugs.webkit.org/show_bug.cgi?id=94656
50645
50646        Broke Chromium Mac build (Requested by dominicc on #webkit).
50647
50648        * CMakeLists.txt:
50649        * GNUmakefile.list.am:
50650        * Target.pri:
50651        * WebCore.gypi:
50652        * WebCore.vcproj/WebCore.vcproj:
50653        * WebCore.xcodeproj/project.pbxproj:
50654        * css/mediaControls.css:
50655        (video::-webkit-media-text-track-display):
50656        * html/shadow/MediaControlElements.cpp:
50657        (RenderTextTrackContainerElement):
50658        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
50659        * html/track/TextTrack.cpp:
50660        * html/track/TextTrack.h:
50661        (TextTrack):
50662        * html/track/TextTrackCue.cpp:
50663        (WebCore::TextTrackCue::TextTrackCue):
50664        (WebCore::TextTrackCue::calculateComputedLinePosition):
50665        (WebCore::TextTrackCue::calculateDisplayParameters):
50666        (WebCore::TextTrackCue::getDisplayTree):
50667        (WebCore::TextTrackCue::getPositionCoordinates):
50668        * html/track/TextTrackCue.h:
50669        (WebCore):
50670        (TextTrackCue):
50671        * rendering/RenderTextTrackCue.cpp: Removed.
50672        * rendering/RenderTextTrackCue.h: Removed.
50673
506742012-08-20  Kentaro Hara  <haraken@chromium.org>
50675
50676        [V8] Remove getToStringName() and getToStringTemplate() from V8Binding
50677        https://bugs.webkit.org/show_bug.cgi?id=94573
50678
50679        Reviewed by Adam Barth.
50680
50681        - Remove V8Binding::getToStringName() and V8Binding::getToStringTemplate().
50682
50683        - Replace getToStringName() with String::NewSymbol("toString").
50684
50685        - Fix V8PerIsolateData::getToStringTemplate() so that it caches a persistent
50686        handle of a created FunctionTemplate. Before this patch, a FunctionTemplate
50687        had been created for each toString().
50688
50689        No tests. No change in behavior.
50690
50691        * bindings/v8/V8Binding.cpp:
50692        (WebCore::constructorToString):
50693        * bindings/v8/V8Binding.h:
50694        (WebCore):
50695        * bindings/scripts/CodeGeneratorV8.pm:
50696        (GenerateImplementation):
50697        * bindings/scripts/test/V8/V8Float64Array.cpp:
50698        (WebCore::ConfigureV8Float64ArrayTemplate):
50699        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
50700        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
50701        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
50702        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
50703        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
50704        (WebCore::ConfigureV8TestEventConstructorTemplate):
50705        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
50706        (WebCore::ConfigureV8TestEventTargetTemplate):
50707        * bindings/scripts/test/V8/V8TestException.cpp:
50708        (WebCore::ConfigureV8TestExceptionTemplate):
50709        * bindings/scripts/test/V8/V8TestInterface.cpp:
50710        (WebCore::ConfigureV8TestInterfaceTemplate):
50711        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
50712        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
50713        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
50714        (WebCore::ConfigureV8TestNamedConstructorTemplate):
50715        * bindings/scripts/test/V8/V8TestNode.cpp:
50716        (WebCore::ConfigureV8TestNodeTemplate):
50717        * bindings/scripts/test/V8/V8TestObj.cpp:
50718        (WebCore::ConfigureV8TestObjTemplate):
50719        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
50720        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
50721        * bindings/v8/V8PerIsolateData.h:
50722        (V8PerIsolateData):
50723
507242012-08-21  Arvid Nilsson  <anilsson@rim.com>
50725
50726        [BlackBerry] WebGL Aquarium fails to render
50727        https://bugs.webkit.org/show_bug.cgi?id=94634
50728
50729        The aquarium leaves with a glColorMask(false, false, false, true) which
50730        caused us to fail to blit the color components of the aquarium to the
50731        EGLImage.
50732
50733        Fixed by setting an appropriate color mask for a blit operation.
50734
50735        Reviewed by Yong Li.
50736
50737        No new tests, tested manually.
50738
50739        * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
50740        (WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
50741
507422012-08-21  Victor Carbune  <victor@rosedu.org>
50743
50744        Display a TextTrackCue when snap-to-lines flag is set
50745        https://bugs.webkit.org/show_bug.cgi?id=79751
50746
50747        Reviewed by Tony Chang.
50748
50749        This patch implements rendering functionality for a given text track,
50750        following closer the exact WebVTT specification. There are two new classes
50751        which have been added in order to succesfully cover rendering when of a text
50752        track cue.
50753
50754        RenderTextTrackCue handles the specific rendering algorithm required,
50755        by checking for overlaps with other boxes that are in the same
50756        container (these can be any other boxes, not necessarily other cues,
50757        the video controls, for example).
50758
50759        TextTrackCueBox extends HTMLDivElement and is an intermediate layer
50760        between the renderer class and the actual cue object. Its purpose is
50761        to instantiate the particular renderer and cover all the default CSS
50762        styling that needs to be applied to the cue.
50763
50764        The layout is done in two steps:
50765          - Step 1: Layout the TextTrackCue with default CSS properties set (this is
50766        the TextTrackCueBox decorated with the respective CSS elements)
50767          - Step 2: RenderTextTrackCue adjusts the box position depending on the
50768        parameters of the TextTrackCue object and the overlaps that may occur with
50769        previously positioned cues.
50770
50771        Tests: media/track/track-cue-rendering-horizontal.html
50772               media/track/track-cue-rendering-vertical.html
50773
50774        * CMakeLists.txt: Updated to include RenderTextTrackCue.
50775        * GNUmakefile.list.am: Updated to include RenderTextTrackCue.
50776        * Target.pri: Updated to include RenderTextTrackCue.
50777        * WebCore.gypi: Updated to include RenderTextTrackCue.
50778        * WebCore.vcproj/WebCore.vcproj: Updated to include RenderTextTrackCue.
50779        * WebCore.xcodeproj/project.pbxproj: Updated to include RenderTextTrackCue.
50780        * css/mediaControls.css: Removed unreliable CSS.
50781        (video::-webkit-media-text-track-display): Removed properties.
50782        * html/shadow/MediaControlElements.cpp: Updated to not use the new class.
50783        (RenderTextTrackContainerElement):
50784        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Simplified
50785        the function by moving the check if track is rendered in TextTrack and used
50786        the TextTrackCueBox for cues.
50787        * html/track/TextTrack.cpp: Added a new method.
50788        (WebCore::TextTrack::isRendered): Method that returns whether the track should
50789        be rendered or not.
50790        (WebCore):
50791        * html/track/TextTrack.h: Added the isRendered method.
50792        (TextTrack):
50793        * html/track/TextTrackCue.cpp: Added several helper methods and
50794        the TextTrackCueBox.
50795        (WebCore):
50796        (WebCore::TextTrackCueBox::TextTrackCueBox): The TextTrackCueBox extends
50797        the HTMLDivElement and represents a bridge class between RenderTextTrackCue
50798        and TextTrackCue. This is required as the layout is done in two steps, as
50799        explained on top of the ChangeLog entry.
50800        (WebCore::TextTrackCueBox::getCue): Returns the associated TextTrackCue object.
50801        (WebCore::TextTrackCueBox::applyCSSProperties): Applies a part of the default CSS
50802        properties, as defined by section 3.5.1 of the WebVTT specification.
50803        (WebCore::TextTrackCueBox::shadowPseudoId): Moved the shadow pseudo id.
50804        (WebCore::TextTrackCueBox::createRenderer): Creates the particular renderer.
50805        (WebCore::TextTrackCue::TextTrackCue): Corrected the internal writing mode map.
50806        (WebCore::TextTrackCue::calculateComputedLinePosition): Updated the compute line
50807        position algorithm. This requires, however, a method to consider only rendered
50808        tracks (and therefore will be addressed completely in subsequent changeset).
50809        (WebCore::TextTrackCue::calculateDisplayParameters): Updated and corrected the
50810        computed display parameters to match the current specification.
50811        (WebCore::TextTrackCue::getDisplayTree): Update to use the TextTrackCueBox class
50812        and moved CSS application to the respective class.
50813        (WebCore::TextTrackCue::getPositionCoordinates): Added comment to specify in which
50814        situation this method is used and change visibility to private.
50815        (WebCore::TextTrackCue::getCSSWritingMode): Returns the CSS writing mode corresponding
50816        to the cue writing mode.
50817        (WebCore::TextTrackCue::getCSSSize): Returns the cue width / height (depending on the
50818        writing direction.
50819        (WebCore::TextTrackCue::getCSSPosition): Returns the default display position, that is
50820        used in the first layout step.
50821        * html/track/TextTrackCue.h:
50822        (WebCore):
50823        (TextTrackCueBox):
50824        (WebCore::TextTrackCueBox::create): Initialization method.
50825        (TextTrackCue):
50826        (WebCore::TextTrackCue::getWritingDirection): Helper method to return the internal
50827        values used to represent the writing direction.
50828        * rendering/RenderTextTrackCue.cpp: Added.
50829        (WebCore):
50830        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
50831        (WebCore::RenderTextTrackCue::layout): The rendering steps, as mentioned in
50832        the WebVTT rendering rules. Currently, this treats only the snap-to-lines set
50833        case. It is implemented following closely the spec, and might be subject to
50834        change as discussions on various bugs evolve.
50835        (WebCore::RenderTextTrackCue::initializeLayoutParameters): Steps 1 - 7.
50836        (WebCore::RenderTextTrackCue::placeBoxInDefaultPosition): Steps 8 - 10.
50837        (WebCore::RenderTextTrackCue::isOutside): Inline method to check if the cue is outside.
50838        (WebCore::RenderTextTrackCue::isOverlapping): Inline method to check if the cue overlaps other boxes.
50839        (WebCore::RenderTextTrackCue::shouldSwitchDirection): Step 12.
50840        (WebCore::RenderTextTrackCue::moveBoxesByStep): Step 13.
50841        (WebCore::RenderTextTrackCue::switchDirection): Steps 15 - 18.
50842        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Cue repositioning
50843        for text track cue when the snap to lines flag is set.
50844        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesNotSet): Cue repositioning
50845        for text track cue when the snap to lines flag is not set. Not implemented yet.
50846        * rendering/RenderTextTrackCue.h: Added.
50847        (WebCore):
50848        (RenderTextTrackCue): Rendering class, handling the display of cues.
50849
508502012-08-21  Lianghui Chen  <liachen@rim.com>
50851
50852        [BlackBerry] Add RSS content handling support
50853        https://bugs.webkit.org/show_bug.cgi?id=93496
50854
50855        Reviewed by Rob Buis.
50856
50857        Add code to filter RSS content, and properly convert them to HTML
50858        content so they can display nicely, instead of as plain text.
50859
50860        Following modules are included:
50861
50862        RSSFilterStream: the code for detecting RSS content, and controlling
50863        the handling of these content.
50864
50865        RSSParserBase: the base class for the following 3 RSS parser.
50866        RSS10Parser: the code for decoding RSS 1.0 content.
50867        RSS20Parser: the code for decoding RSS 2.0 content.
50868        RSSAtomParser: the code for decoding Atom format RSS content.
50869        RSSGenerator: the code for generating HTML content based on RSS feed.
50870
50871        No new tests as it's not changing how HTML content is handled.
50872
50873        * PlatformBlackBerry.cmake:
50874        * platform/network/blackberry/NetworkJob.cpp:
50875        (WebCore::NetworkJob::initialize):
50876        * platform/network/blackberry/rss/RSS10Parser.cpp: Added.
50877        (WebCore):
50878        (WebCore::RSS10Parser::RSS10Parser):
50879        (WebCore::RSS10Parser::parseBuffer):
50880        (WebCore::RSS10Parser::parseXmlDoc):
50881        (WebCore::RSS10Parser::parseItemBaseAttribute):
50882        (WebCore::RSS10Parser::parseItem):
50883        (WebCore::RSS10Parser::parseFeed):
50884        * platform/network/blackberry/rss/RSS10Parser.h: Added.
50885        (WebCore):
50886        (RSS10Parser):
50887        * platform/network/blackberry/rss/RSS20Parser.cpp: Added.
50888        (WebCore):
50889        (WebCore::RSS20Parser::RSS20Parser):
50890        (WebCore::RSS20Parser::parseBuffer):
50891        (WebCore::RSS20Parser::parseXmlDoc):
50892        (WebCore::RSS20Parser::parseItemBaseAttribute):
50893        (WebCore::RSS20Parser::parseItem):
50894        (WebCore::RSS20Parser::parseFeed):
50895        (WebCore::RSS20Parser::parseEnclosure):
50896        * platform/network/blackberry/rss/RSS20Parser.h: Added.
50897        (WebCore):
50898        (RSS20Parser):
50899        * platform/network/blackberry/rss/RSSAtomParser.cpp: Added.
50900        (WebCore):
50901        (WebCore::isRelativePath):
50902        (WebCore::RSSAtomLink::relType):
50903        (WebCore::RSSAtomParser::RSSAtomParser):
50904        (WebCore::RSSAtomParser::parseBuffer):
50905        (WebCore::RSSAtomParser::parseXmlDoc):
50906        (WebCore::RSSAtomParser::parseItemBaseAttribute):
50907        (WebCore::RSSAtomParser::parseItem):
50908        (WebCore::RSSAtomParser::parseFeed):
50909        (WebCore::RSSAtomParser::parseLink):
50910        (WebCore::RSSAtomParser::enclosureFromLink):
50911        (WebCore::RSSAtomParser::parseContent):
50912        (WebCore::RSSAtomParser::parseAuthor):
50913        (WebCore::RSSAtomParser::parseCategory):
50914        * platform/network/blackberry/rss/RSSAtomParser.h: Added.
50915        (WebCore):
50916        (RSSAtomLink):
50917        (WebCore::RSSAtomLink::RSSAtomLink):
50918        (RSSAtomParser):
50919        * platform/network/blackberry/rss/RSSFilterStream.cpp: Added.
50920        (WebCore):
50921        (WebCore::isASCIISpaceLowerByte):
50922        (WebCore::stripWhiteSpace):
50923        (WebCore::equalIgnoringCase):
50924        (WebCore::isAtomMIMEType):
50925        (WebCore::isRSSMIMEType):
50926        (WebCore::isPotentialRSSMIMEType):
50927        (WebCore::isRSSContent):
50928        (WebCore::RSSTypeFromContentType):
50929        (WebCore::RSSTypeFromContent):
50930        (WebCore::createParser):
50931        (WebCore::findXMLEncodingPosition):
50932        (WebCore::findXMLLanguagePosition):
50933        (WebCore::defaultEncodingForLanguage):
50934        (WebCore::isTranscodingNeeded):
50935        (WebCore::transcode):
50936        (WebCore::transcodeContent):
50937        (WebCore::RSSFilterStream::RSSFilterStream):
50938        (WebCore::RSSFilterStream::notifyStatusReceived):
50939        (WebCore::RSSFilterStream::notifyHeadersReceived):
50940        (WebCore::RSSFilterStream::notifyDataReceived):
50941        (WebCore::RSSFilterStream::notifyClose):
50942        (WebCore::RSSFilterStream::convertContentToHtml):
50943        (WebCore::RSSFilterStream::handleRSSContent):
50944        (WebCore::RSSFilterStream::charset):
50945        (WebCore::RSSFilterStream::encoding):
50946        (WebCore::RSSFilterStream::saveHeaders):
50947        (WebCore::RSSFilterStream::removeHeader):
50948        (WebCore::RSSFilterStream::updateHeader):
50949        (WebCore::RSSFilterStream::updateRSSHeaders):
50950        (WebCore::RSSFilterStream::sendSavedHeaders):
50951        (WebCore::RSSFilterStream::appendData):
50952        * platform/network/blackberry/rss/RSSFilterStream.h: Added.
50953        (WebCore):
50954        (RSSFilterStream):
50955        * platform/network/blackberry/rss/RSSGenerator.cpp: Added.
50956        (WebCore):
50957        (WebCore::RSSGenerator::RSSGenerator):
50958        (WebCore::RSSGenerator::~RSSGenerator):
50959        (WebCore::RSSGenerator::generateHtml):
50960        * platform/network/blackberry/rss/RSSGenerator.h: Added.
50961        (WebCore):
50962        (RSSGenerator):
50963        * platform/network/blackberry/rss/RSSParserBase.cpp: Added.
50964        (WebCore):
50965        (WebCore::RSSEnclosure::RSSEnclosure):
50966        (WebCore::RSSEnclosure::typeInEnum):
50967        (WebCore::RSSEnclosure::suggestedName):
50968        (WebCore::RSSFeed::RSSFeed):
50969        (WebCore::RSSFeed::~RSSFeed):
50970        (WebCore::RSSFeed::clear):
50971        (WebCore::RSSItem::RSSItem):
50972        (WebCore::RSSItem::~RSSItem):
50973        (WebCore::RSSItem::clear):
50974        (WebCore::RSSParserBase::RSSParserBase):
50975        (WebCore::RSSParserBase::~RSSParserBase):
50976        (WebCore::textFromXMLAttr):
50977        (WebCore::textFromXMLNode):
50978        * platform/network/blackberry/rss/RSSParserBase.h: Added.
50979        (WebCore):
50980        (RSSEnclosure):
50981        (RSSItemBase):
50982        (RSSParserBase):
50983
509842012-08-21  Andrew Lo  <anlo@rim.com>
50985
50986        [BlackBerry] requestAnimationFrame: Unscheduled display link frames need to be sent to main thread
50987        https://bugs.webkit.org/show_bug.cgi?id=94600
50988
50989        Reviewed by Rob Buis.
50990
50991        http://trac.webkit.org/changeset/116792 implements destroying
50992        DisplayRefreshMonitor after the number of unscheduled frames exceeds 10.
50993
50994        Part of that change involves dispatching to the main thread whether
50995        the frame was scheduled or not.
50996
50997        Make the corresponding change for the BlackBerry port that was made for
50998        DisplayRefreshMonitorMac.cpp.
50999
51000        Tests covered by http://trac.webkit.org/changeset/116792
51001
51002        * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
51003        (WebCore::DisplayRefreshMonitor::displayLinkFired):
51004
510052012-08-21  Brian Salomon  <bsalomon@google.com>
51006
51007        [Chromium/Skia] Filters should flush the SkCanvas
51008        https://bugs.webkit.org/show_bug.cgi?id=94602
51009
51010        Reviewed by Stephen White.
51011
51012        Adds a SkCanvas::flush call to FilterBufferState::swap() to ensure the textures are updated before they are consumed by the compositor.
51013
51014        Covered by existing css3/filters layout tests.
51015
51016        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
51017
510182012-08-21  Lianghui Chen  <liachen@rim.com>
51019
51020        [BlackBerry] Use new method to create socket handle
51021        https://bugs.webkit.org/show_bug.cgi?id=89991
51022
51023        Reviewed by Rob Buis.
51024
51025        Update the way to create SocketStream as the platform API has changed.
51026
51027        No new tests as no change of behaviour, just API change adaptation.
51028
51029        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
51030        (WebCore::SocketStreamHandle::SocketStreamHandle):
51031
510322012-08-21  Kentaro Hara  <haraken@chromium.org>
51033
51034        [V8] Move compileScript() from V8Proxy to ScriptSourceCode
51035        https://bugs.webkit.org/show_bug.cgi?id=94561
51036
51037        Reviewed by Adam Barth.
51038
51039        To kill V8Proxy, this patch moves compileScript() from V8Proxy
51040        to ScriptSourceCode. This patch also removes fromWebCoreString().
51041
51042        No tests. No change in behavior.
51043
51044        * UseV8.cmake:
51045        * WebCore.gypi:
51046        * bindings/v8/ScriptController.h:
51047        (ScriptController):
51048        * bindings/v8/ScriptSourceCode.cpp: Added.
51049        (WebCore):
51050        (WebCore::ScriptSourceCode::compileScript):
51051        * bindings/v8/ScriptSourceCode.h:
51052        (ScriptSourceCode):
51053        * bindings/v8/V8Binding.h:
51054        * bindings/v8/V8LazyEventListener.cpp:
51055        (WebCore::V8LazyEventListener::prepareListenerObject):
51056        * bindings/v8/V8Proxy.cpp:
51057        (WebCore::V8Proxy::evaluate):
51058        * bindings/v8/V8Proxy.h:
51059        (V8Proxy):
51060        * bindings/v8/WorkerContextExecutionProxy.cpp:
51061        (WebCore::WorkerContextExecutionProxy::evaluate):
51062        (WebCore::WorkerContextExecutionProxy::runScript):
51063        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
51064        (WebCore::V8InjectedScriptHost::getEventListenersCallback):
51065        * bindings/v8/custom/V8MessageEventCustom.cpp:
51066        (WebCore::V8MessageEvent::dataAccessorGetter):
51067        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
51068        (WebCore::toV8Object):
51069        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
51070
510712012-08-21  Kentaro Hara  <haraken@chromium.org>
51072
51073        [V8] Move toV8Context() from V8Proxy to V8Binding
51074        https://bugs.webkit.org/show_bug.cgi?id=94597
51075
51076        Reviewed by Adam Barth.
51077
51078        To kill V8Proxy, we can move toV8Context() from V8Proxy to V8Binding.
51079
51080        No tests. No change in behavior.
51081
51082        * bindings/v8/V8Binding.cpp:
51083        (WebCore::toV8Context):
51084        (WebCore):
51085        * bindings/v8/V8Binding.h:
51086        (WebCore):
51087        * bindings/v8/V8Proxy.cpp:
51088        * bindings/v8/V8Proxy.h:
51089
510902012-08-21  Gabriel Peal  <gpeal@google.com>
51091
51092        Web Inspector: Embeddable Web Inspector
51093        https://bugs.webkit.org/show_bug.cgi?id=91528
51094
51095        Reviewed by Pavel Feldman.
51096
51097        Adds functionality to the inspector such that it is better suited to run embedded in another webpage. It adds the ability to prepopulate the timeline panel with an existing recording among other controls.
51098
51099        * English.lproj/localizedStrings.js:
51100        * inspector/front-end/InspectorFrontendAPI.js:
51101        (InspectorFrontendAPI.dispatchQueryParameters):
51102        (InspectorFrontendAPI.loadTimelineFromURL):
51103        * inspector/front-end/InspectorFrontendHostStub.js:
51104        (.WebInspector.InspectorFrontendHostStub.prototype.hiddenPanels):
51105        (.WebInspector.InspectorFrontendHostStub.prototype.loadResourceSynchronously):
51106        * inspector/front-end/InspectorView.js:
51107        * inspector/front-end/TimelineModel.js:
51108        (WebInspector.TimelineModel.prototype.loadFromURL.onDataReceived):
51109        (WebInspector.TimelineModel.prototype.loadFromURL.parseAndImportData):
51110        (WebInspector.TimelineModel.prototype.loadFromURL.onLoad):
51111        (WebInspector.TimelineModel.prototype.loadFromURL):
51112        * inspector/front-end/TimelinePanel.js:
51113        (WebInspector.TimelinePanel.prototype.loadFromURL):
51114        * inspector/front-end/inspector.js:
51115        (WebInspector._createPanels):
51116        (WebInspector.loaded):
51117        * inspector/front-end/utilities.js:
51118
511192012-08-21  Robin Cao  <robin.cao@torchmobile.com.cn>
51120
51121        [BlackBerry] Add support for getUserMedia
51122        https://bugs.webkit.org/show_bug.cgi?id=94591
51123
51124        Reviewed by George Staikos.
51125
51126        Implement getUserMedia feature using the platform API.
51127
51128        Tests in fast/mediastream cover this.
51129
51130        PR #153571
51131
51132        Reviewed internally by George Staikos.
51133
51134        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51135        (WebCore::toWebMediaStreamSource):
51136        (WebCore):
51137        (WebCore::toWebMediaStreamDescriptor):
51138        (WebCore::MediaPlayerPrivate::lookupMediaStream):
51139        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51140        (MediaPlayerPrivate):
51141
511422012-08-21  Pavel Feldman  <pfeldman@chromium.org>
51143
51144        Web Inspector: remove DOMNodeRemoved listener from the DefaultTextEditor
51145        https://bugs.webkit.org/show_bug.cgi?id=94592
51146
51147        Reviewed by Yury Semikhatsky.
51148
51149        It seems to be not necessary.
51150
51151        * inspector/front-end/DefaultTextEditor.js:
51152        (WebInspector.TextEditorMainPanel):
51153        (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
51154        (WebInspector.TextEditorMainChunk):
51155        (WebInspector.TextEditorMainChunk.prototype.set expanded):
51156
511572012-08-21  Thiago Marcos P. Santos  <thiago.santos@intel.com>
51158
51159        CodeGeneratorInspector.py: Generate guards for type validators
51160        https://bugs.webkit.org/show_bug.cgi?id=94511
51161
51162        Reviewed by Yury Semikhatsky.
51163
51164        Fix regression when building debug and one of the generated types is
51165        disabled by a compile flag. We should generate guards for these type
51166        validators the same way as we are doing on the include headers.
51167
51168        * inspector/CodeGeneratorInspector.py:
51169        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
51170
511712012-08-21  Florin Malita  <fmalita@chromium.org>
51172
51173        ASSERT triggered in SVGTRefTargetEventListener::handleEvent()
51174        https://bugs.webkit.org/show_bug.cgi?id=94487
51175
51176        Reviewed by Nikolas Zimmermann.
51177
51178        The current way of tracking tref target elements by id can leave stale event listeners
51179        under certain circumstances. This patch switches to storing a target RefPtr instead
51180        to avoid an id lookup which may not return the original/attached element.
51181
51182        Test: svg/custom/tref-stale-listener-crash.html
51183
51184        * svg/SVGTRefElement.cpp:
51185        (SVGTRefTargetEventListener):
51186        (WebCore::SVGTRefTargetEventListener::isAttached): use m_target instead of an explicit bool.
51187        (WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):
51188        (WebCore::SVGTRefTargetEventListener::attach): save a target RefPtr instead of an id.
51189        (WebCore::SVGTRefTargetEventListener::detach): detach the target element directly without
51190        going through a lookup.
51191        (WebCore::SVGTRefTargetEventListener::handleEvent):
51192        (WebCore::SVGTRefElement::updateReferencedText): use an explicit target pointer instead of
51193        the id-based lookup.
51194        (WebCore::SVGTRefElement::buildPendingResource):
51195        * svg/SVGTRefElement.h:
51196        (SVGTRefElement):
51197
511982012-08-21  Alexandre Elias  <aelias@google.com>
51199
51200        [chromium] Add software bitmap resources to CCResourceProvider
51201        https://bugs.webkit.org/show_bug.cgi?id=93677
51202
51203        Reviewed by Adrienne Walker.
51204
51205        This adds the ability to CCResourceProvider to use software bitmaps.
51206        They are allocated as plain-old-memory, and exposed as Skia objects.
51207
51208        We want the ResourceProvider to be able to handle different resource
51209        types at the same time.  In practice, a default resource type is
51210        desired for most uses within a single compositor instance, which is
51211        specified by the default resource type.  Default resource types are
51212        expected to be mostly 1-to-1 with CCRenderer types.
51213
51214        New tests added by parametrizing existing CCResourceProvider tests.
51215
51216        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
51217        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
51218        * platform/graphics/chromium/LayerRendererChromium.cpp:
51219        (WebCore::applyFilters):
51220        (WebCore::LayerRendererChromium::drawRenderPassQuad):
51221        (WebCore::LayerRendererChromium::drawTileQuad):
51222        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
51223        (WebCore::LayerRendererChromium::drawTextureQuad):
51224        (WebCore::LayerRendererChromium::getFramebufferTexture):
51225        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
51226        * platform/graphics/chromium/LayerRendererChromium.h:
51227        (DrawingFrame):
51228        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
51229        (WebCore::CCResourceProvider::createResource):
51230        (WebCore):
51231        (WebCore::CCResourceProvider::createGLTexture):
51232        (WebCore::CCResourceProvider::createBitmap):
51233        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
51234        (WebCore::CCResourceProvider::deleteResource):
51235        (WebCore::CCResourceProvider::upload):
51236        (WebCore::CCResourceProvider::flush):
51237        (WebCore::CCResourceProvider::shallowFlushIfSupported):
51238        (WebCore::CCResourceProvider::lockForRead):
51239        (WebCore::CCResourceProvider::unlockForRead):
51240        (WebCore::CCResourceProvider::lockForWrite):
51241        (WebCore::CCResourceProvider::unlockForWrite):
51242        (WebCore::CCResourceProvider::ScopedReadLockGL::ScopedReadLockGL):
51243        (WebCore::CCResourceProvider::ScopedReadLockGL::~ScopedReadLockGL):
51244        (WebCore::CCResourceProvider::ScopedWriteLockGL::ScopedWriteLockGL):
51245        (WebCore::CCResourceProvider::ScopedWriteLockGL::~ScopedWriteLockGL):
51246        (WebCore::CCResourceProvider::populateSkBitmapWithResource):
51247        (WebCore::CCResourceProvider::ScopedReadLockSoftware::ScopedReadLockSoftware):
51248        (WebCore::CCResourceProvider::ScopedReadLockSoftware::~ScopedReadLockSoftware):
51249        (WebCore::CCResourceProvider::ScopedWriteLockSoftware::ScopedWriteLockSoftware):
51250        (WebCore::CCResourceProvider::ScopedWriteLockSoftware::~ScopedWriteLockSoftware):
51251        (WebCore::CCResourceProvider::CCResourceProvider):
51252        * platform/graphics/chromium/cc/CCResourceProvider.h:
51253        (WebCore):
51254        (WebCore::CCResourceProvider::setCreationPolicy):
51255        (WebCore::CCResourceProvider::creationPolicy):
51256        (CCResourceProvider):
51257        (ScopedReadLockGL):
51258        (WebCore::CCResourceProvider::ScopedReadLockGL::textureId):
51259        (ScopedWriteLockGL):
51260        (WebCore::CCResourceProvider::ScopedWriteLockGL::textureId):
51261        (ScopedReadLockSoftware):
51262        (WebCore::CCResourceProvider::ScopedReadLockSoftware::skBitmap):
51263        (ScopedWriteLockSoftware):
51264        (WebCore::CCResourceProvider::ScopedWriteLockSoftware::skCanvas):
51265        (Resource):
51266
512672012-08-21  Tab Atkins  <tabatkins@google.com>
51268
51269        Track -webkit property usage.
51270        https://bugs.webkit.org/show_bug.cgi?id=93420
51271
51272        Reviewed by Ojan Vafai.
51273
51274        First draft of an attempt to track all usage of -webkit prefixed properties across the web.
51275        This attempt is dumb, but should provide useful data as a first-pass.
51276        I plan to optimize this for better data collection in the future.
51277
51278        No tests added, as this is untestable currently.
51279        It should have zero effect besides histogramming.
51280
51281        * css/CSSParser.cpp:
51282        (WebCore::cssPropertyID):
51283
512842012-08-21  Alec Flett  <alecflett@chromium.org>
51285
51286        IndexedDB: remove old update/openCursor glue
51287        https://bugs.webkit.org/show_bug.cgi?id=94378
51288
51289        Reviewed by Tony Chang.
51290
51291        Remove old openCursor and update methods after landing
51292        https://bugs.webkit.org/show_bug.cgi?id=91125 and removing
51293        Chromium-side glue.
51294
51295        No new tests: this code is dead.
51296
51297        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
51298        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
51299        (IDBObjectStoreBackendImpl):
51300        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
51301        * inspector/InspectorIndexedDBAgent.cpp:
51302        (WebCore):
51303
513042012-08-21  James Robinson  <jamesr@chromium.org>
51305
51306        [chromium] Should be able to destroy a CCLayerTreeHost without manually setting the root layer
51307        https://bugs.webkit.org/show_bug.cgi?id=94631
51308
51309        Reviewed by Adrienne Walker.
51310
51311        In the depths of time when dinosaurs roamed the earth, LayerChromium and CCLayerTreeHost were both reference
51312        counted and there was a cycle between the root LayerChromium and CCLayerTreeHost. This required all users of
51313        CCLayerTreeHost to manually break the cycle by calling setRootLayer(0) before dropping their reference to the
51314        host. Nowadays, CCLayerTreeHost has a single owner and LayerChromiums only have a weak pointer to their host
51315        so we should just do this cleanup ourselves instead of imposing it on callers.
51316
51317        Unit test added to LayerChromiumTest.cpp
51318
51319        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
51320        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
51321
513222012-08-21  Ulan Degenbaev  <ulan@chromium.org>
51323
51324        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer constructed and destructed
51325        https://bugs.webkit.org/show_bug.cgi?id=92993
51326
51327        Reviewed by Kenneth Russell.
51328
51329        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer
51330        is constructed and destructed so that V8's garbage collection
51331        heuristics can account for the memory held by these objects.
51332
51333        * WebCore.gypi:
51334        * bindings/v8/SerializedScriptValue.cpp:
51335        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
51336        (WebCore::V8ArrayBufferDeallocationObserver::instance):
51337        (WebCore):
51338        (WebCore::V8ArrayBuffer::constructorCallback):
51339        * bindings/v8/custom/V8ArrayBufferCustom.h: Added.
51340        (WebCore):
51341        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
51342        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
51343        (WebCore::constructWebGLArray):
51344        * dom/MessageEvent.cpp:
51345        (WebCore::MessageEvent::MessageEvent):
51346        (WebCore::MessageEvent::initMessageEvent):
51347
513482012-08-21  Taiju Tsuiki  <tzik@chromium.org>
51349
51350        Web Inspector: Completion events of InspectorFileSystemAgent should be fired asynchronously.
51351        https://bugs.webkit.org/show_bug.cgi?id=93933
51352
51353        Reviewed by Yury Semikhatsky.
51354
51355        InspectorFileSystemAgent fires completion event too early in error case. It should wait
51356        until JS code is ready.
51357
51358        Test: http/tests/inspector/filesystem/request-directory-content.html
51359              http/tests/inspector/filesystem/request-file-content.html
51360              http/tests/inspector/filesystem/request-metadata.html
51361
51362        * inspector/InspectorFileSystemAgent.cpp:
51363        (WebCore): Add ReportErrorTask class
51364
513652012-08-21  Mike West  <mkwst@chromium.org>
51366
51367        Blocking a resource via Content Security Policy should trigger an Error event.
51368        https://bugs.webkit.org/show_bug.cgi?id=89440
51369
51370        Reviewed by Jochen Eisinger.
51371
51372        If a CSP directive is violated, CachedResourceLoader will trigger a
51373        console error, and return a null image. In that case, we now dispatch
51374        an error on the relevant element.
51375
51376        Adjusted http/tests/security/contentSecurityPolicy/image-blocked.html
51377        and http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
51378        to test the new behavior.
51379
51380        This has the side-effect of also generating errors for images blocked by
51381        Chromium's content settings. Adjusted
51382        platform/chromium/permissionclient/image-permissions.html to agree with
51383        the new behavior.
51384
51385        * loader/ImageLoader.cpp:
51386        (WebCore::ImageLoader::updateFromElement):
51387
513882012-08-21  Taiju Tsuiki  <tzik@chromium.org>
51389
51390        Web Inspector: Split out crumb list part of styles from elementsPanel.css
51391        https://bugs.webkit.org/show_bug.cgi?id=94301
51392
51393        Reviewed by Pavel Feldman.
51394
51395        As a preparation to use BreadcrumbList on FileSystem, introduce breadcrumbList.css and
51396        move crumb-related style entries into it from elementsPanel.css.
51397
51398        No new tests. This change does not make functional change.
51399
51400        * WebCore.gypi:
51401        * WebCore.vcproj/WebCore.vcproj:
51402        * inspector/front-end/ElementsPanel.js:
51403        * inspector/front-end/WebKit.qrc:
51404        * inspector/front-end/breadcrumbList.css: Added.
51405        (.crumbs):
51406        (.crumbs .crumb):
51407        (.crumbs .crumb.collapsed > *):
51408        (.crumbs .crumb.collapsed::before):
51409        (.crumbs .crumb.compact .extra):
51410        (.crumbs .crumb.dimmed):
51411        (.crumbs .crumb.start):
51412        (.crumbs .crumb.end):
51413        (.crumbs .crumb.selected):
51414        (.crumbs .crumb.selected:hover):
51415        (.crumbs .crumb.selected.end, .crumbs .crumb.selected.end:hover):
51416        (.crumbs .crumb:hover):
51417        (.crumbs .crumb.dimmed:hover):
51418        (.crumbs .crumb.end:hover):
51419        * inspector/front-end/elementsPanel.css:
51420
514212012-08-21  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
51422
51423        canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6.html fails
51424        https://bugs.webkit.org/show_bug.cgi?id=50797
51425
51426        Reviewed by Andreas Kling.
51427
51428        Add a check in fast-path parseAlphaValue() to return early
51429        if the CSS <alphavalue> ended with an invalid digit.
51430
51431        Test: canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6.html
51432
51433        * css/CSSParser.cpp:
51434        (WebCore::parseAlphaValue):
51435
514362012-08-21  Benjamin Poulain  <bpoulain@apple.com>
51437
51438        Store CString data in the CStringBuffer to avoid the double indirection
51439        https://bugs.webkit.org/show_bug.cgi?id=94562
51440
51441        Reviewed by Darin Adler.
51442
51443        * bindings/cpp/WebDOMCString.cpp:
51444        (WebDOMCString::length): With the patch, CStringBuffer hold the real string length instead of the
51445        size of the buffer including the terminating zero. WebDOMCString is updated accordingly.
51446
514472012-08-21  Benjamin Poulain  <bpoulain@apple.com>
51448
51449        Create CSS color output string on 8 bits
51450        https://bugs.webkit.org/show_bug.cgi?id=94625
51451
51452        Reviewed by Andreas Kling.
51453
51454        * css/CSSPrimitiveValue.cpp:
51455        (WebCore::CSSPrimitiveValue::customCssText):
51456        Previously, the output string for a CSS color was computed on 16 bits.
51457        This was mainly forced by the use of String::number().
51458
51459        Since the double to string conversion is done on 8bits anyway, I changed
51460        the code to use dtoa's numberToFixedPrecisionString directly instead of
51461        String::number().
51462        All the other parts were already on 8bits.
51463
514642012-08-21  Martin Robinson  <mrobinson@igalia.com>
51465
51466        [GTK] Using a native window for the WebView breaks GtkOverlay
51467        https://bugs.webkit.org/show_bug.cgi?id=90085
51468
51469        Reviewed by Alejandro G. Castro.
51470
51471        No new tests. This will be covered by pixel test for accelerated
51472        compositing when they are activated.
51473
51474        * GNUmakefile.am: Add XComposite libraries to the linker list.
51475        * GNUmakefile.list.am: Add RedirectedXCompositeWindow files to the source list.
51476        Make a new section for GLX specific files.
51477        * platform/graphics/glx/GLContextGLX.cpp:
51478        (WebCore::GLContextGLX::sharedDisplay): Expose sharedDisplay as a static method
51479        so that it can be called by other X11 specific code.
51480        * platform/graphics/glx/GLContextGLX.h: Ditto.
51481        * platform/gtk/RedirectedXCompositeWindow.cpp: Added. An implementation of a GL surface
51482        that renders to an X-window which redirects to a pixmap.
51483        * platform/gtk/RedirectedXCompositeWindow.h: Added.
51484
514852012-08-21  David Hyatt  <hyatt@apple.com>
51486
51487        [New Multicolumn] Make column rules paint properly.
51488        https://bugs.webkit.org/show_bug.cgi?id=94616
51489
51490        Reviewed by Simon Fraser.
51491
51492        Make the new multi-column code paint column rules and also prepare it for painting
51493        the actual column contents.
51494
51495        * rendering/RenderMultiColumnBlock.cpp:
51496        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
51497        Remove the addRegionToThread call, since this is now done automatically in RenderRegion::insertedIntoTree.
51498        
51499        * rendering/RenderMultiColumnBlock.h:
51500        (WebCore::RenderMultiColumnBlock::flowThread):
51501        Make public so that RenderMultiColumnSet can access it.
51502        
51503        (RenderMultiColumnBlock):
51504        * rendering/RenderMultiColumnSet.cpp:
51505        (WebCore::RenderMultiColumnSet::columnGap):
51506        Add a column gap fetch method. It's identical to the one on RenderBlock (which will eventually go away
51507        when we kill the old multi-column code).
51508        
51509        (WebCore::RenderMultiColumnSet::columnRectAt):
51510        Also identical to the RenderBlock version of this method. Gets the rect for the nth column.
51511        
51512        (WebCore::RenderMultiColumnSet::paintReplaced):
51513        Subclass paintReplaced in order to do column rules and contents painting.
51514        
51515        (WebCore::RenderMultiColumnSet::paintColumnRules):
51516        (WebCore::RenderMultiColumnSet::paintColumnContents):
51517        Similar to the methods on RenderBlock. The former paints the rules and the latter paints the contents of
51518        the flow thread into the columns.
51519        
51520        * rendering/RenderMultiColumnSet.h:
51521        (RenderMultiColumnSet):
51522        Add the declarations of all the new methods.
51523        
51524        * rendering/RenderRegion.cpp:
51525        (WebCore::RenderRegion::installFlowThread):
51526        Added a new virtual function for installing flow threads when they didn't exist at construction time.
51527        This only applies to actual CSS Regions, so the subclass of the method in RenderRegionSet just does
51528        nothing.
51529        
51530        (WebCore::RenderRegion::attachRegion):
51531        Get the named flow thread code out of attachRegion, since it broke multi-column. Moved it into a
51532        virtual function, installFlowThread, that is only used by actual CSS regions. Eventually we may
51533        want a RenderRegion subclass that represents a region for a named flow thread only, but for now
51534        let the code sit in installFlowThread in the base class.
51535        
51536        * rendering/RenderRegion.h:
51537        (RenderRegion):
51538        Add installFlowThread declaration.
51539        
51540        * rendering/RenderRegionSet.cpp:
51541        (WebCore::RenderRegionSet::installFlowThread):
51542        installFlowThread for region sets just does nothing, since we don't use named flow threads.
51543        
51544        * rendering/RenderRegionSet.h:
51545        (RenderRegionSet):
51546        Add the override of installFlowThread.
51547
515482012-08-21  Patrick Gansterer  <paroga@webkit.org>
51549
51550        [WIN] Build fix for !ENABLE(DRAG_SUPPORT).
51551
51552        * page/win/EventHandlerWin.cpp:
51553        (WebCore):
51554        (WebCore::EventHandler::passMouseMoveEventToSubframe):
51555
515562012-08-21  James Robinson  <jamesr@chromium.org>
51557
51558        Unreviewed, rolling out r126170.
51559        http://trac.webkit.org/changeset/126170
51560        https://bugs.webkit.org/show_bug.cgi?id=94614
51561
51562        I spoke too soon
51563
51564        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
51565        (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
51566        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
51567        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
51568        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
51569        (WebCore::ScrollingCoordinatorPrivate::hasScrollLayer):
51570        (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
51571        (ScrollingCoordinatorPrivate):
51572        (WebCore::createScrollbarLayer):
51573        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
51574        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
51575        (WebCore::ScrollingCoordinator::setScrollLayer):
51576        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
51577        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
51578        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
51579        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
51580        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
51581        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51582        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51583        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
51584        (WebCore::Canvas2DLayerBridge::prepareForDraw):
51585        (WebCore::Canvas2DLayerBridge::layer):
51586        (WebCore::Canvas2DLayerBridge::contextAcquired):
51587        * platform/graphics/chromium/Canvas2DLayerBridge.h:
51588        (Canvas2DLayerBridge):
51589        * platform/graphics/chromium/DrawingBufferChromium.cpp:
51590        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
51591        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
51592        (WebCore::DrawingBufferPrivate::layer):
51593        (DrawingBufferPrivate):
51594        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
51595        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
51596        (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
51597        (WebCore::GraphicsLayerChromium::willBeDestroyed):
51598        (WebCore):
51599        (WebCore::GraphicsLayerChromium::updateNames):
51600        (WebCore::GraphicsLayerChromium::removeFromParent):
51601        (WebCore::GraphicsLayerChromium::setSize):
51602        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
51603        (WebCore::GraphicsLayerChromium::setContentsOpaque):
51604        (WebCore::GraphicsLayerChromium::setFilters):
51605        (WebCore::GraphicsLayerChromium::setBackgroundFilters):
51606        (WebCore::GraphicsLayerChromium::setMaskLayer):
51607        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
51608        (WebCore::GraphicsLayerChromium::setOpacity):
51609        (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
51610        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
51611        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
51612        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
51613        (WebCore::GraphicsLayerChromium::setContentsToImage):
51614        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
51615        (WebCore::GraphicsLayerChromium::addAnimation):
51616        (WebCore::GraphicsLayerChromium::pauseAnimation):
51617        (WebCore::GraphicsLayerChromium::removeAnimation):
51618        (WebCore::GraphicsLayerChromium::suspendAnimations):
51619        (WebCore::GraphicsLayerChromium::resumeAnimations):
51620        (WebCore::GraphicsLayerChromium::addLinkHighlight):
51621        (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
51622        (WebCore::GraphicsLayerChromium::setContentsToMedia):
51623        (WebCore::GraphicsLayerChromium::primaryLayer):
51624        (WebCore::GraphicsLayerChromium::platformLayer):
51625        (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
51626        (WebCore::GraphicsLayerChromium::setDebugBorder):
51627        (WebCore::GraphicsLayerChromium::updateChildList):
51628        (WebCore::GraphicsLayerChromium::updateLayerPosition):
51629        (WebCore::GraphicsLayerChromium::updateLayerSize):
51630        (WebCore::GraphicsLayerChromium::updateAnchorPoint):
51631        (WebCore::GraphicsLayerChromium::updateTransform):
51632        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
51633        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
51634        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
51635        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
51636        (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
51637        (WebCore::GraphicsLayerChromium::updateContentsRect):
51638        (WebCore::GraphicsLayerChromium::updateContentsScale):
51639        (WebCore::GraphicsLayerChromium::setupContentsLayer):
51640        * platform/graphics/chromium/GraphicsLayerChromium.h:
51641        (WebCore::GraphicsLayerChromium::hasContentsLayer):
51642        (GraphicsLayerChromium):
51643        (WebCore::GraphicsLayerChromium::contentsLayer):
51644        * platform/graphics/chromium/LayerChromium.cpp:
51645        (WebCore::LayerChromium::rootLayer):
51646        * platform/graphics/chromium/LayerChromium.h:
51647
516482012-08-21  Adam Barth  <abarth@webkit.org>
51649
51650        Update run-bindings-tests results after http://trac.webkit.org/changeset/126165
51651
51652        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
51653        (WebCore::jsTestActiveDOMObjectExcitingAttr):
51654        (WebCore::jsTestActiveDOMObjectConstructor):
51655        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
51656
516572012-08-21  Vincent Scheib  <scheib@chromium.org>
51658
51659        Add parsing logic for allow-pointer-lock to iframe sandbox attribute.
51660        https://bugs.webkit.org/show_bug.cgi?id=94513
51661
51662        Reviewed by Adam Barth.
51663
51664        Pointer lock was previously blocked from all sandboxed iframes.
51665        Parsing the sandbox="allow-pointer-lock" attribute allows pages
51666        to control the feature and enable it in sandboxed iframes.
51667
51668        Tests: http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html
51669               http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html
51670               http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html
51671
51672        * dom/SecurityContext.cpp:
51673        (WebCore::SecurityContext::parseSandboxPolicy):
51674
516752012-08-21  James Robinson  <jamesr@chromium.org>
51676
51677        Unreviewed, rolling out r126169.
51678        http://trac.webkit.org/changeset/126169
51679        https://bugs.webkit.org/show_bug.cgi?id=94614
51680
51681        Crashes already fixed downstream
51682
51683        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
51684        (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
51685        (ScrollingCoordinatorPrivate):
51686        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
51687        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
51688        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
51689        (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
51690        (WebCore::scrollableLayerForGraphicsLayer):
51691        (WebCore):
51692        (WebCore::createScrollbarLayer):
51693        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
51694        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
51695        (WebCore::ScrollingCoordinator::setScrollLayer):
51696        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
51697        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
51698        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
51699        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
51700        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
51701        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51702        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51703        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
51704        (WebCore::Canvas2DLayerBridge::prepareForDraw):
51705        (WebCore::Canvas2DLayerBridge::layer):
51706        (WebCore::Canvas2DLayerBridge::contextAcquired):
51707        * platform/graphics/chromium/Canvas2DLayerBridge.h:
51708        (Canvas2DLayerBridge):
51709        * platform/graphics/chromium/DrawingBufferChromium.cpp:
51710        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
51711        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
51712        (WebCore::DrawingBufferPrivate::layer):
51713        (DrawingBufferPrivate):
51714        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
51715        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
51716        (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
51717        (WebCore::GraphicsLayerChromium::updateNames):
51718        (WebCore::GraphicsLayerChromium::removeFromParent):
51719        (WebCore::GraphicsLayerChromium::setSize):
51720        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
51721        (WebCore::GraphicsLayerChromium::setContentsOpaque):
51722        (WebCore::GraphicsLayerChromium::setFilters):
51723        (WebCore::GraphicsLayerChromium::setBackgroundFilters):
51724        (WebCore::GraphicsLayerChromium::setMaskLayer):
51725        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
51726        (WebCore::GraphicsLayerChromium::setOpacity):
51727        (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
51728        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
51729        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
51730        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
51731        (WebCore::GraphicsLayerChromium::setContentsToImage):
51732        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
51733        (WebCore):
51734        (WebCore::GraphicsLayerChromium::setContentsToMedia):
51735        (WebCore::GraphicsLayerChromium::setContentsTo):
51736        (WebCore::GraphicsLayerChromium::addAnimation):
51737        (WebCore::GraphicsLayerChromium::pauseAnimation):
51738        (WebCore::GraphicsLayerChromium::removeAnimation):
51739        (WebCore::GraphicsLayerChromium::suspendAnimations):
51740        (WebCore::GraphicsLayerChromium::resumeAnimations):
51741        (WebCore::GraphicsLayerChromium::addLinkHighlight):
51742        (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
51743        (WebCore::GraphicsLayerChromium::platformLayer):
51744        (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
51745        (WebCore::GraphicsLayerChromium::setDebugBorder):
51746        (WebCore::GraphicsLayerChromium::updateChildList):
51747        (WebCore::GraphicsLayerChromium::updateLayerPosition):
51748        (WebCore::GraphicsLayerChromium::updateLayerSize):
51749        (WebCore::GraphicsLayerChromium::updateAnchorPoint):
51750        (WebCore::GraphicsLayerChromium::updateTransform):
51751        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
51752        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
51753        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
51754        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
51755        (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
51756        (WebCore::GraphicsLayerChromium::updateContentsRect):
51757        (WebCore::GraphicsLayerChromium::updateContentsScale):
51758        (WebCore::GraphicsLayerChromium::setupContentsLayer):
51759        * platform/graphics/chromium/GraphicsLayerChromium.h:
51760        (WebCore::GraphicsLayerChromium::hasContentsLayer):
51761        (WebCore::GraphicsLayerChromium::contentLayer):
51762        (GraphicsLayerChromium):
51763        (WebCore::GraphicsLayerChromium::contentsLayer):
51764        * platform/graphics/chromium/LayerChromium.cpp:
51765        (WebCore::LayerChromium::rootLayer):
51766        * platform/graphics/chromium/LayerChromium.h:
51767
517682012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
51769
51770        Unreviewed, rolling out r126076, r126099, and r126106.
51771        http://trac.webkit.org/changeset/126076
51772        http://trac.webkit.org/changeset/126099
51773        http://trac.webkit.org/changeset/126106
51774        https://bugs.webkit.org/show_bug.cgi?id=94614
51775
51776        Caused crashes during compositor shutdown in Aura builds of
51777        Chromium (Requested by kbr_google on #webkit).
51778
51779        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
51780        (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
51781        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
51782        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
51783        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
51784        (WebCore::ScrollingCoordinatorPrivate::hasScrollLayer):
51785        (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
51786        (ScrollingCoordinatorPrivate):
51787        (WebCore::createScrollbarLayer):
51788        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
51789        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
51790        (WebCore::ScrollingCoordinator::setScrollLayer):
51791        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
51792        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
51793        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
51794        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
51795        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
51796        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51797        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51798        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
51799        (WebCore::Canvas2DLayerBridge::prepareForDraw):
51800        (WebCore::Canvas2DLayerBridge::layer):
51801        (WebCore::Canvas2DLayerBridge::contextAcquired):
51802        * platform/graphics/chromium/Canvas2DLayerBridge.h:
51803        (Canvas2DLayerBridge):
51804        * platform/graphics/chromium/DrawingBufferChromium.cpp:
51805        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
51806        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
51807        (WebCore::DrawingBufferPrivate::layer):
51808        (DrawingBufferPrivate):
51809        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
51810        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
51811        (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
51812        (WebCore::GraphicsLayerChromium::willBeDestroyed):
51813        (WebCore):
51814        (WebCore::GraphicsLayerChromium::updateNames):
51815        (WebCore::GraphicsLayerChromium::removeFromParent):
51816        (WebCore::GraphicsLayerChromium::setSize):
51817        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
51818        (WebCore::GraphicsLayerChromium::setContentsOpaque):
51819        (WebCore::GraphicsLayerChromium::setFilters):
51820        (WebCore::GraphicsLayerChromium::setBackgroundFilters):
51821        (WebCore::GraphicsLayerChromium::setMaskLayer):
51822        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
51823        (WebCore::GraphicsLayerChromium::setOpacity):
51824        (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
51825        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
51826        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
51827        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
51828        (WebCore::GraphicsLayerChromium::setContentsToImage):
51829        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
51830        (WebCore::GraphicsLayerChromium::addAnimation):
51831        (WebCore::GraphicsLayerChromium::pauseAnimation):
51832        (WebCore::GraphicsLayerChromium::removeAnimation):
51833        (WebCore::GraphicsLayerChromium::suspendAnimations):
51834        (WebCore::GraphicsLayerChromium::resumeAnimations):
51835        (WebCore::GraphicsLayerChromium::addLinkHighlight):
51836        (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
51837        (WebCore::GraphicsLayerChromium::setContentsToMedia):
51838        (WebCore::GraphicsLayerChromium::primaryLayer):
51839        (WebCore::GraphicsLayerChromium::platformLayer):
51840        (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
51841        (WebCore::GraphicsLayerChromium::setDebugBorder):
51842        (WebCore::GraphicsLayerChromium::updateChildList):
51843        (WebCore::GraphicsLayerChromium::updateLayerPosition):
51844        (WebCore::GraphicsLayerChromium::updateLayerSize):
51845        (WebCore::GraphicsLayerChromium::updateAnchorPoint):
51846        (WebCore::GraphicsLayerChromium::updateTransform):
51847        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
51848        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
51849        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
51850        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
51851        (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
51852        (WebCore::GraphicsLayerChromium::updateContentsRect):
51853        (WebCore::GraphicsLayerChromium::updateContentsScale):
51854        (WebCore::GraphicsLayerChromium::setupContentsLayer):
51855        * platform/graphics/chromium/GraphicsLayerChromium.h:
51856        (WebCore::GraphicsLayerChromium::hasContentsLayer):
51857        (GraphicsLayerChromium):
51858        (WebCore::GraphicsLayerChromium::contentsLayer):
51859        * platform/graphics/chromium/LayerChromium.cpp:
51860        (WebCore::LayerChromium::rootLayer):
51861        * platform/graphics/chromium/LayerChromium.h:
51862
518632012-08-21  Pavel Feldman  <pfeldman@chromium.org>
51864
51865        Web Inspector: do not use window's eval in InjectedScript
51866        https://bugs.webkit.org/show_bug.cgi?id=94610
51867
51868        Reviewed by Yury Semikhatsky.
51869
51870        Otherwise, inspector does not work when eval is overriden.
51871
51872        Test: inspector/console/console-eval-fake.html
51873
51874        * bindings/js/JSInjectedScriptHostCustom.cpp:
51875        (WebCore::JSInjectedScriptHost::evaluate):
51876        (WebCore):
51877        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
51878        (WebCore::V8InjectedScriptHost::evaluateCallback):
51879        (WebCore):
51880        * inspector/InjectedScriptHost.idl:
51881        * inspector/InjectedScriptSource.js:
51882        (.):
51883
518842012-08-21  Adam Barth  <abarth@webkit.org>
51885
51886        Implement JSDOMWindow*::allowsAccessFrom* in terms of BindingSecurity
51887        https://bugs.webkit.org/show_bug.cgi?id=93407
51888
51889        Reviewed by Eric Seidel.
51890
51891        This patch removes allowsAccessFrom and implements the security checks
51892        in terms of shouldAllowAccessToDOMWindow directly.
51893
51894        * bindings/generic/BindingSecurity.cpp:
51895        (WebCore::BindingSecurity::shouldAllowAccessToDOMWindow):
51896        (WebCore):
51897        * bindings/generic/BindingSecurity.h:
51898        (BindingSecurity):
51899        * bindings/js/JSDOMBinding.cpp:
51900        (WebCore::shouldAllowAccessToFrame):
51901        (WebCore):
51902        (WebCore::shouldAllowAccessToDOMWindow):
51903        * bindings/js/JSDOMBinding.h:
51904        (WebCore):
51905        * bindings/js/JSDOMWindowBase.cpp:
51906        (WebCore::shouldAllowAccessFrom):
51907        (WebCore):
51908        * bindings/js/JSDOMWindowBase.h:
51909        (JSDOMWindowBase):
51910        * bindings/js/JSDOMWindowCustom.cpp:
51911        (WebCore::namedItemGetter):
51912        (WebCore::JSDOMWindow::getOwnPropertySlot):
51913        (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
51914        (WebCore::JSDOMWindow::put):
51915        (WebCore::JSDOMWindow::deleteProperty):
51916        (WebCore::JSDOMWindow::getPropertyNames):
51917        (WebCore::JSDOMWindow::getOwnPropertyNames):
51918        (WebCore::JSDOMWindow::defineOwnProperty):
51919        (WebCore::JSDOMWindow::setLocation):
51920        * bindings/js/JSDOMWindowCustom.h:
51921        * bindings/js/JSInjectedScriptManager.cpp:
51922        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
51923        * bindings/objc/WebScriptObject.mm:
51924        (-[WebScriptObject _isSafeScript]):
51925        * bindings/scripts/CodeGeneratorJS.pm:
51926        (GenerateGetOwnPropertyDescriptorBody):
51927        (GenerateImplementation):
51928
519292012-08-21  Dan Bernstein  <mitz@apple.com>
51930
51931        <rdar://problem/12104508> TextIterator takes O(n^2) to iterate over n empty blocks
51932        https://bugs.webkit.org/show_bug.cgi?id=94429
51933
51934        Reviewed by Sam Weinig.
51935
51936        No new tests, because behavior is unchanged.
51937
51938        * editing/TextIterator.cpp:
51939        (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Enhanced the check for nodes that
51940        cannot contain VisiblePosition to also check for zero-height blocks.
51941
519422012-08-21  'Pavel Feldman'  <pfeldman@chromium.org>
51943
51944        Web Inspector: break on exceptions decoration was lost, restoring.
51945
51946        Not reviewed - a follow up to 126012.
51947
51948        * inspector/front-end/ScriptsPanel.js:
51949        (WebInspector.ScriptsPanel.prototype._pauseOnExceptionStateChanged.get switch):
51950        (WebInspector.ScriptsPanel.prototype._pauseOnExceptionStateChanged):
51951
519522012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
51953
51954        Unreviewed, rolling out r126146.
51955        http://trac.webkit.org/changeset/126146
51956        https://bugs.webkit.org/show_bug.cgi?id=94606
51957
51958        It made all tests assert (Requested by Ossy on #webkit).
51959
51960        * bridge/qt/qt_runtime.cpp:
51961        (JSC::Bindings::prototypeForSignalsAndSlots):
51962        (JSC::Bindings::QtRuntimeMethod::call):
51963        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
51964        (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
51965        * bridge/qt/qt_runtime.h:
51966        (QtRuntimeMethod):
51967
519682012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
51969
51970        Unreviewed, rolling out r126150.
51971        http://trac.webkit.org/changeset/126150
51972        https://bugs.webkit.org/show_bug.cgi?id=94605
51973
51974        Breaks 73 layout tests on chromium.webkit builder (Requested
51975        by pfeldman on #webkit).
51976
51977        * UseV8.cmake:
51978        * WebCore.gypi:
51979        * bindings/v8/V8Binding.cpp:
51980        (StringTraits):
51981        (WebCore):
51982        (WebCore::v8StringToWebCoreString):
51983        (WebCore::int32ToWebCoreStringFast):
51984        (WebCore::int32ToWebCoreString):
51985        * bindings/v8/V8Binding.h:
51986        (WebCore):
51987        (V8ParameterBase):
51988        (WebCore::V8ParameterBase::operator String):
51989        (WebCore::V8ParameterBase::operator AtomicString):
51990        (WebCore::V8ParameterBase::V8ParameterBase):
51991        (WebCore::V8ParameterBase::prepareBase):
51992        (WebCore::V8ParameterBase::object):
51993        (WebCore::V8ParameterBase::setString):
51994        (WebCore::V8ParameterBase::toString):
51995        (WebCore::::prepare):
51996        * bindings/v8/V8StringResource.cpp: Removed.
51997        * bindings/v8/V8StringResource.h: Removed.
51998
519992012-08-21  Philippe Normand  <pnormand@igalia.com>
52000
52001        Early returns in MediaPlayer setters
52002        https://bugs.webkit.org/show_bug.cgi?id=87304
52003
52004        Calls to the MediaPlayerPrivate implementation can be avoided if
52005        the value to set and the current value are equal.
52006
52007        Reviewed by Eric Carlson.
52008
52009        * platform/graphics/MediaPlayer.cpp:
52010        (WebCore::MediaPlayer::loadWithNextMediaEngine): Once a new
52011        MediaPlayerPrivate has been created propagate the playback rate
52012        value to it, as it is done for some other attributes like preload
52013        or preservePitch.
52014        (WebCore::MediaPlayer::setVolume): Perform action only if current
52015        and new values differ.
52016        (WebCore::MediaPlayer::setMuted): Ditto.
52017        (WebCore::MediaPlayer::setPreservesPitch): Ditto.
52018        (WebCore::MediaPlayer::setSize): Ditto.
52019        (WebCore::MediaPlayer::setVisible): Ditto.
52020        (WebCore::MediaPlayer::setPreload): Ditto.
52021
520222012-08-21  Ilya Tikhonovsky  <loislo@chromium.org>
52023
52024        Web Inspector: NMI: OwnPtr<T> was counted as RefPtr<T>
52025        https://bugs.webkit.org/show_bug.cgi?id=94599
52026
52027        Reviewed by Yury Semikhatsky.
52028
52029        * dom/MemoryInstrumentation.h:
52030        (WebCore::MemoryObjectInfo::MemoryObjectInfo):
52031        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
52032        (WebCore::MemoryInstrumentation::addObjectImpl):
52033
520342012-08-21  Ilya Tikhonovsky  <loislo@chromium.org>
52035
52036        Web Inspector: NMI: rename addMember for strings and KURL to addInstrumentedMember.
52037        https://bugs.webkit.org/show_bug.cgi?id=94580
52038
52039        Reviewed by Yury Semikhatsky.
52040
52041        Drive by fix: immutable ElementAttrybuteData uses the same trick with placement new as in StylePropertySet.
52042
52043        * css/CSSCanvasValue.cpp:
52044        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
52045        * css/CSSCharsetRule.cpp:
52046        (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
52047        * css/CSSFontFaceSrcValue.cpp:
52048        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
52049        * css/CSSFunctionValue.cpp:
52050        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
52051        * css/CSSImageSetValue.cpp:
52052        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
52053        * css/CSSImageValue.cpp:
52054        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
52055        * css/CSSPrimitiveValue.cpp:
52056        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52057        * css/CSSStyleSheet.cpp:
52058        (WebCore::CSSStyleSheet::reportMemoryUsage):
52059        * css/CSSValue.cpp:
52060        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
52061        * css/CSSVariableValue.h:
52062        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
52063        * css/FontFeatureValue.cpp:
52064        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
52065        * css/MediaQuery.cpp:
52066        (WebCore::MediaQuery::reportMemoryUsage):
52067        * css/MediaQueryExp.cpp:
52068        (WebCore::MediaQueryExp::reportMemoryUsage):
52069        * css/StyleRuleImport.cpp:
52070        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
52071        * css/StyleSheetContents.cpp:
52072        (WebCore::StyleSheetContents::reportMemoryUsage):
52073        * css/WebKitCSSKeyframeRule.cpp:
52074        (WebCore::StyleKeyframe::reportMemoryUsage):
52075        * css/WebKitCSSKeyframesRule.cpp:
52076        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
52077        * css/WebKitCSSSVGDocumentValue.cpp:
52078        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
52079        * css/WebKitCSSShaderValue.cpp:
52080        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
52081        * dom/Attribute.h:
52082        (WebCore::Attribute::reportMemoryUsage):
52083        * dom/CharacterData.cpp:
52084        (WebCore::CharacterData::reportMemoryUsage):
52085        * dom/Document.cpp:
52086        (WebCore::Document::reportMemoryUsage):
52087        * dom/ElementAttributeData.cpp:
52088        (WebCore::immutableElementAttributeDataSize):
52089        (WebCore):
52090        (WebCore::ElementAttributeData::createImmutable):
52091        (WebCore::ElementAttributeData::reportMemoryUsage):
52092        * dom/Event.cpp:
52093        (WebCore::Event::reportMemoryUsage):
52094        * dom/MemoryInstrumentation.cpp:
52095        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
52096        * dom/MemoryInstrumentation.h:
52097        (MemoryInstrumentation):
52098        * dom/QualifiedName.h:
52099        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
52100        * loader/DocumentLoader.cpp:
52101        (WebCore::DocumentLoader::reportMemoryUsage):
52102        * loader/FrameLoader.cpp:
52103        (WebCore::FrameLoader::reportMemoryUsage):
52104        * loader/SubstituteData.cpp:
52105        (WebCore::SubstituteData::reportMemoryUsage):
52106        * loader/cache/CachedCSSStyleSheet.cpp:
52107        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
52108        * loader/cache/CachedResource.cpp:
52109        (WebCore::CachedResource::reportMemoryUsage):
52110        * loader/cache/CachedResourceLoader.cpp:
52111        (WebCore::CachedResourceLoader::reportMemoryUsage):
52112        * loader/cache/CachedScript.cpp:
52113        (WebCore::CachedScript::reportMemoryUsage):
52114        * loader/cache/CachedShader.cpp:
52115        (WebCore::CachedShader::reportMemoryUsage):
52116        * loader/cache/CachedXSLStyleSheet.cpp:
52117        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
52118        * loader/cache/MemoryCache.cpp:
52119        (WebCore::MemoryCache::reportMemoryUsage):
52120        * platform/network/ResourceRequestBase.cpp:
52121        (WebCore::ResourceRequestBase::reportMemoryUsage):
52122        * platform/network/ResourceResponseBase.cpp:
52123        (WebCore::ResourceResponseBase::reportMemoryUsage):
52124        * rendering/style/StyleRareInheritedData.cpp:
52125        (WebCore::StyleRareInheritedData::reportMemoryUsage):
52126        * rendering/style/StyleRareNonInheritedData.cpp:
52127        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
52128        * svg/SVGPaint.cpp:
52129        (WebCore::SVGPaint::reportDescendantMemoryUsage):
52130
521312012-08-20  Kentaro Hara  <haraken@chromium.org>
52132
52133        [V8] Move String related code in V8Binding to a separate file
52134        https://bugs.webkit.org/show_bug.cgi?id=94571
52135
52136        Reviewed by Adam Barth.
52137
52138        This patch moves V8Parameter, V8ParameterBase and String related code
52139        in V8Binding to a separate file.
52140
52141        No tests. No change in behavior.
52142
52143        * UseV8.cmake:
52144        * WebCore.gypi:
52145        * bindings/v8/V8Binding.cpp:
52146        * bindings/v8/V8Binding.h:
52147        * bindings/v8/V8StringResource.cpp: Added.
52148        * bindings/v8/V8StringResource.h: Added.
52149        (WebCore):
52150
521512012-08-17  Simon Hausmann  <simon.hausmann@nokia.com>
52152
52153        [Qt] REGRESSION(r125428): fast/profiler/nested-start-and-stop-profiler.html fails
52154        https://bugs.webkit.org/show_bug.cgi?id=93897
52155
52156        Reviewed by Kenneth Rohde Christiansen.
52157
52158        Before r125428 run-time methods (wrapped signals, slots or invokable functions) were subclasses of
52159        JSInternalFunction and therefore real function objects in the JavaScript sense. r125428 changed them
52160        to be just callable objects, but they did not have Function.prototype as prototype anymore for example
52161        nor was their name correct (resulting in a layout test failure).
52162
52163        This patch changes run-time methods back to being real function objects that have a correct name and
52164        have Function.prototype in their prototype change
52165
52166        The objects returned by JSObjectMakeFunctionWithCallbackInjected are light-weight internal function objects
52167        that do not support JSObject{Set/Get}Private. Therefore we inject our own prototype right before the
52168        Function.prototype prototype, which uses private data to store a pointer to our C++ QtRuntimeMethod object.
52169        This complicates the retrieval of the pointer to that instance slightly, which is why this patch introduces
52170        the toRuntimeMethod convenience function that looks up our prototype first and does a check for type-safety.
52171
52172        At the same time the patch removes the length properties from the run-time method itself as well as connect/disconnect.
52173        The length property on a function signifies the number of arguments, but in all three cases that number is
52174        actually variable, because of overloading. That is why we choose not to expose it in the first place.
52175
52176        * bridge/qt/qt_runtime.cpp:
52177        (JSC::Bindings::prototypeForSignalsAndSlots):
52178        (JSC::Bindings::QtRuntimeMethod::call):
52179        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
52180        (JSC::Bindings::QtRuntimeMethod::toRuntimeMethod):
52181        (Bindings):
52182        (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
52183        * bridge/qt/qt_runtime.h:
52184        (QtRuntimeMethod): Remove unused member variables.
52185
521862012-08-21  Simon Hausmann  <simon.hausmann@nokia.com>
52187
52188        Unreviewed build fix for newer Qt 5 versions: QVariant::WidgetStar has been removed,
52189        but fortunately QMetaType has a much more powerful function available for us to use.
52190
52191        Thanks to Jedrzej Nowacki for the hint :)
52192
52193        * bridge/qt/qt_runtime.cpp:
52194        (JSC::Bindings::convertQVariantToValue):
52195
521962012-08-21  Kentaro Hara  <haraken@chromium.org>
52197
52198        [V8] Remove String::New() from V8 binding (Part 1)
52199        https://bugs.webkit.org/show_bug.cgi?id=94574
52200
52201        Reviewed by Adam Barth.
52202
52203        Currently, V8 binding mixes String::New(), String::NewSymbol() and v8String().
52204        String::New() should be replaced with String::NewSymbol() or v8String(),
52205        depending on use cases:
52206
52207        - If it is a symbol (e.g. attribute name, constant string, etc),
52208        String::NewSymbol() should be used. Cache of created symbols is managed by V8.
52209
52210        - If it is not a symbol, v8String() should be used. Cache of created strings
52211        is managed by V8 binding (i.e. StringCache class).
52212
52213        This patch replaces String::New() for symbols with String::NewSymbol().
52214
52215        No tests. No change in behavior.
52216
52217        * bindings/scripts/CodeGeneratorV8.pm:
52218        (GenerateNamedConstructorCallback):
52219        (GenerateNonStandardFunction):
52220        (GenerateImplementation):
52221        * bindings/scripts/test/V8/V8Float64Array.cpp:
52222        (WebCore::ConfigureV8Float64ArrayTemplate):
52223        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
52224        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
52225        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
52226        (WebCore::ConfigureV8TestEventTargetTemplate):
52227        * bindings/scripts/test/V8/V8TestInterface.cpp:
52228        (WebCore::ConfigureV8TestInterfaceTemplate):
52229        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
52230        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
52231        * bindings/scripts/test/V8/V8TestObj.cpp:
52232        (WebCore::ConfigureV8TestObjTemplate):
52233        (WebCore::V8TestObj::installPerContextProperties):
52234        * bindings/v8/V8DOMConfiguration.cpp:
52235        (WebCore::V8DOMConfiguration::batchConfigureConstants):
52236        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
52237        (WebCore::V8DOMConfiguration::configureTemplate):
52238        * bindings/v8/V8DOMConfiguration.h:
52239        (WebCore::V8DOMConfiguration::configureAttribute):
52240
522412012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
52242
52243        Unreviewed, rolling out r126028.
52244        http://trac.webkit.org/changeset/126028
52245        https://bugs.webkit.org/show_bug.cgi?id=94576
52246
52247        it broke compilation on apple webkit win. (Requested by loislo
52248        on #webkit).
52249
52250        * inspector/CodeGeneratorInspector.py:
52251        * inspector/InjectedScriptWebGLModule.cpp:
52252        (WebCore::InjectedScriptWebGLModule::captureFrame):
52253        * inspector/InjectedScriptWebGLModule.h:
52254        (InjectedScriptWebGLModule):
52255        * inspector/Inspector.json:
52256        * inspector/InspectorController.cpp:
52257        (WebCore::InspectorController::InspectorController):
52258        * inspector/InspectorWebGLAgent.cpp:
52259        (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
52260        * inspector/InspectorWebGLAgent.h:
52261        (WebCore):
52262        (WebCore::InspectorWebGLAgent::create):
52263        (InspectorWebGLAgent):
52264
522652012-08-20  Ilya Tikhonovsky  <loislo@chromium.org>
52266
52267        Web Inspector: NMI: wrong size was reported for immutable StylePropertySet
52268        https://bugs.webkit.org/show_bug.cgi?id=94489
52269
52270        Reviewed by Yury Semikhatsky.
52271
52272        Immutable StylePropertySet is created via placement new.
52273        The rest of the allocated buffer is used as an array of CSSProperty.
52274        This means that we don't need to report m_properties member but have to report actual size of the buffer
52275        used for both, the object and CSSProperty array.
52276
52277        * css/StylePropertySet.cpp:
52278        (WebCore::immutableStylePropertySetSize):
52279        (WebCore):
52280        (WebCore::StylePropertySet::createImmutable):
52281        (WebCore::StylePropertySet::reportMemoryUsage):
52282        * dom/MemoryInstrumentation.h:
52283        (WebCore::MemoryObjectInfo::reportObjectInfo):
52284        (WebCore::MemoryClassInfo::MemoryClassInfo):
52285
522862012-08-20  Kentaro Hara  <haraken@chromium.org>
52287
52288        [V8] Move handleOutOfMemory() from V8Proxy to V8Binding
52289        https://bugs.webkit.org/show_bug.cgi?id=94563
52290
52291        Reviewed by Adam Barth.
52292
52293        To kill V8Proxy, this patch moves handleOutOfMemory() from V8Proxy to V8Binding.
52294
52295        No tests. No change in behavior.
52296
52297        * bindings/v8/V8AbstractEventListener.cpp:
52298        (WebCore::V8AbstractEventListener::invokeEventHandler):
52299        * bindings/v8/V8Binding.cpp:
52300        (WebCore::handleOutOfMemory):
52301        (WebCore):
52302        * bindings/v8/V8Binding.h:
52303        (WebCore):
52304        * bindings/v8/V8Proxy.cpp:
52305        * bindings/v8/V8Proxy.h:
52306        (V8Proxy):
52307        * bindings/v8/WorkerContextExecutionProxy.cpp:
52308        (WebCore::WorkerContextExecutionProxy::runScript):
52309
523102012-08-20  MORITA Hajime  <morrita@google.com>
52311
52312        InsertionShouldCallDidNotifyDescendantInsertions should be merged to InsertionShouldCallDidNotifySubtreeInsertions
52313        https://bugs.webkit.org/show_bug.cgi?id=94570
52314
52315        Reviewed by Ryosuke Niwa.
52316
52317        Node::didNotifySubtreeInsertions() and Node::didNotifyDescendantInsertions() are used for similar purpose and
52318        we could unify them to the safer one, which is didNotifySubtreeInsertions().
52319
52320        This change replaces the last didNotifyDescendantInsertions() implementation in HTMLBodyElement with didNotifySubtreeInsertions()
52321        then eliminates related code which is no longer used.
52322
52323        No new tests. Covered by existing tests.
52324
52325        * dom/ContainerNodeAlgorithms.h:
52326        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
52327        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
52328        * dom/Node.h: Removed didNotifyDescendantInsertions() stub and InsertionShouldCallDidNotifyDescendantInsertions enum value.
52329        * html/HTMLBodyElement.cpp:
52330        (WebCore::HTMLBodyElement::insertedInto):
52331        (WebCore::HTMLBodyElement::didNotifySubtreeInsertions): morphed from didNotifyDescendantInsertions()
52332        * html/HTMLBodyElement.h:
52333        (HTMLBodyElement):
52334        * html/HTMLFormElement.cpp:
52335        (WebCore::HTMLFormElement::insertedInto): Remove useless InsertionShouldCallDidNotifyDescendantInsertions return statement.
52336
523372012-08-20  Rob Buis  <rbuis@rim.com>
52338
52339        Reduce GradientAttributes object size
52340        https://bugs.webkit.org/show_bug.cgi?id=86151
52341
52342        Reviewed by Eric Seidel.
52343
52344        This reduces GradientAttributes in memory size by 8 bytes on my 64-bit system. It also
52345        reduces the size of RenderSVGResourceLinearGradient and RenderSVGResourceRadialGradient.
52346
52347        * svg/GradientAttributes.h:
52348        (WebCore::GradientAttributes::spreadMethod):
52349        (WebCore::GradientAttributes::gradientUnits):
52350        (GradientAttributes):
52351        (WebCore):
52352        (SameSizeAsGradientAttributes):
52353
523542012-08-20  Keishi Hattori  <keishi@webkit.org>
52355
52356        Clicking input type=range with padding or border sets wrong value
52357        https://bugs.webkit.org/show_bug.cgi?id=94473
52358
52359        Reviewed by Kent Tamura.
52360
52361        We should take the padding and border width into account when calculating the value from the mouse location.
52362
52363        Test: fast/forms/range/range-hit-test-with-padding.html
52364
52365        * html/shadow/SliderThumbElement.cpp:
52366        (WebCore::sliderTrackElementOf):
52367        (WebCore):
52368        (WebCore::SliderThumbElement::setPositionFromPoint):
52369        * html/shadow/SliderThumbElement.h:
52370        (WebCore):
52371
523722012-08-20  MORITA Hajime  <morrita@google.com>
52373
52374        load event shouldn't fired during node insertion traversals.
52375        https://bugs.webkit.org/show_bug.cgi?id=94447
52376
52377        Reviewed by Ryosuke Niwa.
52378
52379        HTMLFrameElementBase::didNotifyDescendantInsertions() with empty @src
52380        can trigger a load event during ChildNodeInsertionNotifier
52381        traversal, whose handler can make DOM tree state inconsistent.
52382
52383        This change introduces a post traversal hook,
52384        didNotifySubtreeInsertions(), for the insertion traversal and
52385        replaces the problematic didNotifyDescendantInsertions() with it.
52386
52387        Since didNotifySubtreeInsertions() is invoked after the traversal,
52388        it is safe for event handlers to mutate the tree.
52389
52390        Test: fast/frames/iframe-onload-and-domnodeinserted.html
52391
52392        * dom/ContainerNodeAlgorithms.h:
52393        (ChildNodeInsertionNotifier): Added a post subtree notification.
52394        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
52395        (WebCore::ChildNodeInsertionNotifier::notify):
52396        * dom/Node.h:
52397        (WebCore::Node::didNotifySubtreeInsertions): Newly added.
52398        * html/HTMLFrameElementBase.cpp:
52399        (WebCore::HTMLFrameElementBase::insertedInto): Now returns InsertionShouldCallDidNotifySubtreeInsertions
52400        (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Replaced didNotifyDescendantInsertions()
52401        * html/HTMLFrameElementBase.h:
52402        (HTMLFrameElementBase):
52403
524042012-08-20  Shinya Kawanaka  <shinyak@chromium.org> 
52405
52406        Regression(r126127): Build break on multiple platforms
52407        https://bugs.webkit.org/show_bug.cgi?id=94568
52408
52409        Reviewed by Hajime Morita.
52410
52411        Notation::cloneNode should also have ExceptionCode. We add it in this patch.
52412
52413        No new tests, no change in behavior.
52414
52415        * dom/Notation.cpp:
52416        (WebCore::Notation::cloneNode):
52417        * dom/Notation.h:
52418        (Notation):
52419
524202012-08-20  Shinya Kawanaka  <shinyak@chromium.org>
52421
52422        ShadowRoot.cloneNode() must always throw a DATA_CLONE_ERR exception.
52423        https://bugs.webkit.org/show_bug.cgi?id=91704
52424
52425        Reviewed by Dimitri Glazkov.
52426
52427        According to the spec, ShadowRoot.cloneNode() should throw a DATA_CLONE_ERR exception. The existing implementation
52428        returned null object instead.
52429
52430        We change the cloneNode() interface so that we can throw an exception from cloneNode().
52431
52432        Test: fast/dom/shadow/shadowroot-clonenode.html
52433
52434        * dom/Attr.cpp:
52435        (WebCore::Attr::cloneNode):
52436        * dom/Attr.h:
52437        * dom/CDATASection.cpp:
52438        (WebCore::CDATASection::cloneNode):
52439        * dom/CDATASection.h:
52440        (CDATASection):
52441        * dom/Comment.cpp:
52442        (WebCore::Comment::cloneNode):
52443        * dom/Comment.h:
52444        (Comment):
52445        * dom/Document.cpp:
52446        (WebCore::Document::cloneNode):
52447        * dom/Document.h:
52448        (Document):
52449        * dom/DocumentFragment.cpp:
52450        (WebCore::DocumentFragment::cloneNode):
52451        * dom/DocumentFragment.h:
52452        (DocumentFragment):
52453        * dom/DocumentType.cpp:
52454        (WebCore::DocumentType::cloneNode):
52455        * dom/DocumentType.h:
52456        (DocumentType):
52457        * dom/Element.cpp:
52458        (WebCore::Element::cloneNode):
52459        * dom/Element.h:
52460        (Element):
52461        * dom/EntityReference.cpp:
52462        (WebCore::EntityReference::cloneNode):
52463        * dom/EntityReference.h:
52464        (EntityReference):
52465        * dom/Node.h:
52466        (Node):
52467        (WebCore::Node::cloneNode):
52468        * dom/Node.idl:
52469        * dom/ProcessingInstruction.cpp:
52470        (WebCore::ProcessingInstruction::cloneNode):
52471        * dom/ProcessingInstruction.h:
52472        (ProcessingInstruction):
52473        * dom/ShadowRoot.cpp:
52474        (WebCore::ShadowRoot::cloneNode):
52475        * dom/ShadowRoot.h:
52476        (ShadowRoot):
52477        * dom/Text.cpp:
52478        (WebCore::Text::cloneNode):
52479        * dom/Text.h:
52480        (Text):
52481
524822012-08-20  Kent Tamura  <tkent@chromium.org>
52483
52484        [Chromium-win] Use native digits in parsing/formatting dates in the textfield part of input[type=date]
52485        https://bugs.webkit.org/show_bug.cgi?id=94281
52486
52487        Reviewed by Hajime Morita.
52488
52489        Tests: Add some cases to Source/WebKit/chromium/tests/LocaleWinTest.cpp
52490
52491        * platform/text/LocaleWin.cpp:
52492        (WebCore::LocaleWin::isLocalizedDigit): A helper for parseNumber(). This
52493        return true if the specified character is one of native digits.
52494        (WebCore::LocaleWin::parseNumber):
52495        Try to parse ASCII digits, then try to parse native digtis. This
52496        becomes a member of LocaleWin because it uses
52497        convertFromLocalizedNumber().
52498        (WebCore::LocaleWin::appendNumber): Apply convertToLocalizedNumber().
52499        (WebCore::LocaleWin::appendTwoDigitsNumber): ditto.
52500        (WebCore::LocaleWin::appendFourDigitsNumber): ditto.
52501        * platform/text/LocaleWin.h:
52502        (LocaleWin):
52503        - Make some static functions member functions of LocaleWin.
52504        - Add isLocalizedDigit().
52505
525062012-08-20  Kentaro Hara  <haraken@chromium.org>
52507
52508        Rename collectGarbageIfNecessary() to hintForCollectGarbage()
52509        https://bugs.webkit.org/show_bug.cgi?id=94455
52510
52511        Reviewed by Adam Barth.
52512
52513        This is a follow-up patch for r126098.
52514
52515        collectGarbage() always collects garbage. collectGarbageIfNecessary() just sends
52516        an idle notification to V8, which is just a hint for V8 to trigger GC.
52517        To clarify the difference, this patch renames collectGarbageIfNecessary()
52518        to hintForCollectGarbage().
52519
52520        No tests. No change in behavior.
52521
52522        * bindings/v8/ScriptController.cpp:
52523        (WebCore::ScriptController::clearForClose):
52524        (WebCore::ScriptController::clearForNavigation):
52525        * bindings/v8/V8GCController.cpp:
52526        (WebCore::V8GCController::hintForCollectGarbage):
52527        * bindings/v8/V8GCController.h:
52528        (V8GCController):
52529
525302012-08-20  Alexandre Elias  <aelias@google.com>
52531
52532        [chromium] Texture layer should not generate zero textureId quads
52533        https://bugs.webkit.org/show_bug.cgi?id=94550
52534
52535        Reviewed by Adrienne Walker.
52536
52537        After a context loss, CCTextureLayerImpl would clear its textureId
52538        but continued to produce external resources and quads with the zero
52539        textureid.  Add early returns so that CCTextureLayerImpl becomes
52540        inert after a context loss.
52541
52542        Added assertion in read lock so that dontUseOldResourcesAfterLostContext
52543        test catches the problem.
52544
52545        * platform/graphics/chromium/cc/CCResourceProvider.h:
52546        (WebCore::CCScopedLockResourceForRead::CCScopedLockResourceForRead):
52547        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
52548        (WebCore::CCTextureLayerImpl::willDraw):
52549        (WebCore::CCTextureLayerImpl::appendQuads):
52550        (WebCore::CCTextureLayerImpl::didDraw):
52551        (WebCore::CCTextureLayerImpl::didLoseContext):
52552
525532012-08-20  Kent Tamura  <tkent@chromium.org>
52554
52555        [Chromium] Make the popup positioning code testable
52556        https://bugs.webkit.org/show_bug.cgi?id=94086
52557
52558        Reviewed by Hajime Morita.
52559
52560        Introduce PopupContent interface in order to make a mock.
52561
52562        * platform/chromium/PopupContainer.cpp:
52563        (WebCore::PopupContainer::layoutAndCalculateWidgetRectInternal):
52564         - Make it a member of PopupContainer to avoid namespace pollution.
52565         - Use PopupContent interface.
52566         - Make the code clearer.
52567        * platform/chromium/PopupContainer.h:
52568        (PopupContainer): Expose layoutAndCalculateWidgetRectInternal.
52569
52570        * platform/chromium/PopupListBox.cpp:
52571        (WebCore::PopupListBox::popupContentHeight): Added.
52572        * platform/chromium/PopupListBox.h:
52573        (PopupContent): Added.
52574        (PopupListBox): Inherit PopupContent.
52575        (WebCore::PopupListBox::~PopupListBox):
52576        Make this virtual because this class has some virtual functions.
52577
525782012-08-20  Tom Sepez  <tsepez@chromium.org>
52579
52580        XSSAuditor too tolerant of injected data: URLs from other "hostless" schemes.
52581        https://bugs.webkit.org/show_bug.cgi?id=94547
52582
52583        Reviewed by Adam Barth.
52584
52585        Check that there is a host before making same-host tests.
52586
52587        Test: fast/frames/xss-auditor-handles-file-urls.html
52588
52589        * html/parser/XSSAuditor.cpp:
52590        (WebCore::XSSAuditor::eraseAttributeIfInjected):
52591        (WebCore::XSSAuditor::isLikelySafeResource):
52592        * html/parser/XSSAuditor.h:
52593
525942012-08-20  Elliott Sprehn  <esprehn@chromium.org>
52595
52596        Removed dead code from a very old iteration of CSS counters.
52597        https://bugs.webkit.org/show_bug.cgi?id=94539
52598
52599        Reviewed by Eric Seidel.
52600
52601        Remove two unused shorts that were on StyleRareNonInheritedData that are no longer used.
52602
52603        No tests, this just removes dead code.
52604
52605        * rendering/style/RenderStyle.cpp:
52606        (WebCore::RenderStyle::diff):
52607        * rendering/style/RenderStyle.h:
52608        * rendering/style/StyleRareNonInheritedData.cpp:
52609        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52610        (WebCore::StyleRareNonInheritedData::operator==):
52611        * rendering/style/StyleRareNonInheritedData.h:
52612        (StyleRareNonInheritedData):
52613
526142012-08-20  Luke Macpherson   <macpherson@chromium.org>
52615
52616        Fix inspector with variables enabled and enable inspector variables tests by default.
52617        https://bugs.webkit.org/show_bug.cgi?id=94296
52618
52619        Reviewed by Hajime Morita.
52620
52621        Change from using getPropertyName static function to CSSProperty::cssName(), which can resolve variables if needed.
52622
52623        Covered by inspector/styles/variables.
52624
52625        * css/PropertySetCSSStyleDeclaration.cpp:
52626        (WebCore::PropertySetCSSStyleDeclaration::item):
52627
526282012-08-20  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
52629
52630        Cancel the outstanding vibration pattern if the pattern is 0 or an empty list
52631        https://bugs.webkit.org/show_bug.cgi?id=94085
52632
52633        Reviewed by Kentaro Hara.
52634
52635        vibrate() method to stop the device from vibrating is getting called before the
52636        vibration is in effect. Hence, it is failing to cancel the pre-existing instance
52637        of processing vibration patterns. 
52638
52639        This patch cancel the pre-existing instance of the processing vibration patterns
52640        always when the vibrate() method called with pattern 0 or an empty list.
52641
52642        No new tests since there is no return value in the Vibration API to test this
52643        particular case. Existing test fast/dom/navigator-vibration.html covers testing of
52644        the Vibration API.
52645
52646        * Modules/vibration/Vibration.cpp:
52647        (WebCore::Vibration::vibrate):
52648
526492012-08-20  Adam Klein  <adamk@chromium.org>
52650
52651        Allow MutationEvents to be enabled/disabled per context
52652        https://bugs.webkit.org/show_bug.cgi?id=94016
52653
52654        Reviewed by Ojan Vafai.
52655
52656        Chromium wants to be able to turn MutationEvents off for some
52657        Documents (e.g., for Apps V2). This patch makes the firing (and the
52658        constructor on DOMWindow) of MutationEvents a per-context feature, with
52659        the default being enabled.
52660
52661        No functional change (since the feature defaults to enabled).
52662        It's not clear to me that there's a way to test this in DRT without
52663        adding a special hook for this one feature. It will be tested in
52664        Chromium once it's implemented in Chromium.
52665
52666        * dom/ContextFeatures.cpp:
52667        (WebCore::ContextFeatures::mutationEventsEnabled): Add new method,
52668        with the default being enabled.
52669        * dom/ContextFeatures.h:
52670        * dom/Document.cpp:
52671        (WebCore::Document::addMutationEventListenerTypeIfEnabled): Add new
52672        method that checks the ContextFeature flag before adding the passed-in
52673        listener type.
52674        (WebCore::Document::addListenerTypeIfNeeded): Call the new method
52675        instead of addListenerType for MutationEvent types.
52676        * dom/Document.h:
52677        (WebCore::Document::addListenerType): Make private to avoid anyone
52678        outside Document from enabling MutationEvent listeners. All callers
52679        must go through addListenerTypeIfNeeded.
52680
526812012-08-20  Levi Weintraub  <leviw@chromium.org>
52682
52683        [Sub-pixel Layout] Block selection gap repainting can leave one pixel gaps
52684        https://bugs.webkit.org/show_bug.cgi?id=94526
52685
52686        Reviewed by Eric Seidel.
52687
52688        Reverting RenderLayer's m_blockSelectionGapsBounds to be an IntRect and applying enclosingIntRect to the
52689        gapRects added to the bounds. Previously, we'd end multiple block gaps and pixel snap the result, which
52690        can yield results one pixel off in width and height.
52691
52692        Covered by existing tests. This undoes some of the rebaselining from when sub-pixel was enabled for Chromium.
52693
52694        * rendering/RenderLayer.cpp:
52695        * rendering/RenderLayer.h:
52696
526972012-08-20  Kentaro Hara  <haraken@chromium.org>
52698
52699        [V8] Move instrumentedCallFunction() from V8Proxy to ScriptController
52700        https://bugs.webkit.org/show_bug.cgi?id=94456
52701
52702        Reviewed by Adam Barth.
52703
52704        To kill V8Proxy, this patch moves instrumentedCallFunction() from V8Proxy
52705        to ScriptController. Also this patch renames instrumentedCallFunction()
52706        to callFunctionWithInstrumentation(), for consistency with callFunction().
52707
52708        No tests. No change in behavior.
52709
52710        * bindings/v8/ScriptController.cpp:
52711        (WebCore::ScriptController::callFunction):
52712        (WebCore):
52713        (WebCore::handleMaxRecursionDepthExceeded):
52714        (WebCore::resourceInfo):
52715        (WebCore::resourceString):
52716        (WebCore::ScriptController::callFunctionWithInstrumentation):
52717        * bindings/v8/ScriptController.h:
52718        (ScriptController):
52719        * bindings/v8/ScriptFunctionCall.cpp:
52720        (WebCore::ScriptCallback::call):
52721        * bindings/v8/V8Callback.cpp:
52722        (WebCore::invokeCallback):
52723        * bindings/v8/V8NodeFilterCondition.cpp:
52724        (WebCore::V8NodeFilterCondition::acceptNode):
52725        * bindings/v8/V8Proxy.cpp:
52726        (WebCore):
52727        * bindings/v8/V8Proxy.h:
52728        (V8Proxy):
52729        * bindings/v8/V8WindowErrorHandler.cpp:
52730        (WebCore::V8WindowErrorHandler::callListenerFunction):
52731        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
52732        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
52733
527342012-08-20  Elliott Sprehn  <esprehn@chromium.org>
52735
52736        Never notify of insertedIntoTree during document destruction.
52737        https://bugs.webkit.org/show_bug.cgi?id=94535
52738
52739        Reviewed by Eric Seidel.
52740
52741        Never notify of insertedIntoTree during document destruction. Previously since we
52742        avoid notifying of willBeRemovedFromTree it's possible we could have gotten several
52743        insertedIntoTree notifications without ever being told we were removed.
52744
52745        No tests needed since this just closes holes related to future code.
52746
52747        * rendering/RenderObjectChildList.cpp:
52748        (WebCore::RenderObjectChildList::appendChildNode): Never call insertedIntoTree during document destruction.
52749        (WebCore::RenderObjectChildList::insertChildNode): Same.
52750        * rendering/RenderRegion.cpp:
52751        (WebCore::RenderRegion::attachRegion): Removed unneeded document destruction check.
52752
527532012-08-20  James Robinson  <jamesr@chromium.org>
52754
52755        [chromium] Initialize GraphicsLayerChromium::m_contentsLayerId when setting contents layer
52756        https://bugs.webkit.org/show_bug.cgi?id=94552
52757
52758        Reviewed by Kenneth Russell.
52759
52760        Set it or it don't work good.
52761
52762        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
52763        (WebCore::GraphicsLayerChromium::setupContentsLayer):
52764
527652012-08-20  Rik Cabanier  <cabanier@adobe.com>
52766
52767        parse CSS attribute -webkit-blend-mode
52768        https://bugs.webkit.org/show_bug.cgi?id=94024
52769 
52770        Reviewed by Dirk Schulze.
52771
52772        Added parsing and general CSS handling of -webkit-blend-mode per http://www.w3.org/TR/2012/WD-compositing-20120816/
52773
52774        Tests: css3/compositing/blend-mode-property-parsing-invalid.html
52775               css3/compositing/blend-mode-property-parsing.html
52776               css3/compositing/blend-mode-property.html
52777
52778        * css/CSSComputedStyleDeclaration.cpp:
52779        (WebCore):
52780        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52781        * css/CSSParser.cpp:
52782        (WebCore::isValidKeywordPropertyAndValue):
52783        (WebCore::isKeywordPropertyID):
52784        (WebCore::CSSParser::parseValue):
52785        * css/CSSProperty.cpp:
52786        (WebCore::CSSProperty::isInheritedProperty):
52787        * css/CSSPropertyNames.in:
52788        * css/CSSValueKeywords.in:
52789        * css/StyleBuilder.cpp:
52790        (WebCore::StyleBuilder::StyleBuilder):
52791        * rendering/RenderLayer.h:
52792        (RenderLayer):
52793        * rendering/RenderLayerBacking.cpp:
52794        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
52795        (WebCore):
52796        (WebCore::RenderLayerBacking::updateLayerBlendMode):
52797        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
52798        (WebCore::RenderLayerBacking::setBlendMode):
52799        * rendering/RenderLayerBacking.h:
52800        (RenderLayerBacking):
52801        * rendering/style/RenderStyle.cpp:
52802        (WebCore::RenderStyle::diff):
52803        * rendering/style/RenderStyle.h:
52804        * rendering/style/StyleRareNonInheritedData.cpp:
52805        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52806        (WebCore::StyleRareNonInheritedData::operator==):
52807        * rendering/style/StyleRareNonInheritedData.h:
52808        (StyleRareNonInheritedData):
52809
528102012-08-20  Kentaro Hara  <haraken@chromium.org>
52811
52812        [V8] Move retrieve{Window,Frame,PerContextData}() from V8Proxy to V8Binding
52813        https://bugs.webkit.org/show_bug.cgi?id=94460
52814
52815        Reviewed by Adam Barth.
52816
52817        To kill V8Proxy, we move retrieve{Window,Frame,PerContextData}()
52818        from V8Proxy to V8Binding. Also, this patch renames these methods as follows:
52819
52820        - retrieveWindow() -> toDOMWindow()
52821        - retrieveFrame() -> toFrameIfNotDetached()
52822        - retrievePerContextData() -> perContextDataForCurrentWorld()
52823
52824        No tests. No change in behavior.
52825
52826        * bindings/v8/BindingState.cpp:
52827        (WebCore::activeDOMWindow):
52828        (WebCore::firstDOMWindow):
52829        (WebCore::activeFrame):
52830        (WebCore::firstFrame):
52831        (WebCore::currentFrame):
52832        (WebCore::currentDocument):
52833        * bindings/v8/PageScriptDebugServer.cpp:
52834        (WebCore::retrieveFrameWithGlobalObjectCheck):
52835        (WebCore::PageScriptDebugServer::getDebugListenerForContext):
52836        (WebCore::PageScriptDebugServer::runMessageLoopOnPause):
52837        * bindings/v8/V8Binding.cpp:
52838        (WebCore::retrieveWindow):
52839        (WebCore):
52840        (WebCore::retrieveFrame):
52841        (WebCore::retrievePerContextData):
52842        * bindings/v8/V8Binding.h:
52843        (WebCore):
52844        * bindings/v8/V8DOMWrapper.cpp:
52845        (WebCore::V8DOMWrapper::constructorForType):
52846        * bindings/v8/V8NPUtils.cpp:
52847        (WebCore::convertV8ObjectToNPVariant):
52848        * bindings/v8/V8Proxy.cpp:
52849        (WebCore::V8Proxy::handleOutOfMemory):
52850        (WebCore::V8Proxy::context):
52851        (WebCore::V8Proxy::matchesCurrentContext):
52852        * bindings/v8/V8Proxy.h:
52853        (V8Proxy):
52854
528552012-08-20  Abhishek Arya  <inferno@chromium.org>
52856
52857        Yank an unneccessary if added in r125810.
52858        https://bugs.webkit.org/show_bug.cgi?id=85804
52859
52860        Reviewed by Levi Weintraub.
52861
52862        * rendering/RenderBlockLineLayout.cpp:
52863        (WebCore::RenderBlock::layoutInlineChildren):
52864
528652012-08-20  James Robinson  <jamesr@chromium.org>
52866
52867        [chromium] REGRESSION(126076) Should not touch old GraphicsLayerChromium::m_contentsLayer when setting up a new contents layer
52868        https://bugs.webkit.org/show_bug.cgi?id=94544
52869
52870        Reviewed by Adrienne Walker.
52871
52872        GraphicsLayerChromium only keeps a weak pointer to its m_contentsLayer. When replacing it with a new contents
52873        layer, it may be unsafe to touch the old value. It's also completely unnecessary.
52874
52875        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
52876        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
52877        (WebCore::GraphicsLayerChromium::setContentsToImage):
52878        (WebCore::GraphicsLayerChromium::setContentsTo):
52879        (WebCore::GraphicsLayerChromium::setupContentsLayer):
52880        * platform/graphics/chromium/GraphicsLayerChromium.h:
52881
528822012-08-20  Kentaro Hara  <haraken@chromium.org>
52883
52884        [V8] Move collectGarbage() from ScriptController to V8GCController
52885        https://bugs.webkit.org/show_bug.cgi?id=94455
52886
52887        Reviewed by Adam Barth.
52888
52889        - This patch moves collectGarbage() from ScriptController to V8GCController.
52890        - This patch makes collectGarbage() a static method.
52891        - This patch removes ScriptController::lowMemoryNotification()
52892        since it is not used at all.
52893
52894        No tests. No change in behavior.
52895
52896        * bindings/v8/ScriptController.cpp:
52897        * bindings/v8/ScriptController.h:
52898        * bindings/v8/V8GCController.cpp:
52899        (WebCore::V8GCController::collectGarbage):
52900        (WebCore):
52901        * bindings/v8/V8GCController.h:
52902        (V8GCController):
52903
529042012-08-20  Kentaro Hara  <haraken@chromium.org>
52905
52906        [V8] Remove V8Proxy from V8IsolatedContext
52907        https://bugs.webkit.org/show_bug.cgi?id=94450
52908
52909        Reviewed by Adam Barth.
52910
52911        This patch removes dependency on V8Proxy from V8IsolatedContext.
52912
52913        No tests. No change in behavior.
52914
52915        * bindings/v8/ScriptController.cpp:
52916        (WebCore::ScriptController::evaluateInIsolatedWorld):
52917        * bindings/v8/V8IsolatedContext.cpp:
52918        (WebCore::V8IsolatedContext::V8IsolatedContext):
52919        * bindings/v8/V8IsolatedContext.h:
52920        (WebCore):
52921        (V8IsolatedContext):
52922
529232012-08-20  Philip Rogers  <pdr@google.com>
52924
52925        Canvas drawImage() should draw SVG at the correct scale.
52926        https://bugs.webkit.org/show_bug.cgi?id=94377
52927
52928        Previously, drawing SVG in canvas would render at the incorrect scale
52929        because imageSizeForRenderer did not take into account the page scale.
52930        After this patch, we now incorporate the page scale in
52931        CachedImage::imageSizeForRenderer().
52932
52933        Reviewed by Tim Horton.
52934
52935        Test: svg/as-image/svg-as-image-canvas.html
52936
52937        * loader/cache/CachedImage.cpp:
52938        (WebCore::CachedImage::imageSizeForRenderer):
52939
529402012-08-20  Simon Fraser  <simon.fraser@apple.com>
52941
52942        Assertion going back to results.html page from an image diff result
52943        https://bugs.webkit.org/show_bug.cgi?id=94143
52944
52945        Reviewed by Adam Barth.
52946
52947        Avoid redundantly setting the DOMWindow on a JSDOMWindow shell in
52948        ScriptCachedFrameData::restore(), as we may have already done this
52949        in ScriptController::clearWindowShell(). This avoids an assertion
52950        on some platforms when going Back to the test results page from
52951        a diff image.
52952
52953        * bindings/js/ScriptCachedFrameData.cpp:
52954        (WebCore::ScriptCachedFrameData::restore):
52955
529562012-08-20  Dean Jackson  <dino@apple.com>
52957
52958        [WebGL] OES_vertex_array_object is not correctly un/binding or deleting
52959        https://bugs.webkit.org/show_bug.cgi?id=94029
52960
52961        Reviewed by Ken Russell.
52962
52963        When the currently bound vertex array is deleted, the specification says that
52964        the default object should be bound in its place. Also, binding a null object
52965        as a vertex array was not actually clearing the bound object at the GL layer.
52966        And lastly, it should not be possible to bind a deleted vertex array.
52967
52968        The test case for this is the public Khronos WebGL conformance suite, in particular:
52969        conformance/extensions/oes-vertex-array-object.html
52970
52971        * html/canvas/OESVertexArrayObject.cpp:
52972        (WebCore::OESVertexArrayObject::deleteVertexArrayOES): Check if the deleted array is
52973        currently bound, and if so, unbind it.
52974        (WebCore::OESVertexArrayObject::bindVertexArrayOES): Make sure never to bind an
52975        array that has been marked as deleted.
52976        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
52977        (WebCore::Extensions3DOpenGL::bindVertexArrayOES): Remove the null check on bind. We
52978        do need to call glBindVertexArrayAPPLE with a null value in order to clear it.
52979
529802012-08-20  Kentaro Hara  <haraken@chromium.org>
52981
52982        [V8] Move clearForClose() and clearForNavigation() from V8Proxy to ScriptController
52983        https://bugs.webkit.org/show_bug.cgi?id=94459
52984
52985        Reviewed by Adam Barth.
52986
52987        To kill V8Proxy, we can move clearForClose() and
52988        clearForNavigation() from V8Proxy to ScriptController.
52989
52990        No tests. No change in behavior.
52991
52992        * bindings/v8/ScriptController.cpp:
52993        (WebCore::ScriptController::~ScriptController):
52994        (WebCore::ScriptController::resetIsolatedWorlds):
52995        (WebCore):
52996        (WebCore::ScriptController::clearForClose):
52997        (WebCore::ScriptController::clearForNavigation):
52998        (WebCore::ScriptController::clearWindowShell):
52999        * bindings/v8/ScriptController.h:
53000        (ScriptController):
53001        * bindings/v8/V8Proxy.cpp:
53002        (WebCore::V8Proxy::~V8Proxy):
53003        (WebCore::V8Proxy::handleOutOfMemory):
53004        * bindings/v8/V8Proxy.h:
53005        (V8Proxy):
53006
530072012-08-20  Dirk Schulze  <krit@webkit.org>
53008
53009        CSS Masking and CSS Filters applied in wrong order
53010        https://bugs.webkit.org/show_bug.cgi?id=94354
53011
53012        Reviewed by Dean Jackson.
53013
53014        According to the Filter Effects spec, the order should be first filters, then masking and clipping.
53015        Changed the order on applying the different effects in RenderLayer.
53016
53017        Test: css3/filters/filter-mask-clip-order.html
53018
53019        * rendering/RenderLayer.cpp:
53020        (WebCore::RenderLayer::paintLayerContents): First filter, then mask and clip the content.
53021
530222012-08-20  Kentaro Hara  <haraken@chromium.org>
53023
53024        [V8] Move mainWorldContext() from V8Proxy to ScriptController
53025        https://bugs.webkit.org/show_bug.cgi?id=94453
53026
53027        Reviewed by Adam Barth.
53028
53029        This patch moves mainWorldContext() from V8Proxy to ScriptController.
53030        In addition, this patch removes dependency on V8Proxy from WorldContextHandle.
53031
53032        No tests. No change in behavior.
53033
53034        * bindings/v8/DOMTransaction.cpp:
53035        (WebCore::DOMTransaction::callFunction):
53036        * bindings/v8/NPV8Object.cpp:
53037        (WebCore::toV8Context):
53038        * bindings/v8/ScriptController.cpp:
53039        (WebCore::ScriptController::evaluate):
53040        (WebCore::ScriptController::mainWorldContext):
53041        (WebCore):
53042        (WebCore::ScriptController::bindToWindowObject):
53043        (WebCore::createScriptObject):
53044        (WebCore::ScriptController::createScriptObjectForPluginElement):
53045        * bindings/v8/ScriptController.h:
53046        (ScriptController):
53047        * bindings/v8/ScriptState.cpp:
53048        (WebCore::mainWorldScriptState):
53049        * bindings/v8/V8LazyEventListener.cpp:
53050        (WebCore::V8LazyEventListener::prepareListenerObject):
53051        * bindings/v8/V8Proxy.cpp:
53052        (WebCore::V8Proxy::context):
53053        (WebCore::toV8Context):
53054        * bindings/v8/V8Proxy.h:
53055        (V8Proxy):
53056        * bindings/v8/WorldContextHandle.cpp:
53057        (WebCore::WorldContextHandle::adjustedContext):
53058        * bindings/v8/WorldContextHandle.h:
53059        (WebCore):
53060        (WorldContextHandle):
53061
530622012-08-20  Adam Klein  <adamk@chromium.org>
53063
53064        Remove redundant TOUCH_LISTENER event type
53065        https://bugs.webkit.org/show_bug.cgi?id=94524
53066
53067        Reviewed by Ryosuke Niwa.
53068
53069        Code that needs to determine whether there are touch listeners
53070        can instead call Document::touchEventHandlerCount(), added in r107832.
53071        TOUCH_LISTENER didn't fit very well into the hasListenerType() model
53072        anyway, as there's not a 1:1 correspondance between the enum value and
53073        an event.
53074
53075        * dom/Document.cpp:
53076        (WebCore::Document::addListenerTypeIfNeeded): Remove two bits of code:
53077        the bookkeeping for TOUCH_LISTENER, and the notification into
53078        ChromeClient (which is handled by calls to didAddTouchEventHandler in
53079        all the places that call addListenerTypeIfNeeded).
53080        (WebCore::Document::didRemoveTouchEventHandler): Remove bookkeeping for TOUCH_LISTENER.
53081        * dom/Document.h:
53082        * history/CachedFrame.cpp:
53083        (WebCore::CachedFrameBase::restore): Call touchEventHandlerCount instead of hasListenerType.
53084        * html/HTMLInputElement.cpp:
53085        (WebCore::HTMLInputElement::updateType): ditto
53086        * page/EventHandler.cpp:
53087        (WebCore::EventHandler::handleTouchEvent): ditto
53088        * page/Frame.cpp:
53089        (WebCore::Frame::setDocument): ditto
53090        * testing/Internals.cpp: Remove hasTouchEventListener method since its
53091        data source no longer exists.
53092        * testing/Internals.h: ditto
53093        (Internals):
53094        * testing/Internals.idl: ditto
53095
530962012-08-16  James Robinson  <jamesr@chromium.org>
53097
53098        [chromium] Change WebLayer from a concrete type to a pure virtual interface
53099        https://bugs.webkit.org/show_bug.cgi?id=94174
53100
53101        Reviewed by Adrienne Walker.
53102
53103        This updates WebCore code for the WebLayer interface changes. Classes that have ownership of specific layer
53104        types (such as DrawingBufferChromium, Canvas2DLayerBridge and ScrollingCoordinatorChromium) hold ownership
53105        of a specific type and a pointer to the WebLayer to GraphicsLayerChromium to be included in the final layer
53106        tree. GraphicsLayerChromium holds a WebContentLayer and (optionally) a WebImageLayer and WebLayer (for
53107        m_transformLayer) and assembles the final layer tree.
53108
53109        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
53110        (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
53111        (ScrollingCoordinatorPrivate):
53112        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
53113        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
53114        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
53115        (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
53116        (WebCore::scrollableLayerForGraphicsLayer):
53117        (WebCore):
53118        (WebCore::createScrollbarLayer):
53119        (WebCore::ScrollingCoordinator::setScrollLayer):
53120        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
53121        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
53122        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53123        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53124        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53125        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
53126        (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
53127        (WebCore::AcceleratedDeviceContext::clearLayer):
53128        (AcceleratedDeviceContext):
53129        (WebCore::AcceleratedDeviceContext::prepareForDraw):
53130        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
53131        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
53132        (WebCore::Canvas2DLayerBridge::skCanvas):
53133        (WebCore::Canvas2DLayerBridge::layer):
53134        (WebCore::Canvas2DLayerBridge::contextAcquired):
53135        * platform/graphics/chromium/Canvas2DLayerBridge.h:
53136        (WebCore):
53137        (Canvas2DLayerBridge):
53138        * platform/graphics/chromium/DrawingBufferChromium.cpp:
53139        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
53140        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
53141        (WebCore::DrawingBufferPrivate::layer):
53142        (DrawingBufferPrivate):
53143        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
53144        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
53145        (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
53146        (WebCore::GraphicsLayerChromium::updateNames):
53147        (WebCore::GraphicsLayerChromium::removeFromParent):
53148        (WebCore::GraphicsLayerChromium::setSize):
53149        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
53150        (WebCore::GraphicsLayerChromium::setContentsOpaque):
53151        (WebCore::GraphicsLayerChromium::setFilters):
53152        (WebCore::GraphicsLayerChromium::setBackgroundFilters):
53153        (WebCore::GraphicsLayerChromium::setMaskLayer):
53154        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
53155        (WebCore::GraphicsLayerChromium::setOpacity):
53156        (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
53157        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
53158        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
53159        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
53160        (WebCore::GraphicsLayerChromium::setContentsToImage):
53161        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
53162        (WebCore):
53163        (WebCore::GraphicsLayerChromium::setContentsToMedia):
53164        (WebCore::GraphicsLayerChromium::setContentsTo):
53165        (WebCore::GraphicsLayerChromium::addAnimation):
53166        (WebCore::GraphicsLayerChromium::pauseAnimation):
53167        (WebCore::GraphicsLayerChromium::removeAnimation):
53168        (WebCore::GraphicsLayerChromium::suspendAnimations):
53169        (WebCore::GraphicsLayerChromium::resumeAnimations):
53170        (WebCore::GraphicsLayerChromium::addLinkHighlight):
53171        (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
53172        (WebCore::GraphicsLayerChromium::platformLayer):
53173        (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
53174        (WebCore::GraphicsLayerChromium::setDebugBorder):
53175        (WebCore::GraphicsLayerChromium::updateChildList):
53176        (WebCore::GraphicsLayerChromium::updateLayerPosition):
53177        (WebCore::GraphicsLayerChromium::updateLayerSize):
53178        (WebCore::GraphicsLayerChromium::updateAnchorPoint):
53179        (WebCore::GraphicsLayerChromium::updateTransform):
53180        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
53181        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
53182        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
53183        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
53184        (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
53185        (WebCore::GraphicsLayerChromium::updateContentsRect):
53186        (WebCore::GraphicsLayerChromium::updateContentsScale):
53187        (WebCore::GraphicsLayerChromium::setupContentsLayer):
53188        * platform/graphics/chromium/GraphicsLayerChromium.h:
53189        (WebCore::GraphicsLayerChromium::hasContentsLayer):
53190        (WebCore::GraphicsLayerChromium::contentLayer):
53191        (GraphicsLayerChromium):
53192        (WebCore::GraphicsLayerChromium::contentsLayer):
53193        * platform/graphics/chromium/LayerChromium.cpp:
53194        (WebCore::LayerChromium::rootLayer):
53195        * platform/graphics/chromium/LayerChromium.h:
53196
531972012-08-20  Leandro Gracia Gil  <leandrogracia@chromium.org>
53198
53199        Move transformFriendlyBoundingBox out of Range
53200        https://bugs.webkit.org/show_bug.cgi?id=94366
53201
53202        Reviewed by Simon Fraser and Ryosuke Niwa.
53203
53204        Bug 93111 introduced a new method in Range called transformFriendlyBoundingBox.
53205        However, this method should not have been added there in order to reduce the
53206        dependencies between Range and the rendering code. This patch moves it to a
53207        static method in RenderObject.
53208
53209        Tests: existing tests, no new feature added by this patch.
53210
53211        * dom/Range.cpp:
53212        * dom/Range.h:
53213        * rendering/RenderObject.cpp:
53214        (WebCore::RenderObject::absoluteBoundingBoxRectForRange):
53215        (WebCore):
53216        * rendering/RenderObject.h:
53217        (RenderObject):
53218
532192012-08-20  Ryosuke Niwa  <rniwa@webkit.org>
53220
53221        Replace isolate || bidi-override by isolate-override
53222        https://bugs.webkit.org/show_bug.cgi?id=89746
53223
53224        Reviewed by Levi Weintraub.
53225
53226        The combination of bidi-isolate and isolate was replaced by a single isolate-override in
53227        http://lists.w3.org/Archives/Public/www-style/2012May/0541.html. The spec. has been updated accordingly:
53228        http://dev.w3.org/csswg/css3-writing-modes/#unicode-bidi
53229
53230        To follow the specification change, added -webkit-isolate-override and removed the support for
53231        isolate || bidi-override, simplifying the CSS parser and serializer.
53232
53233        Test: fast/text/bidi-override-isolate.html
53234
53235        * css/CSSComputedStyleDeclaration.cpp:
53236        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed. We can just new a CSSPrimitiveValue
53237        constructor now.
53238        * css/CSSParser.cpp:
53239        (WebCore::CSSParser::parseValue):
53240        * css/CSSPrimitiveValueMappings.h:
53241        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added now that unicode-bidi always creates a signle
53242        primitive value instead of a primitive value of css value list.
53243        (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
53244        * css/CSSValueKeywords.in: Added -webkit-isolate-override
53245        * css/StyleBuilder.cpp:
53246        (WebCore): Removed ApplyPropertyUnicodeBidi since we can use ApplyPropertyDefault now.
53247        (WebCore::StyleBuilder::StyleBuilder): Use ApplyPropertyDefault.
53248        * platform/text/UnicodeBidi.h: Renamed OverrideIsolate to IsolateOverride to match the spec.
53249        (WebCore::isIsolated):
53250        (WebCore::isOverride):
53251        * rendering/RenderBlockLineLayout.cpp:
53252        (WebCore::constructBidiRuns):
53253
532542012-08-20  Tony Chang  <tony@chromium.org>
53255
53256        RenderGrid children should always be RenderBoxes
53257        https://bugs.webkit.org/show_bug.cgi?id=94305
53258
53259        Reviewed by Abhishek Arya.
53260
53261        During RenderGrid::layout, we assume all the children are RenderBoxes.
53262        When removing children, if the last child is an anonymous block, we don't
53263        want to remove the anonymous block for grids. Ensure this doesn't happen
53264        by adding canCollapseAnonymousBlockChild to RenderBlock (flexboxen and
53265        grid can override this method).
53266
53267        Test: fast/css-grid-layout/should-not-collapse-anonymous-blocks.html
53268
53269        * rendering/RenderBlock.cpp:
53270        (WebCore::RenderBlock::removeChild): Check canCollapseAnonymousBlockChild().
53271        * rendering/RenderBlock.h:
53272        (WebCore::RenderBlock::canCollapseAnonymousBlockChild):
53273        (RenderBlock):
53274        * rendering/RenderDeprecatedFlexibleBox.h: canCollapseAnonymousBlockChild returns false.
53275        * rendering/RenderFlexibleBox.h: canCollapseAnonymousBlockChild returns false.
53276        * rendering/RenderGrid.h: canCollapseAnonymousBlockChild returns false.
53277
532782012-08-20  Kenneth Russell  <kbr@google.com>
53279
53280        Unreviewed, rolling out r126026.
53281        http://trac.webkit.org/changeset/126026
53282        https://bugs.webkit.org/show_bug.cgi?id=94449
53283
53284        Caused assertion failure in layout test touchadjustment/context-menu.html
53285
53286        * page/TouchAdjustment.cpp:
53287        (TouchAdjustment):
53288        (WebCore::TouchAdjustment::providesContextMenuItems):
53289        (WebCore::TouchAdjustment::appendSubtargetsForNodeToList):
53290        (WebCore::TouchAdjustment::compileSubtargetList):
53291        (WebCore::findBestClickableCandidate):
53292        (WebCore::findBestContextMenuCandidate):
53293
532942012-08-20  Andrew Lo  <anlo@rim.com>
53295
53296        [BlackBerry] Enabling DEBUG_LAYER_ANIMATION results in build break & warnings
53297        https://bugs.webkit.org/show_bug.cgi?id=94514
53298
53299        Reviewed by Rob Buis.
53300
53301        Add wtf::CString definition to fix build break when enabling DEBUG_LAYER_ANIMATION
53302        debug prints. Fix build warnings from prints.
53303
53304        No new tests, non-functional change.
53305
53306        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
53307        (WebCore::GraphicsLayerBlackBerry::addAnimation):
53308        (WebCore::GraphicsLayerBlackBerry::pauseAnimation):
53309
533102012-08-20  Christophe Dumez  <christophe.dumez@intel.com>
53311
53312        [JSC] SerializedScriptValue::create() should throw a DataCloneError if input is an unsupported object
53313        https://bugs.webkit.org/show_bug.cgi?id=94493
53314
53315        Reviewed by Oliver Hunt.
53316
53317        Update JSC implementation for SerializedScriptValue::create() so that
53318        a DataCloneError is thrown when the input value is an unsupported
53319        object. The previous implementation was not throwing any error.
53320
53321        This change is according to the structured clone specification at:
53322        http://www.w3.org/TR/html5/common-dom-interfaces.html#structured-clone
53323
53324        This also matches the corresponding V8 implementation.
53325
53326        Test: fast/events/message-port-multi.html.
53327
53328        * bindings/js/SerializedScriptValue.cpp:
53329        (WebCore::CloneSerializer::dumpIfTerminal):
53330        (WebCore::CloneSerializer::serialize):
53331        (WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
53332        * bindings/js/SerializedScriptValue.h:
53333
533342012-08-20  Sheriff Bot  <webkit.review.bot@gmail.com>
53335
53336        Unreviewed, rolling out r125884.
53337        http://trac.webkit.org/changeset/125884
53338        https://bugs.webkit.org/show_bug.cgi?id=94523
53339
53340        Appears to be causing a top crash in the Canary channel
53341        (Requested by abarth on #webkit).
53342
53343        * UseV8.cmake:
53344        * WebCore.gypi:
53345        * bindings/v8/DOMWrapperWorld.cpp:
53346        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
53347        (WebCore::mainThreadNormalWorld):
53348        * bindings/v8/DOMWrapperWorld.h:
53349        (WebCore):
53350        (WebCore::DOMWrapperWorld::create):
53351        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
53352        (DOMWrapperWorld):
53353        * bindings/v8/IsolatedWorld.cpp: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.cpp.
53354        (WebCore):
53355        (WebCore::IsolatedWorld::IsolatedWorld):
53356        (WebCore::IsolatedWorld::~IsolatedWorld):
53357        * bindings/v8/IsolatedWorld.h: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.h.
53358        (WebCore):
53359        (IsolatedWorld):
53360        (WebCore::IsolatedWorld::create):
53361        (WebCore::IsolatedWorld::count):
53362        (WebCore::IsolatedWorld::id):
53363        (WebCore::IsolatedWorld::domDataStore):
53364        * bindings/v8/V8DOMWrapper.h:
53365        (WebCore::V8DOMWrapper::getCachedWrapper):
53366        * bindings/v8/V8IsolatedContext.cpp:
53367        (WebCore::V8IsolatedContext::V8IsolatedContext):
53368        (WebCore::V8IsolatedContext::destroy):
53369        * bindings/v8/V8IsolatedContext.h:
53370        (WebCore::V8IsolatedContext::getEntered):
53371        (WebCore::V8IsolatedContext::world):
53372        (V8IsolatedContext):
53373        * bindings/v8/V8PerIsolateData.h:
53374        (WebCore::V8PerIsolateData::registerDOMDataStore):
53375        (WebCore::V8PerIsolateData::unregisterDOMDataStore):
53376
533772012-08-20  Chris Rogers  <crogers@google.com>
53378
53379        Remove improper ASSERT in AudioParamTimeline::valuesForTimeRangeImpl()
53380        https://bugs.webkit.org/show_bug.cgi?id=94504
53381
53382        Reviewed by Kenneth Russell.
53383
53384        AudioParamTimeline::valuesForTimeRangeImpl() is able to handle the case where there are no timeline events.
53385        So don't ASSERT for that case.
53386
53387        * Modules/webaudio/AudioParamTimeline.cpp:
53388        (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
53389
533902012-08-20  Ken Buchanan  <kenrb@chromium.org>
53391        Line boxes not being dirtied correctly during inline removal
53392        https://bugs.webkit.org/show_bug.cgi?id=93156
53393
53394        Reviewed by David Hyatt.
53395
53396        When two inline objects were being removed from different lineboxes
53397        in an ancestral RenderBlock, the way the RenderBlock was being marked
53398        prevented the second linebox from being marked dirty. This causes
53399        it to not get layout in the subsequent layout pass.
53400
53401        This patch causes only the descendants corresponding to actual changed
53402        lineboxes to have their ancestorLineBoxDirty bit set, rather than
53403        the RenderBlock that contains the lineboxes themselves.
53404
53405        * rendering/RenderLineBoxList.cpp:
53406        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
53407
534082012-08-20  John Mellor  <johnme@chromium.org>
53409
53410        Text Autosizing: Only take into account block width <= document layout width.
53411        https://bugs.webkit.org/show_bug.cgi?id=93862
53412
53413        Reviewed by Kenneth Rohde Christiansen.
53414
53415        Instead of calculating the textAutosizingMultiplier purely based on the
53416        width of each block, we now work out the maximum width of the block
53417        that could be displayed onscreen at any one time, and use that value.
53418        This avoids excessive text size multiplication (there's no point making
53419        text bigger than this, since you wouldn't be able to zoom out far
53420        enough to read it!).
53421
53422        To determine the maximum onscreen block width, we take the minimum of
53423        the block width and the layoutWidth of the narrowest non-flattened
53424        ancestor frame. Flattened frames are ignored since they don't impose a
53425        hard limit on the maximum width that can be displayed, instead they can
53426        stretch to fit their contents. Note that on mobile the layoutWidth of
53427        the main frame is the fixed layout width aka viewport width.
53428
53429        In practice this caps the maximum multiplier to a value that depends
53430        on the metrics of the device. For example on a Nexus S (480 x 800px
53431        and 1.5x devicePixelRatio) with a 980px default fixed layout width,
53432        this limits the multiplier to: 980 / (480/1.5) = 3.0625
53433
53434        Most pages won't have blocks that actually hit this cap, or they will
53435        only slightly exceed it (so their multiplier will only be slightly
53436        reduced). For example it's not uncommon for desktop pages to be
53437        slightly wider than 980px, but they would have to additionally have
53438        text that spans the full width of the page for this to affect them, and
53439        even then it would merely slightly decrease their multiplier).
53440
53441        This will have more dramatic effects on the rare desktop pages which
53442        give a width=device-width (or similar) mobile viewport tag (on ports
53443        which support viewports). A follow-up patch will hopefully address this
53444        by wrapping the text in such excessively wide blocks to the layoutWidth.
53445
53446        Tests: fast/text-autosizing/narrow-iframe-flattened.html
53447               fast/text-autosizing/narrow-iframe.html
53448               fast/text-autosizing/wide-block.html
53449               fast/text-autosizing/wide-iframe.html
53450
53451        * page/FrameView.cpp:
53452        (WebCore::FrameView::isInChildFrameWithFrameFlattening):
53453
53454            Made public and const, so can be used from TextAutosizer.
53455
53456        * rendering/TextAutosizer.cpp:
53457        (WebCore::TextAutosizer::processSubtree):
53458
53459            Computes the minimum layout width of the parent frames, as described
53460            above.
53461
53462        (WebCore::TextAutosizer::processBlock):
53463
53464            Limits used block width to this min layout width.
53465
534662012-08-20  Hans Wennborg  <hans@chromium.org>
53467
53468        Respect runtime flags for Device Orientation and Device Motion
53469        https://bugs.webkit.org/show_bug.cgi?id=94479
53470
53471        Reviewed by Adam Barth.
53472
53473        There are flags that allows disabling of device orientation and device
53474        motion at runtime. These flags determine the availability of the
53475        corresponding event constructors in DOMWindow.
53476
53477        However, the flags should also control the ability to add event
53478        listeners for these events, otherwise the feature can be used even if
53479        it is disabled.
53480
53481        * page/DOMWindow.cpp:
53482        (WebCore::DOMWindow::addEventListener):
53483
534842012-08-20  Philip Rogers  <pdr@google.com>
53485
53486        Remove incorrect getBBox() code
53487        https://bugs.webkit.org/show_bug.cgi?id=94419
53488
53489        Reviewed by Dirk Schulze.
53490
53491        SVGPathElement defines a getBBox() function that is wrong and
53492        should use objectBoundingBox(). This patch cleans this up.
53493
53494        No new tests as this is just a cleanup of old code.
53495
53496        * svg/SVGPathElement.cpp:
53497        (WebCore):
53498        * svg/SVGPathElement.h:
53499        (SVGPathElement):
53500
535012012-08-20  David Reveman  <reveman@chromium.org>
53502
53503        [Chromium] Schedule texture uploads based on hard-coded timer and vsync.
53504        https://bugs.webkit.org/show_bug.cgi?id=84281
53505
53506        Reviewed by James Robinson.
53507
53508        Improve interaction between vsync and texture uploads by performing
53509        uploads in smaller batches and use a hard-coded timer to emulate
53510        upload completion. This greatly reduces the chance of the compositor
53511        missing a vsync due to being busy with texture uploads.
53512
53513        The CCScheduler client is now given a time limit when told to update
53514        more resources. This time limit is passed to an instance of the
53515        CCTextureUpdateController class, which is responsible for performing
53516        texture updates until the limit is reached.
53517
53518        Unit tests: CCSchedulerTest.RequestCommit
53519                    CCTextureUpdateControllerTest.UpdateMoreTextures
53520                    CCTextureUpdateControllerTest.HasMoreUpdates
53521
53522        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
53523        (WebCore::CCFrameRateController::nextTickTime):
53524        (WebCore):
53525        * platform/graphics/chromium/cc/CCFrameRateController.h:
53526        (CCFrameRateController):
53527        * platform/graphics/chromium/cc/CCScheduler.cpp:
53528        (WebCore::CCScheduler::processScheduledActions):
53529        * platform/graphics/chromium/cc/CCScheduler.h:
53530        (CCSchedulerClient):
53531        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
53532        (WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
53533        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
53534        (WebCore::CCTextureUpdateController::updateMoreTextures):
53535        (WebCore):
53536        (WebCore::CCTextureUpdateController::onTimerFired):
53537        (WebCore::CCTextureUpdateController::monotonicTimeNow):
53538        (WebCore::CCTextureUpdateController::updateMoreTexturesTime):
53539        (WebCore::CCTextureUpdateController::updateMoreTexturesSize):
53540        (WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
53541        (WebCore::CCTextureUpdateController::updateMoreTexturesNow):
53542        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
53543        (WebCore::CCTextureUpdateController::create):
53544        (CCTextureUpdateController):
53545        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
53546        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
53547        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
53548        * platform/graphics/chromium/cc/CCThreadProxy.h:
53549
535502012-08-20  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
53551
53552        [css3-text] Add parsing support for -webkit-text-decoration-style
53553        https://bugs.webkit.org/show_bug.cgi?id=94093
53554
53555        Reviewed by Julien Chaffraix.
53556
53557        This patch implements the "text-decoration-style" property parsing as specified
53558        in CSS3 working draft, with "-webkit-" prefix. The specification can be found
53559        here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
53560
53561        Additionally, Mozilla implementation details can be found here:
53562        https://developer.mozilla.org/en-US/docs/CSS/text-decoration-style
53563
53564        This is an individual task for bug 90958. Rendering support will be handled on a
53565        different bug.
53566
53567        Test: fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style.html
53568
53569        * css/CSSComputedStyleDeclaration.cpp:
53570        (WebCore::renderTextDecorationStyleFlagsToCSSValue):
53571        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
53572        * css/CSSParser.cpp:
53573        (WebCore::CSSParser::parseValue):
53574        * css/CSSPrimitiveValueMappings.h:
53575        (WebCore::CSSPrimitiveValue::operator TextDecorationStyle):
53576        * css/CSSProperty.cpp:
53577        (WebCore::CSSProperty::isInheritedProperty):
53578        * css/CSSPropertyNames.in:
53579        * css/CSSValueKeywords.in:
53580        * css/StyleBuilder.cpp:
53581        (WebCore::StyleBuilder::StyleBuilder):
53582        * css/StyleResolver.cpp:
53583        (WebCore::StyleResolver::collectMatchingRulesForList):
53584        * rendering/style/RenderStyle.cpp:
53585        (WebCore::RenderStyle::diff):
53586        * rendering/style/RenderStyle.h:
53587        * rendering/style/RenderStyleConstants.h: Added non-bitwise TextDecorationStyle enum.
53588        * rendering/style/StyleRareNonInheritedData.cpp:
53589        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Added m_textDecorationStyle to default and copy constructors.
53590        (WebCore::StyleRareNonInheritedData::operator==): Include m_textDecorationStyle in comparison.
53591        * rendering/style/StyleRareNonInheritedData.h:
53592        (StyleRareNonInheritedData):
53593        Added m_textDecorationStyle here as it won't be used regularly.
53594
535952012-08-20  Jakob Petsovits  <jpetsovits@rim.com>
53596
53597        [BlackBerry] Persist cookies not from atexit() but the new onThreadFinished()
53598        https://bugs.webkit.org/show_bug.cgi?id=94482
53599        RIM PR 184923
53600
53601        Reviewed by Yong Li.
53602
53603        BlackBerry::Platform recently made changes that ensure
53604        that MessageClient threads are being shut down correctly.
53605        A new onThreadFinished() virtual was introduced for
53606        custom clean-up functionality and can replace the
53607        atexit() handler that we previously used to flush cookies
53608        to the cookie database backingstore.
53609
53610        No new functionality, no new tests.
53611
53612        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
53613        (WebCore):
53614        (WebCore::CookieDatabaseBackingStore::onThreadFinished):
53615        (WebCore::CookieDatabaseBackingStore::sendChangesToDatabaseSynchronously):
53616        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
53617        (CookieDatabaseBackingStore):
53618        * platform/blackberry/CookieManager.cpp:
53619        (WebCore):
53620        (WebCore::cookieManager):
53621        * platform/blackberry/CookieManager.h:
53622
536232012-08-20  Alexandre Elias  <aelias@google.com>
53624
53625        [chromium] Move non-GL-specific code out of LayerRendererChromium
53626        https://bugs.webkit.org/show_bug.cgi?id=93927
53627
53628        Reviewed by Adrienne Walker.
53629
53630        This patch moves most of the generic logic dealing with matrices and
53631        render passes into a new class "CCDirectRenderer" that sits between
53632        CCRenderer and LayerRendererChromium, and also publicly exposes a
53633        few other things like the UnthrottledTextureUploader.
53634
53635        The plan is for the future software compositing implementation to also
53636        derive from CCDirectRenderer, whereas the ubercompositor delegating
53637        renderer will still derive from CCRenderer.
53638
53639        No new tests (no-op refactoring).
53640
53641        * WebCore.gypi:
53642        * platform/graphics/chromium/GeometryBinding.cpp:
53643        (WebCore::GeometryBinding::GeometryBinding):
53644        * platform/graphics/chromium/GeometryBinding.h:
53645        (GeometryBinding):
53646        * platform/graphics/chromium/LayerRendererChromium.cpp:
53647        (WebCore::LayerRendererChromium::LayerRendererChromium):
53648        (WebCore::LayerRendererChromium::beginDrawingFrame):
53649        (WebCore::LayerRendererChromium::drawQuad):
53650        (WebCore::LayerRendererChromium::drawRenderPassQuad):
53651        (WebCore::LayerRendererChromium::drawTileQuad):
53652        (WebCore::LayerRendererChromium::finishDrawingFrame):
53653        (WebCore::LayerRendererChromium::drawQuadGeometry):
53654        (WebCore::LayerRendererChromium::bindFramebufferToOutputSurface):
53655        (WebCore):
53656        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
53657        (WebCore::LayerRendererChromium::enableScissorTestRect):
53658        (WebCore::LayerRendererChromium::disableScissorTest):
53659        (WebCore::LayerRendererChromium::setDrawViewportSize):
53660        (WebCore::LayerRendererChromium::makeContextCurrent):
53661        (WebCore::LayerRendererChromium::initializeSharedObjects):
53662        * platform/graphics/chromium/LayerRendererChromium.h:
53663        (LayerRendererChromium):
53664        * platform/graphics/chromium/TextureCopier.h:
53665        (TextureCopier):
53666        * platform/graphics/chromium/TextureUploader.h:
53667        (UnthrottledTextureUploader):
53668        (WebCore::UnthrottledTextureUploader::create):
53669        (WebCore::UnthrottledTextureUploader::~UnthrottledTextureUploader):
53670        (WebCore::UnthrottledTextureUploader::UnthrottledTextureUploader):
53671        (WebCore):
53672        * platform/graphics/chromium/cc/CCDirectRenderer.cpp: Added.
53673        (projectionMatrix):
53674        (canvasMatrix):
53675        (WebCore):
53676        (WebCore::CCDirectRenderer::DrawingFrame::initializeMatrices):
53677        (WebCore::CCDirectRenderer::DrawingFrame::initializeScissors):
53678        (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
53679        (WebCore::CCDirectRenderer::drawFrame):
53680        (WebCore::CCDirectRenderer::drawRenderPass):
53681        (WebCore::CCDirectRenderer::useRenderPass):
53682        (WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
53683        (WebCore::CCDirectRenderer::renderPassTextureSize):
53684        (WebCore::CCDirectRenderer::renderPassTextureFormat):
53685        * platform/graphics/chromium/cc/CCDirectRenderer.h: Added.
53686        (WebCore):
53687        (CCDirectRenderer):
53688        (WebCore::CCDirectRenderer::~CCDirectRenderer):
53689        (WebCore::CCDirectRenderer::resourceProvider):
53690        (WebCore::CCDirectRenderer::CCDirectRenderer):
53691        (DrawingFrame):
53692        (WebCore::CCDirectRenderer::DrawingFrame::DrawingFrame):
53693        (CachedTexture):
53694        (WebCore::CCDirectRenderer::CachedTexture::create):
53695        (WebCore::CCDirectRenderer::CachedTexture::~CachedTexture):
53696        (WebCore::CCDirectRenderer::CachedTexture::isComplete):
53697        (WebCore::CCDirectRenderer::CachedTexture::setIsComplete):
53698        (WebCore::CCDirectRenderer::CachedTexture::CachedTexture):
53699        (WebCore::CCDirectRenderer::quadVertexRect):
53700        (WebCore::CCDirectRenderer::quadRectTransform):
53701
537022012-08-20  Julien Chaffraix  <jchaffraix@webkit.org>
53703
53704        Introduce a will-be-removed-from-tree notification in RenderObject
53705        https://bugs.webkit.org/show_bug.cgi?id=94271
53706
53707        Reviewed by Abhishek Arya.
53708
53709        Following bug 93874, we have an insertion notification. This change adds the
53710        matching removal notification (willBeRemovedFromTree).
53711
53712        Refactoring covered by existing tests.
53713
53714        * rendering/RenderObjectChildList.cpp:
53715        (WebCore::RenderObjectChildList::removeChildNode):
53716        Removed the code from here and moved it below.
53717
53718        * rendering/RenderObject.cpp:
53719        (WebCore::RenderObject::willBeRemovedFromTree):
53720        * rendering/RenderObject.h:
53721        This is the base function that should be called by every instance.
53722
53723        * rendering/RenderListItem.cpp:
53724        (WebCore::RenderListItem::willBeRemovedFromTree):
53725        * rendering/RenderListItem.h:
53726        * rendering/RenderQuote.cpp:
53727        (WebCore::RenderQuote::willBeRemovedFromTree):
53728        * rendering/RenderQuote.h:
53729        * rendering/RenderRegion.cpp:
53730        (WebCore::RenderRegion::willBeRemovedFromTree):
53731        * rendering/RenderRegion.h:
53732        Overriden functions.
53733
537342012-08-20  Mike West  <mkwst@chromium.org>
53735
53736        CSP 1.1: The 'plugin-types' warning should include details about explicit type declaration when relevant.
53737        https://bugs.webkit.org/show_bug.cgi?id=94432
53738
53739        Reviewed by Adam Barth.
53740
53741        Given a 'plugin-types' Content Security Policy directive, an 'object' or
53742        'embed' tag is blocked if it doesn't include an explicit declaration of
53743        the plugin's expected media type. This restriction should be made clear
53744        in the console warning that's generated.
53745
53746        Existing tests have been adjusted to agree with the new error string.
53747
53748        * page/ContentSecurityPolicy.cpp:
53749        (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
53750            If a media type fail to match the policy's restrictions, and the
53751            declared type attribute is empty, then add another line to the
53752            console warning, espousing the virtues of explicit declaration.
53753
537542012-08-20  Dana Jansens  <danakj@chromium.org>
53755
53756        [chromium] Update HUD resources as a final step to drawing a frame
53757        https://bugs.webkit.org/show_bug.cgi?id=93743
53758
53759        Reviewed by Adrienne Walker.
53760
53761        The HUD should be painted as a last step, after the whole frame has been
53762        generated. This introduces a new "updateHudTexture" method on the HUD layer
53763        and has the HUD layer save itself on CCLayerTreeHostImpl so that it can
53764        call back to this method.
53765
53766        This allows the CCLayerTreeHostImpl to cause the HUD layer to update its
53767        texture as a final step before drawing the frame, allowing the HUD texture
53768        to contain all possible information about the current frame.
53769
53770        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
53771        (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
53772        (WebCore):
53773        (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
53774        (WebCore::CCHeadsUpDisplayLayerImpl::updateHudTexture):
53775        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
53776        (CCHeadsUpDisplayLayerImpl):
53777        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
53778        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
53779        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
53780        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
53781        (WebCore::CCLayerTreeHostImpl::drawLayers):
53782        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
53783        (WebCore):
53784        (WebCore::CCLayerTreeHostImpl::setHudLayer):
53785        (WebCore::CCLayerTreeHostImpl::hudLayer):
53786        (CCLayerTreeHostImpl):
53787
537882012-08-20  Ian Vollick  <vollick@chromium.org>
53789
53790        [chromium] Add tracing for active composited animations
53791        https://bugs.webkit.org/show_bug.cgi?id=84210
53792
53793        Reviewed by James Robinson.
53794
53795        This patch issues the trace events from the animations. Animations will
53796        report when they start and finish on the main and impl threads (via
53797        TRACE_EVENT_ASYNC*), and also issues instant trace events whenever they
53798        change state.
53799
53800        No new tests, only changes tracing behavior.
53801
53802        * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
53803        (WebCore::CCActiveAnimation::CCActiveAnimation):
53804        (WebCore::CCActiveAnimation::~CCActiveAnimation):
53805        (WebCore::CCActiveAnimation::setRunState):
53806        (WebCore::CCActiveAnimation::clone):
53807        (WebCore):
53808        (WebCore::CCActiveAnimation::cloneAndInitialize):
53809        * platform/graphics/chromium/cc/CCActiveAnimation.h:
53810        (WebCore::CCActiveAnimation::isControllingInstance):
53811        (CCActiveAnimation):
53812        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
53813        (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
53814        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
53815        (WebCore::CCLayerAnimationController::tickAnimations):
53816
538172012-08-20  Bill Budge  <bbudge@chromium.org>
53818
53819        webkitfullscreenchange not fired properly in iframe.
53820        https://bugs.webkit.org/show_bug.cgi?id=93525
53821
53822        Reviewed by Adam Barth.
53823
53824        webkitCancelFullScreen exits fullscreen by invoking webkitExitFullScreen on topDocument.
53825        However, if webkitDidExitFullScreenForElement is invoked on a descendant document, no events
53826        get dispatched. This change starts the event dispatch delay timer on the document where
53827        webkitCancelFullScreen was called, so that the events get dispatched. In addition, when events
53828        are dispatched, the check whether a node has been removed is changed to also check that the
53829        node isn't in another document, as can happen with frames. Finally, webkitExitFullscreen
53830        is fixed to remove unnecessary code and conform to the spec.
53831
53832        No new tests (the existing fullscreen/exit-full-screen-iframe.html test now passes).
53833
53834        * dom/Document.cpp:
53835        (WebCore::Document::webkitExitFullscreen):
53836        (WebCore::Document::webkitDidExitFullScreenForElement):
53837        (WebCore::Document::fullScreenChangeDelayTimerFired):
53838
538392012-08-20  Yuzhu Shen  <yzshen@chromium.com>
53840
53841        [chromium] pepper plugins sometimes are shifted by 1 pixel
53842        https://bugs.webkit.org/show_bug.cgi?id=94257
53843
53844        Reviewed by Levi Weintraub.
53845
53846        Change RenderWidget::updateWidgetGeometry() to use LayoutRect instead of IntRect to avoid unwanted truncation
53847        (when converting from FloatRect to IntRect).
53848
53849        This makes sure that the optimized rendering code path of Pepper plugin
53850        (PluginInstance::GetBitmapForOptimizedPluginPaint) has consistent coordinates with the normal WebKit rendering
53851        code path.
53852
53853        No new tests because we don't have Pepper plugin tests in WebKit.
53854
53855        * rendering/RenderWidget.cpp:
53856        (WebCore::RenderWidget::updateWidgetGeometry):
53857
538582012-08-20  Christophe Dumez  <christophe.dumez@intel.com>
53859
53860        postMessage() in MessagePort.idl does not match spec
53861        https://bugs.webkit.org/show_bug.cgi?id=94477
53862
53863        Reviewed by Kentaro Hara.
53864
53865        Update definition of postMessage() in MessagePort.idl
53866        to match the specification at:
53867        http://www.w3.org/TR/html5/comms.html#messageport
53868
53869        The first argument should be of type 'any', not
53870        'DOMString'.
53871
53872        No new tests, no behavior change.
53873
53874        * dom/MessagePort.idl:
53875
538762012-08-20  Sheriff Bot  <webkit.review.bot@gmail.com>
53877
53878        Unreviewed, rolling out r125989.
53879        http://trac.webkit.org/changeset/125989
53880        https://bugs.webkit.org/show_bug.cgi?id=94485
53881
53882        "Two of the new tests always failed on Mac bots" (Requested by
53883        bradee-oh on #webkit).
53884
53885        * css/CSSComputedStyleDeclaration.cpp:
53886        (WebCore):
53887        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
53888        * css/CSSParser.cpp:
53889        (WebCore::isValidKeywordPropertyAndValue):
53890        (WebCore::isKeywordPropertyID):
53891        (WebCore::CSSParser::parseValue):
53892        * css/CSSProperty.cpp:
53893        (WebCore::CSSProperty::isInheritedProperty):
53894        * css/CSSPropertyNames.in:
53895        * css/CSSValueKeywords.in:
53896        * css/StyleBuilder.cpp:
53897        (WebCore::StyleBuilder::StyleBuilder):
53898        * rendering/RenderLayer.h:
53899        (RenderLayer):
53900        * rendering/RenderLayerBacking.cpp:
53901        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
53902        (WebCore):
53903        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
53904        * rendering/RenderLayerBacking.h:
53905        (RenderLayerBacking):
53906        * rendering/style/RenderStyle.cpp:
53907        (WebCore::RenderStyle::diff):
53908        * rendering/style/RenderStyle.h:
53909        * rendering/style/StyleRareNonInheritedData.cpp:
53910        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
53911        (WebCore::StyleRareNonInheritedData::operator==):
53912        * rendering/style/StyleRareNonInheritedData.h:
53913        (StyleRareNonInheritedData):
53914
539152012-08-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
53916
53917        [Qt] Custom tap-highlight-color renders fully opaque
53918        https://bugs.webkit.org/show_bug.cgi?id=94468
53919
53920        Reviewed by Kenneth Rohde Christiansen.
53921
53922        Adjust the default tap-highlight-color to figure in that is will be
53923        drawn semi-transparent.
53924
53925        * rendering/RenderTheme.h:
53926        (RenderTheme):
53927
539282012-08-20  Andrey Adaikin  <aandrey@chromium.org>
53929
53930        Web Inspector: [WebGL] Add minimum transport protocol from backend to frontend
53931        https://bugs.webkit.org/show_bug.cgi?id=88973
53932
53933        Reviewed by Pavel Feldman.
53934
53935        Added the following protocol methods to communicate with the WebGL injected
53936        module: captureFrame, getTraceLog, dropTraceLog, replayTraceLog.
53937
53938        * inspector/CodeGeneratorInspector.py:
53939        * inspector/InjectedScriptWebGLModule.cpp:
53940        (WebCore::InjectedScriptWebGLModule::captureFrame):
53941        (WebCore):
53942        (WebCore::InjectedScriptWebGLModule::dropTraceLog):
53943        (WebCore::InjectedScriptWebGLModule::getTraceLog):
53944        (WebCore::InjectedScriptWebGLModule::replayTraceLog):
53945        * inspector/InjectedScriptWebGLModule.h:
53946        (InjectedScriptWebGLModule):
53947        * inspector/Inspector.json:
53948        * inspector/InspectorController.cpp:
53949        (WebCore::InspectorController::InspectorController):
53950        * inspector/InspectorWebGLAgent.cpp:
53951        (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
53952        (WebCore::InspectorWebGLAgent::dropTraceLog):
53953        (WebCore):
53954        (WebCore::InspectorWebGLAgent::captureFrame):
53955        (WebCore::InspectorWebGLAgent::getTraceLog):
53956        (WebCore::InspectorWebGLAgent::replayTraceLog):
53957        * inspector/InspectorWebGLAgent.h:
53958        (WebCore):
53959        (WebCore::InspectorWebGLAgent::create):
53960        (InspectorWebGLAgent):
53961
539622012-08-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
53963
53964        [TouchAdjustment] Adjust to word or selection
53965        https://bugs.webkit.org/show_bug.cgi?id=94449
53966
53967        Reviewed by Antonio Gomes.
53968
53969        Makes each separate word a separate subtarget when context menu triggers
53970        selections, and only the selected part of a partial selected node a 
53971        target when selections are not overridden.
53972
53973        Test: touchadjustment/context-menu-text-subtargets.html
53974
53975        * page/TouchAdjustment.cpp:
53976        (TouchAdjustment):
53977        (WebCore::TouchAdjustment::providesContextMenuItems):
53978        (WebCore::TouchAdjustment::appendQuadsToSubtargetList):
53979        (WebCore::TouchAdjustment::appendBasicSubtargetsForNode):
53980        (WebCore::TouchAdjustment::appendContextSubtargetsForNode):
53981        (WebCore::TouchAdjustment::compileSubtargetList):
53982        (WebCore::findBestClickableCandidate):
53983        (WebCore::findBestContextMenuCandidate):
53984
539852012-08-20  Xan Lopez  <xlopez@igalia.com>
53986
53987        [GTK] Provide backwards compatible method for WebKitDOMWebKitNamedFlow::overflow
53988        https://bugs.webkit.org/show_bug.cgi?id=94464
53989
53990        Reviewed by Carlos Garcia Campos.
53991
53992        Provide a compatibility method to access the new 'overset'
53993        property through the old 'overflow' name in
53994        WebKitDOMWebKitNamedFlow. Note that trying to access it through
53995        g_object_get directly will give a runtime warning, since the
53996        property does not actually exist anymore; this is done purely to
53997        maintain API compatibility.
53998
53999        * bindings/gobject/WebKitDOMCustom.cpp:
54000        (webkit_dom_webkit_named_flow_get_overflow): add method.
54001        * bindings/gobject/WebKitDOMCustom.h:
54002
540032012-08-20  Sami Kyostila  <skyostil@chromium.org>
54004
54005        [chromium] Convert screen space scroll gestures to layer space
54006        https://bugs.webkit.org/show_bug.cgi?id=92499
54007
54008        Reviewed by James Robinson.
54009
54010        Scroll gestures should be converted from screen space to local layer space to
54011        correctly apply the scroll delta to page scaled and/or transformed layers.
54012        Visually this means that the scrolled content will always follow the user's
54013        finger for any "well-formed" layer transform.
54014
54015        Wheel scroll deltas will still be directly interpreted as local layer scroll
54016        coordinates.
54017
54018        We also adjust the logic for propagating ("bubbling") scroll events to parent
54019        layers. Previously a parent layer was allowed to scroll in the screen-space
54020        axis orthogonal to the direction the starting layer scrolled toward. For
54021        example if a vertically scrolling layer is scrolled diagonally down and right,
54022        the layer moves down and its parent to the right.
54023
54024        This patch generalizes this behavior to non-axis aligned transformed layers so
54025        that the scrolling direction of any parent is constrained to be perpendicular
54026        direction of movement of the starting layer. This makes the scrolling behavior
54027        of transformed layers physically plausible. For instance, assume a 45 degree
54028        rotated, vertically scrollable layer. Dragging your finger vertically
54029        (relative to the layer) scrolls the layer up and down, while horizontal
54030        movement results in the parent of the layer moving in a corresponding way.
54031
54032        Since generally users want to scroll a single layer in one direction, this
54033        patch also introduces a rule that if the resulting movement of a layer is
54034        within 45 degrees of the original scroll input, the bubbling process is
54035        stopped. This makes it possible to reliably scroll a single layer without
54036        affecting any of its parents.
54037
54038        Added new unit tests:
54039            CCLayerTreeHostImplTest.scrollAxisAlignedRotatedLayer
54040            CCLayerTreeHostImplTest.scrollNonAxisAlignedRotatedLayer
54041            CCLayerTreeHostImplTest.scrollScaledLayer
54042            CCMathUtilTest.smallestAngleBetweenVectors
54043            CCMathUtilTest.vectorProjection
54044
54045        * platform/graphics/chromium/cc/CCInputHandler.h:
54046        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
54047        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
54048        (WebCore::CCLayerTreeHostImpl::scrollBegin):
54049        (WebCore::scrollLayerWithScreenSpaceDelta):
54050        (WebCore):
54051        (WebCore::scrollLayerWithLocalDelta):
54052        (WebCore::CCLayerTreeHostImpl::scrollBy):
54053        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
54054        (CCLayerTreeHostImpl):
54055        * platform/graphics/chromium/cc/CCMathUtil.cpp:
54056        (WebCore::CCMathUtil::smallestAngleBetweenVectors):
54057        (WebCore):
54058        (WebCore::CCMathUtil::projectVector):
54059        * platform/graphics/chromium/cc/CCMathUtil.h:
54060        (CCMathUtil):
54061
540622012-08-20  Carlos Garcia Campos  <cgarcia@igalia.com>
54063
54064        [GTK] Add API to set preferred languages to WebKit2 GTK+
54065        https://bugs.webkit.org/show_bug.cgi?id=90878
54066
54067        Unreviewed. Fix mac build.
54068
54069        * WebCore.exp.in: Export WebCore::languageDidChange().
54070
540712012-08-20  Pavel Feldman  <pfeldman@chromium.org>
54072
54073        Web Inspector: improve standalone test harness to allow attaching to inspector before test.
54074        https://bugs.webkit.org/show_bug.cgi?id=94426
54075
54076        Reviewed by Vsevolod Vlasov.
54077
54078        - User can not "Debug", attach inspector to the front-end and "Continue" test execution.
54079        - You can also assign filter from the query parameter.
54080
54081        * inspector/front-end/test-runner.html:
54082
540832012-08-20  Pavel Feldman  <pfeldman@chromium.org>
54084
54085        Web Inspector: load scripts panel lazily
54086        https://bugs.webkit.org/show_bug.cgi?id=94416
54087
54088        Reviewed by Vsevolod Vlasov.
54089
54090        - removes access to WebInspector.panels.scripts and loads it lazily.
54091        - extracts classes to their own files when classes residing in one file belong to different modules
54092        - removes StylesPanel.js in favor of the actual classes it contains 
54093
54094        * WebCore.gypi:
54095        * WebCore.vcproj/WebCore.vcproj:
54096        * WebCore.xcodeproj/project.pbxproj:
54097        * inspector/compile-front-end.py:
54098        * inspector/front-end/AdvancedSearchController.js:
54099        (WebInspector.AdvancedSearchController.prototype.handleShortcut):
54100        * inspector/front-end/BreakpointsSidebarPane.js:
54101        * inspector/front-end/FilteredItemSelectionDialog.js:
54102        * inspector/front-end/InspectorFrontendAPI.js:
54103        (InspectorFrontendAPI._pendingCommands.isDebuggingEnabled):
54104        (InspectorFrontendAPI.setDebuggingEnabled):
54105        * inspector/front-end/NativeBreakpointsSidebarPane.js: Added.
54106        (WebInspector.NativeBreakpointsSidebarPane):
54107        (WebInspector.NativeBreakpointsSidebarPane.prototype._addListElement):
54108        (WebInspector.NativeBreakpointsSidebarPane.prototype._removeListElement):
54109        (WebInspector.NativeBreakpointsSidebarPane.prototype._reset):
54110        * inspector/front-end/ObjectPropertiesSection.js:
54111        (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
54112        * inspector/front-end/ScriptSnippetModel.js:
54113        * inspector/front-end/ScriptsPanel.js:
54114        (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
54115        * inspector/front-end/SnippetJavaScriptSourceFrame.js: Added.
54116        (WebInspector.SnippetJavaScriptSourceFrame):
54117        (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
54118        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
54119        * inspector/front-end/StyleSheetOutlineDialog.js: Added.
54120        (WebInspector.StyleSheetOutlineDialog):
54121        (WebInspector.StyleSheetOutlineDialog.show):
54122        (WebInspector.StyleSheetOutlineDialog.prototype.itemTitleAt):
54123        (WebInspector.StyleSheetOutlineDialog.prototype.itemSubtitleAt):
54124        (WebInspector.StyleSheetOutlineDialog.prototype.itemKeyAt):
54125        (WebInspector.StyleSheetOutlineDialog.prototype.itemsCount):
54126        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
54127        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
54128        (WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
54129        (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):
54130        * inspector/front-end/StyleSource.js: Renamed from Source/WebCore/inspector/front-end/StylesPanel.js.
54131        (WebInspector.StylesUISourceCodeProvider):
54132        (WebInspector.StylesUISourceCodeProvider.prototype.uiSourceCodes):
54133        (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
54134        (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
54135        (WebInspector.StylesUISourceCodeProvider.prototype._populate):
54136        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
54137        (WebInspector.StylesUISourceCodeProvider.prototype.reset):
54138        (WebInspector.StyleSource):
54139        (WebInspector.StyleSource.prototype.isEditable):
54140        (WebInspector.StyleSource.prototype.workingCopyCommitted):
54141        (WebInspector.StyleSource.prototype.workingCopyChanged):
54142        (WebInspector.StyleSource.prototype._callOrSetTimeout):
54143        (WebInspector.StyleSource.prototype._commitIncrementalEdit):
54144        (WebInspector.StyleSource.prototype._clearIncrementalUpdateTimer):
54145        (WebInspector.InspectorStyleSource):
54146        * inspector/front-end/WebKit.qrc:
54147        * inspector/front-end/inspector.html:
54148        * inspector/front-end/inspector.js:
54149        (WebInspector._panelDescriptors):
54150        (WebInspector._registerShortcuts):
54151        (WebInspector.documentKeyDown):
54152        (WebInspector._showAnchorLocation):
54153
541542012-08-20  Dominik Röttsches  <dominik.rottsches@intel.com>
54155
54156        [EFL] Get rid of pango backend support once harfbuzz-ng is working
54157        https://bugs.webkit.org/show_bug.cgi?id=92102
54158
54159        Reviewed by Kenneth Rohde Christiansen.
54160
54161        Removing support for Pango complex font rendering now that we HarfBuzz.
54162
54163        No new tests, no change in behavior.
54164
54165        * PlatformEfl.cmake: Removing Pango specific includes and libraries.
54166
541672012-08-20  Pavel Feldman  <pfeldman@chromium.org>
54168
54169        Web Inspector: prepare scripts panel to be lazily loaded
54170        https://bugs.webkit.org/show_bug.cgi?id=94423
54171
54172        Reviewed by Vsevolod Vlasov.
54173
54174        - makes scripts panel read workspace data upon creation
54175        - moves pause on script state management into the debugger model
54176        - updates frontend API to use debugger model, not scripts panel
54177
54178        * inspector/front-end/DebuggerModel.js:
54179        (WebInspector.DebuggerModel.prototype.debuggerEnabled):
54180        (WebInspector.DebuggerModel.prototype.disableDebugger):
54181        (WebInspector.DebuggerModel.prototype._debuggerWasEnabled):
54182        (WebInspector.DebuggerModel.prototype._pauseOnExceptionStateChanged):
54183        (WebInspector.DebuggerModel.prototype.get _debuggerWasDisabled):
54184        * inspector/front-end/InspectorFrontendAPI.js:
54185        (InspectorFrontendAPI._pendingCommands.isDebuggingEnabled):
54186        (InspectorFrontendAPI.setDebuggingEnabled):
54187        * inspector/front-end/ScriptsPanel.js:
54188        (WebInspector.ScriptsPanel):
54189        (WebInspector.ScriptsPanel.prototype._debuggerWasEnabled):
54190        (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
54191        (WebInspector.ScriptsPanel.prototype._reset):
54192        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
54193        (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
54194        (WebInspector.ScriptsPanel.prototype._enableDebugging):
54195        (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions):
54196        (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
54197        * inspector/front-end/inspector.js:
54198        (WebInspector.documentKeyDown):
54199
542002012-08-20  Robin Cao  <robin.cao@torchmobile.com.cn>
54201
54202        [BlackBerry] Adapt to changes in the platform media player API
54203        https://bugs.webkit.org/show_bug.cgi?id=94329
54204        PR #194237
54205
54206        Reviewed by Antonio Gomes.
54207
54208        The interface to platform's media player has changed from MMRPlayer
54209        to PlatformPlayer. This patch adapts to this change.
54210
54211        And we also decided to postpone the creation of PlatformPlayer until
54212        the loading started. This is needed because we may create different
54213        types of player for different media sources.
54214
54215        This is a refactor, no new tests.
54216
54217        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
54218        (WebCore::MediaPlayerPrivate::getSupportedTypes):
54219        (WebCore::MediaPlayerPrivate::supportsType):
54220        (WebCore::MediaPlayerPrivate::notifyAppActivatedEvent):
54221        (WebCore::MediaPlayerPrivate::setCertificatePath):
54222        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
54223        (WebCore::MediaPlayerPrivate::load):
54224        (WebCore::MediaPlayerPrivate::cancelLoad):
54225        (WebCore::MediaPlayerPrivate::prepareToPlay):
54226        (WebCore::MediaPlayerPrivate::play):
54227        (WebCore::MediaPlayerPrivate::pause):
54228        (WebCore::MediaPlayerPrivate::naturalSize):
54229        (WebCore::MediaPlayerPrivate::hasVideo):
54230        (WebCore::MediaPlayerPrivate::hasAudio):
54231        (WebCore::MediaPlayerPrivate::duration):
54232        (WebCore::MediaPlayerPrivate::currentTime):
54233        (WebCore::MediaPlayerPrivate::seek):
54234        (WebCore::MediaPlayerPrivate::setRate):
54235        (WebCore::MediaPlayerPrivate::paused):
54236        (WebCore::MediaPlayerPrivate::setVolume):
54237        (WebCore::MediaPlayerPrivate::maxTimeSeekable):
54238        (WebCore::MediaPlayerPrivate::buffered):
54239        (WebCore::MediaPlayerPrivate::paint):
54240        (WebCore::MediaPlayerPrivate::hasAvailableVideoFrame):
54241        (WebCore::MediaPlayerPrivate::movieLoadType):
54242        (WebCore::MediaPlayerPrivate::setAllowPPSVolumeUpdates):
54243        (WebCore::MediaPlayerPrivate::updateStates):
54244        (WebCore):
54245        (WebCore::MediaPlayerPrivate::onStateChanged):
54246        (WebCore::MediaPlayerPrivate::onMediaStatusChanged):
54247        (WebCore::MediaPlayerPrivate::onError):
54248        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
54249        (WebCore::MediaPlayerPrivate::showErrorDialog):
54250        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
54251        (MediaPlayerPrivate):
54252
542532012-08-19  Kentaro Hara  <haraken@chromium.org>
54254
54255        [V8] Move contextDebugId() and setContextDebugId() from V8Proxy to ScriptController
54256        https://bugs.webkit.org/show_bug.cgi?id=94446
54257
54258        Reviewed by Adam Barth.
54259
54260        To kill V8Proxy, we can move contextDebugId() and setContextDebugId()
54261        from V8Proxy to ScriptController.
54262
54263        No tests. No change in behavior.
54264
54265        * bindings/v8/ScriptController.cpp:
54266        (WebCore::ScriptController::setContextDebugId):
54267        (WebCore):
54268        (WebCore::ScriptController::contextDebugId):
54269        * bindings/v8/ScriptController.h:
54270        (ScriptController):
54271        * bindings/v8/V8IsolatedContext.cpp:
54272        (WebCore::V8IsolatedContext::V8IsolatedContext):
54273        * bindings/v8/V8Proxy.cpp:
54274        * bindings/v8/V8Proxy.h:
54275        (V8Proxy):
54276
542772012-08-20  Kentaro Hara  <haraken@chromium.org>
54278
54279        [V8] Move V8Proxy::newInstance() to V8ObjectConstructor
54280        https://bugs.webkit.org/show_bug.cgi?id=94443
54281
54282        Reviewed by Adam Barth.
54283
54284        To kill V8Proxy, this patch moves V8Proxy::newInstance() to
54285        V8ObjectConstructor::newInstanceInFrame().
54286        In addition, this patch does the following things:
54287
54288        - For consistency with V8ObjectConstructor::newInstanceInFrame(),
54289        this patch inserts an if(v8::V8::IsDead()) check to just after
54290        Function::NewInstance(). The check is done by V8Binding::assertIfV8IsDead().
54291
54292        - To avoid #include circular dependency, this patch de-inline
54293        V8ObjectConstructor::newInstance()s. I didn't observe any perf regression.
54294        I don't think these methods are worth being inlined, because
54295        these methods call Function::NewInstance(), which is not inlined
54296        and calls a bunch of heavy mehtods in V8.
54297
54298        No tests. No change in behavior.
54299
54300        * bindings/v8/NPV8Object.cpp:
54301        (_NPN_Construct):
54302        * bindings/v8/V8Binding.cpp:
54303        (WebCore::assertIfV8IsDead):
54304        (WebCore):
54305        * bindings/v8/V8Binding.h:
54306        (WebCore):
54307        * bindings/v8/V8ObjectConstructor.cpp:
54308        (WebCore::V8ObjectConstructor::newInstance):
54309        (WebCore):
54310        (WebCore::V8ObjectConstructor::newInstanceInFrame):
54311        * bindings/v8/V8ObjectConstructor.h:
54312        (WebCore):
54313        (V8ObjectConstructor):
54314        * bindings/v8/V8Proxy.cpp:
54315        (WebCore::V8Proxy::runScript):
54316        (WebCore::V8Proxy::instrumentedCallFunction):
54317
543182012-08-20  Kentaro Hara  <haraken@chromium.org>
54319
54320        [V8] Move V8Proxy::m_extensions to ScriptController
54321        https://bugs.webkit.org/show_bug.cgi?id=94444
54322
54323        Reviewed by Adam Barth.
54324
54325        To kill V8Proxy, this patch moves V8Proxy::m_extensions to ScriptController.
54326        This patch also renames extensions() to registeredExtensions() for clarification.
54327
54328        No tests. No change in behavior.
54329
54330        * bindings/v8/ScriptController.cpp:
54331        (WebCore::ScriptController::registeredExtensions):
54332        (WebCore):
54333        (WebCore::ScriptController::registerExtensionIfNeeded):
54334        * bindings/v8/ScriptController.h:
54335        (WebCore):
54336        (ScriptController):
54337        * bindings/v8/V8DOMWindowShell.cpp:
54338        (WebCore::V8DOMWindowShell::createNewContext):
54339        * bindings/v8/V8Proxy.cpp:
54340        * bindings/v8/V8Proxy.h:
54341        (WebCore):
54342        (V8Proxy):
54343
543442012-08-20  Pavel Feldman  <pfeldman@chromium.org>
54345
54346        Web Inspector: toolbar causes 8 reflows upon opening
54347        https://bugs.webkit.org/show_bug.cgi?id=94422
54348
54349        Reviewed by Yury Semikhatsky.
54350
54351        Toolbar's overflow code causes inspector to do 8 reflows upon opening.
54352        Fixing it via introducing batch toolbar update.
54353
54354        * inspector/front-end/Toolbar.js:
54355        (WebInspector.Toolbar):
54356        (WebInspector.Toolbar.prototype.setCoalescingUpdate):
54357        (WebInspector.Toolbar.prototype._updateDropdownButtonAndHideDropdown):
54358        * inspector/front-end/inspector.css:
54359        (body.compact .toolbar-icon):
54360        (body.compact .toolbar-icon.custom-toolbar-icon):
54361        (body.compact .toolbar-item:active .toolbar-icon):
54362        (body.compact .toolbar-label):
54363        (body.compact .toolbar-item.resources .toolbar-icon):
54364        (body.compact .toolbar-item.network .toolbar-icon):
54365        (body.compact .toolbar-item.scripts .toolbar-icon):
54366        (body.compact .toolbar-item.timeline .toolbar-icon):
54367        (body.compact .toolbar-item.profiles .toolbar-icon):
54368        (body.compact .toolbar-item.audits .toolbar-icon):
54369        (body.compact .toolbar-item.console .toolbar-icon):
54370        * inspector/front-end/inspector.js:
54371        (WebInspector.get _setCompactMode):
54372        (WebInspector.windowResize):
54373
543742012-08-19  Kentaro Hara  <haraken@chromium.org>
54375
54376        [V8] Replace proxy()->windowShell() in ScriptController with windowShell()
54377        https://bugs.webkit.org/show_bug.cgi?id=94445
54378
54379        Reviewed by Adam Barth.
54380
54381        Now ScriptController owns windowShell. So ScriptController doesn't
54382        need to get windowShell through V8Proxy.
54383
54384        No tests. No change in behavior.
54385
54386        * bindings/v8/ScriptController.cpp:
54387        (WebCore::ScriptController::updateSecurityOrigin):
54388        (WebCore::ScriptController::haveInterpreter):
54389        (WebCore::ScriptController::enableEval):
54390        (WebCore::ScriptController::disableEval):
54391        (WebCore::ScriptController::updateDocument):
54392        (WebCore::ScriptController::namedItemAdded):
54393        (WebCore::ScriptController::namedItemRemoved):
54394
543952012-08-19  Kentaro Hara  <haraken@chromium.org>
54396
54397        [V8] Move V8Proxy::callFunction() to ScriptController
54398        https://bugs.webkit.org/show_bug.cgi?id=94437
54399
54400        Reviewed by Adam Barth.
54401
54402        To kill V8Proxy, this patch moves callFunction() from V8Proxy to ScriptController.
54403
54404        No tests. No change in behavior.
54405
54406        * bindings/v8/DOMTransaction.cpp:
54407        (WebCore::DOMTransaction::callFunction):
54408        * bindings/v8/NPV8Object.cpp:
54409        (_NPN_Invoke):
54410        (_NPN_InvokeDefault):
54411        * bindings/v8/ScheduledAction.cpp:
54412        (WebCore::ScheduledAction::execute):
54413        * bindings/v8/ScheduledAction.h:
54414        (WebCore):
54415        (ScheduledAction):
54416        * bindings/v8/ScriptController.cpp:
54417        (WebCore::ScriptController::callFunction):
54418        (WebCore):
54419        (WebCore::ScriptController::callFunctionEvenIfScriptDisabled):
54420        * bindings/v8/ScriptController.h:
54421        (ScriptController):
54422        * bindings/v8/V8EventListener.cpp:
54423        (WebCore::V8EventListener::callListenerFunction):
54424        * bindings/v8/V8LazyEventListener.cpp:
54425        (WebCore::V8LazyEventListener::callListenerFunction):
54426        * bindings/v8/V8Proxy.cpp:
54427        * bindings/v8/V8Proxy.h:
54428        (V8Proxy):
54429        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
54430        (WebCore::V8HTMLDocument::openCallback):
54431
544322012-08-19  Yoshifumi Inoue  <yosin@chromium.org>
54433
54434        [Forms] Set SpinButtonElement free from HTMLInputElement
54435        https://bugs.webkit.org/show_bug.cgi?id=93941
54436
54437        Reviewed by Kent Tamura.
54438
54439        This patch removes dependency to HTMLInputElement from SpinButtonElement.
54440
54441        Functionalities used to be calling HTMLInputElement functions are
54442        replaced to calling functions SpinButtonOwner class.
54443
54444        * html/TextFieldInputType.cpp:
54445        (WebCore::TextFieldInputType::focusAndSelectSpinButtonOwner): Moved functionality from SpinButtonElement::defaultEventHandler.
54446        (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Moved code from SpinButtonElement::willRespondToMouseClickEvents
54447        (WebCore::TextFieldInputType::shouldSpinButtonRespondToWheelEvents): Moved code from SpinButtonElement::forwardEvent
54448        * html/TextFieldInputType.h:
54449        (TextFieldInputType):
54450        * html/TimeInputType.cpp:
54451        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::focusAndSelectEditControlOwner): Moved functionality from SpinButtonElement::defaultEventHandler.
54452        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerFocused): Added for DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
54453        * html/TimeInputType.h:
54454        * html/shadow/DateTimeEditElement.cpp:
54455        (WebCore::DateTimeEditElement::focusAndSelectSpinButtonOwner): Added for SpinButtonElementOwner class change.
54456        (WebCore::DateTimeEditElement::shouldSpinButtonRespondToMouseEvents): ditto
54457        (WebCore::DateTimeEditElement::shouldSpinButtonRespondToWheelEvents): ditto
54458        * html/shadow/DateTimeEditElement.h:
54459        (EditControlOwner): Added new virtual function declarations for SpinButtonElementOwner class change.
54460        (DateTimeEditElement): Added new function declarations for SpinButtonElementOwner.
54461        * html/shadow/SpinButtonElement.cpp:
54462        (WebCore::SpinButtonElement::defaultEventHandler): Changed to use SpinButtonElementOwner instead of HTMLInputElement.
54463        (WebCore::SpinButtonElement::forwardEvent): ditto
54464        (WebCore::SpinButtonElement::willRespondToMouseMoveEvents): ditto
54465        (WebCore::SpinButtonElement::willRespondToMouseClickEvents): ditto
54466        (WebCore::SpinButtonElement::step): ditto
54467        (WebCore::SpinButtonElement::shouldRespondToMouseEvents): Added helper function for calling SpinButtonOwner instance.
54468        * html/shadow/SpinButtonElement.h:
54469        (SpinButtonOwner): Added new virtual function declarations.
54470        (SpinButtonElement):
54471
544722012-08-19  Yoshifumi Inoue  <yosin@chromium.org>
54473
54474        [Tests] time-multiple-fields-appearance-basic.html and time-multiple-fields-appearance-pseudo-elements.html are failed on Chromium Mac
54475        https://bugs.webkit.org/show_bug.cgi?id=94439
54476
54477        Reviewed by Kent Tamura.
54478
54479        This patch disabled CSS selector for Firefox compatibility applied to
54480        multiple fields time input UI, because it is supposed to apply text
54481        field rather than multiple fields.
54482
54483        This patch allows us to have same appearance among Chromium-Linux,
54484        Mac and Win.
54485
54486        No new tests. Following existing tests cover this change:
54487          fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html
54488          fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly.html
54489          fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes.html
54490          fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements.html
54491          fast/forms/time-multiple-fields/time-multiple-fields-appearance-style.html
54492
54493        * css/themeWin.css: Exclude input[type="time"] selector if ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
54494        enabled.
54495
544962012-08-19  Kentaro Hara  <haraken@chromium.org>
54497
54498        [V8] Rename SafeAllocation to V8ObjectConstructor
54499        https://bugs.webkit.org/show_bug.cgi?id=94436
54500
54501        Reviewed by Adam Barth.
54502
54503        For clarification.
54504
54505        No tests. No change in behavior.
54506
54507        * UseV8.cmake:
54508        * WebCore.gypi:
54509        * bindings/v8/ScriptFunctionCall.cpp:
54510        (WebCore::ScriptFunctionCall::construct):
54511        * bindings/v8/V8Binding.cpp:
54512        (WebCore::createRawTemplate):
54513        * bindings/v8/V8Binding.h:
54514        * bindings/v8/V8DOMWindowShell.cpp:
54515        (WebCore::V8DOMWindowShell::installDOMWindow):
54516        * bindings/v8/V8DOMWrapper.cpp:
54517        (WebCore::V8DOMWrapper::instantiateV8Object):
54518        * bindings/v8/V8NPObject.cpp:
54519        (WebCore::createV8ObjectForNPObject):
54520        * bindings/v8/V8ObjectConstructor.cpp: Renamed from Source/WebCore/bindings/v8/SafeAllocation.cpp.
54521        (WebCore):
54522        (WebCore::V8ObjectConstructor::isValidConstructorMode):
54523        * bindings/v8/V8ObjectConstructor.h: Renamed from Source/WebCore/bindings/v8/SafeAllocation.h.
54524        (WebCore):
54525        (ConstructorMode):
54526        (WebCore::ConstructorMode::ConstructorMode):
54527        (WebCore::ConstructorMode::~ConstructorMode):
54528        (WebCore::ConstructorMode::current):
54529        (V8ObjectConstructor):
54530        (WebCore::V8ObjectConstructor::newInstance):
54531        * bindings/v8/V8PerContextData.cpp:
54532        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
54533        * bindings/v8/WorkerContextExecutionProxy.cpp:
54534        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
54535        * bindings/v8/custom/V8InjectedScriptManager.cpp:
54536        (WebCore::createInjectedScriptHostV8Wrapper):
54537        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
54538        (WebCore::toV8):
54539        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
54540        (WebCore::toV8):
54541
545422012-08-19  Kentaro Hara  <haraken@chromium.org>
54543
54544        [V8] Move m_windowShell from V8Proxy to ScriptController
54545        https://bugs.webkit.org/show_bug.cgi?id=94438
54546
54547        Reviewed by Adam Barth.
54548
54549        m_windowShell should be owned by ScriptController.
54550        After this change, I can move a bunch of V8Proxy methods
54551        that access windowShell() from V8Proxy to ScriptController.
54552
54553        No tests. No change in behavior.
54554
54555        * bindings/v8/ScriptController.cpp:
54556        (WebCore::ScriptController::ScriptController):
54557        * bindings/v8/ScriptController.h:
54558        (WebCore):
54559        (WebCore::ScriptController::windowShell):
54560        (ScriptController):
54561        * bindings/v8/V8Binding.h:
54562        * bindings/v8/V8Proxy.cpp:
54563        (WebCore::V8Proxy::V8Proxy):
54564        (WebCore::V8Proxy::windowShell):
54565        (WebCore):
54566        * bindings/v8/V8Proxy.h:
54567        (WebCore):
54568        (WebCore::V8Proxy::frame):
54569        (V8Proxy):
54570
545712012-08-19  Benjamin Poulain  <benjamin@webkit.org>
54572
54573        Do not allocate SQLiteDatabase's m_openErrorMessage until its needed
54574        https://bugs.webkit.org/show_bug.cgi?id=94434
54575
54576        Reviewed by Andreas Kling.
54577
54578        Previously, m_openErrorMessage was initialized from a static literal string whenever
54579        the database is not open.
54580
54581        This patch changes the way we use m_openErrorMessage to only allocate a string in the
54582        few cases where we need it. If there is no error message, we fallback to the previous
54583        default string.
54584
54585        The goal is to prevent allocating the string unless needed. That saves initialization time
54586        and memory.
54587
54588        * platform/sql/SQLiteDatabase.cpp:
54589        (WebCore::SQLiteDatabase::SQLiteDatabase):
54590        (WebCore::SQLiteDatabase::close):
54591        (WebCore::SQLiteDatabase::lastErrorMsg):
54592
545932012-08-19  Benjamin Poulain  <benjamin@webkit.org>
54594
54595        Use initialization from literal for HTML Input type names
54596        https://bugs.webkit.org/show_bug.cgi?id=94421
54597
54598        Reviewed by Kent Tamura.
54599
54600        AtomicString's initialization from literal is faster and use less memory.
54601
54602        * html/InputType.cpp:
54603        (WebCore::InputTypeNames::button):
54604        (WebCore::InputTypeNames::checkbox):
54605        (WebCore::InputTypeNames::color):
54606        (WebCore::InputTypeNames::date):
54607        (WebCore::InputTypeNames::datetime):
54608        (WebCore::InputTypeNames::datetimelocal):
54609        (WebCore::InputTypeNames::email):
54610        (WebCore::InputTypeNames::file):
54611        (WebCore::InputTypeNames::hidden):
54612        (WebCore::InputTypeNames::image):
54613        (WebCore::InputTypeNames::month):
54614        (WebCore::InputTypeNames::number):
54615        (WebCore::InputTypeNames::password):
54616        (WebCore::InputTypeNames::radio):
54617        (WebCore::InputTypeNames::range):
54618        (WebCore::InputTypeNames::reset):
54619        (WebCore::InputTypeNames::search):
54620        (WebCore::InputTypeNames::submit):
54621        (WebCore::InputTypeNames::telephone):
54622        (WebCore::InputTypeNames::text):
54623        (WebCore::InputTypeNames::time):
54624        (WebCore::InputTypeNames::url):
54625        (WebCore::InputTypeNames::week):
54626
546272012-08-19  Benjamin Poulain  <benjamin@webkit.org>
54628
54629        Remove the static Strings used for outputting values of CSS_ATTR, CSS_COUNTER, CSS_RECT
54630        https://bugs.webkit.org/show_bug.cgi?id=94420
54631
54632        Reviewed by Kentaro Hara.
54633
54634        Use the new StringBuilder::appendLiteral() instead of keeping some WTF::String in
54635        memory.
54636
54637        The patch reduces memory usage.
54638        It also reduces the binary size (-1672 bytes on x86_64).
54639        I did not measure any difference in performance.
54640
54641        * css/CSSPrimitiveValue.cpp:
54642        (WebCore::CSSPrimitiveValue::customCssText):
54643
546442012-08-19  Rik Cabanier  <cabanier@adobe.com>
54645
54646        parse CSS attribute -webkit-blend-mode
54647        https://bugs.webkit.org/show_bug.cgi?id=94024
54648 
54649        Reviewed by Dirk Schulze.
54650
54651        Added parsing and general CSS handling of -webkit-blend-mode per http://www.w3.org/TR/2012/WD-compositing-20120816/
54652
54653        Tests: css3/compositing/blend-mode-property-parsing-invalid.html
54654               css3/compositing/blend-mode-property-parsing.html
54655               css3/compositing/blend-mode-property.html
54656
54657        * css/CSSComputedStyleDeclaration.cpp:
54658        (WebCore):
54659        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
54660        * css/CSSParser.cpp:
54661        (WebCore::isValidKeywordPropertyAndValue):
54662        (WebCore::isKeywordPropertyID):
54663        (WebCore::CSSParser::parseValue):
54664        * css/CSSProperty.cpp:
54665        (WebCore::CSSProperty::isInheritedProperty):
54666        * css/CSSPropertyNames.in:
54667        * css/CSSValueKeywords.in:
54668        * css/StyleBuilder.cpp:
54669        (WebCore::StyleBuilder::StyleBuilder):
54670        * rendering/RenderLayer.h:
54671        (RenderLayer):
54672        * rendering/RenderLayerBacking.cpp:
54673        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
54674        (WebCore):
54675        (WebCore::RenderLayerBacking::updateLayerBlendMode):
54676        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
54677        (WebCore::RenderLayerBacking::setBlendMode):
54678        * rendering/RenderLayerBacking.h:
54679        (RenderLayerBacking):
54680        * rendering/style/RenderStyle.cpp:
54681        (WebCore::RenderStyle::diff):
54682        * rendering/style/RenderStyle.h:
54683        * rendering/style/StyleRareNonInheritedData.cpp:
54684        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
54685        (WebCore::StyleRareNonInheritedData::operator==):
54686        * rendering/style/StyleRareNonInheritedData.h:
54687        (StyleRareNonInheritedData):
54688
546892012-08-19  MORITA Hajime  <morrita@google.com>
54690
54691        DOM mutation against including <link> shouldn't trigger pending HTML parser.
54692        https://bugs.webkit.org/show_bug.cgi?id=93641
54693
54694        Reviewed by Ryosuke Niwa.
54695
54696        HTMLLinkElement::removedFrom() invoked Document::removePendingSheet(), which can trigger
54697        HTMLParser that can mutate DOM tree. DOM mutation reentrancy on like this is problematic and
54698        should be prohibited.
54699
54700        This change add an variation of Document::removePendingSheet() which postpones the notification
54701        which triggers DOM mutation, and flush such pending notifications at the end of ongoing mutation.
54702
54703        Test: http/tests/loading/remove-child-triggers-parser.html
54704
54705        * dom/ContainerNodeAlgorithms.h:
54706        (WebCore::ChildNodeRemovalNotifier::notify): Flushed pending notifications at the end.
54707        * dom/Document.cpp:
54708        (WebCore::Document::Document):
54709        (WebCore::Document::removePendingSheet): Added RemovePendingSheetNotificationType parameter.
54710        (WebCore):
54711        (WebCore::Document::didRemoveAllPendingStylesheet): Extracted from removePendingSheet()
54712        * dom/Document.h:
54713        (Document):
54714        (WebCore::Document::setNeedsNotifyRemoveAllPendingStylesheet): A flag setter.
54715        (WebCore::Document::notifyRemovePendingSheetIfNeeded):
54716        (WebCore):
54717        * html/HTMLLinkElement.cpp:
54718        (WebCore::HTMLLinkElement::removedFrom): Switched to use "notification later" version of removePendingSheet()
54719        (WebCore::HTMLLinkElement::removePendingSheet): Added RemovePendingSheetNotificationType parameter.
54720        * html/HTMLLinkElement.h:
54721
547222012-08-19  Kentaro Hara  <haraken@chromium.org>
54723
54724        Remove RefPtr from HTMLProgressElement::m_value
54725        https://bugs.webkit.org/show_bug.cgi?id=94336
54726
54727        Reviewed by Kent Tamura.
54728
54729        To avoid reference cycles of RefPtr<Node>s, we want to remove
54730        unnecessary RefPtr<Node>s. The rationale is described in bug 94324.
54731
54732        HTMLProgressElement::m_value does not need to be a RefPtr<Node>, because
54733        it is guaranteed to point to a shadow DOM tree of the HTMLProgressElement
54734        node, which is guaranteed to exist in the subtree of the HTMLProgressElement node.
54735
54736        No tests. No change in behavior.
54737
54738        * html/HTMLProgressElement.cpp:
54739        (WebCore::HTMLProgressElement::HTMLProgressElement):
54740        (WebCore::HTMLProgressElement::createShadowSubtree):
54741        * html/HTMLProgressElement.h:
54742
547432012-08-19  Kentaro Hara  <haraken@chromium.org>
54744
54745        Remove RefPtr from SearchInputType::m_resultsButton and SearchInputType::m_cancelButton
54746        https://bugs.webkit.org/show_bug.cgi?id=94339
54747
54748        Reviewed by Kent Tamura.
54749
54750        To avoid reference cycles of RefPtr<Node>s, we want to remove unnecessary
54751        RefPtr<Node>s. The rationale is described in bug 94324.
54752
54753        SearchInputType::m_resultsButton and SearchInputType::m_cancelButton do not
54754        need to be RefPtr<Node>s, because they are guaranteed to point to the shadow
54755        DOM tree of the SearchInputType node, which is guaranteed to exist in the
54756        subtree of the SearchInputType node.
54757
54758        No tests. No change in behavior.
54759
54760        * html/SearchInputType.cpp:
54761        (WebCore::SearchInputType::SearchInputType):
54762        (WebCore::SearchInputType::createShadowSubtree):
54763        (WebCore::SearchInputType::resultsButtonElement):
54764        (WebCore::SearchInputType::cancelButtonElement):
54765        (WebCore::SearchInputType::destroyShadowSubtree):
54766        (WebCore::SearchInputType::subtreeHasChanged):
54767        * html/SearchInputType.h:
54768        (SearchInputType):
54769
547702012-08-19  Mike West  <mkwst@chromium.org>
54771
54772        CSP 1.1: Add 'plugin-types' and 'form-action' DOM API.
54773        https://bugs.webkit.org/show_bug.cgi?id=94415
54774
54775        Reviewed by Adam Barth.
54776
54777        Experimental implementations of the new 'plugin-types' and 'form-action'
54778        directives recently landed, but we neglected to add DOM API endpoints to
54779        query their state. Those APIs have been added to the specification[1],
54780        and this patch brings our implementation up to date.
54781
54782        Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowformaction.html
54783               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowplugintype.html
54784
54785        * page/DOMSecurityPolicy.cpp:
54786        (isAllowed):
54787            As a drive-by, change a parameter from a KURL to a String to match
54788            the actual template. There's no reason to stringify an empty URL
54789            when we can just use an empty string instead.
54790        (isAllowedWithType):
54791            Call out to the ContentSecurityPolicy object to check the protected
54792            resource's ability to load a given media type.
54793        (WebCore::DOMSecurityPolicy::allowsFormAction):
54794            Call out to the ContentSecurityPolicy object to check the protected
54795            resource's ability to submit a form to the given URL.
54796        (WebCore):
54797        (WebCore::DOMSecurityPolicy::allowsPluginType):
54798            Pipes the plugin type through 'isAllowedWithType' for resolution.
54799        * page/DOMSecurityPolicy.h:
54800            Add the 'allowsPluginType' and 'allowsFormAction' methods.
54801        (DOMSecurityPolicy):
54802        * page/DOMSecurityPolicy.idl:
54803            Add the 'allowsPluginType' and 'allowsFormAction' methods.
54804
548052012-08-19  Pavel Feldman  <pfeldman@chromium.org>
54806
54807        Web Inspector: load network panel lazily
54808        https://bugs.webkit.org/show_bug.cgi?id=94414
54809
54810        Reviewed by Vsevolod Vlasov.
54811
54812        This change removes access to WebInspector.panels.network and loads it lazily.
54813
54814        * WebCore.gypi:
54815        * WebCore.xcodeproj/project.pbxproj:
54816        * inspector/front-end/ConsoleMessage.js:
54817        (WebInspector.ConsoleMessageImpl):
54818        (WebInspector.ConsoleMessageImpl.prototype.clone):
54819        * inspector/front-end/ConsoleModel.js:
54820        (WebInspector.ConsoleMessage.create):
54821        (WebInspector.ConsoleDispatcher.prototype.messageAdded):
54822        * inspector/front-end/ConsoleView.js:
54823        (WebInspector.ConsoleMessage.create):
54824        * inspector/front-end/NetworkLog.js:
54825        (WebInspector.NetworkLog):
54826        (WebInspector.NetworkLog.prototype._onRequestStarted):
54827        (WebInspector.NetworkLog.prototype._onLoad):
54828        (WebInspector.NetworkLog.prototype.requestForId):
54829        * inspector/front-end/NetworkManager.js:
54830        (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
54831        * inspector/front-end/NetworkPanel.js:
54832        (WebInspector.NetworkLogView):
54833        * inspector/front-end/ScriptSnippetModel.js:
54834        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
54835        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
54836        * inspector/front-end/externs.js:
54837        * inspector/front-end/inspector.html:
54838        * inspector/front-end/inspector.js:
54839        (WebInspector._panelDescriptors):
54840        (WebInspector._showAnchorLocation):
54841
548422012-08-19  Sheriff Bot  <webkit.review.bot@gmail.com>
54843
54844        Unreviewed, rolling out r125976.
54845        http://trac.webkit.org/changeset/125976
54846        https://bugs.webkit.org/show_bug.cgi?id=94430
54847
54848        it does not fix build. (Requested by pfeldman on #webkit).
54849
54850        * GNUmakefile.am:
54851        * GNUmakefile.list.am:
54852
548532012-08-19  Carlos Garcia Campos  <cgarcia@igalia.com>
54854
54855        Unreviewed. Fix make distcheck.
54856
54857        * GNUmakefile.am: Add idl files in Modules/quota to EXTRA_DIST.
54858        * GNUmakefile.list.am: Add missing files to compilation.
54859
548602012-08-19  Andreas Kling  <kling@webkit.org>
54861
54862        Remove unused ElementAttributeData::removeAttribute() overload.
54863        <http://webkit.org/b/94425>
54864
54865        Reviewed by Antti Koivisto.
54866
54867        * dom/ElementAttributeData.h:
54868        (ElementAttributeData):
54869
548702012-08-18  Philip Rogers  <pdr@google.com>
54871
54872        Refactor SVGMaskElement to inherit from StyledElement
54873        https://bugs.webkit.org/show_bug.cgi?id=94418
54874
54875        Reviewed by Dirk Schulze.
54876
54877        Previously, SVGMaskElement inherited from SVGStyledLocatableElement which includes
54878        several unnecessary functions (e.g., getBBox()). This patch refactors SVGMaskElement
54879        to inherit from SVGStyledElement which matches the spec:
54880        http://www.w3.org/TR/SVG/single-page.html#masking-InterfaceSVGMaskElement
54881
54882        No new tests as this is just a refactoring.
54883
54884        * svg/SVGMaskElement.cpp:
54885        (WebCore):
54886        (WebCore::SVGMaskElement::SVGMaskElement):
54887        * svg/SVGMaskElement.h:
54888
548892012-08-18  Andreas Kling  <kling@webkit.org>
54890
54891        CSSValueList: Reserve the exact amount of space needed when constructing from CSS parser.
54892        (No bug URL as Bugzilla is down today.)
54893
54894        Reviewed by Antti Koivisto.
54895
54896        Use Vector::reserveInitialCapacity() when constructing a CSSValueList from a CSSParserValueList
54897        since we have the final length available. Also inlined the trivial append() and prepend().
54898
54899        * css/CSSValueList.cpp:
54900        (WebCore::CSSValueList::CSSValueList):
54901        * css/CSSValueList.h:
54902        (WebCore::CSSValueList::append):
54903        (WebCore::CSSValueList::prepend):
54904
549052012-08-18  Pavel Feldman  <pfeldman@chromium.org>
54906
54907        Web Inspector: make profiles panel a lazily loaded module.
54908        https://bugs.webkit.org/show_bug.cgi?id=94351
54909
54910        Reviewed by Yury Semikhatsky.
54911
54912        - removed usages of WebInspector.panels.profiles.
54913        - made panel lazily loaded
54914
54915        * WebCore.gypi:
54916        * WebCore.xcodeproj/project.pbxproj:
54917        * inspector/front-end/CPUProfileView.js:
54918        (WebInspector.CPUProfileHeader.prototype.createView):
54919        * inspector/front-end/CSSSelectorProfileView.js:
54920        (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
54921        (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
54922        (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
54923        (WebInspector.CSSProfileHeader.prototype.createView):
54924        * inspector/front-end/HeapSnapshotDataGrids.js:
54925        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.revealInDominatorsView):
54926        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.else.revealInSummaryView):
54927        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
54928        * inspector/front-end/HeapSnapshotView.js:
54929        (WebInspector.HeapSnapshotView.prototype._profiles):
54930        (WebInspector.HeapSnapshotView.prototype.populateContextMenu):
54931        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
54932        (WebInspector.HeapProfileHeader.prototype.createView):
54933        * inspector/front-end/InspectorFrontendAPI.js:
54934        (InspectorFrontendAPI.isProfilingJavaScript):
54935        (InspectorFrontendAPI.startProfilingJavaScript):
54936        (InspectorFrontendAPI.stopProfilingJavaScript):
54937        * inspector/front-end/NativeMemorySnapshotView.js:
54938        (WebInspector.NativeMemoryProfileHeader.prototype.createView):
54939        * inspector/front-end/ProfilesPanel.js:
54940        (WebInspector.ProfileType.prototype.buttonClicked):
54941        (WebInspector.ProfileHeader.prototype.view):
54942        (WebInspector.ProfileHeader.prototype.createView):
54943        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
54944        (WebInspector.ProfilesPanel.prototype.showProfileForURL):
54945        (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
54946        (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
54947        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
54948        (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
54949        * inspector/front-end/Settings.js:
54950        * inspector/front-end/externs.js:
54951        * inspector/front-end/inspector.html:
54952        * inspector/front-end/inspector.js:
54953        (WebInspector._panelDescriptors):
54954        (WebInspector._toggleSearchingForNode):
54955        (WebInspector._profilesLinkifier):
54956        (WebInspector._requestZoom.set InspectorFrontendHost):
54957        (WebInspector._requestZoom):
54958        (WebInspector.documentClick.followLink):
54959        (WebInspector.documentClick):
54960
549612012-08-18  Pavel Feldman  <pfeldman@chromium.org>
54962
54963        Web Inspector: load panels code on demand
54964        https://bugs.webkit.org/show_bug.cgi?id=94326
54965
54966        Reviewed by Vsevolod Vlasov.
54967
54968        - Introduces importScript that evals in debug mode and inlines for release
54969        - Loads Element, Resources, Timeline, Audits panels lazily.
54970
54971        * WebCore.gypi:
54972        * WebCore.xcodeproj/project.pbxproj:
54973        * inspector/compile-front-end.py:
54974        * inspector/front-end/AuditsPanel.js:
54975        * inspector/front-end/CodeMirrorTextEditor.js:
54976        (WebInspector.CodeMirrorTextEditor):
54977        (WebInspector.CodeMirrorTextEditor.prototype._toRange):
54978        * inspector/front-end/Color.js:
54979        * inspector/front-end/ElementsPanel.js:
54980        * inspector/front-end/ExtensionServer.js:
54981        (WebInspector.ExtensionServer.prototype._onCreatePanel):
54982        * inspector/front-end/Panel.js:
54983        (WebInspector.Panel):
54984        (WebInspector.PanelDescriptor):
54985        (WebInspector.PanelDescriptor.prototype.panel):
54986        * inspector/front-end/ResourcesPanel.js:
54987        * inspector/front-end/SettingsScreen.js:
54988        (WebInspector.GenericSettingsTab):
54989        * inspector/front-end/SourceFrame.js:
54990        (WebInspector.SourceFrame):
54991        * inspector/front-end/Spectrum.js:
54992        (WebInspector.Spectrum.prototype.get outputColorFormat):
54993        * inspector/front-end/StylesSidebarPane.js:
54994        * inspector/front-end/TimelinePanel.js:
54995        * inspector/front-end/inspector.html:
54996        * inspector/front-end/inspector.js:
54997        (WebInspector._panelDescriptors):
54998        (WebInspector.doLoadedDone):
54999        * inspector/front-end/utilities.js:
55000        * inspector/inline-javascript-imports.py:
55001        (main):
55002
550032012-08-17  Keishi Hattori  <keishi@webkit.org>
55004
55005        Calendar picker shows wrong date when input element has year earlier than 100
55006        https://bugs.webkit.org/show_bug.cgi?id=94100
55007
55008        Reviewed by Kent Tamura.
55009
55010        Date.UTC can't set an year earlier than 100. So when the input has a value earlier than 100, calendar picker shows the wrong date.
55011
55012        Test: fast/forms/date/calendar-picker-appearance-pre-100.html
55013
55014        * Resources/pagepopups/calendarPicker.js:
55015        (createUTCDate): Uses setUTCFullYear when the year is pre 100.
55016        (parseDateString):
55017        (DaysTable.prototype._renderMonth):
55018        (DaysTable.prototype._maybeSetPreviousMonth):
55019        (DaysTable.prototype._maybeSetNextMonth):
55020
550212012-08-17  Vangelis Kokkevis  <vangelis@chromium.org>
55022
55023        [chromium] Fix random noise around text in FPS HUD.
55024        https://bugs.webkit.org/show_bug.cgi?id=94400
55025
55026        Reviewed by James Robinson.
55027
55028        This was the result of an incorrect clear operation on the canvas
55029        that stores the font atlas used by the HUD.
55030
55031
55032        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp:
55033        (WebCore::CompositorHUDFontAtlas::generateFontAtlas):
55034
550352012-08-17  Dirk Pranke  <dpranke@chromium.org>
55036
55037        Unreviewed, rolling out r125897.
55038        http://trac.webkit.org/changeset/125897
55039        https://bugs.webkit.org/show_bug.cgi?id=94326
55040
55041        This patch seems to have broken the inspector on the apple mac bots.
55042
55043        * WebCore.gypi:
55044        * inspector/compile-front-end.py:
55045        * inspector/front-end/AuditsPanel.js:
55046        * inspector/front-end/CodeMirrorTextEditor.js:
55047        (WebInspector.CodeMirrorTextEditor):
55048        (WebInspector.CodeMirrorTextEditor.prototype._toRange):
55049        (WebInspector.CodeMirrorTextEditor.prototype._loadLibraries.loadLibrary):
55050        (WebInspector.CodeMirrorTextEditor.prototype._loadLibraries):
55051        * inspector/front-end/Color.js:
55052        * inspector/front-end/ElementsPanel.js:
55053        * inspector/front-end/ExtensionServer.js:
55054        (WebInspector.ExtensionServer.prototype._onCreatePanel):
55055        * inspector/front-end/Panel.js:
55056        (WebInspector.Panel):
55057        (WebInspector.PanelDescriptor):
55058        (WebInspector.PanelDescriptor.prototype.panel):
55059        * inspector/front-end/ResourcesPanel.js:
55060        * inspector/front-end/SettingsScreen.js:
55061        (WebInspector.GenericSettingsTab):
55062        * inspector/front-end/SourceFrame.js:
55063        (WebInspector.SourceFrame):
55064        * inspector/front-end/Spectrum.js:
55065        (WebInspector.Spectrum.prototype.get outputColorFormat):
55066        * inspector/front-end/StylesSidebarPane.js:
55067        * inspector/front-end/TimelinePanel.js:
55068        * inspector/front-end/inspector.html:
55069        * inspector/front-end/inspector.js:
55070        (WebInspector._panelDescriptors):
55071        (WebInspector.doLoadedDone):
55072        * inspector/front-end/utilities.js:
55073
550742012-08-17  Chris Rogers  <crogers@google.com>
55075
55076        AudioParam must support k-rate processing with audio-rate connections
55077        https://bugs.webkit.org/show_bug.cgi?id=94385
55078
55079        Reviewed by Kenneth Russell.
55080
55081        Fully implement AudioParam *final* value calculation according to spec:
55082        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioParam
55083
55084        In particular, this covers the case where the parameter is k-rate, and we also
55085        have audio-rate connections to the AudioParam.
55086
55087        * Modules/webaudio/AudioParam.cpp:
55088        (WebCore::AudioParam::finalValue):
55089        (WebCore):
55090        (WebCore::AudioParam::calculateSampleAccurateValues):
55091        (WebCore::AudioParam::calculateFinalValues):
55092        * Modules/webaudio/AudioParam.h:
55093        (AudioParam):
55094        * Modules/webaudio/DelayDSPKernel.cpp:
55095        (WebCore::DelayDSPKernel::process):
55096
550972012-08-17  Alice Cheng  <alice_cheng@apple.com>
55098
55099        Preserve styling elements in DeleteSelectionCommand
55100        <rdar://problem/12040676>
55101        https://bugs.webkit.org/show_bug.cgi?id=93643
55102
55103        Reviewed by Ryosuke Niwa.
55104
55105        Styling elements (<link> and <style>) can appear inside editable content. To 
55106        prevent accidental deletion, we move styling elements to rootEditableElement in
55107        DeleteSelectionCommand undoably.
55108
55109        Test: editing/execCommand/delete-selection-has-style.html
55110
55111        * editing/DeleteSelectionCommand.cpp:
55112        (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss): Added to preserve styling elements during the command
55113        (WebCore::DeleteSelectionCommand::handleGeneralDelete):  Modified to preserve styling elements during the command
55114        * editing/DeleteSelectionCommand.h:
55115        (DeleteSelectionCommand):
55116
551172012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
55118
55119        Unreviewed, rolling out r125940.
55120        http://trac.webkit.org/changeset/125940
55121        https://bugs.webkit.org/show_bug.cgi?id=94398
55122
55123        "Causes crashes on the bots
55124        http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r125944%20(2626)/fast/css
55125        /first-letter-removed-added-crash-log.txt" (Requested by
55126        bradee-oh on #webkit).
55127
55128        * rendering/RenderListItem.cpp:
55129        * rendering/RenderListItem.h:
55130        (RenderListItem):
55131        * rendering/RenderObject.cpp:
55132        * rendering/RenderObject.h:
55133        (RenderObject):
55134        * rendering/RenderObjectChildList.cpp:
55135        (WebCore::RenderObjectChildList::removeChildNode):
55136        * rendering/RenderObjectChildList.h:
55137        (RenderObjectChildList):
55138        * rendering/RenderQuote.cpp:
55139        * rendering/RenderQuote.h:
55140        * rendering/RenderRegion.cpp:
55141        * rendering/RenderRegion.h:
55142        (RenderRegion):
55143
551442012-08-17  Sukolsak Sakshuwong  <sukolsak@google.com>
55145
55146        Disconnect UndoManager when its undo scope host is destroyed
55147        https://bugs.webkit.org/show_bug.cgi?id=94388
55148
55149        Reviewed by Ryosuke Niwa.
55150
55151        Disconnect UndoManager in Element's destructor to prevent
55152        use-after-free vulnerabilities.
55153
55154        Test: editing/undomanager/undoscopehost-use-after-free.html
55155
55156        * dom/Element.cpp:
55157        (WebCore::Element::~Element):
55158
551592012-08-17  Dan Bernstein  <mitz@apple.com>
55160
55161        Fixed incorrect references to JSVoidCallback.{cpp,h} in the project file.
55162
55163        * WebCore.xcodeproj/project.pbxproj:
55164
551652012-08-17  Ryosuke Niwa  <rniwa@webkit.org>
55166
55167        Fix Xcode project file.
55168
55169        * WebCore.xcodeproj/project.pbxproj:
55170
551712012-08-17  Kangil Han  <kangil.han@samsung.com>
55172
55173        [BlackBerry][EFL] Remove compile warning in WebCore
55174        https://bugs.webkit.org/show_bug.cgi?id=94328
55175
55176        Reviewed by Rob Buis.
55177
55178        Fixed compile time warning in WebCore.
55179
55180        * platform/efl/RenderThemeEfl.cpp:
55181        (WebCore::RenderThemeEfl::createEdje): unused variable ‘errmsg’ [-Wunused-variable]
55182        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
55183        (WebCore::HarfBuzzShaper::selectionRect): ‘toX’ may be used uninitialized in this function [-Wuninitialized], ‘fromX’ may be used uniniti
55184
551852012-08-17  Arnaud Renevier  <a.renevier@sisa.samsung.com>
55186
55187        [V8] use checkInboundData in setWebGLArrayHelper
55188        https://bugs.webkit.org/show_bug.cgi?id=93051
55189
55190        Reviewed by Kenneth Russell.
55191
55192        Use TypedArray method checkInboundData in setWebGLArrayHelper instead
55193        of performing the computation manually.
55194
55195        No new tests. This patch doesn't change behavior.
55196
55197        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
55198        (WebCore::setWebGLArrayHelper):
55199
552002012-08-17  Alexey Proskuryakov  <ap@apple.com>
55201
55202        REGRESSION (r125912): Crashes in worker tests
55203        https://bugs.webkit.org/show_bug.cgi?id=94390
55204
55205        Reviewed by Brady Eidson and Sam Weinig.
55206
55207        * bindings/js/JSDOMBinding.cpp: (WebCore::reportException): It's always fine
55208        to report an exception on a worker context, but it's not fine to treat those as windows.
55209
552102012-08-17  James Robinson  <jamesr@chromium.org>
55211
55212        [chromium] Add missing header files to .gypi and missing include to CCTiledLayerImpl.cpp
55213        https://bugs.webkit.org/show_bug.cgi?id=94391
55214
55215        Reviewed by Adrienne Walker.
55216
55217        * WebCore.gypi:
55218        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
55219
552202012-08-17  David Grogan  <dgrogan@chromium.org>
55221
55222        IndexedDB: Test if getting a TRANSACTION_INACTIVE_ERR is possible when setting version
55223        https://bugs.webkit.org/show_bug.cgi?id=94269
55224
55225        Reviewed by Ojan Vafai.
55226
55227        I don't see a path through which this code is exercised.
55228        ASSERT_NOT_REACHED doesn't cause any of our tests to fail. It might be
55229        timing-related, in which case this ASSERT should be sporadically hit.
55230        If this ASSERT is hit, see if we can write a test that exercises it or
55231        at least add comments explaining how it gets exercised. If this ASSERT
55232        is not hit after a while, change it to
55233        ASSERT(transaction.scheduleTask(...)).
55234
55235        No new tests, we're looking for existing tests to fail.
55236
55237        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55238        (WebCore::IDBDatabaseBackendImpl::setVersion):
55239        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
55240
552412012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
55242
55243        Unreviewed, rolling out r125922.
55244        http://trac.webkit.org/changeset/125922
55245        https://bugs.webkit.org/show_bug.cgi?id=94389
55246
55247        "Causing failing/crashing tests on Mac bots" (Requested by
55248        bradee-oh on #webkit).
55249
55250        * WebCore.gypi:
55251        * inspector/front-end/CPUProfileView.js:
55252        (WebInspector.CPUProfileHeader.prototype.createView):
55253        * inspector/front-end/CSSSelectorProfileView.js:
55254        (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
55255        (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
55256        (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
55257        (WebInspector.CSSProfileHeader.prototype.createView):
55258        * inspector/front-end/HeapSnapshotDataGrids.js:
55259        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.revealInDominatorsView):
55260        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.else.revealInSummaryView):
55261        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
55262        * inspector/front-end/HeapSnapshotView.js:
55263        (WebInspector.HeapSnapshotView.prototype._profiles):
55264        (WebInspector.HeapSnapshotView.prototype.populateContextMenu):
55265        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
55266        (WebInspector.HeapProfileHeader.prototype.createView):
55267        * inspector/front-end/InspectorFrontendAPI.js:
55268        (InspectorFrontendAPI.isProfilingJavaScript):
55269        (InspectorFrontendAPI.startProfilingJavaScript):
55270        (InspectorFrontendAPI.stopProfilingJavaScript):
55271        * inspector/front-end/NativeMemorySnapshotView.js:
55272        (WebInspector.NativeMemoryProfileHeader.prototype.createView):
55273        * inspector/front-end/ProfilesPanel.js:
55274        (WebInspector.ProfileType.prototype.buttonClicked):
55275        (WebInspector.ProfileHeader.prototype.view):
55276        (WebInspector.ProfileHeader.prototype.createView):
55277        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
55278        (WebInspector.ProfilesPanel.prototype.showProfileForURL):
55279        (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
55280        (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
55281        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
55282        (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
55283        * inspector/front-end/Settings.js:
55284        * inspector/front-end/externs.js:
55285        * inspector/front-end/inspector.html:
55286        * inspector/front-end/inspector.js:
55287        (WebInspector._panelDescriptors):
55288        (WebInspector._toggleSearchingForNode):
55289        (WebInspector._requestZoom.set InspectorFrontendHost):
55290        (WebInspector._requestZoom):
55291        (WebInspector.documentClick.followLink):
55292        (WebInspector.documentClick):
55293        (WebInspector.frontendReused):
55294
552952012-08-17  Julien Chaffraix  <jchaffraix@webkit.org>
55296
55297        Introduce a will-be-removed-from-tree notification in RenderObject
55298        https://bugs.webkit.org/show_bug.cgi?id=94271
55299
55300        Reviewed by Abhishek Arya.
55301
55302        Following bug 93874, we have an insertion notification. This change adds the
55303        matching removal notification (willBeRemovedFromTree).
55304
55305        Refactoring covered by existing tests.
55306
55307        * rendering/RenderObjectChildList.cpp:
55308        (WebCore::RenderObjectChildList::removeChildNode):
55309        Removed the code from here and moved it below.
55310
55311        * rendering/RenderObject.cpp:
55312        (WebCore::RenderObject::willBeRemovedFromTree):
55313        * rendering/RenderObject.h:
55314        This is the base function that should be called by every instance.
55315
55316        * rendering/RenderListItem.cpp:
55317        (WebCore::RenderListItem::willBeRemovedFromTree):
55318        * rendering/RenderListItem.h:
55319        * rendering/RenderQuote.cpp:
55320        (WebCore::RenderQuote::willBeRemovedFromTree):
55321        * rendering/RenderQuote.h:
55322        * rendering/RenderRegion.cpp:
55323        (WebCore::RenderRegion::willBeRemovedFromTree):
55324        * rendering/RenderRegion.h:
55325        Overriden functions.
55326
553272012-08-17  Brian Anderson  <brianderson@chromium.org>
55328
55329        Fix vsyncTick drought when vsync throttling is disabled
55330        https://bugs.webkit.org/show_bug.cgi?id=94012
55331
55332        Reviewed by James Robinson.
55333
55334        CCFrameRateController made an assumption that every vsyncTick results
55335        in a call to didBeginFrame, which is not necessarily true and causes
55336        the CCFrameRateController to stop ticking when vsync is disabled. We
55337        move the manual ticks out of didBeginFrame and manually tick in the
55338        proper place.
55339
55340        CCFrameRateControllerTest updated with use cases that should tick
55341        without a didBeginFrame and will fail without this patch.
55342
55343        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
55344        (WebCore::CCFrameRateController::setActive):
55345        (WebCore::CCFrameRateController::onTimerTick):
55346        (WebCore::CCFrameRateController::didBeginFrame):
55347
553482012-08-16  Ojan Vafai  <ojan@chromium.org>
55349
55350        Delete some dead code in RenderBox::computePercentageLogicalHeight
55351        https://bugs.webkit.org/show_bug.cgi?id=94262
55352
55353        Reviewed by Tony Chang.
55354
55355        I'm pretty sure this is dead code. None of the layout tests hit this code,
55356        including the ones added in the original patch http://trac.webkit.org/changeset/10983.
55357        I spent a good while and could not concoct a test that hits this code.
55358
55359        The test-cases added in that file, as well as the test-cases I came up with that should
55360        go through this codepath, instead go through computePositionedLogicalHeight and never 
55361        hit computePercentageLogicalHeight.
55362        * rendering/RenderBox.cpp:
55363        (WebCore::RenderBox::computePercentageLogicalHeight):
55364
553652012-08-17  Benjamin Poulain  <bpoulain@apple.com>
55366
55367        Make it easier to append a literal to StringBuilder
55368        https://bugs.webkit.org/show_bug.cgi?id=94273
55369
55370        Reviewed by Kentaro Hara.
55371
55372        Use StringBuilder::appendLiteral() in MarkupAccumulator instead of computing every
55373        value individually.
55374
55375        * editing/MarkupAccumulator.cpp:
55376        (WebCore::MarkupAccumulator::appendComment):
55377        (WebCore::MarkupAccumulator::appendXMLDeclaration):
55378        (WebCore::MarkupAccumulator::appendDocumentType):
55379        (WebCore::MarkupAccumulator::appendCDATASection):
55380
553812012-08-17  Benjamin Poulain  <bpoulain@apple.com>
55382
55383        Share the StringImpl the CSS property names
55384        https://bugs.webkit.org/show_bug.cgi?id=94187
55385
55386        Reviewed by Alexey Proskuryakov.
55387
55388        Previously, we would instanciate a new String every time a CSS property name was needed.
55389
55390        This patches moves the creation of the AtomicString to CSSPropertyNames and reuse that
55391        StringImpl whenever needed.
55392
55393        With the patch, accessing CSS property names from JavaScript gets about 2.1 times faster.
55394
55395        * css/CSSComputedStyleDeclaration.cpp:
55396        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
55397        (WebCore::CSSComputedStyleDeclaration::item):
55398        * css/CSSPrimitiveValue.cpp:
55399        (WebCore::valueOrPropertyName):
55400        * css/CSSProperty.cpp:
55401        (WebCore::CSSProperty::cssName):
55402        * css/PropertySetCSSStyleDeclaration.cpp:
55403        (WebCore::PropertySetCSSStyleDeclaration::item):
55404        (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
55405        * css/makeprop.pl:
55406        * inspector/InspectorCSSAgent.cpp:
55407        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
55408        * inspector/InspectorStyleSheet.cpp:
55409        (WebCore::InspectorStyle::styleWithProperties):
55410        * page/animation/ImplicitAnimation.cpp:
55411        (WebCore::ImplicitAnimation::sendTransitionEvent):
55412
554132012-08-16  James Robinson  <jamesr@chromium.org>
55414
55415        [chromium] Add Source/WebCore/platform/graphics/chromium/cc/ to include path and remove cc/ prefix from includes
55416        https://bugs.webkit.org/show_bug.cgi?id=94279
55417
55418        Reviewed by Adam Barth.
55419
55420        This brings us more in line with the rest of the WebKit repo and avoids potential header collisions during
55421        transition.
55422
55423        * WebCore.gyp/WebCore.gyp:
55424        * platform/chromium/support/CCThreadImpl.cpp:
55425        * platform/chromium/support/CCThreadImpl.h:
55426        * platform/chromium/support/WebCompositorImpl.cpp:
55427        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
55428        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
55429        * platform/graphics/chromium/ContentLayerChromium.cpp:
55430        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
55431        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
55432        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h:
55433        * platform/graphics/chromium/IOSurfaceLayerChromium.cpp:
55434        * platform/graphics/chromium/ImageLayerChromium.cpp:
55435        * platform/graphics/chromium/LayerChromium.cpp:
55436        * platform/graphics/chromium/LayerChromium.h:
55437        * platform/graphics/chromium/LayerRendererChromium.cpp:
55438        * platform/graphics/chromium/LayerRendererChromium.h:
55439        * platform/graphics/chromium/LayerTextureUpdater.h:
55440        * platform/graphics/chromium/LinkHighlight.cpp:
55441        * platform/graphics/chromium/RateLimiter.cpp:
55442        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
55443        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
55444        * platform/graphics/chromium/SolidColorLayerChromium.cpp:
55445        * platform/graphics/chromium/TextureLayerChromium.cpp:
55446        * platform/graphics/chromium/TiledLayerChromium.cpp:
55447        * platform/graphics/chromium/TiledLayerChromium.h:
55448        * platform/graphics/chromium/TreeSynchronizer.cpp:
55449        * platform/graphics/chromium/VideoLayerChromium.cpp:
55450        * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
55451        * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
55452        * platform/graphics/chromium/cc/CCAnimationCurve.cpp:
55453        * platform/graphics/chromium/cc/CCAnimationEvents.h:
55454        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp:
55455        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h:
55456        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
55457        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
55458        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
55459        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
55460        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
55461        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
55462        * platform/graphics/chromium/cc/CCDrawQuad.h:
55463        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
55464        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
55465        * platform/graphics/chromium/cc/CCFrameRateController.h:
55466        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
55467        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
55468        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
55469        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
55470        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
55471        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
55472        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
55473        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
55474        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
55475        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
55476        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
55477        * platform/graphics/chromium/cc/CCLayerImpl.h:
55478        * platform/graphics/chromium/cc/CCLayerIterator.cpp:
55479        * platform/graphics/chromium/cc/CCLayerIterator.h:
55480        * platform/graphics/chromium/cc/CCLayerQuad.cpp:
55481        * platform/graphics/chromium/cc/CCLayerSorter.cpp:
55482        * platform/graphics/chromium/cc/CCLayerSorter.h:
55483        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
55484        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
55485        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
55486        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
55487        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
55488        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
55489        * platform/graphics/chromium/cc/CCMathUtil.cpp:
55490        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
55491        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
55492        * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
55493        * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp:
55494        * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
55495        * platform/graphics/chromium/cc/CCProxy.cpp:
55496        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
55497        * platform/graphics/chromium/cc/CCRenderPass.cpp:
55498        * platform/graphics/chromium/cc/CCRenderPass.h:
55499        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
55500        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
55501        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
55502        * platform/graphics/chromium/cc/CCRenderSurface.h:
55503        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
55504        * platform/graphics/chromium/cc/CCRenderer.h:
55505        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
55506        * platform/graphics/chromium/cc/CCResourceProvider.h:
55507        * platform/graphics/chromium/cc/CCScheduler.cpp:
55508        * platform/graphics/chromium/cc/CCScheduler.h:
55509        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
55510        * platform/graphics/chromium/cc/CCScopedTexture.cpp:
55511        * platform/graphics/chromium/cc/CCScopedTexture.h:
55512        * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
55513        * platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp:
55514        * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.cpp:
55515        * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.h:
55516        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
55517        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
55518        * platform/graphics/chromium/cc/CCSettings.cpp:
55519        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
55520        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
55521        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
55522        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
55523        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
55524        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
55525        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
55526        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp:
55527        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h:
55528        * platform/graphics/chromium/cc/CCTexture.cpp:
55529        * platform/graphics/chromium/cc/CCTexture.h:
55530        * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
55531        * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
55532        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
55533        * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
55534        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
55535        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
55536        * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp:
55537        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
55538        * platform/graphics/chromium/cc/CCThreadProxy.h:
55539        * platform/graphics/chromium/cc/CCThreadTask.h:
55540        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
55541        * platform/graphics/chromium/cc/CCTileDrawQuad.h:
55542        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
55543        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
55544        * platform/graphics/chromium/cc/CCTimer.cpp:
55545        * platform/graphics/chromium/cc/CCTimingFunction.cpp:
55546        * platform/graphics/chromium/cc/CCTimingFunction.h:
55547        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
55548        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
55549        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp:
55550        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h:
55551        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
55552
555532012-08-17  Ojan Vafai  <ojan@chromium.org>
55554
55555        Delete dead code in deprecated flexbox for RTL line-clamp
55556        https://bugs.webkit.org/show_bug.cgi?id=94282
55557
55558        Reviewed by Tony Chang.
55559
55560        -webkit-line-clamp and direction:rtl is not supported. Delete some
55561        obviously dead code that half-tries to support it.
55562        * rendering/RenderDeprecatedFlexibleBox.cpp:
55563        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
55564
555652012-08-17  John Mellor  <johnme@chromium.org>
55566
55567        Text Autosizing: Increase line height in proportion to font size.
55568        https://bugs.webkit.org/show_bug.cgi?id=91660
55569
55570        Reviewed by Julien Chaffraix.
55571
55572        This patch causes line heights to be increased in proportion to font
55573        size (so autosized text doesn't overlap itself). It does this by adding
55574        a textAutosizingMultiplier() to RenderStyle, which the lineHeight()
55575        getter multiplies its response by.
55576
55577        It also cleans up one or two things, for example treatAsInline is
55578        renamed isNotAnAutosizingContainer to clarify that its purpose is to
55579        discriminate autosizing containers (the smallest unit that we can turn
55580        Text Autosizing on or off for; in particular these are not allowed to
55581        be line participants, since multiple sizes on one line looks awful).
55582
55583        Tests: fast/text-autosizing/em-margin-border-padding.html
55584               fast/text-autosizing/narrow-child.html
55585               fast/text-autosizing/nested-em-line-height.html
55586               fast/text-autosizing/simple-paragraph.html
55587               fast/text-autosizing/span-child.html
55588               fast/text-autosizing/wide-child.html
55589
55590        * css/StyleBuilder.cpp:
55591        (WebCore::ApplyPropertyLineHeight::applyValue):
55592
55593            Replaced Length(-100.0, Percent) with RenderStyle::initialLineHeight(),
55594            which is equivalent but makes the intent clearer.
55595
55596        (WebCore::ApplyPropertyLineHeight::createHandler):
55597
55598            Use specifiedLineHeight to match setLineHeight which takes a specified
55599            line height (and generally this avoids accidentally inheriting text
55600            autosizing).
55601
55602        * css/StyleResolver.cpp:
55603        (WebCore::StyleResolver::applyProperty):
55604
55605            Similarly use specifiedLineHeight when inheriting line height.
55606
55607        * page/animation/CSSPropertyAnimation.cpp:
55608        (WebCore::CSSPropertyAnimation::ensurePropertyMap):
55609
55610            Get and set specified lineHeight/fontSize if Text Autosizing is
55611            enabled to avoid setting the specified value to the computed value
55612            (causing values to be multiplied more than once!).
55613
55614        * platform/blackberry/RenderThemeBlackBerry.cpp:
55615        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
55616
55617            Adjust for renamed setBlendedFontSize, and maintain cast to int.
55618
55619        * rendering/RenderTextControlSingleLine.cpp:
55620        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
55621
55622            Replaced Length(-100.0, Percent) with RenderStyle::initialLineHeight(),
55623            which is equivalent but makes the intent clearer.
55624
55625        * rendering/TextAutosizer.cpp:
55626        (WebCore::TextAutosizer::processSubtree):
55627
55628            Use nextInPreOrderMatchingFilter instead of traverseNext, and some
55629            other methods that got renamed.
55630
55631        (WebCore::TextAutosizer::processBox):
55632
55633            Renamed from processBlock, since RenderBoxes are sufficient; use
55634            renamed nextInPreOrderMatchingFilter; make two calls to setMultiplier
55635            (one for parent for line height) instead of processText.
55636
55637        (WebCore::TextAutosizer::setMultiplier):
55638
55639            Simplified from previous processText method; this just sets the
55640            style's textAutosizingMultiplier (and the style does the rest).
55641
55642        (WebCore::TextAutosizer::isNotAnAutosizingContainer):
55643
55644            Renamed from treatAsInline; added explanatory comment; changed
55645            isRenderBlock to isBox as boxes still have logicalWidth; changed
55646            isInlineBlockOrInlineTable to isInline as it was an omission that
55647            other inlines were allowed.
55648
55649        (WebCore::TextAutosizer::nextInPreOrderMatchingFilter):
55650
55651            Renamed from TextAutosizer::traverseNext.
55652
55653        (RenderObjectFilterFunctor):
55654
55655            Renamed from RenderObjectFilter to clafiry that it's a function ptr.
55656
55657        * rendering/TextAutosizer.h:
55658        (TextAutosizer): Previously mentioned renamings.
55659
55660        * rendering/mathml/RenderMathMLSubSup.cpp:
55661        (WebCore::RenderMathMLSubSup::fixScriptsStyle):
55662
55663            Adjust for renamed setBlendedFontSize.
55664
55665        * rendering/style/RenderStyle.cpp:
55666        (WebCore::RenderStyle::diff):
55667
55668            textAutosizingMultiplier is a StyleDifferenceLayout (we want
55669            setNeedsLayoutAndPrefWidthsRecalc to get called).
55670
55671        (WebCore::RenderStyle::setFontSize):
55672
55673            Renamed from setBlendedFontSize; if Text Autosizing is enabled and a
55674            multiplier is set it auto-calculates the computedSize; float
55675            param instead of int as discussed on webkit.org/b/91660.
55676
55677        * rendering/style/RenderStyle.h:
55678
55679            Added specifiedFontSize, computedFontSize and specifiedLineHeight
55680            getters; changed lineHeight to dynamically calculate autosized line
55681            height, and made computedLineHeight use this value instead of the
55682            specified line height; also added textAutosizingMultiplier
55683            getter/setter (the setter updated the font description's computed
55684            size, by calling setFontSize); also renamed the parameter to
55685            setLineHeight to explicitly note that it's setting the
55686            specifiedLineHeight (and can still be adjusted by autosizing).
55687
55688        * rendering/style/StyleVisualData.cpp/.h:
55689
55690            Added m_textAutosizingMultiplier (this seems the best place to put a
55691            non-inherited non-rare presentational property).
55692
556932012-08-17  Raphael Kubo da Costa  <rakuco@webkit.org>
55694
55695        [CMake] Add FindDBus.cmake and use it in the EFL port.
55696        https://bugs.webkit.org/show_bug.cgi?id=94319
55697
55698        Reviewed by Daniel Bates.
55699
55700        * PlatformEfl.cmake: Link against DBUS_LIBRARIES and add
55701        DBUS_INCLUDE_DIRS to the include path list if BATTERY_STATUS
55702        support is enabled.
55703
557042012-08-17  Pavel Feldman  <pfeldman@chromium.org>
55705
55706        Web Inspector: make profiles panel a lazily loaded module.
55707        https://bugs.webkit.org/show_bug.cgi?id=94351
55708
55709        Reviewed by Yury Semikhatsky.
55710
55711        Moving files from .html to importScript.
55712
55713        * WebCore.gypi:
55714        * inspector/front-end/CPUProfileView.js:
55715        (WebInspector.CPUProfileHeader.prototype.createView):
55716        * inspector/front-end/CSSSelectorProfileView.js:
55717        (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
55718        (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
55719        (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
55720        (WebInspector.CSSProfileHeader.prototype.createView):
55721        * inspector/front-end/HeapSnapshotDataGrids.js:
55722        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.revealInDominatorsView):
55723        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.else.revealInSummaryView):
55724        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
55725        * inspector/front-end/HeapSnapshotView.js:
55726        (WebInspector.HeapSnapshotView.prototype._profiles):
55727        (WebInspector.HeapSnapshotView.prototype.populateContextMenu):
55728        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
55729        (WebInspector.HeapProfileHeader.prototype.createView):
55730        * inspector/front-end/InspectorFrontendAPI.js:
55731        (InspectorFrontendAPI.isProfilingJavaScript):
55732        (InspectorFrontendAPI.startProfilingJavaScript):
55733        (InspectorFrontendAPI.stopProfilingJavaScript):
55734        * inspector/front-end/NativeMemorySnapshotView.js:
55735        (WebInspector.NativeMemoryProfileHeader.prototype.createView):
55736        * inspector/front-end/ProfilesPanel.js:
55737        (WebInspector.ProfileType.prototype.buttonClicked):
55738        (WebInspector.ProfileHeader.prototype.view):
55739        (WebInspector.ProfileHeader.prototype.createView):
55740        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
55741        (WebInspector.ProfilesPanel.prototype.showProfileForURL):
55742        (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
55743        (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
55744        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
55745        (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
55746        * inspector/front-end/externs.js:
55747        * inspector/front-end/inspector.html:
55748        * inspector/front-end/inspector.js:
55749        (WebInspector._panelDescriptors):
55750        (WebInspector._toggleSearchingForNode):
55751        (WebInspector._profilesLinkifier):
55752        (WebInspector._requestZoom.set InspectorFrontendHost):
55753        (WebInspector._requestZoom):
55754        (WebInspector.documentClick.followLink):
55755        (WebInspector.documentClick):
55756
557572012-08-17  Dominic Mazzoni  <dmazzoni@google.com>
55758
55759        REGRESSION(r125710) - canvas-fallback-content tests asserting in Chromium
55760        https://bugs.webkit.org/show_bug.cgi?id=94156
55761
55762        Reviewed by Chris Fleizach.
55763
55764        When determining if a Node is focusable, check the canvas subtree
55765        case first before encountering assertions that assume that anything
55766        focusable must have an associated renderer.
55767
55768        Fixes existing tests so they don't assert.
55769
55770        * dom/Node.cpp:
55771        (WebCore::Node::isFocusable):
55772
557732012-08-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
55774
55775        ASSERTION FAILED: allocatedMaxLogicalWidth <= cellMaxLogicalWidth : int WebCore::AutoTableLayout::calcEffectiveLogicalWidth()
55776        https://bugs.webkit.org/show_bug.cgi?id=92471
55777
55778        Reviewed by Julien Chaffraix.
55779
55780        The assert occurs due to the float based computations causing a floating
55781        point rounding error between allocatedMaxLogicalWidth and cellMaxLogicalWidth.
55782
55783        Test: fast/table/assert-autotablelayout-maxlogicalwidth.html
55784
55785        * rendering/AutoTableLayout.cpp:
55786        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
55787        Converting float based calculations for computing max logical width to int based;
55788        similar to the calculations for min logical width.
55789
557902012-08-17  John J. Barton  <johnjbarton@chromium.org>
55791
55792        Web Inspector: Add //@ sourceURL to test-runner evals
55793        https://bugs.webkit.org/show_bug.cgi?id=94268
55794
55795        Reviewed by Pavel Feldman.
55796
55797        Postpend a line that tells the debugger what to call this eval buffer.
55798        Name ends in the sequennce number so all evals will appear together.
55799        evaluateInWebInspector0.js eg
55800
55801        * inspector/front-end/TestController.js:
55802        (WebInspector.evaluateForTestInFrontend):
55803
558042012-08-17  Adam Barth  <abarth@webkit.org>
55805
55806        REGRESSION (r125592): Crash in Console::addMessage, under InjectedBundle::reportException
55807        https://bugs.webkit.org/show_bug.cgi?id=94220
55808
55809        Reviewed by Alexey Proskuryakov.
55810
55811        Previously, this code was trying to detect whether a DOMWindow is
55812        currently displayed in a Frame by testing whether
55813        DOMWindow->scriptExecutionContext is zero. That used to work, but now
55814        that DOMWindow->scriptExecutionContext is non-zero for detached
55815        DOMWindow, this code doesn't work anymore. This patch replaces the code
55816        with the current idiom, which is to call
55817        DOMWindow::isCurrentDisplayedInFrame.
55818
55819        Alexey and I couldn't figure out how to test this change. This bug
55820        causes a crash when some Safari extensions are installed, but it's not
55821        clear whether this bug can be triggered from the web platform. We're
55822        going to ask Jessie for ideas when she gets back from vacation.
55823
55824        * bindings/js/JSDOMBinding.cpp:
55825        (WebCore::reportException):
55826
558272012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
55828
55829        Unreviewed, rolling out r125892.
55830        http://trac.webkit.org/changeset/125892
55831        https://bugs.webkit.org/show_bug.cgi?id=94350
55832
55833        Broke windows build (Requested by vollick on #webkit).
55834
55835        * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
55836        (WebCore::CCActiveAnimation::CCActiveAnimation):
55837        (WebCore::CCActiveAnimation::~CCActiveAnimation):
55838        (WebCore::CCActiveAnimation::setRunState):
55839        (WebCore::CCActiveAnimation::cloneForImplThread):
55840        * platform/graphics/chromium/cc/CCActiveAnimation.h:
55841        (CCActiveAnimation):
55842        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
55843        (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
55844        (WebCore):
55845        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
55846        (WebCore::CCLayerAnimationController::tickAnimations):
55847
558482012-08-17  Zach Kuznia  <zork@chromium.org>
55849
55850        Add support for Skia Magnifier filter to Chromium layers
55851        https://bugs.webkit.org/show_bug.cgi?id=93939
55852
55853        Reviewed by James Robinson.
55854
55855        This is used by Chrome OS for the screen magnifier
55856
55857        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
55858        (WebCore::CCRenderSurfaceFilters::optimize):
55859        (WebCore::CCRenderSurfaceFilters::apply):
55860
558612012-08-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
55862
55863        Touch adjustment for context menu gestures
55864        https://bugs.webkit.org/show_bug.cgi?id=94101
55865
55866        Reviewed by Antonio Gomes.
55867
55868        Adds a new filter for detecting nodes that provides extra context-menu items, 
55869        and use that in a new set of functions for adjusting context-menu gestures.
55870
55871        Tests: touchadjustment/context-menu-select-text.html
55872               touchadjustment/context-menu.html
55873
55874        * page/EventHandler.cpp:
55875        (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
55876        (WebCore::EventHandler::adjustGesturePosition):
55877        * page/EventHandler.h:
55878        (EventHandler):
55879        * page/TouchAdjustment.cpp:
55880        (WebCore::TouchAdjustment::nodeProvidesContextMenuItems):
55881        (TouchAdjustment):
55882        (WebCore::findBestContextMenuCandidate):
55883        * page/TouchAdjustment.h:
55884        * testing/Internals.cpp:
55885        (WebCore::Internals::touchPositionAdjustedToBestContextMenuNode):
55886        (WebCore::Internals::touchNodeAdjustedToBestContextMenuNode):
55887        * testing/Internals.h:
55888        (Internals):
55889        * testing/Internals.idl:
55890
558912012-08-17  Pavel Feldman  <pfeldman@chromium.org>
55892
55893        https://bugs.webkit.org/show_bug.cgi?id=94326
55894
55895        Reviewed by Vsevolod Vlasov.
55896
55897        Loading code on demand (upon the panel access).
55898
55899        * WebCore.gypi:
55900        * inspector/front-end/AuditsPanel.js:
55901        * inspector/front-end/CodeMirrorTextEditor.js:
55902        (WebInspector.CodeMirrorTextEditor):
55903        (WebInspector.CodeMirrorTextEditor.prototype._toRange):
55904        * inspector/front-end/ElementsPanel.js:
55905        * inspector/front-end/ExtensionServer.js:
55906        (WebInspector.ExtensionServer.prototype._onCreatePanel):
55907        * inspector/front-end/Panel.js:
55908        (WebInspector.Panel):
55909        (WebInspector.PanelDescriptor):
55910        (WebInspector.PanelDescriptor.prototype.panel):
55911        * inspector/front-end/ResourcesPanel.js:
55912        * inspector/front-end/SourceFrame.js:
55913        (WebInspector.SourceFrame):
55914        * inspector/front-end/TimelinePanel.js:
55915        * inspector/front-end/inspector.html:
55916        * inspector/front-end/inspector.js:
55917        (WebInspector._panelDescriptors):
55918        (WebInspector.doLoadedDone):
55919        * inspector/front-end/utilities.js:
55920
559212012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
55922
55923        Unreviewed, rolling out r125880.
55924        http://trac.webkit.org/changeset/125880
55925        https://bugs.webkit.org/show_bug.cgi?id=94347
55926
55927        Breaks front-end compilation: SourceFrame passed where View is
55928        expected. (Requested by pfeldman on #webkit).
55929
55930        * inspector/front-end/CodeMirrorTextEditor.js:
55931        (WebInspector.CodeMirrorTextEditor.prototype._loadLibraries):
55932        * inspector/front-end/DefaultTextEditor.js:
55933        (WebInspector.DefaultTextEditor.prototype.wasShown):
55934        (WebInspector.DefaultTextEditor.prototype.willHide):
55935        * inspector/front-end/JavaScriptSourceFrame.js:
55936        (WebInspector.JavaScriptSourceFrame):
55937        (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
55938        (WebInspector.JavaScriptSourceFrame.prototype.willHide):
55939        * inspector/front-end/SourceFrame.js:
55940        (WebInspector.SourceFrame):
55941        (WebInspector.SourceFrame.prototype.wasShown):
55942        (WebInspector.SourceFrame.prototype.willHide):
55943        * inspector/front-end/TextEditor.js:
55944        * inspector/front-end/scriptsPanel.css:
55945        (.script-view):
55946        (.script-view.visible):
55947
559482012-08-17  Milian Wolff  <milian.wolff@kdab.com>
55949
55950        [Qt] QNX build fails due to ctype usage in system headers
55951        https://bugs.webkit.org/show_bug.cgi?id=93849
55952
55953        Reviewed by Simon Hausmann.
55954
55955        Move the check for whether DisallowCType should be active or not
55956        to the DisallowCType.h header. This way, we can update the list
55957        of platforms or OSes which do not work with this header in a
55958        central place. All users can now safely include the header
55959        and do not need to place custom guards around it.
55960
55961        * config.h:
55962
559632012-08-17  Simon Hausmann  <simon.hausmann@nokia.com>
55964
55965        Unreviewed trivial build fix: Correct file name in bindings/js/DOMTransaction.h used in HEADERS
55966
55967        * Target.pri:
55968
559692012-08-17  Ian Vollick  <vollick@chromium.org>
55970
55971        [chromium] Add tracing for active composited animations
55972        https://bugs.webkit.org/show_bug.cgi?id=84210
55973
55974        Reviewed by James Robinson.
55975
55976        This patch issues the trace events from the animations. Animations will
55977        report when they start and finish on the main and impl threads (via
55978        TRACE_EVENT_ASYNC*), and also issues instant trace events whenever they
55979        change state.
55980
55981        No new tests, only changes tracing behavior.
55982
55983        * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
55984        (WebCore::CCActiveAnimation::CCActiveAnimation):
55985        (WebCore::CCActiveAnimation::~CCActiveAnimation):
55986        (WebCore::CCActiveAnimation::setRunState):
55987        (WebCore::CCActiveAnimation::clone):
55988        (WebCore):
55989        (WebCore::CCActiveAnimation::cloneAndInitialize):
55990        * platform/graphics/chromium/cc/CCActiveAnimation.h:
55991        (WebCore::CCActiveAnimation::isControllingInstance):
55992        (CCActiveAnimation):
55993        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
55994        (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
55995        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
55996        (WebCore::CCLayerAnimationController::tickAnimations):
55997
559982012-08-17  John J. Barton  <johnjbarton@chromium.org>
55999
56000        Web Inspector: enhance external test-runner and add cleanup code
56001        https://bugs.webkit.org/show_bug.cgi?id=94231
56002
56003        Reviewed by Pavel Feldman.
56004
56005        add 'click on test result to select for next run' feature.
56006        remember the users size for the inspector popup.
56007        refactor server URLs to one location at top of file.
56008        use the same value for both tests and scanner servers.
56009        remove one extra instruction on the page.
56010        refactor clean up code.
56011        close the two popup windows if the test-runner.html is reloaded.
56012
56013        * inspector/front-end/test-runner.html:
56014
560152012-08-17  Simon Hausmann  <simon.hausmann@nokia.com>
56016
56017        Unreviewed trivial follow-up fix to r125873: Add missing adoptRef to avoid leaks.
56018
56019        * bridge/qt/qt_instance.cpp:
56020        (JSC::Bindings::WeakMap::set):
56021
560222012-08-17  Kentaro Hara  <haraken@chromium.org>
56023
56024        Remove RefPtr from DateInputType::m_pickerElement
56025        https://bugs.webkit.org/show_bug.cgi?id=94330
56026
56027        Reviewed by Kent Tamura.
56028
56029        To avoid reference cycles of RefPtr<Node>s, we want to remove
56030        unnecessary RefPtr<Node>s. The rationale is describe in bug 94324.
56031
56032        DateInputType::m_pickerElement does not need to be a RefPtr<Node>,
56033        because it is guaranteed to point to a shadow DOM tree of the DateInputType
56034        node, which is guaranteed to exist in the subtree of the DateInputType node.
56035
56036        No tests. No change in behavior.
56037
56038        * html/DateInputType.cpp:
56039        (WebCore::DateInputType::DateInputType):
56040        (WebCore::DateInputType::createShadowSubtree):
56041        (WebCore::DateInputType::destroyShadowSubtree):
56042        * html/DateInputType.h:
56043        (DateInputType):
56044
560452012-08-17  Dan Carney  <dcarney@google.com>
56046
56047        Refactor away IsolatedWorld
56048        https://bugs.webkit.org/show_bug.cgi?id=93971
56049
56050        Reviewed by Kentaro Hara.
56051
56052        Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld.
56053        This update fixes a bad assertion which caused the previous
56054        version to be rolled back.
56055
56056        No tests.  No change in functionality.
56057
56058        * UseV8.cmake:
56059        * WebCore.gypi:
56060        * bindings/v8/DOMWrapperWorld.cpp:
56061        (WebCore):
56062        (WebCore::mainThreadNormalWorld):
56063        * bindings/v8/DOMWrapperWorld.h:
56064        (WebCore):
56065        (DOMWrapperWorld):
56066        (WebCore::DOMWrapperWorld::create):
56067        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
56068        (WebCore::DOMWrapperWorld::count):
56069        (WebCore::DOMWrapperWorld::worldId):
56070        (WebCore::DOMWrapperWorld::domDataStore):
56071        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
56072        * bindings/v8/IsolatedWorld.cpp: Removed.
56073        * bindings/v8/IsolatedWorld.h: Removed.
56074        * bindings/v8/V8DOMWrapper.h:
56075        (WebCore::V8DOMWrapper::getCachedWrapper):
56076        * bindings/v8/V8IsolatedContext.cpp:
56077        (WebCore::V8IsolatedContext::V8IsolatedContext):
56078        (WebCore::V8IsolatedContext::destroy):
56079        * bindings/v8/V8IsolatedContext.h:
56080        (WebCore::V8IsolatedContext::getEntered):
56081        (WebCore::V8IsolatedContext::world):
56082        (V8IsolatedContext):
56083        * bindings/v8/V8PerIsolateData.h:
56084        (WebCore::V8PerIsolateData::registerDOMDataStore):
56085        (WebCore::V8PerIsolateData::unregisterDOMDataStore):
56086
560872012-08-17  Kangil Han  <kangil.han@samsung.com>
56088
56089        [EFL] Remove alloca usage
56090        https://bugs.webkit.org/show_bug.cgi?id=93931
56091
56092        Reviewed by Carlos Garcia Campos.
56093
56094        This patch is unifying the approaches for the creation of Edje_Message_Float_Set messages, and getting rid of alloca is part of it, since it is not portable.
56095
56096        * platform/efl/RenderThemeEfl.cpp:
56097        (WebCore::RenderThemeEfl::paintThemePart):
56098        * platform/efl/ScrollbarEfl.cpp:
56099        (ScrollbarEfl::updateThumbPositionAndProportion):
56100
561012012-08-17  Alexander Pavlov  <apavlov@chromium.org>
56102
56103        Web Inspector: hovering over an image link in Timeline popup kills popup
56104        https://bugs.webkit.org/show_bug.cgi?id=94213
56105
56106        Reviewed by Pavel Feldman.
56107
56108        - Fixed bug with ElementsPanel PopoverHelper acting on the TimelinePanel (due to which the original issue occurs).
56109        - Image preview added to resource entries popover in the timeline.
56110        - Extracted the core image preview building code into UIUtils.js.
56111        - Drive-by: fixed image centering in the preview element.
56112
56113        * inspector/front-end/ElementsPanel.js:
56114        (WebInspector.ElementsPanel):
56115        (WebInspector.ElementsPanel.prototype._showPopover.showPopover):
56116        (WebInspector.ElementsPanel.prototype._showPopover):
56117        * inspector/front-end/TimelinePanel.js:
56118        (WebInspector.TimelinePanel.prototype._showPopover.showCallback):
56119        (WebInspector.TimelinePanel.prototype._showPopover):
56120        * inspector/front-end/TimelinePresentationModel.js:
56121        (WebInspector.TimelinePresentationModel.needsPreviewElement):
56122        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
56123        First build the image preview element if necessary, then do everything else.
56124        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
56125        Original generatePopupContent() code plus the preview generation when necessary.
56126        * inspector/front-end/UIUtils.js:
56127        (WebInspector.buildImagePreviewContents.errorCallback):
56128        (WebInspector.buildImagePreviewContents.buildContent):
56129        (WebInspector.buildImagePreviewContents): Extracted from ElementsPanel. Enabled building of preview elements without the dimensions text data.
56130        * inspector/front-end/elementsPanel.css:
56131        (.image-preview-container):
56132        (.image-preview-container img):
56133        * inspector/front-end/timelinePanel.css:
56134        (.image-preview-container): Fixed centering of the preview container contents.
56135        (.image-preview-container img):
56136        (.image-container):
56137
561382012-08-17  Andrey Kosyakov  <caseq@chromium.org>
56139
56140        Web Inspector: decouple extension server from the Elements panel
56141        https://bugs.webkit.org/show_bug.cgi?id=94322
56142
56143        Reviewed by Pavel Feldman.
56144
56145        - relay WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged received in ElementsPanel on WebInspector.notifications;
56146
56147        * inspector/front-end/ElementsPanel.js:
56148        (WebInspector.ElementsPanel.prototype._selectedNodeChanged):
56149        * inspector/front-end/ExtensionServer.js:
56150
561512012-08-17  Jan Keromnes  <janx@linux.com>
56152
56153        Web Inspector: SourceFrame shouldn't be a View
56154        https://bugs.webkit.org/show_bug.cgi?id=93444
56155
56156        Reviewed by Pavel Feldman.
56157
56158        Move SourceFrame from being a View to being an Object. This will allow
56159        future ExtensionSourceFrames to share a single iframe ExtensionView.
56160
56161        * inspector/front-end/CodeMirrorTextEditor.js:
56162        (WebInspector.CodeMirrorTextEditor.prototype.wasShown):
56163        (WebInspector.CodeMirrorTextEditor.prototype.willHide):
56164        * inspector/front-end/DefaultTextEditor.js:
56165        (WebInspector.DefaultTextEditor.prototype.wasShown):
56166        (WebInspector.DefaultTextEditor.prototype.willHide):
56167        * inspector/front-end/JavaScriptSourceFrame.js:
56168        (WebInspector.JavaScriptSourceFrame):
56169        * inspector/front-end/SourceFrame.js:
56170        (WebInspector.SourceFrame):
56171        (WebInspector.SourceFrame.prototype.show):
56172        (WebInspector.SourceFrame.prototype.detach):
56173        (WebInspector.SourceFrame.prototype.focus):
56174        (WebInspector.SourceFrame.prototype._onTextEditorWasShown):
56175        (WebInspector.SourceFrame.prototype._onTextEditorWillHide):
56176        * inspector/front-end/TextEditor.js:
56177        * inspector/front-end/scriptsPanel.css:
56178
561792012-08-17  Pavel Chadnov  <chadnov@google.com>
56180
56181        Web Inspector: requests filtering in network tab
56182        https://bugs.webkit.org/show_bug.cgi?id=93090
56183
56184        Reviewed by Vsevolod Vlasov.
56185
56186        Added filtering support to search panel.
56187        Implemented filtering for network panel.
56188        
56189        * inspector/front-end/NetworkPanel.js:
56190        (WebInspector.NetworkLogView.prototype._clearSearchMatchedList):
56191        (WebInspector.NetworkLogView.prototype._updateHighlightIfMatched):
56192        (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
56193        (WebInspector.NetworkLogView.prototype._highlightNthMatchedRequestForSearch):
56194        (WebInspector.NetworkLogView.prototype.performSearch):
56195        (WebInspector.NetworkLogView.prototype.performFilter):
56196        (WebInspector.NetworkLogView.prototype.jumpToPreviousSearchResult):
56197        (WebInspector.NetworkLogView.prototype.jumpToNextSearchResult):
56198        (WebInspector.NetworkPanel.prototype.performFilter):
56199        (WebInspector.NetworkDataGridNode.prototype._highlightMatchedSubstring):
56200        * inspector/front-end/SearchController.js:
56201        (WebInspector.SearchController):
56202        (WebInspector.SearchController.prototype.cancelSearch):
56203        (WebInspector.SearchController.prototype.showSearchField):
56204        (WebInspector.SearchController.prototype._switchFilterToSearch):
56205        (WebInspector.SearchController.prototype._switchSearchToFilter):
56206        (WebInspector.SearchController.prototype._updateFilterVisibility):
56207        (WebInspector.SearchController.prototype._replaceAll):
56208        (WebInspector.SearchController.prototype._filterCheckboxClick):
56209        (WebInspector.SearchController.prototype._performFilter):
56210        (WebInspector.SearchController.prototype._onFilterInput):
56211        (WebInspector.SearchController.prototype._onSearchInput):
56212        (WebInspector.SearchController.prototype.resetFilter):
56213        * inspector/front-end/inspector.css:
56214        (.filter):
56215        * inspector/front-end/networkLogView.css:
56216        (.network-log-grid.data-grid.filter-other table.data tr.revealed.network-type-other:not(.filtered-out)):
56217
562182012-08-17  Anthony Berent  <aberent@chromium.org>
56219
56220        View source doesn't interpret escape characters in hrefs.
56221        https://bugs.webkit.org/show_bug.cgi?id=94216
56222
56223        Reviewed by Adam Barth.
56224
56225        The cause was that HTMLViewSourceDocument was passing the unparsed content of the href attribute to the DOM as the URL for the link.
56226        The fix is to pass the parsed content of the href attribute to the DOM.
56227
56228        Test: fast/forms/frames/viewsource-link-on-href-value.html extended to test this case.
56229
56230        * html/HTMLViewSourceDocument.cpp:
56231        (WebCore::HTMLViewSourceDocument::processTagToken): Pass parsed URL to AddRange.
56232        (WebCore::HTMLViewSourceDocument::addRange):Added argument for parsed URL, and used this instead of text, to create link.
56233        * html/HTMLViewSourceDocument.h:
56234        (HTMLViewSourceDocument): Add new link argument to addRange for parsed URL, defaulting to "".
56235
562362012-08-17  Yoshifumi Inoue  <yosin@chromium.org>
56237
56238        [Forms] Rename SpinButtonElement::StepActionHandler to SpinButtonOwner
56239        https://bugs.webkit.org/show_bug.cgi?id=94311
56240
56241        Reviewed by Kent Tamura.
56242
56243        This patch renames SpinButtonElement::StepActionHandler class to
56244        SpinButtonOwner for adding functions to it for communicating spin
56245        button and its owner.
56246
56247        No new tests. This patch doesn't change behavior.
56248
56249        * html/TextFieldInputType.cpp:
56250        (WebCore::TextFieldInputType::~TextFieldInputType):
56251        (WebCore::TextFieldInputType::destroyShadowSubtree):
56252        * html/TextFieldInputType.h:
56253        (TextFieldInputType):
56254        * html/shadow/DateTimeEditElement.cpp:
56255        (WebCore::DateTimeEditElement::~DateTimeEditElement):
56256        * html/shadow/DateTimeEditElement.h:
56257        (DateTimeEditElement):
56258        * html/shadow/SpinButtonElement.cpp:
56259        (WebCore::SpinButtonElement::SpinButtonElement):
56260        (WebCore::SpinButtonElement::create):
56261        (WebCore::SpinButtonElement::doStepAction):
56262        * html/shadow/SpinButtonElement.h:
56263        (WebCore::SpinButtonElement::SpinButtonOwner::~SpinButtonOwner):
56264        (SpinButtonElement):
56265        (WebCore::SpinButtonElement::removeSpinButtonOwner):
56266
562672012-08-16  Simon Hausmann  <simon.hausmann@nokia.com>
56268
56269        [Qt] Replace use of internal Weak smart pointer with JSWeakObjectMap
56270        https://bugs.webkit.org/show_bug.cgi?id=93872
56271
56272        Reviewed by Kenneth Rohde Christiansen.
56273
56274        The intention of this patch series is to replace use of internal JSC
56275        API with use of the stable and public C API.
56276
56277        The JSC::Weak template is internal API and the only part of the C API
56278        that exposes similar functionality is the JSWeakObjectMap. It is
56279        special in the sense that its life-time is tied to the life-time of the
56280        JS global object, which in turn is subject to garbage collection. In
56281        order to maximize re-use of the same map across different JSContextRef
56282        instances, we use one JSWeakObjectMap per context group and store the
56283        map in a separate context.
56284
56285        * bridge/qt/qt_instance.cpp:
56286        (JSC::Bindings::unusedWeakObjectMapCallback):
56287        (Bindings):
56288        (JSC::Bindings::WeakMapImpl::WeakMapImpl):
56289        (JSC::Bindings::WeakMapImpl::~WeakMapImpl):
56290        (JSC::Bindings::WeakMap::~WeakMap):
56291        (JSC::Bindings::WeakMap::set):
56292        (JSC::Bindings::WeakMap::get):
56293        (JSC::Bindings::WeakMap::remove):
56294        * bridge/qt/qt_instance.h:
56295        (WeakMapImpl):
56296        (Bindings):
56297        (WeakMap):
56298        (QtInstance):
56299        * bridge/qt/qt_runtime.cpp:
56300        (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
56301        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
56302        * bridge/qt/qt_runtime.h:
56303        (QtRuntimeMethod):
56304
56305
563062012-08-16  Pavel Feldman  <pfeldman@chromium.org>
56307
56308        Web Inspector: build Elements, Resources, Timeline, Audits and Console panels lazily.
56309        https://bugs.webkit.org/show_bug.cgi?id=94222
56310
56311        Reviewed by Vsevolod Vlasov.
56312
56313        There is no need to construct these panels on inspector startup - we can do that lazily.
56314        This change introduces the concept of PanelDescriptor that is sufficient for the panel
56315        representation before it has been selected. It also makes selected panels build lazily.
56316
56317        The next step is to migrate rest of the panels and load the panel code lazily as well.
56318        That should speed up startup time significantly.
56319
56320        * inspector/front-end/AuditsPanel.js:
56321        (WebInspector.AuditsPanel):
56322        (WebInspector.AuditsPanel.prototype._auditFinishedCallback):
56323        (WebInspector.AuditsSidebarTreeElement):
56324        (WebInspector.AuditsSidebarTreeElement.prototype.onselect):
56325        (WebInspector.AuditResultSidebarTreeElement):
56326        (WebInspector.AuditResultSidebarTreeElement.prototype.onselect):
56327        * inspector/front-end/ConsolePanel.js:
56328        * inspector/front-end/DOMStorage.js:
56329        (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
56330        (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
56331        * inspector/front-end/Database.js:
56332        (WebInspector.DatabaseDispatcher.prototype.addDatabase):
56333        * inspector/front-end/ElementsPanel.js:
56334        (WebInspector.ElementsPanel):
56335        (WebInspector.ElementsPanel.prototype.revealAndSelectNode):
56336        (WebInspector.ElementsPanel.prototype.setSearchingForNode):
56337        (WebInspector.ElementsPanel.prototype.toggleSearchingForNode):
56338        * inspector/front-end/ElementsTreeOutline.js:
56339        (WebInspector.ElementsTreeElement.prototype._populateForcedPseudoStateItems):
56340        * inspector/front-end/ExtensionPanel.js:
56341        (WebInspector.ExtensionPanel):
56342        (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
56343        * inspector/front-end/ExtensionServer.js:
56344        (WebInspector.ExtensionServer.prototype._onCreatePanel):
56345        (WebInspector.ExtensionServer.prototype._onAddAuditCategory):
56346        * inspector/front-end/InspectorFrontendAPI.js:
56347        (InspectorFrontendAPI.isTimelineProfilingEnabled):
56348        (InspectorFrontendAPI.setTimelineProfilingEnabled):
56349        (InspectorFrontendAPI.showConsole):
56350        (InspectorFrontendAPI.showResources):
56351        (InspectorFrontendAPI.enterInspectElementMode):
56352        * inspector/front-end/InspectorView.js:
56353        (WebInspector.InspectorView):
56354        (WebInspector.InspectorView.prototype.addPanel):
56355        (WebInspector.InspectorView.prototype.panel):
56356        (WebInspector.InspectorView.prototype.showPanel):
56357        (WebInspector.InspectorView.prototype._keyDownInternal):
56358        * inspector/front-end/NetworkPanel.js:
56359        * inspector/front-end/Panel.js:
56360        (WebInspector.Panel.prototype.wasShown):
56361        (WebInspector.Panel.prototype.willHide):
56362        (WebInspector.PanelDescriptor):
56363        (WebInspector.PanelDescriptor.prototype.name):
56364        (WebInspector.PanelDescriptor.prototype.title):
56365        (WebInspector.PanelDescriptor.prototype.iconURL):
56366        (WebInspector.PanelDescriptor.prototype.setIconURL):
56367        (WebInspector.PanelDescriptor.prototype.panel):
56368        (WebInspector.PanelDescriptor.prototype.lazy):
56369        * inspector/front-end/ProfilesPanel.js:
56370        * inspector/front-end/ResourceTreeModel.js:
56371        (WebInspector.ResourceTreeModel.prototype.cachedResourcesLoaded):
56372        * inspector/front-end/ResourcesPanel.js:
56373        (WebInspector.ResourcesPanel):
56374        * inspector/front-end/ScriptsPanel.js:
56375        * inspector/front-end/StylesSidebarPane.js:
56376        (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
56377        (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
56378        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
56379        * inspector/front-end/TimelinePanel.js:
56380        * inspector/front-end/Toolbar.js:
56381        (WebInspector.Toolbar.prototype.addPanel):
56382        (WebInspector.Toolbar.prototype._createPanelToolbarItem.onToolbarItemClicked):
56383        (WebInspector.Toolbar.prototype._createPanelToolbarItem.panelSelected):
56384        (WebInspector.Toolbar.prototype._createPanelToolbarItem):
56385        (WebInspector.Toolbar.prototype._panelSelected):
56386        (WebInspector.Toolbar.prototype._setDropdownVisible):
56387        (WebInspector.ToolbarDropdown):
56388        (WebInspector.ToolbarDropdown.prototype.show):
56389        (WebInspector.ToolbarDropdown.prototype._populate):
56390        * inspector/front-end/inspector.css:
56391        (.toolbar-small .toolbar-icon.custom-toolbar-icon):
56392        * inspector/front-end/inspector.js:
56393        (WebInspector._panelDescriptors):
56394        (WebInspector._panelSelected):
56395        (WebInspector._createGlobalStatusBarItems):
56396        (WebInspector.documentClick.followLink):
56397        (WebInspector.documentClick):
56398        (WebInspector.openResource):
56399        (WebInspector.showPanel):
56400        (WebInspector.panel):
56401        (WebInspector.inspect.):
56402        (WebInspector.inspect):
56403        (WebInspector._showAnchorLocation):
56404        (WebInspector.showProfileForURL):
56405        (WebInspector.frontendReused):
56406
564072012-08-17  Pascal Massimino  <pascal.massimino@gmail.com>
56408
56409        libwebp-0.2.0: handle alpha channel if present
56410
56411        https://bugs.webkit.org/show_bug.cgi?id=93430
56412
56413        Reviewed by Adam Barth.
56414
56415        updated the Layout test webp-image-decoding.html
56416
56417        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
56418        (outputMode):
56419                switch to premultiplied-RGB if needed
56420        (WebCore::WEBPImageDecoder::WEBPImageDecoder):
56421        (WebCore::WEBPImageDecoder::decode):
56422                use WebPGetFeatures() instead of WebPGetInfo(),
56423                to detect presence of alpha channel
56424        * platform/image-decoders/webp/WEBPImageDecoder.h:
56425        (WEBPImageDecoder):
56426                add a m_hasAlpha field
56427
564282012-08-17  Yoshifumi Inoue  <yosin@chromium.org>
56429
56430        [Forms] Enable multiple fields time input UI for Chromium except Android
56431        https://bugs.webkit.org/show_bug.cgi?id=94195
56432
56433        Reviewed by Kent Tamura.
56434
56435        This patch enables multiple fields time input UI for Chromium except
56436        for Android.
56437
56438        No new tests. Existing tests in fast/forms/time-multiple-fields/
56439        covers appearance and functionality of multiple fields time UI.
56440
56441        A manual checking for browser displays multiple fields time input UI
56442        is needed.
56443
56444        * bindings/generic/RuntimeEnabledFeatures.cpp:
56445        (WebCore): Changed RuntimeEnabledFeatures::isInputTypeTimeEnabled to true
56446        if ENABLE_INPUT_TYPE_TIME is enabled.
56447
564482012-08-17  Yoshifumi Inoue  <yosin@chromium.org>
56449
56450        [Forms] Introduce SpinButtonElement.{cpp,h} into build
56451        https://bugs.webkit.org/show_bug.cgi?id=94289
56452
56453        Reviewed by Kent Tamura.
56454
56455        This patch introduces html/shadow/SpinButtonElement.{cpp,h} into
56456        build, files were copied from TextControlInnerElements.{cpp,h} by
56457        bug 93943.
56458
56459        No new tests. This patch doesn't changes behavior.
56460
56461        * CMakeLists.txt: Added SpinButtonElement.cpp
56462        * GNUmakefile.list.am: Added SpinButtonElement.{cpp,h}
56463        * Target.pri: Added SpinButtonElement.cpp
56464        * WebCore.gypi: Added SpinButtonElement.{cpp,h}
56465        * WebCore.vcproj/WebCore.vcproj: Added SpinButtonElement.{cpp,h}
56466        * WebCore.xcodeproj/project.pbxproj: Added SpinButtonElement.{cpp,h}
56467        * accessibility/AccessibilitySpinButton.h: Replaced include file to SpinButtonElement.h from TextControlInnerElements.h
56468        * html/TextFieldInputType.h: Added include file SpinButtonElement.h
56469        * html/shadow/DateTimeEditElement.h: Replaced include file to SpinButtonElement.h from TextControlInnerElements.h
56470        * html/shadow/SpinButtonElement.cpp: Removed code other than SpinButtonElement.
56471        * html/shadow/SpinButtonElement.h: Removed code other than SpinButtonElement.
56472        * html/shadow/TextControlInnerElements.cpp: Removed code of SpinButtonElement.
56473        * html/shadow/TextControlInnerElements.h: Removed SpinButtonElement.
56474        * rendering/RenderTheme.cpp: Added include file SpinButtonElement.h
56475
564762012-08-17  Sukolsak Sakshuwong  <sukolsak@google.com>
56477
56478        Implement UndoManager's V8 bindings
56479        https://bugs.webkit.org/show_bug.cgi?id=93912
56480
56481        Reviewed by Ryosuke Niwa.
56482
56483        This patch implements V8 bindings for UndoManager's transact() method.
56484        We keep alive the user objects passed to transact() by storing them in
56485        a hidden property of DOMTransaction's wrapper and registering implicit
56486        references from UndoManager to DOMTransaction.
56487
56488        Tests: editing/undomanager/domtransaction-survives-gc.html
56489               editing/undomanager/undomanager-isolated-world.html
56490               editing/undomanager/undomanager-transact.html
56491               editing/undomanager/undomanager-undo-redo.html
56492               editing/undomanager/undomanager-use-after-free.html
56493
56494        * CMakeLists.txt:
56495        * DerivedSources.cpp:
56496        * DerivedSources.make:
56497        * DerivedSources.pri:
56498        * GNUmakefile.list.am:
56499        * Target.pri:
56500        * UseJSC.cmake:
56501        * UseV8.cmake:
56502        * WebCore.gypi:
56503        * WebCore.vcproj/WebCore.vcproj:
56504        * WebCore.xcodeproj/project.pbxproj:
56505        * bindings/js/DOMTransaction.cpp: Added.
56506        (WebCore):
56507        (WebCore::DOMTransaction::DOMTransaction):
56508        (WebCore::DOMTransaction::create):
56509        (WebCore::DOMTransaction::apply):
56510        (WebCore::DOMTransaction::unapply):
56511        (WebCore::DOMTransaction::reapply):
56512        * bindings/js/DOMTransaction.h: Added.
56513        (WebCore):
56514        (DOMTransaction):
56515        (WebCore::DOMTransaction::undoManager):
56516        (WebCore::DOMTransaction::setUndoManager):
56517        * bindings/js/JSBindingsAllInOne.cpp:
56518        * bindings/js/JSUndoManagerCustom.cpp: Added.
56519        (WebCore):
56520        (WebCore::JSUndoManager::transact):
56521        * bindings/v8/DOMTransaction.cpp: Added.
56522        (WebCore):
56523        (WebCore::DOMTransaction::DOMTransaction):
56524        (WebCore::DOMTransaction::create):
56525        (WebCore::DOMTransaction::apply):
56526        (WebCore::DOMTransaction::unapply):
56527        (WebCore::DOMTransaction::reapply):
56528        (WebCore::DOMTransaction::getFunction):
56529        (WebCore::DOMTransaction::callFunction):
56530        * bindings/v8/DOMTransaction.h: Added.
56531        (WebCore):
56532        (DOMTransaction):
56533        (WebCore::DOMTransaction::undoManager):
56534        (WebCore::DOMTransaction::setUndoManager):
56535        * bindings/v8/V8HiddenPropertyName.h:
56536        (WebCore):
56537        * bindings/v8/custom/V8DOMTransactionCustom.cpp: Added.
56538        (WebCore):
56539        (WebCore::V8DOMTransaction::visitDOMWrapper):
56540        * bindings/v8/custom/V8UndoManagerCustom.cpp: Added.
56541        (WebCore):
56542        (WebCore::V8UndoManager::transactCallback):
56543        * dom/Document.cpp:
56544        (WebCore::Document::~Document):
56545        (WebCore::Document::undoManager):
56546        * dom/Element.cpp:
56547        (WebCore::Element::undoManager):
56548        (WebCore::Element::disconnectUndoManager):
56549        * editing/CompositeEditCommand.h:
56550        * editing/DOMTransaction.idl: Added.
56551        * editing/Editor.cpp:
56552        (WebCore::Editor::appliedEditing):
56553        (WebCore::Editor::unappliedEditing):
56554        (WebCore::Editor::reappliedEditing):
56555        (WebCore::Editor::canUndo):
56556        (WebCore::Editor::undo):
56557        (WebCore::Editor::canRedo):
56558        (WebCore::Editor::redo):
56559        * editing/UndoManager.cpp:
56560        (WebCore::UndoManager::create):
56561        (WebCore::UndoManager::UndoManager):
56562        (WebCore::clearStack):
56563        (WebCore):
56564        (WebCore::UndoManager::disconnect):
56565        (WebCore::UndoManager::stop):
56566        (WebCore::UndoManager::~UndoManager):
56567        (WebCore::createUndoManagerEntry):
56568        (WebCore::UndoManager::transact):
56569        (WebCore::UndoManager::undo):
56570        (WebCore::UndoManager::redo):
56571        (WebCore::UndoManager::registerUndoStep):
56572        (WebCore::UndoManager::registerRedoStep):
56573        (WebCore::UndoManager::clearUndo):
56574        (WebCore::UndoManager::clearRedo):
56575        * editing/UndoManager.h:
56576        (WebCore):
56577        (UndoManager):
56578        (WebCore::UndoManager::position):
56579        (WebCore::UndoManager::canUndo):
56580        (WebCore::UndoManager::canRedo):
56581        (WebCore::UndoManager::undoScopeHost):
56582        (WebCore::UndoManager::ownerNode):
56583        * editing/UndoManager.idl:
56584        * editing/UndoStep.h:
56585        (UndoStep):
56586
565872012-08-16  Andrey Kosyakov  <caseq@chromium.org>
56588
56589        Web Inspector: CPU profile view select overlaps with status bar buttons
56590        https://bugs.webkit.org/show_bug.cgi?id=94243
56591
56592        Reviewed by Pavel Feldman.
56593
56594        - use StatusBarComboBox inated of plain select element in the status bar of CPU profile view;
56595        - add StatusBarComboBox.select()
56596
56597        * inspector/front-end/CPUProfileView.js:
56598        (WebInspector.CPUProfileView.prototype.get statusBarItems):
56599        * inspector/front-end/StatusBarButton.js:
56600        (WebInspector.StatusBarComboBox.prototype.selectedOption):
56601        (WebInspector.StatusBarComboBox.prototype.select):
56602        * inspector/front-end/externs.js: drive-by fix: add declaration to suppress compilation error;
56603        (Array.prototype.select):
56604
566052012-08-16  Vsevolod Vlasov  <vsevik@chromium.org>
56606
56607        Web Inspector: Snippet script mapping should not load snippets until workspace reset event is dispatched on scripts panel.
56608        https://bugs.webkit.org/show_bug.cgi?id=94218
56609
56610        Reviewed by Pavel Feldman.
56611
56612        Scripts panel does not load uiSourceCodes in workspace reset handler anymore.
56613        Snippet script mapping does not start reloading snippets after reset until WorkspaceReset event is dispatched.
56614
56615        * inspector/front-end/JavaScriptSourceFrame.js: Simplified isComittingEditing to be reset synchronously.
56616        (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
56617        (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
56618        * inspector/front-end/ScriptSnippetModel.js:
56619        (WebInspector.ScriptSnippetModel.prototype._reset):
56620        * inspector/front-end/ScriptsPanel.js:
56621        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
56622        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
56623        (WebInspector.ScriptsPanel.prototype._reset):
56624        * inspector/front-end/UISourceCodeFrame.js: Simplified isComittingEditing to be reset synchronously.
56625        (WebInspector.UISourceCodeFrame.prototype.commitEditing):
56626        (WebInspector.UISourceCodeFrame.prototype._didEditContent):
56627
566282012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
56629
56630        Unreviewed, rolling out r125829.
56631        http://trac.webkit.org/changeset/125829
56632        https://bugs.webkit.org/show_bug.cgi?id=94299
56633
56634        Maybe causing Chromium AutomationTabHelperBrowserTest failures
56635        (Requested by enne on #webkit).
56636
56637        * loader/FrameLoader.cpp:
56638        (WebCore::FrameLoader::init):
56639        (WebCore::FrameLoader::prepareForLoadStart):
56640        (WebCore::FrameLoader::clearProvisionalLoad):
56641        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
56642        (WebCore::FrameLoader::detachFromParent):
56643        * loader/FrameLoader.h:
56644        (FrameLoader):
56645
566462012-08-16  Nico Weber  <thakis@chromium.org>
56647
56648        [chromium/mac] Remove RenderThemeChromiumMac::paintTextField override
56649        https://bugs.webkit.org/show_bug.cgi?id=94276
56650
56651        Reviewed by Eric Seidel.
56652
56653        The comment says this can go once 10.5 goes away. Besides, the
56654        superclass implementation has the same hack anyway.
56655
56656        No behavior change.
56657
56658        * rendering/RenderThemeChromiumMac.h:
56659        (RenderThemeChromiumMac):
56660        * rendering/RenderThemeChromiumMac.mm:
56661
566622012-08-16  David Barr  <davidbarr@chromium.org>
56663
56664        @import url("#foo") causes stack overflow
56665        https://bugs.webkit.org/show_bug.cgi?id=93687
56666
56667        Reviewed by Tony Chang.
56668
56669        Test: http/tests/css/css-imports-url-fragment.html
56670
56671        * css/StyleRuleImport.cpp:
56672        (WebCore::StyleRuleImport::requestStyleSheet): Ignore the fragment identifier in cycle detection.
56673
566742012-08-16  Antoine Labour  <piman@chromium.org>
56675
56676        [chromium] Add resource transfer functions to CCResourceProvider
56677        https://bugs.webkit.org/show_bug.cgi?id=93524
56678
56679        Reviewed by James Robinson.
56680
56681        This adds methods to CCResourceProvider to be able to transport
56682        resources from a child to a parent.
56683
56684        Added test to CCResourceProviderTest.
56685
56686        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
56687        (WebCore::CCResourceProvider::inUseByConsumer):
56688        (WebCore::CCResourceProvider::createResource):
56689        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
56690        (WebCore::CCResourceProvider::CCResourceProvider):
56691        (WebCore::CCResourceProvider::createChild):
56692        (WebCore):
56693        (WebCore::CCResourceProvider::destroyChild):
56694        (WebCore::CCResourceProvider::getChildToParentMap):
56695        (WebCore::CCResourceProvider::prepareSendToParent):
56696        (WebCore::CCResourceProvider::prepareSendToChild):
56697        (WebCore::CCResourceProvider::receiveFromChild):
56698        (WebCore::CCResourceProvider::receiveFromParent):
56699        (WebCore::CCResourceProvider::transferResource):
56700        * platform/graphics/chromium/cc/CCResourceProvider.h:
56701        (Mailbox):
56702        (TransferableResource):
56703        (TransferableResourceList):
56704        (CCResourceProvider):
56705        (Resource):
56706        (Child):
56707
567082012-08-16  David Grogan  <dgrogan@chromium.org>
56709
56710        IndexedDB: Frontend and plumbing for integer versions
56711        https://bugs.webkit.org/show_bug.cgi?id=92897
56712
56713        Reviewed by Tony Chang.
56714
56715        This patch exposes integer versions and the upgradeneeded event to
56716        script.
56717
56718        The events surrounding an IDBOpenDBRequest follow a new pattern
56719        compared to other idb requests. An open request can receive a blocked
56720        event, an upgradeneeded event, and then a success event. When
56721        dispatching the upgradeneeded and success events the request has its
56722        readyState set to DONE and its result property set to an IDBDatabase.
56723        We usually think of IDBRequests firing one event with one result,
56724        cursors being the big exception. There are some minor changes around
56725        enqueuing and dispatching events to support this.
56726
56727        There's also some funkiness in
56728        IDBRequest::onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) so that
56729        the IDBDatabase object delivered in upgradeneeded is reused for the
56730        success event.
56731
56732        Tests - expectations are updated in this patch.
56733
56734        * Modules/indexeddb/IDBDatabase.cpp:
56735        (WebCore::IDBDatabase::setVersion):
56736        (WebCore::IDBDatabase::onVersionChange):
56737        (WebCore):
56738        (WebCore::IDBDatabase::registerFrontendCallbacks):
56739        * Modules/indexeddb/IDBDatabase.h:
56740        (IDBDatabase):
56741        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
56742        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
56743        * Modules/indexeddb/IDBDatabaseCallbacks.h:
56744        (IDBDatabaseCallbacks):
56745        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
56746        (WebCore::IDBDatabaseCallbacksImpl::onVersionChange):
56747        (WebCore):
56748        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
56749        (IDBDatabaseCallbacksImpl):
56750        * Modules/indexeddb/IDBFactory.cpp:
56751        (WebCore::IDBFactory::open):
56752        (WebCore):
56753        * Modules/indexeddb/IDBFactory.h:
56754        (IDBFactory):
56755        * Modules/indexeddb/IDBFactory.idl:
56756        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
56757        (WebCore::IDBFactoryBackendImpl::open):
56758        * Modules/indexeddb/IDBFactoryBackendImpl.h:
56759        (IDBFactoryBackendImpl):
56760        * Modules/indexeddb/IDBFactoryBackendInterface.h:
56761        (IDBFactoryBackendInterface):
56762        * Modules/indexeddb/IDBOpenDBRequest.cpp: Added.
56763        (WebCore):
56764        (WebCore::IDBOpenDBRequest::create):
56765        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
56766        (WebCore::IDBOpenDBRequest::~IDBOpenDBRequest):
56767        (WebCore::IDBOpenDBRequest::interfaceName):
56768        (WebCore::IDBOpenDBRequest::onBlocked):
56769        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
56770        (WebCore::IDBOpenDBRequest::shouldEnqueueEvent):
56771        * Modules/indexeddb/IDBOpenDBRequest.h: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h.
56772        (WebCore):
56773        (IDBOpenDBRequest):
56774        * Modules/indexeddb/IDBOpenDBRequest.idl: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h.
56775        * Modules/indexeddb/IDBRequest.cpp:
56776        (WebCore::IDBRequest::IDBRequest):
56777        (WebCore::IDBRequest::shouldEnqueueEvent):
56778        (WebCore::IDBRequest::onSuccess):
56779        This function works with WebIDBCallbacksImpl::onSuccess to reuse its
56780        IDBDatabaseBackendInterface that it got during
56781        IDBOpenDBRequest::onUpgradeNeeded.
56782
56783        (WebCore::IDBRequest::dispatchEvent):
56784        (WebCore::IDBRequest::transactionDidDispatchCompleteOrAbort):
56785        (WebCore):
56786        (WebCore::IDBRequest::enqueueEvent):
56787        * Modules/indexeddb/IDBRequest.h:
56788        (WebCore::IDBRequest::onBlocked):
56789        (IDBRequest):
56790        * Modules/indexeddb/IDBTransaction.cpp:
56791        We now take a pointer to the openDBRequest if this is a version
56792        change transaction as a result of an open-with-version call so that we
56793        can clear the transaction property on the openDBRequest as soon as the
56794        upgradeneeded event is dispatched per the spec ("... set request's
56795        transaction property to null... ", currently 4.8.12).
56796
56797        (WebCore::IDBTransaction::create):
56798        (WebCore):
56799        (WebCore::IDBTransaction::IDBTransaction):
56800        (WebCore::IDBTransaction::setActive):
56801        (WebCore::IDBTransaction::onComplete):
56802        (WebCore::IDBTransaction::dispatchEvent):
56803        * Modules/indexeddb/IDBTransaction.h:
56804        (WebCore):
56805        (IDBTransaction):
56806        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
56807        (WebCore::IDBTransactionBackendImpl::commit):
56808        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp.
56809        (WebCore):
56810        (WebCore::IDBUpgradeNeededEvent::create):
56811        (WebCore::IDBUpgradeNeededEvent::IDBUpgradeNeededEvent):
56812        (WebCore::IDBUpgradeNeededEvent::~IDBUpgradeNeededEvent):
56813        (WebCore::IDBUpgradeNeededEvent::oldVersion):
56814        (WebCore::IDBUpgradeNeededEvent::newVersion):
56815        (WebCore::IDBUpgradeNeededEvent::interfaceName):
56816        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Copied from Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h.
56817        (WebCore):
56818        (IDBUpgradeNeededEvent):
56819        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h.
56820        * WebCore.gypi:
56821        * dom/EventNames.h:
56822        (WebCore):
56823        * dom/EventNames.in:
56824        * dom/EventTargetFactory.in:
56825        * inspector/InspectorIndexedDBAgent.cpp:
56826        (WebCore):
56827
568282012-08-16  Yoshifumi Inoue  <yosin@chromium.org>
56829
56830        [Forms] Cleanup CSS selectors for multiple fields time input UI
56831        https://bugs.webkit.org/show_bug.cgi?id=94287
56832
56833        Reviewed by Kent Tamura.
56834
56835        This patch cleans CSS selectors for multiple fields time input UI:
56836         - Removed "width" from fields: we use monospace font for field.
56837         - Use "em" instead of "px" for unit.
56838         - Add left margin to spin button.
56839
56840        Changes of this patch affect only both ENABLE_INPUT_TYPE_TIME and
56841        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS are enabled.
56842
56843        Tests: fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html
56844               fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly.html
56845               fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes.html
56846               fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements.html
56847               fast/forms/time-multiple-fields/time-multiple-fields-appearance-style.html
56848
56849        * css/html.css:
56850        (input::-webkit-datetime-edit-ampm-field):
56851        (input::-webkit-datetime-edit-hour-field):
56852        (input::-webkit-datetime-edit-millisecond-field):
56853        (input::-webkit-datetime-edit-minute-field):
56854        (input::-webkit-datetime-edit-second-field):
56855        (input[type=time]::-webkit-inner-spin-button):
56856
568572012-08-16  John Bates  <jbates@google.com>
56858
56859        Fix vsync-disabled Null pointer crash bug
56860        https://bugs.webkit.org/show_bug.cgi?id=94280
56861
56862        Reviewed by Kentaro Hara.
56863
56864        The m_timeSource member is NULL for vsync-disabled path, need to check for that.
56865
56866        Tests: Covered by Chromium throughput tests. All the compositor thread throughput tests are crashing.
56867
56868        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
56869        (WebCore::CCFrameRateController::setTimebaseAndInterval):
56870
568712012-08-16  Michael Saboff  <msaboff@apple.com>
56872
56873        HTML Parser should produce 8bit substrings for inline style and script elements
56874        https://bugs.webkit.org/show_bug.cgi?id=93742
56875
56876        Reviewed by Benjamin Poulain.
56877
56878        Currently all data associated with a token is stored and processed as UChars.
56879        Added code to determine that the contents of token data is all 8 bit by keeping
56880        the logical OR value of all prior characters. Also added a flag that the parser
56881        can set to indicate when the token data is converted to a String that we want
56882        to make an 8 bit string if possible. Enabled this handling for script, style,
56883        iframe, noembed, noframes, noscript and xmp tags.
56884
56885        No new tests. Existing tests provide coverage.
56886
56887        * html/parser/HTMLTokenizer.cpp:
56888        (WebCore::HTMLTokenizer::nextToken):
56889        * html/parser/HTMLTreeBuilder.cpp:
56890        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
56891        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::isAll8BitData):
56892        (HTMLTreeBuilder::ExternalCharacterTokenBuffer):
56893        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemaining):
56894        * xml/parser/MarkupTokenBase.h:
56895        (WebCore::MarkupTokenBase::clear):
56896        (WebCore::MarkupTokenBase::appendToCharacter):
56897        (MarkupTokenBase):
56898        (WebCore::MarkupTokenBase::eraseCharacters):
56899        (WebCore::MarkupTokenBase::setConvertTo8Bit):
56900        (WebCore::MarkupTokenBase::isAll8BitData):
56901        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
56902        (WebCore::AtomicMarkupTokenBase::isAll8BitData):
56903        (AtomicMarkupTokenBase):
56904        (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
56905
569062012-08-16  Michelangelo De Simone  <michelangelo@webkit.org>
56907
56908        [Part 3] Parse the custom() function in -webkit-filter: parse the 3d-transforms parameters
56909        https://bugs.webkit.org/show_bug.cgi?id=71443
56910
56911        Reviewed by Dirk Schulze.
56912
56913        custom() now correctly parses the 3d-tranforms parameters. In order to do that the parseTransform() method 
56914        has been refactored and split to reuse already present code. 
56915
56916        * css/CSSParser.cpp:
56917        (WebCore::parseTranslateTransformValue): Renamed from parseTransformValue()
56918        (WebCore::CSSParser::parseValue): Reference updated from parseTransformValue() to parseTranslateTransformValue()
56919        (WebCore::CSSParser::parseTransform): This method has been split in two to reuse already present code
56920        (WebCore):
56921        (WebCore::CSSParser::parseTransformValue): New method to parse single transform values
56922        (WebCore::CSSParser::parseCustomFilter): Updated to parse the transform parameters
56923        (WebCore::CSSParser::parseCustomFilterTransform): New method to parse custom() transforms 
56924        * css/CSSParser.h:
56925
569262012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
56927
56928        Unreviewed, rolling out r125838.
56929        http://trac.webkit.org/changeset/125838
56930        https://bugs.webkit.org/show_bug.cgi?id=94283
56931
56932        Breaks Mac compile due to bug 74625 (Requested by enne on
56933        #webkit).
56934
56935        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
56936        (WebCore::CCResourceProvider::inUseByConsumer):
56937        (WebCore::CCResourceProvider::createResource):
56938        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
56939        (WebCore::CCResourceProvider::deleteOwnedResources):
56940        (WebCore::CCResourceProvider::CCResourceProvider):
56941        * platform/graphics/chromium/cc/CCResourceProvider.h:
56942        (CCResourceProvider):
56943        (Resource):
56944
569452012-08-16  Kenneth Russell  <kbr@google.com>
56946
56947        Unreviewed, rolling out r125800.
56948        http://trac.webkit.org/changeset/125800
56949        https://bugs.webkit.org/show_bug.cgi?id=84281
56950
56951        Hypothesis that this change caused gpu_throughput_tests to
56952        start timing out on all platforms on the Chromium GPU
56953        canaries.
56954
56955        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
56956        * platform/graphics/chromium/cc/CCFrameRateController.h:
56957        (CCFrameRateController):
56958        * platform/graphics/chromium/cc/CCScheduler.cpp:
56959        (WebCore::CCScheduler::processScheduledActions):
56960        * platform/graphics/chromium/cc/CCScheduler.h:
56961        (CCSchedulerClient):
56962        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
56963        (WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
56964        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
56965        (WebCore::CCTextureUpdateController::updateMoreTextures):
56966        (WebCore::CCTextureUpdateController::updateMoreTexturesSize):
56967        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
56968        (WebCore::CCTextureUpdateController::create):
56969        (CCTextureUpdateController):
56970        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
56971        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
56972        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
56973        * platform/graphics/chromium/cc/CCThreadProxy.h:
56974
569752012-08-16  Kenneth Russell  <kbr@google.com>
56976
56977        Unreviewed, rolling out r125833.
56978        http://trac.webkit.org/changeset/125833
56979        https://bugs.webkit.org/show_bug.cgi?id=94234
56980
56981        Was not the cause of the test failures. Per
56982        http://crbug.com/143311 , it is probably WebKit r125800.
56983
56984        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
56985        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
56986        (WebCore::Canvas2DLayerBridge::deferredCanvas):
56987        (WebCore):
56988        (WebCore::Canvas2DLayerBridge::prepareForDraw):
56989        (WebCore::Canvas2DLayerBridge::skCanvas):
56990        * platform/graphics/chromium/Canvas2DLayerBridge.h:
56991        (Canvas2DLayerBridge):
56992        * platform/graphics/skia/ImageBufferSkia.cpp:
56993
569942012-08-16  Antoine Labour  <piman@chromium.org>
56995
56996        [chromium] Add resource transfer functions to CCResourceProvider
56997        https://bugs.webkit.org/show_bug.cgi?id=93524
56998
56999        Reviewed by James Robinson.
57000
57001        This adds methods to CCResourceProvider to be able to transport
57002        resources from a child to a parent.
57003
57004        Added test to CCResourceProviderTest.
57005
57006        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
57007        (WebCore::CCResourceProvider::inUseByConsumer):
57008        (WebCore::CCResourceProvider::createResource):
57009        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
57010        (WebCore::CCResourceProvider::CCResourceProvider):
57011        (WebCore::CCResourceProvider::createChild):
57012        (WebCore):
57013        (WebCore::CCResourceProvider::destroyChild):
57014        (WebCore::CCResourceProvider::getChildToParentMap):
57015        (WebCore::CCResourceProvider::prepareSendToParent):
57016        (WebCore::CCResourceProvider::prepareSendToChild):
57017        (WebCore::CCResourceProvider::receiveFromChild):
57018        (WebCore::CCResourceProvider::receiveFromParent):
57019        (WebCore::CCResourceProvider::transferResource):
57020        * platform/graphics/chromium/cc/CCResourceProvider.h:
57021        (Mailbox):
57022        (TransferableResource):
57023        (TransferableResourceList):
57024        (CCResourceProvider):
57025        (Resource):
57026        (Child):
57027
570282012-08-16  Kent Tamura  <tkent@chromium.org>
57029
57030        [Chromium-win] Use native digits in a case of "context" substitution setting too.
57031        https://bugs.webkit.org/show_bug.cgi?id=94210
57032
57033        Reviewed by Hajime Morita.
57034
57035        Use native digits in a case of "context" substitution setting, not only
57036        "native" substitution.  IE10's input[type=number] always show native
57037        digits even if the system setting is "context". We had better follow
57038        this behavior.
57039
57040        No new tests. This behavior depends on the system locale setting.
57041
57042        * platform/text/LocaleWin.cpp:
57043        (WebCore::LocaleWin::initializeNumberLocalizerData):
57044        Uses 0-9 only if the substitution setting is "0 to 9". It measn we apply
57045        native digits if the substitution setting is "context" or "native".
57046
570472012-08-16  Huang Dongsung  <luxtella@company100.net>
57048
57049        [Texmap] Render gif animation well.
57050        https://bugs.webkit.org/show_bug.cgi?id=93458
57051
57052        Reviewed by Noam Rosenthal.
57053
57054        GraphicsLayerTextureMapper::setContentsToImage() checks the pointer to the
57055        image, not nativeImagePtr, so Texmap currently draws only the first frame of gif
57056        animations. This patch makes Texmap draw gif animations.
57057
57058        No new tests, could not write a test due to DRT limitation, see Bug 93458.
57059
57060        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57061        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
57062        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
57063        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57064        (GraphicsLayerTextureMapper):
57065
570662012-08-16  Kenneth Russell  <kbr@google.com>
57067
57068        Unreviewed, rolling out r125804.
57069        http://trac.webkit.org/changeset/125804
57070        https://bugs.webkit.org/show_bug.cgi?id=94234
57071
57072        Made threaded tests in performance_browser_tests start timing
57073        out on Chromium GPU bots
57074
57075        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
57076        (AcceleratedDeviceContext):
57077        (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
57078        (WebCore::AcceleratedDeviceContext::prepareForDraw):
57079        (WebCore):
57080        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
57081        (WebCore::Canvas2DLayerBridge::skCanvas):
57082        * platform/graphics/chromium/Canvas2DLayerBridge.h:
57083        (Canvas2DLayerBridge):
57084        * platform/graphics/skia/ImageBufferSkia.cpp:
57085
570862012-08-16  Adam Barth  <abarth@webkit.org>
57087
57088        Rename DOMWindow::clear to something more descriptive
57089        https://bugs.webkit.org/show_bug.cgi?id=93993
57090
57091        Reviewed by Eric Seidel.
57092
57093        As requested by Eric Seidel. In WebKit, we typically use "clear" to
57094        mean zeroing out a pointer (e.g., OwnPtr::clear). For DOMWindow, it's
57095        more like we're resetting the DOMWindow to a known state (i.e., its
57096        initial state), modulo a wrinkle w.r.t. the PageCache. The new name
57097        attempts to clarify the situation.
57098
57099        * dom/Document.cpp:
57100        (WebCore::Document::~Document):
57101        * loader/FrameLoader.cpp:
57102        (WebCore::FrameLoader::clear):
57103        * page/DOMWindow.cpp:
57104        (WebCore::DOMWindow::~DOMWindow):
57105        (WebCore::DOMWindow::frameDestroyed):
57106        (WebCore::DOMWindow::resetUnlessSuspendedForPageCache):
57107        (WebCore::DOMWindow::resetDOMWindowProperties):
57108        * page/DOMWindow.h:
57109        (DOMWindow):
57110
571112012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
57112
57113        Unreviewed, rolling out r125717.
57114        http://trac.webkit.org/changeset/125717
57115        https://bugs.webkit.org/show_bug.cgi?id=94272
57116
57117        Likely to be causing Chromium Win Debug extensions browser
57118        tests to fail (Requested by enne on #webkit).
57119
57120        * UseV8.cmake:
57121        * WebCore.gypi:
57122        * bindings/v8/DOMWrapperWorld.cpp:
57123        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
57124        (WebCore::mainThreadNormalWorld):
57125        * bindings/v8/DOMWrapperWorld.h:
57126        (WebCore):
57127        (WebCore::DOMWrapperWorld::create):
57128        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
57129        (DOMWrapperWorld):
57130        * bindings/v8/IsolatedWorld.cpp: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.cpp.
57131        (WebCore):
57132        (WebCore::IsolatedWorld::IsolatedWorld):
57133        (WebCore::IsolatedWorld::~IsolatedWorld):
57134        * bindings/v8/IsolatedWorld.h: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.h.
57135        (WebCore):
57136        (IsolatedWorld):
57137        (WebCore::IsolatedWorld::create):
57138        (WebCore::IsolatedWorld::count):
57139        (WebCore::IsolatedWorld::id):
57140        (WebCore::IsolatedWorld::domDataStore):
57141        * bindings/v8/V8DOMWrapper.h:
57142        (WebCore::V8DOMWrapper::getCachedWrapper):
57143        * bindings/v8/V8IsolatedContext.cpp:
57144        (WebCore::V8IsolatedContext::V8IsolatedContext):
57145        (WebCore::V8IsolatedContext::destroy):
57146        * bindings/v8/V8IsolatedContext.h:
57147        (WebCore::V8IsolatedContext::getEntered):
57148        (WebCore::V8IsolatedContext::world):
57149        (V8IsolatedContext):
57150
571512012-08-16  Nico Weber  <thakis@chromium.org>
57152
57153        Delete ThemeChromiumMac, use ThemeMac in chromium/mac instead
57154        https://bugs.webkit.org/show_bug.cgi?id=94260
57155
57156        Reviewed by James Robinson.
57157
57158        ThemeChromiumMac was introduced when ThemeMac assumed that an
57159        in-process Cocoa view existed. With WebKit2, that's no longer true,
57160        and the files can now be merged.
57161
57162        No behavior change.
57163
57164        * WebCore.gyp/WebCore.gyp:
57165        * WebCore.gypi:
57166        * platform/chromium/ThemeChromiumMac.h: Removed.
57167        * platform/chromium/ThemeChromiumMac.mm: Removed.
57168        * platform/mac/ThemeMac.mm:
57169        (WebCore::paintStepper):
57170        (WebCore::ThemeMac::ensuredView):
57171
571722012-08-16  Nate Chapin  <japhet@chromium.org>
57173
57174        ProgressTracker never completes if iframe detached during parsing 
57175        https://bugs.webkit.org/show_bug.cgi?id=92272
57176
57177        Reviewed by Adam Barth.
57178
57179        Add a simple helper class to FrameLoader to ensure progressStarted/progressCompleted calls are matched,
57180        and balance the calls when the Frame is detached.
57181
57182        No new tests, as this behavior has only been producing reliably by setting a breakpoint in a specific place.
57183
57184        * loader/FrameLoader.cpp:
57185        (WebCore::FrameLoader::init):
57186        (WebCore::FrameLoader::FrameProgressTracker::progressStarted):
57187        (WebCore::FrameLoader::FrameProgressTracker::progressCompleted):
57188        (WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
57189        (WebCore::FrameLoader::prepareForLoadStart):
57190        (WebCore::FrameLoader::clearProvisionalLoad):
57191        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
57192        (WebCore::FrameLoader::detachFromParent):
57193        * loader/FrameLoader.h:
57194        (FrameProgressTracker):
57195        (WebCore::FrameLoader::FrameProgressTracker::create):
57196        (WebCore::FrameLoader::FrameProgressTracker::FrameProgressTracker):
57197
571982012-08-16  Arnaud Renevier  <a.renevier@sisa.samsung.com>
57199
57200        Update TypedArrays to throw RangeError or similar instead of INDEX_SIZE_ERR
57201        https://bugs.webkit.org/show_bug.cgi?id=45118
57202
57203        Reviewed by Kenneth Russell.
57204
57205        Update TypedArrays to raise JavaScript RangeError instead of dom
57206        INDEX_SIZE_ERR exceptions. Also, update TypedArrays to raise TypeError
57207        instead of JavaScript SyntaxError or dom exceptions SYNTAX_ERR when
57208        calling set method with invalid arguments.
57209
57210        Specification does not define the type of exceptions to raise, but
57211        other browsers raise JavaScript errors, so those changes will improve
57212        compatibility.
57213
57214        New Test: fast/canvas/webgl/array-set-invalid-arguments.html
57215
57216        Updated Tests expectations:
57217            fast/canvas/webgl/array-set-out-of-bounds.html
57218            fast/canvas/webgl/data-view-crash.html
57219            fast/canvas/webgl/data-view-test.html
57220
57221        * bindings/js/JSArrayBufferViewHelper.h:
57222        (WebCore):
57223        (WebCore::setWebGLArrayWithTypedArrayArgument):
57224        (WebCore::setWebGLArrayHelper):
57225        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
57226        (WebCore::constructArrayBufferViewWithArrayBufferArgument):
57227        (WebCore::constructArrayBufferView):
57228        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
57229        (WebCore):
57230        (WebCore::constructWebGLArrayWithArrayBufferArgument):
57231        (WebCore::setWebGLArrayHelper):
57232
572332012-08-16  Alexandre Elias  <aelias@google.com>
57234
57235        [chromium] Replace destRect with destOffset in texture upload
57236        https://bugs.webkit.org/show_bug.cgi?id=94154
57237
57238        Reviewed by James Robinson.
57239
57240        Previously, texture upload code implicitly assumed that sourceRect and
57241        destRect have the same size. The behavior is undefined if they are
57242        different, since they are used interchangeably and there's no support
57243        for scaling from one rect to the other. This patch enforces that
57244        constraint at the interface level by replacing all instances of
57245        "IntRect destRect" by "IntSize destOffset".
57246
57247        No new tests (no-op refactoring).
57248
57249        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
57250        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::updateRect):
57251        (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
57252        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
57253        (Texture):
57254        (BitmapCanvasLayerTextureUpdater):
57255        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
57256        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
57257        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
57258        (Texture):
57259        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
57260        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
57261        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
57262        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
57263        (Texture):
57264        (FrameBufferSkPictureCanvasLayerTextureUpdater):
57265        * platform/graphics/chromium/ImageLayerChromium.cpp:
57266        (WebCore::ImageLayerTextureUpdater::updateTextureRect):
57267        * platform/graphics/chromium/LayerRendererChromium.cpp:
57268        * platform/graphics/chromium/LayerTextureSubImage.cpp:
57269        (WebCore::LayerTextureSubImage::upload):
57270        (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
57271        (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
57272        * platform/graphics/chromium/LayerTextureSubImage.h:
57273        (LayerTextureSubImage):
57274        * platform/graphics/chromium/LayerTextureUpdater.h:
57275        (Texture):
57276        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
57277        (WebCore::ScrollbarLayerChromium::updatePart):
57278        * platform/graphics/chromium/TextureUploader.h:
57279        (Parameters):
57280        * platform/graphics/chromium/ThrottledTextureUploader.cpp:
57281        (WebCore::ThrottledTextureUploader::uploadTexture):
57282        * platform/graphics/chromium/TiledLayerChromium.cpp:
57283        (WebCore::TiledLayerChromium::updateTileTextures):
57284        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
57285        (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
57286        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
57287        (WebCore::CCPrioritizedTexture::upload):
57288        * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
57289        (CCPrioritizedTexture):
57290        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
57291        (WebCore::CCResourceProvider::upload):
57292        * platform/graphics/chromium/cc/CCResourceProvider.h:
57293        (CCResourceProvider):
57294        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
57295        (WebCore::CCVideoLayerImpl::copyPlaneData):
57296
572972012-08-16  James Robinson  <jamesr@chromium.org>
57298
57299        [chromium] Remove unnecessary tree hierarchy inspection APIs from WebLayer
57300        https://bugs.webkit.org/show_bug.cgi?id=94229
57301
57302        Reviewed by Adrienne Walker.
57303
57304        Tweak updateLayerPreserves3D() logic to use the existing GraphicsLayer tree hierarchy instead of pulling the
57305        hierarchy off of WebLayer.
57306
57307        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
57308        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
57309
573102012-08-16  Ryosuke Niwa  <rniwa@webkit.org>
57311
57312        Let Xcode have its own way.
57313
57314        * WebCore.xcodeproj/project.pbxproj:
57315
573162012-08-16  Mike West  <mkwst@chromium.org>
57317
57318        Refactor CSPDirective to support non-sourcelist types.
57319        https://bugs.webkit.org/show_bug.cgi?id=94252
57320
57321        Reviewed by Adam Barth.
57322
57323        The 'CSPDirective' was built to support source list Content Security
57324        Policy directives like 'script-src' or 'object-src'. It doesn't support
57325        new directive types like 'script-nonce' or 'plugin-types'. That
57326        functionality has been implemented by hanging state off of
57327        CSPDirectiveList, which isn't a great solution.
57328
57329        This patch pulls the source list functionality out of CSPDirective and
57330        into SourceListDirective, and likewise pulls the nonce and media list
57331        functionality into NonceDirective and MediaListDirective.
57332
57333        No new tests have been added; this refactoring should be externally
57334        transparent, and the current CSP tests should continue to pass.
57335
57336        * page/ContentSecurityPolicy.cpp:
57337        (WebCore::CSPDirective::CSPDirective):
57338        (CSPDirective):
57339        (WebCore::CSPDirective::text):
57340        (WebCore::CSPDirective::policy):
57341            CSPDirective is now a parent class for NonceDirective,
57342            MediaListDirective, and SourceListDirective. It stores a pointer
57343            to the ContentSecurityPolicy object in order to facilitate logging,
57344            which now needs to happen at this level, rather than higher up in
57345            CSPDirectiveList.
57346        (WebCore):
57347        (NonceDirective):
57348        (WebCore::NonceDirective::NonceDirective):
57349        (WebCore::NonceDirective::allows):
57350        (WebCore::NonceDirective::parse):
57351            Pull the nonce parsing code and state out of CSPDirectiveList
57352            and into this new class.
57353        (MediaListDirective):
57354        (WebCore::MediaListDirective::MediaListDirective):
57355        (WebCore::MediaListDirective::allows):
57356        (WebCore::MediaListDirective::parse):
57357            Pull the media list parsing code and state out of CSPDirectiveList
57358            and into this new class.
57359        (SourceListDirective):
57360        (WebCore::SourceListDirective::SourceListDirective):
57361        (WebCore::SourceListDirective::allows):
57362            Pull the source list functionality out of CSPDirective
57363            and into this new class.
57364        (CSPDirectiveList):
57365        (WebCore::CSPDirectiveList::checkEval):
57366        (WebCore::CSPDirectiveList::checkInline):
57367        (WebCore::CSPDirectiveList::checkNonce):
57368        (WebCore::CSPDirectiveList::checkSource):
57369        (WebCore::CSPDirectiveList::checkMediaType):
57370        (WebCore::CSPDirectiveList::operativeDirective):
57371        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
57372        (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
57373        (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
57374        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
57375        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
57376        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
57377        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
57378        (WebCore::CSPDirectiveList::allowScriptNonce):
57379        (WebCore::CSPDirectiveList::allowPluginType):
57380        (WebCore::CSPDirectiveList::setCSPDirective):
57381        (WebCore::CSPDirectiveList::addDirective):
57382            Use the new classes rather than CSPDirective (or no directive
57383            at all, in the case of nonces and plugin types).
57384
573852012-08-16  Adam Barth  <abarth@webkit.org>
57386
57387        Null checks of m_frame->document()->domWindow() aren't needed
57388        https://bugs.webkit.org/show_bug.cgi?id=94052
57389
57390        Reviewed by Eric Seidel.
57391
57392        If a document is attached to a frame, then its DOMWindow is necessarily
57393        non-0. Checking for 0 is needless.
57394
57395        * loader/DocumentLoader.cpp:
57396        (WebCore::DocumentLoader::checkLoadComplete):
57397        * loader/FrameLoader.cpp:
57398        (WebCore::FrameLoader::stopLoading):
57399        (WebCore::FrameLoader::didOpenURL):
57400        (WebCore::FrameLoader::prepareForCachedPageRestore):
57401
574022012-08-16  Max Feil  <mfeil@rim.com>
57403
57404        [BlackBerry] Some media controls are mispositioned for dynamic live streams (HLS)
57405        https://bugs.webkit.org/show_bug.cgi?id=94176
57406
57407        Reviewed by Antonio Gomes.
57408
57409        The default HTML5 media controls for dynamic live streams have
57410        no timeline or timeline container, which for BlackBerry results
57411        in mispositioning of the buttons that are supposed to be to
57412        the right of the timeline (fullscreen and mute). Instead of
57413        being right justified they incorrectly appear on the left next
57414        to the play button. The fix is to explicitly position these 2
57415        buttons whenever the media duration is infinite (indicating a
57416        live stream).
57417
57418        Manual test: ManualTests/blackberry/video-hls-controls.html
57419
57420        * platform/blackberry/RenderThemeBlackBerry.cpp:
57421        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
57422
574232012-08-16  Abhishek Arya  <inferno@chromium.org>
57424
57425        Regression(r118248): Replaced element not layout
57426        https://bugs.webkit.org/show_bug.cgi?id=85804
57427
57428        Reviewed by Levi Weintraub.
57429
57430        r118248 moved the layout call of replaced elements to nextLineBreak.
57431        This was intended to delay the layout after all the lineboxes are cleared
57432        in RenderBlock::layoutInlineChildren. However, this caused the end line
57433        object to not layout at all. We revert to the old planned way to just
57434        keep a local vector of replaced elements to layout and then layout all of them
57435        after the lineboxes are cleared.
57436
57437        Test: fast/replaced/replaced-last-line-layout.html
57438
57439        * rendering/RenderBlockLineLayout.cpp:
57440        (WebCore::RenderBlock::layoutInlineChildren):
57441        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
57442
574432012-08-16  Benjamin Poulain  <bpoulain@apple.com>
57444
57445        Do not perform 8 to 16bits characters conversion when converting a WTFString to NSString/CFString
57446        https://bugs.webkit.org/show_bug.cgi?id=90720
57447
57448        Reviewed by Geoffrey Garen.
57449
57450        In most String to CFString conversion, we should be able to use the "NoCopy" constructor and have
57451        a relatively cheap conversion from WTF::String to CFString.
57452
57453        When the String is 8 bits, it was converted to 16 bits by getData16SlowCase() because of the call
57454        to String::characters().
57455
57456        This patch adds a path for creating a CFString from a 8bits string using CFStringCreateWithBytes.
57457
57458        This is covered by existing tests.
57459
57460        * platform/text/cf/StringCF.cpp:
57461        (WTF::String::createCFString): CFSTR() create static CFString, it is unecessary to retain it.
57462        * platform/text/cf/StringImplCF.cpp:
57463        (WTF::StringImpl::createCFString): The logic to avoid the StringWrapperCFAllocator has also been simplified.
57464        The allocator creation is now closer to where it is useful.
57465
57466        The function CFStringCreateWithBytesNoCopy() does not necessarilly allocate a new string, it can reuse
57467        existing strings. In those cases, the allocator is not used. For that reason, the assertion regarding
57468        currentString is moved to the branch that always allocate new strings.
57469
574702012-08-16  Adam Barth  <abarth@webkit.org>
57471
57472        DirectoryEntry should use Dictionary rather than custom bindings code
57473        https://bugs.webkit.org/show_bug.cgi?id=94207
57474
57475        Reviewed by Eric Seidel.
57476
57477        Since this code was written, we added native support for WebIDL
57478        Dictionary objects. This patch moves DirectoryEntry to use this
57479        automatic facility instead of custom code.
57480
57481        I've also renamed and simplified WebKitFlags. This is possible because
57482        this object was no longer exposed via IDL (even before to this patch).
57483
57484        * GNUmakefile.list.am:
57485        * Modules/filesystem/DOMFileSystemBase.cpp:
57486        (WebCore::DOMFileSystemBase::getFile):
57487        (WebCore::DOMFileSystemBase::getDirectory):
57488        * Modules/filesystem/DOMFileSystemBase.h:
57489        (DOMFileSystemBase):
57490        * Modules/filesystem/DirectoryEntry.cpp:
57491        (WebCore::DirectoryEntry::getFile):
57492        (WebCore::DirectoryEntry::getDirectory):
57493        * Modules/filesystem/DirectoryEntry.h:
57494        (DirectoryEntry):
57495        * Modules/filesystem/DirectoryEntry.idl:
57496        * Modules/filesystem/DirectoryEntrySync.cpp:
57497        (WebCore::DirectoryEntrySync::getFile):
57498        (WebCore::DirectoryEntrySync::getDirectory):
57499        * Modules/filesystem/DirectoryEntrySync.h:
57500        (DirectoryEntrySync):
57501        * Modules/filesystem/DirectoryEntrySync.idl:
57502        * Modules/filesystem/FileSystemCallbacks.cpp:
57503        (WebCore):
57504        (WebCore::ResolveURICallbacks::didOpenFileSystem):
57505        * Modules/filesystem/FileSystemFlags.h: Renamed from Source/WebCore/Modules/filesystem/WebKitFlags.h.
57506        (WebCore):
57507        (WebCore::FileSystemFlags::FileSystemFlags):
57508        (FileSystemFlags):
57509        * Modules/filesystem/WorkerContextFileSystem.cpp:
57510        (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemSyncURL):
57511        * Target.pri:
57512        * UseJSC.cmake:
57513        * UseV8.cmake:
57514        * WebCore.gypi:
57515        * WebCore.vcproj/WebCore.vcproj:
57516        * WebCore.xcodeproj/project.pbxproj:
57517        * bindings/js/JSDirectoryEntryCustom.cpp: Removed.
57518        * bindings/js/JSDirectoryEntrySyncCustom.cpp: Removed.
57519        * bindings/v8/custom/V8DirectoryEntryCustom.cpp: Removed.
57520        * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp: Removed.
57521
575222012-08-15  Antti Koivisto  <antti@apple.com>
57523
57524        Remove StyleSheetContents::m_finalURL 
57525        https://bugs.webkit.org/show_bug.cgi?id=94140
57526
57527        Reviewed by Andreas Kling.
57528
57529        It is equal (or empty in case of inline stylesheets) to the baseURL passed in CSSParserContext.
57530        Removing it simplifies the constructors and the related code.
57531
57532        * css/CSSStyleSheet.cpp:
57533        (WebCore::CSSStyleSheet::createInline):
57534        (WebCore::CSSStyleSheet::canAccessRules):
57535        (WebCore::CSSStyleSheet::rules):
57536        (WebCore::CSSStyleSheet::cssRules):
57537
57538            - factor access check to a function
57539            - allow document always access rules of its inline stylesheets
57540
57541        * css/StyleRuleImport.cpp:
57542        (WebCore::StyleRuleImport::setCSSStyleSheet):
57543        (WebCore::StyleRuleImport::requestStyleSheet):
57544        * css/StyleSheetContents.cpp:
57545        (WebCore::StyleSheetContents::StyleSheetContents):
57546        (WebCore::StyleSheetContents::parseAuthorStyleSheet):
57547        * css/StyleSheetContents.h:
57548        (WebCore::StyleSheetContents::create):
57549        (WebCore::StyleSheetContents::originalURL):
57550        (StyleSheetContents):
57551        * dom/ProcessingInstruction.cpp:
57552        (WebCore::ProcessingInstruction::setCSSStyleSheet):
57553        * html/HTMLLinkElement.cpp:
57554        (WebCore::HTMLLinkElement::setCSSStyleSheet):
57555        * inspector/InspectorStyleSheet.cpp:
57556        (WebCore::fillMediaListChain):
57557        (WebCore::InspectorStyleSheet::styleSheetURL):
57558        * xml/XSLImportRule.cpp:
57559        (WebCore::XSLImportRule::loadSheet):
57560
575612012-08-16  Justin Novosad  <junov@chromium.org>
57562
57563        [Chromium] Changing Canvas2DLayerBridge to use SkDeferredCanvas's notification client API
57564        https://bugs.webkit.org/show_bug.cgi?id=94234
57565
57566        Reviewed by James Robinson.
57567
57568        The existing DeviceContext API in skia's SkDeferredCanvas is being
57569        deprecated in favor of the new NotificationClient interface, which is
57570        designed to allow WebKit to control deferred canvas global memory
57571        consumption.
57572
57573        No new tests: this patch does not fix any bug and does not add new
57574        functionality. It is just a transition to a new skia interface.
57575        Coverage is assured by existing tests.
57576
57577        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
57578        (WebCore):
57579        Removed the AcceleratedDeviceContext class completely and mixed it
57580        into Canvas2DLayerBridge by inheriting
57581        SkDeferredCanvas::NotificationClient
57582        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
57583        (WebCore::Canvas2DLayerBridge::deferredCanvas):
57584        (WebCore::Canvas2DLayerBridge::prepareForDraw):
57585        (WebCore::Canvas2DLayerBridge::skCanvas):
57586        * platform/graphics/chromium/Canvas2DLayerBridge.h:
57587        (Canvas2DLayerBridge):
57588        * platform/graphics/skia/ImageBufferSkia.cpp:
57589        Cleaning up unnecessary include of SkDeferredCanvas.h
57590
575912012-08-16  David Reveman  <reveman@chromium.org>
57592
57593        [Chromium] Avoid aliasing global symbol monotonicallyIncreasingTime().
57594        https://bugs.webkit.org/show_bug.cgi?id=94233
57595
57596        Reviewed by James Robinson.
57597
57598        Rename virtual function CCDelayBasedTimeSource::monotonicallyIncreasingTime()
57599        that exist for testing purposes to CCDelayBasedTimeSource::monotonicTimeNow().
57600
57601        No new tests.
57602
57603        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
57604        (WebCore::CCDelayBasedTimeSource::setActive):
57605        (WebCore::CCDelayBasedTimeSource::onTimerFired):
57606        (WebCore::CCDelayBasedTimeSource::monotonicTimeNow):
57607        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
57608
576092012-08-16  David Reveman  <reveman@chromium.org>
57610
57611        [Chromium] Schedule texture uploads based on hard-coded timer and vsync.
57612        https://bugs.webkit.org/show_bug.cgi?id=84281
57613
57614        Reviewed by James Robinson.
57615
57616        Improve interaction between vsync and texture uploads by performing
57617        uploads in smaller batches and use a hard-coded timer to emulate
57618        upload completion. This greatly reduces the chance of the compositor
57619        missing a vsync due to being busy with texture uploads.
57620
57621        The CCScheduler client is now given a time limit when told to update
57622        more resources. This time limit is passed to an instance of the
57623        CCTextureUpdateController class, which is responsible for performing
57624        texture updates until the limit is reached.
57625
57626        Unit tests: CCSchedulerTest.RequestCommit
57627                    CCTextureUpdateControllerTest.UpdateMoreTextures
57628                    CCTextureUpdateControllerTest.HasMoreUpdates
57629
57630        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
57631        (WebCore::CCFrameRateController::nextTickTime):
57632        (WebCore):
57633        * platform/graphics/chromium/cc/CCFrameRateController.h:
57634        (CCFrameRateController):
57635        * platform/graphics/chromium/cc/CCScheduler.cpp:
57636        (WebCore::CCScheduler::processScheduledActions):
57637        * platform/graphics/chromium/cc/CCScheduler.h:
57638        (CCSchedulerClient):
57639        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
57640        (WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
57641        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
57642        (WebCore::CCTextureUpdateController::updateMoreTextures):
57643        (WebCore):
57644        (WebCore::CCTextureUpdateController::onTimerFired):
57645        (WebCore::CCTextureUpdateController::monotonicTimeNow):
57646        (WebCore::CCTextureUpdateController::updateMoreTexturesTime):
57647        (WebCore::CCTextureUpdateController::updateMoreTexturesSize):
57648        (WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
57649        (WebCore::CCTextureUpdateController::updateMoreTexturesNow):
57650        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
57651        (WebCore::CCTextureUpdateController::create):
57652        (CCTextureUpdateController):
57653        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
57654        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
57655        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
57656        * platform/graphics/chromium/cc/CCThreadProxy.h:
57657
576582012-08-16  Dana Jansens  <danakj@chromium.org>
57659
57660        [chromium] Impl scrolling crashes when the renderer's initialization failed
57661        https://bugs.webkit.org/show_bug.cgi?id=94232
57662
57663        Reviewed by James Robinson.
57664
57665        CCLayerTreeHostImpl::calculateRenderSurfaceLayerList should not be
57666        called when there is no renderer present or it will crash.
57667
57668        Chromium bug: crbug.com/125482
57669
57670        Tests: CCLayerTreeHostImplTest.scrollWithoutRenderer
57671
57672        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
57673        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
57674        (WebCore::CCLayerTreeHostImpl::ensureRenderSurfaceLayerList):
57675
576762012-08-15  Levi Weintraub  <leviw@chromium.org>
57677
57678        Accumulate sub-pixel offsets through layers and transforms
57679        https://bugs.webkit.org/show_bug.cgi?id=89238
57680
57681        Reviewed by Eric Seidel.
57682
57683        Pixel snapping logic makes use of sub-pixel offsets accumulated when walking down
57684        the render tree. When we align RenderLayers to paint on pixel boundaries, we were
57685        also losing that accumulated value. This preserves the fractional offset and passes
57686        it to the RenderLayer's RenderObjects so they paint the proper size and offset.
57687
57688        This also necessitates a new mode of mapLocalToContainer whereby we pixel snap the
57689        offset used in transforms. Otherwise, they wouldn't account for the pixel snapping
57690        done elsewhere in the render tree.
57691
57692        Test: fast/sub-pixel/sub-pixel-accumulates-to-layers.html
57693
57694        * css/CSSComputedStyleDeclaration.cpp:
57695        (WebCore::pixelSnappedSizingBox): The LayoutUnit version of sizingBox returns a
57696        LayoutRect with the location zeroed out. This leads to incorrect pixel snapping, so
57697        we shouldn't put these numbers into a transform. Sadly, I couldn't figure out a
57698        test for this without the rest of the patch.
57699        (WebCore):
57700        (WebCore::computedTransform): Using pixel-snapped values when generating transforms.
57701        * rendering/RenderBox.cpp:
57702        (WebCore::RenderBox::mapLocalToContainer): Adding a mode whereby the values inputed
57703        into the transform are properly pixel snapped.
57704        (WebCore::RenderBox::computeRectForRepaint): Using pixel snapped values for the transform.
57705        * rendering/RenderBox.h:
57706        (RenderBox):
57707        * rendering/RenderGeometryMap.cpp:
57708        (WebCore::RenderGeometryMap::mapToAbsolute):
57709        * rendering/RenderInline.cpp:
57710        (WebCore::RenderInline::mapLocalToContainer):
57711        * rendering/RenderInline.h:
57712        (RenderInline):
57713        * rendering/RenderLayer.cpp:
57714        (WebCore::RenderLayer::updateTransform): Using pixel snapped values for the transform.
57715        (WebCore::RenderLayer::currentTransform): Ditto.
57716        (WebCore::RenderLayer::perspectiveTransform): Ditto.
57717        (WebCore::RenderLayer::paint): Support passing along the accumulated sub-pixel offset instead
57718        of rounding and use enclosingIntRect for the damageRect.
57719        (WebCore::RenderLayer::paintOverlayScrollbars): Updating to the new paintLayer contract
57720        (WebCore::RenderLayer::paintLayer): Adding a sub-pixel accumulation LayoutSize. We pass this
57721        delta to the Layer's RenderObject when we paint, but align the graphics context to the proper
57722        pixel value.
57723        (WebCore::RenderLayer::paintLayerContentsAndReflection): Ditto.
57724        (WebCore::RenderLayer::paintLayerContents): Ditto.
57725        (WebCore::RenderLayer::paintList): Ditto.
57726        (WebCore::RenderLayer::paintChildLayerIntoColumns): Ditto.
57727        (WebCore::RenderLayer::calculateClipRects): Avoid unnecessary rounding when sub-pixel is enabled.
57728        (WebCore::RenderLayer::calculateRects): Remove unnecessary pixel snapping.
57729        * rendering/RenderLayer.h:
57730        (RenderLayer):
57731        * rendering/RenderLayerBacking.cpp:
57732        (WebCore::RenderLayerBacking::updateLayerTransform): Use pixel-snapped values for transforms.
57733        (WebCore::RenderLayerBacking::paintIntoLayer): Update to new paintLayer contract.
57734        * rendering/RenderObject.cpp:
57735        (WebCore::RenderObject::localToContainerQuad): Adding a mode for optionally pixel snapping.
57736        (WebCore::RenderObject::localToContainerPoint): Ditto.
57737        * rendering/RenderObject.h:
57738        (WebCore::RenderObject::localToAbsoluteQuad): Ditto.
57739        (RenderObject):
57740        * rendering/RenderReplica.cpp:
57741        (WebCore::RenderReplica::paint): Updating to new paintLayer contract.
57742        * rendering/RenderView.h:
57743        (RenderView):
57744        * rendering/svg/RenderSVGForeignObject.cpp:
57745        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
57746        * rendering/svg/RenderSVGForeignObject.h:
57747        (RenderSVGForeignObject):
57748        * rendering/svg/RenderSVGInline.cpp:
57749        (WebCore::RenderSVGInline::mapLocalToContainer):
57750        * rendering/svg/RenderSVGInline.h:
57751        (RenderSVGInline):
57752        * rendering/svg/RenderSVGModelObject.cpp:
57753        (WebCore::RenderSVGModelObject::mapLocalToContainer):
57754        * rendering/svg/RenderSVGModelObject.h:
57755        (RenderSVGModelObject):
57756        * rendering/svg/RenderSVGRoot.h:
57757        (RenderSVGRoot):
57758        * rendering/svg/RenderSVGText.cpp:
57759        (WebCore::RenderSVGText::mapLocalToContainer):
57760        * rendering/svg/RenderSVGText.h:
57761        (RenderSVGText):
57762        * rendering/svg/SVGRenderSupport.cpp:
57763        (WebCore::SVGRenderSupport::mapLocalToContainer):
57764        * rendering/svg/SVGRenderSupport.h:
57765        (SVGRenderSupport):
57766
577672012-08-16  Mario Sanchez Prada  <msanchez@igalia.com>
57768
57769        [GTK] Bad utf8 data is being passed to enchant_dict_check
57770        https://bugs.webkit.org/show_bug.cgi?id=94202
57771
57772        Reviewed by Martin Robinson.
57773
57774        Pass the number of bytes instead of the number of UTF8 characters
57775        when calling enchant_dict_check.
57776
57777        * platform/text/gtk/TextCheckerEnchant.cpp:
57778        (TextCheckerEnchant::checkSpellingOfString): Use 'bytes' instead
57779        of 'wordLength'.
57780
577812012-08-16  Sergey Rogulenko  <rogulenko@google.com>
57782
57783        Web Inspector: added Paint events for Images to TimelineAgent
57784        https://bugs.webkit.org/show_bug.cgi?id=90277
57785
57786        Reviewed by Pavel Feldman.
57787
57788        - add DecodeImage & ResizeImage timeline events;
57789        - implement {will,did}DecodeImage and {will,did}ResizeImage methods of Timeline agent;
57790
57791        Test: inspector/timeline/timeline-decode-resize.html
57792
57793        * English.lproj/localizedStrings.js:
57794        * inspector/InspectorTimelineAgent.cpp:
57795        (TimelineRecordType):
57796        (WebCore::InspectorTimelineAgent::willDecodeImage):
57797        (WebCore::InspectorTimelineAgent::didDecodeImage):
57798        (WebCore::InspectorTimelineAgent::willResizeImage):
57799        (WebCore::InspectorTimelineAgent::didResizeImage):
57800        * inspector/TimelineRecordFactory.cpp:
57801        (WebCore::TimelineRecordFactory::createDecodeImageData):
57802        (WebCore):
57803        (WebCore::TimelineRecordFactory::createResizeImageData):
57804        * inspector/TimelineRecordFactory.h:
57805        (TimelineRecordFactory):
57806        * inspector/front-end/TimelineModel.js:
57807        * inspector/front-end/TimelinePresentationModel.js:
57808        (WebInspector.TimelinePresentationModel.initRecordStyles_):
57809        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
57810
578112012-08-16  James Robinson  <jamesr@chromium.org>
57812
57813        [chromium] Remove alwaysReserveTextures code - it doesn't do anything
57814        https://bugs.webkit.org/show_bug.cgi?id=94183
57815
57816        Reviewed by Dimitri Glazkov.
57817
57818        LayerChromium::setAlwaysReservesTextures doesn't do anything and hasn't since the prioritized texture manager
57819        landed. This deletes the associated code.
57820
57821        * platform/graphics/chromium/LayerChromium.cpp:
57822        (WebCore::LayerChromium::LayerChromium):
57823        * platform/graphics/chromium/LayerChromium.h:
57824        (LayerChromium):
57825
578262012-08-16  Adam Barth  <abarth@webkit.org>
57827
57828        Unreviewed. Sort the xcodeproj file.
57829
57830        * WebCore.xcodeproj/project.pbxproj:
57831
578322012-08-16  Adam Barth  <abarth@webkit.org>
57833
57834        Unreviewed. Update bindings tests results from my recent VoidCallback
57835        patch. The new result is correct.
57836
57837        * bindings/scripts/test/V8/V8TestCallback.cpp:
57838
578392012-08-16  Andrey Kosyakov  <caseq@chromium.org>
57840
57841        Web Inspector: CPU profiler status bar is broken.
57842        https://bugs.webkit.org/show_bug.cgi?id=94212
57843
57844        Reviewed by Pavel Feldman.
57845
57846        - properly compute floating status bar buttons offset for profile and timeline panels,
57847            taking actual number of panel status bar buttons and panel sidebar offset into account;
57848
57849        * inspector/front-end/ProfilesPanel.js:
57850        (WebInspector.ProfilesPanel.prototype.get statusBarItems):
57851        (WebInspector.ProfilesPanel.prototype.sidebarResized):
57852        (WebInspector.ProfilesPanel.prototype.onResize):
57853        * inspector/front-end/SplitView.js:
57854        (WebInspector.SplitView.prototype.sidebarWidth):
57855        * inspector/front-end/StatusBarButton.js:
57856        * inspector/front-end/TimelinePanel.js:
57857        (WebInspector.TimelinePanel.prototype.sidebarResized):
57858        (WebInspector.TimelinePanel.prototype.onResize):
57859
578602012-08-16  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
57861
57862        Fix the Mac build.
57863
57864        Unreviewed build fix.
57865
57866        * WebCore.exp.in: Export FrameView::didFirstLayout()
57867
578682012-08-16  Konrad Piascik  <kpiascik@rim.com>
57869
57870        Add BB10 User Agent String to Web Inspector.
57871        https://bugs.webkit.org/show_bug.cgi?id=94217
57872
57873        Reviewed by George Staikos.
57874
57875        Add the new BlackBerry 10 User Agent String and device metrics for
57876        emulation.
57877
57878        * inspector/front-end/SettingsScreen.js:
57879        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
57880
578812012-08-16  Marcelo Lira  <marcelo.lira@openbossa.org>
57882
57883        [Qt] Input method hints are not being set.
57884        https://bugs.webkit.org/show_bug.cgi?id=92386
57885
57886        Reviewed by Kenneth Rohde Christiansen.
57887
57888        Input method hints for an editable element must be obtained from a proper
57889        HTML element. If the editable element is a complex one, it will have elements
57890        in the Shadow DOM, and it's one of those that will be returned as the root
57891        editable element. This works for editable DIVs, but not for INPUT elements.
57892        Using Element::shadowHost() on the root editable element will provide the
57893        needed HTML element, and for further clarity a method that does this was added
57894        to FrameSelection.
57895
57896        * editing/FrameSelection.cpp:
57897        (WebCore::FrameSelection::rootEditableElementRespectingShadowTree): Similar to
57898        WebCore::FrameSelection::rootEditableElement, but returns the first ancestor of
57899        the editable element outside the shadow tree.
57900        (WebCore):
57901        * editing/FrameSelection.h:
57902        (FrameSelection):
57903
579042012-08-16  Zeno Albisser  <zeno@webkit.org>
57905
57906        Make GraphicsSurface double buffered by default.
57907        https://bugs.webkit.org/show_bug.cgi?id=93252
57908
57909        Create only a single GraphicsSurface per canvas
57910        on both supported platforms Mac/Linux.
57911        The GraphicsSurface on Mac internally uses two IOSurface
57912        to provide a front and a back buffer.
57913        The GLX implementation of GraphicsSurface uses
57914        an XWindow which already provides a front and a back buffer.
57915
57916        Reviewed by Noam Rosenthal.
57917
57918        * platform/graphics/qt/GraphicsContext3DQt.cpp:
57919        (GraphicsContext3DPrivate):
57920            Remove creation of second GraphicsSurface.
57921        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
57922        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
57923        (WebCore):
57924        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
57925        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
57926        * platform/graphics/surfaces/GraphicsSurface.cpp:
57927        (WebCore::GraphicsSurface::create):
57928            Adjust token type to uint64_t.
57929        (WebCore::GraphicsSurface::exportToken):
57930            Adjust return type to uint64_t.
57931        (WebCore::GraphicsSurface::frontBuffer):
57932        (WebCore):
57933        (WebCore::GraphicsSurface::swapBuffers):
57934            Add forwarding function to swap buffers inside GraphicsSurface.
57935        * platform/graphics/surfaces/GraphicsSurface.h:
57936        (GraphicsSurface):
57937            Add SupportsSingleBuffered flag to allow for single buffered implementations.
57938            Currently single buffered surfaces are either not implemented or disabled.
57939        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
57940            Move implementation details into GraphicsSurfacePrivate.
57941            This way the platform specific code can be hidden in the specific cpp file
57942            instead of polluting the global GraphicsSurface header.
57943        (WebCore::createTexture):
57944        (GraphicsSurfacePrivate):
57945        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
57946        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
57947        (WebCore::GraphicsSurfacePrivate::swapBuffers):
57948        (WebCore::GraphicsSurfacePrivate::token):
57949        (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
57950        (WebCore::GraphicsSurfacePrivate::backBufferTextureID):
57951        (WebCore::GraphicsSurfacePrivate::frontBuffer):
57952        (WebCore::GraphicsSurfacePrivate::backBuffer):
57953        (WebCore):
57954        (WebCore::GraphicsSurface::platformExport):
57955        (WebCore::GraphicsSurface::platformGetTextureID):
57956        (WebCore::GraphicsSurface::platformCopyToGLTexture):
57957        (WebCore::GraphicsSurface::platformCopyFromFramebuffer):
57958        (WebCore::GraphicsSurface::platformFrontBuffer):
57959        (WebCore::GraphicsSurface::platformSwapBuffers):
57960        (WebCore::GraphicsSurface::platformCreate):
57961        (WebCore::GraphicsSurface::platformImport):
57962        (WebCore::ioSurfaceLockOptions):
57963        (WebCore::GraphicsSurface::platformLock):
57964        (WebCore::GraphicsSurface::platformUnlock):
57965        (WebCore::GraphicsSurface::platformDestroy):
57966        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
57967        (WebCore::OffScreenRootWindow::get):
57968        (WebCore::GraphicsSurfacePrivate::swapBuffers):
57969            Make sure that framebuffer bindings remain consistent
57970            after swapping buffers on the XWindow.
57971        (WebCore::GraphicsSurface::platformExport):
57972            Make sure the GLXPixmap is only bound to the texture once.
57973        (WebCore::GraphicsSurface::platformGetTextureID):
57974        (WebCore::GraphicsSurface::platformCopyFromFramebuffer):
57975        (WebCore):
57976        (WebCore::GraphicsSurface::platformFrontBuffer):
57977            The GLX surface does not know how to destinguish between
57978            the front and the back buffer by an id. This is not necessary
57979            for GraphicsSurfaceGLX, because the texture can just be
57980            read from the XWindow at any time.
57981        (WebCore::GraphicsSurface::platformSwapBuffers):
57982        (WebCore::GraphicsSurface::platformCreate):
57983        (WebCore::GraphicsSurface::platformImport):
57984        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
57985            Remove code that was used for switching between two GraphicsSurfaces,
57986            as this is now handled directly inside GraphicsSurface.
57987        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
57988        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
57989        (WebCore::TextureMapperSurfaceBackingStore::setSurface):
57990        (WebCore):
57991        * platform/graphics/texmap/TextureMapperBackingStore.h:
57992            Remove GraphicsSurfaceData struct. This class is not needed anymore
57993            as we do not keep track of more than one GraphicsSurface at the time.
57994        (WebCore):
57995        (TextureMapperSurfaceBackingStore):
57996        (WebCore::TextureMapperSurfaceBackingStore::graphicsSurface):
57997        (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
57998        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
57999        (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
58000
580012012-08-16  Mike West  <mkwst@chromium.org>
58002
58003        Implement the form-action Content Security Policy directive.
58004        https://bugs.webkit.org/show_bug.cgi?id=93777
58005
58006        Reviewed by Jochen Eisinger.
58007
58008        The CSP 1.1 editor's draft defines the 'form-action' directive as a
58009        mechanism for whitelisting valid targets for form submission from a
58010        protected resource. A web author might desire to restrict form
58011        submissions to the same origin as the protected resource itself via
58012        a Content Security Policy of "form-action 'self'", or ensure that all
58013        submissions were sent over an SSL connection via "form-action https:".
58014
58015        Specification details available at: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#form-action--experimental
58016
58017        This experimental directive is gated on the ENABLE_CSP_NEXT flag, which
58018        is currently only enabled in Chromium.
58019
58020        Tests: http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed.html
58021               http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked.html
58022               http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored.html
58023               http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed.html
58024               http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked.html
58025               http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked.html
58026               http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html
58027
58028        * loader/FrameLoader.cpp:
58029        (WebCore::FrameLoader::checkIfFormActionAllowedByCSP):
58030            Adding a callback to FrameLoader in order to allow the
58031            MainResourceLoader to check the relevant CSP status without knowing
58032            anything about CSP.
58033        (WebCore):
58034        * loader/FrameLoader.h:
58035        (FrameLoader):
58036        * loader/MainResourceLoader.cpp:
58037        (WebCore::MainResourceLoader::willSendRequest):
58038            Check against the protected resource's Content Security Policy when
58039            presented with a request that is itself a form submission, or is the
58040            result of a redirect in response to a form submission. If CSP would
58041            block the target, cancel the request.
58042        * page/ContentSecurityPolicy.cpp:
58043        (CSPDirectiveList):
58044        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
58045            Added explanatory text to the source violation console warning that
58046            specifically calls out sending form data (as opposed to "connect to"
58047            or "load the").
58048        (WebCore::CSPDirectiveList::allowFormAction):
58049            Check a URL against a directive list's the 'form-action' source list.
58050        (WebCore):
58051        (WebCore::CSPDirectiveList::addDirective):
58052            Recognize the 'form-action' CSP directive.
58053        (WebCore::ContentSecurityPolicy::allowFormAction):
58054            Public interface to check a form action.
58055        * page/ContentSecurityPolicy.h:
58056
580572012-08-16  Arvid Nilsson  <anilsson@rim.com>
58058
58059        [BlackBerry] WebGL and Canvas fail to display after being restored from page cache
58060        https://bugs.webkit.org/show_bug.cgi?id=94105
58061
58062        Reviewed by George Staikos.
58063
58064        The EGLImage was being destroyed when releasing layer resources on the
58065        compositing thread, but the WebKit thread layer never found out and
58066        failed to create a new image.
58067
58068        Fixed by extending the release layer resources mechanism to also make a
58069        pass on the WebKit thread so that thread's layers have a chance to
58070        delete their textures and related resources.
58071
58072        WebGL and canvas layers now take this opportunity to release their
58073        textures so the EGLImage gets recreated when compositing commits
58074        resume.
58075
58076        The only detail that deserves extra explanation is the ownership of the
58077        EGLImage.
58078
58079        Since the EGLImage is created in updateTextureContentsIfNeeded() and
58080        that one is always followed by commitPendingTextureUploads() which
58081        transfers the EGLImage to the compositing thread layer's custody, the
58082        EGLImage currently referenced by EGLImageLayerWebKitThread::m_image
58083        should never be deleted by the WebKit thread layer.
58084
58085        Thus all we have to do in deleteFrontBuffer() is to set the m_image
58086        member to 0 so the image gets recreated on the next commit. It will be
58087        deleted by the part of releaseLayerResources() that executes on the
58088        compositing thread (which, if you recall, was the original source of
58089        this bug).
58090
58091        Reviewed internally by Filip Spacek.
58092
58093        PR 192899
58094
58095        Not currently testable by the BlackBerry testing infrastructure.
58096
58097        * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
58098        (WebCore::CanvasLayerWebKitThread::deleteTextures):
58099        (WebCore):
58100        * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
58101        (CanvasLayerWebKitThread):
58102        * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
58103        (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
58104        (WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
58105        * platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
58106        (EGLImageLayerWebKitThread):
58107        * platform/graphics/blackberry/LayerWebKitThread.cpp:
58108        (WebCore::LayerWebKitThread::releaseLayerResources):
58109        (WebCore):
58110        * platform/graphics/blackberry/LayerWebKitThread.h:
58111        (LayerWebKitThread):
58112        (WebCore::LayerWebKitThread::deleteTextures):
58113        * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
58114        (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
58115        (WebCore::WebGLLayerWebKitThread::deleteTextures):
58116        (WebCore):
58117        * platform/graphics/blackberry/WebGLLayerWebKitThread.h:
58118        (WebGLLayerWebKitThread):
58119
581202012-08-16  Andrey Kosyakov  <caseq@chromium.org>
58121
58122        Web Inspector: enable instrumentation of platform code
58123        https://bugs.webkit.org/show_bug.cgi?id=94125
58124
58125        Reviewed by Pavel Feldman.
58126
58127        - add PlatformInstrumentation class that exposes instrumentation methods that may be used by code under WebCore/platform;
58128        - move TRACE_EVENT_XXX() macros into PlatformInstrumentation.h to minimize instrumentation hassle in the client code;
58129        - implement PlatformInstrumentationClient by InspectorTimelineAgent;
58130        - only install PlatformInstrumentationClient when we have outer events for which we expect low-level details
58131
58132        * CMakeLists.txt:
58133        * GNUmakefile.list.am:
58134        * Target.pri:
58135        * WebCore.gypi:
58136        * WebCore.vcproj/WebCore.vcproj:
58137        * inspector/InspectorTimelineAgent.cpp:
58138        (WebCore::InspectorTimelineAgent::willDecodeImage): to be implemented by subsequent change;
58139        (WebCore::InspectorTimelineAgent::didDecodeImage): to be implemented by subsequent change;
58140        (WebCore::InspectorTimelineAgent::willResizeImage): to be implemented by subsequent change;
58141        (WebCore::InspectorTimelineAgent::didResizeImage): to be implemented by subsequent change;
58142        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
58143        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
58144        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
58145        (WebCore::InspectorTimelineAgent::clearRecordStack):
58146        * inspector/InspectorTimelineAgent.h:
58147        (InspectorTimelineAgent):
58148        * platform/PlatformInstrumentation.cpp: Added.
58149        (WebCore):
58150        (WebCore::PlatformInstrumentation::setClient):
58151        * platform/PlatformInstrumentation.h: Added.
58152        (WebCore):
58153        (PlatformInstrumentationClient):
58154        (PlatformInstrumentation):
58155        (WebCore::PlatformInstrumentation::hasClient):
58156        (WebCore::PlatformInstrumentation::willDecodeImage):
58157        (WebCore::PlatformInstrumentation::didDecodeImage):
58158        (WebCore::PlatformInstrumentation::willResizeImage):
58159        (WebCore::PlatformInstrumentation::didResizeImage):
58160        * platform/graphics/skia/NativeImageSkia.cpp:
58161        (WebCore::NativeImageSkia::resizedBitmap): added calls to PlatformInstrumentation, removed TRACE_EVENT();
58162        * platform/image-decoders/bmp/BMPImageDecoder.cpp:
58163        (WebCore::BMPImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
58164        (WebCore::BMPImageDecoder::decode): removed TRACE_EVENT()
58165        * platform/image-decoders/gif/GIFImageDecoder.cpp:
58166        (WebCore::GIFImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
58167        (WebCore::GIFImageDecoder::decode): removed TRACE_EVENT()
58168        * platform/image-decoders/ico/ICOImageDecoder.cpp:
58169        (WebCore::ICOImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
58170        (WebCore::ICOImageDecoder::decode): removed TRACE_EVENT()
58171        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
58172        (WebCore::JPEGImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
58173        (WebCore::JPEGImageDecoder::decode): removed TRACE_EVENT()
58174        * platform/image-decoders/png/PNGImageDecoder.cpp:
58175        (WebCore::PNGImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
58176        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
58177        (WebCore::WEBPImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
58178        (WebCore::WEBPImageDecoder::decode): removed TRACE_EVENT();
58179        * inspector/InspectorInstrumentation.cpp: removed orphan event support;
58180        (WebCore):
58181        * inspector/InspectorInstrumentation.h: ditto.
58182
581832012-08-16  Vsevolod Vlasov  <vsevik@chromium.org>
58184
58185        Web Inspector: Breakpoints are not correctly restored on reload.
58186        https://bugs.webkit.org/show_bug.cgi?id=94209
58187
58188        Reviewed by Pavel Feldman.
58189
58190        BreakpointManager now resets uiLocations on workspace reset (was doing it on GlobalObjectCleared).
58191        Breakpoint manager now calls restoreBreakpoints automatically when uiSourceCode is added to workspace.
58192
58193        * inspector/front-end/BreakpointManager.js:
58194        (WebInspector.BreakpointManager):
58195        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
58196        (WebInspector.BreakpointManager.prototype._workspaceReset):
58197        * inspector/front-end/UISourceCode.js:
58198        (WebInspector.UISourceCode):
58199        * inspector/front-end/inspector.js:
58200
582012012-08-16  Pierre Rossi  <pierre.rossi@gmail.com>
58202
58203        [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code
58204        https://bugs.webkit.org/show_bug.cgi?id=93960
58205
58206        Reviewed by Simon Hausmann.
58207
58208        Following the removal of Qt 4 support from trunk in r124879.
58209
58210        No new tests. Simple cleanup job.
58211
58212        * Target.pri:
58213        * platform/graphics/Font.cpp:
58214        (WebCore::Font::codePath):
58215        * platform/graphics/Font.h:
58216        (Font):
58217        * platform/graphics/GraphicsContext.cpp:
58218        (WebCore):
58219        * platform/graphics/SimpleFontData.cpp:
58220        (WebCore::SimpleFontData::platformGlyphInit):
58221        (WebCore::SimpleFontData::glyphForCharacter):
58222        * platform/graphics/SimpleFontData.h:
58223        (SimpleFontData):
58224        (WebCore::SimpleFontData::widthForGlyph):
58225        * platform/graphics/qt/FontCacheQt.cpp:
58226        (WebCore::rawFontForCharacters):
58227        (WebCore::FontCache::getFontDataForCharacters):
58228        * platform/graphics/qt/FontCustomPlatformData.h:
58229        (FontCustomPlatformData):
58230        * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
58231        (WebCore::FontCustomPlatformData::fontPlatformData):
58232        (WebCore::createFontCustomPlatformData):
58233        * platform/graphics/qt/FontPlatformData.h:
58234        (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate):
58235        (FontPlatformDataPrivate):
58236        (FontPlatformData):
58237        (WebCore::FontPlatformData::FontPlatformData):
58238        * platform/graphics/qt/FontPlatformDataQt.cpp:
58239        (WebCore::FontPlatformData::FontPlatformData):
58240        (WebCore::FontPlatformData::operator==):
58241        (WebCore::FontPlatformData::hash):
58242        * platform/graphics/qt/FontQt4.cpp: Removed.
58243        * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
58244        (WebCore::GlyphPage::fill):
58245        * platform/graphics/qt/SimpleFontDataQt.cpp:
58246        (WebCore::SimpleFontData::determinePitch):
58247        (WebCore::SimpleFontData::platformBoundsForGlyph):
58248        (WebCore::SimpleFontData::platformInit):
58249        (WebCore::SimpleFontData::platformCharWidthInit):
58250        * rendering/svg/SVGTextMetricsBuilder.cpp:
58251        (WebCore::SVGTextMetricsBuilder::advance):
58252        (WebCore::SVGTextMetricsBuilder::advanceSimpleText):
58253        (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
58254
582552012-08-16  Yury Semikhatsky  <yurys@chromium.org>
58256
58257        Web Inspector: memory instrumentation for Resource{Request/Response}Base
58258        https://bugs.webkit.org/show_bug.cgi?id=94109
58259
58260        Reviewed by Vsevolod Vlasov.
58261
58262        Added reportMemoryUsage methods to ResourceRequestBase, ResourceResponseBase
58263        and several related classes.
58264
58265        * dom/MemoryInstrumentation.cpp:
58266        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl): added overrides
58267        for String, StringImpl and AtomicString object types so that we can reuse
58268        existing addInstrumentedCollection method instead of adding a counterpart
58269        that would operate on not instrumented content. Next step would be to get
58270        rid od addObject overrides for these types so that all kinds of Strings are
58271        considered as instrumented classes despite they don't have reportMemoryUsage
58272        method.
58273        (WebCore):
58274        * dom/MemoryInstrumentation.h:
58275        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
58276        (MemoryInstrumentation):
58277        * loader/DocumentLoader.cpp:
58278        (WebCore::DocumentLoader::reportMemoryUsage):
58279        * platform/network/FormData.cpp:
58280        (WebCore::FormData::reportMemoryUsage):
58281        (WebCore):
58282        * platform/network/FormData.h:
58283        (WebCore):
58284        (FormData):
58285        * platform/network/ResourceRequestBase.cpp:
58286        (WebCore::ResourceRequestBase::reportMemoryUsage):
58287        (WebCore):
58288        * platform/network/ResourceRequestBase.h:
58289        (ResourceRequestBase):
58290        * platform/network/ResourceResponseBase.cpp:
58291        (WebCore):
58292        (WebCore::ResourceResponseBase::reportMemoryUsage):
58293        * platform/network/ResourceResponseBase.h:
58294        (WebCore):
58295        (ResourceResponseBase):
58296
582972012-08-16  Adam Barth  <abarth@webkit.org>
58298
58299        Delete DOMWindow::securityOrigin()
58300        https://bugs.webkit.org/show_bug.cgi?id=93991
58301
58302        Reviewed by Eric Seidel.
58303
58304        DOMWindow::securityOrigin() just calls through to
58305        document()->securityOrigin(). This patch updates all the callers to do
58306        that work themselves, making it clearer what's going on at each call
58307        site.
58308
58309        * bindings/generic/BindingSecurity.cpp:
58310        (WebCore::canAccessDocument):
58311        * bindings/js/JSDOMWindowBase.cpp:
58312        (WebCore::JSDOMWindowBase::allowsAccessFrom):
58313        * bindings/js/JSDOMWindowCustom.h:
58314        (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
58315        * bindings/js/ScriptController.cpp:
58316        (WebCore::ScriptController::collectIsolatedContexts):
58317        * page/DOMWindow.cpp:
58318        (WebCore::DOMWindow::isInsecureScriptAccess):
58319        (WebCore::DOMWindow::createWindow):
58320        * page/DOMWindow.h:
58321        (DOMWindow):
58322        * page/Location.cpp:
58323        (WebCore::Location::reload):
58324
583252012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
58326
58327        Unreviewed, rolling out r125751.
58328        http://trac.webkit.org/changeset/125751
58329        https://bugs.webkit.org/show_bug.cgi?id=94206
58330
58331        we shouldn't be rolling out this patch without a formal
58332        review. (Requested by rniwa_ on #webkit).
58333
58334        * dom/CharacterData.cpp:
58335        (WebCore::CharacterData::setDataAndUpdate):
58336        * editing/FrameSelection.cpp:
58337        (WebCore::updatePositionAfterAdoptingTextReplacement):
58338        (WebCore::FrameSelection::textWasReplaced):
58339        * editing/FrameSelection.h:
58340        (FrameSelection):
58341
583422012-08-16  Marja Hölttä  <marja@chromium.org>
58343
58344        FormController, FileInputType: Enable reading selected file names from document state
58345        https://bugs.webkit.org/show_bug.cgi?id=91231
58346
58347        Reviewed by Jochen Eisinger.
58348
58349        This change enables Chromium to set up file permissions properly when
58350        the session restore feature restores a page with selected files.
58351
58352        Test: fast/forms/file/selected-files-from-history-state.html
58353
58354        * WebCore.exp.in: Exported FormController::getReferencedFilePaths.
58355        * html/FileInputType.cpp:
58356        (WebCore::FileInputType::filesFromFormControlState): Added. Extracts FileChooserFileInfos from a FormControlState.
58357        (WebCore):
58358        (WebCore::FileInputType::restoreFormControlState): Refactored to use filesFromFormControlState.
58359        * html/FileInputType.h:
58360        (FileInputType): Added filesFromFormControlState.
58361        * html/FormController.cpp:
58362        (SavedFormState): Added getReferencedFilePaths.
58363        (WebCore::SavedFormState::getReferencedFilePaths): Added. Extracts selected file paths from SavedFormState.
58364        (WebCore):
58365        (WebCore::FormController::setStateForNewFormElements): Refactored to use formStatesFromStateVector.
58366        (WebCore::FormController::formStatesFromStateVector):
58367        (WebCore::FormController::getReferencedFilePaths): Added. Static. Extracts selected file paths from a document state.
58368        * html/FormController.h:
58369        (FormController): Added getReferencedFilePaths and formStatesFromStateVector.
58370        * html/HTMLInputElement.cpp:
58371        (WebCore::HTMLInputElement::filesFromFileInputFormControlState): Added. Delegates to FileInputType::filesFromFormControlState.
58372        (WebCore):
58373        * html/HTMLInputElement.h: Added filesFromFileInputFormControlState.
58374        (HTMLInputElement):
58375        * testing/Internals.cpp:
58376        (WebCore::Internals::getReferencedFilePaths): Calls FormController::getReferencedFilePaths.
58377        (WebCore):
58378        * testing/Internals.h:
58379        (Internals): Added getReferencedFilePaths.
58380        * testing/Internals.idl: Added binding for getReferencedFilePaths.
58381
583822012-08-15  Shawn Singh  <shawnsingh@chromium.org>
58383
58384        [chromium] set scissorRect per quad so that quads are correctly clipped
58385        https://bugs.webkit.org/show_bug.cgi?id=94050
58386
58387        Reviewed by Adrienne Walker.
58388
58389        Certain quad types rely on scissoring to do correct
58390        clipping. Refactoring the quad types to remove this assumption
58391        will be done in a later patch, but for now, we have to apply the
58392        scissor rect to every quad to ensure that those quads are
58393        correctly clipped.
58394
58395        Test: compositing/overflow/overflow-hidden-canvas-layer.html
58396
58397        Also updated two unit tests to reflect the change in semantics.
58398
58399        * platform/graphics/chromium/LayerRendererChromium.cpp:
58400        (WebCore::LayerRendererChromium::drawRenderPass):
58401        (WebCore::LayerRendererChromium::drawQuad):
58402
584032012-08-16  Yoshifumi Inoue  <yosin@chromium.org>
58404
58405        [Forms] Wheel event support in multiple fields time input UI
58406        https://bugs.webkit.org/show_bug.cgi?id=94166
58407
58408        Reviewed by Kent Tamura.
58409
58410        This patch makes multiple fields time input UI to handle wheel event
58411        on spin button.
58412
58413        This patch affects if ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_TYPE_MULTIPLE_FIELDS
58414        are enabled.
58415
58416        Test: fast/forms/time-multiple-fields/time-multiple-fields-wheel-event.html
58417
58418        * html/shadow/DateTimeEditElement.cpp:
58419        (WebCore::DateTimeEditElement::defaultEventHandler): Changed to forward
58420        event to spin button if available.
58421
584222012-08-16  Zhigang Gong  <zhigang.gong@linux.intel.com>
58423
58424        TextureMapperGL::beginPainting has a duplicate call to get GL_FRAMEBUFFER_BINDING.
58425        https://bugs.webkit.org/show_bug.cgi?id=94180
58426
58427        Reviewed by Noam Rosenthal.
58428
58429        * platform/graphics/texmap/TextureMapperGL.cpp:
58430        (WebCore::TextureMapperGL::beginPainting):
58431
584322012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
58433
58434        Unreviewed, rolling out r119705.
58435        http://trac.webkit.org/changeset/119705
58436        https://bugs.webkit.org/show_bug.cgi?id=94192
58437
58438        Causing crash on ClusterFuzz due to incorrect layout ordering
58439        change (Requested by inferno-sec on #webkit).
58440
58441        * dom/CharacterData.cpp:
58442        (WebCore::CharacterData::setDataAndUpdate):
58443        * editing/FrameSelection.cpp:
58444        (WebCore::updatePositionAfterAdoptingTextReplacement):
58445        (WebCore::FrameSelection::textWillBeReplaced):
58446        * editing/FrameSelection.h:
58447        (FrameSelection):
58448
584492012-08-15  Kent Tamura  <tkent@chromium.org>
58450
58451        [Chromium] Refactoring: Introduce a new function for some part of PopupContainer::layoutAndCalculateWidgetRect()
58452        https://bugs.webkit.org/show_bug.cgi?id=94087
58453
58454        Reviewed by Hajime Morita.
58455
58456        Move some part of PopupContainer::layoutAndCalculateWidgetRect() to a
58457        new function which is not a member of PopupContainer because we'd like
58458        to add a unit test for the position calculation code, and to reduce the
58459        dependency.
58460
58461        No new tests. Popup positioning code is not testable in WebKit.
58462
58463        * platform/chromium/PopupContainer.cpp:
58464        (WebCore::layoutAndCalculateWidgetRectInternal):
58465        Added. Move the code from PopupContainer::layoutAndCalculateWidgetRect.
58466        In order to avoid to call member functions of PopupContainer, we
58467        don't call layoutAndGetRTLOffset() and height(). Use
58468        PopupListBox::layout() to recalculate the popup content size, and use
58469        PopupListBox::height() + kBorderSize * 2 instead of height(). We
58470        resize the view after finishing layoutAndCalculateWidgetRectInternal
58471        in PopupContainer::layoutAndCalculateWidgetRect.
58472        (WebCore::PopupContainer::layoutAndCalculateWidgetRect):
58473        Move some code to layoutAndCalculateWidgetRectInternal.
58474        (WebCore::PopupContainer::fitToListBox):
58475        Added. Move the code from PopupContainer::layoutAndGetRTLOffset.
58476        (WebCore::PopupContainer::layoutAndGetRTLOffset):
58477        Move some code to fitToListBox.
58478        * platform/chromium/PopupContainer.h:
58479        (PopupContainer): Added fitToListBox.
58480
584812012-08-15  Adam Barth  <abarth@webkit.org>
58482
58483        VoidCallback should not be a special snowflake
58484        https://bugs.webkit.org/show_bug.cgi?id=94119
58485
58486        Reviewed by Eric Seidel.
58487
58488        VoidCallback is the oldest of the callbacks and it predates our ability
58489        to autogenerate callback objects. The existing implementation of
58490        VoidCallback is wrong because it doesn't call
58491        ActiveDOMCallback::canInvokeCallback. The net result of that is that
58492        void callbacks can race with navigations and occationally execute after
58493        the Frame has navigated to a new Document, which was causing the
58494        flakiness.
58495
58496        This patch changes VoidCallback to no longer be a unique snowflake.
58497        Instead, we autogenerate the implementation, just like every other
58498        callback in WebCore.
58499
58500        Tests: storage/websql/database-lock-after-reload.html is no longer flaky.
58501
58502        * DerivedSources.make:
58503        * GNUmakefile.list.am:
58504        * Modules/filesystem/SyncCallbackHelper.h:
58505        (WebCore::SyncCallbackHelper::SuccessCallbackImpl::handleEvent):
58506        * Target.pri:
58507        * UseJSC.cmake:
58508        * UseV8.cmake:
58509        * WebCore.gyp/WebCore.gyp:
58510        * WebCore.gypi:
58511        * WebCore.vcproj/WebCore.vcproj:
58512        * WebCore.xcodeproj/project.pbxproj:
58513        * bindings/cpp/WebDOMCustomVoidCallback.cpp: Removed.
58514        * bindings/cpp/WebDOMCustomVoidCallback.h: Removed.
58515        * bindings/js/JSBindingsAllInOne.cpp:
58516        * bindings/js/JSCustomVoidCallback.cpp: Removed.
58517        * bindings/js/JSCustomVoidCallback.h: Removed.
58518        * bindings/js/JSDesktopNotificationsCustom.cpp:
58519        (WebCore::JSNotificationCenter::requestPermission):
58520        * bindings/scripts/CodeGeneratorCPP.pm:
58521        (GetClassName):
58522        (AddIncludesForType):
58523        * bindings/scripts/CodeGeneratorJS.pm:
58524        (GetCallbackClassName):
58525        (GenerateCallbackImplementation):
58526        (JSValueToNative):
58527        * bindings/scripts/CodeGeneratorV8.pm:
58528        (GenerateCallbackImplementation):
58529        (TypeCanFailConversion):
58530        (GetCallbackClassName):
58531        * bindings/scripts/test/JS/JSTestCallback.cpp:
58532        (WebCore::JSTestCallback::callbackWithNoParam):
58533        * bindings/scripts/test/V8/V8TestCallback.cpp:
58534        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
58535        * bindings/v8/custom/V8CustomVoidCallback.cpp: Removed.
58536        * bindings/v8/custom/V8CustomVoidCallback.h: Removed.
58537        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
58538        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
58539        (WebCore::V8NotificationCenter::requestPermissionCallback):
58540        * html/VoidCallback.h:
58541        (VoidCallback):
58542        * html/VoidCallback.idl:
58543        * inspector/InspectorDatabaseAgent.cpp:
58544        (WebCore):
58545
585462012-08-15  Hayato Ito  <hayato@chromium.org>
58547
58548        [Shadow] Stop 'load' and 'error' events at shadow boundaries
58549        https://bugs.webkit.org/show_bug.cgi?id=93425
58550
58551        Reviewed by Dimitri Glazkov.
58552
58553        The shadow DOM spec has added these events as 'always-be-stopped' events at shadow boundaries.
58554        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
58555
58556        Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
58557
58558        * dom/EventDispatcher.cpp:
58559        (WebCore::EventDispatcher::determineDispatchBehavior):
58560
585612012-08-15  Kent Tamura  <tkent@chromium.org>
58562
58563        Calendar Picker: Localize numbers in a calendar picker
58564        https://bugs.webkit.org/show_bug.cgi?id=93704
58565
58566        Reviewed by Hajime Morita.
58567
58568        Because Number.toLocaleString() of V8 returns no localized
58569        numbers, we provide a localization function via
58570        PagePopupController.
58571
58572        No new tests. We have no ways to change the locale in layout tests.
58573
58574        * Resources/pagepopups/calendarPicker.js:
58575        (localizeNumber): Added. A wrapper for pagePopupController.localizeNumberString().
58576        (formatJapaneseImperialEra): Use localizeNumber().
58577        (formatYearMonth): ditto.
58578        (DaysTable.prototype._renderMonth): ditto.
58579        * page/PagePopupController.cpp:
58580        (WebCore::PagePopupController::localizeNumberString):
58581        Added. Just calls WebCore::convertToLocalizedNumber().
58582        * page/PagePopupController.h:
58583        (PagePopupController): Declare localizeNumberString().
58584        * page/PagePopupController.idl: Add localizeNumberString().
58585
585862012-08-15  MORITA Hajime  <morrita@google.com>
58587
58588        Regression(121518) TextFieldDecorationElement formatting is broken.
58589        https://bugs.webkit.org/show_bug.cgi?id=90913
58590
58591        Reviewed by Dimitri Glazkov.
58592
58593        NodeRenderingContext::nextRenderer() has a problem which cannot retrieve the renderer
58594        across an insertion point in some case. That is because ad-hoc composed tree traversal on
58595        NodeRenderingContext is broken. The problem is hidden before r121518 though.
58596
58597        This change rewrite nextRenderer() using ComposedShadowTreeWalker to eliminate the ad-hoc
58598        traversal. previousRenderer() is also rewritten in the same way.
58599
58600        Test: fast/dom/shadow/shadow-div-reflow.html
58601
58602        * dom/NodeRenderingContext.cpp:
58603        (WebCore):
58604        (WebCore::NodeRenderingContext::nextRenderer):
58605        (WebCore::NodeRenderingContext::previousRenderer):
58606
586072012-08-15  Julien Chaffraix  <jchaffraix@webkit.org>
58608
58609        Add a was-inserted-into-tree notification to RenderObject
58610        https://bugs.webkit.org/show_bug.cgi?id=93874
58611
58612        Reviewed by Eric Seidel.
58613
58614        This change adds insertedIntoTree to RenderObject so that renderers
58615        can now do their post-insertion task inside this function.
58616
58617        Our current architecture has 2 ways of doing post-insertion tasks:
58618        - overriding RenderObject::addChild
58619        - RenderObjectChildList::insertChildNode / appendChildNode
58620
58621        Because the former is not guaranteed to be called for each insertion
58622        (on top of being called on the parent and not the inserted child), the
58623        2 latter functions are the one that have been mostly used recently. This
58624        led to code duplication between the functions but also doesn't scale as
58625        other renderers need to hop on this notification and currently don't (for
58626        example, table parts). The other renderer's migration will be done in
58627        follow-up patches.
58628
58629        Refactoring covered by existing tests.
58630
58631        * rendering/RenderObjectChildList.cpp:
58632        (WebCore::RenderObjectChildList::removeChildNode):
58633        * rendering/RenderObject.cpp:
58634        (WebCore::RenderObject::enclosingRenderNamedFlowThread):
58635        Moved the code from renderNamedFlowThreadContainer to RenderObject::enclosingRenderNamedFlowThread.
58636        This is needed as now 2 classes need to access the function.
58637
58638        * rendering/RenderObjectChildList.cpp:
58639        (WebCore::RenderObjectChildList::appendChildNode):
58640        (WebCore::RenderObjectChildList::insertChildNode):
58641        Moved the code duplicated from those 2 functions into
58642        the instances of insertedIntoTree below.
58643
58644        * rendering/RenderObject.cpp:
58645        (WebCore::RenderObject::insertedIntoTree):
58646        Base function that needs to be called from all the other
58647        specialized functions below.
58648
58649        * rendering/RenderListItem.cpp:
58650        (WebCore::RenderListItem::insertedIntoTree):
58651        * rendering/RenderListItem.h:
58652        * rendering/RenderObject.h:
58653        * rendering/RenderObjectChildList.h:
58654        * rendering/RenderRegion.cpp:
58655        (WebCore::RenderRegion::insertedIntoTree):
58656        * rendering/RenderRegion.h:
58657        Added the overriden insertedIntoTree function.
58658
58659        * rendering/RenderQuote.h:
58660        Moved the comment from RenderObjectChildList about RenderQuote here.
58661
586622012-08-14  Jeffrey Pfau  <jpfau@apple.com>
58663
58664        Allow blocking of Web SQL databases in third-party documents
58665        https://bugs.webkit.org/show_bug.cgi?id=94057
58666
58667        Reviewed by Adam Barth.
58668
58669        Add a check for pages in third-party pages to allow third-party storage blocking of Web SQL databases.
58670
58671        Tests: http/tests/security/cross-origin-websql-allowed.html
58672               http/tests/security/cross-origin-websql.html
58673
58674        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
58675        (WebCore::DOMWindowWebDatabase::openDatabase): Pass top origin to canAccessDatabase
58676        * page/SecurityOrigin.cpp:
58677        (WebCore::SecurityOrigin::canAccessStorage): Common method for various types of storage that use the same criteria
58678        * page/SecurityOrigin.h:
58679        (WebCore::SecurityOrigin::canAccessDatabase): Use canAccessStorage
58680        (WebCore::SecurityOrigin::canAccessLocalStorage): Change to using canAccessStorage
58681        (SecurityOrigin):
58682
586832012-08-15  Nikhil Bhargava  <nbhargava@google.com>
58684
58685        Improve Document.h compile time - reduce includes of ScriptCallStack.h
58686        https://bugs.webkit.org/show_bug.cgi?id=94161
58687
58688        Reviewed by Eric Seidel.
58689
58690        ScriptCallStack.h no longer included from ScriptExecutionContext. It's
58691        relatively expensive to compile and gets compiled a ton because
58692        Document.h indirectly includes it.
58693
58694        No new tests. Functionality should remain the same
58695
58696        * Modules/indexeddb/IDBDatabase.cpp:
58697        * Modules/indexeddb/IDBIndex.cpp:
58698        * Modules/indexeddb/IDBObjectStore.cpp:
58699        * bindings/js/ScriptController.cpp:
58700        * dom/ScriptElement.cpp:
58701        * dom/ScriptExecutionContext.h:
58702        (WebCore):
58703        * fileapi/Blob.cpp:
58704        * fileapi/WebKitBlobBuilder.cpp:
58705        * html/HTMLTrackElement.cpp:
58706        * loader/TextTrackLoader.cpp:
58707        * page/DOMSecurityPolicy.cpp:
58708
587092012-08-15  Alec Flett  <alecflett@chromium.org>
58710
58711        IndexedDB: IDB*::keyPath should return IDBKeyPath, not IDBAny
58712        https://bugs.webkit.org/show_bug.cgi?id=92434
58713
58714        Reviewed by Tony Chang.
58715
58716        Clean up IDBKeyPath conversion to IDBAny objects. This gets rid of
58717        some implicit conversion from IDBKeyPath to IDBAny.
58718
58719        No new tests, just changing method signatures.
58720
58721        * Modules/indexeddb/IDBAny.cpp:
58722        (WebCore::IDBAny::set):
58723        (WebCore):
58724        * Modules/indexeddb/IDBAny.h:
58725        (WebCore):
58726        (WebCore::IDBAny::create):
58727        (IDBAny):
58728        * Modules/indexeddb/IDBIndex.h:
58729        (WebCore::IDBIndex::keyPathAny):
58730        (WebCore::IDBIndex::keyPath):
58731        * Modules/indexeddb/IDBIndex.idl:
58732        * Modules/indexeddb/IDBKeyPath.cpp:
58733        * Modules/indexeddb/IDBKeyPath.h:
58734        * Modules/indexeddb/IDBObjectStore.h:
58735        (WebCore::IDBObjectStore::keyPathAny):
58736        (WebCore::IDBObjectStore::keyPath):
58737        * Modules/indexeddb/IDBObjectStore.idl:
58738
587392012-08-15  Ryosuke Niwa  <rniwa@webkit.org>
58740
58741        EFL build fix attempt after r125711. Touch an IDL file to regenerate derived sources.
58742
58743        * html/HTMLAllCollection.idl:
58744
587452012-08-15  Alec Flett  <alecflett@chromium.org>
58746
58747        IndexedDB: generate index keys for existing data in createIndex in front end
58748        https://bugs.webkit.org/show_bug.cgi?id=91125
58749
58750        Reviewed by Tony Chang.
58751
58752        Make createIndex() do index key generation in the frontend, rather
58753        than the backend. When an index is created, the frontend uses the
58754        cursor API to iterate through the values in the backend to
58755        generate keys, sending them back to the backend using
58756        IDBObjectStore::setIndexKeys()
58757
58758        This confines all key injection/extraction to the frontend.
58759
58760        The new test verifies the implemented behavior with respect to
58761        error handling in degenerate uses of put(), though that behavior
58762        is still in discussion as the spec is vague on the proper error
58763        behavior.
58764
58765        Test: storage/indexeddb/lazy-index-population.html
58766
58767        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Make sure that the
58768        TaskType propagates throught the cursor and all subsequent
58769        continue() calls.
58770        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
58771        (WebCore::IDBCursorBackendImpl::continueFunction):
58772        (WebCore::IDBCursorBackendImpl::prefetchContinue):
58773        * Modules/indexeddb/IDBCursorBackendImpl.h:
58774        (WebCore::IDBCursorBackendImpl::create):
58775        (IDBCursorBackendImpl):
58776        * Modules/indexeddb/IDBObjectStore.cpp: Add an IndexPopulator
58777        class to run a cursor from the frontend.
58778        (WebCore):
58779        (WebCore::IDBObjectStore::createIndex):
58780        (WebCore::IDBObjectStore::openCursor):
58781        * Modules/indexeddb/IDBObjectStore.h:
58782        (WebCore::IDBObjectStore::openCursor):
58783        (IDBObjectStore):
58784        (WebCore::IDBObjectStore::createIndex):
58785        * Modules/indexeddb/IDBObjectStore.idl: Pass along ScriptContext
58786        so that openCursor can be called from createIndex.
58787        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
58788        (WebCore):
58789        (WebCore::makeIndexWriters):
58790        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
58791        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
58792        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
58793        (WebCore::IDBObjectStoreBackendImpl::putInternal):
58794        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
58795        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
58796        (WebCore::IDBObjectStoreBackendImpl::openCursor):
58797        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
58798        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
58799        (IDBObjectStoreBackendImpl):
58800        (WebCore::IDBObjectStoreBackendImpl::iterIndexesBegin):
58801        (WebCore::IDBObjectStoreBackendImpl::iterIndexesEnd):
58802        (WebCore::IDBObjectStoreBackendImpl::backingStore):
58803        (WebCore::IDBObjectStoreBackendImpl::databaseId):
58804        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
58805        * Modules/indexeddb/IDBRequest.cpp:
58806        Allow requests to keep their own TaskType, to give certain
58807        requests priority over others.
58808        (WebCore::IDBRequest::create):
58809        (WebCore):
58810        (WebCore::IDBRequest::IDBRequest):
58811        (WebCore::IDBRequest::abort):
58812        * Modules/indexeddb/IDBRequest.h:
58813        (IDBRequest):
58814        (WebCore::IDBRequest::taskType):
58815        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
58816        Introduce a second, higher priority event queue, m_preemptiveTaskQueue,
58817        which takes priority over the regular task queue.
58818        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
58819        (WebCore::IDBTransactionBackendImpl::scheduleTask):
58820        (WebCore::IDBTransactionBackendImpl::isTaskQueueEmpty):
58821        (WebCore):
58822        (WebCore::IDBTransactionBackendImpl::commit):
58823        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
58824        (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
58825        * Modules/indexeddb/IDBTransactionBackendImpl.h:
58826        (WebCore::IDBTransactionBackendImpl::scheduleTask):
58827        (IDBTransactionBackendImpl):
58828        (WebCore::IDBTransactionBackendImpl::addEarlyEvent):
58829        (WebCore::IDBTransactionBackendImpl::didCompleteEarlyEvent):
58830        * Modules/indexeddb/IDBVersionChangeRequest.cpp:
58831        (WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
58832
588332012-08-15  Hayato Ito  <hayato@chromium.org>
58834
58835        A 'load' event should be fired on the shadow host directly, not on an inner image element of shadow dom subtree.
58836        https://bugs.webkit.org/show_bug.cgi?id=93920
58837
58838        Reviewed by Dimitri Glazkov.
58839
58840        A 'load' event is a must-stoppable event at shadow boundary. So we
58841        should fire a 'load' event on a shadow host directly, not on an
58842        inner image element.
58843
58844        Test: fast/dom/shadow/shadowdom-for-image-event.html
58845
58846        * html/HTMLImageLoader.cpp:
58847        (WebCore::HTMLImageLoader::dispatchLoadEvent):
58848        * loader/ImageLoaderClient.h:
58849        (WebCore::ImageLoaderClient::eventTarget):
58850
588512012-08-15  Otto Derek Cheung  <otcheung@rim.com>
58852
58853        [BlackBerry] Show custom error page when 407 is received
58854        https://bugs.webkit.org/show_bug.cgi?id=94138
58855
58856         Reviewed by George Staikos.
58857         Internally reviewed by Lianghui Chen
58858
58859         Adding a new custom error page when the browser receieves
58860         a Wifi proxy authentication error. The previous behaviour
58861         is to ask for user credentials everytime, and silently fails
58862         when the username and password fields in the Wifi settings
58863         are not empty. UX suggests modifying the behaviour to simply
58864         asks the user to change their credentials in the Wifi settings
58865         when we receive such an error.
58866
58867         The fix is to prevent notifyAuthReceived from sending another
58868         networkjob when authCallbacks are called, and to listen to any 407
58869         calls in notifyStatusReceived. Once we hit a 407, tell the frame we
58870         failed and should load the custom error page.
58871
58872         Also removed checking functions in sendRequestWithCredentials because
58873         proxy auth requests won't get into that function anymore.
58874
58875         #PR163400
58876
58877         Tested by loading on device and loading/reloading pages under
58878         these scenarios:
58879         - Connected to wifi (no proxy)
58880         - Connected to wifi (proxy with no credentials)
58881         - Connected to wifi (proxy with invalid credentials)
58882         - Connected to wifi (proxy with valid credentials)
58883
58884         * platform/network/blackberry/NetworkJob.cpp:
58885         (WebCore::NetworkJob::handleNotifyStatusReceived):
58886         (WebCore::NetworkJob::notifyAuthReceived):
58887         (WebCore::NetworkJob::sendRequestWithCredentials):
58888
588892012-08-15  Dan Carney  <dcarney@google.com>
58890
58891        Refactor away IsolatedWorld
58892        https://bugs.webkit.org/show_bug.cgi?id=93971
58893
58894        Reviewed by Adam Barth.
58895
58896        Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld.
58897        This paves the way towards a JSC-like use of DOMWrapperWorld.
58898
58899        No tests.  No change in functionality.
58900
58901        * UseV8.cmake:
58902        * WebCore.gypi:
58903        * bindings/v8/DOMWrapperWorld.cpp:
58904        (WebCore):
58905        (WebCore::mainThreadNormalWorld):
58906        * bindings/v8/DOMWrapperWorld.h:
58907        (WebCore):
58908        (DOMWrapperWorld):
58909        (WebCore::DOMWrapperWorld::create):
58910        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
58911        (WebCore::DOMWrapperWorld::count):
58912        (WebCore::DOMWrapperWorld::worldId):
58913        (WebCore::DOMWrapperWorld::domDataStore):
58914        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
58915        * bindings/v8/IsolatedWorld.cpp: Removed.
58916        * bindings/v8/IsolatedWorld.h: Removed.
58917        * bindings/v8/V8DOMWrapper.h:
58918        (WebCore::V8DOMWrapper::getCachedWrapper):
58919        * bindings/v8/V8IsolatedContext.cpp:
58920        (WebCore::V8IsolatedContext::V8IsolatedContext):
58921        (WebCore::V8IsolatedContext::destroy):
58922        * bindings/v8/V8IsolatedContext.h:
58923        (WebCore::V8IsolatedContext::getEntered):
58924        (WebCore::V8IsolatedContext::world):
58925        (V8IsolatedContext):
58926
589272012-08-15  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
58928
58929        [css3-text] Add CSS3 Text decoration compile flag
58930        https://bugs.webkit.org/show_bug.cgi?id=93863
58931
58932        Reviewed by Julien Chaffraix.
58933
58934        This patch handles the compile flag implementation, which will come disabled by
58935        default, thus not exposing the CSS3 text decoration features to the web, unless
58936        when explicitly enabling it with "--css3-text-decoration" build parameter.
58937
58938        Changeset r125205 added "-webkit-text-decoration-line" support without proper
58939        compile flag. I am fixing this on this patch by adding #ifdef's along the added
58940        code and reverting getComputedStyle* layout test changes until further notice.
58941        The text-decoration-line.html layout test is now moved to
58942        fast/css3-text-decoration directory, which is skipped on all platforms until
58943        feature is sound and ready to be exposed to web.
58944
58945        Test: fast/css3-text-decoration/text-decoration-line.html
58946
58947        * Configurations/FeatureDefines.xcconfig:
58948        * GNUmakefile.am:
58949        * css/CSSComputedStyleDeclaration.cpp:
58950        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58951        * css/CSSParser.cpp:
58952        (WebCore::CSSParser::parseValue):
58953        (WebCore::CSSParser::addTextDecorationProperty):
58954        (WebCore::CSSParser::parseTextDecoration):
58955        * css/CSSProperty.cpp:
58956        (WebCore::CSSProperty::isInheritedProperty):
58957        * css/CSSPropertyNames.in:
58958        * css/StyleBuilder.cpp:
58959        (WebCore::StyleBuilder::StyleBuilder):
58960        * css/StyleResolver.cpp:
58961        (WebCore::StyleResolver::collectMatchingRulesForList):
58962        Added #ifdefs to enable/disable CSS3 Text Decoration code implemented by r125205.
58963
589642012-08-15  Iain Merrick  <husky@chromium.org>
58965
58966        Refactoring: move EventHandler::targetNode into HitTestResult
58967        https://bugs.webkit.org/show_bug.cgi?id=94107
58968
58969        Reviewed by Dimitri Glazkov.
58970
58971        This static helper method in EventHandler was made public so that
58972        WebFrameImpl can call it. That's untidy because EventHandler isn't
58973        really involved. This patch turns it into an instance method of
58974        HitTestResult (with a wrapper in MouseEventWithHitTestResult for
58975        convenience).
58976    
58977        Pure refactoring, no behavior change, no new test needed.
58978
58979        * page/EventHandler.cpp:
58980        (WebCore::EventHandler::selectClosestWordFromMouseEvent):
58981        (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
58982        (WebCore::EventHandler::handleMousePressEventTripleClick):
58983        (WebCore::EventHandler::handleMousePressEventSingleClick):
58984        (WebCore::EventHandler::handleMousePressEvent):
58985        (WebCore::EventHandler::handleMouseDraggedEvent):
58986        (WebCore::EventHandler::updateSelectionForMouseDrag):
58987        (WebCore::EventHandler::handleMouseReleaseEvent):
58988        (WebCore::EventHandler::subframeForHitTestResult):
58989        (WebCore::EventHandler::selectCursor):
58990        (WebCore::EventHandler::handleMouseDoubleClickEvent):
58991        (WebCore::EventHandler::handleMouseMoveEvent):
58992        (WebCore::EventHandler::updateDragAndDrop):
58993        (WebCore::EventHandler::handleGestureEvent):
58994        (WebCore::EventHandler::sendContextMenuEvent):
58995        * page/EventHandler.h:
58996        (EventHandler):
58997        * page/MouseEventWithHitTestResults.h:
58998        (WebCore::MouseEventWithHitTestResults::targetNode):
58999        * page/chromium/EventHandlerChromium.cpp:
59000        (WebCore::EventHandler::passMousePressEventToSubframe):
59001        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
59002        * page/efl/EventHandlerEfl.cpp:
59003        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
59004        * page/gtk/EventHandlerGtk.cpp:
59005        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
59006        * page/mac/EventHandlerMac.mm:
59007        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
59008        (WebCore::EventHandler::passSubframeEventToSubframe):
59009        * page/wx/EventHandlerWx.cpp:
59010        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
59011        * rendering/HitTestResult.cpp:
59012        (WebCore::HitTestResult::targetNode):
59013        (WebCore):
59014        * rendering/HitTestResult.h:
59015        (HitTestResult):
59016
590172012-08-15  David Grogan  <dgrogan@chromium.org>
59018
59019        IndexedDB: Add some ASSERTs
59020        https://bugs.webkit.org/show_bug.cgi?id=94055
59021
59022        Reviewed by Ojan Vafai.
59023
59024        These are just some additional ASSERTS and some ASSERT_WITH_MESSAGE in
59025        place of ASSERT. They are from the patch in
59026        https://bugs.webkit.org/show_bug.cgi?id=92897
59027
59028        No new tests - we should never hit this behavior.
59029
59030        * Modules/indexeddb/IDBDatabase.cpp:
59031        (WebCore::IDBDatabase::setVersion):
59032        (WebCore::IDBDatabase::registerFrontendCallbacks):
59033        * Modules/indexeddb/IDBRequest.cpp:
59034        (WebCore::IDBRequest::dispatchEvent):
59035        (WebCore::IDBRequest::enqueueEvent):
59036        * Modules/indexeddb/IDBTransaction.cpp:
59037        (WebCore::IDBTransaction::setActive):
59038
590392012-08-15  Sheriff Bot  <webkit.review.bot@gmail.com>
59040
59041        Unreviewed, rolling out r125687.
59042        http://trac.webkit.org/changeset/125687
59043        https://bugs.webkit.org/show_bug.cgi?id=94147
59044
59045        It broke the whole world (Requested by Ossy_night on #webkit).
59046
59047        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
59048        (WebCore::JSSQLStatementErrorCallback::handleEvent):
59049        * bindings/js/JSDOMWindowCustom.cpp:
59050        (WebCore::JSDOMWindow::addEventListener):
59051        (WebCore::JSDOMWindow::removeEventListener):
59052        * bindings/js/JSDataViewCustom.cpp:
59053        (WebCore::getDataViewMember):
59054        * bindings/js/JSDeviceMotionEventCustom.cpp:
59055        (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
59056        * bindings/js/JSDeviceOrientationEventCustom.cpp:
59057        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
59058        * bindings/js/JSDictionary.cpp:
59059        (WebCore::JSDictionary::convertValue):
59060        * bindings/js/JSDirectoryEntryCustom.cpp:
59061        (WebCore::JSDirectoryEntry::getFile):
59062        (WebCore::JSDirectoryEntry::getDirectory):
59063        * bindings/js/JSDirectoryEntrySyncCustom.cpp:
59064        (WebCore::getFlags):
59065        * bindings/js/JSHTMLCanvasElementCustom.cpp:
59066        (WebCore::JSHTMLCanvasElement::getContext):
59067        * bindings/js/JSInspectorFrontendHostCustom.cpp:
59068        (WebCore::populateContextMenuItems):
59069        * bindings/js/JSMessageEventCustom.cpp:
59070        (WebCore::handleInitMessageEvent):
59071        * bindings/js/JSWebGLRenderingContextCustom.cpp:
59072        (WebCore::dataFunctionMatrix):
59073        * bindings/js/JSXMLHttpRequestCustom.cpp:
59074        (WebCore::JSXMLHttpRequest::open):
59075        * bindings/js/JavaScriptCallFrame.cpp:
59076        * bindings/js/JavaScriptCallFrame.h:
59077        (JavaScriptCallFrame):
59078        * bindings/js/ScriptDebugServer.cpp:
59079        (WebCore::ScriptDebugServer::hasBreakpoint):
59080        * bindings/scripts/CodeGeneratorJS.pm:
59081        (GenerateEventListenerCall):
59082        (GenerateHeader):
59083        (JSValueToNative):
59084        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
59085        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
59086        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
59087        * bindings/scripts/test/JS/JSTestEventTarget.h:
59088        (WebCore::JSTestEventTarget::create):
59089        * bindings/scripts/test/JS/JSTestObj.cpp:
59090        (WebCore::setJSTestObjCreate):
59091        (WebCore::setJSTestObjReflectedBooleanAttr):
59092        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
59093        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
59094        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
59095        * bridge/c/c_utility.cpp:
59096        (JSC::Bindings::convertValueToNPVariant):
59097        * bridge/jni/jni_jsobject.mm:
59098        (JavaJSObject::convertValueToJObject):
59099        * bridge/qt/qt_runtime.cpp:
59100        (JSC::Bindings::convertValueToQVariant):
59101
591022012-08-15  Dominic Mazzoni  <dmazzoni@google.com>
59103
59104        AX: Calls to AXObjectCache should prefer Node over Renderer
59105        https://bugs.webkit.org/show_bug.cgi?id=91794
59106
59107        Reviewed by Chris Fleizach.
59108
59109        Now that it's possible for nodes inside a canvas subtree to be focused and
59110        represent accessible content, accessibility notifications should be triggered
59111        with a Node* rather than with a RenderObject* whenever possible.
59112
59113        Every public API in AXObjectCache that took a RenderObject* before now either
59114        takes a Node* instead, or has a parallel method that takes a Node*.
59115
59116        Tests: accessibility/accessibility-node-memory-management.html
59117               accessibility/accessibility-node-reparent.html
59118               accessibility/canvas-fallback-content.html
59119
59120        * accessibility/AXObjectCache.cpp:
59121        (WebCore::AXObjectCache::focusedImageMapUIElement):
59122        (WebCore::AXObjectCache::focusedUIElementForPage):
59123        (WebCore::AXObjectCache::get):
59124        (WebCore::AXObjectCache::getOrCreate):
59125        (WebCore::AXObjectCache::contentChanged):
59126        (WebCore):
59127        (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
59128        (WebCore::AXObjectCache::childrenChanged):
59129        (WebCore::AXObjectCache::postNotification):
59130        (WebCore::AXObjectCache::checkedStateChanged):
59131        (WebCore::AXObjectCache::selectedChildrenChanged):
59132        (WebCore::AXObjectCache::nodeTextChangeNotification):
59133        (WebCore::AXObjectCache::handleAriaExpandedChange):
59134        (WebCore::AXObjectCache::handleActiveDescendantChanged):
59135        (WebCore::AXObjectCache::handleAriaRoleChanged):
59136        (WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
59137        (WebCore::AXObjectCache::rootAXEditableElement):
59138        (WebCore::AXObjectCache::nodeIsTextControl):
59139        * accessibility/AXObjectCache.h:
59140        (AXObjectCache):
59141        (WebCore::AXObjectCache::setNodeInUse):
59142        (WebCore::AXObjectCache::removeNodeForUse):
59143        (WebCore::AXObjectCache::isNodeInUse):
59144        (WebCore::AXObjectCache::checkedStateChanged):
59145        (WebCore::AXObjectCache::childrenChanged):
59146        (WebCore::AXObjectCache::contentChanged):
59147        (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
59148        (WebCore::AXObjectCache::handleActiveDescendantChanged):
59149        (WebCore::AXObjectCache::handleAriaExpandedChange):
59150        (WebCore::AXObjectCache::handleAriaRoleChanged):
59151        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
59152        (WebCore::AXObjectCache::nodeTextChangeNotification):
59153        (WebCore::AXObjectCache::postNotification):
59154        (WebCore::AXObjectCache::selectedChildrenChanged):
59155        * accessibility/AccessibilityListBoxOption.cpp:
59156        (WebCore::AccessibilityListBoxOption::parentObject):
59157        * accessibility/AccessibilityObject.cpp:
59158        (WebCore::appendAccessibilityObject):
59159        (WebCore::replacedNodeNeedsCharacter):
59160        * accessibility/AccessibilityRenderObject.cpp:
59161        (WebCore::AccessibilityRenderObject::menuForMenuButton):
59162        (WebCore::AccessibilityRenderObject::menuButtonForMenu):
59163        (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
59164        (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
59165        (WebCore::AccessibilityRenderObject::titleUIElement):
59166        (WebCore::AccessibilityRenderObject::isTabItemSelected):
59167        (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
59168        (WebCore::AccessibilityRenderObject::nodeIsTextControl):
59169        (WebCore::AccessibilityRenderObject::activeDescendant):
59170        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
59171        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
59172        * accessibility/AccessibilityRenderObject.h:
59173        (AccessibilityRenderObject):
59174        * accessibility/AccessibilityScrollView.cpp:
59175        (WebCore::AccessibilityScrollView::webAreaObject):
59176        (WebCore::AccessibilityScrollView::parentObject):
59177        (WebCore::AccessibilityScrollView::parentObjectIfExists):
59178        * accessibility/chromium/AXObjectCacheChromium.cpp:
59179        (WebCore::AXObjectCache::postPlatformNotification):
59180        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
59181        * accessibility/gtk/AXObjectCacheAtk.cpp:
59182        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
59183        * accessibility/mac/AXObjectCacheMac.mm:
59184        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
59185        * accessibility/win/AXObjectCacheWin.cpp:
59186        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
59187        * bindings/cpp/WebDOMCustomVoidCallback.cpp:
59188        (toWebCore):
59189        * dom/Document.cpp:
59190        (WebCore::Document::setFocusedNode):
59191        * dom/Element.cpp:
59192        (WebCore::Element::attributeChanged):
59193        * dom/Node.cpp:
59194        (WebCore::Node::~Node):
59195        (WebCore::Node::attach):
59196        * editing/AppendNodeCommand.cpp:
59197        (WebCore::sendAXTextChangedIgnoringLineBreaks):
59198        * editing/DeleteFromTextNodeCommand.cpp:
59199        (WebCore::DeleteFromTextNodeCommand::doApply):
59200        (WebCore::DeleteFromTextNodeCommand::doUnapply):
59201        * editing/Editor.cpp:
59202        (WebCore::Editor::respondToChangedContents):
59203        (WebCore::Editor::markAndReplaceFor):
59204        * editing/InsertIntoTextNodeCommand.cpp:
59205        (WebCore::InsertIntoTextNodeCommand::doApply):
59206        (WebCore::InsertIntoTextNodeCommand::doUnapply):
59207        * editing/InsertNodeBeforeCommand.cpp:
59208        (WebCore::InsertNodeBeforeCommand::doApply):
59209        (WebCore::InsertNodeBeforeCommand::doUnapply):
59210        * editing/chromium/FrameSelectionChromium.cpp:
59211        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
59212        * html/HTMLInputElement.cpp:
59213        (WebCore::HTMLInputElement::setChecked):
59214        * html/HTMLSelectElement.cpp:
59215        (WebCore::HTMLSelectElement::childrenChanged):
59216        (WebCore::HTMLSelectElement::optionElementChildrenChanged):
59217        * html/HTMLTextFormControlElement.cpp:
59218        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
59219        * html/InputType.cpp:
59220        (WebCore::InputType::applyStep):
59221        * html/RangeInputType.cpp:
59222        (WebCore::RangeInputType::handleKeydownEvent):
59223        * page/FocusController.cpp:
59224        (WebCore::FocusController::setInitialFocus):
59225
592262012-08-15  Andreas Kling  <kling@webkit.org>
59227
59228        NinePieceImage: Avoid unnecessary duplication of default data in assignment operator.
59229        <http://webkit.org/b/94046>
59230
59231        Reviewed by Geoffrey Garen.
59232
59233        If copying a NinePieceImage with a null m_data, don't create a copy of it's data()
59234        as that will point to the default NinePieceImageData. ~200kB progression on Membuster.
59235
59236        * rendering/style/NinePieceImage.h:
59237        (WebCore::NinePieceImage::operator=):
59238
592392012-08-15  Gregg Tavares  <gman@google.com>
59240
59241        Mark Skia and Compositor Contexts
59242        https://bugs.webkit.org/show_bug.cgi?id=94129
59243
59244        Reviewed by James Robinson.
59245
59246        Marks the Skia and Compositor contexts to aid in debugging.
59247
59248        No new tests as no new functionality.
59249
59250        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
59251        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
59252        * platform/graphics/skia/ImageBufferSkia.cpp:
59253        (WebCore::createAcceleratedCanvas):
59254
592552012-08-15  Ian Vollick  <vollick@chromium.org>
59256
59257        [chromium] Must account for empty transformation lists when checking for big rotations.
59258        https://bugs.webkit.org/show_bug.cgi?id=93975
59259
59260        Reviewed by James Robinson.
59261
59262        AnimationTranslationUtil.cpp is supposed to reject large rotations 
59263        (>= 180 degrees between keyframes). The current code assumes that if 
59264        the lists of transforms at two consecutive keyframes do not match 
59265        (i.e., are different types), then do not need to reject. The rationale
59266        is that we will revert to matrix blending -- we will collapse the lists
59267        of transform operations to matrices at each keyframe and blend those. 
59268        Unfortunately, this is not true if a list is empty. It can be the case 
59269        that we transition from no transform to a rotation about the z axis of 
59270        360 degrees. In this case, the first list of transform operations will 
59271        be empty and the second will have a single rotation of 360 degrees. An 
59272        empty list should be treated as a rotation of zero degrees.
59273
59274        Unit tested in: GraphicsLayerChromiumTest.createTransformAnimationWithBigRotationAndEmptyTransformOperationList
59275
59276        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
59277        (WebCore::causesRotationOfAtLeast180Degrees):
59278
592792012-08-15  Beth Dakin  <bdakin@apple.com>
59280
59281        https://bugs.webkit.org/show_bug.cgi?id=93693
59282        [WK2] REGRESSION(125091): pixel results don't sow scrollbars 
59283        anymore
59284
59285        Reviewed by Sam Weinig.
59286
59287        This is a regression from http://trac.webkit.org/changeset/125091 
59288        in which I failed to noticed that 
59289        WKBundlePageCreateSnapshotInViewCoordinates() did actually do 
59290        something different than 
59291        WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically, 
59292        it used ScrollView::paint() to paint instead of 
59293        FrameView::paintContents(). So this patch restores that 
59294        functionality by adding a value to SnapshotOptions indicating 
59295        whether the snapshot should be taken in ViewCoordinates 
59296        (otherwise it defaults to DocumentCoordinates).
59297
59298        FrameView:: paintContentsForSnapshot() now takes a new parameter 
59299        that indicates whether to take the snapshot in document 
59300        coordinates or view coordinates.
59301        * WebCore.exp.in:
59302        * page/FrameView.cpp:
59303        (WebCore::FrameView::paintContentsForSnapshot):
59304        * page/FrameView.h:
59305
593062012-08-15  Benjamin Poulain  <bpoulain@apple.com>
59307
59308        Use literal initialization for CSS's pseudo types
59309        https://bugs.webkit.org/show_bug.cgi?id=94066
59310
59311        Reviewed by Kenneth Rohde Christiansen.
59312
59313        Initialize CSS pseudo type strings with the new initialization from literal.
59314
59315        The first invocation of nameToPseudoTypeMap() becomes 20% faster and we use
59316        less memory to store the strings.
59317
59318        * css/CSSSelector.cpp:
59319        (WebCore::nameToPseudoTypeMap):
59320
593212012-08-15  Brady Eidson  <beidson@apple.com>
59322
59323        Removing a plug-in element from a page opened in a background tab in Safari crashes
59324        <rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913
59325
59326        Reviewed by Beth Dakin.
59327
59328        Expose Page::setCanStartMedia to regression tests so they can pretend to be in a non-windowed WebView.
59329
59330        Test: platform/mac-wk2/plugins/asynchronous-destroy-before-initialization.html
59331
59332        * testing/InternalSettings.cpp:
59333        (WebCore::InternalSettings::Backup::Backup):
59334        (WebCore::InternalSettings::Backup::restoreTo):
59335        (WebCore::InternalSettings::setCanStartMedia):
59336        (WebCore):
59337        * testing/InternalSettings.h:
59338        (Backup):
59339        (InternalSettings):
59340        * testing/InternalSettings.idl:
59341
593422012-08-15  Levi Weintraub  <leviw@chromium.org>
59343
59344        AutoTableLayout truncates preferred widths for cells when it needs to ceil them to contain the contents
59345        https://bugs.webkit.org/show_bug.cgi?id=93911
59346
59347        Reviewed by Eric Seidel.
59348
59349        Avoiding truncation of sub-pixel accumulated values when determining the preferred width of a table cell
59350        in AutoTableLayout. Since we continue to layout tables using integers, we need to ceil the contents to
59351        prevent premature wrapping of the contents.
59352
59353        This only affects ports with sub-pixel layout enabled, and fixes regressions of a handful of tests that
59354        were missed when updating expectations when sub-pixel was enabled.
59355
59356        Test: fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html
59357
59358        * rendering/AutoTableLayout.cpp:
59359        (WebCore::AutoTableLayout::recalcColumn):
59360
593612012-08-10  Ojan Vafai  <ojan@chromium.org>
59362
59363        z-index should work without position on flexitems
59364        https://bugs.webkit.org/show_bug.cgi?id=91405
59365
59366        Reviewed by Tony Chang.
59367
59368        Require a layer on any RenderBox that has a non-auto z-index.
59369        Statically positioned, non-flex-item's have their z-index coerced to auto,
59370        so it's safe to check z-index unconditionally.
59371
59372        Test: css3/flexbox/z-index.html
59373
59374        * css/StyleResolver.cpp:
59375        (WebCore::StyleResolver::adjustRenderStyle):
59376        -Don't coerce z-index to auto on statically positioned flex-items.
59377        -Use the parentStyle to determine if the parent is a flexbox instead of
59378        looking at the element's parentNode's renderer.
59379        * rendering/RenderBox.h:
59380        -Add having a non-auto z-index to the list of things that require a layer.
59381
593822012-08-15  Joanmarie Diggs  <jdiggs@igalia.com>
59383
59384        [Gtk] atk_text_set_caret_offset() fails for table cells
59385        https://bugs.webkit.org/show_bug.cgi?id=83501
59386
59387        Reviewed by Chris Fleizach.
59388
59389        Allow using text ranges in accessible table cells.
59390
59391        * accessibility/gtk/AccessibilityObjectAtk.cpp:
59392        (WebCore::AccessibilityObject::allowsTextRanges):
59393        Add table cells to the list of accessibility objects supporting text ranges.
59394
593952012-08-15  Scott Graham  <scottmg@chromium.org>
59396
59397        Rename window.internals.fastMallocStatistics to mallocStatistics
59398        https://bugs.webkit.org/show_bug.cgi?id=94033
59399
59400        Reviewed by Adam Barth.
59401
59402        Mechanical rename. In preparation for plumbing allocation information
59403        from allocators that aren't "fastMalloc".
59404
59405        * CMakeLists.txt:
59406        * DerivedSources.make:
59407        * DerivedSources.pri:
59408        * GNUmakefile.list.am:
59409        * Target.pri:
59410        * WebCore.gyp/WebCore.gyp:
59411        * WebCore.gypi:
59412        * WebCore.vcproj/WebCoreTestSupport.vcproj:
59413        * WebCore.xcodeproj/project.pbxproj:
59414        * loader/DocumentLoader.h:
59415        (WebCore::DocumentLoader::didTellClientAboutLoad):
59416        * loader/cache/CachedResourceLoader.cpp:
59417        (WebCore::CachedResourceLoader::loadResource):
59418        * testing/FastMallocStatistics.h: Removed.
59419        * testing/FastMallocStatistics.idl: Removed.
59420        * testing/Internals.cpp:
59421        (WebCore::Internals::mallocStatistics):
59422        * testing/Internals.h:
59423        (WebCore):
59424        (Internals):
59425        * testing/Internals.idl:
59426        * testing/MallocStatistics.h: Added.
59427        * testing/MallocStatistics.idl: Added.
59428
594292012-08-15  Joshua Netterfield  <jnetterfield@rim.com>
59430
59431        [BlackBerry] Upstream BlackBerry build fixes
59432        https://bugs.webkit.org/show_bug.cgi?id=94121
59433
59434        Reviewed by Rob Buis.
59435
59436        This includes several build fixes due to incorrect upstream patches.
59437        These mistakes were never present downstream.
59438
59439        No new tests, because no new functionality is added.
59440
59441        * platform/graphics/GraphicsContext3D.cpp:
59442        (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
59443        * platform/graphics/GraphicsContext3D.h:
59444        (GraphicsContext3D):
59445        (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry):
59446        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
59447        (WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
59448        * platform/graphics/blackberry/LayerFilterRenderer.h:
59449        (LayerFilterRendererAction):
59450
594512012-08-15  Adam Barth  <abarth@webkit.org>
59452
59453        JSDOMWrapper should ASSERT that it has an associated ScriptExecutionContext
59454        https://bugs.webkit.org/show_bug.cgi?id=94053
59455
59456        Reviewed by Sam Weinig.
59457
59458        Previously we were unable have this ASSERT because DOMWindow needed a
59459        Frame to find Document. Now that we can find the Document without a
59460        Frame, we can include the ASSERT and sanity will rein across the land.
59461
59462        * bindings/js/JSDOMWrapper.h:
59463        (WebCore::JSDOMWrapper::globalObject):
59464        (WebCore::JSDOMWrapper::scriptExecutionContext):
59465        (WebCore::JSDOMWrapper::JSDOMWrapper):
59466
594672012-08-14  Mark Hahnenberg  <mhahnenberg@apple.com>
59468
59469        Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
59470        https://bugs.webkit.org/show_bug.cgi?id=93884
59471
59472        Reviewed by Geoffrey Garen.
59473
59474        With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
59475        MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
59476        we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
59477        objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
59478        For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
59479        masquerade as undefined within frame B, but it will continue to masquerade in frame A.
59480
59481        Test: fast/js/document-all-between-frames.html
59482
59483        All of the changes in WebCore are simply passing the additional ExecState argument to JSValue::toBoolean.
59484
59485        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
59486        (WebCore::JSSQLStatementErrorCallback::handleEvent):
59487        * bindings/js/JSDOMWindowCustom.cpp:
59488        (WebCore::JSDOMWindow::addEventListener):
59489        (WebCore::JSDOMWindow::removeEventListener):
59490        * bindings/js/JSDataViewCustom.cpp:
59491        (WebCore::getDataViewMember):
59492        * bindings/js/JSDeviceMotionEventCustom.cpp:
59493        (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
59494        * bindings/js/JSDeviceOrientationEventCustom.cpp:
59495        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
59496        * bindings/js/JSDictionary.cpp:
59497        (WebCore::JSDictionary::convertValue):
59498        * bindings/js/JSDirectoryEntryCustom.cpp:
59499        (WebCore::JSDirectoryEntry::getFile):
59500        (WebCore::JSDirectoryEntry::getDirectory):
59501        * bindings/js/JSDirectoryEntrySyncCustom.cpp:
59502        (WebCore::getFlags):
59503        * bindings/js/JSHTMLCanvasElementCustom.cpp:
59504        (WebCore::JSHTMLCanvasElement::getContext):
59505        * bindings/js/JSInspectorFrontendHostCustom.cpp:
59506        (WebCore::populateContextMenuItems):
59507        * bindings/js/JSMessageEventCustom.cpp:
59508        (WebCore::handleInitMessageEvent):
59509        * bindings/js/JSWebGLRenderingContextCustom.cpp:
59510        (WebCore::dataFunctionMatrix):
59511        * bindings/js/JSXMLHttpRequestCustom.cpp:
59512        (WebCore::JSXMLHttpRequest::open):
59513        * bindings/js/JavaScriptCallFrame.cpp:
59514        (WebCore::JavaScriptCallFrame::exec):
59515        (WebCore):
59516        * bindings/js/JavaScriptCallFrame.h:
59517        (JavaScriptCallFrame):
59518        * bindings/js/ScriptDebugServer.cpp:
59519        (WebCore::ScriptDebugServer::hasBreakpoint):
59520        * bindings/scripts/CodeGeneratorJS.pm: Also add the custom create function for MasqueradesAsUndefined JS DOM wrappers.
59521        (GenerateEventListenerCall):
59522        (GenerateHeader):
59523        (JSValueToNative):
59524        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
59525        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
59526        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
59527        * bindings/scripts/test/JS/JSTestEventTarget.h:
59528        (WebCore::JSTestEventTarget::create):
59529        * bindings/scripts/test/JS/JSTestObj.cpp:
59530        (WebCore::setJSTestObjCreate):
59531        (WebCore::setJSTestObjReflectedBooleanAttr):
59532        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
59533        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
59534        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
59535        * bridge/c/c_utility.cpp:
59536        (JSC::Bindings::convertValueToNPVariant):
59537        * bridge/jni/jni_jsobject.mm:
59538        (JavaJSObject::convertValueToJObject):
59539        * bridge/qt/qt_runtime.cpp:
59540        (JSC::Bindings::convertValueToQVariant):
59541
595422012-08-15  Joanmarie Diggs  <jdiggs@igalia.com>
59543
59544        [Gtk] atk_text_get_text_at_offset() fails to provide the correct line for paragraphs in list items whose text wraps
59545        https://bugs.webkit.org/show_bug.cgi?id=83435
59546
59547        Reviewed by Chris Fleizach.
59548
59549        Fix a logic error when checking if an object is a list marker.
59550
59551        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
59552        (textForRenderer):
59553
595542012-08-15  Arpita Bahuguna  <arpitabahuguna@gmail.com>
59555
59556        There is additional space not belonged to a table between the table cells
59557        https://bugs.webkit.org/show_bug.cgi?id=74864
59558
59559        Reviewed by Julien Chaffraix.
59560
59561        Hittest for a point on the edge, i.e. between two table columns, currently
59562        does not return any matching underlying element.
59563
59564        A hittest on such a point (on the edge of two table columns) should return
59565        the column that lies either on the logical right/bottom of the said point.
59566
59567        Tests: fast/table/hittest-tablecell-bottom-edge.html
59568               fast/table/hittest-tablecell-right-edge.html
59569               fast/table/hittest-tablecell-with-borders-bottom-edge.html
59570               fast/table/hittest-tablecell-with-borders-right-edge.html
59571
59572        * rendering/RenderTableSection.cpp:
59573        (WebCore::RenderTableSection::spannedRows):
59574        Removed the FIXME regarding the correctness of the usage of the upper_bound algorithm
59575        since that is now verified by the testcases in this patch. Also, the comment
59576        regarding the inconsistency between the algorithms used in spannedRows and spannedColumns
59577        is no longer valid.
59578
59579        (WebCore::RenderTableSection::spannedColumns):
59580        Changed lower_bound() algorithm to upper_bound() for obtaining the next column.
59581        This is now similar to what is used for obtaining the next row in spannedRows().
59582
595832012-08-15  Anna Cavender  <annacc@chromium.org>
59584
59585        Add the timestampOffset attribute to SourceBuffer.
59586        https://bugs.webkit.org/show_bug.cgi?id=93303
59587
59588        Reviewed by Dimitri Glazkov.
59589
59590        On the 30 July 2012 version of the Media Source Extensions spec, a timestampOffset 
59591        attribute was added to the SourceBuffer object:
59592        http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#dom-timestampoffset
59593
59594        Tests: additions to http/tests/media/media-source/video-media-source-objects.html
59595
59596        * Modules/mediasource/MediaSource.cpp:
59597        (WebCore::MediaSource::setTimestampOffset): Set the timestampOffset on MediaPlayer.
59598        (WebCore):
59599        * Modules/mediasource/MediaSource.h:
59600        (MediaSource):
59601        * Modules/mediasource/SourceBuffer.cpp:
59602        (WebCore::SourceBuffer::SourceBuffer): Let the timestampOffset be 0 initially
59603        (WebCore::SourceBuffer::timestampOffset): Return the last value set.
59604        (WebCore):
59605        (WebCore::SourceBuffer::setTimestampOffset): Forward the call onto MediaSouce.
59606        * Modules/mediasource/SourceBuffer.h:
59607        (SourceBuffer):
59608        * Modules/mediasource/SourceBuffer.idl: Create the new timestampOffset attr.
59609        * platform/graphics/MediaPlayer.cpp:
59610        (WebCore::NullMediaPlayerPrivate::sourceSetTimestampOffset): A null media player
59611            should just return false (nothing to set).
59612        (WebCore):
59613        (WebCore::MediaPlayer::sourceSetTimestampOffset):  Forward the call.
59614        * platform/graphics/MediaPlayer.h:
59615        * platform/graphics/MediaPlayerPrivate.h:
59616        (WebCore::MediaPlayerPrivateInterface::sourceSetTimestampOffset):
59617
596182012-08-15  Pavel Chadnov  <chadnov@google.com>
59619
59620        Web Inspector: Incorrect XHR responses when two async xhrs are sent synchronously
59621        https://bugs.webkit.org/show_bug.cgi?id=91630
59622        
59623        Reviewed by Vsevolod Vlasov.
59624
59625        CachedResource object for XHR response is now taken from ResourceLoader (if it's possible).
59626
59627        Test: http/tests/inspector/network/network-xhr-async-double.html
59628
59629        * inspector/InspectorInstrumentation.cpp:
59630        (WebCore):
59631        (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
59632        (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
59633        * inspector/InspectorInstrumentation.h:
59634        (InspectorInstrumentation):
59635        (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
59636        * inspector/InspectorResourceAgent.cpp:
59637        (WebCore::InspectorResourceAgent::willSendRequest):
59638        (WebCore::InspectorResourceAgent::didReceiveResponse):
59639        * inspector/InspectorResourceAgent.h:
59640        (WebCore):
59641        (InspectorResourceAgent):
59642        * loader/DocumentThreadableLoader.cpp:
59643        (WebCore::DocumentThreadableLoader::didReceiveResponse):
59644        * loader/ResourceLoadNotifier.cpp:
59645        (WebCore::ResourceLoadNotifier::didReceiveResponse):
59646        (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
59647        * loader/ResourceLoadNotifier.h:
59648        (ResourceLoadNotifier):
59649        * loader/ResourceLoader.cpp:
59650        (WebCore::ResourceLoader::isSubresourceLoader):
59651        (WebCore):
59652        * loader/ResourceLoader.h:
59653        (ResourceLoader):
59654        * loader/SubresourceLoader.cpp:
59655        (WebCore::SubresourceLoader::cachedResource):
59656        (WebCore):
59657        (WebCore::SubresourceLoader::isSubresourceLoader):
59658        * loader/SubresourceLoader.h:
59659        (SubresourceLoader):
59660        * loader/appcache/ApplicationCacheGroup.cpp:
59661        (WebCore::ApplicationCacheGroup::didReceiveResponse):
59662
596632012-08-15  Taiju Tsuiki  <tzik@chromium.org>
59664
59665        Web Inspector: Use default parameter on reportResult in InspectorFileSystemAgent
59666        https://bugs.webkit.org/show_bug.cgi?id=93930
59667
59668        Reviewed by Vsevolod Vlasov.
59669
59670        No functional change.
59671
59672        * inspector/InspectorFileSystemAgent.cpp:
59673        (WebCore):
59674
596752012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
59676
59677        Web Inspector: TabbedEditorContainer Doens't show '*' near modified file name sometimes.
59678        https://bugs.webkit.org/show_bug.cgi?id=94095
59679
59680        Reviewed by Pavel Feldman.
59681
59682        TabbedEditorContainer now correctly updates event listeners on UISourceCodeReplaced event.
59683
59684        * inspector/front-end/TabbedEditorContainer.js:
59685        (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
59686        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
59687        (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
59688        (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
59689
596902012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
59691
59692        Web Inspector: Scroll/selection are not saved in sources panel editors sometimes.
59693        https://bugs.webkit.org/show_bug.cgi?id=94098
59694
59695        Reviewed by Pavel Feldman.
59696
59697        SourceFrame listeners and _currentFile field are now cleared only when currently open tab is closed.
59698
59699        * inspector/front-end/TabbedEditorContainer.js:
59700        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
59701
597022012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
59703
59704        Web Inspector: [REGRESSION] "save as" of edited source in developer mode fails to update saved file
59705        https://bugs.webkit.org/show_bug.cgi?id=94074
59706
59707        Reviewed by Pavel Feldman.
59708
59709        Added dirty flag check when saving uiSourceCode to save working copy in this case.
59710
59711        * inspector/front-end/HandlerRegistry.js:
59712        (WebInspector.HandlerRegistry.prototype.appendApplicableItems.save):
59713        (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
59714
597152012-08-15  Thiago Marcos P. Santos  <thiago.santos@intel.com>
59716
59717        Relative units are not set when the canvas has not parent
59718        https://bugs.webkit.org/show_bug.cgi?id=93840
59719
59720        Reviewed by Kenneth Rohde Christiansen.
59721
59722        Set the default font when no parent style is set. It will make
59723        possible to apply relative units when a parent is not set.
59724
59725        No new tests, unskipped the existing ones.
59726
59727        * css/StyleBuilder.cpp:
59728        (WebCore::ApplyPropertyFontSize::applyValue):
59729        Make it possible to apply relative units if a parent style exist but
59730        not a parent node. It works like this for em and ex, but not for
59731        percent units.
59732        * html/canvas/CanvasRenderingContext2D.cpp:
59733        (WebCore):
59734        (WebCore::CanvasRenderingContext2D::setFont):
59735
597362012-08-14  Pavel Feldman  <pfeldman@chromium.org>
59737
59738        Web Inspector: split standalone test runner, test scanner and test stub.
59739        https://bugs.webkit.org/show_bug.cgi?id=94001
59740
59741        Reviewed by Vsevolod Vlasov.
59742
59743        This change starts sending loacCompleted message to the embedder.
59744
59745        * inspector/front-end/InspectorFrontendAPI.js:
59746        (InspectorFrontendAPI.loadCompleted):
59747        * inspector/front-end/test-runner.html: Added.
59748
597492012-08-15  Shinya Kawanaka  <shinyak@chromium.org>
59750
59751        [Refactoring] The debug version and release version of toHTMLSelectElement can be merged without any penalty
59752        https://bugs.webkit.org/show_bug.cgi?id=94084
59753
59754        Reviewed by Kent Tamura.
59755
59756        We have two versions of toHTMLSelectElement. One has ASSERT() and the other one does not have ASSERT().
59757        We can merge them without any penalty.
59758
59759        No new tests, no change in behavior.
59760
59761        * html/HTMLSelectElement.cpp:
59762        * html/HTMLSelectElement.h:
59763        (WebCore::isHTMLSelectElement):
59764        (WebCore::toHTMLSelectElement):
59765        (WebCore):
59766
597672012-08-15  Shinya Kawanaka  <shinyak@chromium.org>
59768
59769        AuthorShadowDOM for meter element
59770        https://bugs.webkit.org/show_bug.cgi?id=91970
59771
59772        Reviewed by Hajime Morita.
59773
59774        We add support for AuthorShadowDOM for a meter element.
59775
59776        According to the Shadow DOM spec, a meter element should behave like having a UserAgentShadowRoot and
59777        an element in UserAgentShadowRoot draws a real 'meter' bar. In this patch, we change the inner structure
59778        of a meter element so that we can distribute an element having RenderMeter to AuthorShadowDOM.
59779
59780        Before this patch, a meter element has the following inner structure.
59781
59782            <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
59783                               |
59784                               +-- MeterBarElement
59785                               |
59786                               +-- MeterValueElement
59787
59788        After this patch, a meter element will have the following inner structure.
59789
59790            <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
59791                               |
59792                               +-- MeterInnerElement
59793                                           |
59794                                           +-- MeterBarElement
59795                                           |
59796                                           +-- MeterValueElement
59797
59798        However, if RenderTheme supports rendering meter, MeterInnerElement will not create a renderer
59799        unless an AuthorShadowDOM is attached to it so that we can keep the current rendering style.
59800
59801        Tests: fast/dom/shadow/shadowdom-for-meter-dynamic.html
59802               fast/dom/shadow/shadowdom-for-meter-multiple.html
59803               fast/dom/shadow/shadowdom-for-meter-with-style.html
59804               fast/dom/shadow/shadowdom-for-meter-without-appearance.html
59805               fast/dom/shadow/shadowdom-for-meter-without-shadow-element.html
59806               fast/dom/shadow/shadowdom-for-meter.html
59807
59808        * css/html.css:
59809        (meter): Changed the display type. inline-box is not supported WebKit. inline-block is true.
59810        (meter::-webkit-meter-inner-element):
59811        * html/HTMLMeterElement.cpp:
59812        (WebCore::HTMLMeterElement::HTMLMeterElement):
59813        (WebCore::HTMLMeterElement::createRenderer):
59814        (WebCore):
59815        (WebCore::HTMLMeterElement::attach): Added didElementStateChange.
59816        (WebCore::HTMLMeterElement::didElementStateChange):
59817        (WebCore::HTMLMeterElement::willAddAuthorShadowRoot):
59818        (WebCore::HTMLMeterElement::renderMeter):
59819        (WebCore::HTMLMeterElement::createShadowSubtree):
59820        * html/HTMLMeterElement.h:
59821        (WebCore):
59822        (WebCore::HTMLMeterElement::hasAuthorShadowRoot):
59823        (HTMLMeterElement):
59824        (WebCore::isHTMLMeterElement):
59825        (WebCore::toHTMLMeterElement):
59826        * html/shadow/MeterShadowElement.cpp:
59827        (WebCore::MeterShadowElement::meterElement):
59828        (WebCore::MeterShadowElement::rendererIsNeeded):
59829        (WebCore):
59830        (WebCore::MeterInnerElement::MeterInnerElement): We introduce a new element having RenderMeter
59831        so that we can distribute an element having RenderMeter to AuthorShadowDOM.
59832        (WebCore::MeterInnerElement::rendererIsNeeded): Different from a progress element, meter element will not be
59833        rendered using a theme. So we don't need to check the style appearance.
59834        (WebCore::MeterInnerElement::createRenderer):
59835        (WebCore::MeterInnerElement::shadowPseudoId):
59836        * html/shadow/MeterShadowElement.h:
59837        (WebCore):
59838        (MeterInnerElement):
59839        (WebCore::MeterInnerElement::create):
59840        * rendering/RenderMeter.cpp:
59841        (WebCore::RenderMeter::RenderMeter):
59842        (WebCore::RenderMeter::meterElement):
59843        (WebCore):
59844        (WebCore::RenderMeter::valueRatio):
59845        * rendering/RenderMeter.h:
59846        (RenderMeter):
59847        * rendering/RenderThemeMac.mm:
59848        (WebCore::RenderThemeMac::levelIndicatorFor):
59849
598502012-08-15  Adam Barth  <abarth@webkit.org>
59851
59852        [Chromium] fast/dom/Window/dom-access-from-closure-window.html is flaky on Linux
59853        https://bugs.webkit.org/show_bug.cgi?id=94060
59854
59855        Reviewed by Kentaro Hara.
59856
59857        Previously, the V8 garbage collector might have collected the Document
59858        wrapper before the DOMWindow wrapper because we overwrite the
59859        "document" property of the DOMWindow during navigation.
59860
59861        This patch adds a hidden document property on the global object to
59862        ensure that the Document wrapper lives at least as long as the
59863        DOMWindow wrapper, ensuring that DOMWindows that we obtain from V8
59864        always have non-null Document objects.
59865
59866        The JavaScriptCore bindings already have this behavior.
59867
59868        Test: fast/dom/Window/dom-access-from-closure-window-with-gc.html
59869
59870        * bindings/v8/V8DOMWindowShell.cpp:
59871        (WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
59872        * bindings/v8/V8HiddenPropertyName.h:
59873        (WebCore):
59874
598752012-08-14  Andrey Kosyakov  <caseq@chromium.org>
59876
59877        Web Inspector: Calling getEventListeners() on element with malformed javascript event listeners crashes
59878        https://bugs.webkit.org/show_bug.cgi?id=93937
59879
59880        Reviewed by Pavel Feldman.
59881
59882        - check listener function to be non-null (happens upon an exception while compiling attribute listeners)
59883
59884        * bindings/js/JSInjectedScriptHostCustom.cpp:
59885        (WebCore::getJSListenerFunctions):
59886        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
59887        (WebCore::getJSListenerFunctions):
59888
598892012-08-14  Jan Keromnes  <janx@linux.com>
59890
59891        Web Inspector: CodeMirrorTextEditor doesn't clear execution line
59892        https://bugs.webkit.org/show_bug.cgi?id=94069
59893
59894        Reviewed by Pavel Feldman.
59895
59896        Make CodeMirrorTextEditor use line handles instead of numbers, remove
59897        typeof == "number" checks.
59898
59899        * inspector/front-end/CodeMirrorTextEditor.js:
59900        (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
59901        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
59902        (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
59903
599042012-08-14  Yuta Kitamura  <yutak@google.com>
59905
59906        Unreviewed. Fix Chromium-Android builds.
59907
59908        * html/TimeInputType.cpp:
59909        (WebCore::TimeInputType::TimeInputType):
59910        Declare the function as a constructor.
59911
599122012-08-14  Sukolsak Sakshuwong  <sukolsak@google.com>
59913
59914        Text selection in text area in auto scroll mode goes wrong.
59915        https://bugs.webkit.org/show_bug.cgi?id=74346
59916
59917        Reviewed by Ojan Vafai.
59918
59919        WebKit triggers autoscroll in text area when the user drags the cursor from inside
59920        the text area to the outside. When that happens, it gets the local cursor position
59921        relative to the node under the cursor from hit-testing, converts it to
59922        the absolute position, and then converts it to the local position relative to the
59923        text area. However, the hit-testing method of text area did not take scrolling
59924        offset into account. This caused it to give an incorrect value of the local cursor
59925        position. Make the hit-testing take scrolling offset into account.
59926
59927        Test: fast/events/autoscroll-in-textarea.html
59928
59929        * html/shadow/TextControlInnerElements.cpp:
59930        (WebCore::TextControlInnerTextElement::createRenderer):
59931        * rendering/RenderTextControl.cpp:
59932        (WebCore::RenderTextControl::hitInnerTextElement):
59933        * rendering/RenderTextControlSingleLine.cpp:
59934        (WebCore):
59935        * rendering/RenderTextControlSingleLine.h:
59936        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
59937        (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
59938
599392012-08-14  Shinya Kawanaka  <shinyak@chromium.org>
59940
59941        [Refactoring] RenderMenuList and RenderListBox should have a method to return HTMLSelectElement.
59942        https://bugs.webkit.org/show_bug.cgi?id=94061
59943
59944        Reviewed by Kent Tamura.
59945
59946        This is a preparation patch for Bug 91487. Since RenderMenuList::node() and RenderListBox::node()
59947        will not return HTMLSelectElement to fix Bug 91487, it would be good to have a method to HTMLSelectElement.
59948
59949        No new tests, no change in behavior.
59950
59951        * rendering/RenderListBox.cpp:
59952        (WebCore::RenderListBox::selectElement):
59953        (WebCore):
59954        (WebCore::RenderListBox::updateFromElement):
59955        (WebCore::RenderListBox::scrollToRevealSelection):
59956        (WebCore::RenderListBox::size):
59957        (WebCore::RenderListBox::numItems):
59958        (WebCore::RenderListBox::addFocusRingRects):
59959        (WebCore::RenderListBox::paintItemForeground):
59960        (WebCore::RenderListBox::paintItemBackground):
59961        (WebCore::RenderListBox::panScroll):
59962        (WebCore::RenderListBox::autoscroll):
59963        (WebCore::RenderListBox::stopAutoscroll):
59964        (WebCore::RenderListBox::valueChanged):
59965        (WebCore::RenderListBox::nodeAtPoint):
59966        * rendering/RenderListBox.h:
59967        (WebCore):
59968        (RenderListBox):
59969        * rendering/RenderMenuList.cpp:
59970        (WebCore::RenderMenuList::selectElement):
59971        (WebCore):
59972        (WebCore::RenderMenuList::updateOptionsWidth):
59973        (WebCore::RenderMenuList::updateFromElement):
59974        (WebCore::RenderMenuList::setTextFromOption):
59975        (WebCore::RenderMenuList::showPopup):
59976        (WebCore::RenderMenuList::valueChanged):
59977        (WebCore::RenderMenuList::listBoxSelectItem):
59978        (WebCore::RenderMenuList::multiple):
59979        (WebCore::RenderMenuList::didSetSelectedIndex):
59980        (WebCore::RenderMenuList::didUpdateActiveOption):
59981        (WebCore::RenderMenuList::itemText):
59982        (WebCore::RenderMenuList::itemAccessibilityText):
59983        (WebCore::RenderMenuList::itemToolTip):
59984        (WebCore::RenderMenuList::itemIsEnabled):
59985        (WebCore::RenderMenuList::itemStyle):
59986        (WebCore::RenderMenuList::itemBackgroundColor):
59987        (WebCore::RenderMenuList::listSize):
59988        (WebCore::RenderMenuList::selectedIndex):
59989        (WebCore::RenderMenuList::itemIsSeparator):
59990        (WebCore::RenderMenuList::itemIsLabel):
59991        (WebCore::RenderMenuList::itemIsSelected):
59992        (WebCore::RenderMenuList::setTextFromItem):
59993        * rendering/RenderMenuList.h:
59994        (WebCore):
59995        (RenderMenuList):
59996
599972012-08-10  Kinuko Yasuda  <kinuko@chromium.org>
59998
59999        FileWriter fails with assertion when trying to write empty Blob
60000        https://bugs.webkit.org/show_bug.cgi?id=93694
60001
60002        Reviewed by Kent Tamura.
60003
60004        if the given data size is zero (i.e. m_bytesToWrite is zero) the assertion 'bytes + m_bytesWritten > 0' should not be tested.
60005
60006        Tests: fast/filesystem/file-writer-empty-blob.html
60007               fast/filesystem/workers/file-writer-empty-blob.html
60008
60009        * Modules/filesystem/FileWriter.cpp:
60010        (WebCore::FileWriter::didWrite):
60011
600122012-08-14  Keishi Hattori  <keishi@webkit.org>
60013
60014        Share common code between calendar picker and color suggestion picker
60015        https://bugs.webkit.org/show_bug.cgi?id=93802
60016
60017        Reviewed by Kent Tamura.
60018
60019        We want to share common code like utility functions between picker page popups.
60020
60021        No new tests because no behavior change. Covered by existing tests, color-suggestion-picker-appearance.html and calendar-picker-apeparance.html.
60022
60023        * Resources/pagepopups/calendarPicker.js:
60024        (YearMonthController.prototype.attachTo):
60025        (YearMonthController.prototype._showPopup):
60026        * Resources/pagepopups/colorSuggestionPicker.js:
60027        (handleMessage):
60028        (handleArgumentsTimeout):
60029        * Resources/pagepopups/pickerCommon.css: Added.
60030        (body):
60031        * Resources/pagepopups/pickerCommon.js: Added.
60032        (createElement):
60033        (resizeWindow):
60034        (getScrollbarWidth):
60035        * WebCore.gyp/WebCore.gyp: Add actions for pickerCommon.{css,js}
60036        * html/shadow/CalendarPickerElement.cpp:
60037        (WebCore::CalendarPickerElement::writeDocument):
60038
600392012-08-14  Ojan Vafai  <ojan@chromium.org>
60040
60041        Fix access to m_markupBox in WebCore::EllipsisBox::paint
60042        https://bugs.webkit.org/show_bug.cgi?id=91138
60043
60044        Reviewed by Abhishek Arya.
60045
60046        EllipsisBox would hold on to m_markupBox, which would then get destroyed during
60047        the followup layoutIfNeeded in layoutVerticalBox. Instead, have EllipsisBox
60048        dynamically grab to pointer to the markup box during paint since there's no
60049        straightforward way to notify the EllipsisBox that the markupBox has been destroyed
60050        and/or point it at the new markupBox.
60051
60052        Test: fast/overflow/line-clamp-and-columns.html
60053
60054        * rendering/EllipsisBox.cpp:
60055        (WebCore::EllipsisBox::paint):
60056        (WebCore):
60057        (WebCore::EllipsisBox::paintMarkupBox):
60058        * rendering/EllipsisBox.h:
60059        (WebCore::EllipsisBox::EllipsisBox):
60060        Just store a boolean that we have a markup box that needs painting.
60061        * rendering/RenderDeprecatedFlexibleBox.cpp:
60062        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
60063        Clearing the override size right after setting it was incorrect because
60064        there are cases where we'll do a followup layout in layoutVerticalBox, at which
60065        point we'll still need the override size.
60066        (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
60067        Clear the override size here to handle cases where line clamp is removed since
60068        we don't call applyLineClamp in those cases.
60069
600702012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
60071
60072        [Forms] Make input type "time" to use multiple field time input UI
60073        https://bugs.webkit.org/show_bug.cgi?id=93929
60074
60075        Reviewed by Kent Tamura.
60076
60077        This patch changes input type "time" UI to use multiple field time
60078        input UI when build flag ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
60079        enabled.
60080
60081        No new tests. This patch doesn't change behavior for users, however,
60082        this patch changes behavior on layout tests. Tests will be added
60083        in another patch with runtime enabled feature flag is enabled.
60084
60085        Test expectations for following tests are updated:
60086         - fast/forms/time/time-input-visible-string.html
60087         - fast/forms/time/time-stepup-stepdown-from-renderer.html
60088
60089        * html/BaseDateAndTimeInputType.h:
60090        (BaseDateAndTimeInputType): Exposed serialize() to derived classes.
60091        * html/TimeInputType.cpp:
60092        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl):
60093        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl):
60094        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlMouseFocus):
60095        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
60096        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled):
60097        (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly):
60098        (WebCore::TimeInputType::TimeInputType):
60099        (WebCore::TimeInputType::~TimeInputType):
60100        (WebCore::TimeInputType::createRenderer):
60101        (WebCore::TimeInputType::createShadowSubtree):
60102        (WebCore::TimeInputType::destroyShadowSubtree):
60103        (WebCore::TimeInputType::forwardEvent):
60104        (WebCore::TimeInputType::disabledAttributeChanged):
60105        (WebCore::TimeInputType::handleKeydownEvent):
60106        (WebCore::TimeInputType::handleDOMActivateEvent):
60107        (WebCore::TimeInputType::isKeyboardFocusable):
60108        (WebCore::TimeInputType::isMouseFocusable):
60109        (WebCore::TimeInputType::minOrMaxAttributeChanged):
60110        (WebCore::TimeInputType::readonlyAttributeChanged):
60111        (WebCore::TimeInputType::isTextField):
60112        (WebCore::TimeInputType::setValue):
60113        (WebCore::TimeInputType::shouldUseInputMethod):
60114        (WebCore::TimeInputType::stepAttributeChanged):
60115        (WebCore::TimeInputType::updateEditElementLayout):
60116        (WebCore::TimeInputType::updateInnerTextValue):
60117        (WebCore::TimeInputType):
60118        * html/TimeInputType.h:
60119        (TimeInputType):
60120        (DateTimeEditControlOwnerImpl):
60121
601222012-08-14  Dean Jackson  <dino@apple.com>
60123
60124        Initial call to webkitRequestAnimationFrame returns 0, Spec indicates the handle should always be > 0
60125        https://bugs.webkit.org/show_bug.cgi?id=85819
60126
60127        Reviewed by James Robinson.
60128
60129        The callback id returned by requestAnimationFrame was beginning at zero, when the spec
60130        says it should be above one. Use a pre-increment rather than a post-increment.
60131
60132        Test: fast/animation/request-animation-frame-callback-id.html
60133
60134        * dom/ScriptedAnimationController.cpp:
60135        (WebCore::ScriptedAnimationController::registerCallback): Pre-increment rather than post-increment.
60136
601372012-08-14  Levi Weintraub  <leviw@chromium.org>
60138
60139        r125591 broke tests with SUBPIXEL_LAYOUT disabled
60140        https://bugs.webkit.org/show_bug.cgi?id=94027
60141
60142        Reviewed by Eric Seidel.
60143
60144        The previous patch to fix block preferred widths for subpixel layout broke ports
60145        without the flag enabled. This patch adds a static inline function --
60146        adjustFloatForSubPixelLayout -- that truncates with sub-pixel layout disabled, and
60147        ceil's to the nearest FractionalLayoutUnit when sub-pixel layout is enabled.
60148
60149        A block's max preferred width should be enough to layout the entire line without
60150        wrapping. r125591 addressed a bug whereby converting floats to LayoutUnits with sub-
60151        pixel layout enabled lost precision in certain cases, and could result in a line
60152        being layed out to slightly over the max preferred width of the block.
60153
60154        This patch reverts the behavior when sub-pixel layout is disabled to truncating
60155        sub-pixel values (such as those that originate in Length) when assigning them to
60156        LayoutUnits, and ceiling the length of the entire line to the next largest integer.
60157
60158        Covered by existing tests.
60159
60160        * rendering/RenderBlock.cpp:
60161        (WebCore):
60162        (WebCore::adjustFloatForSubPixelLayout):
60163        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
60164
601652012-08-14  Chris Evans  <cevans@google.com>
60166
60167        Handle the XPath / (root) operator correctly for nodes that aren't attached to the document.
60168        https://bugs.webkit.org/show_bug.cgi?id=36427
60169
60170        Reviewed by Abhishek Arya.
60171
60172        We now behave the same as Firefox 14.
60173        The consensus seems to be that the XPath spec is ambiguous for the case of detached nodes, and that using the fragment root is more intuitive than the document root for the case of detached nodes.
60174        For example, http://www.w3.org/TR/xpath/ section 2 "Location Paths" is only clear for attached nodes: "A / by itself selects the root node of the document containing the context node. If it is followed by a relative location path, then the location path selects the set of nodes that would be selected by the relative location path relative to the root node of the document containing the context node."
60175
60176        Test: fast/xpath/xpath-detached-nodes.html
60177
60178        * xml/XPathPath.cpp:
60179        (WebCore::XPath::LocationPath::evaluate): Jump to the root of the detached subtree instead of the parent document if the node isn't attached to the document.
60180
601812012-08-14  Alexandru Chiculita  <achicu@adobe.com>
60182
60183        [CSS Shaders][Chromium] Filters area applied twice when CustomFilterOperation is in the list
60184        https://bugs.webkit.org/show_bug.cgi?id=93900
60185
60186        Reviewed by James Robinson.
60187
60188        Whenever the platform cannot render a shader in hardware it will fallback to software. 
60189        In such cases, the platform should remove any old filters applied, so that the filters do not apply twice.
60190        
60191        Test: css3/filters/custom/filter-fallback-to-software.html
60192
60193        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
60194        (WebCore::GraphicsLayerChromium::setFilters):
60195
601962012-08-14  Alec Flett  <alecflett@chromium.org>
60197
60198        IndexedDB: add tracing to IDBLevelDBBackingStore
60199        https://bugs.webkit.org/show_bug.cgi?id=93914
60200
60201        Reviewed by Tony Chang.
60202
60203        Add a bunch of trace events to the lower level
60204        database layer, to separate database slowness
60205        from core IDB slowness.
60206
60207        Also moving findKeyInIndex into IDBLevelDBBackingStore to
60208        eventually make it const.
60209
60210        No new tests, just adding debug logging.
60211
60212        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
60213        (WebCore::IDBLevelDBBackingStore::open):
60214        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
60215        (WebCore::IDBLevelDBBackingStore::getObjectStores):
60216        (WebCore::IDBLevelDBBackingStore::createObjectStore):
60217        (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
60218        (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
60219        (WebCore):
60220        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
60221        (WebCore::IDBLevelDBBackingStore::clearObjectStore):
60222        (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
60223        (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
60224        (WebCore::IDBLevelDBBackingStore::getIndexes):
60225        (WebCore::IDBLevelDBBackingStore::createIndex):
60226        (WebCore::IDBLevelDBBackingStore::deleteIndex):
60227        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
60228        (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
60229        (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
60230        (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
60231        (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
60232        (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
60233        (WebCore::IDBLevelDBBackingStore::openIndexCursor):
60234        (WebCore::IDBLevelDBBackingStore::Transaction::commit):
60235        (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
60236        * Modules/indexeddb/IDBLevelDBBackingStore.h:
60237        (IDBLevelDBBackingStore):
60238        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
60239        (WebCore):
60240        * Modules/indexeddb/IDBTransaction.cpp:
60241        (WebCore::IDBTransaction::onAbort):
60242        (WebCore::IDBTransaction::onComplete):
60243
602442012-08-14  Hayato Ito  <hayato@chromium.org>
60245
60246        Refactor EventDispatcher, moving code to make actual changes easier to review later.
60247        https://bugs.webkit.org/show_bug.cgi?id=93959
60248
60249        Reviewed by Dimitri Glazkov.
60250
60251        No new tests - no new functionality.
60252
60253        * dom/EventDispatcher.cpp:
60254        (WebCore::EventDispatcher::dispatchScopedEvent):
60255        (WebCore):
60256        (WebCore::EventDispatcher::dispatchSimulatedClick):
60257
602582012-08-14  Kihong Kwon  <kihong.kwon@samsung.com>
60259
60260        Clear pattern to prevent timing problem between cancelVibration and vibrate
60261        https://bugs.webkit.org/show_bug.cgi?id=93957
60262
60263        Reviewed by Kentaro Hara.
60264
60265        There is a timing issue in the cancelVibration.
60266        Since vibrate works based on timer, cancelVibration might be called
60267        eariler than vibrate when cancelVibration is called just after vibrate call.
60268        It can be prevented from clearing m_pattern in the cancelVibration.
60269
60270        * Modules/vibration/Vibration.cpp:
60271        (WebCore::Vibration::cancelVibration):
60272
602732012-08-14  Alexandru Chiculita  <achicu@adobe.com>
60274
60275        Layout Test css3/filters/custom/custom-filter-animation.html is failing
60276        https://bugs.webkit.org/show_bug.cgi?id=91769
60277
60278        Reviewed by Dean Jackson.
60279
60280        Mountain Lion added support for accelerated filter animations, but CSS Shaders are still
60281        rendered in software mode. The setFilters method is using PlatformCALayer::filtersCanBeComposited to check
60282        if the filters can be handled in hardwawre, so I've reused that in the createFilterAnimationsFromKeyframes
60283        to check if the animations can also run in hardware.
60284
60285        Also the GraphicsContext3D doesn't update its own internal m_boundFBO when a framebuffer is deleted,
60286        so I've added that to the FECustomFilter. Otherwise, if the next framebuffer is created using the same
60287        identifier, bindFramebuffer will just return without calling the glBindFramebuffer because of this optimization.
60288
60289        The documentation for glDeleteFramebuffer says that the bound framebuffer is unbound before deleting it.
60290        This is not reproduceable from WebGL, because WebGLRenderingContext::deleteFramebuffer
60291        already knows to unbind the framebuffer when needed. However, I'm also adding that in GraphicsContext3DOpenGLCommon.cpp
60292        and efl/GraphicsContext3DPrivate.cpp, to make sure that m_boundFBO is not used for other purposes.
60293
60294        No new tests, this patch fixes a failing test.
60295
60296        * platform/graphics/ca/GraphicsLayerCA.cpp:
60297        (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
60298        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
60299        (WebCore::GraphicsContext3DPrivate::deleteFramebuffer):
60300        * platform/graphics/filters/FECustomFilter.cpp:
60301        (WebCore::FECustomFilter::deleteRenderBuffers):
60302        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
60303        (WebCore::GraphicsContext3D::deleteFramebuffer):
60304
603052012-08-14  Adam Barth  <abarth@webkit.org>
60306
60307        Delete Frame::domWindow() and Frame::existingDOMWindow()
60308        https://bugs.webkit.org/show_bug.cgi?id=93990
60309
60310        Reviewed by Eric Seidel.
60311
60312        These functions just call through to document()->domWindow(). This
60313        patch updates the callers so it's clearer what's going on.
60314
60315        * bindings/js/JSDOMBinding.cpp:
60316        (WebCore::shouldAllowAccessToFrame):
60317        (WebCore::printErrorMessageForFrame):
60318        * bindings/js/JSDocumentCustom.cpp:
60319        (WebCore::JSDocument::location):
60320        (WebCore::JSDocument::setLocation):
60321        * bindings/js/JSEventListener.cpp:
60322        (WebCore::JSEventListener::handleEvent):
60323        * bindings/js/ScriptCachedFrameData.cpp:
60324        (WebCore::ScriptCachedFrameData::restore):
60325        * bindings/js/ScriptController.cpp:
60326        (WebCore::ScriptController::createWindowShell):
60327        * bindings/objc/DOMAbstractView.mm:
60328        (core):
60329        * bindings/v8/NPV8Object.cpp:
60330        (WebCore::toV8Context):
60331        * bindings/v8/ScriptController.cpp:
60332        (WebCore::createScriptObject):
60333        (WebCore::ScriptController::createScriptObjectForPluginElement):
60334        * bindings/v8/V8DOMWindowShell.cpp:
60335        (WebCore::V8DOMWindowShell::initContextIfNeeded):
60336        * bindings/v8/V8IsolatedContext.cpp:
60337        (WebCore::V8IsolatedContext::V8IsolatedContext):
60338        * bindings/v8/V8Proxy.cpp:
60339        (WebCore::V8Proxy::retrieveFrame):
60340        * bindings/v8/custom/V8DOMWindowCustom.cpp:
60341        (WebCore::V8DOMWindow::indexedPropertyGetter):
60342        (WebCore::V8DOMWindow::namedPropertyGetter):
60343        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
60344        (WebCore::V8Document::locationAccessorGetter):
60345        (WebCore::V8Document::locationAccessorSetter):
60346        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
60347        (WebCore::V8HTMLDocument::GetNamedProperty):
60348        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
60349        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
60350        * dom/Document.cpp:
60351        (WebCore::printNavigationErrorMessage):
60352        * dom/ViewportArguments.cpp:
60353        (WebCore::reportViewportWarning):
60354        * editing/AlternativeTextController.cpp:
60355        (WebCore::AlternativeTextController::insertDictatedText):
60356        * editing/Editor.cpp:
60357        (WebCore::Editor::pasteAsPlainText):
60358        (WebCore::Editor::pasteAsFragment):
60359        (WebCore::Editor::setComposition):
60360        * history/PageCache.cpp:
60361        (WebCore::logCanCacheFrameDecision):
60362        (WebCore::PageCache::canCachePageContainingThisFrame):
60363        * html/HTMLFormElement.cpp:
60364        (WebCore::HTMLFormElement::validateInteractively):
60365        * html/HTMLFrameOwnerElement.cpp:
60366        (WebCore::HTMLFrameOwnerElement::contentWindow):
60367        * html/canvas/WebGLRenderingContext.cpp:
60368        (WebCore):
60369        (WebCore::WebGLRenderingContext::printWarningToConsole):
60370        * inspector/InspectorDOMStorageAgent.cpp:
60371        (WebCore::InspectorDOMStorageAgent::storageId):
60372        * loader/DocumentLoader.cpp:
60373        (WebCore::DocumentLoader::checkLoadComplete):
60374        * loader/DocumentWriter.cpp:
60375        (WebCore::DocumentWriter::begin):
60376        * loader/FrameLoader.cpp:
60377        (WebCore::FrameLoader::stopLoading):
60378        (WebCore::FrameLoader::didOpenURL):
60379        (WebCore::FrameLoader::checkIfDisplayInsecureContent):
60380        (WebCore::FrameLoader::checkIfRunInsecureContent):
60381        (WebCore::FrameLoader::reportLocalLoadFailed):
60382        (WebCore::FrameLoader::prepareForCachedPageRestore):
60383        (WebCore::FrameLoader::open):
60384        (WebCore::FrameLoader::fireBeforeUnloadEvent):
60385        * loader/MainResourceLoader.cpp:
60386        (WebCore::MainResourceLoader::didReceiveResponse):
60387        * loader/appcache/ApplicationCacheGroup.cpp:
60388        (WebCore::ApplicationCacheGroup::abort):
60389        (WebCore::ApplicationCacheGroup::didReceiveResponse):
60390        (WebCore::ApplicationCacheGroup::didFinishLoading):
60391        (WebCore::ApplicationCacheGroup::didFail):
60392        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
60393        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
60394        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
60395        * loader/cache/CachedResourceLoader.cpp:
60396        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
60397        * page/DOMWindow.cpp:
60398        (WebCore::DOMWindow::isCurrentlyDisplayedInFrame):
60399        (WebCore::DOMWindow::self):
60400        (WebCore::DOMWindow::opener):
60401        (WebCore::DOMWindow::parent):
60402        (WebCore::DOMWindow::top):
60403        (WebCore::DOMWindow::createWindow):
60404        (WebCore::DOMWindow::open):
60405        * page/DOMWindowProperty.cpp:
60406        (WebCore::DOMWindowProperty::DOMWindowProperty):
60407        (WebCore::DOMWindowProperty::reconnectFrameFromPageCache):
60408        * page/DragController.cpp:
60409        (WebCore::DragController::dispatchTextInputEventFor):
60410        * page/EventHandler.cpp:
60411        (WebCore::EventHandler::handleTextInputEvent):
60412        * page/Frame.cpp:
60413        * page/Frame.h:
60414        (Frame):
60415        * page/Location.cpp:
60416        (WebCore::Location::replace):
60417        (WebCore::Location::reload):
60418        (WebCore::Location::setLocation):
60419        * storage/StorageEventDispatcher.cpp:
60420        (WebCore::StorageEventDispatcher::dispatch):
60421        * svg/SVGDocumentExtensions.cpp:
60422        (WebCore::reportMessage):
60423        * xml/XSLStyleSheetLibxslt.cpp:
60424        (WebCore::XSLStyleSheet::parseString):
60425        * xml/XSLTProcessorLibxslt.cpp:
60426        (WebCore::docLoaderFunc):
60427        * xml/XSLTProcessorQt.cpp:
60428        (WebCore::XSLTMessageHandler::handleMessage):
60429
604302012-08-14  Mike West  <mkwst@chromium.org>
60431
60432        Tighten up parsing the 'script-nonce' CSP directive value.
60433        https://bugs.webkit.org/show_bug.cgi?id=93783
60434
60435        Reviewed by Adam Barth.
60436
60437        Currently we're accepting any non-whitespace character. This patch
60438        limits the valid characters to VCHAR minus ',' and ';', and pulls the
60439        validity check out into a named function for clarity.
60440
60441        Test: http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed.html
60442
60443        * page/ContentSecurityPolicy.cpp:
60444        (WebCore::CSPDirectiveList::parseScriptNonce):
60445
604462012-08-14  Adam Barth  <abarth@webkit.org>
60447
60448        Delete DOMWindow::m_url
60449        https://bugs.webkit.org/show_bug.cgi?id=93989
60450
60451        Reviewed by Eric Seidel.
60452
60453        There's no reason for DOMWindow to keep a separate copy of the
60454        Document's URL now that there is a predictable way to get a Document
60455        from a DOMWindow.
60456
60457        * loader/DocumentWriter.cpp:
60458        (WebCore::DocumentWriter::begin):
60459        * loader/FrameLoader.cpp:
60460        (WebCore::FrameLoader::open):
60461        * page/DOMWindow.cpp:
60462        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
60463        * page/DOMWindow.h:
60464        (DOMWindow):
60465
604662012-08-14  Nikhil Bhargava  <nbhargava@google.com>
60467
60468        De-inline stuff from RenderStyle.h
60469        https://bugs.webkit.org/show_bug.cgi?id=94019
60470
60471        Reviewed by Eric Seidel.
60472
60473        De-inline things from RenderStyle.h in preparation of fixing a series of
60474        errant includes.
60475
60476        No new tests. Doesn't change functionality
60477
60478        * WebCore.exp.in:
60479        * rendering/style/RenderStyle.cpp:
60480        (WebCore::RenderStyle::listStyleImage):
60481        (WebCore::RenderStyle::setListStyleImage):
60482        (WebCore):
60483        (WebCore::RenderStyle::color):
60484        (WebCore::RenderStyle::visitedLinkColor):
60485        (WebCore::RenderStyle::setColor):
60486        (WebCore::RenderStyle::setVisitedLinkColor):
60487        (WebCore::RenderStyle::horizontalBorderSpacing):
60488        (WebCore::RenderStyle::verticalBorderSpacing):
60489        (WebCore::RenderStyle::setHorizontalBorderSpacing):
60490        (WebCore::RenderStyle::setVerticalBorderSpacing):
60491        (WebCore::RenderStyle::font):
60492        (WebCore::RenderStyle::fontMetrics):
60493        (WebCore::RenderStyle::fontDescription):
60494        (WebCore::RenderStyle::fontSize):
60495        (WebCore::RenderStyle::wordSpacing):
60496        (WebCore::RenderStyle::letterSpacing):
60497        (WebCore::RenderStyle::setFontDescription):
60498        (WebCore::RenderStyle::lineHeight):
60499        (WebCore::RenderStyle::setLineHeight):
60500        (WebCore::RenderStyle::computedLineHeight):
60501        (WebCore::RenderStyle::setWordSpacing):
60502        (WebCore::RenderStyle::setLetterSpacing):
60503        * rendering/style/RenderStyle.h:
60504
605052012-08-14  Andrei Onea  <onea@adobe.com>
60506
60507        [CSSRegions]Region overset property is incorectly computed when content has negative letter spacing and is flowed near to the edge of a region
60508        https://bugs.webkit.org/show_bug.cgi?id=92506
60509
60510        Reviewed by Eric Seidel.
60511
60512        When the content which is flowed inside a region creates visual overflow in
60513        the writing direction, the overflow rect is also extended in the other direction, and
60514        that forces regionOverset to become "fit" for all regions.
60515
60516        Tests: fast/regions/element-region-overset-state-negative-letter-spacing.html
60517               fast/regions/element-region-overset-state-vertical-rl-negative-letter-spacing.html
60518
60519        * rendering/RenderFlowThread.cpp:
60520        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
60521
605222012-08-14  Florin Malita  <fmalita@chromium.org>
60523
60524        beginElement() does not observe updated animation attributes
60525        https://bugs.webkit.org/show_bug.cgi?id=93972
60526
60527        Reviewed by Dirk Schulze.
60528
60529        The SVG animation attributes 'from', 'to' and 'by' should be registered as supported
60530        SVGSMILElement attributes in order to trigger animationAttributeChanged() on dynamic
60531        updates.
60532
60533        Test: svg/animations/updated-attributes.html
60534
60535        * svg/SVGAnimationElement.cpp:
60536        (WebCore::SVGAnimationElement::updateAnimation):
60537        Minor optimization - avoid recalculating animationMode().
60538
60539        * svg/animation/SVGSMILElement.cpp:
60540        (WebCore::SVGSMILElement::isSupportedAttribute):
60541        Register 'from', 'to' and 'by' as supported SVGSMILElement attributes.
60542
605432012-08-14  Filip Spacek  <fspacek@rim.com>
60544
60545        [BlackBerry] Don't crash on OOM in AC
60546        https://bugs.webkit.org/show_bug.cgi?id=93999
60547
60548        Reviewed by George Staikos.
60549
60550        Internally reviewed by George Staikos.
60551
60552        Fail gracefully in case we fail to allocate the bitmap
60553        for the AC layer contents.
60554
60555        * platform/graphics/blackberry/InstrumentedPlatformCanvas.h:
60556        (WebCore::InstrumentedPlatformCanvas::InstrumentedPlatformCanvas):
60557        * platform/graphics/blackberry/LayerWebKitThread.cpp:
60558        (WebCore::LayerWebKitThread::paintContents):
60559
605602012-08-14  Lauro Neto  <lauro.neto@openbossa.org>
60561
60562        Convert signals/slots to Q_* macros.
60563
60564        [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals
60565        https://bugs.webkit.org/show_bug.cgi?id=93996
60566
60567        Reviewed by Kenneth Rohde Christiansen.
60568
60569        Change usage of keyword-conflicting 'signals' and 'slots' for
60570        Q_SIGNALS and Q_SLOTS macro.
60571
60572        * bridge/testqtbindings.cpp:
60573        (MyObject):
60574        * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
60575        * platform/graphics/qt/MediaPlayerPrivateQt.h:
60576        (MediaPlayerPrivateQt):
60577        * platform/network/qt/DnsPrefetchHelper.h:
60578        (DnsPrefetchHelper):
60579        * platform/network/qt/NetworkStateNotifierPrivate.h:
60580        (NetworkStateNotifierPrivate):
60581        * platform/network/qt/QNetworkReplyHandler.h:
60582        (QNetworkReplyHandler):
60583        * platform/network/qt/QtMIMETypeSniffer.h:
60584        (QtMIMETypeSniffer):
60585        * platform/network/qt/SocketStreamHandlePrivate.h:
60586        (SocketStreamHandlePrivate):
60587        * platform/qt/GamepadsQt.cpp:
60588        (GamepadDeviceLinuxQt):
60589        (GamepadsQt):
60590        * platform/qt/SharedTimerQt.cpp:
60591        (SharedTimerQt):
60592
605932012-08-14  Andrei Onea  <onea@adobe.com>
60594
60595        [CSSRegions]regionOverset is computed as "overset" even though the region is not the last in the chain
60596        https://bugs.webkit.org/show_bug.cgi?id=93102
60597
60598        Reviewed by Eric Seidel.
60599
60600        Making Element.webkitRegionOverset return "overset" only for the last region in a region chain, 
60601        if the content cannot fit inside it, to reflect current spec. http://www.w3.org/TR/css3-regions/#dom-region-regionoverset
60602
60603        * rendering/RenderFlowThread.cpp:
60604        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
60605
606062012-08-14  Jan Keromnes  <janx@linux.com>
60607
60608        Web Inspector: Render breakpoint gutter markers and execution line in CodeMirrorTextEditor
60609        https://bugs.webkit.org/show_bug.cgi?id=93686
60610
60611        Reviewed by Pavel Feldman.
60612
60613        Divided TextEditor.addDecoration into addBreakpoint, setExecutionLine
60614        and addDecoration. Same for removeDecoration. Render breakpoint
60615        markers and execution line in CodeMirrorTextEditor.
60616
60617        * inspector/front-end/CodeMirrorTextEditor.js:
60618        (WebInspector.CodeMirrorTextEditor):
60619        (WebInspector.CodeMirrorTextEditor.prototype._onGutterClick):
60620        (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
60621        (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
60622        (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
60623        (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
60624        (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
60625        (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
60626        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
60627        (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
60628        (WebInspector.CodeMirrorTextEditor.prototype.removeAttribute):
60629        * inspector/front-end/DefaultTextEditor.js:
60630        (WebInspector.DefaultTextEditor.prototype._onMouseDown):
60631        (WebInspector.DefaultTextEditor.prototype.addBreakpoint):
60632        (WebInspector.DefaultTextEditor.prototype.removeBreakpoint):
60633        (WebInspector.DefaultTextEditor.prototype.setExecutionLine):
60634        (WebInspector.DefaultTextEditor.prototype.clearExecutionLine):
60635        (WebInspector.DefaultTextEditor.prototype.addDecoration):
60636        (WebInspector.DefaultTextEditor.prototype.removeDecoration):
60637        * inspector/front-end/JavaScriptSourceFrame.js:
60638        (WebInspector.JavaScriptSourceFrame):
60639        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
60640        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
60641        (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
60642        (WebInspector.JavaScriptSourceFrame.prototype.clearExecutionLine):
60643        (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
60644        * inspector/front-end/TextEditor.js:
60645        (WebInspector.TextEditor.prototype.addBreakpoint):
60646        (WebInspector.TextEditor.prototype.removeBreakpoint):
60647        (WebInspector.TextEditor.prototype.setExecutionLine):
60648        (WebInspector.TextEditor.prototype.clearExecutionLine):
60649        (WebInspector.TextEditor.prototype.addDecoration):
60650        (WebInspector.TextEditor.prototype.removeDecoration):
60651        * inspector/front-end/cmdevtools.css:
60652        (.CodeMirror):
60653        (.cm-highlight):
60654        (@-webkit-keyframes fadeout):
60655        (to):
60656        (.cm-breakpoint):
60657        (.cm-breakpoint-disabled):
60658        (.cm-breakpoint-conditional):
60659        (.cm-execution-line):
60660        (.webkit-html-message-bubble):
60661        (.webkit-html-warning-message):
60662        (.webkit-html-error-message):
60663        (.webkit-html-message-line):
60664        (.webkit-html-message-line-hover):
60665
606662012-08-13  Adrienne Walker  <enne@google.com>
60667
60668        REGRESSION (r109851): Video controls do not render
60669        https://bugs.webkit.org/show_bug.cgi?id=93859
60670
60671        Reviewed by Simon Fraser.
60672
60673        Because video layers can't act as an ancestor composited layer whose
60674        backing can be shared by child layers, any child layer of a video
60675        layer needs to be put into its own composited layer. Because this is
60676        technically overlap, the "overlap" indirect compositing reason is
60677        reused for this case.
60678
60679        Test: compositing/video/video-controls-layer-creation.html
60680
60681        * rendering/RenderLayerCompositor.cpp:
60682        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
60683
606842012-08-14  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
60685
60686        WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks
60687        https://bugs.webkit.org/show_bug.cgi?id=42332
60688
60689        Reviewed by Kenneth Rohde Christiansen.
60690
60691        Provide build for mac.
60692
60693        * WebCore.exp.in: Added __ZNK7WebCore19ResourceRequestBase20firstPartyForCookiesEv.
60694
606952012-08-14  Adam Barth  <abarth@webkit.org>
60696
60697        DOMWindow::document() should not reach through Frame
60698        https://bugs.webkit.org/show_bug.cgi?id=27640
60699
60700        Reviewed by Eric Seidel.
60701
60702        Originally, the lifetime of DOMWindow was similar to that of Frame in
60703        that it was reused for each document that was displayed in the Frame.
60704        To fix some tricky security issues, all modern browsers use a "split
60705        window" architecture whereby the DOMWindow is not reused by each
60706        Document in a Frame. Instead a JavaScript "window shell" object
60707        redirects JavaScript references to the active Document's DOMWindow.
60708
60709        When we implemented split windows, we left DOMWindow attached to the
60710        Frame and attempted to keep it in sync with the Document via a lot of
60711        delicate code. One of the main problems with this approach is that
60712        finding the DOMWindow associated with a Document or the Document
60713        associated with a DOMWindow required traversing through the Frame.
60714        Because there is a many-to-one relationship between both Documents and
60715        Frames (as well as DOMWindows and Frames), this traversal is error
60716        prone and not always available (e.g., for inactive documents).
60717
60718        This patch moves the "owning" reference for DOMWindow to Document so
60719        that we can directly traverse from Document to DOMWindow. For
60720        traversing from DOMWindow to Document, each DOMWindow keeps a Document
60721        pointer via a ContextDestructionObserver base class.
60722
60723        The main sublties in this patch are related to situations in which
60724        there isn't precisely a one-to-one relationship between Documents and
60725        DOMWindows. Previously, these situations were handled implicitly by the
60726        "flex and slop" of having separate Document and DOMWindow pointers in
60727        Frame. In this patch, these sublties are made explicit via
60728        Document::takeDOMWindowFrom, which explicitly transfers the DOMWindow
60729        (as well as ASSERTs that all the relevant objects exist in a sensible
60730        constellation).
60731
60732        * WebCore.exp.in:
60733            - These functions are no longer exported because they're inline.
60734        * bindings/js/ScriptController.cpp:
60735        (WebCore::ScriptController::clearWindowShell):
60736        * bindings/js/ScriptController.h:
60737        (ScriptController):
60738            - clearWindowShell now explicitly takes the new DOMWindow that will
60739              be pointed to by the WindowShell. Previously, clearWindowShell
60740              would implicitly create the new DOMWindow by accessing
60741              Frame::domWindow (which used to lazily create the DOMWindow).
60742        * bindings/v8/BindingState.cpp:
60743        (WebCore::currentDocument):
60744        * bindings/v8/BindingState.h:
60745        (WebCore):
60746            - currentDocument provides a directly path from the current
60747              v8::Context to the Document (by way of DOMWindow). Previously,
60748              code transited via the Frame using currentFrame.
60749        * bindings/v8/ScriptController.cpp:
60750        (WebCore::ScriptController::clearWindowShell):
60751        * bindings/v8/ScriptController.h:
60752        (ScriptController):
60753            - Mirror JSC changes to clearWindowShell.
60754        * bindings/v8/V8Utilities.cpp:
60755        (WebCore::getScriptExecutionContext):
60756            - Update getScriptExecutionContext to transit directly from the
60757              DOMWindow to the Document rather than detouring via the Frame.
60758        * dom/ContextDestructionObserver.cpp:
60759        (WebCore::ContextDestructionObserver::ContextDestructionObserver):
60760        (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
60761        (WebCore):
60762        (WebCore::ContextDestructionObserver::observeContext):
60763        * dom/ContextDestructionObserver.h:
60764        (ContextDestructionObserver):
60765            - When we transfer a DOMWindow from one Document to another, we
60766              need to update the Document pointer in the DOMWindow to point to
60767              the new Document. The DOMWindow holds the Document pointer via
60768              ContextDestructionObserver, so this patch teaches
60769              ContextDestructionObserver how to change which
60770              ScriptExecutionContext it is observing. This code mirrors similar
60771              code in FrameDestructionObserver.
60772        * dom/Document.cpp:
60773        (WebCore::Document::~Document):
60774        (WebCore::Document::detach):
60775        (WebCore::Document::createDOMWindow):
60776            - createDOMWindow now explicitly creates the DOMWindow. Previously,
60777              we created the DOMWindow implicitly in Frame::domWindow when it
60778              was first accessed.
60779        (WebCore::Document::takeDOMWindowFrom):
60780            - takeDOMWindowFrom explicitly transfers the DOMWindow from one
60781              Document to another. The main benefit of this function is the
60782              ASSERTs that ensure that the Document, DOMWindow, and Frame all
60783              point to each other the correct configuration.
60784        (WebCore::Document::didUpdateSecurityOrigin):
60785            - We no longer need to keep the SecurityOrigin pointer in DOMWindow
60786              in sync with the Document because DOMWindow no longer has a
60787              SecurityOrigin object.
60788        * dom/Document.h:
60789        (Document):
60790        (WebCore::Document::domWindow):
60791        * history/CachedFrame.cpp:
60792        (WebCore::CachedFrame::CachedFrame):
60793        (WebCore::CachedFrame::destroy):
60794        * history/CachedFrame.h:
60795        (CachedFrameBase):
60796            - Previously, CachedFrame held the Document and the DOMWindow with
60797              separate pointers. Now, the CachedFrame holds the DOMWnidow via
60798              the Document, which makes adding and removing Documents from the
60799              PageCache simpler because we don't need to keep the Frame's
60800              DOMWindow pointer synchronized.
60801        * loader/DocumentWriter.cpp:
60802        (WebCore::DocumentWriter::begin):
60803            - begin now explicitly creates the DOMWindow and transfers
60804              DOMWindow when performing a "secure transition." Previously, both
60805              of these processes were handled implicitly: the DOMWindow was
60806              created implicitly by Frame::domWindow, and the DOMWindow was
60807              reused during navigation by not clearing Frame::m_domWindow.
60808        * loader/FrameLoader.cpp:
60809        (WebCore::FrameLoader::cancelAndClear):
60810        (WebCore::FrameLoader::clear):
60811            - These functions now pass the new Document so that we have access
60812              to the new DOMWindow in clearDOMWindowShell.
60813        (WebCore::FrameLoader::setOpener):
60814            - We no longer need to keep the DOMWindow's SecurityOrigin in sync
60815              with the Document's SecurityOrigin because DOMWindow no longer
60816              has a duplicate SecurityOrigin pointer.
60817        (WebCore::FrameLoader::open):
60818            - We no longer need to keep the Frame::m_domWindow in sync with the
60819              Document because the Document carries its own DOMWindow.
60820        * loader/FrameLoader.h:
60821        (FrameLoader):
60822        * page/DOMWindow.cpp:
60823        (WebCore::DOMWindow::DOMWindow):
60824            - DOMWindow now uses Document as its primary context object. In a
60825              future patch, we should remove the FrameDestructionObserver base
60826              class and instead access the frame via DOMWindow::document().
60827        (WebCore::DOMWindow::didSecureTransitionTo):
60828            - Notify the DOMWindow that it is now associated with a new
60829              Document.
60830        (WebCore::DOMWindow::scriptExecutionContext):
60831        (WebCore::DOMWindow::document):
60832        (WebCore::DOMWindow::securityOrigin):
60833            - These functions now retrieve the Document directly rather than
60834              transiting via the Frame.
60835        * page/DOMWindow.h:
60836        (WebCore::DOMWindow::create):
60837        (DOMWindow):
60838        * page/Frame.cpp:
60839        (WebCore::Frame::setDocument):
60840            - Add more ASSERTs that the Document and its DOMWindow are properly
60841              wired up to this Frame.
60842        (WebCore::Frame::domWindow):
60843            - Rather than lazily creating the DOMWindow, this function now just
60844              accesses the already-created DOMWindow on Document. Eventually,
60845              all callers should retreive the DOMWindow from the Document
60846              directly.
60847        * page/Frame.h:
60848        (WebCore::Frame::existingDOMWindow):
60849            - The DOMWindow always exists, so there is no distinction between
60850              domWindow() and existingDOMWindow().
60851        * xml/XMLHttpRequest.cpp:
60852        (WebCore::XMLHttpRequest::open):
60853            - Previously, open would exit early if it was unable to find its
60854              ScriptExecutionContext (e.g., if the ScriptExecutionContext was
60855              inactive). Now we can always locate the ScriptExecutionContext
60856              and so we need to test whether the ScriptExecutionContext is
60857              still attached to the Page before accessing Settings. Tests
60858              verify that the platform-visible behaviors of XMLHttpRequest are
60859              unchanged, even for XMLHttpRequest constructors associated with
60860              inactive Documents.
60861        * xml/XSLTProcessor.cpp:
60862        (WebCore::XSLTProcessor::createDocumentFromSource):
60863            - Make it explicit that XSLT re-uses the DOMWindow from the source
60864              Document in the transformed Document.
60865
608662012-08-14  Levi Weintraub  <leviw@chromium.org>
60867
60868        Accumulating LayoutUnits with floats for determining block preferred width can lead to wrapping
60869        https://bugs.webkit.org/show_bug.cgi?id=93513
60870
60871        Reviewed by Eric Seidel.
60872
60873        Sub-pixel values from floats are subject to small losses in precision when accumulated with
60874        floating point values, as we do in RenderBlock. This patch adds a new method to FractionalLayoutUnit --
60875        ceilToFloat -- which guarantees us a floating point value at least as big as our original LayoutUnit
60876        value, and uses it along with ceiledLayoutUnit to avoid underprovisioning RenderBlock's preferred
60877        widths due to lost precision.
60878
60879        Test: fast/sub-pixel/block-preferred-widths-with-sub-pixel-floats.html
60880
60881        * platform/FractionalLayoutUnit.h:
60882        (WebCore::FractionalLayoutUnit::ceilToFloat): Returns a float value the same or larger than the
60883        FractionalLayoutUnit value.
60884        (FractionalLayoutUnit):
60885        (WebCore::FractionalLayoutUnit::epsilon): Now returns 0 when sub-pixel is disabled.
60886        * rendering/RenderBlock.cpp:
60887        (WebCore::RenderBlock::computeLogicalLocationForFloat): Adding a LayoutUnit::epsilon fudge factor
60888        for fitting floats. This is probably necessary due to precision being lost elsewhere.
60889        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): Ensure no precision is lost due to conversion
60890        when accumulating our min/max width with floats.
60891
608922012-08-14  Jer Noble  <jer.noble@apple.com>
60893
60894        Fullscreen/normal volume sliders don't stay in sync
60895        https://bugs.webkit.org/show_bug.cgi?id=93867
60896
60897        Reviewed by Eric Carlson.
60898
60899        Change the full screen volume slider, if present, when the media element's volume
60900        changes.
60901
60902        Test: media/video-controls-fullscreen-volume.html
60903
60904        * html/shadow/MediaControlRootElement.cpp:
60905        (WebCore::MediaControlRootElement::changedVolume):
60906
609072012-08-14  Olivier Blin  <olivier.blin@softathome.com>
60908
60909        Remove unused yyparse method in CSSParser
60910        https://bugs.webkit.org/show_bug.cgi?id=93986
60911
60912        Reviewed by Darin Adler.
60913
60914        This method is unused and not even declared.
60915
60916        No new tests, it just removes unused code.
60917
60918        * css/CSSParser.h:
60919
609202012-08-14  Zan Dobersek  <zandobersek@gmail.com>
60921
60922        [Gtk] Include all files guarded by ENABLE_* guards in Source/WebCore/GNUmakefile.list.am into the build
60923        https://bugs.webkit.org/show_bug.cgi?id=90696
60924
60925        Reviewed by Philippe Normand.
60926
60927        Include all files in the Autotools build that are currently guarded by ENABLE_* guards in
60928        the WebCore GNUmakefile.list.am, regardless of the feature being enabled. Compilation should
60929        rely on proper use of guards inside source files and preprocessor work to keep the disabled
60930        features out.
60931
60932        The only exception left is the ENABLE_WEBGL guard that includes the ANGLE into compilation
60933        only if WebGL feature is enabled.
60934
60935        No new tests - no new functionality.
60936
60937        * GNUmakefile.am:
60938        * GNUmakefile.list.am:
60939        * bindings/gobject/GNUmakefile.am: Add StorageInfo to the DOM bindings, despite
60940        the feature being currently disabled.
60941
609422012-08-14  Gregg Tavares  <gman@google.com>
60943
60944        Plumb through EXT_debug_marker entry points
60945        https://bugs.webkit.org/show_bug.cgi?id=93860
60946
60947        Reviewed by Kenneth Russell.
60948
60949        insertEventMarkerEXT, pushGroupMarkerEXT, popGroupMarkerEXT,
60950        are all entry points exposed by the OpenGL ES
60951        EXT_debug_marker extension
60952
60953        No new tests as no new functionality exposed to web.
60954
60955        * html/canvas/WebGLRenderingContext.cpp:
60956        (WebCore):
60957        (WebCore::WebGLRenderingContext::create):
60958        * platform/chromium/support/Extensions3DChromium.cpp:
60959        (WebCore::Extensions3DChromium::insertEventMarkerEXT):
60960        (WebCore):
60961        (WebCore::Extensions3DChromium::pushGroupMarkerEXT):
60962        (WebCore::Extensions3DChromium::popGroupMarkerEXT):
60963        * platform/graphics/Extensions3D.h:
60964        (Extensions3D):
60965        * platform/graphics/chromium/Extensions3DChromium.h:
60966        (Extensions3DChromium):
60967        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
60968        (WebCore::Extensions3DOpenGL::insertEventMarkerEXT):
60969        (WebCore):
60970        (WebCore::Extensions3DOpenGL::pushGroupMarkerEXT):
60971        (WebCore::Extensions3DOpenGL::popGroupMarkerEXT):
60972        * platform/graphics/opengl/Extensions3DOpenGL.h:
60973        (Extensions3DOpenGL):
60974        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
60975        (WebCore::Extensions3DOpenGLES::insertEventMarkerEXT):
60976        (WebCore):
60977        (WebCore::Extensions3DOpenGLES::pushGroupMarkerEXT):
60978        (WebCore::Extensions3DOpenGLES::popGroupMarkerEXT):
60979        * platform/graphics/opengl/Extensions3DOpenGLES.h:
60980        (Extensions3DOpenGLES):
60981
609822012-06-24  Robert Hogan  <robert@webkit.org>
60983
60984        CSS 2.1 failure: Word-spacing affects each space and non-breaking space
60985        https://bugs.webkit.org/show_bug.cgi?id=89826
60986
60987        Reviewed by Eric Seidel.
60988
60989        Add word spacing to consecutive spaces in a run per http://www.w3.org/TR/CSS21/text.html#spacing-props.
60990
60991        Test: fast/css/word-spacing-characters.html
60992              fast/css/word-spacing-characters-complex-text.html
60993              fast/css/word-spacing-characters-linebreak.html
60994              css2.1/20110323/word-spacing-characters-002.htm
60995              css2.1/20110323/word-spacing-characters-003.htm
60996              css2.1/20110323/word-spacing-remove-space-001.htm
60997              css2.1/20110323/word-spacing-remove-space-002.htm
60998              css2.1/20110323/word-spacing-remove-space-003.htm
60999              css2.1/20110323/word-spacing-remove-space-004.htm
61000              css2.1/20110323/word-spacing-remove-space-005.htm
61001              css2.1/20110323/word-spacing-remove-space-006.htm
61002              css2.1/20110323/c541-word-sp-001.htm
61003              css2.1/20110323/c541-word-sp-000.htm
61004
61005        * platform/graphics/WidthIterator.cpp:
61006        (WebCore::WidthIterator::advance): All spaces (ordinary space or &nbsp;) get word-spacing added, even
61007          if they are consecutive.
61008        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
61009        (WebCore::HarfBuzzShaperBase::isWordEnd): ditto, but for the complex text case on Chromium. Had to use
61010          m_run rather than m_normalizedBuffer here as m_normalizedBuffer turns tabs into spaces! Unlike the simple
61011          text path, '\n' gets word-spacing - I observed this from fast/text/atsui-spacing-features.html but can't
61012          find it specified anywhere.
61013        * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
61014        (WebCore::HarfBuzzShaperBase::isCodepointSpace):
61015        * rendering/RenderBlockLineLayout.cpp:
61016        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Tested by word-spacing-linebreak.html
61017
610182012-08-14  Antoine Labour  <piman@chromium.org>
61019
61020        [chromium] race between CCLayerTreeHostImpl::releaseContentsTextures and CCThreadProxy::beginFrameCompleteOnImplThread
61021        https://bugs.webkit.org/show_bug.cgi?id=93684
61022
61023        Reviewed by James Robinson.
61024
61025        This keeps track of whether we're between the beginFrame post and the
61026        commit when releaseContentsTextures comes, and if that is the case, we
61027        prune the texture uploads, keep the "textures purged" flag on and kick a
61028        new commit.
61029
61030        Added CCLayerTreeHostTestEvictTextures test.
61031
61032        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
61033        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
61034        (WebCore::CCLayerTreeHostImpl::beginFramePosted):
61035        (WebCore):
61036        (WebCore::CCLayerTreeHostImpl::commitComplete):
61037        (WebCore::CCLayerTreeHostImpl::canDraw):
61038        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
61039        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
61040        (CCLayerTreeHostImpl):
61041        (WebCore::CCLayerTreeHostImpl::contentsTexturesPurged):
61042        (WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastBeginFrame):
61043        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
61044        (WebCore::CCSingleThreadProxy::stop):
61045        (WebCore::CCSingleThreadProxy::commitAndComposite):
61046        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
61047        (CCTextureUpdateController):
61048        * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp:
61049        (WebCore::CCTextureUpdateQueue::clearUploads):
61050        (WebCore):
61051        * platform/graphics/chromium/cc/CCTextureUpdateQueue.h:
61052        (CCTextureUpdateQueue):
61053        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
61054        (WebCore::CCThreadProxy::scheduledActionBeginFrame):
61055        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
61056        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
61057
610582012-08-14  Yong Li  <yoli@rim.com>
61059
61060        [BlackBerry] Pass URL String's 8-bit buffer directly to platform layer when possible
61061        https://bugs.webkit.org/show_bug.cgi?id=93861
61062
61063        Reviewed by Rob Buis.
61064
61065        PR# 187605.
61066        URL strings and HTTP header strings usually use 8-bit buffers internally. We can
61067        just pass the buffers to platform calls when only Latin1 strings are needed.
61068
61069        * platform/blackberry/ReadOnlyLatin1String.h: Added.
61070        (WebCore):
61071        (ReadOnlyLatin1String): A utility class that uses either WTF::CString or WTF::String's 8-bit buffer.
61072        (WebCore::ReadOnlyLatin1String::ReadOnlyLatin1String): Can only be constructed with WTF::String for now.
61073        (WebCore::ReadOnlyLatin1String::data):
61074        (WebCore::ReadOnlyLatin1String::length):
61075        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
61076        (WebCore::ResourceRequest::initializePlatformRequest):
61077        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
61078        (WebCore::SocketStreamHandle::SocketStreamHandle):
61079
610802012-08-14  Christophe Dumez  <christophe.dumez@intel.com>
61081
61082        Fix  LayoutTests/canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html
61083        https://bugs.webkit.org/show_bug.cgi?id=92974
61084
61085        Reviewed by Kenneth Rohde Christiansen.
61086
61087        Replace space characters by U+0020 SPACE characters in
61088        CanvasRenderingContext2D::drawTextInternal() in order to
61089        comply with the HTML Canvas 2D Context specification:
61090        - http://www.w3.org/TR/2dcontext/#drawing-text-to-the-canvas
61091
61092        No new tests, already tested by canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html.
61093
61094        * html/canvas/CanvasRenderingContext2D.cpp:
61095        (WebCore::replaceCharacterInString):
61096        (WebCore):
61097        (WebCore::CanvasRenderingContext2D::drawTextInternal):
61098
610992012-08-14  George Staikos  <staikos@webkit.org>
61100
61101        [BlackBerry] Avoid assertion failure in App Cache.
61102        https://bugs.webkit.org/show_bug.cgi?id=93926
61103
61104        Reviewed by Rob Buis.
61105
61106        Short-circuit data url decoding if we know it's not a data URL to
61107        avoid an assertion failure in debug mode.  No functional change.
61108
61109        No new tests since this is just a debug mode assertion failure.
61110
61111        * loader/appcache/ApplicationCacheGroup.cpp:
61112        (WebCore::ApplicationCacheGroup::createResourceHandle):
61113
611142012-08-14  Thiago Marcos P. Santos  <thiago.santos@intel.com>
61115
61116        [EFL] Do not warn when the default theme is not found
61117        https://bugs.webkit.org/show_bug.cgi?id=93968
61118
61119        Reviewed by Kenneth Rohde Christiansen.
61120
61121        Even if you are using a custom theme, we always try to load first the
61122        theme at the default path (that may or may not exist). In the case it
61123        doesn't exist and you have a custom theme, we were always getting a
61124        misleading error message.
61125
61126        * platform/efl/RenderThemeEfl.cpp:
61127        (WebCore::RenderThemeEfl::createEdje):
61128
611292012-08-14  Joshua Bell  <jsbell@chromium.org>
61130
61131        IndexedDB: Pass cursor continue results back in callback
61132        https://bugs.webkit.org/show_bug.cgi?id=92278
61133
61134        Reviewed by Tony Chang.
61135
61136        Supply the updated cursor key/primaryKey/value in the success callback,
61137        rather than forcing the callee to make three calls into the back end to
61138        fetch them. Callbacks onSuccess(cursor) and onSuccessWithContinuation()
61139        are given the three new payload parameters (and the latter is renamed.)
61140
61141        No new tests - no behavioral changes.
61142
61143        * Modules/indexeddb/IDBCallbacks.h: Updated callbacks.
61144        (IDBCallbacks):
61145        * Modules/indexeddb/IDBCursor.cpp:
61146        (WebCore::IDBCursor::setValueReady): Takes values rather than fetching them.
61147        * Modules/indexeddb/IDBCursor.h:
61148        (IDBCursor):
61149        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Delete accessors.
61150        (WebCore::IDBCursorBackendImpl::advanceInternal): Pass along updated cursor state.
61151        (WebCore::IDBCursorBackendImpl::continueFunctionInternal): Ditto.
61152        * Modules/indexeddb/IDBCursorBackendImpl.h:
61153        (IDBCursorBackendImpl): Delete accessors from interface...
61154        (WebCore::IDBCursorBackendImpl::key): ...but keep them for use within back-end.
61155        (WebCore::IDBCursorBackendImpl::primaryKey):
61156        (WebCore::IDBCursorBackendImpl::value):
61157        * Modules/indexeddb/IDBCursorBackendInterface.h: Delete accessors.
61158        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
61159        (WebCore::IDBIndexBackendImpl::openCursorInternal): Pass along new cursor state.
61160        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
61161        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): Ditto.
61162        * Modules/indexeddb/IDBRequest.cpp:
61163        (WebCore::IDBRequest::setResultCursor): Stash updated cursor state until dispatch.
61164        (WebCore::IDBRequest::onSuccess):
61165        (WebCore::IDBRequest::dispatchEvent): Update cursor with new state.
61166        * Modules/indexeddb/IDBRequest.h:
61167        (IDBRequest):
61168        * inspector/InspectorIndexedDBAgent.cpp: Update iteration code to use new callbacks.
61169        (WebCore):
61170
611712012-08-14  Arvid Nilsson  <anilsson@rim.com>
61172
61173        [BlackBerry] Get rid of glCopyTexImage2D in Canvas and WebGL code paths
61174        https://bugs.webkit.org/show_bug.cgi?id=93614
61175
61176        Reviewed by Antonio Gomes.
61177
61178        We used to set up resource sharing between the compositing thread
61179        context and the Canvas and WebGL contexts, and use glCopyTexImage2D to
61180        get a copy of the framebuffer to use as front buffer for compositing
61181        purposes.
61182
61183        Now we instead create an EGLImage and blit the Canvas/WebGL output to
61184        it. The compositing thread creates a texture from the EGLImage in order
61185        to composite the output.
61186
61187        Created a new EGLImageLayerWebKitThread base class that handles the
61188        EGLImage and does the blitting. CanvasLayerWebKitThread and
61189        WebGLLayerWebKitThread now inherit from this new base class.
61190
61191        However, we need to be careful to restore state after the blit because
61192        it's done using the Canvas/WebGL context.
61193
61194        The BlackBerry implementation of GraphicsContext3D::prepareTexture()
61195        was changed to no longer call glCopyTexImage, and
61196        GraphicsContext3D::platformLayer() now returns the target texture
61197        directly.
61198
61199        Reviewed internally by Filip Spacek.
61200
61201        PR 188472
61202
61203        No change in behavior, new tests.
61204
61205        * PlatformBlackBerry.cmake:
61206        * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
61207        (WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
61208        (WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
61209        (WebCore::CanvasLayerWebKitThread::setDevice):
61210        (WebCore::CanvasLayerWebKitThread::makeContextCurrent):
61211        (WebCore::CanvasLayerWebKitThread::textureSize):
61212        (WebCore):
61213        (WebCore::CanvasLayerWebKitThread::textureID):
61214        * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
61215        (CanvasLayerWebKitThread):
61216        * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.cpp: Added.
61217        (WebCore):
61218        (WebCore::EGLImageLayerCompositingThreadClient::~EGLImageLayerCompositingThreadClient):
61219        (WebCore::EGLImageLayerCompositingThreadClient::uploadTexturesIfNeeded):
61220        (WebCore::EGLImageLayerCompositingThreadClient::drawTextures):
61221        (WebCore::EGLImageLayerCompositingThreadClient::deleteTextures):
61222        (WebCore::EGLImageLayerCompositingThreadClient::bindContentsTexture):
61223        (WebCore::EGLImageLayerCompositingThreadClient::setImage):
61224        * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.h: Added.
61225        (WebCore):
61226        (EGLImageLayerCompositingThreadClient):
61227        (WebCore::EGLImageLayerCompositingThreadClient::create):
61228        (WebCore::EGLImageLayerCompositingThreadClient::layerCompositingThreadDestroyed):
61229        (WebCore::EGLImageLayerCompositingThreadClient::layerVisibilityChanged):
61230        (WebCore::EGLImageLayerCompositingThreadClient::EGLImageLayerCompositingThreadClient):
61231        * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp: Added.
61232        (WebCore):
61233        (WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
61234        (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
61235        (WebCore::EGLImageLayerWebKitThread::setNeedsDisplay):
61236        (WebCore::EGLImageLayerWebKitThread::makeContextCurrent):
61237        (WebCore::EGLImageLayerWebKitThread::updateTextureContentsIfNeeded):
61238        (WebCore::EGLImageLayerWebKitThread::commitPendingTextureUploads):
61239        (WebCore::EGLImageLayerWebKitThread::createImageIfNeeded):
61240        (WebCore::EGLImageLayerWebKitThread::createShaderIfNeeded):
61241        (WebCore::EGLImageLayerWebKitThread::drawTexture):
61242        * platform/graphics/blackberry/EGLImageLayerWebKitThread.h: Copied from Source/WebCore/platform/graphics/blackberry/CanvasLayerWebKitThread.h.
61243        (WebCore):
61244        (EGLImageLayerWebKitThread):
61245        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
61246        (WebCore::GraphicsContext3D::prepareTexture):
61247        (WebCore):
61248        (WebCore::GraphicsContext3D::platformTexture):
61249        * platform/graphics/blackberry/LayerCompositingThread.cpp:
61250        (WebCore::LayerCompositingThread::drawTextures):
61251        (WebCore::LayerCompositingThread::releaseTextureResources):
61252        * platform/graphics/blackberry/LayerCompositingThread.h:
61253        (WebCore::LayerCompositingThread::setClient):
61254        (LayerCompositingThread):
61255        * platform/graphics/blackberry/LayerData.h:
61256        (WebCore::LayerData::LayerData):
61257        (LayerData):
61258        * platform/graphics/blackberry/LayerWebKitThread.cpp:
61259        (WebCore::LayerWebKitThread::~LayerWebKitThread):
61260        (WebCore::LayerWebKitThread::updateTextureContentsIfNeeded):
61261        (WebCore::LayerWebKitThread::commitPendingTextureUploads):
61262        (WebCore::LayerWebKitThread::commitOnCompositingThread):
61263        * platform/graphics/blackberry/LayerWebKitThread.h:
61264        (LayerWebKitThread):
61265        * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
61266        (WebCore::WebGLLayerWebKitThread::WebGLLayerWebKitThread):
61267        (WebCore::WebGLLayerWebKitThread::updateTextureContentsIfNeeded):
61268        (WebCore::WebGLLayerWebKitThread::makeContextCurrent):
61269        (WebCore):
61270        (WebCore::WebGLLayerWebKitThread::textureSize):
61271        (WebCore::WebGLLayerWebKitThread::textureID):
61272        * platform/graphics/blackberry/WebGLLayerWebKitThread.h:
61273        (WebGLLayerWebKitThread):
61274        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
61275        (WebCore):
61276        (WebCore::GraphicsContext3D::prepareTexture):
61277
612782012-08-14  Arvid Nilsson  <anilsson@rim.com>
61279
61280        [BlackBerry] Texture cache must adapt to HashMap changes
61281        https://bugs.webkit.org/show_bug.cgi?id=93955
61282
61283        Reviewed by Rob Buis.
61284
61285        This was fixed locally, but not upstreamed yet.
61286
61287        Based on an original patch by Konrad Piascik.
61288
61289        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
61290        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
61291
612922012-08-14  Arvid Nilsson  <anilsson@rim.com>
61293
61294        [BlackBerry] LayerCompositingThread.h doesn't compile
61295        https://bugs.webkit.org/show_bug.cgi?id=93956
61296
61297        Reviewed by Rob Buis.
61298
61299        I forgot to upstream this local change.
61300
61301        * platform/graphics/blackberry/LayerCompositingThread.h:
61302        (WebCore::LayerOverride::setBounds):
61303        (WebCore::LayerOverride::setOpacity):
61304
613052012-08-14  Ed Baker  <edbaker@rim.com>
61306
61307        [BlackBerry] LayerAnimation is not immutable, which makes dereferencing an expensive operation
61308        https://bugs.webkit.org/show_bug.cgi?id=93946
61309
61310        Reviewed by Antonio Gomes.
61311
61312        Make LayerAnimation immutable so it can be dereferenced from the main
61313        WebKit thread without having to dispatch to the compositing thread,
61314        which is an expensive operation.
61315
61316        TransformOperation and TimingFunction need to be made thread safe as
61317        they are referenced in LayerAnimation, but that effort is being tracked
61318        by a separate bug, #86483.
61319
61320        Reviewed internally by Arvid Nilsson.
61321
61322        No change in behavior, no new tests.
61323
61324        * platform/graphics/blackberry/LayerAnimation.h:
61325        (WebCore::LayerAnimation::name):
61326        (LayerAnimation):
61327        (WebCore::LayerAnimation::LayerAnimation):
61328        (WebCore::LayerAnimation::setName):
61329        * platform/graphics/blackberry/LayerCompositingThread.cpp:
61330        (WebCore):
61331        * platform/graphics/blackberry/LayerCompositingThread.h:
61332        (LayerCompositingThread):
61333        * platform/graphics/blackberry/LayerWebKitThread.cpp:
61334        (WebCore::LayerWebKitThread::~LayerWebKitThread):
61335
613362012-08-14  Arvid Nilsson  <anilsson@rim.com>
61337
61338        [BlackBerry] GraphicsLayerBlackBerry::willBeDestroyed() must call superclass implementation
61339        https://bugs.webkit.org/show_bug.cgi?id=93947
61340
61341        Reviewed by Rob Buis.
61342
61343        This was fixed locally, but not upstreamed yet.
61344
61345        Based on an original patch by Konrad Piascik.
61346
61347        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
61348        (WebCore::GraphicsLayerBlackBerry::willBeDestroyed):
61349
613502012-08-14  Vineet Chaudhary  <rgf748@motorola.com>
61351
61352        Remove custom JSC bindings from ConvolverNode.idl
61353        https://bugs.webkit.org/show_bug.cgi?id=93952
61354
61355        Reviewed by Kentaro Hara.
61356
61357        We should remove custom bindings as CodeGenerator uses UNUSED_PARAM macro.
61358
61359        No new tests. No behavioural changes.
61360        All tests under webaudio/* should behave same.
61361
61362        * GNUmakefile.list.am: Removed JSConvolverNodeCustom.cpp from builds.
61363        * Modules/webaudio/ConvolverNode.idl: Removed [JSCustomSetter].
61364        * UseJSC.cmake: Removed JSConvolverNodeCustom.cpp from builds.
61365        * WebCore.gypi: Ditto.
61366        * WebCore.xcodeproj/project.pbxproj: Ditto
61367        * bindings/js/JSConvolverNodeCustom.cpp: Removed.
61368
613692012-08-14  Pavel Feldman  <pfeldman@chromium.org>
61370
61371        Web Inspector: add external test runner for running inspector front-end tests with no TestRunner infrastructure.
61372        https://bugs.webkit.org/show_bug.cgi?id=93833
61373
61374        Reviewed by Yury Semikhatsky.
61375
61376        Added mock test runner that allows running front-end layout tests.
61377        InspectorFrontendAPI can now dispatch whatever it receives from its embedder (opener).
61378
61379        * inspector/front-end/InspectorFrontendAPI.js:
61380        (InspectorFrontendAPI.evaluateForTest):
61381        (InspectorFrontendAPI.dispatch):
61382        (InspectorFrontendAPI.loadCompleted):
61383        (.onMessageFromOpener):
61384
613852012-08-14  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
61386
61387        [Qt] Incomplete repaint of link underline
61388        https://bugs.webkit.org/show_bug.cgi?id=66034
61389
61390        Reviewed by Kenneth Rohde Christiansen.
61391
61392        When trying to point a line of width 30, we end up painting on of width 31, because Qt 
61393        interprets the line as end-inclusive. So adjust for end-include/exclusive difference 
61394        before requesting the draw from Qt.
61395
61396        * platform/graphics/qt/GraphicsContextQt.cpp:
61397        (WebCore::GraphicsContext::drawLine):
61398
613992012-08-14  Mike West  <mkwst@chromium.org>
61400
61401        Fix crash in http/tests/plugins/plugin-document-has-focus
61402        https://bugs.webkit.org/show_bug.cgi?id=93949
61403
61404        Reviewed by Jochen Eisinger.
61405
61406        Covered by http/tests/plugins/plugin-document-has-focus.html. If that
61407        doesn't crash, we're good!
61408
61409        * loader/SubframeLoader.cpp:
61410        (WebCore::SubframeLoader::pluginIsLoadable):
61411            Check the PluginDocument's ownerElement before derefing.
61412
614132012-08-14  KwangYong Choi  <ky0.choi@samsung.com>
61414
61415        [EFL] Fixed displaying buffering progress in the media control.
61416        https://bugs.webkit.org/show_bug.cgi?id=75681
61417
61418        Reviewed by Kenneth Rohde Christiansen.
61419
61420        It is required "rangeRect" instead of "rect" to display buffering
61421        progress properly.
61422
61423        * platform/efl/RenderThemeEfl.cpp:
61424        (WebCore::RenderThemeEfl::paintMediaSliderTrack):
61425
614262012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
61427
61428        [Forms] Copy Source/WebCore/html/shadow/TextControlInnerElements.{cpp,h} to SpinButtonElement.{cpp,h}
61429        https://bugs.webkit.org/show_bug.cgi?id=93943
61430
61431        Reviewed by Kent Tamura.
61432
61433        This patch copys html/shadow/TextControlInnerElement.{cpp,h} to SpinButtonElement.{cpp,h} for
61434        preparation of bug 93941, Set SpinButtonElement free from HTMLInputElement.
61435
61436        No new tests. This patch doesn't change behavior.
61437
61438        * html/shadow/SpinButtonElement.cpp: Copied from Source/WebCore/html/shadow/TextControlInnerElements.cpp.
61439        * html/shadow/SpinButtonElement.h: Copied from Source/WebCore/html/shadow/TextControlInnerElements.h.
61440
614412012-08-14  Mike West  <mkwst@chromium.org>
61442
61443        Implement the plugin-types Content Security Policy directive.
61444        https://bugs.webkit.org/show_bug.cgi?id=91919
61445
61446        Reviewed by Adam Barth.
61447
61448        The CSP 1.1 editor's draft defines the 'plugin-types' directive as a
61449        mechanism for whitelisting only specific types of plugin content on a
61450        page. A protected resource might trust only Flash content, for instance,
61451        and could enforce that preference via a Content Security Policy of
61452        'plugin-types application/x-shockwave-flash'. Flash would load, no other
61453        plugin type would.
61454
61455        Specification details available at: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#plugin-types--experimental
61456
61457        This experimental directive is gated on the ENABLE_CSP_NEXT flag, which
61458        is currently only enabled in Chromium.
61459
61460        Tests: http/tests/security/contentSecurityPolicy/1.1/plugintypes-invalid.html
61461               http/tests/security/contentSecurityPolicy/1.1/plugintypes-mismatched-data.html
61462               http/tests/security/contentSecurityPolicy/1.1/plugintypes-mismatched-url.html
61463               http/tests/security/contentSecurityPolicy/1.1/plugintypes-notype-data.html
61464               http/tests/security/contentSecurityPolicy/1.1/plugintypes-notype-url.html
61465               http/tests/security/contentSecurityPolicy/1.1/plugintypes-nourl-allowed.html
61466               http/tests/security/contentSecurityPolicy/1.1/plugintypes-nourl-blocked.html
61467               http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-01.html
61468               http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-02.html
61469
61470        * loader/SubframeLoader.cpp:
61471        (WebCore::SubframeLoader::pluginIsLoadable):
61472            Adding a check against 'allowPluginType', and passing in both the
61473            MIME type of the plugin, as well as the declared MIME type from the
61474            object/embed element (ensuring that we do this correctly, even if
61475            we're inside a PluginDocument).
61476        (WebCore::SubframeLoader::createJavaAppletWidget):
61477            Same as 'pluginIsLoadable', but hard-coded to
61478            'application/x-java-applet'.
61479        * page/ContentSecurityPolicy.cpp:
61480        (CSPDirectiveList):
61481        (WebCore::CSPDirectiveList::logInvalidPluginTypes):
61482            Plugin types that don't match the grammar ('not/a/mime/type') are
61483            logged to the console, and ignored for purposes of matching.
61484        (WebCore):
61485        (WebCore::CSPDirectiveList::checkPluginType):
61486            Given both the plugin type and the declared type attribute, returns
61487            true if both types match, and are contained in the list of accepted
61488            plugin types.
61489        (WebCore::CSPDirectiveList::checkPluginTypeAndReportViolation):
61490            Calls out to checkPluginType, and reports a violation if that check
61491            fails.
61492        (WebCore::CSPDirectiveList::allowPluginType):
61493            Analog to the other 'CSPDirectiveList::allowXXX' methods, this
61494            branches between simply checking the type against the policy, and
61495            checking against the policy and then reporting violations.
61496        (WebCore::CSPDirectiveList::parsePluginTypes):
61497            Given a directive value, parse out the media types contained within
61498            by splitting on spaces, and validating each token. Valid tokens are
61499            added to 'm_pluginTypes' for use in 'checkPluginType'.
61500        (WebCore::CSPDirectiveList::addDirective):
61501            Wire up 'plugin-types' as a valid directive (if the ENABLE_CSP_NEXT
61502            flag is set). This has been combined with the other implemented 1.1
61503            header, 'script-nonce'.
61504        (WebCore::ContentSecurityPolicy::allowPluginType):
61505            The public interface to this set of functionality.
61506        * page/ContentSecurityPolicy.h:
61507
615082012-08-14  Charles Wei  <charles.wei@torchmobile.com.cn>
61509
61510        [BlackBerry] Enable DNS prefetch
61511        https://bugs.webkit.org/show_bug.cgi?id=93846
61512
61513        Reviewed by George Staikos.
61514
61515        No new tests.
61516
61517        * PlatformBlackBerry.cmake:
61518        * platform/blackberry/TemporaryLinkStubs.cpp:
61519        * platform/network/blackberry/DNSBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/TemporaryLinkStubs.cpp.
61520        (WebCore):
61521        (WebCore::prefetchDNS):
61522
615232012-08-14  Hans Wennborg  <hans@chromium.org>
61524
61525        Speech Input: wrong position was reported for scolled-down elements
61526        https://bugs.webkit.org/show_bug.cgi?id=93634
61527
61528        Reviewed by Kent Tamura.
61529
61530        When clicking on a speech-enabled input element, WebKit reports
61531        the position of the element to the embedder, so that it can show
61532        a bubble indicating that speech recognition is in progress for
61533        the element that the user clicked on.
61534
61535        On a page that was scrolled, this position was being reported
61536        erroneously: it was given relative to the frame content as opposed to
61537        the root view, and the in-progress bubble would be shown in the wrong
61538        place.
61539
61540        Test: fast/speech/bubble-position-scrolled.html
61541
61542        * html/shadow/TextControlInnerElements.cpp:
61543        (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
61544
615452012-08-14  Taiju Tsuiki  <tzik@chromium.org>
61546
61547        Web Inspector: Drop "Loading..." message from FileContentView
61548        https://bugs.webkit.org/show_bug.cgi?id=91732
61549
61550        Reviewed by Vsevolod Vlasov.
61551
61552        * inspector/front-end/FileContentView.js:
61553        (WebInspector.FileContentView.prototype.wasShown):
61554
615552012-08-14  Sheriff Bot  <webkit.review.bot@gmail.com>
61556
61557        Unreviewed, rolling out r125519.
61558        http://trac.webkit.org/changeset/125519
61559        https://bugs.webkit.org/show_bug.cgi?id=93945
61560
61561        New ref-tests caused image failures on chromium-mac bots.
61562        (Requested by yutak on #webkit).
61563
61564        * css/html.css:
61565        (meter):
61566        * html/HTMLMeterElement.cpp:
61567        (WebCore::HTMLMeterElement::HTMLMeterElement):
61568        (WebCore::HTMLMeterElement::createRenderer):
61569        (WebCore::HTMLMeterElement::didElementStateChange):
61570        (WebCore::HTMLMeterElement::createShadowSubtree):
61571        * html/HTMLMeterElement.h:
61572        (WebCore):
61573        (HTMLMeterElement):
61574        * html/shadow/MeterShadowElement.cpp:
61575        (WebCore::MeterShadowElement::meterElement):
61576        (WebCore::MeterShadowElement::rendererIsNeeded):
61577        (WebCore):
61578        * html/shadow/MeterShadowElement.h:
61579        (WebCore):
61580        * rendering/RenderMeter.cpp:
61581        (WebCore::RenderMeter::RenderMeter):
61582        (WebCore::RenderMeter::valueRatio):
61583        * rendering/RenderMeter.h:
61584        (RenderMeter):
61585
615862012-08-14  Keishi Hattori  <keishi@webkit.org>
61587
61588        Move page popup resources to separate directory
61589        https://bugs.webkit.org/show_bug.cgi?id=93932
61590
61591        Reviewed by Kent Tamura.
61592
61593        Keeping the resources organized.
61594
61595        No new tests.
61596
61597        * Resources/pagepopups/calendarPicker.css: Renamed from Source/WebCore/Resources/calendarPicker.css.
61598        * Resources/pagepopups/calendarPicker.js: Renamed from Source/WebCore/Resources/calendarPicker.js.
61599        * Resources/pagepopups/calendarPickerMac.css: Renamed from Source/WebCore/Resources/calendarPickerMac.css.
61600        * Resources/pagepopups/colorSuggestionPicker.css: Renamed from Source/WebCore/Resources/colorSuggestionPicker.css.
61601        * Resources/pagepopups/colorSuggestionPicker.js: Renamed from Source/WebCore/Resources/colorSuggestionPicker.js.
61602        * WebCore.gyp/WebCore.gyp:
61603
616042012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
61605
61606        [Forms] Move wheel event handler to spin button class
61607        https://bugs.webkit.org/show_bug.cgi?id=93928
61608
61609        Reviewed by Kent Tamura.
61610
61611        This patch moves implmentation of wheel event handling from TextFieldInput
61612        class to SpinButtonElement class to share implementation in TextFieldInput
61613        class, and DateTimeEditElement.
61614
61615        No new tests. This patch doesn't change behavior. fast/orms/number/number-wheel.html
61616        covers this change.
61617
61618        * html/BaseDateAndTimeInputType.cpp: Removed handleWheelEvent() implementation.
61619        * html/BaseDateAndTimeInputType.h:
61620        (BaseDateAndTimeInputType): Removed handleWheelEvent() declaration.
61621        * html/HTMLInputElement.cpp:
61622        (WebCore::HTMLInputElement::defaultEventHandler): Removed wheel event handling.
61623        * html/InputType.cpp: Removed handleWheelEvent() implementation.
61624        * html/InputType.h:
61625        (InputType): Removed handleWheelEvent() declaration.
61626        * html/NumberInputType.cpp: Removed handleWheelEvent() implementation.
61627        * html/NumberInputType.h:
61628        (NumberInputType): Removed handleWheelEvent() declaration.
61629        * html/TextFieldInputType.cpp: Removed handleWheelEventForSpinButton() declaration.
61630        (WebCore::TextFieldInputType::forwardEvent): Changed to call SpinButtonElement::forwardEvent().
61631        * html/TextFieldInputType.h:
61632        (TextFieldInputType): Removed handleWheelEventForSpinButton() declaration.
61633        * html/shadow/TextControlInnerElements.cpp:
61634        (WebCore::SpinButtonElement::forwardEvent): Moved implementation of wheel event handling code
61635        from TextFieldInputType::handleWheelEventForSpinButton().
61636        * html/shadow/TextControlInnerElements.h:
61637        (SpinButtonElement): Added forwardEvent() declaration.
61638
616392012-08-14  Shinya Kawanaka  <shinyak@chromium.org>
61640
61641        AuthorShadowDOM for meter element
61642        https://bugs.webkit.org/show_bug.cgi?id=91970
61643
61644        Reviewed by Hajime Morita.
61645
61646        We add support for AuthorShadowDOM for a meter element.
61647
61648        According to the Shadow DOM spec, a meter element should behave like having a UserAgentShadowRoot and
61649        an element in UserAgentShadowRoot draws a real 'meter' bar. In this patch, we change the inner structure
61650        of a meter element so that we can distribute an element having RenderMeter to AuthorShadowDOM.
61651
61652        Before this patch, a meter element has the following inner structure.
61653
61654            <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
61655                               |
61656                               +-- MeterBarElement
61657                               |
61658                               +-- MeterValueElement
61659
61660        After this patch, a meter element will have the following inner structure.
61661
61662            <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
61663                               |
61664                               +-- MeterInnerElement
61665                                           |
61666                                           +-- MeterBarElement
61667                                           |
61668                                           +-- MeterValueElement
61669
61670        However, if RenderTheme supports rendering meter, MeterInnerElement will not create a renderer
61671        unless an AuthorShadowDOM is attached to it so that we can keep the current rendering style.
61672
61673        Tests: fast/dom/shadow/shadowdom-for-meter-dynamic.html
61674               fast/dom/shadow/shadowdom-for-meter-multiple.html
61675               fast/dom/shadow/shadowdom-for-meter-with-style.html
61676               fast/dom/shadow/shadowdom-for-meter-without-appearance.html
61677               fast/dom/shadow/shadowdom-for-meter-without-shadow-element.html
61678               fast/dom/shadow/shadowdom-for-meter.html
61679
61680        * css/html.css:
61681        (meter): Changed the display type. inline-box is not supported WebKit. inline-block is true.
61682        (meter::-webkit-meter-inner-element):
61683        * html/HTMLMeterElement.cpp:
61684        (WebCore::HTMLMeterElement::HTMLMeterElement):
61685        (WebCore::HTMLMeterElement::createRenderer):
61686        (WebCore):
61687        (WebCore::HTMLMeterElement::didElementStateChange):
61688        (WebCore::HTMLMeterElement::willAddAuthorShadowRoot):
61689        (WebCore::HTMLMeterElement::renderMeter):
61690        (WebCore::HTMLMeterElement::createShadowSubtree):
61691        * html/HTMLMeterElement.h:
61692        (WebCore):
61693        (WebCore::HTMLMeterElement::hasAuthorShadowRoot):
61694        (HTMLMeterElement):
61695        (WebCore::isHTMLMeterElement):
61696        (WebCore::toHTMLMeterElement):
61697        * html/shadow/MeterShadowElement.cpp:
61698        (WebCore::MeterShadowElement::meterElement):
61699        (WebCore::MeterShadowElement::rendererIsNeeded):
61700        (WebCore):
61701        (WebCore::MeterInnerElement::MeterInnerElement): We introduce a new element having RenderMeter
61702        so that we can distribute an element having RenderMeter to AuthorShadowDOM.
61703        (WebCore::MeterInnerElement::rendererIsNeeded): Different from a progress element, meter element will not be
61704        rendered using a theme. So we don't need to check the style appearance.
61705        (WebCore::MeterInnerElement::createRenderer):
61706        (WebCore::MeterInnerElement::shadowPseudoId):
61707        * html/shadow/MeterShadowElement.h:
61708        (WebCore):
61709        (MeterInnerElement):
61710        (WebCore::MeterInnerElement::create):
61711        * rendering/RenderMeter.cpp:
61712        (WebCore::RenderMeter::RenderMeter):
61713        (WebCore::RenderMeter::meterElement):
61714        (WebCore):
61715        (WebCore::RenderMeter::valueRatio):
61716        * rendering/RenderMeter.h:
61717        (RenderMeter):
61718
617192012-08-14  Christophe Dumez  <christophe.dumez@intel.com>
61720
61721        regression(r124510) webintents/web-intents-obj-constructor.html is crashing
61722        https://bugs.webkit.org/show_bug.cgi?id=93096
61723
61724        Reviewed by Kentaro Hara.
61725
61726        Add null-check for JSC::ExecState pointer in JSDictionary constructor
61727        before using it. The exec may indeed be null, thus causing crashes.
61728
61729        No new test, already tested by webintents/web-intents-obj-constructor.html
61730
61731        * bindings/js/JSDictionary.cpp:
61732        (WebCore::JSDictionary::tryGetProperty):
61733        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
61734        * bindings/js/JSDictionary.h:
61735        (WebCore::JSDictionary::JSDictionary):
61736
617372012-08-13  Keishi Hattori  <keishi@webkit.org>
61738
61739        Remove fade in transition from calendar picker
61740        https://bugs.webkit.org/show_bug.cgi?id=93816
61741
61742        Reviewed by Kent Tamura.
61743
61744        The fade in transition was incomplete because it was only fading in the
61745        popup content and not the popup itself. Removing the effect for now.
61746
61747        No new tests. Can't test animation.
61748
61749        * Resources/calendarPicker.css:
61750        (#main):
61751        * Resources/calendarPicker.js:
61752        (initialize):
61753        (fixWindowSize):
61754
617552012-08-13  Alex Christensen  <alex.christensen@flexsim.com>
61756
61757        WPARAM and LPARAM are incorrectly defined for x64
61758        https://bugs.webkit.org/show_bug.cgi?id=89902
61759
61760        Reviewed by Brent Fulgham.
61761
61762        Include WindowsExtras.h for PLATFORM(WIN) to define WPARAM and LPARAM correctly
61763        * platform/PlatformKeyboardEvent.h:
61764        * platform/PlatformMouseEvent.h:
61765        * platform/PlatformWheelEvent.h:
61766        * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
61767        * platform/win/WindowMessageListener.h:
61768
617692012-08-13  John Bates  <jbates@google.com>
61770
61771        [Chromium] Patch CCThreadProxy to call setTimebaseAndInterval on CCScheduler
61772        https://bugs.webkit.org/show_bug.cgi?id=93918
61773
61774        Reviewed by James Robinson.
61775
61776        Also, update some trace events.
61777
61778        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
61779        (WebCore::CCDelayBasedTimeSource::setActive):
61780        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
61781        (WebCore::CCFrameRateController::setActive):
61782        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
61783        (WebCore::CCThreadProxy::onVSyncParametersChanged):
61784
617852012-08-13  Douglas Stockwell  <dstockwell@chromium.org>
61786
61787        Crash in WebCore::RenderBlock::LineBreaker::nextLineBreak
61788        https://bugs.webkit.org/show_bug.cgi?id=93806
61789
61790        Reviewed by Abhishek Arya.
61791
61792        When looking for line breaks on the first line, existing code was
61793        checking for text-combine only in the first-line style. Since
61794        text-combine isn't inherited this resulted in a line break being
61795        chosen before combineText was called. When this happened and then
61796        combineText was called subsequently, the position of the line break
61797        iterator would be invalid.
61798
61799        This patch changes the check to use the regular style as in
61800        skipLeadingWhitespace and textWidth.
61801
61802        Test: fast/text/text-combine-first-line-crash.html
61803
61804        * rendering/RenderBlockLineLayout.cpp:
61805        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Don't use the
61806        first-line style when checking text-combine.
61807
618082012-08-13  Kwang Yul Seo  <skyul@company100.net>
61809
61810        Remove unused method HTMLDocumentParser::script()
61811        https://bugs.webkit.org/show_bug.cgi?id=93916
61812
61813        Reviewed by Eric Seidel.
61814
61815        The use of HTMLDocumentParser::script() was removed in r61640 and has never been used since then.
61816
61817        No behavior change, so no new tests.
61818
61819        * html/parser/HTMLDocumentParser.cpp:
61820        * html/parser/HTMLDocumentParser.h:
61821
618222012-08-13  Tom Sepez  <tsepez@chromium.org>
61823
61824        [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
61825        https://bugs.webkit.org/show_bug.cgi?id=93283
61826
61827        Reviewed by Eric Seidel.
61828
61829        Chromium has a refptr that needs to be NULLed at this point.
61830        
61831        The approach is to change the client redirectDataToPlugin method(s) to expect
61832        the possibility of a NULL argument, and the use this to clear the refptr on
61833        the chromium platform.  Other platforms can merely ignore the NULL case, thereby
61834        maintaining the existing behaviour.
61835
61836        Formal testing is nearly impossible without some chrome-specific plugins.
61837
61838        * html/PluginDocument.cpp:
61839        (WebCore::PluginDocument::detach):
61840
618412012-08-13  Eric Penner  <epenner@google.com>
61842
61843        [chromium] Paint animated layers immediately to avoid animation hiccups.
61844        https://bugs.webkit.org/show_bug.cgi?id=93028
61845
61846        Reviewed by Adrienne Walker.
61847
61848        This is a technique used on Android, which is very prone
61849        to hiccups in animations. Paint the entire layer if it is
61850        of reasonable size such that there is no hiccups when the
61851        animation reaches unpainted content. The reasonable size
61852        is choosen for page-transitions specifically, as this was
61853        the problem case (animations would just jump to the end).
61854
61855        Since we already have a special case this just modifies it
61856        and replaces the unit test with a new one. This can be
61857        improved/simplified further when distances/directions are
61858        available for the animated layers.
61859
61860        Replaced one test.
61861        Fixed bugs in and improved idlePaintNonVisibleLayers test.
61862
61863        * platform/graphics/chromium/TiledLayerChromium.cpp:
61864        (UpdatableTile):
61865        (WebCore::UpdatableTile::resetUpdateState):
61866        (WebCore::UpdatableTile::markForUpdate):
61867        (WebCore::UpdatableTile::UpdatableTile):
61868        (WebCore::TiledLayerChromium::TiledLayerChromium):
61869        (WebCore::TiledLayerChromium::pushPropertiesTo):
61870        (WebCore):
61871        (WebCore::TiledLayerChromium::updateTiles):
61872        (WebCore::TiledLayerChromium::markOcclusionsAndRequestTextures):
61873        (WebCore::TiledLayerChromium::haveTexturesForTiles):
61874        (WebCore::TiledLayerChromium::markTilesForUpdate):
61875        (WebCore::TiledLayerChromium::updateTileTextures):
61876        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
61877        (WebCore::TiledLayerChromium::resetUpdateState):
61878        (WebCore::TiledLayerChromium::updateContentRect):
61879        (WebCore::TiledLayerChromium::needsIdlePaint):
61880        (WebCore::TiledLayerChromium::idlePaintRect):
61881        * platform/graphics/chromium/TiledLayerChromium.h:
61882        (TiledLayerChromium):
61883        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
61884        (WebCore::CCLayerTilingData::contentRectToTileIndices):
61885        * platform/graphics/chromium/cc/CCPriorityCalculator.h:
61886        (WebCore::CCPriorityCalculator::maxPriority):
61887
618882012-08-13  Kentaro Hara  <haraken@chromium.org>
61889
61890        Unreviewed. Simple refactoring that I forgot to apply in r125495.
61891
61892        * bindings/v8/V8ThrowException.cpp:
61893        (WebCore::domExceptionStackGetter):
61894        (WebCore::domExceptionStackSetter):
61895        (WebCore::V8ThrowException::setDOMException):
61896        * bindings/v8/V8ThrowException.h:
61897
618982012-08-13  Ryuan Choi  <ryuan.choi@samsung.com>
61899
61900        [CMAKE][EFL] Fix build break with --tiled-backing-store
61901        https://bugs.webkit.org/show_bug.cgi?id=93487
61902
61903        Unreviewed build fix for Efl with --tiled-backing-store.
61904
61905        * CMakeLists.txt:
61906        Checked bison version and selected proper glslang files.
61907
619082012-08-12  Kentaro Hara  <haraken@chromium.org>
61909
61910        [V8] Factor out exception related methods of V8Proxy
61911        https://bugs.webkit.org/show_bug.cgi?id=93792
61912
61913        Reviewed by Adam Barth.
61914
61915        To remove V8Proxy, this patch factors out exception related methods of V8Proxy
61916        to a separate file.
61917
61918        (1) Move exception related methods from V8Proxy.{h,cpp} to V8ThrowException.{h,cpp}.
61919        (2) To avoid writing V8ThrowException::throwError() here and there in V8 binding,
61920        implement WebCore::throwError() in V8Binding.{h,cpp}. Ideally, we want to list up
61921        all V8 binding APIs in V8Binding.h.
61922        (3) Replace all V8Proxy::throwError() with throwError().
61923
61924        Nit: I couldn't write the definition of WebCore::throwError() in V8BInding.h
61925        due to circular dependency issues. Either way, these methods wouldn't be
61926        performance-critical.
61927
61928        No tests. No change in behavior.
61929
61930        * UseV8.cmake:
61931        * WebCore.gypi:
61932        * bindings/scripts/CodeGeneratorV8.pm:
61933        (GenerateNormalAttrGetter):
61934        (GenerateNormalAttrSetter):
61935        (GenerateOverloadedFunctionCallback):
61936        (GenerateFunctionCallback):
61937        (GenerateArgumentsCountCheck):
61938        (GenerateParametersCheck):
61939        (GenerateConstructorCallback):
61940        (GenerateEventConstructorCallback):
61941        (GenerateNamedConstructorCallback):
61942        (GenerateFunctionCallString):
61943        * bindings/scripts/test/V8/V8Float64Array.cpp:
61944        (WebCore::Float64ArrayV8Internal::fooCallback):
61945        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
61946        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
61947        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
61948        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
61949        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
61950        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
61951        (WebCore::V8TestEventConstructor::constructorCallback):
61952        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
61953        (WebCore::TestEventTargetV8Internal::itemCallback):
61954        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
61955        * bindings/scripts/test/V8/V8TestInterface.cpp:
61956        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
61957        (WebCore::V8TestInterface::constructorCallback):
61958        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
61959        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
61960        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
61961        (WebCore::V8TestNamedConstructorConstructorCallback):
61962        * bindings/scripts/test/V8/V8TestNode.cpp:
61963        (WebCore::V8TestNode::constructorCallback):
61964        * bindings/scripts/test/V8/V8TestObj.cpp:
61965        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetter):
61966        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetter):
61967        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetter):
61968        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
61969        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
61970        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
61971        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
61972        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
61973        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
61974        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
61975        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
61976        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
61977        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
61978        (WebCore::TestObjV8Internal::MethodWithArgsCallback):
61979        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
61980        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
61981        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
61982        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
61983        (WebCore::TestObjV8Internal::serializedValueCallback):
61984        (WebCore::TestObjV8Internal::idbKeyCallback):
61985        (WebCore::TestObjV8Internal::optionsObjectCallback):
61986        (WebCore::TestObjV8Internal::methodWithExceptionCallback):
61987        (WebCore::TestObjV8Internal::withScriptStateVoidExceptionCallback):
61988        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
61989        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
61990        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
61991        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
61992        (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
61993        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
61994        (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgCallback):
61995        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
61996        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
61997        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
61998        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
61999        (WebCore::TestObjV8Internal::overloadedMethod5Callback):
62000        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
62001        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
62002        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
62003        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
62004        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
62005        (WebCore::TestObjV8Internal::overloadedMethodCallback):
62006        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
62007        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
62008        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
62009        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
62010        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
62011        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
62012        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
62013        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
62014        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
62015        (WebCore::TestObjV8Internal::convert1Callback):
62016        (WebCore::TestObjV8Internal::convert2Callback):
62017        (WebCore::TestObjV8Internal::convert3Callback):
62018        (WebCore::TestObjV8Internal::convert4Callback):
62019        (WebCore::TestObjV8Internal::convert5Callback):
62020        (WebCore::TestObjV8Internal::strictFunctionCallback):
62021        (WebCore::V8TestObj::constructorCallback):
62022        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
62023        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
62024        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
62025        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
62026        * bindings/v8/DateExtension.cpp:
62027        (WebCore::DateExtension::OnSleepDetected):
62028        * bindings/v8/NPV8Object.cpp:
62029        (_NPN_SetException):
62030        * bindings/v8/SerializedScriptValue.cpp:
62031        (WebCore::SerializedScriptValue::transferArrayBuffers):
62032        (WebCore::SerializedScriptValue::SerializedScriptValue):
62033        * bindings/v8/V8Binding.cpp:
62034        (WebCore::setDOMException):
62035        (WebCore):
62036        (WebCore::throwError):
62037        (WebCore::throwTypeError):
62038        (WebCore::throwNotEnoughArgumentsError):
62039        * bindings/v8/V8Binding.h:
62040        (WebCore):
62041        (WebCore::toV8Sequence):
62042        * bindings/v8/V8Collection.cpp:
62043        (WebCore::toOptionsCollectionSetter):
62044        * bindings/v8/V8NPObject.cpp:
62045        (WebCore::npObjectInvokeImpl):
62046        (WebCore::npObjectGetProperty):
62047        (WebCore::npObjectSetProperty):
62048        (WebCore::npObjectPropertyEnumerator):
62049        * bindings/v8/V8NodeFilterCondition.cpp:
62050        (WebCore::V8NodeFilterCondition::acceptNode):
62051        * bindings/v8/V8Proxy.cpp:
62052        (WebCore::handleMaxRecursionDepthExceeded):
62053        (WebCore::V8Proxy::checkNewLegal):
62054        * bindings/v8/V8Proxy.h:
62055        (V8Proxy):
62056        (WebCore):
62057        * bindings/v8/V8ThrowException.cpp: Added.
62058        (WebCore):
62059        (WebCore::DOMExceptionStackGetter):
62060        (WebCore::DOMExceptionStackSetter):
62061        (WebCore::V8ThrowException::setDOMException):
62062        (WebCore::V8ThrowException::throwError):
62063        (WebCore::V8ThrowException::throwTypeError):
62064        (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
62065        * bindings/v8/V8ThrowException.h: Added.
62066        (WebCore):
62067        (V8ThrowException):
62068        * bindings/v8/V8Utilities.cpp:
62069        (WebCore::extractTransferables):
62070        (WebCore::getMessagePortArray):
62071        (WebCore::setTypeMismatchException):
62072        * bindings/v8/WorkerContextExecutionProxy.cpp:
62073        (WebCore::WorkerContextExecutionProxy::evaluate):
62074        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
62075        (WebCore::V8ArrayBuffer::constructorCallback):
62076        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
62077        (WebCore::constructWebGLArrayWithArrayBufferArgument):
62078        (WebCore::constructWebGLArray):
62079        (WebCore::setWebGLArrayHelper):
62080        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
62081        (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
62082        * bindings/v8/custom/V8AudioContextCustom.cpp:
62083        (WebCore::V8AudioContext::constructorCallback):
62084        * bindings/v8/custom/V8BlobCustom.cpp:
62085        (WebCore::V8Blob::constructorCallback):
62086        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
62087        (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
62088        * bindings/v8/custom/V8ClipboardCustom.cpp:
62089        (WebCore::V8Clipboard::clearDataCallback):
62090        (WebCore::V8Clipboard::setDragImageCallback):
62091        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
62092        (WebCore::V8DOMFormData::constructorCallback):
62093        (WebCore::V8DOMFormData::appendCallback):
62094        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
62095        (WebCore::V8DOMStringMap::namedPropertySetter):
62096        * bindings/v8/custom/V8DOMWindowCustom.cpp:
62097        (WebCore::WindowSetTimeoutImpl):
62098        (WebCore::handlePostMessageCallback):
62099        * bindings/v8/custom/V8DataViewCustom.cpp:
62100        (WebCore::V8DataView::constructorCallback):
62101        (WebCore::V8DataView::getInt8Callback):
62102        (WebCore::V8DataView::getUint8Callback):
62103        (WebCore::V8DataView::setInt8Callback):
62104        (WebCore::V8DataView::setUint8Callback):
62105        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
62106        (WebCore::handlePostMessageCallback):
62107        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
62108        (WebCore::V8DirectoryEntry::getDirectoryCallback):
62109        (WebCore::V8DirectoryEntry::getFileCallback):
62110        * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
62111        (WebCore::V8DirectoryEntrySync::getDirectoryCallback):
62112        (WebCore::V8DirectoryEntrySync::getFileCallback):
62113        * bindings/v8/custom/V8DocumentCustom.cpp:
62114        (WebCore::V8Document::evaluateCallback):
62115        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
62116        (WebCore::V8HTMLCanvasElement::toDataURLCallback):
62117        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
62118        (WebCore::V8HTMLDocument::openCallback):
62119        * bindings/v8/custom/V8HTMLElementCustom.cpp:
62120        (WebCore::V8HTMLElement::itemValueAccessorSetter):
62121        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
62122        (WebCore::v8HTMLImageElementConstructorCallback):
62123        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
62124        (WebCore::V8HTMLInputElement::selectionStartAccessorGetter):
62125        (WebCore::V8HTMLInputElement::selectionStartAccessorSetter):
62126        (WebCore::V8HTMLInputElement::selectionEndAccessorGetter):
62127        (WebCore::V8HTMLInputElement::selectionEndAccessorSetter):
62128        (WebCore::V8HTMLInputElement::selectionDirectionAccessorGetter):
62129        (WebCore::V8HTMLInputElement::selectionDirectionAccessorSetter):
62130        (WebCore::V8HTMLInputElement::setSelectionRangeCallback):
62131        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
62132        (WebCore::V8HTMLMediaElement::controllerAccessorSetter):
62133        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
62134        (WebCore::V8HTMLOptionsCollection::addCallback):
62135        (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
62136        * bindings/v8/custom/V8HistoryCustom.cpp:
62137        (WebCore::V8History::pushStateCallback):
62138        (WebCore::V8History::replaceStateCallback):
62139        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
62140        (WebCore::V8InjectedScriptHost::inspectedObjectCallback):
62141        * bindings/v8/custom/V8IntentConstructor.cpp:
62142        (WebCore::V8Intent::constructorCallback):
62143        * bindings/v8/custom/V8LocationCustom.cpp:
62144        (WebCore::V8Location::protocolAccessorSetter):
62145        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
62146        (WebCore::V8MessageChannel::constructorCallback):
62147        * bindings/v8/custom/V8MessagePortCustom.cpp:
62148        (WebCore::handlePostMessageCallback):
62149        * bindings/v8/custom/V8MutationObserverCustom.cpp:
62150        (WebCore::V8MutationObserver::constructorCallback):
62151        * bindings/v8/custom/V8NodeCustom.cpp:
62152        (WebCore::V8Node::insertBeforeCallback):
62153        (WebCore::V8Node::replaceChildCallback):
62154        (WebCore::V8Node::removeChildCallback):
62155        (WebCore::V8Node::appendChildCallback):
62156        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
62157        (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
62158        (WebCore::V8NotificationCenter::createNotificationCallback):
62159        (WebCore::V8NotificationCenter::requestPermissionCallback):
62160        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
62161        (WebCore::V8SQLResultSetRowList::itemCallback):
62162        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
62163        (WebCore::V8SQLTransaction::executeSqlCallback):
62164        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
62165        (WebCore::V8SQLTransactionSync::executeSqlCallback):
62166        * bindings/v8/custom/V8SVGLengthCustom.cpp:
62167        (WebCore::V8SVGLength::valueAccessorGetter):
62168        (WebCore::V8SVGLength::valueAccessorSetter):
62169        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
62170        * bindings/v8/custom/V8StorageCustom.cpp:
62171        (WebCore::storageSetter):
62172        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
62173        (WebCore::getObjectParameter):
62174        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
62175        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
62176        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
62177        (WebCore::V8WebGLRenderingContext::getParameterCallback):
62178        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
62179        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
62180        (WebCore::V8WebGLRenderingContext::getUniformCallback):
62181        (WebCore::vertexAttribAndUniformHelperf):
62182        (WebCore::uniformHelperi):
62183        (WebCore::uniformMatrixHelper):
62184        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
62185        (WebCore::V8WebKitPoint::constructorCallback):
62186        * bindings/v8/custom/V8WebSocketCustom.cpp:
62187        (WebCore::V8WebSocket::constructorCallback):
62188        (WebCore::V8WebSocket::sendCallback):
62189        * bindings/v8/custom/V8WorkerContextCustom.cpp:
62190        (WebCore::V8WorkerContext::importScriptsCallback):
62191        * bindings/v8/custom/V8WorkerCustom.cpp:
62192        (WebCore::handlePostMessageCallback):
62193        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
62194        (WebCore::V8XMLHttpRequest::constructorCallback):
62195        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
62196        (WebCore::V8XMLHttpRequest::responseTextAccessorGetter):
62197        (WebCore::V8XMLHttpRequest::responseAccessorGetter):
62198        (WebCore::V8XMLHttpRequest::openCallback):
62199        (WebCore::V8XMLHttpRequest::sendCallback):
62200
622012012-08-13  Kentaro Hara  <haraken@chromium.org>
62202
62203        [V8] Move GCEventData class from V8Binding.h to ScriptGCEvent.h
62204        https://bugs.webkit.org/show_bug.cgi?id=93818
62205
62206        Reviewed by Adam Barth.
62207
62208        (1) This patch moves GCEventData class from V8Binding.h to ScriptGCEvent.h.
62209        (2) This patch makes GCEventData::startTime and GCEventData::usedHeapSize
62210        private members.
62211        (3) This patch removes unused forward declarations from V8Binding.h.
62212
62213        No tests. No change in behavior.
62214
62215        * bindings/v8/ScriptGCEvent.cpp:
62216        (WebCore::ScriptGCEvent::gcPrologueCallback):
62217        (WebCore::ScriptGCEvent::gcEpilogueCallback):
62218        * bindings/v8/ScriptGCEvent.h:
62219        (GCEventData):
62220        (WebCore::GCEventData::GCEventData):
62221        (WebCore::GCEventData::clear):
62222        (WebCore::GCEventData::listeners):
62223        (WebCore::GCEventData::startTime):
62224        (WebCore::GCEventData::setStartTime):
62225        (WebCore::GCEventData::usedHeapSize):
62226        (WebCore::GCEventData::setUsedHeapSize):
62227        (WebCore):
62228        * bindings/v8/V8Binding.h:
62229        (WebCore):
62230        * bindings/v8/V8PerIsolateData.cpp:
62231
622322012-08-13  Kentaro Hara  <haraken@chromium.org>
62233
62234        [V8] Move checkNewLegal() from V8Proxy.h to SafeAllocation.h
62235        https://bugs.webkit.org/show_bug.cgi?id=93830
62236
62237        Reviewed by Adam Barth.
62238
62239        This patch moves checkNewLegal() from V8Proxy.h to SafeAllocation.h.
62240        In addition, this patch renames checkNewLegal() to isValidConstructorMode()
62241        for clarification.
62242
62243        No tests. No change in behavior.
62244
62245        * UseV8.cmake:
62246        * WebCore.gypi:
62247        * bindings/v8/SafeAllocation.cpp: Added.
62248        * bindings/v8/SafeAllocation.h:
62249        (WebCore::SafeAllocation::newInstance):
62250        (WebCore):
62251        * bindings/v8/V8Binding.cpp:
62252        (WebCore::createRawTemplate):
62253        * bindings/v8/V8Proxy.cpp:
62254        * bindings/v8/V8Proxy.h:
62255        (V8Proxy):
62256
622572012-08-13  Kentaro Hara  <haraken@chromium.org>
62258
62259        [V8] Remove unused methods from V8Binding.h
62260        https://bugs.webkit.org/show_bug.cgi?id=93836
62261
62262        Reviewed by Adam Barth.
62263
62264        enableStringImplCache() and v8UndetectableString() are not used by anybody.
62265
62266        No tests. No change in behavior.
62267
62268        * bindings/v8/V8Binding.h:
62269
622702012-08-13  Kentaro Hara  <haraken@chromium.org>
62271
62272        [V8] Move hintForGCIfNecessary() from V8Proxy.h to V8GCController.h
62273        https://bugs.webkit.org/show_bug.cgi?id=93834
62274
62275        Reviewed by Adam Barth.
62276
62277        This patch moves hintForGCIfNecessary() from V8Proxy.h to V8GCController.h.
62278
62279        No tests. No change in behavior.
62280
62281        * bindings/v8/V8GCController.cpp:
62282        (WebCore::V8GCController::hintForGCIfNecessary):
62283        * bindings/v8/V8GCController.h:
62284        (V8GCController):
62285        * bindings/v8/V8Proxy.cpp:
62286        (WebCore::V8Proxy::clearForClose):
62287        (WebCore::V8Proxy::clearForNavigation):
62288        * bindings/v8/V8Proxy.h:
62289        (V8Proxy):
62290
622912012-08-13  Sheriff Bot  <webkit.review.bot@gmail.com>
62292
62293        Unreviewed, rolling out r124970.
62294        http://trac.webkit.org/changeset/124970
62295        https://bugs.webkit.org/show_bug.cgi?id=93495
62296
62297        Postponing the merge in a clearer context (Requested by
62298        Michelangelo on #webkit).
62299
62300        * css/CSSParser.cpp:
62301        (WebCore::CSSParser::parseValue):
62302        (WebCore::CSSParser::parseTransform):
62303        * css/CSSParser.h:
62304
623052012-08-12  Shawn Singh  <shawnsingh@chromium.org>
62306
62307        [chromium] renderSurface in incorrect space if owning layer has empty but non-zero bounds
62308        https://bugs.webkit.org/show_bug.cgi?id=93795
62309
62310        Reviewed by Adrienne Walker.
62311
62312        If a renderSurface is created by a layer that had zero
62313        area (empty) but non-zero bounds (either width or height was
62314        non-zero), then one translation transform was accidentally being
62315        skipped, causing the renderSurface drawTransform to be incorrect.
62316        The fix is simply to move that transform outside of the
62317        if-statement so it is not skipped.
62318
62319        Unit test added:
62320          CCLayerTreeHostCommonTest.verifyTransformsForDegenerateIntermediateLayer()
62321
62322        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
62323        (WebCore::calculateDrawTransformsInternal):
62324
623252012-08-13  Kentaro Hara  <haraken@chromium.org>
62326
62327        [V8] Remove [TreatReturnedNullAs=False]
62328        https://bugs.webkit.org/show_bug.cgi?id=93835
62329
62330        Reviewed by Adam Barth.
62331
62332        [TreatReturnedNullAs=False] is neither defined in the Web IDL spec
62333        nor used in any WebKit IDL file.
62334
62335        No tests. No change in behavior.
62336
62337        * WebCore.order:
62338        * bindings/js/JSDOMBinding.cpp:
62339        * bindings/js/JSDOMBinding.h:
62340        (WebCore):
62341        * bindings/scripts/CodeGeneratorJS.pm:
62342        (NativeToJSValue):
62343        * bindings/scripts/CodeGeneratorV8.pm:
62344        (NativeToJSValue):
62345        * bindings/scripts/IDLAttributes.txt:
62346        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
62347        * bindings/scripts/test/CPP/WebDOMTestObj.h:
62348        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
62349        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
62350        * bindings/scripts/test/JS/JSTestObj.cpp:
62351        (WebCore):
62352        * bindings/scripts/test/JS/JSTestObj.h:
62353        (WebCore):
62354        * bindings/scripts/test/ObjC/DOMTestObj.h:
62355        * bindings/scripts/test/ObjC/DOMTestObj.mm:
62356        * bindings/scripts/test/TestObj.idl:
62357        * bindings/scripts/test/V8/V8TestObj.cpp:
62358        (WebCore::ConfigureV8TestObjTemplate):
62359        * bindings/v8/V8Binding.h:
62360
623612012-08-13  Kentaro Hara  <haraken@chromium.org>
62362
62363        [V8] Rename v8ValueToWebCoreDOMStringList() to toDOMStringList()
62364        https://bugs.webkit.org/show_bug.cgi?id=93839
62365
62366        Reviewed by Adam Barth.
62367
62368        For naming consistency with toWebCoreString() and toWebCoreAtomicString(),
62369        this patch renames v8ValueToWebCoreDOMStringList() to toDOMStringList().
62370        ("WebCore" wouldn't be needed because it's clear from "DOMStringList".)
62371
62372        No tests. No change in behavior.
62373
62374        * bindings/scripts/CodeGeneratorV8.pm:
62375        (JSValueToNative):
62376        * bindings/scripts/test/V8/V8TestObj.cpp:
62377        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
62378        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
62379        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
62380        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
62381        * bindings/v8/V8Binding.cpp:
62382        (WebCore::toDOMStringList):
62383        * bindings/v8/V8Binding.h:
62384        (WebCore):
62385
623862012-08-13  Kentaro Hara  <haraken@chromium.org>
62387
62388        [V8] Rename v8ValueToAtomicWebCoreString() to toWebCoreAtomicString()
62389        https://bugs.webkit.org/show_bug.cgi?id=93824
62390
62391        Reviewed by Adam Barth.
62392
62393        For naming consistency with toWebCoreString(), we can rename
62394        v8ValueToAtomicWebCoreString() to toWebCoreAtomicString().
62395        Also we can rename v8ValueToAtomicWebCoreStringWithNullCheck()
62396        to toWebCoreAtomicStringWithNullCheck().
62397
62398        No tests. No change in behavior.
62399
62400        * bindings/scripts/CodeGeneratorV8.pm:
62401        (GenerateNormalAttrSetter):
62402        (GenerateEventListenerCallback):
62403        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
62404        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
62405        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
62406        * bindings/scripts/test/V8/V8TestObj.cpp:
62407        (WebCore::TestObjV8Internal::addEventListenerCallback):
62408        (WebCore::TestObjV8Internal::removeEventListenerCallback):
62409        * bindings/v8/V8Binding.cpp:
62410        (WebCore::toWebCoreAtomicString):
62411        * bindings/v8/V8Binding.h:
62412        (WebCore::toWebCoreStringWithNullOrUndefinedCheck):
62413        (WebCore::toWebCoreAtomicStringWithNullCheck):
62414        * bindings/v8/V8Collection.h:
62415        (WebCore::getNamedPropertyOfCollection):
62416        * bindings/v8/V8DOMWindowShell.cpp:
62417        (WebCore::getter):
62418        * bindings/v8/custom/V8DOMWindowCustom.cpp:
62419        (WebCore::V8DOMWindow::namedPropertyGetter):
62420        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
62421        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
62422        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
62423        (WebCore::V8HTMLCollection::namedPropertyGetter):
62424        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
62425        (WebCore::V8HTMLFormElement::namedPropertyGetter):
62426        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
62427        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
62428        * bindings/v8/custom/V8NodeListCustom.cpp:
62429        (WebCore::V8NodeList::namedPropertyGetter):
62430
624312012-08-13  Kentaro Hara  <haraken@chromium.org>
62432
62433        [V8] Remove v8ValueToWebCoreString()
62434        https://bugs.webkit.org/show_bug.cgi?id=93822
62435
62436        Reviewed by Adam Barth.
62437
62438        There are two equivalent ways to convert a V8 value to a WebCore String;
62439        i.e. v8ValueToWebCoreString() and toWebCoreString(). We can remove the former.
62440
62441        In a follow-up patch, I will replace v8ValueToAtomicWebCoreString()
62442        with toWebCoreAtomicString(), for consistency with toWebCoreString().
62443
62444        No tests. No change in behavior.
62445
62446        * bindings/v8/Dictionary.cpp:
62447        (WebCore::Dictionary::get):
62448        (WebCore::Dictionary::getWithUndefinedOrNullCheck):
62449        (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
62450        * bindings/v8/IDBBindingUtilities.cpp:
62451        (WebCore::createIDBKeyFromValue):
62452        * bindings/v8/ScriptDebugServer.cpp:
62453        (WebCore::ScriptDebugServer::setBreakpoint):
62454        * bindings/v8/V8Binding.cpp:
62455        (WebCore::toWebCoreString):
62456        (WebCore::v8ValueToWebCoreDOMStringList):
62457        * bindings/v8/V8Binding.h:
62458        (WebCore::toWebCoreStringWithNullCheck):
62459        * bindings/v8/custom/V8MessageEventCustom.cpp:
62460        (WebCore::V8MessageEvent::initMessageEventCallback):
62461
624622012-08-13  Kentaro Hara  <haraken@chromium.org>
62463
62464        [V8] Move the ConstructorMode class from V8Binding.h to SafeAllocation.h
62465        https://bugs.webkit.org/show_bug.cgi?id=93821
62466
62467        Reviewed by Adam Barth.
62468
62469        This patch factors out the ConstructorMode class from V8Binding.h to SafeAllocation.h.
62470
62471        No tests. No change in behavior.
62472
62473        * bindings/v8/SafeAllocation.h:
62474        (ConstructorMode):
62475        (WebCore::ConstructorMode::ConstructorMode):
62476        (WebCore::ConstructorMode::~ConstructorMode):
62477        (WebCore::ConstructorMode::current):
62478        (WebCore):
62479        * bindings/v8/V8Binding.h:
62480        * bindings/v8/V8RecursionScope.h:
62481
624822012-08-13  Kentaro Hara  <haraken@chromium.org>
62483
62484        [V8] Remove V8BindingHelpers
62485        https://bugs.webkit.org/show_bug.cgi?id=93807
62486
62487        Reviewed by Adam Barth.
62488
62489        V8BindingHelpers contains toV8Context() and toV8Proxy(), which are used
62490        by NPV8Object.cpp only.
62491
62492        (1) Move these methods to NPV8Object.cpp as static methods.
62493        (2) Remove V8BindingHelpers.{h,cpp}.
62494
62495        No tests. No change in behavior.
62496
62497        * UseV8.cmake:
62498        * WebCore.gypi:
62499        * bindings/v8/NPV8Object.cpp:
62500        (WebCore::toV8Context):
62501        (WebCore):
62502        (WebCore::toV8Proxy):
62503        * bindings/v8/V8Binding.h:
62504        * bindings/v8/V8BindingHelpers.cpp: Removed.
62505        * bindings/v8/V8BindingHelpers.h: Removed.
62506
625072012-08-13  Kentaro Hara  <haraken@chromium.org>
62508
62509        [V8] Remove unused methods and headers from V8Utilities
62510        https://bugs.webkit.org/show_bug.cgi?id=93805
62511
62512        Reviewed by Adam Barth.
62513
62514        This patch removes unused methods, forward declarations and
62515        headers from V8Utilities.{h,cpp}.
62516
62517        No tests. No change in behavior.
62518
62519        * bindings/v8/V8Utilities.cpp:
62520        * bindings/v8/V8Utilities.h:
62521        (WebCore):
62522
625232012-08-13  Kentaro Hara  <haraken@chromium.org>
62524
62525        [V8] Move V8PerIsolateData::visitExternalStrings() to V8PerIsolateData.cpp
62526        https://bugs.webkit.org/show_bug.cgi?id=93803
62527
62528        Reviewed by Adam Barth.
62529
62530        In r125015, I forgot to move V8PerIsolateData::visitExternalStrings()
62531        to V8PerIsolateData.cpp. This patch moves it.
62532
62533        No tests. No change in behavior.
62534
62535        * bindings/v8/V8Binding.cpp:
62536        * bindings/v8/V8PerIsolateData.cpp:
62537        (WebCore):
62538        (WebCore::V8PerIsolateData::visitExternalStrings):
62539
625402012-08-13  Elliott Sprehn  <esprehn@chromium.org>
62541
62542        Expand list of supported languages for RenderQuote to match WHATWG spec
62543        https://bugs.webkit.org/show_bug.cgi?id=93424
62544
62545        Reviewed by Eric Seidel.
62546
62547        Expand the table of quotes to include the 148 lang values and associated quotes
62548        from the WHATWG web-apps recommended styling spec.
62549
62550        Test: fast/css-generated-content/quotes-lang-case-insensitive.html
62551
62552        * rendering/RenderQuote.cpp: Added missing copyright.
62553        (WebCore::quotesDataLanguageMap): Expanded the table of quotes.
62554        (WebCore::basicQuotesData): Added a FIXME to switch to using stylized "en" quotes.
62555        * rendering/RenderQuote.h: Added missing copyright.
62556
625572012-08-09  Kentaro Hara  <haraken@chromium.org>
62558
62559        [V8] Remove evaluateInIsolatedWorld() from V8Proxy
62560        https://bugs.webkit.org/show_bug.cgi?id=93679
62561
62562        Reviewed by Adam Barth.
62563
62564        To remove V8Proxy, this patch moves V8Proxy::evaluateInIsolatedWorld()
62565        to ScriptController.
62566
62567        No tests. No change in behavior.
62568
62569        * bindings/v8/ScriptController.cpp:
62570        (WebCore::ScriptController::evaluateInIsolatedWorld):
62571        * bindings/v8/V8Proxy.cpp:
62572        (WebCore::V8Proxy::precompileScript):
62573
625742012-08-13  Bear Travis  <betravis@adobe.com>
62575
62576        [CSS Exclusions] Remove unused CSSWrapShapes header includes
62577        https://bugs.webkit.org/show_bug.cgi?id=93395
62578
62579        Reviewed by Kentaro Hara.
62580
62581        Removing the #include "CSSWrapShapes.h" lines from StyleBuilder.cpp and
62582        RenderStyle.cpp. Both files now use the length-based WrapShapes.h classes.
62583
62584        * css/StyleBuilder.cpp:
62585        * rendering/style/RenderStyle.cpp:
62586
625872012-08-13  Pravin D  <pravind.2k4@gmail.com>
62588
62589        Bad cast in RenderBox::computeReplacedLogicalHeightUsing
62590        https://bugs.webkit.org/show_bug.cgi?id=93875
62591
62592        Reviewed by Abhishek Arya.
62593
62594        Pointer to the container of a replaced element was being type casted to renderbox
62595        without checking if the container is a renderbox or not.
62596
62597        Test: fast/replaced/render-inline-cast-to-render-box-crash.html
62598
62599        * rendering/RenderBox.cpp:
62600        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
62601         Scrollbar height is retrieved only if the container is a renderBox. Otherwise scrollbar is taken as zero.
62602
626032012-08-13  James Robinson  <jamesr@chromium.org>
62604
62605        [chromium] Make WebAnimation a pure virtual interface to hide implementation and avoid unresolved symbols
62606        https://bugs.webkit.org/show_bug.cgi?id=93907
62607
62608        Reviewed by Darin Fisher.
62609
62610        Updates WebAnimation users for interface changes.
62611
62612        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
62613        (WebCore::createWebAnimation):
62614        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
62615        (WebCore::GraphicsLayerChromium::addAnimation):
62616
626172012-08-11  Raphael Kubo da Costa  <rakuco@webkit.org>
62618
62619        [CMake] Rewrite FindLibSoup2.cmake.
62620        https://bugs.webkit.org/show_bug.cgi?id=93191
62621
62622        Reviewed by Rob Buis.
62623
62624        * PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO,
62625        also link against GObject, which is needed by libsoup.
62626
626272012-08-10  James Robinson  <jamesr@chromium.org>
62628
62629        [chromium] Clean up dependencies for Canvas2DLayerBridgeTest and GraphicsLayerChromiumTest unit tests
62630        https://bugs.webkit.org/show_bug.cgi?id=93757
62631
62632        Reviewed by Adrienne Walker.
62633
62634        Exposes the current contentsScale for tests.
62635
62636        * platform/graphics/chromium/GraphicsLayerChromium.h:
62637        (GraphicsLayerChromium):
62638
626392012-08-13  Andreas Kling  <kling@webkit.org>
62640
62641        Reduce the size of empty NinePieceImage objects.
62642        <http://webkit.org/b/93747>
62643
62644        Reviewed by Antti Koivisto.
62645
62646        Move the members of NinePieceImage into a NinePieceImageData class, leaving NinePieceImage
62647        with a single OwnPtr<NinePieceImageData> member. The constant NinePieceImage::defaultData()
62648        provides default values for objects with null m_data.
62649
62650        RenderStyle's "StyleSurroundData" member has a BorderData, which in turn holds a NinePieceImage.
62651        This means that anything with left/right/top/bottom, margin, padding or border style but *no*
62652        border-image will save 104 bytes (assuming their RenderStyle is unshared, which is fairly common.)
62653
62654        This reduces the size of StyleSurroundData by 104 bytes, effectively reducing memory consumption
62655        by 1.72MB when viewing the full HTML5 spec at <http://whatwg.org/c>
62656
62657        * rendering/style/NinePieceImage.cpp:
62658        (WebCore::NinePieceImageData::operator==):
62659        (WebCore::NinePieceImage::defaultData):
62660        (WebCore):
62661        * rendering/style/NinePieceImage.h:
62662        (WebCore::NinePieceImageData::NinePieceImageData):
62663        (NinePieceImageData):
62664        (WebCore::NinePieceImageData::operator!=):
62665        (WebCore):
62666        (NinePieceImage):
62667        (WebCore::NinePieceImage::NinePieceImage):
62668        (WebCore::NinePieceImage::operator=):
62669        (WebCore::NinePieceImage::operator==):
62670        (WebCore::NinePieceImage::operator!=):
62671        (WebCore::NinePieceImage::hasImage):
62672        (WebCore::NinePieceImage::image):
62673        (WebCore::NinePieceImage::setImage):
62674        (WebCore::NinePieceImage::imageSlices):
62675        (WebCore::NinePieceImage::setImageSlices):
62676        (WebCore::NinePieceImage::fill):
62677        (WebCore::NinePieceImage::setFill):
62678        (WebCore::NinePieceImage::borderSlices):
62679        (WebCore::NinePieceImage::setBorderSlices):
62680        (WebCore::NinePieceImage::outset):
62681        (WebCore::NinePieceImage::setOutset):
62682        (WebCore::NinePieceImage::horizontalRule):
62683        (WebCore::NinePieceImage::setHorizontalRule):
62684        (WebCore::NinePieceImage::verticalRule):
62685        (WebCore::NinePieceImage::setVerticalRule):
62686        (WebCore::NinePieceImage::copyImageSlicesFrom):
62687        (WebCore::NinePieceImage::copyBorderSlicesFrom):
62688        (WebCore::NinePieceImage::copyOutsetFrom):
62689        (WebCore::NinePieceImage::copyRepeatFrom):
62690        (WebCore::NinePieceImage::setMaskDefaults):
62691        (WebCore::NinePieceImage::ensureData):
62692        (WebCore::NinePieceImage::data):
62693
626942012-08-13  Florin Malita  <fmalita@chromium.org>
62695
62696        WebKit+SVG does not support color-interpolation-filters or draw filters in correct colorspace
62697        https://bugs.webkit.org/show_bug.cgi?id=6033
62698
62699        Reviewed by Dirk Schulze.
62700
62701        This patch adds support for SVG color-interpolation-filters. All non-CG plarforms now
62702        perform color space conversions as needed (CG performs color space adjustments internally),
62703        and the new default color space for filters is linearRGB
62704        (http://www.w3.org/TR/SVG/filters.html#FilterPrimitivesOverviewIntro).
62705
62706        FilterEffect tracks the color-interpolation-filters attribute (m_colorSpace) and the
62707        current result color space (m_resultColorSpace). When applying, the input results are
62708        converted to the current FilterEffect's color space, and at the end of the filter effect
62709        chain the result is finally converted to ColorSpaceDeviceRGB.
62710
62711        FilterEffect::transformResultColorSpace() handles non-CG color space converion (CG has
62712        built in support for different color spaces) by first converting the result to an image
62713        buffer, and then using the platform specific ImageBuffer::transformColorSpace(). This can
62714        be expensive for filter chains with alternating color-interpolation-filters, but can be
62715        optimized if/when color space support is added to all the graphics backends similarly to CG.
62716
62717        As expected, lots of filter-related pixel results will require rebaselining after this lands.
62718
62719        Test: svg/filters/color-interpolation-filters.svg
62720
62721        * platform/graphics/filters/FilterEffect.cpp:
62722        (WebCore::FilterEffect::FilterEffect):
62723        (WebCore::FilterEffect::apply):
62724        (WebCore::FilterEffect::asImageBuffer):
62725        (WebCore::FilterEffect::createImageBufferResult):
62726        (WebCore::FilterEffect::transformResultColorSpace):
62727        (WebCore):
62728        * platform/graphics/filters/FilterEffect.h:
62729        (WebCore::FilterEffect::colorSpace):
62730        (WebCore::FilterEffect::setColorSpace):
62731        (FilterEffect):
62732        * platform/graphics/filters/SourceGraphic.h:
62733        (WebCore::SourceGraphic::SourceGraphic):
62734        * rendering/FilterEffectRenderer.cpp:
62735        (WebCore::FilterEffectRenderer::apply):
62736        * rendering/svg/RenderSVGResourceFilter.cpp:
62737        (WebCore::RenderSVGResourceFilter::buildPrimitives):
62738        (WebCore::RenderSVGResourceFilter::postApplyResource):
62739
627402012-08-13  Raymond Toy  <rtoy@google.com>
62741
62742        Oscillator node should throw exception if type is assigned an invalid value
62743        https://bugs.webkit.org/show_bug.cgi?id=93490
62744
62745        Reviewed by Chris Rogers.
62746
62747        New tests added to oscillator-basic to catch exceptions.
62748
62749        * Modules/webaudio/Oscillator.cpp:
62750        (WebCore::Oscillator::Oscillator):
62751        (WebCore::Oscillator::setType): Return exception
62752        * Modules/webaudio/Oscillator.h:
62753        (Oscillator): Update setType declaration
62754        * Modules/webaudio/Oscillator.idl: setType can raise exception.
62755
627562012-08-13  Chris Rogers  <crogers@google.com>
62757
62758        AudioContext::createMediaStreamSource() must create a provider for local MediaStreams
62759        https://bugs.webkit.org/show_bug.cgi?id=93756
62760
62761        Reviewed by Eric Carlson.
62762
62763        There are two main kinds of MediaStreams (local and from remote peers).
62764        Internally we need to know the difference so a MediaStreamAudioSourceNode will "just work".
62765
62766        Tested by existing test: mediastreamaudiosourcenode.html
62767        Full testing can only be verified by manual tests.
62768
62769        * Modules/mediastream/LocalMediaStream.h:
62770        (LocalMediaStream):
62771        * Modules/mediastream/MediaStream.h:
62772        (WebCore::MediaStream::isLocal):
62773        (MediaStream):
62774        * Modules/webaudio/AudioContext.cpp:
62775        (WebCore::AudioContext::createMediaStreamSource):
62776
627772012-08-13  Simon Hausmann  <simon.hausmann@nokia.com>
62778
62779        Unreviewed, rolling out r125444.
62780        http://trac.webkit.org/changeset/125444
62781        https://bugs.webkit.org/show_bug.cgi?id=93872
62782
62783        Broke some tests
62784
62785        * bridge/qt/qt_runtime.cpp:
62786        (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
62787        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
62788        * bridge/qt/qt_runtime.h:
62789        (QtRuntimeMethod):
62790
627912012-08-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>
62792
62793        CanvasRenderContext2D::font() does not re-serialize the font
62794        https://bugs.webkit.org/show_bug.cgi?id=50859
62795
62796        Reviewed by Kenneth Rohde Christiansen.
62797
62798        Added proper serialization for the font property.
62799
62800        No new tests, unskipped the existing ones.
62801
62802        * html/canvas/CanvasRenderingContext2D.cpp:
62803        (WebCore::CanvasRenderingContext2D::font):
62804
628052012-08-13  Elliott Sprehn  <esprehn@chromium.org>
62806
62807        CSS quotes output quotes when depth is negative
62808        https://bugs.webkit.org/show_bug.cgi?id=92690
62809
62810        Reviewed by Eric Seidel.
62811
62812        Previously if the quote depth would go negative we would output the close quote from the
62813        first pair of quotes again instead of outputting no quotes as required by the spec.
62814 
62815        See: http://www.w3.org/TR/CSS21/generate.html#quotes-insert
62816
62817        Test: fast/css-generated-content/nested-quote-more-than-pairs.html
62818
62819        * rendering/RenderQuote.cpp:
62820        (WebCore::RenderQuote::originalText): Allow the value passed to getOpenQuote to go negative by removing std::max.
62821        * rendering/style/QuotesData.cpp:
62822        (WebCore::QuotesData::getOpenQuote): Bounds check for negative values for safety.
62823        (WebCore::QuotesData::getCloseQuote): Allow index to be >= -1 and return an empty string for -1.
62824
628252012-08-13  Vangelis Kokkevis  <vangelis@chromium.org>
62826
62827        [chromium] Clear HUD canvas contents before drawing into it.
62828        https://bugs.webkit.org/show_bug.cgi?id=93759
62829
62830        Reviewed by Adrienne Walker.
62831
62832        Not clearing the bitmaps before drawing into it results into
62833        random noise. This patch also caches the SkCanvas used by the HUD
62834        to avoid reallocating it every frame.
62835
62836        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
62837        (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
62838        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
62839
628402012-08-13  Simon Hausmann  <simon.hausmann@nokia.com>
62841
62842        [Qt] Replace use of internal Weak smart pointer with JSWeakObjectMap
62843        https://bugs.webkit.org/show_bug.cgi?id=93872
62844
62845        Reviewed by Kenneth Rohde Christiansen.
62846
62847        The intention of this patch series is to replace use of internal JSC
62848        API with use of the stable and public C API.
62849
62850        The JSC::Weak template is internal API and the only part of the C API
62851        that exposes similar functionality is the JSWeakObjectMap. It is
62852        special in the sense that its life-time is tied to the life-time of the
62853        JS global object, which in turn is subject to garbage collection. In
62854        order to maximize re-use of the same map across different JSContextRef
62855        instances, we use the associated global context ref as owner of the
62856        weak maps. The key in the weak map is the identity (pointer) of the
62857        runtime method object itself.  The iteration through the maps is
62858        tedious, but should usually not go beyond just a few.
62859
62860        * bridge/qt/qt_runtime.cpp:
62861        (Bindings):
62862        (JSC::Bindings::methodMapCleaner):
62863        (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
62864        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
62865        * bridge/qt/qt_runtime.h:
62866        (QtRuntimeMethod):
62867
628682012-08-13  Raphael Kubo da Costa  <rakuco@webkit.org>
62869
62870        [CMake] Remove glib-related Find modules and write single new one instead.
62871        https://bugs.webkit.org/show_bug.cgi?id=93786
62872
62873        Reviewed by Rob Buis.
62874
62875        No new tests, build system plumbing.
62876
62877        * PlatformEfl.cmake: Use GLIB_* instead of Glib_*, and link
62878        directly against GIO, as code in the soup network backend uses
62879        that.
62880
628812012-08-13  Simon Hausmann  <simon.hausmann@nokia.com>
62882
62883        [Qt] Simplify storage and reduce size of QtConnectionObject
62884        https://bugs.webkit.org/show_bug.cgi?id=93868
62885
62886        Reviewed by Kenneth Rohde Christiansen.
62887
62888        The connection object is a child of the sender QObject, so we can use parent()
62889        whenever we need the sender instead of keeping an extra QObject pointer. Also
62890        QtConnectionObject kept a RefPtr to the Instance, but actually only needed the
62891        root object, so we can store a pointer to that instead.
62892
62893        * bridge/qt/qt_runtime.cpp:
62894        (JSC::Bindings::QtConnectionObject::QtConnectionObject):
62895        (JSC::Bindings::QtConnectionObject::~QtConnectionObject):
62896        (JSC::Bindings::QtConnectionObject::execute):
62897        (JSC::Bindings::QtConnectionObject::match):
62898        * bridge/qt/qt_runtime.h:
62899        (QtConnectionObject):
62900
629012012-08-13  Zan Dobersek  <zandobersek@gmail.com>
62902
62903        Media(Stream|Element)AudioSourceNode should be guarded by the WEB_AUDIO condition as well
62904        https://bugs.webkit.org/show_bug.cgi?id=93864
62905
62906        Reviewed by Eric Carlson.
62907
62908        Add the WEB_AUDIO to the Conditional attribute in MediaElementAudioSourceNode
62909        IDL file and the ENABLE(WEB_AUDIO) compilation guard to the header files for both
62910        MediaStreamAudioSourceNode and MediaElementAudioSourceNode.
62911
62912        No new tests - no new functionality.
62913
62914        * Modules/webaudio/MediaElementAudioSourceNode.h:
62915        * Modules/webaudio/MediaStreamAudioSourceNode.h:
62916        * Modules/webaudio/MediaStreamAudioSourceNode.idl:
62917
629182012-08-13  Simon Hausmann  <simon.hausmann@nokia.com>
62919
62920        [Qt] Clean up exception handling
62921        https://bugs.webkit.org/show_bug.cgi?id=93880
62922
62923        Reviewed by Kenneth Rohde Christiansen.
62924
62925        The JSC C API uses a JSValueRef* exception parameter to indicate to the
62926        caller that an exception was thrown. Naturally the caller must store
62927        that ValueRef on the stack in order to get seen and marked by the
62928        garbage collector, otherwise the callee would have to use
62929        JSValueProtect on it.
62930
62931        This patch fixes one such case where in fact the exception pointer was passed as zero to the
62932        callee and thus ignored. The patch also removes an unused exception parameter.
62933
62934        * bridge/qt/qt_class.cpp:
62935        (JSC::Bindings::QtClass::fallbackObject):
62936        * bridge/qt/qt_runtime.cpp:
62937        (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
62938        * bridge/qt/qt_runtime.h:
62939
629402012-08-13  Pavel Feldman  <pfeldman@chromium.org>
62941
62942        Web Inspector: remove commitEditing from the text editor delegate.
62943        https://bugs.webkit.org/show_bug.cgi?id=93858
62944
62945        Reviewed by Vsevolod Vlasov.
62946
62947        This should be up to the source frame.
62948
62949        * inspector/front-end/DefaultTextEditor.js:
62950        (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
62951        * inspector/front-end/SourceFrame.js:
62952        (WebInspector.SourceFrame):
62953        (WebInspector.SourceFrame.prototype.scrollChanged):
62954        (WebInspector.SourceFrame.prototype._handleKeyDown):
62955        (WebInspector.SourceFrame.prototype._commitEditing):
62956        * inspector/front-end/TextEditor.js:
62957
629582012-08-13  Sheriff Bot  <webkit.review.bot@gmail.com>
62959
62960        Unreviewed, rolling out r125430.
62961        http://trac.webkit.org/changeset/125430
62962        https://bugs.webkit.org/show_bug.cgi?id=93881
62963
62964        Caused css2.1/t1604-c541-word-sp-00-b-a.html to regress on Mac
62965        builds (Requested by mwenge on #webkit).
62966
62967        * platform/graphics/WidthIterator.cpp:
62968        (WebCore::WidthIterator::advance):
62969        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
62970        (WebCore::HarfBuzzShaperBase::isWordEnd):
62971        * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
62972        (HarfBuzzShaperBase):
62973        (WebCore::HarfBuzzShaperBase::isCodepointSpace):
62974        * platform/graphics/mac/ComplexTextController.cpp:
62975        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
62976        * rendering/RenderBlockLineLayout.cpp:
62977        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
62978        * rendering/RenderText.cpp:
62979        (WebCore::RenderText::widthFromCache):
62980
629812012-08-13  Mike West  <mkwst@chromium.org>
62982
62983        FrameLoader::receivedMainResourceError doesn't handle GET cancellations well.
62984        https://bugs.webkit.org/show_bug.cgi?id=93850
62985
62986        Reviewed by Adam Barth.
62987
62988        'FrameLoader::cancel' should reset the loader's state, and it mostly
62989        does. In the case of a GET form submission, however, the submitted form
62990        URL that's stored doesn't match the URL that's requested (query string).
62991        This leads to the loader getting a bit confused about what's going on,
62992        and not clearing the stored form submission URL.
62993
62994        This patch moves to storing the form submission's actual request URL
62995        as opposed to the form action URL.
62996
62997        None of the current tests should break, and when issue 93777 lands, it
62998        won't be broken either.
62999
63000        * loader/FrameLoader.cpp:
63001        (WebCore::FrameLoader::submitForm):
63002            Switched to using 'FormSubmission::requestURL', as that matches the
63003            URL that's actually requested during a form submission via GET.
63004
630052012-08-13  Antonio Gomes  <agomes@rim.com>
63006
63007        [BlackBerry] Hardware accelerated scrolling of <select> content
63008        https://bugs.webkit.org/show_bug.cgi?id=93856
63009
63010        Reviewed by Rob Buis.
63011
63012        Internally reviewed by Matthew Staikos.
63013
63014        * Resources/blackberry/selectControlBlackBerry.css: add -webkit-overflow-scrolling: touch (EOM).
63015        (.select-area):
63016
630172012-08-13  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
63018
63019        [Qt] Assertion in RenderObject::offsetFromAncestorContainer
63020        https://bugs.webkit.org/show_bug.cgi?id=93845
63021
63022        Reviewed by Kenneth Rohde Christiansen.
63023
63024        Do not attempt to clip using layers that are not containers of the renderer.
63025
63026        * page/GestureTapHighlighter.cpp:
63027
630282012-08-13  Dominik Röttsches  <dominik.rottsches@intel.com>
63029
63030        [Cairo] canvas/philip/tests/2d.drawImage.self.2.html test failing on ports using Cairo
63031        https://bugs.webkit.org/show_bug.cgi?id=93244
63032
63033        Reviewed by Kenneth Rohde Christiansen.
63034
63035        Similar to Skia's and Qt's ImageBuffer implementation we need to make sure that buffers
63036        for images are copied when the destination canvas is identical to the
63037        image buffer's context. This happens mostly in JS calls to canvas' drawImage method.
63038        For now fixing the drawImage case, drawPattern case is handled in bug 93854.
63039
63040        No new tests, covered by canvas/philip/tests/2d.drawImage.self.2.html
63041
63042        * platform/graphics/cairo/ImageBufferCairo.cpp:
63043        (WebCore::ImageBuffer::draw): Making sure buffer is copied when source and destination contexts are identical.
63044
630452012-06-24  Robert Hogan  <robert@webkit.org>
63046
63047        CSS 2.1 failure: Word-spacing affects each space and non-breaking space
63048        https://bugs.webkit.org/show_bug.cgi?id=89826
63049
63050        Reviewed by Eric Seidel.
63051
63052        Add word spacing to consecutive spaces in a run per http://www.w3.org/TR/CSS21/text.html#spacing-props.
63053
63054        Test: fast/css/word-spacing-characters.html
63055              fast/css/word-spacing-characters-complex-text.html
63056              fast/css/word-spacing-characters-linebreak.html
63057              css2.1/20110323/word-spacing-characters-002.htm
63058              css2.1/20110323/word-spacing-characters-003.htm
63059              css2.1/20110323/word-spacing-remove-space-001.htm
63060              css2.1/20110323/word-spacing-remove-space-002.htm
63061              css2.1/20110323/word-spacing-remove-space-003.htm
63062              css2.1/20110323/word-spacing-remove-space-004.htm
63063              css2.1/20110323/word-spacing-remove-space-005.htm
63064              css2.1/20110323/word-spacing-remove-space-006.htm
63065              css2.1/20110323/c541-word-sp-001.htm
63066
63067        * platform/graphics/WidthIterator.cpp:
63068        (WebCore::WidthIterator::advance): All spaces (ordinary space or &nbsp;) get word-spacing added, even
63069          if they are consecutive.
63070        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
63071        (WebCore::HarfBuzzShaperBase::isWordEnd): ditto, but for the complex text case on Chromium. Had to use
63072          m_run rather than m_normalizedBuffer here as m_normalizedBuffer turns tabs into spaces! Unlike the simple
63073          text path, '\n' gets word-spacing - I observed this from fast/text/atsui-spacing-features.html but can't
63074          find it specified anywhere.
63075        * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
63076        (WebCore::HarfBuzzShaperBase::isCodepointSpace):
63077        * platform/graphics/mac/ComplexTextController.cpp:
63078        (WebCore::ComplexTextController::adjustGlyphsAndAdvances): ditto, but for the complext text case on Mac.
63079           The change to this file is speculative, I don't have a Mac build.
63080        * rendering/RenderBlockLineLayout.cpp:
63081        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Tested by word-spacing-linebreak.html
63082        * rendering/RenderText.cpp:
63083        (WebCore::RenderText::widthFromCache): This code-path is not covered by any existing layout tests!
63084          I've tried to come up with a test to hit it but have failed.
63085
630862012-08-13  Anna Cavender  <annacc@chromium.org>
63087
63088        Remove webkitMediaSourceURL from HTMLMediaElement.idl
63089        https://bugs.webkit.org/show_bug.cgi?id=93619
63090
63091        Reviewed by Adam Barth.
63092
63093        The webkitMediaSourceURL attribute is no longer needed now that we use
63094        createObjectURL() to generate a media source URL.
63095
63096        Test: update http/test/media/media-source/media-source.js
63097
63098        * html/HTMLMediaElement.h:
63099        * html/HTMLMediaElement.idl:
63100
631012012-08-13  Simon Hausmann  <simon.hausmann@nokia.com>
63102
63103        [Qt] Port meta method/signal/slot handling in run-time bridge to use JSC C API
63104        https://bugs.webkit.org/show_bug.cgi?id=93476
63105
63106        Reviewed by Kenneth Rohde Christiansen.
63107
63108        Based on patch by No'am Rosenthal and lots of good suggestions by Caio Marcelo.
63109
63110        Ported the code that mapped invokable methods (and signals/slots) as
63111        well as the code that provides the connect() and disconnect() functions
63112        over to use the JSC C API. In the process one behavioural change was
63113        implemented: Previously meta methods were actually function objects
63114        that through Function.prototype allowed calling via
63115        object.method.call(object). Through the use of plain JS objects that is
63116        not possible anymore.
63117
63118        If we tried to continue to use function objects (JSObjectMakeFunction)
63119        then we would loose the ability to store the private pointer. An
63120        alternative approach would be to use a regular object and install the
63121        Function prototype (Function.prototype), but unfortunately we cannot do
63122        that without loosing the common prototype for signals and slots.
63123
63124        * bridge/qt/qt_class.cpp:
63125        (JSC::Bindings::QtClass::fallbackObject):
63126        * bridge/qt/qt_instance.cpp:
63127        (JSC::Bindings::QtInstance::~QtInstance):
63128        (JSC::Bindings::QtInstance::newRuntimeObject):
63129        * bridge/qt/qt_instance.h:
63130        (Bindings):
63131        (QtInstance):
63132        * bridge/qt/qt_runtime.cpp:
63133        (JSC::Bindings::prototypeForSignalsAndSlots):
63134        (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
63135        (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
63136        (JSC::Bindings::QtRuntimeMethod::call):
63137        (JSC::Bindings::QtRuntimeMethod::connect):
63138        (JSC::Bindings::QtRuntimeMethod::disconnect):
63139        (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
63140        (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
63141        (Bindings):
63142        (JSC::Bindings::QtConnectionObject::~QtConnectionObject):
63143        * bridge/qt/qt_runtime.h:
63144        (JSC::Bindings::QtRuntimeMethod::name):
63145        (QtRuntimeMethod):
63146        (QtConnectionObject):
63147
631482012-08-13  Leandro Gracia Gil  <leandrogracia@chromium.org>
63149
63150        [Chromium] Fix nits in the find-in-page match rects API
63151        https://bugs.webkit.org/show_bug.cgi?id=93817
63152
63153        Reviewed by Adam Barth.
63154
63155        This patch fixes a few pending nits from 93111.
63156
63157        Tests: existing WebKit unit test WebFrameTest.FindInPageMatchRects
63158
63159        * dom/Range.cpp:
63160        (WebCore::Range::transformFriendlyBoundingBox): add call to updateLayoutIgnorePendingStylesheets.
63161
631622012-08-13  Pavel Feldman  <pfeldman@chromium.org>
63163
63164        Web Inspector: get rid of beforeTextChanged
63165        https://bugs.webkit.org/show_bug.cgi?id=93851
63166
63167        Reviewed by Vsevolod Vlasov.
63168
63169        Merged beforeTextChanged and afterTextChanged into a single
63170        onTextChanged event.
63171
63172        * inspector/front-end/CodeMirrorTextEditor.js:
63173        (WebInspector.CodeMirrorTextEditor.prototype.editRange):
63174        (WebInspector.CodeMirrorTextEditor.prototype._onChange):
63175        * inspector/front-end/DefaultTextEditor.js:
63176        (WebInspector.DefaultTextEditor.prototype._enterInternalTextChangeMode):
63177        (WebInspector.DefaultTextEditor.prototype._exitInternalTextChangeMode):
63178        * inspector/front-end/JavaScriptSourceFrame.js:
63179        (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
63180        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointsBeforeEditing):
63181        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
63182        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
63183        * inspector/front-end/SourceFrame.js:
63184        (WebInspector.SourceFrame.prototype.onTextChanged):
63185        (WebInspector.TextEditorDelegateForSourceFrame.prototype.onTextChanged):
63186        * inspector/front-end/TextEditor.js:
63187        (WebInspector.TextEditorDelegate.prototype.onTextChanged):
63188        * inspector/front-end/UISourceCodeFrame.js:
63189        (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
63190
631912012-08-13  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
63192
63193        [css] Remove "default" switch case from CSS primitive value mappings
63194        https://bugs.webkit.org/show_bug.cgi?id=93781
63195
63196        Reviewed by Alexey Proskuryakov.
63197
63198        Removing the "default" switch case allows compile-time early warning check,
63199        specially useful for newly added or removed enumeration values.
63200
63201        * css/CSSPrimitiveValueMappings.h:
63202
632032012-08-13  Anna Cavender  <annacc@chromium.org>
63204
63205        Cap the number of SourceBuffers that may be added to a MediaSource.
63206        https://bugs.webkit.org/show_bug.cgi?id=93406
63207
63208        Reviewed by Eric Carlson.
63209
63210        Make sure that no more SourceBuffer objects are added to a MediaSource
63211        than can fit into the sourceBuffers SourceBufferList (internally stored
63212        as a Vector). Also, make sure that new SourceBuffers are added with a
63213        unique id even if the variable we are using to generate id wraps around.
63214
63215        No new tests.  It would not be realistic to add so many SourceBuffers to
63216        test the id variable wrapping.  Existing tests should not be affected.
63217
63218        * Modules/mediasource/MediaSource.cpp:
63219        (WebCore::MediaSource::MediaSource):
63220        (WebCore::MediaSource::addSourceBuffer): Obtain a unique id before creating
63221            a new SourceBuffer.
63222        * Modules/mediasource/MediaSource.h:
63223        * Modules/mediasource/SourceBufferList.cpp:
63224        (WebCore::SourceBufferList::SourceBufferList):
63225        (WebCore::SourceBufferList::generateUniqueId): Search for and generate a
63226            unique id.
63227        (WebCore):
63228        (WebCore::SourceBufferList::contains): Check if a SourceBuffer with a
63229            given id already exists in this SourceBufferList.
63230        * Modules/mediasource/SourceBufferList.h:
63231        (SourceBufferList):
63232
632332012-08-13  Andrey Kosyakov  <caseq@chromium.org>
63234
63235        Web Inspector: when status bar is too narrow, cut panel status bar, not main status bar items
63236        https://bugs.webkit.org/show_bug.cgi?id=93814
63237
63238        Reviewed by Pavel Feldman.
63239
63240        - set shrink factor of bottom-status-bar-container to 1;
63241        - set bottom-status-bar-container's width to 0 to workaround for flex-basis being ignored;
63242
63243        * inspector/front-end/inspector.css:
63244        (#bottom-status-bar-container):
63245
632462012-08-13  Yury Semikhatsky  <yurys@chromium.org>
63247
63248        Web Inspector: add memory instrumentation for Attribute
63249        https://bugs.webkit.org/show_bug.cgi?id=93827
63250
63251        Reviewed by Pavel Feldman.
63252
63253        Attribute's name and value footprint is counted as part of the DOM
63254        component.
63255
63256        * dom/Attribute.h:
63257        (WebCore::Attribute::reportMemoryUsage):
63258        (Attribute):
63259        * dom/ElementAttributeData.cpp:
63260        (WebCore::ElementAttributeData::reportMemoryUsage):
63261
632622012-08-13  Vsevolod Vlasov  <vsevik@chromium.org>
63263
63264        Web Inspector: Polish search/replace toolbar buttons style.
63265        https://bugs.webkit.org/show_bug.cgi?id=93826
63266
63267        Reviewed by Pavel Feldman.
63268
63269        * inspector/front-end/inspector.css:
63270        (.toolbar-search button):
63271
632722012-08-13  Kwang Yul Seo  <skyul@company100.net>
63273
63274        [Qt] Add gprof.prf to build WebKit with gprof enabled
63275        https://bugs.webkit.org/show_bug.cgi?id=90283
63276
63277        Reviewed by Eric Seidel.
63278
63279        No behavior change, so no new tests.
63280
63281        * WebCore.pri:
63282        -ffunction-sections conflicts with -pg option, so don't use
63283        -ffunction-sections option when gprof is enabled.
63284
632852012-08-13  Zan Dobersek  <zandobersek@gmail.com>
63286
63287        Unreviewed build fix after r125408, removing another usage of SVG_FEATURES.
63288
63289        * GNUmakefile.am:
63290
632912012-08-13  Zan Dobersek  <zandobersek@gmail.com>
63292
63293        [Gtk] Remove SVG_FEATURES and HTML_FEATURES from Source/WebCore/GNUmakefile.am
63294        https://bugs.webkit.org/show_bug.cgi?id=90693
63295
63296        Reviewed by Philippe Normand.
63297
63298        Remove SVG_FEATURES and HTML_FEATURES variables. They can be replaced by the
63299        FEATURE_DEFINES variable wherever they are used.
63300
63301        No new tests - no new functionality.
63302
63303        * GNUmakefile.am:
63304
633052012-08-13  Mario Sanchez Prada  <msanchez@igalia.com>
63306
63307        [GTK] Implementation of atk_editable_text_insert_text ignores 'length' parameter
63308        https://bugs.webkit.org/show_bug.cgi?id=93804
63309
63310        Reviewed by Carlos Garcia Campos.
63311
63312        Use the 'length' parameter to insert a substring of the full
63313        string passed to this method from AtkEditableText interface.
63314
63315        * accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp:
63316        (webkitAccessibleEditableTextInsertText): Don't ignore 'length'.
63317
633182012-08-13  Sam D  <dsam2912@gmail.com>
63319
63320        Web Inspector: Feature Request - Adding mouse gesture for editing attribute values in elements/css panel
63321        https://bugs.webkit.org/show_bug.cgi?id=93581
63322
63323        Reviewed by Alexander Pavlov.
63324
63325        Added functionality to modify valuesAdding support for updating number values in attributes in element
63326        panel/ css panel using mouse gestures as well.
63327
63328        No new tests.
63329
63330        * inspector/front-end/StylesSidebarPane.js:
63331        handling mousewheel event
63332        * inspector/front-end/TextPrompt.js:
63333        adding mouse event listener
63334        (WebInspector.TextPrompt.prototype._attachInternal):
63335        (WebInspector.TextPrompt.prototype.defaultKeyHandler):
63336        (WebInspector.TextPrompt.prototype.onMouseWheel):
63337        * inspector/front-end/UIUtils.js:
63338        handling mouse event gesture and updating number based on mouse wheel
63339        scroll direction as well.
63340        (WebInspector._valueModificationDirection):
63341        (WebInspector._modifiedHexValue):
63342        (WebInspector._modifiedFloatNumber):
63343        (WebInspector.handleElementValueModifications):
63344
633452012-08-13  Carlos Garcia Campos  <cgarcia@igalia.com>
63346
63347        Unreviewed. Fix make distcheck.
63348
63349        * GNUmakefile.list.am: Add missing header file.
63350
633512012-08-10  Alexander Pavlov  <apavlov@chromium.org>
63352
63353        Web Inspector: [Protocol] Force elements pseudo state via a separate InspectorCSSAgent method
63354        https://bugs.webkit.org/show_bug.cgi?id=93721
63355
63356        Reviewed by Pavel Feldman.
63357
63358        Introduce InspectorCSSAgent::forcePseudoState() to modify the element's forced pseudo state.
63359
63360        * inspector/Inspector.json:
63361        * inspector/InspectorCSSAgent.cpp:
63362        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
63363        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
63364        (WebCore::InspectorCSSAgent::forcePseudoState):
63365        (WebCore):
63366        * inspector/InspectorCSSAgent.h:
63367        (InspectorCSSAgent):
63368        * inspector/InspectorDOMAgent.h:
63369        (InspectorDOMAgent):
63370        * inspector/front-end/AuditRules.js:
63371        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
63372        * inspector/front-end/CSSStyleModel.js:
63373        (WebInspector.CSSStyleModel.prototype.getMatchedStylesAsync):
63374        (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
63375        (WebInspector.CSSStyleModel.prototype.forcePseudoState):
63376        * inspector/front-end/ElementsPanel.js:
63377        (WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
63378        * inspector/front-end/MetricsSidebarPane.js:
63379        * inspector/front-end/StylesSidebarPane.js:
63380        (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
63381        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
63382
633832012-08-13  Shinya Kawanaka  <shinyak@chromium.org>
63384
63385        Cannot select the AuthorShadowDOM inner element of an img element
63386        https://bugs.webkit.org/show_bug.cgi?id=91591
63387
63388        Reviewed by Dimitri Glazkov.
63389
63390        Since HTMLImageElement::canStartSelection always returns false, we cannot start selection
63391        from any children (including shadow dom) of an img element. When the img element has a shadow dom,
63392        we should be able to start selection.
63393
63394        Test: fast/dom/shadow/select-image-with-shadow.html
63395
63396        * html/HTMLImageElement.cpp:
63397        (WebCore::HTMLImageElement::canStartSelection):
63398        (WebCore):
63399        * html/HTMLImageElement.h:
63400        (HTMLImageElement):
63401        * html/shadow/ImageInnerElement.h:
63402        (WebCore::ImageInnerElement::canStartSelection): Since ImageInnerElement is really an image,
63403        this should return always false to obey the exising behavior.
63404        (ImageInnerElement):
63405
634062012-08-13  Peter Wang  <peter.wang@torchmobile.com.cn>
63407
63408        REGRESSION (r124723-r124741): 5 inspector/debugger tests failing on Apple Lion Debug WK1 (Tests)
63409        https://bugs.webkit.org/show_bug.cgi?id=93387
63410
63411        Reviewed by Pavel Feldman.
63412
63413        Now the front-end has problem when setting the positon of breakpoint, so remove the comparing
63414        of "column" to make the behavior back to the time as JSC cannot provide "column" info.
63415        Refer to https://bugs.webkit.org/show_bug.cgi?id=93473.  
63416
63417        No new test case for this bug.
63418
63419        * bindings/js/ScriptDebugServer.cpp:
63420        (WebCore::ScriptDebugServer::hasBreakpoint):
63421
634222012-08-10  Kinuko Yasuda  <kinuko@chromium.org>
63423
63424        Support creating File object from FileSystem URL for files in FileSystem API
63425        https://bugs.webkit.org/show_bug.cgi?id=93706
63426
63427        Reviewed by Darin Fisher.
63428
63429        Current File code assumes the existence of local file (i.e. requires a platform local file path) but for FileSystem
63430        files it may not be always the case. For example some implementation may want to use in-memory filesystem to realize
63431        sandboxed filesystem, or others may have the filesystem in remote servers.
63432
63433        This patch adds basic support for making File object constructible not only from a file path but from a FileSystem URL.
63434        Since File can be appended to FormData or included in another Blob this patch also extends BlobData and FormData to support URL.
63435
63436        FileChooser and Drag-and-drop changes are not included in this patch.
63437
63438        No new tests: will add tests when we implement the platform side changes to wire this change.
63439
63440        * Modules/filesystem/DOMFileSystem.cpp:
63441        (WebCore::DOMFileSystem::createFile):
63442        * Modules/filesystem/DOMFileSystemSync.cpp:
63443        (WebCore::DOMFileSystemSync::createFile):
63444        * fileapi/Blob.cpp:
63445        (WebCore::Blob::sliceInternal):
63446        * fileapi/File.cpp:
63447        (WebCore::createBlobDataForFileSystemURL): Added.
63448        (WebCore::File::File):
63449        * fileapi/File.h:
63450        (WebCore::File::createForFileSystemFile):
63451        (WebCore::File::fileSystemURL): Added.
63452        * fileapi/WebKitBlobBuilder.cpp:
63453        (WebCore::WebKitBlobBuilder::append):
63454        * platform/chromium/support/WebHTTPBody.cpp:
63455        (WebKit::WebHTTPBody::elementAt):
63456        (WebKit::WebHTTPBody::appendURL): Added.
63457        (WebKit::WebHTTPBody::appendURLRange): Added.
63458        (WebKit::WebHTTPBody::appendBlob):
63459        * platform/network/BlobData.cpp:
63460        (WebCore::BlobData::appendURL):
63461        * platform/network/BlobData.h:
63462        (BlobDataItem):
63463        (WebCore::BlobDataItem::BlobDataItem):
63464        * platform/network/BlobRegistryImpl.cpp:
63465        (WebCore::BlobRegistryImpl::appendStorageItems):
63466        (WebCore::BlobRegistryImpl::registerBlobURL):
63467        * platform/network/FormData.cpp:
63468        (WebCore::FormData::deepCopy):
63469        (WebCore::FormData::appendURL): Added.
63470        (WebCore::FormData::appendURLRange): Added.
63471        (WebCore::FormData::appendKeyValuePairItems):
63472        * platform/network/FormData.h:
63473        (WebCore::FormDataElement::FormDataElement):
63474        (FormDataElement):
63475        (WebCore::operator==):
63476
634772012-08-12  Dan Bernstein  <mitz@apple.com>
63478
63479        <rdar://problem/11442485> off-screen or inactive pages can change the mouse pointer
63480
63481        Reviewed by Adele Peterson.
63482
63483        * page/EventHandler.cpp:
63484        (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Added a check that the page is
63485        on-screen and active before dispatching the fake mouse event.
63486
634872012-08-12  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
63488
63489        [BlackBerry] use MediaPlayer::userAgent() in MediaPlayerPrivateBlackBerry to avoid layering violation
63490        https://bugs.webkit.org/show_bug.cgi?id=93588
63491
63492        Reviewed by Antonio Gomes.
63493
63494        Removed helper function MediaPlayerPrivate::userAgent() which has
63495        introduced abstraction layering violation and replaced with
63496        MediaPlayer::userAgent().
63497
63498        No new tests since there's no functional change.
63499
63500        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
63501        (WebCore::MediaPlayerPrivate::load):
63502
635032012-07-04  Kinuko Yasuda  <kinuko@chromium.org>
63504
63505        Record metrics to measure the usage of WebKitBlobBuilder to eventually deprecate it
63506        https://bugs.webkit.org/show_bug.cgi?id=90535
63507
63508        Reviewed by Eric Seidel.
63509
63510        No new tests as this has no functional changes.
63511
63512        * bindings/js/JSBlobCustom.cpp:
63513        (WebCore::JSBlobConstructor::constructJSBlob):
63514        * bindings/v8/custom/V8BlobCustom.cpp:
63515        (WebCore::V8Blob::constructorCallback):
63516        * fileapi/WebKitBlobBuilder.cpp:
63517        (WebCore::WebKitBlobBuilder::getBlob):
63518        * fileapi/WebKitBlobBuilder.h:
63519        (WebKitBlobBuilder):
63520
635212012-08-12  Ojan Vafai  <ojan@chromium.org>
63522
63523        Remove unnecessary null checks from pseudoStyleForElement and adjustRenderStyle
63524        https://bugs.webkit.org/show_bug.cgi?id=93730
63525
63526        Reviewed by Tony Chang.
63527
63528        All the callers of both methods make sure to pass in a non-null parentStyle.
63529
63530        No change in behavior.
63531
63532        * css/StyleResolver.cpp:
63533        * css/StyleResolver.h:
63534
635352012-08-12  Pravin D  <pravind.2k4@gmail.com>
63536
63537        table cell.cellIndex should return -1 if there is no parent table
63538        https://bugs.webkit.org/show_bug.cgi?id=93738
63539
63540        Reviewed by Eric Seidel.
63541
63542        According to the HTML5 spec the cellIndex of a table cell(td/th) whose parent is not a table row
63543        must be -1. Currently we are returning zero. This patch fixes this behavior. 
63544
63545        Test: fast/table/cellIndex-of-cell-with-different-parents.html
63546
63547        * html/HTMLTableCellElement.cpp:
63548        (WebCore::HTMLTableCellElement::cellIndex):
63549          If the parent of the cell is not a table row, -1 is returned. Otherwise a value greater
63550          than or equal to zero is return.
63551
63552        * rendering/RenderTableCell.h:
63553        (RenderTableCell):
63554         Removed dead code and made minor webkit style related fix.
63555
635562012-08-12  Leandro Gracia Gil  <leandrogracia@chromium.org>
63557
63558        [Chromium] Implement the find-in-page match rects API
63559        https://bugs.webkit.org/show_bug.cgi?id=93111
63560
63561        Reviewed by Adam Barth.
63562
63563        Introduce the find-in-page coordinate system. This system tries to solve
63564        the unintuitive tickmark results presented in pages with multiple frames
63565        and scrolled contents where the find results might not be in the visible
63566        area of a frame, which might lead to tickmarks below the container frame.
63567
63568        To achieve this, this coordinate system goes up the render tree
63569        normalizing the coordinates by the actual contents size of its container.
63570        This leads to tickmarks scaled to the visible size of their frame
63571        independently of its scroll. This coordinate system supports also CSS
63572        scroll:overflow, transforms and the different positions.
63573
63574        Also add an auxiliary method to Range in order to provide a transform
63575        friendly way to retrieve the absolute coordinates of the enclosing
63576        bounding box without the adjustment operations that the existing
63577        enclosingRect method does.
63578
63579        Tested by WebFrameTest WebKit unit test.
63580
63581        * dom/Range.cpp:
63582        (WebCore::Range::transformFriendlyBoundingBox): add a transform-friendly equivalent of boundingBox.
63583        (WebCore):
63584        * dom/Range.h: move boundingBox to the group of non-transform-friendly methods.
63585        (Range):
63586
635872012-08-12  Ami Fischman  <fischman@chromium.org>
63588
63589        Stop Y-flipping CROS/ARM video textures
63590        https://bugs.webkit.org/show_bug.cgi?id=93769
63591
63592        Reviewed by Eric Seidel.
63593
63594        No new tests; there's no cros/arm bot yet, sadly.
63595
63596        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
63597        (WebCore::CCVideoLayerImpl::appendQuads): drop the single-platform Y-flipping in prep for the platform doing the flip natively.
63598
635992012-08-12  Mihnea Ovidenie  <mihnea@adobe.com>
63600
63601        CSSRegions: Crash when using style in region for removed element.
63602        https://bugs.webkit.org/show_bug.cgi?id=93276
63603
63604        Reviewed by Abhishek Arya.
63605
63606        When a RenderInline object from within a render flow thread is split, the cloned
63607        hierarchy built during the split process does not have the inRenderFlowThread bit
63608        set properly. If the cloned hierarchy is flowed into a region with region style rules,
63609        we compute the style in region also for objects that do not have inRenderFlowThread bit
63610        set and we store the computed style in region for caching purposes. But we only remove
63611        an object style in region information if that object has the inRenderFlowThread bit set.
63612        Under these circumstances, it is possible to remove a object with cached style in region
63613        and without inRenderFlowThread bit set from the render tree and leave the associated cached
63614        information un-removed. Such information will be accesses during the next paint phase of
63615        the region, thus resulting a crash.
63616
63617        The fix is to modify RenderBlock::clone() and RenderInline::clone() functions to also copy the inRenderFlowThread bit
63618        from the source into the clone, therefore the cloned hierarchies will have the inRenderFlowThread
63619        bit set properly.
63620
63621        Test: fast/regions/removed-element-style-in-region-crash.html
63622
63623        * rendering/RenderBlock.cpp:
63624        (WebCore::RenderBlock::clone):
63625        * rendering/RenderInline.cpp:
63626        (WebCore::RenderInline::clone): Replace former static RenderInline::cloneInline with member RenderInline::clone.
63627        (WebCore::RenderInline::splitInlines):
63628        * rendering/RenderInline.h:
63629        (RenderInline):
63630        * rendering/RenderRegion.cpp:
63631        (WebCore::RenderRegion::setObjectStyleInRegion):
63632        Added an assert to make sure that when we are computing style in region, we are doing for objects
63633        with inRenderFlowThread set. Also, bail out early in this case to prevent further crashes.
63634
636352012-08-12  Huang Dongsung  <luxtella@company100.net>
63636
63637        Set the access qualifier of two methods to query frame specific info of BitmapImage to protected.
63638        https://bugs.webkit.org/show_bug.cgi?id=90505
63639
63640        Reviewed by Eric Seidel.
63641
63642        Following 4 methods are protected.
63643          size_t frameCount();
63644          NativeImagePtr frameAtIndex(size_t);
63645          bool frameIsCompleteAtIndex(size_t);
63646          float frameDurationAtIndex(size_t);
63647
63648        So, 2 methds also should be protected because the frame info is only specific of
63649        BitmapImage.
63650          bool frameHasAlphaAtIndex(size_t);
63651          ImageOrientation frameOrientationAtIndex(size_t);
63652
63653        On the other hand, this patch amended GraphicsContext3DCG.
63654        - static_cast<BitmapImage*>(image)->frameHasAlphaAtIndex(0)
63655        + image->currentFrameHasAlpha()
63656
63657        This patch does not affect PNG, JPEG, BMP, and WEBP because those images
63658        have only 0 indexed frame.
63659        Thus, GIF, and ICO are affected. However, an above query to get Alpha
63660        is for the image that is created by image->nativeImageForCurrentFrame(), so it
63661        is proper to use image->currentFrameHasAlpha() instead of
63662        image->frameHasAlphaAtIndex(0).
63663
63664        No new tests, because it is hard to test. We need an animated GIF that
63665        one frame has alpha and another frame does not have alpha. However, I
63666        cannot find the animated GIF file that suffices the requirement.
63667
63668        * platform/graphics/BitmapImage.h:
63669        (BitmapImage):
63670        * platform/graphics/cg/GraphicsContext3DCG.cpp:
63671        (WebCore::GraphicsContext3D::getImageData):
63672
636732012-08-12  Takashi Sakamoto  <tasak@google.com>
63674
63675        webkit fails IETC namespaces/prefix-007.xml
63676        https://bugs.webkit.org/show_bug.cgi?id=86137
63677
63678        Reviewed by Eric Seidel.
63679
63680        If a namespace prefix or default namespace is declared more than once
63681        only the last declaration shall be used.
63682
63683        parseAddNamespace doesn't check return value of WTF::HashMap<>::add.
63684        If the return value's isNewEntry is true, the new entry is added with
63685        the specified value. However, if isNewEntry is false, it is required
63686        to update the store value.
63687
63688        No new tests. ietestcenter/css3/namespaces/prefix-007.xml and
63689        ietestcenter/css3/namespaces/prefix-010.xml covers this change.
63690
63691        * css/StyleSheetContents.cpp:
63692        (WebCore::StyleSheetContents::parserAddNamespace):
63693        Modified to check m_namespaces.add's return value.
63694        If the result says not a new entry, updated the value stored in
63695        m_namespaces by using iterator in the result.
63696
636972012-08-12  Benjamin Poulain  <benjamin@webkit.org>
63698
63699        Move CSS's propertyNameStrings[] to from the header to the cpp file
63700        https://bugs.webkit.org/show_bug.cgi?id=93771
63701
63702        Reviewed by Eric Seidel.
63703
63704        The names of propertyNameStrings[] should never be accessed directly. The function getPropertyName()
63705        return the correct string of propertyNameStrings.
63706
63707        To ensure the values are not accessed by mistake, move them from the header to the implementation.
63708
63709        * css/makeprop.pl:
63710
637112012-08-12  Benjamin Poulain  <benjamin@webkit.org>
63712
63713        CSSComputedStyleDeclaration::cssText() should use StringBuilder
63714        https://bugs.webkit.org/show_bug.cgi?id=93776
63715
63716        Reviewed by Eric Seidel.
63717
63718        String::append() is fairly inefficient when used to create a long string by appending a lot of small
63719        pieces. StringBuilder is more approriate for the kind of operations done by CSSComputedStyleDeclaration::cssText().
63720
63721        This changes makes CSSComputedStyleDeclaration::cssText() about 6 times faster.
63722
63723        * css/CSSComputedStyleDeclaration.cpp:
63724        (WebCore::CSSComputedStyleDeclaration::cssText):
63725
637262012-08-11  Benjamin Poulain  <bpoulain@apple.com>
63727
63728        Do the DecimalNumber to String conversion on 8 bits
63729        https://bugs.webkit.org/show_bug.cgi?id=93683
63730
63731        Reviewed by Andreas Kling.
63732
63733        Numbers converted to string for CSS are unlikely to ever be concatenated with a 16bits string.
63734        This patch change the conversion to be done to 8bits string in order to reduce memory allocations.
63735
63736        * css/CSSPrimitiveValue.cpp:
63737        (WebCore::formatNumber):
63738        * inspector/InspectorValues.cpp:
63739        (WebCore::InspectorBasicValue::writeJSON):
63740        * platform/graphics/Color.cpp:
63741        (WebCore::Color::serialized): Instead of allocating a static WTF::String, we can simply append the
63742        string literal to the output vector.
63743
637442012-08-11  Benjamin Poulain  <benjamin@webkit.org>
63745
63746        WebCore::findAtomicString(PropertyName) always convert the name to 16bits
63747        https://bugs.webkit.org/show_bug.cgi?id=93685
63748
63749        Reviewed by Geoffrey Garen.
63750
63751        * bindings/js/JSDOMBinding.cpp:
63752        (WebCore::findAtomicString):
63753        Use the new AtomicString::find() to avoid calling StringImpl::characters().
63754
637552012-08-11  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
63756
63757        [Qt] Remove QtSenderStack now we do not support __qt_sender__ anymore in Qt bridge
63758        https://bugs.webkit.org/show_bug.cgi?id=93767
63759
63760        Reviewed by Kenneth Rohde Christiansen.
63761
63762        Dead code after patch of bug 93649.
63763
63764        * bridge/qt/qt_instance.h:
63765        (QtInstance):
63766
637672012-08-11  Abhishek Arya  <inferno@chromium.org>
63768
63769        Unreviewed. 
63770
63771        Removing newly added assert in r125351 since it is exposing
63772        legitimate layout bugs in few tests. We will re-add the assert
63773        after fixing those bugs. Failures are tracked in webkit bug 93766. 
63774
63775        * rendering/RenderBlock.cpp:
63776        (WebCore::RenderBlock::removeFromTrackedRendererMaps):
63777
637782012-08-11  Levi Weintraub  <leviw@chromium.org>
63779
63780        Track block's positioned objects like percent-height descendants
63781        https://bugs.webkit.org/show_bug.cgi?id=89848
63782
63783        Reviewed by Abhishek Arya.
63784
63785        The previous method for tracking a RenderBlock's out-of-flow positioned descendants was error prone,
63786        subject to becoming inconsistent, and in the case of removePositionedObjects, inefficient. This patch 
63787        extracts the algorithm used for percent height descendants and re-uses it for positioned objects. This same
63788        method could further be re-used for floats.
63789
63790        This change removes the m_positionedObjects pointer, which brings RenderBlock's size down (yay!).
63791
63792        Test: fast/block/positioning/relayout-nested-positioned-elements-crash-2.html
63793
63794        * rendering/RenderBlock.cpp:
63795        (SameSizeAsRenderBlock):
63796        (WebCore):
63797        (WebCore::removeBlockFromDescendantAndContainerMaps):
63798        (WebCore::RenderBlock::~RenderBlock):
63799        (WebCore::RenderBlock::addOverflowFromPositionedObjects):
63800        (WebCore::RenderBlock::layoutBlockChildren):
63801        (WebCore::RenderBlock::layoutPositionedObjects):
63802        (WebCore::RenderBlock::markPositionedObjectsForLayout):
63803        (WebCore::clipOutPositionedObjects):
63804        (WebCore::RenderBlock::selectionGaps):
63805        (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
63806        (WebCore::RenderBlock::removeFromTrackedRendererMaps):
63807        (WebCore::RenderBlock::positionedObjects):
63808        (WebCore::RenderBlock::insertPositionedObject):
63809        (WebCore::RenderBlock::removePositionedObject):
63810        (WebCore::RenderBlock::removePositionedObjects):
63811        (WebCore::RenderBlock::addPercentHeightDescendant):
63812        (WebCore::RenderBlock::removePercentHeightDescendant):
63813        (WebCore::RenderBlock::percentHeightDescendants):
63814        (WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
63815        * rendering/RenderBlock.h:
63816        (WebCore):
63817        (RenderBlock):
63818        (WebCore::RenderBlock::hasPositionedObjects):
63819        * rendering/RenderBox.cpp:
63820        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
63821        * rendering/RenderBoxModelObject.cpp:
63822        (WebCore::RenderBoxModelObject::moveChildTo): Changing the fixme to reflect the assumption that the caller
63823        has taken care of updating the positioned renderer maps is a decision not a bug. The ASSERT should help
63824        assure this.
63825        * rendering/RenderTableSection.cpp:
63826        (WebCore::RenderTableSection::layoutRows):
63827        * rendering/RenderView.cpp:
63828        (WebCore::RenderView::setFixedPositionedObjectsNeedLayout):
63829
638302012-08-10  Joshua Netterfield  <jnetterfield@rim.com>
63831
63832        [WebGL] Add support for EXT_robustness
63833        https://bugs.webkit.org/show_bug.cgi?id=93379
63834
63835        Reviewed by George Staikos.
63836
63837        Take advantage of EXT robustness in WebKit.
63838
63839        This commit makes WebKit use readnPixelsEXT, getnUniformfvEXT and
63840        getnUniformivEXT instead of readPixels, getUniformfv and getUniformiv
63841        when possible, and sets up the reset notification behaviour for
63842        GLES platforms.
63843
63844        The reset behaviour has not yet been implemented in the BlackBerry
63845        compositing thread, so for now on BlackBerry we just abort when
63846        the context has been reset. This prevents undefined behaviour, but
63847        can be improved in the future.
63848
63849        No new tests are needed because no new functionality is introduced.
63850        Support for ARB robustness reset notification behaviour is already
63851        in WebKit, and EXT robustness' reset notifcation behaviour is the
63852        same. readnPixelsEXT replaces WebKit's existing mechanisms of
63853        preventing buffer overflows.
63854
63855        RIM PR# 147510
63856        Internally reviewed by Arvid Nilsson.
63857
63858        * html/canvas/WebGLRenderingContext.cpp:
63859        (WebCore):
63860        (WebCore::WebGLRenderingContext::setupFlags):
63861        (WebCore::WebGLRenderingContext::getUniform):
63862        (WebCore::WebGLRenderingContext::readPixels):
63863        * html/canvas/WebGLRenderingContext.h:
63864        (WebGLRenderingContext):
63865        * platform/chromium/support/Extensions3DChromium.cpp:
63866        (WebCore::Extensions3DChromium::readnPixelsEXT):
63867        (WebCore):
63868        (WebCore::Extensions3DChromium::getnUniformfvEXT):
63869        (WebCore::Extensions3DChromium::getnUniformivEXT):
63870        * platform/graphics/Extensions3D.h:
63871        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
63872        (WebCore::GraphicsContext3D::setContextLostCallback):
63873        * platform/graphics/blackberry/LayerRenderer.cpp:
63874        (WebCore::LayerRenderer::LayerRenderer):
63875        (WebCore::LayerRenderer::makeContextCurrent):
63876        * platform/graphics/blackberry/LayerRenderer.h:
63877        (LayerRenderer):
63878        * platform/graphics/chromium/Extensions3DChromium.h:
63879        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
63880        (WebCore::Extensions3DOpenGLCommon::readnPixelsEXT):
63881        (WebCore):
63882        (WebCore::Extensions3DOpenGLCommon::getnUniformfvEXT):
63883        (WebCore::Extensions3DOpenGLCommon::getnUniformivEXT):
63884        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
63885        (Extensions3DOpenGLCommon):
63886        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
63887        (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
63888        (WebCore::Extensions3DOpenGLES::getGraphicsResetStatusARB):
63889        (WebCore):
63890        (WebCore::Extensions3DOpenGLES::setEXTContextLostCallback):
63891        (WebCore::Extensions3DOpenGLES::readnPixelsEXT):
63892        (WebCore::Extensions3DOpenGLES::getnUniformfvEXT):
63893        (WebCore::Extensions3DOpenGLES::getnUniformivEXT):
63894        (WebCore::Extensions3DOpenGLES::supportsExtension):
63895        * platform/graphics/opengl/Extensions3DOpenGLES.h:
63896        (Extensions3DOpenGLES):
63897
638982012-08-10  Arko Saha  <arko@motorola.com>
63899
63900        Microdata: item with itemprop attribute should not include the item itself in the HTMLPropertiesCollection.
63901        https://bugs.webkit.org/show_bug.cgi?id=93717
63902
63903        Reviewed by Ryosuke Niwa.
63904
63905        Tests: fast/dom/MicroData/item-with-itemprop-attr.html
63906               fast/dom/MicroData/item-with-itemref-pointing-to-itself.html
63907
63908        * dom/PropertyNodeList.cpp:
63909        (WebCore::PropertyNodeList::nodeMatches): Do not process the testElement if it is the owner node.
63910        * html/HTMLPropertiesCollection.cpp:
63911        (WebCore::nextNodeWithProperty): Traverse the next node only if previous node is microdata item
63912        i.e, ownerNode or previous element does not have itemscope attribute specified.
63913        (WebCore::HTMLPropertiesCollection::virtualItemAfter): Try to find the next property if current
63914        is ownerNode.
63915
639162012-08-10  Ryuan Choi  <ryuan.choi@samsung.com>
63917
63918        [BlackBerry][EFL][GTK][WIN][WX] Remove ScriptControllerXXX.cpp to reduce duplication
63919        https://bugs.webkit.org/show_bug.cgi?id=61424
63920
63921        Reviewed by Rob Buis.
63922
63923        ScriptControllerBlackBerry, ScriptControllerEfl, ScriptControllerGtk,
63924        ScriptControllerWin and ScriptControllerWx are almost same.
63925        In order to reduce duplication, this patch moves codes to ScriptController
63926        and removes them.
63927
63928        No behavior change. Just a refactoring.
63929
63930        * GNUmakefile.list.am:
63931        * PlatformBlackBerry.cmake:
63932        * PlatformEfl.cmake:
63933        * PlatformWinCE.cmake:
63934        * WebCore.gypi:
63935        * bindings/js/JSBindingsAllInOne.cpp:
63936        * bindings/js/ScriptController.cpp:
63937        (WebCore):
63938        (WebCore::ScriptController::createScriptInstanceForWidget):
63939        Moved from ScriptControllerXXX.cpp
63940        * bindings/js/ScriptControllerBlackBerry.cpp: Removed.
63941        * bindings/js/ScriptControllerEfl.cpp: Removed.
63942        * bindings/js/ScriptControllerGtk.cpp: Removed.
63943        * bindings/js/ScriptControllerWin.cpp: Removed.
63944        * bindings/js/ScriptControllerWx.cpp: Removed.
63945
639462012-08-10  Elliott Sprehn  <esprehn@gmail.com>
63947
63948        RenderQuote corrupts doubly linked list on insertion before head of list
63949        https://bugs.webkit.org/show_bug.cgi?id=93750
63950
63951        Reviewed by Abhishek Arya.
63952
63953        Fix bug where moving a RenderQuote instance before the first one in
63954        the document would not update the m_previous pointer of the original
63955        first RenderQuote to point back at the new one.
63956
63957        Test: fast/css-generated-content/quote-crash-93750.html
63958
63959        * rendering/RenderQuote.cpp:
63960        (WebCore::RenderQuote::attachQuote):
63961
639622012-08-09  James Robinson  <jamesr@chromium.org>
63963
63964        [chromium] Remove forwarding headers for compositor-related WebKit API and update includes
63965        https://bugs.webkit.org/show_bug.cgi?id=93669
63966
63967        Reviewed by Adam Barth.
63968
63969        Updates all includes for compositor-related headers to refer consistently to the Platform API location.
63970
63971        * platform/chromium/support/WebCompositorImpl.h:
63972
639732012-08-10  James Robinson  <jamesr@chromium.org>
63974
63975        Unreviewed build fix.
63976
63977        r125337 added a call to WTF::currentTime() in MediaController.cpp, but that file didn't #include
63978        <wtf/CurrentTime.h>. This file is indirectly picked up on the include paths for some ports, but not all.
63979
63980        * html/MediaController.cpp:
63981
639822012-08-10  Jer Noble  <jer.noble@apple.com>
63983
63984        no timeupdate events emitted for media controller
63985        https://bugs.webkit.org/show_bug.cgi?id=93745
63986
63987        Reviewed by Eric Carlson.
63988
63989        Generate timeupdate events while the current position is changing.
63990
63991        Test: media/media-controller-timeupdate.html
63992
63993        Enforce the spec requirement that the timeupdate event is fired no more often
63994        than every 250ms.
63995        * html/MediaController.cpp:
63996        (MediaController::scheduleTimeupdateEvent):
63997
63998        Add a periodic firing timer to generate timeupdate events during playback.
63999        * html/MediaController.cpp:
64000        (MediaController::startTimeupdateTimer):
64001        (MediaController::timeupdateTimerFired):
64002
64003        * html/MediaController.cpp:
64004        (MediaController::MediaController): Initialize m_previousTimeupdateTime.
64005        (MediaController::setCurrentTime): Call scheduleTimeUpdateEvent.
64006        (MediaController::updatePlaybackState): Start and stop the timeupdate timer.
64007        * html/MediaController.h:
64008        
640092012-08-09  Jeffrey Pfau  <jpfau@apple.com>
64010
64011        Allow blocking of third-party localStorage and sessionStorage
64012        https://bugs.webkit.org/show_bug.cgi?id=93390
64013
64014        Reviewed by Adam Barth.
64015
64016        Add checks for if a page is third-party and third-party storage blocking is enabled while accessing storage.
64017
64018        Tests: http/tests/security/cross-origin-local-storage-allowed.html
64019               http/tests/security/cross-origin-local-storage.html
64020               http/tests/security/cross-origin-session-storage-allowed.html
64021               http/tests/security/cross-origin-session-storage.html
64022               http/tests/security/same-origin-document-domain-storage-allowed.html
64023
64024        * dom/Document.cpp:
64025        (WebCore::Document::initSecurityContext): Initialize securityOrigin with knowledge of if we should block third-party storage.
64026        * page/DOMWindow.cpp: Check if the origin trying to access storage is third-party relative to the top document.
64027        (WebCore::DOMWindow::sessionStorage):
64028        (WebCore::DOMWindow::localStorage):
64029        * page/SecurityOrigin.cpp: Add a call in Security origin to see if another origin counts as a third-party.
64030        (WebCore::SecurityOrigin::SecurityOrigin):
64031        (WebCore::SecurityOrigin::canAccessLocalStorage):
64032        (WebCore):
64033        (WebCore::SecurityOrigin::isThirdParty):
64034        * page/SecurityOrigin.h:
64035        (WebCore::SecurityOrigin::blockThirdPartyStorage):
64036        (SecurityOrigin):
64037        * testing/InternalSettings.cpp: Add an internals.settings hook for setting third-party storage blocking enabled.
64038        (WebCore::InternalSettings::setThirdPartyStorageBlockingEnabled):
64039        (WebCore):
64040        * testing/InternalSettings.h:
64041        (InternalSettings):
64042        * testing/InternalSettings.idl:
64043
640442012-08-10  Arko Saha  <arko@motorola.com>
64045
64046        REGRESSION(r125159): ASSERTION FAILED: m_listsInvalidatedAtDocument.contains(list) in Document::unregisterNodeListCache.
64047        https://bugs.webkit.org/show_bug.cgi?id=93729
64048
64049        Reviewed by Ryosuke Niwa.
64050
64051        In Document::registerNodeListCache() it was not adding PropertyNodeList
64052        cache to m_listsInvalidatedAtDocument the as node list currently not rooted
64053        at the document. Where in Document::unregisterNodeListCache() it was trying
64054        to remove PropertyNodeList cache from m_listsInvalidatedAtDocument. Hence it
64055        caused the assertion failure.
64056
64057        We need to check if m_rootType is NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr,
64058        not that it's currently rooted at the document.
64059
64060        Test: fast/dom/MicroData/propertynodelist-crash.html
64061
64062        * dom/DynamicNodeList.h:
64063        (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
64064
640652012-08-10  Florin Malita  <fmalita@chromium.org>
64066
64067        Improved RuleData packing on some 32-bit platforms
64068        https://bugs.webkit.org/show_bug.cgi?id=93737
64069
64070        Reviewed by Andreas Kling.
64071
64072        Certain 32-bit plarforms use an 8-byte alignment for uint64_t. We can save 4 bytes per
64073        object on these platforms by using two naturally-aligning unsigned ints instead.
64074
64075        * css/StyleResolver.cpp:
64076        (RuleData):
64077        (SameSizeAsRuleData):
64078
640792012-08-10  Max Vujovic  <mvujovic@adobe.com>
64080
64081        [CSS Shaders] Add blend mode and composite op to compiled program cache key
64082        https://bugs.webkit.org/show_bug.cgi?id=93623
64083
64084        Reviewed by Dirk Schulze.
64085
64086        Right now, only the vertex shader string and the fragment shader string are hashed
64087        to create a key for the compiled program. However, in a future patch, WebKit will
64088        rewrite the fragment shader based on the blend mode and composite op specified by
64089        the author. This means that the unique key for a compiled program is (original
64090        vertex shader string, original fragment shader string, blend mode, composite
64091        operator). This patch adds blend mode and composite operator in the hash for the
64092        key.
64093
64094        No new tests. The state of the compiled program cache is not exposed to a web
64095        page. Existing tests should ensure this change doesn't break current
64096        functionality. Additional tests will be added in a future patch that implements
64097        shader rewriting based on blend mode and composite op.
64098
64099        * platform/graphics/filters/CustomFilterProgram.cpp:
64100        (WebCore::CustomFilterProgram::programInfo):
64101        * platform/graphics/filters/CustomFilterProgram.h:
64102        (WebCore):
64103        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
64104        (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
64105        (WebCore::CustomFilterProgramInfo::hash):
64106        (WebCore::CustomFilterProgramInfo::operator==):
64107        * platform/graphics/filters/CustomFilterProgramInfo.h:
64108        (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
64109        (CustomFilterProgramMixSettings):
64110        (WebCore::CustomFilterProgramMixSettings::operator==):
64111        (WebCore):
64112        (CustomFilterProgramInfo):
64113
641142012-08-10  Alice Cheng  <alice_cheng@apple.com>
64115
64116        Part 1 of: Extend -webkit-user-select with a new value "all"
64117        <rdar://problem/10161404>
64118        https://bugs.webkit.org/show_bug.cgi?id=93562
64119
64120        Reviewed by Dan Bernstein.
64121
64122        Parse the new "all" value for -webkit-user-select
64123
64124        Test: editing/selection/user-select-all-parsing.html
64125
64126        * css/CSSParser.cpp:
64127        (WebCore::isValidKeywordPropertyAndValue): Add new value all
64128        * css/CSSPrimitiveValueMappings.h:
64129        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add new value all
64130        (WebCore::CSSPrimitiveValue::operator EUserSelect): Add one more bit to store the new property value
64131        * rendering/style/RenderStyleConstants.h: Add new value all
64132        * rendering/style/StyleRareInheritedData.h: Add new value all
64133        (StyleRareInheritedData):
64134
641352012-08-10  Iain Merrick  <husky@google.com>
64136
64137        [chromium] Upstream Android changes to WebFrameImpl::selectRange
64138        https://bugs.webkit.org/show_bug.cgi?id=92513
64139
64140        Reviewed by Ryosuke Niwa.
64141
64142        Make this function public we so can call it from the WebKit layer.
64143
64144        * page/EventHandler.h:
64145        (EventHandler):
64146
641472012-08-10  Mario Sanchez Prada  <msanchez@igalia.com>
64148
64149        [GTK] Broken implementation of AtkText and AtkEditableText for password fields
64150        https://bugs.webkit.org/show_bug.cgi?id=93621
64151
64152        Rubber-stamped by Ryosuke Niwa.
64153
64154        Fix Apple Win build, by avoiding to generate unreachable sections
64155        of code in AccessibilityRenderObject::passwordFieldValue().
64156
64157        * accessibility/AccessibilityRenderObject.cpp:
64158        (WebCore::AccessibilityRenderObject::passwordFieldValue):
64159
641602012-08-10  Dana Jansens  <danakj@chromium.org>
64161
64162        [chromium] Remove targetSurface pointer from CCRenderPass
64163        https://bugs.webkit.org/show_bug.cgi?id=93734
64164
64165        Reviewed by Adrienne Walker.
64166
64167        This removes the CCRenderSurface pointer from the CCRenderPass
64168        structure, allowing it to be serialized and used across processes
64169        freely.
64170
64171        No new tests; no intended change in behaviour.
64172
64173        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
64174        (WebCore::CCLayerTreeHostImpl::drawLayers):
64175        * platform/graphics/chromium/cc/CCRenderPass.cpp:
64176        (WebCore::CCRenderPass::CCRenderPass):
64177        * platform/graphics/chromium/cc/CCRenderPass.h:
64178        (CCRenderPass):
64179
641802012-08-10  Mario Sanchez Prada  <msanchez@igalia.com>
64181
64182        [GTK] Broken implementation of AtkText and AtkEditableText for password fields
64183        https://bugs.webkit.org/show_bug.cgi?id=93621
64184
64185        Reviewed by Chris Fleizach.
64186
64187        Fix broken implementation of AtkText and AtkEditableText
64188        interfaces in the GTK port for password input fields.
64189
64190        * accessibility/AccessibilityRenderObject.cpp:
64191        (WebCore::AccessibilityRenderObject::stringValue): Call the new
64192        function passwordFieldValue() for password input fields.
64193        (WebCore::AccessibilityRenderObject::text): Ditto.
64194        (WebCore::AccessibilityRenderObject::textLength): Return the
64195        actual length of the password in the field for GTK, return -1
64196        otherwise (not to break current behavior in other platforms).
64197        (WebCore::AccessibilityRenderObject::doAXStringForRange): Don't
64198        early return for password fields in GTK (will rely on text()).
64199        (WebCore::AccessibilityRenderObject::passwordFieldValue): New, it
64200        returns the text being actually rendered for a password input
64201        field (normally a masked string) in GTK. It returns String() in
64202        the rest of platforms, to ensure we don't break anything there.
64203        (WebCore):
64204        * accessibility/AccessibilityRenderObject.h:
64205        (AccessibilityRenderObject):
64206        * accessibility/AccessibilityObject.h:
64207        (WebCore::AccessibilityObject::passwordFieldValue): Default
64208        implementation of this new method, returning an empty string.
64209        (AccessibilityObject):
64210
64211        Ensure the 'text-insert' and 'text-remove' signals for the AtkText
64212        interface are properly emitted for password input fields.
64213
64214        * accessibility/gtk/AXObjectCacheAtk.cpp:
64215        (WebCore::AXObjectCache::nodeTextChangePlatformNotification): Make
64216        sure we never emit the password value for an input field in plain
64217        text when inserting or removing text. Emit the masked text instead.
64218
642192012-08-09  Jer Noble  <jer.noble@apple.com>
64220
64221        Use the new AVPlayerItemVideoOutput API in MediaPlayerPrivateAVFoundation.
64222        https://bugs.webkit.org/show_bug.cgi?id=93591
64223
64224        Reviewed by Eric Carlson.
64225
64226        Support the new AVPlayerItemVideoOutput API from Mountain Lion, which has much increased performance over
64227        AVAssetImageGenerator.
64228
64229        No new tests; Performance change only, no net change in functionality.
64230
64231        AVPlayerItemVideoOutput requires an attached CALayer for rendering to occur.  Make the rendering modes non-exclusive, 
64232        so layer-rendering and context-rendering can exist simultaneously:
64233        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: Make the MediaRenderingMode enum
64234            a bitfield.
64235        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
64236        (WebCore::MediaPlayerPrivateAVFoundation::currentRenderingModes): Renamed from currentRenderingMode().
64237        (WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering): Check for the presence of the MediaRenderingToLayer bit.
64238        (WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering): Ditto.
64239        (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Ditto.
64240
64241        Pull out existing the AVAssetImageGenerator into its own functions:
64242        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
64243        (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
64244        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator):
64245        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
64246
64247        Add new AVPlayerItemVideoOutput equivalent functions:
64248        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
64249        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
64250        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):
64251        (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer):
64252        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
64253
64254        Switch between the AVAssetImageGenerator and AVPlayerItemVideoOutput functions from
64255        within the original functions:
64256        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
64257        (WebCore::MediaPlayerPrivateAVFoundationObjC::createContextVideoRenderer):
64258        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
64259        (WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer):
64260        (WebCore::MediaPlayerPrivateAVFoundationObjC::paint):
64261
64262        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
64263        (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Call the 
64264            AVAssetImageGenerator creation function directly.
64265
642662012-08-10  Abhishek Arya  <inferno@chromium.org>
64267
64268        Crash on accessing a removed layout root in FrameView::scheduleRelayout.
64269        https://bugs.webkit.org/show_bug.cgi?id=91368
64270
64271        Reviewed by Levi Weintraub.
64272
64273        We were calling setNeedsLayoutAndPrefWidthsRecalc() in RenderBlock::collapseAnonymousBoxChild
64274        even when documentBeingDestroyed() was true. This ends up accessing stale layout root and bypasses
64275        mitigation added in r109406. There is no need to waste time merging up anonymous blocks in
64276        RenderBlock::removeChild when documentBeingDestroyed() is true.
64277
64278        No new tests. The test is time sensitive, requires a bunch of reloads, and only reproduces on chromium linux.
64279
64280        * rendering/RenderBlock.cpp:
64281        (WebCore::RenderBlock::collapseAnonymousBoxChild):
64282        (WebCore::RenderBlock::removeChild):
64283
642842012-08-10  Dan Bernstein  <mitz@apple.com>
64285
64286        <rdar://problem/11855229> When in paginated mode, the layout timer fires continually
64287        https://bugs.webkit.org/show_bug.cgi?id=91038
64288
64289        Reviewed by Simon Fraser.
64290
64291        * page/Page.cpp:
64292        (WebCore::Page::pageCount): Changed to only trigger layout if needed.
64293
642942012-08-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
64295
64296        [CMAKE] Fix wrong idl include path in CMakeList.txt
64297        https://bugs.webkit.org/show_bug.cgi?id=93715
64298
64299        Reviewed by Rob Buis.
64300
64301        No new tests. No change in behavior.
64302
64303        * CMakeLists.txt: Fix notifications path.
64304
643052012-08-10  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
64306
64307        [Transforms] Hit test issue with large scale() transform
64308        https://bugs.webkit.org/show_bug.cgi?id=23170
64309
64310        Reviewed by Simon Fraser.
64311
64312        By using normal rounding to determine the top-left corner of the
64313        hit-tested rectangle, we end up offsetting the hit test by up to
64314        half a pixel, once scaled to x60, this creates a 30px error.
64315
64316        Normal rounding is replaced with floored rounding which means the
64317        hit-tested pixel will now always be the pixel containing the
64318        point.
64319
64320        Test: fast/transforms/hit-test-large-scale.html
64321
64322        * rendering/HitTestResult.cpp:
64323        (WebCore::HitTestPoint::HitTestPoint):
64324        (WebCore::HitTestPoint::intersectsRect):
64325        (WebCore::HitTestPoint::rectForPoint):
64326
643272012-08-10  Florin Malita  <fmalita@chromium.org>
64328
64329        Unreviewed gardening: build fix for 32bit platforms after 125294.
64330
64331        * css/StyleResolver.cpp:
64332        (RuleData):
64333
643342012-08-10  Takashi Sakamoto  <tasak@google.com>
64335
64336        box-shadow creates incorrect shadow when border-radius is too large
64337        https://bugs.webkit.org/show_bug.cgi?id=72103
64338
64339        Reviewed by Simon Fraser.
64340
64341        Added a code for adjusting a rounded rect before paintBoxShadow in
64342        a similar way to getRoundedRectFor.
64343
64344        Test: fast/borders/border-shadow-large-radius.html
64345
64346        * platform/graphics/RoundedRect.cpp:
64347        (WebCore::RoundedRect::adjustRadii):
64348        Added a new method to set radii's scale to fit into rect.
64349        * platform/graphics/RoundedRect.h:
64350        (RoundedRect):
64351        * rendering/RenderBoxModelObject.cpp:
64352        (WebCore::RenderBoxModelObject::paintBoxShadow):
64353        A rounded rect for box-shadow is not checked whether the raii matches
64354        the rect or not. Added the code to adjust radii's scale if the rounded
64355        rect is not renderable, the case: RoundedRect::isRenderable is false.
64356
643572012-08-10  Ojan Vafai  <ojan@chromium.org>
64358
64359        Wrap INLINE_FLEX in a #if ENABLE(CSS3_FLEXBOX).
64360        Unreviewed build fix.
64361
64362        * rendering/style/RenderStyle.h:
64363
643642012-08-10  Dan Bernstein  <mitz@apple.com>
64365
64366        Renamed the “Modules/webaudio” group in the Xcode project to “webaudio” and moved it into
64367        the Modules group.
64368
64369        Rubber-stamped by Simon Fraser.
64370
64371        * WebCore.xcodeproj/project.pbxproj:
64372
643732012-08-10  Erik Arvidsson  <arv@chromium.org>
64374
64375        [V8] Enable es5_readonly
64376        https://bugs.webkit.org/show_bug.cgi?id=91031
64377
64378        Reviewed by Adam Barth.
64379
64380        This turns on the es5_readonly flag for V8. This makes V8 match the ES5 spec regarding
64381        non writable properties on the prototype chain. JSC already behaves the right so this
64382        just makes V8 behave the same.
64383
64384        Updated test expectations.
64385
64386        * bindings/v8/V8DOMWindowShell.cpp:
64387        (WebCore::V8DOMWindowShell::initContextIfNeeded):
64388        * bindings/v8/WorkerContextExecutionProxy.cpp:
64389        (WebCore::WorkerContextExecutionProxy::initIsolate):
64390
643912012-08-10  Kentaro Hara  <haraken@chromium.org>
64392
64393        [V8] Introduce V8DOMConfiguration class and make batchConfigureXXX() methods static
64394        https://bugs.webkit.org/show_bug.cgi?id=93615
64395
64396        Reviewed by Adam Barth.
64397
64398        Per the discussion in bug 93239,
64399
64400        (1) Rename V8ConfigureDOMAttributesAndMethods to V8DOMConfiguration.
64401        (2) Introduce V8DOMConfiguration class and make batchConfigureXXX() methods static.
64402
64403        No tests. No change in behavior.
64404
64405        * UseV8.cmake:
64406        * WebCore.gypi:
64407        * bindings/scripts/CodeGeneratorV8.pm:
64408        (GenerateImplementation):
64409        * bindings/scripts/test/V8/V8Float64Array.cpp:
64410        (WebCore):
64411        (WebCore::ConfigureV8Float64ArrayTemplate):
64412        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
64413        (WebCore):
64414        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
64415        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
64416        (WebCore):
64417        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
64418        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
64419        (WebCore):
64420        (WebCore::ConfigureV8TestEventConstructorTemplate):
64421        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
64422        (WebCore):
64423        (WebCore::ConfigureV8TestEventTargetTemplate):
64424        * bindings/scripts/test/V8/V8TestException.cpp:
64425        (WebCore):
64426        (WebCore::ConfigureV8TestExceptionTemplate):
64427        * bindings/scripts/test/V8/V8TestInterface.cpp:
64428        (WebCore):
64429        (WebCore::ConfigureV8TestInterfaceTemplate):
64430        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
64431        (WebCore):
64432        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
64433        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
64434        (WebCore::ConfigureV8TestNamedConstructorTemplate):
64435        * bindings/scripts/test/V8/V8TestNode.cpp:
64436        (WebCore::ConfigureV8TestNodeTemplate):
64437        * bindings/scripts/test/V8/V8TestObj.cpp:
64438        (WebCore):
64439        (WebCore::ConfigureV8TestObjTemplate):
64440        (WebCore::V8TestObj::installPerContextProperties):
64441        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
64442        (WebCore):
64443        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
64444        * bindings/v8/V8Binding.h:
64445        * bindings/v8/V8ConfigureDOMAttributesAndMethods.h: Removed.
64446        * bindings/v8/V8DOMConfiguration.cpp: Renamed from Source/WebCore/bindings/v8/V8ConfigureDOMAttributesAndMethods.cpp.
64447        (WebCore):
64448        (WebCore::V8DOMConfiguration::batchConfigureAttributes):
64449        (WebCore::V8DOMConfiguration::batchConfigureConstants):
64450        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
64451        (WebCore::V8DOMConfiguration::configureTemplate):
64452        * bindings/v8/V8DOMConfiguration.h: Added.
64453        (WebCore):
64454        (V8DOMConfiguration):
64455        (BatchedAttribute):
64456        (WebCore::V8DOMConfiguration::configureAttribute):
64457        (BatchedConstant):
64458        (BatchedCallback):
64459
644602012-08-10  Andreas Kling  <kling@webkit.org>
64461
64462        CSS: Shrink RuleData by storing selector as index rather than pointer.
64463        <http://webkit.org/b/93712>
64464
64465        Reviewed by Antti Koivisto.
64466
64467        Pack the selector's index in the rule in the RuleData bitfield, effectively
64468        shrinking each RuleData by 8 bytes.
64469
64470        * css/CSSSelectorList.h:
64471        (WebCore::CSSSelectorList::selectorAt):
64472        (WebCore::CSSSelectorList::indexOfNextSelectorAfter):
64473
64474            Add helpers to CSSSelectorList to iterate by index.
64475
64476        * css/StyleResolver.cpp:
64477        (RuleData):
64478        (WebCore::RuleData::selector):
64479        (WebCore::RuleData::selectorIndex):
64480        (SameSizeAsRuleData):
64481        (RuleSet):
64482        (WebCore::makeRuleSet):
64483        (WebCore::StyleResolver::collectMatchingRulesForList):
64484        * css/StyleResolver.h:
64485        (WebCore::StyleResolver::RuleFeature::RuleFeature):
64486        (RuleFeature):
64487
64488            Store selector indices instead of CSSSelector* pointers.
64489
644902012-08-10  Vineet Chaudhary  <rgf748@motorola.com>
64491
64492        Remove custom bindings from WaveShaperNode.
64493        https://bugs.webkit.org/show_bug.cgi?id=93613
64494
64495        Reviewed by Kentaro Hara.
64496
64497        We should remove custom bindings as CodeGenerator uses UNUSED_PARAM macro.
64498
64499        TestObj.idl
64500        No behavioural changes.
64501        All tests under webaudio/* should behave same.
64502
64503        * GNUmakefile.list.am: Removed JSWaveShaperNodeCustom.cpp from builds.
64504        * Modules/webaudio/WaveShaperNode.idl: Removed [JSCustomSetter].
64505        * UseJSC.cmake: Removed JSWaveShaperNodeCustom.cpp from builds.
64506        * WebCore.xcodeproj/project.pbxproj: Ditto.
64507        * bindings/js/JSWaveShaperNodeCustom.cpp: Removed.
64508        * bindings/scripts/CodeGeneratorCPP.pm:
64509        (SkipAttribute): Skip TypedArray attribute.
64510        * bindings/scripts/CodeGeneratorGObject.pm:
64511        (SkipAttribute): Skip TypedArray attribute.
64512        * bindings/scripts/CodeGeneratorObjC.pm:
64513        (SkipAttribute): Skip TypedArray attribute.
64514        * bindings/scripts/test/JS/JSTestObj.cpp: Bindings tests.
64515        (WebCore::jsTestObjTypedArrayAttr):
64516        (WebCore::setJSTestObjReflectedCustomURLAttr):
64517        (WebCore::setJSTestObjTypedArrayAttr):
64518        * bindings/scripts/test/JS/JSTestObj.h:
64519        * bindings/scripts/test/TestObj.idl: Test.
64520        * bindings/scripts/test/V8/V8TestObj.cpp: Bindings tests.
64521        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
64522        (TestObjV8Internal):
64523        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
64524
645252012-08-10  Huang Dongsung  <luxtella@company100.net>
64526
64527        REGRESSION (r123848): Heap-use-after-free in WebCore::CachedResource::didAddClient.
64528        https://bugs.webkit.org/show_bug.cgi?id=93632
64529        -and corresponding-
64530        <http://crbug.com/140656>
64531
64532        Reviewed by Antti Koivisto.
64533
64534        CachedCSSStyleSheet::didAddClient() calls CachedStyleSheetClient::setCSSStyleSheet
64535        and HTMLLnkElement can be CachedStyleSheetClient.
64536        HTMLLinkElement::setCSSStyleSheet may cause scripts to be executed, which could
64537        destroy the HTMLLinkElement instance. After calliing
64538        CachedStyleSheetClient::setCSSStyleSheet, using the CachedStyleSheetClient
64539        instance can cause Heap-use-after-free.
64540
64541        r115625 prevents HTMLLinkElement from being destroyed during
64542        HTMLLinkElement::setCSSStyleSheet, but r115625 doesn't prevent HTMLLinkElement
64543        from being destroyed after HTMLLinkElement::setCSSStyleSheet.
64544
64545        So this patch calls CachedResource::didAddClient() before calling
64546        setCSSStyleSheet() to make sure its client is not destroyed.
64547
64548        No new tests. it's covered by fast/css/cached-sheet-restore-crash.html.
64549
64550        * loader/cache/CachedCSSStyleSheet.cpp:
64551        (WebCore::CachedCSSStyleSheet::didAddClient):
64552
645532012-08-10  Kevin Ellis  <kevers@chromium.org>
64554
64555        Horizontal scrollbar appears in the month-year selector of input[type=date]
64556        https://bugs.webkit.org/show_bug.cgi?id=93517
64557
64558        Reviewed by Kent Tamura.
64559
64560        Update size of the month-year selector popup to account for the
64561        width of the vertical scrollbar being platform dependent.
64562
64563        * Resources/calendarPicker.css:
64564        (.month-selector-popup): Suppress horizontal scrolling.
64565        * Resources/calendarPicker.js:
64566        (YearMonthController.prototype.attachTo): Add a sizer element to facilitate determining the scrollbar width.
64567        (YearMonthController.prototype._showPopup): Use computed scrollbar width for popup resizing.
64568
645692012-08-10  Alexander Pavlov  <apavlov@chromium.org>
64570
64571        Web Inspector: Unreviewed, fix frontend compilability after r125268.
64572
64573        * inspector/front-end/CSSStyleModel.js:
64574        (WebInspector.NamedFlow):
64575        (WebInspector.NamedFlow.parsePayloadArray):
64576
645772012-08-10  Martin Leutelt  <martin.leutelt@basyskom.com>
64578
64579        [Qt] Dotted borders not drawn with rounded dots
64580        https://bugs.webkit.org/show_bug.cgi?id=92383
64581
64582        Reviewed by Noam Rosenthal.
64583
64584        The dots in borders with dotted style were previously drawn with
64585        rectangular dots. The CSS spec specifies that the dots should be
64586        rounded dots. This patch fixes this behavior for the Qt port.
64587
64588        No new tests, existing ones have been updated with new expected
64589        results.
64590
64591        * platform/graphics/qt/GraphicsContextQt.cpp:
64592        (WebCore::adjustPointsForDottedLine):
64593        (WebCore):
64594        (WebCore::drawLineEndpointsForStyle):
64595        (WebCore::GraphicsContext::drawLine):
64596
645972012-08-10  Pavel Feldman  <pfeldman@chromium.org>
64598
64599        Web Inspector: render arrays as dir in case they were logged into console prior to the front-end opening.
64600        https://bugs.webkit.org/show_bug.cgi?id=93713
64601
64602        Reviewed by Vsevolod Vlasov.
64603
64604        Dumping potentially outdated arrays using the "dir" representation.
64605
64606        * inspector/front-end/ConsoleMessage.js:
64607        (WebInspector.ConsoleMessageImpl):
64608        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
64609        (WebInspector.ConsoleMessageImpl.prototype.clone):
64610        * inspector/front-end/ConsoleModel.js:
64611        (WebInspector.ConsoleModel.prototype.enableAgent.callback):
64612        (WebInspector.ConsoleModel.prototype.enablingConsole):
64613        (WebInspector.ConsoleMessage.create):
64614        (WebInspector.ConsoleDispatcher.prototype.messageAdded):
64615        * inspector/front-end/ConsoleView.js:
64616        (WebInspector.ConsoleMessage.create):
64617
646182012-08-10  Dana Jansens  <danakj@chromium.org>
64619
64620        [chromium] Fix the colors in the debugging HUD
64621        https://bugs.webkit.org/show_bug.cgi?id=93656
64622
64623        Reviewed by Adrienne Walker.
64624
64625        The R and B channels became swapped in our compositor debug HUD when
64626        wkb.ug/92182 happened. This corrects the problem by swizzling the
64627        color channels when we draw to the SkCanvas, so that it matches the
64628        expectations of the shader.
64629
64630        Chromium bug: crbug.com/139908
64631
64632        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
64633        (WebCore::CCFontAtlas::drawText):
64634        (WebCore::CCFontAtlas::drawOneLineOfTextInternal):
64635        * platform/graphics/chromium/cc/CCFontAtlas.h:
64636        (CCFontAtlas):
64637        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
64638        (WebCore::createPaint):
64639        (WebCore):
64640        (WebCore::CCHeadsUpDisplayLayerImpl::drawHudContents):
64641        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounter):
64642        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounterText):
64643        (WebCore::CCHeadsUpDisplayLayerImpl::drawDebugRects):
64644
646452012-08-10  Dana Jansens  <danakj@chromium.org>
64646
64647        [chromium] Remove scissor from the namings in CCOcclusionTracker
64648        https://bugs.webkit.org/show_bug.cgi?id=93630
64649
64650        Reviewed by Adrienne Walker.
64651
64652        As a followup to wkb.ug/91800 which stops using partial-swap scissor
64653        in the occlusion tracker, this does a large rename to the occlusion
64654        tracker and affected tests to remove "scissor" from the names of its
64655        variables and methods, instead reflecting their new behaviour.
64656
64657        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
64658        (WebCore::::CCOcclusionTrackerBase):
64659        (WebCore::addOcclusionBehindLayer):
64660        (WebCore::::markOccludedBehindLayer):
64661        (WebCore::testContentRectOccluded):
64662        (WebCore::::occluded):
64663        (WebCore::computeUnoccludedContentRect):
64664        (WebCore::::unoccludedContentRect):
64665        (WebCore::::unoccludedContributingSurfaceContentRect):
64666        (WebCore::::layerClipRectInTarget):
64667        (WebCore):
64668        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
64669        (CCOcclusionTrackerBase):
64670        (WebCore::CCOcclusionTrackerBase::computeVisibleRegionInScreen):
64671
646722012-08-10  Jon Lee  <jonlee@apple.com>
64673
64674        Change Notification.permissionLevel() to Notification.permission
64675        https://bugs.webkit.org/show_bug.cgi?id=88919
64676        <rdar://problem/11650319>
64677
64678        Reviewed by Kentaro Hara.
64679
64680        Retrieving the permission level has changed to Notification.permission, per this discussion:
64681        http://lists.w3.org/Archives/Public/public-web-notification/2012Jun/0000.html
64682
64683        Test: fast/notifications/notifications-permission.html
64684
64685        * Modules/notifications/Notification.cpp: Rename to match attribute name.
64686        (WebCore::Notification::permission):
64687        * Modules/notifications/Notification.h: Rename to match attribute name.
64688        (Notification):
64689        * Modules/notifications/Notification.idl: Change to static readonly attribute.
64690
646912012-08-10  Kentaro Hara  <haraken@chromium.org>
64692
64693        [V8] Remove collectIsolatedContexts() from V8Proxy
64694        https://bugs.webkit.org/show_bug.cgi?id=93682
64695
64696        Reviewed by Adam Barth.
64697
64698        We want to remove V8Proxy. This patch removes V8Proxy::collectIsolatedContexts().
64699
64700        No tests. No change in behavior.
64701
64702        * bindings/v8/ScriptController.cpp:
64703        (WebCore::ScriptController::collectIsolatedContexts):
64704        * bindings/v8/V8Proxy.cpp:
64705        (WebCore::V8Proxy::collectIsolatedContexts):
64706
647072012-08-10  Simon Hausmann  <simon.hausmann@nokia.com>
64708
64709        [Qt] Unreviewed trivial build fix: Avoid passing a non-existance WebCore/websockets directory
64710        to the generators, which produces unnecessary warnings. The module lives now in WebCore/Modules/websockets.
64711
64712        * DerivedSources.pri:
64713
647142012-08-10  Andrey Kosyakov  <caseq@chromium.org>
64715
64716        Web Inspector: add frame ids to TimeStamp, Time and TimeEnd records in Timeline
64717        https://bugs.webkit.org/show_bug.cgi?id=93699
64718
64719        Reviewed by Pavel Feldman.
64720
64721        - plumb Frame from Console to TimelineAgent and use it to add frameId to 3 timeline records;
64722
64723        * inspector/InspectorConsoleInstrumentation.h:
64724        (WebCore::InspectorInstrumentation::startConsoleTiming):
64725        (WebCore::InspectorInstrumentation::stopConsoleTiming):
64726        (WebCore::InspectorInstrumentation::consoleTimeStamp):
64727        * inspector/InspectorInstrumentation.cpp:
64728        (WebCore):
64729        (WebCore::InspectorInstrumentation::startConsoleTimingImpl):
64730        (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
64731        (WebCore::InspectorInstrumentation::consoleTimeStampImpl):
64732        * inspector/InspectorInstrumentation.h:
64733        (InspectorInstrumentation):
64734        * inspector/InspectorTimelineAgent.cpp:
64735        (WebCore::InspectorTimelineAgent::didTimeStamp):
64736        (WebCore::InspectorTimelineAgent::time):
64737        (WebCore::InspectorTimelineAgent::timeEnd):
64738        * inspector/InspectorTimelineAgent.h:
64739        (InspectorTimelineAgent):
64740        * page/Console.cpp:
64741        (WebCore::Console::markTimeline):
64742        (WebCore::Console::time):
64743        (WebCore::Console::timeEnd):
64744        (WebCore::Console::timeStamp):
64745
647462012-08-10  Simon Hausmann  <simon.hausmann@nokia.com>
64747
64748        [Qt] Fix failing assertions when using JSC C API in QObject bridge
64749        https://bugs.webkit.org/show_bug.cgi?id=93720
64750
64751        Reviewed by Kenneth Rohde Christiansen.
64752
64753        Avoid calling JSValueProtect and JSValueIsEqual with null JSValueRefs, as in debug
64754        builds they trigger failing assertions about the arguments being non-null.
64755
64756        In these signal & slot connections the receiver can be null, when the signal is connected
64757        just to a function, for example using obj.mySignal.connect(function() { .... }).
64758
64759        * bridge/qt/qt_runtime.cpp:
64760        (JSC::Bindings::QtConnectionObject::QtConnectionObject):
64761        (JSC::Bindings::QtConnectionObject::~QtConnectionObject):
64762        (JSC::Bindings::QtConnectionObject::match):
64763
647642012-08-10  Simon Hausmann  <simon.hausmann@nokia.com>
64765
64766        [Qt] Remove QRegExp <> JS RegExp conversion
64767        https://bugs.webkit.org/show_bug.cgi?id=93716
64768
64769        Reviewed by Kenneth Rohde Christiansen.
64770
64771        Removed automatic conversion between QRegExp and JS regular expressions. The semantics
64772        between the expressions are totally different, which can cause data loss and unexpected
64773        behaviour. QJSEngine/Value doesn't have this conversion anymore neither.
64774
64775        * bridge/qt/qt_runtime.cpp:
64776        (JSC::Bindings::operator<<):
64777        (JSC::Bindings::valueRealType):
64778        (JSC::Bindings::convertValueToQVariant):
64779        (JSC::Bindings::convertQVariantToValue):
64780
647812012-08-10  Andrey Kosyakov  <caseq@chromium.org>
64782
64783        Web Inspector: console.timeStamp() marked are not shown in Timeline overview
64784        https://bugs.webkit.org/show_bug.cgi?id=93697
64785
64786        Reviewed by Pavel Feldman.
64787
64788        - ignore frameId on TimeStamp records, consider it's always an event divider.
64789
64790        * inspector/front-end/TimelinePresentationModel.js:
64791        (WebInspector.TimelinePresentationModel.isEventDivider):
64792
647932012-08-10  Mihnea Ovidenie  <mihnea@adobe.com>
64794
64795        [CSS Regions] region-overflow: break still renders the content that does not fit in the last region.
64796        https://bugs.webkit.org/show_bug.cgi?id=92996
64797
64798        Reviewed by Julien Chaffraix.
64799
64800        Flow content that follows the last break in the last region, if any, should not be rendered
64801        for the regions with region-overflow: break.
64802        http://www.w3.org/TR/css3-regions/#the-region-overflow-property
64803
64804        Modified the expected result for existing test fast/regions/region-overflow-break.html
64805        to reflect the correct behavior.
64806
64807        * rendering/RenderRegion.cpp:
64808        (WebCore::RenderRegion::regionOversetRect):
64809
648102012-08-10  Andrei Poenaru  <poenaru@adobe.com>
64811
64812        Web Inspector: Protocol Extension: Refactor protocol extension for CSS Regions
64813        https://bugs.webkit.org/show_bug.cgi?id=92089
64814
64815        Reviewed by Pavel Feldman.
64816
64817        Replaced "WebKitNamedFlowCollection::namedFlowsNames" with "WebKitNamedFlowCollection::namedFlows" to return a Vector of "WebKitNamedFlow"s,
64818        instead of a Vector of Strings.
64819
64820        Added the "Region" type to Inspector.json.
64821        Changed the "NamedFlow" type and the "getNamedFlowCollection" function in Inspector.json.
64822
64823        Modified existing test: inspector/styles/protocol-css-regions-commands.html
64824
64825        * dom/WebKitNamedFlowCollection.cpp:
64826        (WebCore::WebKitNamedFlowCollection::namedFlows):
64827        * dom/WebKitNamedFlowCollection.h:
64828        (WebKitNamedFlowCollection):
64829        * inspector/Inspector.json:
64830        * inspector/InspectorCSSAgent.cpp:
64831        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
64832        (WebCore::InspectorCSSAgent::getFlowByName):
64833        (WebCore::InspectorCSSAgent::buildArrayForRegions):
64834        (WebCore):
64835        (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
64836        * inspector/InspectorCSSAgent.h:
64837        (InspectorCSSAgent):
64838        * inspector/InspectorDOMAgent.cpp:
64839        (WebCore::InspectorDOMAgent::pushNodeToFrontend):
64840        (WebCore):
64841        * inspector/InspectorDOMAgent.h:
64842        (InspectorDOMAgent):
64843        * inspector/front-end/CSSStyleModel.js:
64844        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
64845        (WebInspector.NamedFlow):
64846        (WebInspector.NamedFlow.parsePayloadArray):
64847
648482012-08-10  Keishi Hattori  <keishi@webkit.org>
64849
64850        Resize calandar and color suggestion popups to show error message
64851        https://bugs.webkit.org/show_bug.cgi?id=93695
64852
64853        Reviewed by Kent Tamura.
64854
64855        r125169 made PagePopupClient::contentSize() return zero size and so to
64856        see the error message, we need to resize the page popup.
64857
64858        No new tests. Not user facing.
64859
64860        * Resources/calendarPicker.js:
64861        (resizeWindow): Resizes popup window to given size.
64862        (showMain): Initiates transition to show the main element.
64863        (initialize):
64864        (fixWindowSize):
64865        * Resources/colorSuggestionPicker.js:
64866        (resizeWindow):
64867        (initialize):
64868        (ColorPicker.prototype._layout):
64869
648702012-08-10  Yury Semikhatsky  <yurys@chromium.org>
64871
64872        Web Inspector: further ResourceLoader memory instrumentation
64873        https://bugs.webkit.org/show_bug.cgi?id=93692
64874
64875        Reviewed by Vsevolod Vlasov.
64876
64877        Added missing parts to ResourceLoader and its descendants memory instrumentation.
64878        Added special logic for KURL and report the urls where we have them in instrumented classes.
64879
64880        * CMakeLists.txt:
64881        * GNUmakefile.list.am:
64882        * Target.pri:
64883        * WebCore.gypi:
64884        * WebCore.vcproj/WebCore.vcproj:
64885        * WebCore.xcodeproj/project.pbxproj:
64886        * css/StyleSheetContents.cpp:
64887        (WebCore::StyleSheetContents::reportMemoryUsage):
64888        * dom/Document.cpp:
64889        (WebCore::Document::reportMemoryUsage):
64890        * dom/MemoryInstrumentation.cpp:
64891        (WebCore::MemoryInstrumentation::addObject):
64892        (WebCore):
64893        * dom/MemoryInstrumentation.h:
64894        (WebCore):
64895        (MemoryInstrumentation):
64896        (WebCore::MemoryClassInfo::addMember):
64897        * loader/MainResourceLoader.cpp:
64898        (WebCore::MainResourceLoader::reportMemoryUsage):
64899        (WebCore):
64900        * loader/MainResourceLoader.h:
64901        (MainResourceLoader):
64902        * loader/SubresourceLoader.cpp:
64903        (WebCore::SubresourceLoader::reportMemoryUsage):
64904        (WebCore):
64905        * loader/SubresourceLoader.h:
64906        (SubresourceLoader):
64907        * loader/SubstituteData.cpp: Copied from Source/WebCore/dom/MemoryInstrumentation.cpp.
64908        (WebCore):
64909        (WebCore::SubstituteData::reportMemoryUsage):
64910        * loader/SubstituteData.h:
64911        (WebCore):
64912        (SubstituteData):
64913
649142012-08-10  Yoshifumi Inoue  <yosin@chromium.org>
64915
64916        [Forms] Introduce shadow elements for multiple fields time input UI
64917        https://bugs.webkit.org/show_bug.cgi?id=92960
64918
64919        Reviewed by Kent Tamura.
64920
64921        This patch introduces shadow elements for multiple fields time input UI:
64922            - DateTimeAMPMFieldElement - field UI for AM/PM
64923            - DateTimeEditElement - container of multiple DateTimeFieldElement
64924            - DateTimeFieldElement - base class of field UI
64925            - DateTimeHourFieldElement - field UI for hour
64926            - DateTimeMillisecondFieldElement - field UI for millisecond
64927            - DateTimeMinuteFieldElement - field UI for minute
64928            - DateTimeNumericFieldElement - base class of numeric field UI.
64929            - DateTimeSecondFieldElement - field UI for second
64930            - DateTimeSymbolicFieldElement - base class for symbolic field UI
64931        inside of ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS build flag.
64932
64933        No new tests. This patch doesn't change behavior.
64934
64935        * WebCore.gypi: Changed to include html/shadow/DateTimeEditElement.cpp,
64936        html/shadow/DateTimeEdditElement.h, html/shadow/DateTimeFieldElement.cpp,
64937        html/shadow/DateTimeFieldElement.h, html/shadow/DateTimeFieldElements.cpp,
64938        html/shadow/DateTimeFieldElements.h, html/shadow/DateTimeNumericFieldElement.cpp,
64939        html/shadow/DateTimeNumericFieldElement.h, html/shadow/DateTimeSymbolicFieldElement.cpp,
64940        and html/shadow/DateTimeSymbolicFieldElement.h.
64941        * html/shadow/DateTimeEditElement.cpp: Added.
64942        (DateTimeEditBuilder):
64943        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
64944        (WebCore::DateTimeEditBuilder::build):
64945        (WebCore::DateTimeEditBuilder::needMillisecondField):
64946        (WebCore::DateTimeEditBuilder::needMinuteField):
64947        (WebCore::DateTimeEditBuilder::needSecondField):
64948        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
64949        (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
64950        (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
64951        (WebCore::DateTimeEditBuilder::visitField):
64952        (WebCore::DateTimeEditBuilder::visitLiteral):
64953        (WebCore::DateTimeEditElement::EditControlOwner::~EditControlOwner):
64954        (WebCore::DateTimeEditElement::DateTimeEditElement):
64955        (WebCore::DateTimeEditElement::~DateTimeEditElement):
64956        (WebCore::DateTimeEditElement::addField):
64957        (WebCore::DateTimeEditElement::create):
64958        (WebCore::DateTimeEditElement::disabledStateChanged): Called when owner's disabled state is changed.
64959        (WebCore::DateTimeEditElement::fieldAt):
64960        (WebCore::DateTimeEditElement::focusFieldAt):
64961        (WebCore::DateTimeEditElement::handleKeyboardEvent):
64962        (WebCore::DateTimeEditElement::fieldValueChanged):
64963        (WebCore::DateTimeEditElement::focusOnNextField):
64964        (WebCore::DateTimeEditElement::handleMouseEvent):
64965        (WebCore::DateTimeEditElement::isDisabled):
64966        (WebCore::DateTimeEditElement::isReadOnly):
64967        (WebCore::DateTimeEditElement::layout):
64968        (WebCore::DateTimeEditElement::nextFieldIndex):
64969        (WebCore::DateTimeEditElement::previousFieldIndex):
64970        (WebCore::DateTimeEditElement::readOnlyStateChanged): Called when owner's readOnly state is changed.
64971        (WebCore::DateTimeEditElement::resetLayout):
64972        (WebCore::DateTimeEditElement::defaultEventHandler):
64973        (WebCore::DateTimeEditElement::setValueAsDate):
64974        (WebCore::DateTimeEditElement::setEmptyValue):
64975        (WebCore::DateTimeEditElement::spinButtonStepDown):
64976        (WebCore::DateTimeEditElement::spinButtonStepUp):
64977        (WebCore::DateTimeEditElement::updateUIState):
64978        (WebCore::DateTimeEditElement::valueAsDouble):
64979        * html/shadow/DateTimeEditElement.h: Added.
64980        (DateTimeEditElement):
64981        (EditControlOwner):
64982        (WebCore::DateTimeEditElement::removeEditControlOwner):
64983        * html/shadow/DateTimeFieldElement.cpp: Added.
64984        (WebCore::DateTimeFieldElement::FieldEventHandler::~FieldEventHandler):
64985        (WebCore::DateTimeFieldElement::DateTimeFieldElement):
64986        (WebCore::DateTimeFieldElement::defaultEventHandler):
64987        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
64988        (WebCore::DateTimeFieldElement::focusOnNextField):
64989        (WebCore::DateTimeFieldElement::initialize):
64990        (WebCore::DateTimeFieldElement::isReadOnly):
64991        (WebCore::DateTimeFieldElement::setReadOnly):
64992        (WebCore::DateTimeFieldElement::updateVisibleValue):
64993        (WebCore::DateTimeFieldElement::valueAsDouble):
64994        * html/shadow/DateTimeFieldElement.h: Added.
64995        (DateTimeFieldElement):
64996        (FieldEventHandler):
64997        (WebCore::DateTimeFieldElement::removeEventHandler):
64998        * html/shadow/DateTimeFieldElements.cpp: Added.
64999        (WebCore::DateTimeAMPMFieldElement::DateTimeAMPMFieldElement):
65000        (WebCore::DateTimeAMPMFieldElement::create):
65001        (WebCore::DateTimeAMPMFieldElement::setValueAsDate):
65002        (WebCore::DateTimeAMPMFieldElement::unitInMillisecond):
65003        (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement):
65004        (WebCore::DateTimeHourFieldElement::create):
65005        (WebCore::DateTimeHourFieldElement::setValueAsDate):
65006        (WebCore::DateTimeHourFieldElement::setValueAsInteger):
65007        (WebCore::DateTimeHourFieldElement::unitInMillisecond):
65008        (WebCore::DateTimeHourFieldElement::valueAsInteger):
65009        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
65010        (WebCore::DateTimeMillisecondFieldElement::create):
65011        (WebCore::DateTimeMillisecondFieldElement::setValueAsDate):
65012        (WebCore::DateTimeMillisecondFieldElement::unitInMillisecond):
65013        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
65014        (WebCore::DateTimeMinuteFieldElement::create):
65015        (WebCore::DateTimeMinuteFieldElement::setValueAsDate):
65016        (WebCore::DateTimeMinuteFieldElement::unitInMillisecond):
65017        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
65018        (WebCore::DateTimeSecondFieldElement::create):
65019        (WebCore::DateTimeSecondFieldElement::setValueAsDate):
65020        (WebCore::DateTimeSecondFieldElement::unitInMillisecond):
65021        * html/shadow/DateTimeFieldElements.h: Added.
65022        (DateTimeAMPMFieldElement):
65023        (DateTimeHourFieldElement):
65024        (DateTimeMillisecondFieldElement):
65025        (DateTimeMinuteFieldElement):
65026        (DateTimeSecondFieldElement):
65027        * html/shadow/DateTimeNumericFieldElement.cpp: Added.
65028        (WebCore::displaySizeOfNumber):
65029        (WebCore::DateTimeNumericFieldElement::Range::Range):
65030        (WebCore::DateTimeNumericFieldElement::Range::clumpValue):
65031        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
65032        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
65033        (WebCore::DateTimeNumericFieldElement::hasValue):
65034        (WebCore::DateTimeNumericFieldElement::setEmptyValue):
65035        (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
65036        (WebCore::DateTimeNumericFieldElement::stepDown):
65037        (WebCore::DateTimeNumericFieldElement::stepUp):
65038        (WebCore::DateTimeNumericFieldElement::value):
65039        (WebCore::DateTimeNumericFieldElement::valueAsInteger):
65040        (WebCore::DateTimeNumericFieldElement::visibleValue):
65041        * html/shadow/DateTimeNumericFieldElement.h: Added.
65042        (DateTimeNumericFieldElement):
65043        (WebCore::DateTimeNumericFieldElement::clumpValue):
65044        (WebCore::DateTimeNumericFieldElement::range):
65045        * html/shadow/DateTimeSymbolicFieldElement.cpp: Added.
65046        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
65047        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
65048        (WebCore::DateTimeSymbolicFieldElement::hasValue):
65049        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
65050        (WebCore::DateTimeSymbolicFieldElement::setValueAsInteger):
65051        (WebCore::DateTimeSymbolicFieldElement::stepDown):
65052        (WebCore::DateTimeSymbolicFieldElement::stepUp):
65053        (WebCore::DateTimeSymbolicFieldElement::value):
65054        (WebCore::DateTimeSymbolicFieldElement::valueAsInteger):
65055        (WebCore::DateTimeSymbolicFieldElement::visibleValue):
65056        * html/shadow/DateTimeSymbolicFieldElement.h: Added.
65057        (DateTimeSymbolicFieldElement):
65058
650592012-08-10  Tony Chang  <tony@chromium.org>
65060
65061        implement display: -webkit-inline-flex
65062        https://bugs.webkit.org/show_bug.cgi?id=77772
65063
65064        Reviewed by Ojan Vafai.
65065
65066        The crashes last time were because we were marking too much of the tree for relayout. During some editing
65067        operations, this causes a layout when we're in an inconsistent state.
65068
65069        Tests: css3/flexbox/inline-flex-crash.html
65070               css3/flexbox/inline-flex-crash2.html
65071               css3/flexbox/inline-flex.html
65072
65073        * rendering/RenderFlexibleBox.cpp:
65074        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Only layout the child.
65075        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Only layout the child.
65076        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Only layout the child.
65077        * rendering/style/RenderStyle.h: Include INLINE_FLEX as an inline and replaced display type.
65078
650792012-08-10  Vineet Chaudhary  <rgf748@motorola.com>
65080
65081        Moving the common code from CodegeneratorJS/V8.pm to Codegenerator.pm
65082        https://bugs.webkit.org/show_bug.cgi?id=93616
65083
65084        Reviewed by Adam Barth.
65085
65086        IsArrayType() IsConstructorTemplate() IsTypedArrayType() these methods
65087        has the common implementaion for both V8 and JS and can be moved to
65088        common place Codegenerator.pm
65089
65090        No new tests. There should be no behavioural changes.
65091
65092        * bindings/scripts/CodeGenerator.pm: Moved common code here.
65093        (IsArrayType):
65094        (IsConstructorTemplate):
65095        (IsSVGTypeWithWritablePropertiesNeedingTearOff):
65096        (IsTypedArrayType):
65097        * bindings/scripts/CodeGeneratorJS.pm:
65098        (AddIncludesForType):
65099        (AddClassForwardIfNeeded):
65100        (GenerateHeader):
65101        (GenerateParametersCheckExpression):
65102        (GenerateImplementation):
65103        (NativeToJSValue):
65104        (GenerateConstructorDeclaration):
65105        (GenerateConstructorDefinition):
65106        (IsConstructable):
65107        * bindings/scripts/CodeGeneratorV8.pm:
65108        (AddIncludesForType):
65109        (GenerateHeader):
65110        (GetHeaderClassInclude):
65111        (GenerateParametersCheckExpression):
65112        (GenerateImplementation):
65113        (GetTypeNameOfExternalTypedArray):
65114
651152012-08-10  Sheriff Bot  <webkit.review.bot@gmail.com>
65116
65117        Unreviewed, rolling out r125230 and r125238.
65118        http://trac.webkit.org/changeset/125230
65119        http://trac.webkit.org/changeset/125238
65120        https://bugs.webkit.org/show_bug.cgi?id=93698
65121
65122        Broke ChromiumOS browser tests. (Requested by yutak on
65123        #webkit).
65124
65125        * platform/graphics/chromium/TiledLayerChromium.cpp:
65126        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
65127        (WebCore::TiledLayerChromium::updateContentRect):
65128        (WebCore::TiledLayerChromium::needsIdlePaint):
65129        (WebCore::TiledLayerChromium::idlePaintRect):
65130        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
65131        (WebCore::CCLayerTilingData::contentRectToTileIndices):
65132        (WebCore::CCLayerTilingData::setBounds):
65133        * platform/graphics/chromium/cc/CCPriorityCalculator.h:
65134
651352012-08-09  Carlos Garcia Campos  <cgarcia@igalia.com>
65136
65137        Handle SSL errors for SOUP
65138        https://bugs.webkit.org/show_bug.cgi?id=90267
65139
65140        Reviewed by Martin Robinson.
65141
65142        No new tests, this is covered by existing tests.
65143
65144        * platform/LocalizedStrings.h:
65145        (WebCore): Add unacceptableTLSCertificate() for SOUP.
65146        * platform/efl/LocalizedStringsEfl.cpp:
65147        (WebCore::unacceptableTLSCertificate):
65148        * platform/gtk/LocalizedStringsGtk.cpp:
65149        (WebCore::unacceptableTLSCertificate):
65150        * platform/network/ResourceHandle.h:
65151        * platform/network/soup/ResourceError.h:
65152        (WebCore::ResourceError::ResourceError): Add new constructor for
65153        SSL errors that receives a certificate and TLS errors.
65154        (WebCore::ResourceError::tlsErrors): Return TLS errors.
65155        (WebCore::ResourceError::certificate): Return the certificate.
65156        * platform/network/soup/ResourceHandleSoup.cpp:
65157        (HostTLSCertificates): Helper class to store certificates for a
65158        host.
65159        (WebCore::HostTLSCertificateSet::add): Add a new certificate.
65160        (WebCore::HostTLSCertificateSet::contains): Check whether
65161        certificate is stored.
65162        (WebCore::HostTLSCertificateSet::computeCertificateHash): Compute
65163        the SHA1 of the certificate data.
65164        (WebCore::allowsAnyHTTPSCertificateHosts): Global set to store
65165        hostnames for which SSL errors should be ignored.
65166        (WebCore::clientCertificates): Global map to store client
65167        certificates.
65168        (WebCore::hasUnignoredTLSErrors): Helper function to check whether
65169        current message contains TLS errors that shouldn't be ignored and
65170        certificate hasn't been approved already.
65171        (WebCore::sendRequestCallback): Finish the load with an error in
65172        case of SSL errors not handled by the SoupSession.
65173        (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate): Add
65174        the given hostname to the list of hosts for which SSL errors are
65175        ignored.
65176        (WebCore::ResourceHandle::setClientCertificate): Store the client
65177        certificate for the given host.
65178        (WebCore::ResourceHandle::setIgnoreSSLErrors): Set whether all SSL
65179        errors should be ignored.
65180
651812012-08-10  Arko Saha  <arko@motorola.com>
65182
65183        itemType.add should treat \t as a space.
65184        https://bugs.webkit.org/show_bug.cgi?id=92991
65185
65186        Reviewed by Ryosuke Niwa.
65187
65188        Earlier we used to append a space character i.e, ' ' to the string builder
65189        if the last character of input string is not a space character in addToken()
65190        method. We should add an space character if the last character of input is
65191        not a HTML Space character like, '\n', '\r', '\t', '\f' or ' '.
65192
65193        We can observe the same behavior in FireFox, Opera and IE. They also treat
65194        HTML space character as a space.
65195
65196        Test: fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
65197
65198        * html/DOMTokenList.cpp:
65199        (WebCore::DOMTokenList::addToken):
65200
652012012-08-10  Tony Chang  <tony@chromium.org>
65202
65203        Remove unused isFlexingChildren and make m_flexingChildren a local variable
65204        https://bugs.webkit.org/show_bug.cgi?id=93689
65205
65206        Reviewed by Ojan Vafai.
65207
65208        isFlexingChildren() is never called, so we can remove it.
65209
65210        m_flexingChildren is now only used locally, so remove the member variable and use a local variable.
65211
65212        No new tests, this is just a refactoring.
65213
65214        * rendering/RenderDeprecatedFlexibleBox.cpp:
65215        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
65216        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
65217        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Make flexingChildren a local.
65218        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Make flexingChildren a local.
65219        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp): No need to set m_flexingChildren since it's not used
65220        outside of RenderDeprecatedFlexibleBox.
65221        * rendering/RenderDeprecatedFlexibleBox.h:
65222        (RenderDeprecatedFlexibleBox): Remove m_flexingChildren and don't bit pack the remaining bool since it doesn't
65223        do anything for 1 bool.
65224        * rendering/RenderObject.h:
65225
652262012-08-10  Sam D  <dsam2912@gmail.com>
65227
65228        Web Inspector: Search matches count view is flaky.
65229        https://bugs.webkit.org/show_bug.cgi?id=93451
65230
65231        Reviewed by Pavel Feldman.
65232
65233        Modified css properties for aligning search panel.
65234
65235        No new tests.UI change.
65236
65237        * inspector/front-end/inspector.css:
65238        (.search-results-matches):
65239
652402012-08-09  Simon Hausmann  <simon.hausmann@nokia.com>
65241
65242        [Qt] Remove support for __qt_sender__ in QObject bridge
65243        https://bugs.webkit.org/show_bug.cgi?id=93649
65244
65245        Reviewed by Kenneth Rohde Christiansen.
65246
65247        Support for __qt_sender__ has also been removed from QtScript/QJSEngine. The right
65248        JavaScript solution to the problem is Function.prototype.bind.
65249
65250        * bridge/qt/qt_instance.cpp:
65251        (Bindings):
65252        * bridge/qt/qt_instance.h:
65253        * bridge/qt/qt_runtime.cpp:
65254        (Bindings):
65255        (JSC::Bindings::QtConnectionObject::execute):
65256
652572012-08-09  Shane Stephens  <shanestephens@google.com>
65258
65259        Convert CSSParser's m_reusableSelectorVector to OwnPtr and rename to m_selectorVector.
65260        https://bugs.webkit.org/show_bug.cgi?id=93574
65261
65262        Reviewed by Ojan Vafai.
65263
65264        This is preparatory work for CSS Hierarchies (see wkb.ug/79939).
65265        CSS Hierarchies works by pushing selectorVectors onto a stack while nested selectorVectors are parsed.
65266        For this reason, the selectorVector in CSSParser can't be re-used between selector parses within a set of
65267        nested selectors. This patch wraps the selectorVector in an OwnPtr but does not otherwise modify its use.
65268
65269        Similarly, CSSParser::m_parsedProperties is converted from a direct ParsedPropertyVector included
65270        as a member of CSSParser to an OwnPtr.
65271
65272        Once Hierarchies are introduced, when a selectorVector is stacked a new one will be created 
65273        and stored in m_selectorVector (see wkb.ug/79939 for context). However, an accompanying unstacking
65274        mechanism ensures that selectorVectors will be reused in all circumstances where they currently are.
65275
65276        This patch also introduces a CSSSelectorVector typedef to simplify and improve readability of 
65277        type signatures in and around CSSParser.
65278
65279        No new tests as this patch doesn't introduce new functionality.
65280
65281        * css/CSSGrammar.y:
65282        * css/CSSParser.cpp:
65283        (WebCore::CSSParser::CSSParser):
65284        (WebCore::CSSParser::parseValue):
65285        (WebCore::CSSParser::parseColor):
65286        (WebCore::CSSParser::parseDeclaration):
65287        (WebCore):
65288        (WebCore::filterProperties):
65289        (WebCore::CSSParser::createStylePropertySet):
65290        (WebCore::CSSParser::addProperty):
65291        (WebCore::CSSParser::rollbackLastProperties):
65292        (WebCore::CSSParser::clearProperties):
65293        (WebCore::CSSParser::parse4Values):
65294        (WebCore::CSSParser::parseFlowThread):
65295        (WebCore::CSSParser::createFloatingSelectorVector):
65296        (WebCore::CSSParser::sinkFloatingSelectorVector):
65297        (WebCore::CSSParser::createStyleRule):
65298        (WebCore::CSSParser::createFontFaceRule):
65299        (WebCore::CSSParser::createPageRule):
65300        (WebCore::CSSParser::setReusableRegionSelectorVector):
65301        (WebCore::CSSParser::startDeclarationsForMarginBox):
65302        (WebCore::CSSParser::endDeclarationsForMarginBox):
65303        (WebCore::CSSParser::deleteFontFaceOnlyValues):
65304
65305        m_reusableSelectorVector renamed to m_selectorVector and wrapped in OwnPtr.
65306        m_parsedProperties wrapped in OwnPtr.
65307        * css/CSSParser.h:
65308        (WebCore::CSSParser::hasProperties):
65309        (WebCore::CSSParser::selectorVector): function renamed from reusableSelectorVector
65310        (CSSParser): 
65311        (WebCore::CSSParser::reusableRegionSelectorVector):
65312        * css/CSSParserValues.cpp:
65313        (WebCore::CSSParserSelector::adoptSelectorVector):
65314        * css/CSSParserValues.h: CSSSelectorVector typedef added
65315        (WebCore):
65316        (CSSParserSelector):
65317        * css/CSSSelectorList.cpp:
65318        (WebCore::CSSSelectorList::adoptSelectorVector):
65319        * css/CSSSelectorList.h:
65320        (CSSSelectorList):
65321        * css/SVGCSSParser.cpp:
65322        (WebCore::CSSParser::parseSVGValue):
65323        * css/StyleRule.cpp:
65324        (WebCore::StyleRuleRegion::StyleRuleRegion):
65325        * css/StyleRule.h:
65326        (WebCore::StyleRule::parserAdoptSelectorVector):
65327        (WebCore::StyleRulePage::parserAdoptSelectorVector):
65328        (WebCore::StyleRuleRegion::create):
65329        (StyleRuleRegion):
65330
653312012-08-02  Dominic Cooney  <dominicc@chromium.org>
65332
65333        SVGElementInstance should have EventTarget on the prototype chain
65334        https://bugs.webkit.org/show_bug.cgi?id=88232
65335
65336        Reviewed by Adam Barth.
65337
65338        SVG 1.1 specifies that SVGElementInstance has EventTarget as its
65339        parent interface:
65340        <http://www.w3.org/TR/SVG/struct.html#InterfaceSVGElementInstance>
65341        Match the spec by putting EventTarget on the prototype chain of
65342        SVGElementInstance instead of redundantly declaring
65343        addEventListener, removeEventListener and dispatchEvent on the
65344        SVGElementInstance interface. This is an incremental step to make
65345        all EventTargets do it this way, being tracked in bug 67312.
65346
65347        Covered by existing tests, eg
65348        svg/custom/use-instanceRoot-as-event-target.xhtml
65349
65350        * CMakeLists.txt: Finding base interface types requires
65351        searching directories with the IDLs of base interfaces.
65352        * DerivedSources.cpp: Add generated JSEventTarget.cpp.
65353        * DerivedSources.make: (Search paths again -- see CMakeLists.txt)
65354        * DerivedSources.pri: "
65355        * bindings/js/JSEventTargetCustom.cpp:
65356        (WebCore::toEventTarget): Try to unwrap EventTargets simply as
65357        EventTargets. When all EventTargets do this consistently this
65358        function will be simplified.
65359        * bindings/js/JSSVGElementInstanceCustom.cpp:
65360        (WebCore::JSSVGElementInstance::visitChildren): SVGElementInstance
65361        skips walking its event listener list because it forwards
65362        listeners to its corresponding element.
65363        * bindings/scripts/CodeGenerator.pm:
65364        (IsStrictSubtype): For finding what is an EventTarget based on
65365        parent interface.
65366        * bindings/scripts/CodeGeneratorJS.pm:
65367        (GenerateHeader): Extend the heuristic for what is an
65368        EventTarget. When all EventTargets are handled consistently this
65369        will be simplified.
65370        (GenerateImplementation):
65371        * bindings/scripts/CodeGeneratorV8.pm: Extend the heuristic for
65372        what is an EventTarget, and remove some of the special-casing for
65373        EventTarget.
65374        (GenerateHeader):
65375        (GetInternalFields):
65376        (GenerateImplementation):
65377        (BaseInterfaceName):
65378        (GenerateToV8Converters):
65379        (GetNativeType):
65380        (JSValueToNative):
65381        (GetV8HeaderName):
65382        * bindings/scripts/test/V8/V8Float64Array.cpp:
65383        (WebCore::V8Float64Array::wrapSlow): Add assertions.
65384        * bindings/scripts/test/V8/V8TestNode.cpp:
65385        (WebCore::V8TestNode::wrapSlow):
65386        * svg/SVGElementInstance.h: Must extend EventTarget first so that
65387        static_cast<EventTarget*>(elementInstance) is the same pointer as
65388        elementInstance, similar to how static_cast<Node*>(element) is the
65389        same pointer as element.
65390        * svg/SVGElementInstance.idl: Extend EventTarget; no longer need
65391        to declare add/removeEventListener and dispatchEvent.
65392
653932012-08-09  Vivek Galatage  <vivekgalatage@gmail.com>
65394
65395        Web Inspector: Remove unused method InspectorResourceAgent::clearCache from Resource Agent.
65396        https://bugs.webkit.org/show_bug.cgi?id=93675
65397
65398        Reviewed by Pavel Feldman.
65399
65400        Removing unused method declaration for clearCache in InspectorResourceAgent. It's marked as FIXME.
65401        Hence cleaning up.
65402
65403        No new tests as cleanup.
65404
65405        * inspector/InspectorResourceAgent.h:
65406        (InspectorResourceAgent):
65407
654082012-08-09  Peter Rybin  <peter.rybin@gmail.com>
65409
65410        Web Inspector: CodeGeneratorInspector.py: add complete support for TypeBuilder::Array
65411        https://bugs.webkit.org/show_bug.cgi?id=93559
65412
65413        Reviewed by Pavel Feldman.
65414
65415        Missing binding methods are added to templates. Core assert methods are declared in a helper class now.
65416
65417        * inspector/CodeGeneratorInspector.py:
65418        (RawTypes.BaseType.generate_validate_method):
65419        (RawTypes.BaseType.get_raw_validator_call_text):
65420        (RawTypes.generate_validate_methods):
65421        (RawTypes.Int.generate_validate_method):
65422        (RawTypes.Int.get_raw_validator_call_text):
65423        (RawTypes.Number.get_validate_method_params.ValidateMethodParams):
65424        (RawTypes.Any.generate_validate_method):
65425        (RawTypes.Any.get_raw_validator_call_text):
65426        (RawTypes.Array.get_validate_method_params.ValidateMethodParams):
65427        (RawTypes.Array.get_validate_method_params):
65428        (PlainObjectBinding.get_validator_call_text):
65429        (RuntimeCastHelper):
65430        (Generator):
65431        (Generator.go):
65432
654332012-08-09  Sukolsak Sakshuwong  <sukolsak@google.com>
65434
65435        Mouse-select then Cut, results in preceding character being lost
65436        https://bugs.webkit.org/show_bug.cgi?id=60830
65437
65438        Reviewed by Ryosuke Niwa.
65439
65440        This bug happened only in text fields and text areas, not in other
65441        content-editable elements. That's because when we cut or copied text
65442        in a text control, we called Pasteboard::writePlainText instead of
65443        Pasteboard::writeSelection. writePlainText did not record the smart replace
65444        information. Make writePlainText record the smart replace information.
65445
65446        Test: editing/pasteboard/smart-paste-in-text-control.html
65447
65448        * editing/Editor.cpp:
65449        (WebCore::Editor::cut):
65450        (WebCore::Editor::copy):
65451        * inspector/InjectedScriptHost.cpp:
65452        (WebCore::InjectedScriptHost::copyText):
65453        * inspector/InspectorFrontendHost.cpp:
65454        (WebCore::InspectorFrontendHost::copyText):
65455        * platform/Pasteboard.h:
65456        * platform/blackberry/PasteboardBlackBerry.cpp:
65457        (WebCore::Pasteboard::writePlainText):
65458        * platform/chromium/PasteboardChromium.cpp:
65459        (WebCore::Pasteboard::writePlainText):
65460        * platform/efl/PasteboardEfl.cpp:
65461        (WebCore::Pasteboard::writePlainText):
65462        * platform/gtk/PasteboardGtk.cpp:
65463        (WebCore::Pasteboard::writePlainText):
65464        * platform/mac/ClipboardMac.mm:
65465        (WebCore::ClipboardMac::writePlainText):
65466        * platform/mac/PasteboardMac.mm:
65467        (WebCore::Pasteboard::writePlainText):
65468        * platform/qt/PasteboardQt.cpp:
65469        (WebCore::Pasteboard::writePlainText):
65470        * platform/win/PasteboardWin.cpp:
65471        (WebCore::Pasteboard::writePlainText):
65472        * platform/wince/PasteboardWinCE.cpp:
65473        (WebCore::Pasteboard::writePlainText):
65474        * platform/wx/ClipboardWx.cpp:
65475        (WebCore::ClipboardWx::writePlainText):
65476        * platform/wx/PasteboardWx.cpp:
65477        (WebCore::Pasteboard::writePlainText):
65478
654792012-08-09  Kentaro Hara  <haraken@chromium.org>
65480
65481        Unreviewed. Updated run-binding-tests results.
65482
65483        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
65484        (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
65485
654862012-08-09  Luke Macpherson   <macpherson@chromium.org>
65487
65488        Fix null pointer deref in RenderFileUploadControl::computePreferredLogicalWidth().
65489        https://bugs.webkit.org/show_bug.cgi?id=93579
65490
65491        Reviewed by Kent Tamura.
65492
65493        Checks the upload control has a non-null button renderer before dereferencing.
65494
65495        Test: fast/forms/file/file-crash-by-display-none-button.html
65496
65497        * rendering/RenderFileUploadControl.cpp:
65498        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
65499
655002012-08-09  Kentaro Hara  <haraken@chromium.org>
65501
65502        [V8] Rename V8BindingPerContextData to V8PerContextData
65503        https://bugs.webkit.org/show_bug.cgi?id=93595
65504
65505        Reviewed by Adam Barth.
65506
65507        For a better name. See discussion in bug 93333.
65508
65509        No tests. No change in behavior.
65510
65511        * UseV8.cmake: Added V8PerContextData.cpp. The fact that missing V8BindingPerContextData.cpp
65512        has not caused any problem indicates that UseV8.cmake is not used at all?
65513        * WebCore.gypi:
65514        * bindings/v8/V8DOMWindowShell.cpp:
65515        (WebCore::V8DOMWindowShell::initContextIfNeeded):
65516        * bindings/v8/V8DOMWindowShell.h:
65517        (WebCore::V8DOMWindowShell::perContextData):
65518        (V8DOMWindowShell):
65519        * bindings/v8/V8DOMWrapper.cpp:
65520        (WebCore::V8DOMWrapper::constructorForType):
65521        (WebCore::V8DOMWrapper::perContextData):
65522        (WebCore::V8DOMWrapper::instantiateV8Object):
65523        * bindings/v8/V8DOMWrapper.h:
65524        (WebCore):
65525        (V8DOMWrapper):
65526        * bindings/v8/V8IsolatedContext.cpp:
65527        (WebCore::V8IsolatedContext::V8IsolatedContext):
65528        * bindings/v8/V8IsolatedContext.h:
65529        (WebCore):
65530        (WebCore::V8IsolatedContext::perContextData):
65531        (V8IsolatedContext):
65532        * bindings/v8/V8PerContextData.cpp: Renamed from Source/WebCore/bindings/v8/V8BindingPerContextData.cpp.
65533        (WebCore):
65534        (WebCore::V8PerContextData::dispose):
65535        (WebCore::V8PerContextData::init):
65536        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
65537        (WebCore::V8PerContextData::constructorForTypeSlowCase):
65538        * bindings/v8/V8PerContextData.h: Renamed from Source/WebCore/bindings/v8/V8BindingPerContextData.h.
65539        (WebCore):
65540        (V8PerContextData):
65541        (WebCore::V8PerContextData::create):
65542        (WebCore::V8PerContextData::~V8PerContextData):
65543        (WebCore::V8PerContextData::createWrapperFromCache):
65544        (WebCore::V8PerContextData::constructorForType):
65545        (WebCore::V8PerContextData::V8PerContextData):
65546        * bindings/v8/V8Proxy.cpp:
65547        (WebCore::V8Proxy::retrievePerContextData):
65548        * bindings/v8/V8Proxy.h:
65549        (WebCore):
65550        (V8Proxy):
65551        * bindings/v8/WorkerContextExecutionProxy.cpp:
65552        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
65553        * bindings/v8/WorkerContextExecutionProxy.h:
65554        (WebCore):
65555        (WebCore::WorkerContextExecutionProxy::perContextData):
65556        (WorkerContextExecutionProxy):
65557
655582012-08-09  Erik Arvidsson  <arv@chromium.org>
65559
65560        HTMLElement.classList cannot remove classnames with uppercase characters
65561        https://bugs.webkit.org/show_bug.cgi?id=93628
65562
65563        Reviewed by Alexey Proskuryakov.
65564
65565        Before this patch we were trying to be smart and determine whether we needed the update m_classNamesForQuirksMode
65566        based on whether m_classNamesForQuirksMode.isNull(), however, m_classNamesForQuirksMode.isNull() is true when the
65567        class name is the empty string.
65568
65569        We also did not update m_classNamesForQuirksMode when the class attribute was cleared.
65570
65571        Updated tests.
65572
65573        * dom/StyledElement.cpp:
65574        (WebCore::StyledElement::classAttributeChanged):
65575        * html/ClassList.cpp:
65576        (WebCore::ClassList::reset):
65577        (WebCore::ClassList::classNames):
65578
655792012-08-09  Yuta Kitamura  <yutak@chromium.org>
65580
65581        Unreviewed, Chromium-mac (clang) build fix for r125230.
65582
65583        * platform/graphics/chromium/TiledLayerChromium.cpp:
65584        (WebCore):
65585
655862012-08-09  MORITA Hajime  <morrita@google.com>
65587
65588        https://bugs.webkit.org/show_bug.cgi?id=93587
65589        Node::replaceChild() can create bad DOM topology with MutationEvent, Part 2
65590
65591        Reviewed by Kent Tamura.
65592
65593        This is a followup of r124156. replaceChild() has yet another hidden
65594        MutationEvent trigger. This change added a guard for it.
65595
65596        Test: fast/events/mutation-during-replace-child-2.html
65597
65598        * dom/ContainerNode.cpp:
65599        (WebCore::ContainerNode::replaceChild):
65600
656012012-08-09  Kentaro Hara  <haraken@chromium.org>
65602
65603        [V8] V8Utilities::throwTypeMismatchException() should use setDOMException()
65604        https://bugs.webkit.org/show_bug.cgi?id=93610
65605
65606        Reviewed by Adam Barth.
65607
65608        Given that V8Utilities::throwTypeMismatchException() throws a DOM exception,
65609        we should use setDOMException() instead of throwError().
65610
65611        This patch also renames throwTypeMismatchException() to setTypeMismatchException().
65612
65613        No tests. I couldn't figure out how to trigger the call path.
65614        Either way this is just a minor change of error message.
65615
65616        * bindings/v8/V8Utilities.cpp:
65617        (WebCore::setTypeMismatchException):
65618        * bindings/v8/V8Utilities.h:
65619        (WebCore::createFunctionOnlyCallback):
65620
656212012-08-09  Julien Chaffraix  <jchaffraix@webkit.org>
65622
65623        Crash in WebCore::RenderTable::cellBefore
65624        https://bugs.webkit.org/show_bug.cgi?id=91160
65625
65626        Reviewed by Abhishek Arya.
65627
65628        The issue was that we wouldn't properly set the row index on row in a newly split table. When inserting
65629        the cell into the new row, we would try to repaint the cell which would access the row index and crash.
65630        This came from splitAnonymousBoxesAroundChild calling RenderObjectChildList::insertChildNode directly
65631        which doesn't invoke the row setting logic (RenderTableSection::addChild for example but we cannot call
65632        addChild due to concern over splitting flows in the general case).
65633
65634        Test: fast/table/split-anonymous-boxes-around-table-repaint-crash.html
65635
65636        * rendering/RenderBox.cpp:
65637        (WebCore::RenderBox::splitAnonymousBoxesAroundChild):
65638        Dirty our parent box, which forces a cell recomputation which will set the row index. This needs to
65639        be done *before* we insert the child to avoid crashing when repainting the new child.
65640
656412012-08-09  Erik Arvidsson  <arv@chromium.org>
65642
65643        [V8] Fix issues with [DoNotCheckSecurity] which depended on non ES5 compliant behavior
65644        https://bugs.webkit.org/show_bug.cgi?id=93555
65645
65646        Reviewed by Kentaro Hara.
65647
65648        Before this change we were relying on a V8 bug where instance properties could be shadow
65649        read only properties on the prototype. With this change we no longer depend on this incorrect
65650        V8 behavior and instead use a hidden v8 property that is only returned if the code can access
65651        the frame.
65652
65653        No new tests. No change in behavior.
65654
65655        * bindings/scripts/CodeGeneratorV8.pm:
65656        (GenerateDomainSafeFunctionGetter):
65657        (GenerateDomainSafeFunctionSetter):
65658        (GenerateNonStandardFunction):
65659        (GenerateImplementation):
65660        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
65661        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
65662        (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
65663        (TestActiveDOMObjectV8Internal):
65664        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
65665
656662012-08-09  David Grogan  <dgrogan@chromium.org>
65667
65668        IndexedDB: intversion-long-queue.html fails an assert
65669        https://bugs.webkit.org/show_bug.cgi?id=92783
65670
65671        Reviewed by Tony Chang.
65672
65673        onBlocked needs the same shouldEnqueueEvent check that the other
65674        event generators have.
65675
65676        Tests: intversion-long-queue is no longer skipped.
65677
65678        * Modules/indexeddb/IDBRequest.h:
65679        (IDBRequest):
65680        * Modules/indexeddb/IDBVersionChangeRequest.cpp:
65681        (WebCore::IDBVersionChangeRequest::onBlocked):
65682
656832012-08-09  Eric Penner  <epenner@google.com>
65684
65685        [chromium] Paint animated layers immediately to avoid animation hiccups.
65686        https://bugs.webkit.org/show_bug.cgi?id=93028
65687
65688        Reviewed by Adrienne Walker.
65689
65690        This is a technique used on Android, which is very prone
65691        to hiccups in animations. Paint the entire layer if it is
65692        of reasonable size such that there is no hiccups when the
65693        animation reaches unpainted content. The reasonable size
65694        is choosen for page-transitions specifically, as this was
65695        the problem case (animations would just jump to the end).
65696
65697        Since we already have a special case this just modifies it
65698        and replaces the unit test with a new one. This can be
65699        improved/simplified further when distances/directions are
65700        available for the animated layers.
65701
65702        Replaced one test.
65703
65704        * platform/graphics/chromium/TiledLayerChromium.cpp:
65705        (UpdatableTile):
65706        (WebCore::UpdatableTile::resetUpdateState):
65707        (WebCore::UpdatableTile::markForUpdate):
65708        (WebCore::UpdatableTile::UpdatableTile):
65709        (WebCore::TiledLayerChromium::TiledLayerChromium):
65710        (WebCore::TiledLayerChromium::pushPropertiesTo):
65711        (WebCore):
65712        (WebCore::TiledLayerChromium::updateTiles):
65713        (WebCore::TiledLayerChromium::markOcclusionsAndRequestTextures):
65714        (WebCore::TiledLayerChromium::haveTexturesForTiles):
65715        (WebCore::TiledLayerChromium::markTilesForUpdate):
65716        (WebCore::TiledLayerChromium::updateTileTextures):
65717        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
65718        (WebCore::TiledLayerChromium::resetUpdateState):
65719        (WebCore::TiledLayerChromium::updateContentRect):
65720        (WebCore::TiledLayerChromium::needsIdlePaint):
65721        (WebCore::TiledLayerChromium::idlePaintRect):
65722        * platform/graphics/chromium/TiledLayerChromium.h:
65723        (TiledLayerChromium):
65724        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
65725        (WebCore::CCLayerTilingData::contentRectToTileIndices):
65726        * platform/graphics/chromium/cc/CCPriorityCalculator.h:
65727        (WebCore::CCPriorityCalculator::maxPriority):
65728
657292012-08-09  Julien Chaffraix  <jchaffraix@webkit.org>
65730
65731        REGRESSION(r117339): cell in block-level table in inline-block are aligned with their last line box
65732        https://bugs.webkit.org/show_bug.cgi?id=91137
65733
65734        Reviewed by Tony Chang.
65735
65736        Fixed the code to properly ignore any inline-table's baseline for the purpose of 'inline-block' baseline computation.
65737        See http://lists.w3.org/Archives/Public/www-style/2012Jul/0721.html about the discussion.
65738
65739        While touching the code, properly fixed the table baseline logic that was wrong because it wrongly piggy-backed
65740        on the inline-block baseline logic.
65741
65742        Tests: fast/table/anonymous-table-no-baseline-align.html
65743               fast/table/inline-table-in-inline-block-last-baseline-align.html
65744
65745        * rendering/RenderTable.cpp:
65746        (WebCore::RenderTable::baselinePosition):
65747        Overrode this function: this is needed as RenderBlock assumes that isReplaced() == true
65748        means it is handling an inline-block, not a table.
65749
65750        (WebCore::RenderTable::lastLineBoxBaseline):
65751        Table are ignored for the purpose of inline-block baseline determination.
65752
65753        (WebCore::RenderTable::firstLineBoxBaseline):
65754        Inlined the code from getLineBoxBaseline. Added some comments to explain
65755        why this code works as expected in the 'table' case.
65756
65757        * rendering/RenderTable.h:
65758        Added baselinePosition.
65759
657602012-08-09  Adam Barth  <abarth@webkit.org>
65761
65762        Sandboxing view source documents is ineffective
65763        https://bugs.webkit.org/show_bug.cgi?id=93660
65764
65765        Reviewed by Eric Seidel.
65766
65767        Prior to this patch, Document::setIsViewSource changed the
65768        SecurityOrigin object on Document but didn't update the copy on
65769        DOMWindow. As a consequence, the security checks that use the copy on
65770        DOMWindow didn't notice the change and acted as if the document wasn't
65771        sandboxed.
65772
65773        This bug wasn't present for most view source documents because
65774        HTMLViewSourceDocument sets the flag in its constructor. However, for
65775        view source documents created by the XMLTreeViewer, the bit was set at
65776        the end of parsing rather than during construction.
65777
65778        This mechansim is really more of a mitigation than an important
65779        security check, and I was tempted to remove the sandboxing entirely
65780        given that sandboxing a document at the end of parsing isn't overly
65781        effective anyway. However, we can worry about that issue in a future
65782        patch.
65783
65784        For the time being, this patch just synchronizes DOMWindow and
65785        Document's copy of the SecurityOrigin. The long-term solution here, of
65786        course, is to keep working on fixing
65787        https://bugs.webkit.org/show_bug.cgi?id=75793, which this patch gets us
65788        one (small) step closer to fixing.
65789
65790        * dom/Document.cpp:
65791        (WebCore::Document::setIsViewSource):
65792
657932012-08-09  Benjamin Poulain  <bpoulain@apple.com>
65794
65795        Append the unit in place when generating the text value of a CSSPrimitiveValue
65796        https://bugs.webkit.org/show_bug.cgi?id=93572
65797
65798        Reviewed by Andreas Kling.
65799
65800        Previously, the units were added to the formatted number by the operator+. This would create
65801        a new WTF::String for the unit, then use String::append() to add it to the number.
65802
65803        This was ineffective because it required one malloc for the unit, followed by a realloc + copying
65804        the bytes.
65805
65806        This patch adds handling for the unit directly in formatNumber() so that we only do one malloc
65807        and append the units in place.
65808
65809        Avoiding the intermediate string is both more efficient (9% faster as seen from JavaScript)
65810        and generate more compact code (~8kb less code on x86_64).
65811
65812        * css/CSSPrimitiveValue.cpp:
65813        (WebCore::formatNumber):
65814        (WebCore::CSSPrimitiveValue::customCssText):
65815
658162012-08-09  Elliott Sprehn  <esprehn@gmail.com>
65817
65818        Reimplement RenderQuote placement algorithm
65819        https://bugs.webkit.org/show_bug.cgi?id=93056
65820
65821        Reviewed by Eric Seidel.
65822
65823        Greatly simplify the code that maintains the linked list of RenderQuotes. Now RenderQuote
65824        is placed into the linked list in computePreferredLogicalWidths on first access and is
65825        detached when destroyed (or explicitly removed).
65826
65827        The new algorithm doesn't require walking up the tree of renderers when there are no
65828        RenderQuotes in the tree yet, and also removes the need to walk over every subtree
65829        when inserting in rendererSubtreeAttached.
65830
65831        No new tests because this patch doesn't change any behavior.
65832
65833        * rendering/RenderObjectChildList.cpp:
65834        (WebCore::RenderObjectChildList::removeChildNode): Call detachQuote when removing from a child list.
65835        (WebCore::RenderObjectChildList::appendChildNode):
65836        (WebCore::RenderObjectChildList::insertChildNode):
65837        * rendering/RenderQuote.cpp:
65838        (WebCore::RenderQuote::RenderQuote):
65839        (WebCore::RenderQuote::~RenderQuote):
65840        (WebCore::RenderQuote::willBeDestroyed): Call detachQuote to ensure all destroyed quotes are detached.
65841        (WebCore::RenderQuote::originalText):
65842        (WebCore::RenderQuote::computePreferredLogicalWidths): Attach quote before computing the width.
65843        (WebCore):
65844        (WebCore::RenderQuote::attachQuote): Puts the RenderQuote in the linked list of quotes and computes the depth.
65845        (WebCore::RenderQuote::detachQuote): Removes the quote from the linked list.
65846        (WebCore::RenderQuote::updateDepth):
65847        * rendering/RenderQuote.h:
65848        (RenderQuote):
65849        * rendering/style/RenderStyle.cpp:
65850        (WebCore::RenderStyle::diff): Return StyleDifferenceLayout if quotes change and remove check in styleDidChange in RenderQuote.
65851        * rendering/RenderView.cpp:
65852        (WebCore::RenderView::RenderView):
65853        * rendering/RenderView.h:
65854        (WebCore):
65855        (WebCore::RenderView::setRenderQuoteHead):
65856        (WebCore::RenderView::renderQuoteHead): Stores the first quote in the document.
65857        (RenderView):
65858
658592012-08-06  Nat Duca  <nduca@chromium.org>
65860
65861        [chromium] Expose CCGraphicsContext as WebCompositorOutputSurface
65862        https://bugs.webkit.org/show_bug.cgi?id=92890
65863
65864        Reviewed by James Robinson.
65865
65866        * platform/graphics/chromium/cc/CCGraphicsContext.h:
65867        (WebCore):
65868        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
65869        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
65870        (WebCore::CCLayerTreeHost::recreateContext):
65871        (WebCore::CCLayerTreeHost::createContext):
65872        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
65873        (WebCore):
65874        (CCLayerTreeHostClient):
65875        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
65876        (CCLayerTreeSettings):
65877        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
65878        (WebCore::CCLayerTreeHostImpl::onVSyncParametersChanged):
65879        (WebCore):
65880        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
65881        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
65882        (CCLayerTreeHostImplClient):
65883        * platform/graphics/chromium/cc/CCProxy.h:
65884        (WebKit):
65885        (WebCore):
65886        * platform/graphics/chromium/cc/CCRenderer.h:
65887        (CCRendererClient):
65888        (WebCore::CCRendererClient::~CCRendererClient):
65889        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
65890        * platform/graphics/chromium/cc/CCResourceProvider.h:
65891        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
65892        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
65893        (WebCore::CCThreadProxy::recreateContext):
65894        (WebCore::CCThreadProxy::onVSyncParametersChanged):
65895        (WebCore):
65896        (WebCore::CCThreadProxy::beginFrame):
65897        * platform/graphics/chromium/cc/CCThreadProxy.h:
65898
658992012-08-09  Nat Duca  <nduca@chromium.org>
65900
65901        Unreviewed, rolling out r125212.
65902        http://trac.webkit.org/changeset/125212
65903        https://bugs.webkit.org/show_bug.cgi?id=92890
65904
65905        Compile failure on mac dbg builder
65906
65907        * platform/graphics/chromium/cc/CCGraphicsContext.h:
65908        (WebCore):
65909        (CCGraphicsContext):
65910        (WebCore::CCGraphicsContext::create2D):
65911        (WebCore::CCGraphicsContext::create3D):
65912        (WebCore::CCGraphicsContext::context3D):
65913        (WebCore::CCGraphicsContext::CCGraphicsContext):
65914        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
65915        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
65916        (WebCore::CCLayerTreeHost::recreateContext):
65917        (WebCore::CCLayerTreeHost::createContext):
65918        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
65919        (WebCore):
65920        (CCLayerTreeHostClient):
65921        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
65922        (CCLayerTreeSettings):
65923        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
65924        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
65925        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
65926        (CCLayerTreeHostImplClient):
65927        * platform/graphics/chromium/cc/CCProxy.h:
65928        (WebCore):
65929        * platform/graphics/chromium/cc/CCRenderer.h:
65930        (CCRendererClient):
65931        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
65932        * platform/graphics/chromium/cc/CCResourceProvider.h:
65933        (WebCore):
65934        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
65935        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
65936        (WebCore::CCThreadProxy::recreateContext):
65937        (WebCore::CCThreadProxy::beginFrame):
65938        * platform/graphics/chromium/cc/CCThreadProxy.h:
65939
659402012-08-09  Kentaro Hara  <haraken@chromium.org>
65941
65942        [V8] Remove V8Proxy::throwError(ExceptionCode&)
65943        https://bugs.webkit.org/show_bug.cgi?id=93605
65944
65945        Reviewed by Adam Barth.
65946
65947        (1) Pass Isolate around to V8Utilities::extractTransferables().
65948        (2) Replace throwError(ExceptionCode&) in V8Utilities::extractTransferables()
65949        with setDOMException(ExceptionCode&, Isolate*), which completely removes
65950        V8Proxy::throwError(ExceptionCode&) from the code base.
65951        (3) Remove V8Proxy::throwError(ExceptionCode&).
65952
65953        No tests. No change in behavior.
65954
65955        * bindings/scripts/CodeGeneratorV8.pm:
65956        (GenerateParametersCheck):
65957        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
65958        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
65959        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
65960        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
65961        * bindings/v8/Dictionary.cpp:
65962        (WebCore::Dictionary::get):
65963        * bindings/v8/V8Proxy.h:
65964        (WebCore):
65965        * bindings/v8/V8Utilities.cpp:
65966        (WebCore::extractTransferables):
65967        (WebCore::getMessagePortArray):
65968        * bindings/v8/V8Utilities.h:
65969        (WebCore):
65970        * bindings/v8/custom/V8DOMWindowCustom.cpp:
65971        (WebCore::handlePostMessageCallback):
65972        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
65973        (WebCore::handlePostMessageCallback):
65974        * bindings/v8/custom/V8IntentConstructor.cpp:
65975        (WebCore::V8Intent::constructorCallback):
65976        * bindings/v8/custom/V8MessageEventCustom.cpp:
65977        (WebCore::V8MessageEvent::initMessageEventCallback):
65978        * bindings/v8/custom/V8MessagePortCustom.cpp:
65979        (WebCore::handlePostMessageCallback):
65980        * bindings/v8/custom/V8WorkerCustom.cpp:
65981        (WebCore::handlePostMessageCallback):
65982
659832012-08-09  Kentaro Hara  <haraken@chromium.org>
65984
65985        [V8] Rename V8BindingPerIsolateData to V8PerIsolateData
65986        https://bugs.webkit.org/show_bug.cgi?id=93592
65987
65988        Reviewed by Adam Barth.
65989
65990        For a better name. See discussion in bug 93333.
65991
65992        No tests. No change in behavior.
65993
65994        * UseV8.cmake:
65995        * WebCore.gypi:
65996        * bindings/scripts/CodeGeneratorV8.pm:
65997        (GenerateImplementation):
65998        * bindings/scripts/test/V8/V8Float64Array.cpp:
65999        (WebCore::V8Float64Array::GetRawTemplate):
66000        (WebCore::V8Float64Array::GetTemplate):
66001        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
66002        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
66003        (WebCore::V8TestActiveDOMObject::GetTemplate):
66004        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
66005        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
66006        (WebCore::V8TestCustomNamedGetter::GetTemplate):
66007        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
66008        (WebCore::V8TestEventConstructor::GetRawTemplate):
66009        (WebCore::V8TestEventConstructor::GetTemplate):
66010        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
66011        (WebCore::V8TestEventTarget::GetRawTemplate):
66012        (WebCore::V8TestEventTarget::GetTemplate):
66013        * bindings/scripts/test/V8/V8TestException.cpp:
66014        (WebCore::V8TestException::GetRawTemplate):
66015        (WebCore::V8TestException::GetTemplate):
66016        * bindings/scripts/test/V8/V8TestInterface.cpp:
66017        (WebCore::V8TestInterface::GetRawTemplate):
66018        (WebCore::V8TestInterface::GetTemplate):
66019        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
66020        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
66021        (WebCore::V8TestMediaQueryListListener::GetTemplate):
66022        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
66023        (WebCore::V8TestNamedConstructor::GetRawTemplate):
66024        (WebCore::V8TestNamedConstructor::GetTemplate):
66025        * bindings/scripts/test/V8/V8TestNode.cpp:
66026        (WebCore::V8TestNode::GetRawTemplate):
66027        (WebCore::V8TestNode::GetTemplate):
66028        * bindings/scripts/test/V8/V8TestObj.cpp:
66029        (WebCore::V8TestObj::GetRawTemplate):
66030        (WebCore::V8TestObj::GetTemplate):
66031        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
66032        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
66033        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
66034        * bindings/v8/DOMData.cpp:
66035        (WebCore::DOMData::getCurrentStore):
66036        * bindings/v8/DOMDataStore.cpp:
66037        (WebCore::DOMDataStore::allStores):
66038        * bindings/v8/ScriptGCEvent.cpp:
66039        (WebCore::isolateGCEventData):
66040        * bindings/v8/ScriptProfiler.cpp:
66041        (WebCore::ScriptProfiler::visitExternalStrings):
66042        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
66043        * bindings/v8/StaticDOMDataStore.cpp:
66044        (WebCore::StaticDOMDataStore::StaticDOMDataStore):
66045        (WebCore::StaticDOMDataStore::~StaticDOMDataStore):
66046        * bindings/v8/V8Binding.cpp:
66047        (WebCore::V8PerIsolateData::visitExternalStrings):
66048        (WebCore::getToStringName):
66049        (WebCore::getToStringTemplate):
66050        * bindings/v8/V8Binding.h:
66051        (WebCore::ConstructorMode::ConstructorMode):
66052        (WebCore::ConstructorMode::~ConstructorMode):
66053        (WebCore::ConstructorMode::current):
66054        (WebCore::v8ExternalString):
66055        (WebCore::v8Integer):
66056        (WebCore::v8UnsignedInteger):
66057        * bindings/v8/V8DOMMap.cpp:
66058        (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
66059        (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
66060        * bindings/v8/V8DOMWindowShell.cpp:
66061        (WebCore::V8DOMWindowShell::initContextIfNeeded):
66062        * bindings/v8/V8GCController.cpp:
66063        (WebCore::currentGlobalHandleMap):
66064        (WebCore::V8GCController::gcPrologue):
66065        * bindings/v8/V8HiddenPropertyName.cpp:
66066        (WebCore):
66067        * bindings/v8/V8LazyEventListener.cpp:
66068        (WebCore::V8LazyEventListener::prepareListenerObject):
66069        * bindings/v8/V8PerIsolateData.cpp: Renamed from Source/WebCore/bindings/v8/V8BindingPerIsolateData.cpp.
66070        (WebCore):
66071        (WebCore::V8PerIsolateData::V8PerIsolateData):
66072        (WebCore::V8PerIsolateData::~V8PerIsolateData):
66073        (WebCore::V8PerIsolateData::create):
66074        (WebCore::V8PerIsolateData::ensureInitialized):
66075        (WebCore::V8PerIsolateData::dispose):
66076        (WebCore::V8PerIsolateData::reportMemoryUsage):
66077        * bindings/v8/V8PerIsolateData.h: Renamed from Source/WebCore/bindings/v8/V8BindingPerIsolateData.h.
66078        (WebCore):
66079        (V8PerIsolateData):
66080        (WebCore::V8PerIsolateData::current):
66081        (WebCore::V8PerIsolateData::rawTemplateMap):
66082        (WebCore::V8PerIsolateData::templateMap):
66083        (WebCore::V8PerIsolateData::toStringName):
66084        (WebCore::V8PerIsolateData::toStringTemplate):
66085        (WebCore::V8PerIsolateData::lazyEventListenerToStringTemplate):
66086        (WebCore::V8PerIsolateData::stringCache):
66087        (WebCore::V8PerIsolateData::integerCache):
66088        (WebCore::V8PerIsolateData::allStores):
66089        (WebCore::V8PerIsolateData::hiddenPropertyName):
66090        (WebCore::V8PerIsolateData::auxiliaryContext):
66091        (WebCore::V8PerIsolateData::registerDOMDataStore):
66092        (WebCore::V8PerIsolateData::unregisterDOMDataStore):
66093        (WebCore::V8PerIsolateData::domDataStore):
66094        (WebCore::V8PerIsolateData::setDOMDataStore):
66095        (WebCore::V8PerIsolateData::recursionLevel):
66096        (WebCore::V8PerIsolateData::incrementRecursionLevel):
66097        (WebCore::V8PerIsolateData::decrementRecursionLevel):
66098        (WebCore::V8PerIsolateData::globalHandleMap):
66099        (WebCore::V8PerIsolateData::internalScriptRecursionLevel):
66100        (WebCore::V8PerIsolateData::incrementInternalScriptRecursionLevel):
66101        (WebCore::V8PerIsolateData::decrementInternalScriptRecursionLevel):
66102        (WebCore::V8PerIsolateData::gcEventData):
66103        (WebCore::V8PerIsolateData::setShouldCollectGarbageSoon):
66104        (WebCore::V8PerIsolateData::clearShouldCollectGarbageSoon):
66105        (WebCore::V8PerIsolateData::shouldCollectGarbageSoon):
66106        * bindings/v8/V8Proxy.cpp:
66107        (WebCore::V8Proxy::hintForGCIfNecessary):
66108        * bindings/v8/V8RecursionScope.h:
66109        (WebCore::V8RecursionScope::V8RecursionScope):
66110        (WebCore::V8RecursionScope::~V8RecursionScope):
66111        (WebCore::V8RecursionScope::recursionLevel):
66112        (WebCore::V8RecursionScope::properlyUsed):
66113        (WebCore::V8RecursionScope::MicrotaskSuppression::MicrotaskSuppression):
66114        (WebCore::V8RecursionScope::MicrotaskSuppression::~MicrotaskSuppression):
66115        * bindings/v8/V8Utilities.cpp:
66116        (WebCore::V8AuxiliaryContext::auxiliaryContext):
66117        * bindings/v8/V8ValueCache.cpp:
66118        (WebCore::cachedStringCallback):
66119        * bindings/v8/WorkerContextExecutionProxy.cpp:
66120        (WebCore::WorkerContextExecutionProxy::initIsolate):
66121        * bindings/v8/WorkerScriptController.cpp:
66122        (WebCore::WorkerScriptController::WorkerScriptController):
66123        (WebCore::WorkerScriptController::~WorkerScriptController):
66124        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
66125        (WebCore::V8HTMLCanvasElement::getContextCallback):
66126
661272012-08-09  Mike West  <mkwst@chromium.org>
66128
66129        Invalid Content Security Policy sources should generate console warnings.
66130        https://bugs.webkit.org/show_bug.cgi?id=93599
66131
66132        Reviewed by Adam Barth.
66133
66134        Given a Content Security Policy directive, we're currently correctly
66135        ignoring sources that we can't parse: "'slef'", "http:///", etc. have
66136        no effect on the protected resource's active policy. We're not, however
66137        telling the developer what we're doing, which can lead to confusion.
66138        This patch adds a console warning whenever an invalid source expression
66139        is encountered while parsing a directive in order to make WebKit's
66140        behavior more transparent to the developer.
66141
66142        There should be no functional change as a result of this patch: the
66143        policy should be parsed exactly as before, it should simply be more
66144        verbose.
66145
66146        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-07.html
66147
66148        * page/ContentSecurityPolicy.cpp:
66149        (WebCore::CSPSourceList::parse):
66150            Two changes: First, if 'parseSource' returns false, then log a
66151            warning to the developer's console. Second, if both the source and
66152            host are empty, but parsing succeeded, then we know we're dealing
66153            with either a wildcard- or keyword-source that was properly handled
66154            inside 'parseSource', so jump to the next source.
66155        (WebCore::CSPSourceList::parseSource):
66156            Wildcard- and keyword-sources now return 'true'. They parsed
66157            correctly, after all.
66158        (WebCore::ContentSecurityPolicy::reportInvalidSourceExpression):
66159            Log a console warning if an invalid source expression is present in
66160            a CSP directive's value.
66161        (WebCore):
66162        * page/ContentSecurityPolicy.h:
66163
661642012-08-06  Nat Duca  <nduca@chromium.org>
66165
66166        [chromium] Expose CCGraphicsContext as WebCompositorOutputSurface
66167        https://bugs.webkit.org/show_bug.cgi?id=92890
66168
66169        Reviewed by James Robinson.
66170
66171        * platform/graphics/chromium/cc/CCGraphicsContext.h:
66172        (WebCore):
66173        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
66174        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
66175        (WebCore::CCLayerTreeHost::recreateContext):
66176        (WebCore::CCLayerTreeHost::createContext):
66177        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
66178        (WebCore):
66179        (CCLayerTreeHostClient):
66180        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
66181        (CCLayerTreeSettings):
66182        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
66183        (WebCore::CCLayerTreeHostImpl::onVSyncParametersChanged):
66184        (WebCore):
66185        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
66186        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
66187        (CCLayerTreeHostImplClient):
66188        * platform/graphics/chromium/cc/CCProxy.h:
66189        (WebKit):
66190        (WebCore):
66191        * platform/graphics/chromium/cc/CCRenderer.h:
66192        (CCRendererClient):
66193        (WebCore::CCRendererClient::~CCRendererClient):
66194        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
66195        * platform/graphics/chromium/cc/CCResourceProvider.h:
66196        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
66197        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
66198        (WebCore::CCThreadProxy::recreateContext):
66199        (WebCore::CCThreadProxy::onVSyncParametersChanged):
66200        (WebCore):
66201        (WebCore::CCThreadProxy::beginFrame):
66202        * platform/graphics/chromium/cc/CCThreadProxy.h:
66203
662042012-08-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
66205
66206        [css3-text] Add suport for -webkit-text-decoration-line
66207        https://bugs.webkit.org/show_bug.cgi?id=90959
66208
66209        Reviewed by Kenneth Rohde Christiansen.
66210
66211        This patch implements the "text-decoration-line" property specified in CSS3
66212        working draft, with "-webkit-" prefix. The specification can be found below:
66213        http://dev.w3.org/csswg/css3-text/#text-decoration-line
66214
66215        Additionally, Mozilla implementation details can be found here:
66216        https://developer-dev.allizom.org/en-US/docs/CSS/text-decoration-line
66217
66218        It is important to notice that "-webkit-text-decoration-line" and
66219        "text-decoration" properties shares the same property handlers, however, the
66220        former resets the latter if value from latter doesn't have "important" value
66221        set (same behavior as Firefox). In a rare case where both properties have
66222        "important" value set, the text decoration gets value from the last parsed
66223        property.
66224
66225        Test: fast/css/text-decoration-line.html
66226
66227        * css/CSSComputedStyleDeclaration.cpp:
66228        (WebCore::renderTextDecorationFlagsToCSSValue):
66229        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
66230        * css/CSSParser.cpp:
66231        (WebCore::CSSParser::parseValue):
66232        (WebCore::CSSParser::addTextDecorationProperty):
66233        (WebCore::CSSParser::parseTextDecoration):
66234        * css/CSSParser.h:
66235        * css/CSSProperty.cpp:
66236        (WebCore::CSSProperty::isInheritedProperty):
66237        * css/CSSPropertyNames.in:
66238        * css/StyleBuilder.cpp:
66239        (WebCore::StyleBuilder::StyleBuilder):
66240        * css/StyleResolver.cpp:
66241        (WebCore::StyleResolver::collectMatchingRulesForList):
66242
662432012-08-09  Huang Dongsung  <luxtella@company100.net>
66244
66245        Extract the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
66246        https://bugs.webkit.org/show_bug.cgi?id=93466
66247
66248        Reviewed by Adam Barth.
66249
66250        Image.h includes ImageSource.h in order to know the definition of NativeImagePtr.
66251        But Image does not need to know the definition of ImageSource. So, this patch
66252        extracts the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
66253
66254        This is a preparation for asynchronous image decoding. Async decoding
66255        will need a callback function, which sends a NativeImagePtr to clients, and the
66256        callback must know the definition of NativeImagePtr, not ImageSource.
66257
66258        No new tests, behavior is unchanged.
66259
66260        * GNUmakefile.list.am:
66261        * Target.pri:
66262        * WebCore.gypi:
66263        * WebCore.vcproj/WebCore.vcproj:
66264        * WebCore.xcodeproj/project.pbxproj:
66265        * platform/graphics/BitmapImage.h:
66266        * platform/graphics/Image.h:
66267        * platform/graphics/ImageSource.h:
66268        (WebCore):
66269        * platform/graphics/NativeImagePtr.h: Added.
66270        (WebCore):
66271
662722012-08-09  Robert Hogan  <robert@webkit.org>
66273
66274        CSS 2.1 failure: 'Text-indent' only affects a line if it is the first formatted line of an element
66275        https://bugs.webkit.org/show_bug.cgi?id=63185
66276
66277        Reviewed by Eric Seidel.
66278
66279        Per CSS 2.1 (http://www.w3.org/TR/CSS21/text.html) : "'Text-indent' only affects a line if it is the 
66280        first formatted line of an element. For example, the first line of an anonymous block box is only 
66281        affected if it is the first child of its parent element."
66282
66283        Tests: fast/css/text-indent-first-line-001.html
66284               fast/css/text-indent-first-line-002.html
66285               fast/css/text-indent-first-line-003.html
66286               fast/css/text-indent-first-line-004.html
66287               fast/css/text-indent-first-line-005.html
66288               fast/css/text-indent-first-line-006.html
66289
66290        * rendering/RenderBlockLineLayout.cpp:
66291        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): As well as being the first line under a parent block,
66292          check that this is also the first *formatted* line of an element by ensuring that we are at the start of a 
66293          formatting context and not just a continuation of a previous anonymous block in an existing formatting context.
66294
662952012-08-09  Jan Keromnes  <janx@linux.com>
66296
66297        Web Inspector: replace the Web Inspector editor with CodeMirror
66298        https://bugs.webkit.org/show_bug.cgi?id=92769
66299
66300        Reviewed by Pavel Feldman.
66301
66302        Integrating CodeMirror as a devtools experiment. Currently supporting
66303        basic editing, search/replacing, and saving. Missing proper breakpoints
66304        wiring, debugging, message bubbles, popovers and context menus. WIP.
66305
66306        * WebCore.gypi:
66307        * WebCore.vcproj/WebCore.vcproj:
66308        * inspector/compile-front-end.py:
66309        * inspector/front-end/CodeMirrorTextEditor.js: Added.
66310        (WebInspector.CodeMirrorTextEditor.this._codeMirror.CodeMirror):
66311        (WebInspector.CodeMirrorTextEditor):
66312        (WebInspector.CodeMirrorTextEditor.prototype.set mimeType):
66313        (WebInspector.CodeMirrorTextEditor.prototype.setReadOnly):
66314        (WebInspector.CodeMirrorTextEditor.prototype.readOnly):
66315        (WebInspector.CodeMirrorTextEditor.prototype.defaultFocusedElement):
66316        (WebInspector.CodeMirrorTextEditor.prototype.focus):
66317        (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
66318        (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
66319        (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
66320        (WebInspector.CodeMirrorTextEditor.prototype.markAndRevealRange):
66321        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
66322        (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
66323        (WebInspector.CodeMirrorTextEditor.prototype.freeCachedElements):
66324        (WebInspector.CodeMirrorTextEditor.prototype.elementsToRestoreScrollPositionsFor):
66325        (WebInspector.CodeMirrorTextEditor.prototype.inheritScrollPositions):
66326        (WebInspector.CodeMirrorTextEditor.prototype.beginUpdates):
66327        (WebInspector.CodeMirrorTextEditor.prototype.endUpdates):
66328        (WebInspector.CodeMirrorTextEditor.prototype.onResize):
66329        (WebInspector.CodeMirrorTextEditor.prototype.editRange):
66330        (WebInspector.CodeMirrorTextEditor.prototype._onChange):
66331        (WebInspector.CodeMirrorTextEditor.prototype._commitEditing):
66332        (WebInspector.CodeMirrorTextEditor.prototype.scrollToLine):
66333        (WebInspector.CodeMirrorTextEditor.prototype.selection):
66334        (WebInspector.CodeMirrorTextEditor.prototype.lastSelection):
66335        (WebInspector.CodeMirrorTextEditor.prototype.setSelection):
66336        (WebInspector.CodeMirrorTextEditor.prototype.setText):
66337        (WebInspector.CodeMirrorTextEditor.prototype.text):
66338        (WebInspector.CodeMirrorTextEditor.prototype.range):
66339        (WebInspector.CodeMirrorTextEditor.prototype.line):
66340        (WebInspector.CodeMirrorTextEditor.prototype.get linesCount):
66341        (WebInspector.CodeMirrorTextEditor.prototype.setAttribute):
66342        (WebInspector.CodeMirrorTextEditor.prototype.getAttribute):
66343        (WebInspector.CodeMirrorTextEditor.prototype.removeAttribute):
66344        (WebInspector.CodeMirrorTextEditor.prototype.wasShown):
66345        (WebInspector.CodeMirrorTextEditor.prototype.willHide):
66346        (WebInspector.CodeMirrorTextEditor.prototype._textChanged):
66347        (WebInspector.CodeMirrorTextEditor.prototype._toPos):
66348        (WebInspector.CodeMirrorTextEditor.prototype._toRange):
66349        * inspector/front-end/Settings.js:
66350        (WebInspector.ExperimentsSettings):
66351        * inspector/front-end/SourceFrame.js:
66352        (WebInspector.SourceFrame):
66353        * inspector/front-end/WebKit.qrc:
66354        * inspector/front-end/cmdevtools.css: Added.
66355        * inspector/front-end/inspector.html:
66356
663572012-08-09  Dana Jansens  <danakj@chromium.org>
66358
66359        [chromium] Do partial-swap scissoring on quads during draw instead of on layers
66360        https://bugs.webkit.org/show_bug.cgi?id=91800
66361
66362        Reviewed by Adrienne Walker.
66363
66364        Computing the scissor rect for each render pass is now done in
66365        LayerRendererChromium::drawRenderPass() instead of being done for each
66366        layer and then copied into the quads. This allows us to always push a
66367        full frame of quads (and include damage rects) from a child compositor,
66368        and do partial-swap scissoring in the host compositor.
66369
66370        This also make partial-swap functionality completely contained within
66371        LayerRendererChromium!
66372
66373        The scissorRect is removed from all layers, and the concept of
66374        scissorRect is now misplaced in CCOcclusionTracker, so the variables
66375        and methods in the tracker should be renamed to more appropriate
66376        things.
66377
66378        Covered by existing tests, as well as: CCLayerTreeHostImplTest.textureCachingWithScissor
66379
66380        * platform/graphics/chromium/LayerChromium.h:
66381        (LayerChromium):
66382        * platform/graphics/chromium/LayerRendererChromium.cpp:
66383        (WebCore::LayerRendererChromium::clearFramebuffer):
66384        (WebCore::LayerRendererChromium::renderPassTextureSize):
66385        (WebCore::LayerRendererChromium::drawFrame):
66386        (WebCore::LayerRendererChromium::drawRenderPass):
66387        (WebCore::LayerRendererChromium::drawQuad):
66388        (WebCore::LayerRendererChromium::drawDebugBorderQuad):
66389        (WebCore::LayerRendererChromium::drawBackgroundFilters):
66390        (WebCore::LayerRendererChromium::drawTileQuad):
66391        (WebCore::LayerRendererChromium::swapBuffers):
66392        (WebCore::LayerRendererChromium::useRenderPass):
66393        (WebCore::LayerRendererChromium::setScissorToRect):
66394        * platform/graphics/chromium/LayerRendererChromium.h:
66395        (LayerRendererChromium):
66396        (DrawingFrame):
66397        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
66398        * platform/graphics/chromium/RenderSurfaceChromium.h:
66399        (RenderSurfaceChromium):
66400        * platform/graphics/chromium/cc/CCDrawQuad.h:
66401        (WebCore::CCDrawQuad::clippedRectInTarget):
66402        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
66403        (WebCore::CCLayerImpl::createSharedQuadState):
66404        * platform/graphics/chromium/cc/CCLayerImpl.h:
66405        (CCLayerImpl):
66406        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
66407        (WebCore::CCLayerTreeHost::updateLayers):
66408        (WebCore::CCLayerTreeHost::paintLayerContents):
66409        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
66410        (WebCore::calculateVisibleRectsInternal):
66411        (WebCore::CCLayerTreeHostCommon::calculateVisibleRects):
66412        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
66413        (CCLayerTreeHostCommon):
66414        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
66415        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
66416        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
66417        (WebCore::CCLayerTreeHostImpl::drawLayers):
66418        (WebCore::CCLayerTreeHostImpl::swapBuffers):
66419        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
66420        (CCLayerTreeHostImpl):
66421        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
66422        (WebCore::::layerScissorRectInTargetSurface):
66423        * platform/graphics/chromium/cc/CCRenderPass.cpp:
66424        (WebCore::CCRenderPass::CCRenderPass):
66425        (WebCore::CCRenderPass::appendQuadsToFillScreen):
66426        * platform/graphics/chromium/cc/CCRenderPass.h:
66427        (CCRenderPass):
66428        (WebCore::CCRenderPass::transformToRootTarget):
66429        (WebCore::CCRenderPass::outputRect):
66430        (WebCore::CCRenderPass::damageRect):
66431        (WebCore::CCRenderPass::setDamageRect):
66432        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
66433        (WebCore::computeClippedRectInTarget):
66434        (WebCore):
66435        (WebCore::CCRenderSurface::createSharedQuadState):
66436        (WebCore::CCRenderSurface::createReplicaSharedQuadState):
66437        * platform/graphics/chromium/cc/CCRenderSurface.h:
66438        (CCRenderSurface):
66439        * platform/graphics/chromium/cc/CCRenderer.h:
66440        (CCRenderer):
66441        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
66442        (WebCore::CCSharedQuadState::create):
66443        (WebCore::CCSharedQuadState::CCSharedQuadState):
66444        * platform/graphics/chromium/cc/CCSharedQuadState.h:
66445        (CCSharedQuadState):
66446        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
66447        (WebCore::CCTiledLayerImpl::appendQuads):
66448
664492012-08-09  Mike West  <mkwst@chromium.org>
66450
66451        Content Security Policy directives that begin with an invalid character should log a console warning.
66452        https://bugs.webkit.org/show_bug.cgi?id=93622
66453
66454        Reviewed by Adam Barth.
66455
66456        CSP directives containing unrecognized characters somewhere in the
66457        middle were caught and logged by the current algorithm. We additionally
66458        caught the case in which the directive begins with an invalid character,
66459        but we silently ignored it. Now we're slightly more vocal.
66460
66461        This change also exits 'parseDirective' early in the case where the
66462        directive text is empty, or filled only with whitespace. There doesn't
66463        seem to be any value in flagging that case, as it has no impact on the
66464        way the policy would have been interpreted (that is, 'img-src *;;...'
66465        doesn't change in meaning by ignoring the empty directive between the
66466        semicolons).
66467
66468        Test: http/tests/security/contentSecurityPolicy/directive-parsing-05.html
66469
66470        * page/ContentSecurityPolicy.cpp:
66471        (WebCore::CSPDirectiveList::parseDirective):
66472            Two changes: first, we now exit early if the entire directive text
66473            is empty (e.g. ';;;' or ';      ;'); second, if the directive begins
66474            with a character that doesn't match 'isDirectiveNameCharacter', then
66475            we advance either to the next space, or the end of the value, and
66476            report an unrecognized directive to the policy.
66477
664782012-08-09  Shawn Singh  <shawnsingh@chromium.org>
66479
66480        [chromium] Pass mask scale and offset to shaders for correct masking
66481        https://bugs.webkit.org/show_bug.cgi?id=93558
66482
66483        Reviewed by Adrienne Walker.
66484
66485        In chromium compositor code, the mask was accidentally mapped 1:1
66486        to the layer's renderSurface, rather than the layer itself. This
66487        patch adds a layout test that reproduces the error and fixes the
66488        problem. The solution we opted for in this patch is to pass a
66489        scale and offset to the fragment shader, so that the correct
66490        texture coordinate lookup is computed by the fragment shader.
66491
66492        Test: compositing/masks/mask-of-clipped-layer.html
66493
66494        * platform/graphics/chromium/LayerRendererChromium.cpp:
66495        (WebCore::LayerRendererChromium::drawRenderPassQuad):
66496        * platform/graphics/chromium/ShaderChromium.cpp:
66497        (WebCore::FragmentShaderRGBATexAlphaMask::FragmentShaderRGBATexAlphaMask):
66498        (WebCore::FragmentShaderRGBATexAlphaMask::init):
66499        (WebCore::FragmentShaderRGBATexAlphaMask::getShaderString):
66500        (WebCore::FragmentShaderRGBATexAlphaMaskAA::FragmentShaderRGBATexAlphaMaskAA):
66501        (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
66502        (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
66503        * platform/graphics/chromium/ShaderChromium.h:
66504        (WebCore::FragmentShaderRGBATexAlphaMask::maskTexCoordScaleLocation):
66505        (WebCore::FragmentShaderRGBATexAlphaMask::maskTexCoordOffsetLocation):
66506        (FragmentShaderRGBATexAlphaMask):
66507        (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskTexCoordScaleLocation):
66508        (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskTexCoordOffsetLocation):
66509        (FragmentShaderRGBATexAlphaMaskAA):
66510        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
66511        (WebCore::CCRenderPassDrawQuad::create):
66512        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
66513        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
66514        (CCRenderPassDrawQuad):
66515        (WebCore::CCRenderPassDrawQuad::maskTexCoordScaleX):
66516        (WebCore::CCRenderPassDrawQuad::maskTexCoordScaleY):
66517        (WebCore::CCRenderPassDrawQuad::maskTexCoordOffsetX):
66518        (WebCore::CCRenderPassDrawQuad::maskTexCoordOffsetY):
66519        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
66520        (WebCore::CCRenderSurface::appendQuads):
66521
665222012-08-09  Mihnea Ovidenie  <mihnea@adobe.com>
66523
66524        CSSRegions: Crash when attaching a region to the removed named flow
66525        https://bugs.webkit.org/show_bug.cgi?id=93204
66526
66527        Reviewed by Abhishek Arya.
66528
66529        The crash happens because the flow thread reference is passed to the RenderRegion object
66530        when the RenderRegion object is created. However, it is only in RenderRegion::attachRegion method
66531        when the region is taken into account and stored in flow thread regions list. Under these circumstances,
66532        it is possible that the flow thread passed to the region at the moment of region creation be destroyed
66533        before the region gets the chance to be attached to the flow thread and a crash will occur.
66534
66535        This patch moves the moment when the RenderRegion object stores its 'weak' reference to the flow thread
66536        from RenderRegion constructor to attachRegion method, preventing the situation in which the region is attached
66537        to a wrong flow thread object.
66538
66539        Test: fast/regions/region-attached-wrong-flow-crash.html
66540
66541        * rendering/RenderObject.cpp:
66542        (WebCore::RenderObject::createObject): Pass 0 instead of a reference to the flow thread.
66543        * rendering/RenderRegion.cpp:
66544        (WebCore::RenderRegion::checkRegionStyle): Added this function to check whether the region has region style rules attached.
66545        (WebCore):
66546        (WebCore::RenderRegion::styleDidChange): Use checkRegionStyle.
66547        (WebCore::RenderRegion::attachRegion): Store the reference to the flow thread. If the flow thread does not exist, it will be created.
66548        Also, check whether the region has region style rules attached, since at this moment the region has a flow thread. Checking whether
66549        the region has region style rules is not enough in styleDidChange, because styleDidChange is sometimes triggered before attachRegion.
66550        * rendering/RenderRegion.h:
66551        (RenderRegion):
66552
665532012-08-09  Iain Merrick  <husky@chromium.org>
66554
66555        [chromium] Enable kerning on Android
66556        https://bugs.webkit.org/show_bug.cgi?id=92737
66557
66558        Reviewed by Adam Barth.
66559
66560        This #ifdef was incorrectly copied from our forked WebKit repository
66561        while unforking our Android-specific changes. Kerning works without
66562        any known problems.
66563
66564        Covered by existing tests (layout and instrumentation tests).
66565
66566        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
66567        (WebCore::ComplexTextController::ComplexTextController):
66568
665692012-08-09  'Pavel Feldman'  <pfeldman@chromium.org>
66570
66571        Web Inspector: follow up to r125174 - fix subtype use.
66572
66573        Not reviewed, trivial fix.
66574
66575        * inspector/InjectedScriptSource.js:
66576        (.):
66577
665782012-08-09  Yury Semikhatsky  <yurys@chromium.org>
66579
66580        Web Inspector: DocumentEventQueue memory instrumentation
66581        https://bugs.webkit.org/show_bug.cgi?id=93604
66582
66583        Reviewed by Pavel Feldman.
66584
66585        Provided DocumentEventQueue:: reportMemoryUsage implementation.
66586
66587        * dom/Document.cpp:
66588        (WebCore::Document::reportMemoryUsage):
66589        * dom/DocumentEventQueue.cpp:
66590        (WebCore::DocumentEventQueue::reportMemoryUsage):
66591        (WebCore):
66592        * dom/DocumentEventQueue.h:
66593        (WebCore):
66594        * dom/Event.cpp:
66595        (WebCore::Event::reportMemoryUsage):
66596        (WebCore):
66597        * dom/Event.h:
66598        (WebCore):
66599        (Event):
66600
666012012-08-09  Pavel Feldman  <pfeldman@chromium.org>
66602
66603        Web Inspector: add codemirror library as an experiment
66604        https://bugs.webkit.org/show_bug.cgi?id=93620
66605
66606        Reviewed by Vsevolod Vlasov.
66607
66608        This change adds codemirror, deploys it, but does not include it into the inspector.html. Clients need to fetch it
66609        using XHR and eval into the inspector's context to use as a part of their experiments.
66610
66611        * WebCore.gypi:
66612        * WebCore.vcproj/WebCore.vcproj:
66613        * inspector/front-end/WebKit.qrc:
66614        * inspector/front-end/cm/LICENSE: Added.
66615        * inspector/front-end/cm/codemirror.css: Added.
66616        (.CodeMirror):
66617        * inspector/front-end/cm/xml.js: Added.
66618        (CodeMirror.defineMode.):
66619        (CodeMirror.defineMode):
66620
666212012-08-09  Xan Lopez  <xlopez@igalia.com>
66622
66623        1.9.6 drops symbols, breaking compatibility
66624        https://bugs.webkit.org/show_bug.cgi?id=93477
66625
66626        Reviewed by Carlos Garcia Campos.
66627
66628        Expose documentURI as writable again for the GObject DOM
66629        bindings. DOM4 makes it read-only, but we need to revert to the
66630        old state for compatibility reasons, just like Objective C.
66631
66632        * dom/Document.idl: ditto.
66633
666342012-08-09  Mario Sanchez Prada  <msanchez@igalia.com>
66635
66636        REGRESSION (r124997): Flaky crashes in two tests
66637        https://bugs.webkit.org/show_bug.cgi?id=93501
66638
66639        Reviewed by Martin Robinson.
66640
66641        Add missing null check to make sure we early return if the
66642        accessibility object does not have a valid parent exposed in the
66643        accessibility hierarchy.
66644
66645        * accessibility/gtk/AXObjectCacheAtk.cpp:
66646        (WebCore::emitTextChanged): Add missing null check.
66647
666482012-08-09  Pavel Feldman  <pfeldman@chromium.org>
66649
66650        Web Inspector: generate preview for the objects dumped into the console upon logging.
66651        https://bugs.webkit.org/show_bug.cgi?id=35801
66652
66653        Reviewed by Vsevolod Vlasov.
66654
66655        As of today, dumping an object (array) into console will result in objects' properties being
66656        read upon console object expansion (i.e. lazily). This means that dumping the same object while
66657        mutating it will be hard to debug using the console.
66658
66659        This change starts generating abbreviated previews for objects / arrays at the moment of their
66660        logging and passes this information along into the front-end. This only happens when the front-end
66661        is already opened, it only works for console.log(), not live console interaction.
66662
66663        Covered by the existing console tests + collections test has been expanded to capture both: pre and post-
66664
66665        * inspector/ConsoleMessage.cpp:
66666        (WebCore::ConsoleMessage::addToFrontend):
66667        * inspector/ConsoleMessage.h:
66668        (ConsoleMessage):
66669        * inspector/InjectedScript.cpp:
66670        (WebCore::InjectedScript::wrapObject):
66671        * inspector/InjectedScript.h:
66672        (InjectedScript):
66673        * inspector/InjectedScriptSource.js:
66674        (.):
66675        * inspector/Inspector.json:
66676        * inspector/InspectorConsoleAgent.cpp:
66677        (WebCore::InspectorConsoleAgent::enable):
66678        (WebCore::InspectorConsoleAgent::addConsoleMessage):
66679        * inspector/front-end/ConsoleMessage.js:
66680        (WebInspector.ConsoleMessageImpl.prototype._format):
66681        (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
66682        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
66683        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
66684        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
66685        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
66686        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
66687        (WebInspector.ConsoleMessageImpl.prototype._printArray):
66688        (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
66689        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
66690        * inspector/front-end/DOMExtension.js:
66691        (Element.prototype.createTextChild):
66692        * inspector/front-end/ObjectPropertiesSection.js:
66693        (WebInspector.ObjectPropertiesSection):
66694        * inspector/front-end/PropertiesSection.js:
66695        * inspector/front-end/RemoteObject.js:
66696        (WebInspector.RemoteObject):
66697        (WebInspector.RemoteObject.fromPayload):
66698        (WebInspector.RemoteObject.prototype.get preview):
66699        * inspector/front-end/Section.js:
66700        * inspector/front-end/inspector.css:
66701        (.console-group-messages .section .header .title):
66702        (.section .console-formatted-node):
66703        (.console-object-preview):
66704        (.section .properties .name, .event-properties .name, .console-formatted-object .name):
66705
667062012-08-09  Keishi Hattori  <keishi@webkit.org>
66707
66708        Page popups can show up at wrong locations
66709        https://bugs.webkit.org/show_bug.cgi?id=93556
66710
66711        Reviewed by Kent Tamura.
66712
66713        No new tests. Cannot test popup position.
66714
66715        * html/shadow/CalendarPickerElement.cpp:
66716        (WebCore::CalendarPickerElement::contentSize):
66717
667182012-08-08  Andrey Kosyakov  <caseq@chromium.org>
66719
66720        Web Inspector: display progress bar while loading timeline data
66721        https://bugs.webkit.org/show_bug.cgi?id=92762
66722
66723        Reviewed by Pavel Feldman.
66724
66725        - display progress while loading timeline data;
66726        - disable status bar buttons while operation is in progress;
66727        - ignore save/load/record while operation is in progress;
66728        - disable context menu items while operation is in progress;
66729        - misc. compilation warning fixes;
66730
66731        * inspector/front-end/ProgressBar.js:
66732        (WebInspector.CompositeProgress.prototype.createSubProgress):
66733        * inspector/front-end/TimelineModel.js:
66734        (WebInspector.TimelineModel.prototype._loadNextChunk):
66735        (WebInspector.TimelineModel.prototype.loadFromFile.parseAndImportData):
66736        (WebInspector.TimelineModel.prototype.loadFromFile.onLoad):
66737        (WebInspector.TimelineModel.prototype.loadFromFile.onError):
66738        (WebInspector.TimelineModel.prototype.loadFromFile.onProgress):
66739        (WebInspector.TimelineModel.prototype.loadFromFile):
66740        * inspector/front-end/TimelinePanel.js:
66741        (WebInspector.TimelinePanel):
66742        (WebInspector.TimelinePanel.prototype.get statusBarItems):
66743        (WebInspector.TimelinePanel.prototype._createStatusBarItems):
66744        (WebInspector.TimelinePanel.prototype._setOperationInProgress):
66745        (WebInspector.TimelinePanel.prototype._contextMenu):
66746        (WebInspector.TimelinePanel.prototype._saveToFile):
66747        (WebInspector.TimelinePanel.prototype._loadFromFile):
66748        (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
66749        (WebInspector.TimelinePanel.prototype.sidebarResized):
66750        * inspector/front-end/utilities.js: added Array.prototype.select(field) to map array of objects to array containing particular field of each object.
66751
667522012-08-09  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
66753
66754        Floored and truncated rounded confused.
66755        https://bugs.webkit.org/show_bug.cgi?id=93475
66756
66757        Reviewed by Levi Weintraub.
66758
66759        Fix the common mistake of confusing truncating (round towards zero) and
66760        flooring (round down). They are only identical for positive numbers,
66761        not for negative numbers.
66762
66763        This patch fixes instances of misimplemented or misused floor in the
66764        layout and geometric code. And also uses the new correct implementations
66765        to clean up the code for enclosingRect.
66766
66767        * platform/FractionalLayoutUnit.h:
66768        (WebCore::FractionalLayoutUnit::fromFloatFloor):
66769        (FractionalLayoutUnit):
66770        (WebCore::FractionalLayoutUnit::ceil):
66771        (WebCore::FractionalLayoutUnit::floor):
66772        * platform/graphics/FloatPoint.h:
66773        (WebCore::FloatPoint::FloatPoint):
66774        (WebCore::roundedIntPoint):
66775        (WebCore::flooredIntPoint):
66776        (WebCore::ceiledIntPoint):
66777        (WebCore::flooredIntSize):
66778        * platform/graphics/FloatRect.cpp:
66779        (WebCore::enclosingIntRect):
66780        (WebCore::enclosedIntRect):
66781        * platform/graphics/FloatSize.h:
66782        (WebCore::roundedIntSize):
66783        (WebCore::flooredIntSize):
66784        (WebCore::flooredIntPoint):
66785        * platform/graphics/FractionalLayoutPoint.h:
66786        (WebCore::flooredIntPoint):
66787        (WebCore::flooredFractionalLayoutPoint):
66788        (WebCore::ceiledFractionalLayoutPoint):
66789        * platform/graphics/FractionalLayoutRect.cpp:
66790        (WebCore::enclosingIntRect):
66791        (WebCore::enclosingFractionalLayoutRect):
66792        * platform/graphics/FractionalLayoutSize.h:
66793        (WebCore::flooredIntSize):
66794        * platform/graphics/IntRect.cpp:
66795        (WebCore::IntRect::IntRect):
66796        * rendering/LayoutTypes.h:
66797        (WebCore::flooredLayoutPoint):
66798        (WebCore::floorToInt):
66799        (WebCore::isIntegerValue):
66800        * rendering/RenderLayer.cpp:
66801        (WebCore::RenderLayer::convertToLayerCoords):
66802
668032012-08-07  Andrey Kosyakov  <caseq@chromium.org>
66804
66805        Web Inspector: use WebInspector.ProgressIndicator in AdvancedSearchController
66806        https://bugs.webkit.org/show_bug.cgi?id=93362
66807
66808        Reviewed by Vsevolod Vlasov.
66809
66810        - drop custom status bar used in AdvancedSearchController, use WebInspector.ProgressIndicator;
66811        - perform additional cancelation check after invoking searchResultCallback to account for stopSearch called from within callback;
66812        - fix compilation warnings in ProgressBar;
66813
66814        * inspector/front-end/AdvancedSearchController.js:
66815        (WebInspector.SearchView):
66816        (WebInspector.SearchView.prototype.searchStarted):
66817        (WebInspector.SearchView.prototype.addSearchResult):
66818        (WebInspector.SearchView.prototype.searchFinished):
66819        (WebInspector.SearchView.prototype._onCancel):
66820        * inspector/front-end/ProgressBar.js:
66821        (WebInspector.CompositeProgress.prototype.createSubProgress):
66822        * inspector/front-end/ScriptsSearchScope.js:
66823        (WebInspector.ScriptsSearchScope.prototype.performSearch.searchCallbackWrapper):
66824        * inspector/front-end/inspector.css:
66825        (.progress-bar-container progress):
66826        (body.platform-mac .progress-bar-container progress):
66827
668282012-08-09  Pavel Feldman  <pfeldman@chromium.org>
66829
66830        Web Inspector: improve large array logging experience
66831        https://bugs.webkit.org/show_bug.cgi?id=93499
66832
66833        Reviewed by Vsevolod Vlasov.
66834
66835        Group elements in chunks of 100, not smaller. 
66836
66837        * inspector/front-end/ObjectPropertiesSection.js:
66838        (WebInspector.FunctionScopeMainTreeElement):
66839        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
66840        (WebInspector.ArrayGroupingTreeElement._populateRanges):
66841
668422012-08-09  MORITA Hajime  <morrita@google.com>
66843
66844        DOMCharacterDataModified should not be fired inside shadows
66845        https://bugs.webkit.org/show_bug.cgi?id=93427
66846
66847        Reviewed by Ryosuke Niwa.
66848
66849        CharacterData::dispatchModifiedEvent() fires DOMCharacterDataModified event even if
66850        the node is in shadow. But it shouldn't. Check dispatchChildInsertionEvents() and
66851        dispatchChildRemovalEvents() to see how other MutationEvents are suppressed behind shadows.
66852        This change follows the same path to suppress DOMCharacterDataModified.
66853
66854        Tests: fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata.html
66855               fast/forms/textarea-and-mutation-events-appending-text.html
66856
66857        * dom/CharacterData.cpp:
66858        (WebCore::CharacterData::dispatchModifiedEvent):
66859
668602012-08-09  Eric Seidel  <eric@webkit.org>
66861
66862        Use m_everHadLayout in RenderObject::checkForRepaintDuringLayout()
66863        https://bugs.webkit.org/show_bug.cgi?id=20885
66864
66865        Reviewed by Dan Bernstein.
66866
66867        Fix FIXME in checkForRepaintDuringLayout, making RenderObjects
66868        no longer paint on first layout, but instead require their
66869        parent containers to paint them.
66870        This appears to have fixed one minor SVG overpainting issue
66871        in svg/use-detach-expected.png.
66872
66873        * rendering/RenderBlock.cpp:
66874        (WebCore::RenderBlock::layoutBlock):
66875        * rendering/RenderObject.cpp:
66876        (WebCore::RenderObject::checkForRepaintDuringLayout):
66877        * rendering/svg/SVGRenderSupport.cpp:
66878        (WebCore::SVGRenderSupport::layoutChildren):
66879
668802012-08-08  Arko Saha  <arko@motorola.com>
66881
66882        Microdata: PropertyNodeList cache should be invalidated on id attribute change.
66883        https://bugs.webkit.org/show_bug.cgi?id=93485
66884
66885        Reviewed by Ryosuke Niwa.
66886
66887        Invalidate PropertyNodeList cache when id attribute of an element changed/modified.
66888
66889        Test: fast/dom/MicroData/propertiescollection-on-changing-id-attr.html
66890
66891        * dom/DynamicNodeList.cpp: Moved ownerNodeHasItemRefAttribute() method to DynamicNodeList.h
66892        (WebCore):
66893        * dom/DynamicNodeList.h:
66894        (WebCore):
66895        (WebCore::DynamicNodeListCacheBase::isRootedAtDocument): Return true if owner has itemref
66896        attribute specified with root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
66897        (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Return true if
66898        attrName is id attribute in case of InvalidateOnItemAttrChange.
66899        (WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute):
66900
669012012-08-09  Arko Saha  <arko@motorola.com>
66902
66903        Microdata: HTMLPropertiesCollection does not contain all properties when item is not attached to the DOM tree.
66904        https://bugs.webkit.org/show_bug.cgi?id=93456
66905
66906        Reviewed by Ryosuke Niwa.
66907
66908        HTMLPropertiesCollection does not contain the item properties added through
66909        itemref attribute when item is not attached to the DOM tree. We need to
66910        find the root node of the item if its not attached in the document.
66911
66912        It is also possible that itemref attribute of item refers to the root node.
66913        Made changes in getItemRefElements() method so that the traversal should
66914        start from the root node.
66915
66916        Tests: fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree.html
66917               fast/dom/MicroData/item-not-attached-to-domtree.html
66918               fast/dom/MicroData/itemref-pointing-to-root-node.html
66919
66920        * dom/DynamicNodeList.cpp:
66921        (WebCore::DynamicNodeListCacheBase::rootNode):
66922        * html/HTMLElement.cpp:
66923        (WebCore::HTMLElement::getItemRefElements):
66924
669252012-08-09  Tim Horton  <timothy_horton@apple.com>
66926
66927        Add optional debug logging for tiled scrolling
66928        https://bugs.webkit.org/show_bug.cgi?id=93305
66929
66930        Reviewed by Simon Fraser.
66931
66932        Add scrolling performance logging to ScrollingTreeNodeMac and WebTileLayer, which will log
66933        the amount of unpainted area exposed during scrolling and painting, respectively.
66934
66935        The logging output looks like this:
66936
66937            SCROLLING: Exposed tileless area. Time: 1344464850.154839 Unfilled Pixels: 1122008
66938            SCROLLING: Filled visible fresh tile. Time: 1344464850.575303 Unfilled Pixels: 1078272
66939            SCROLLING: Filled visible fresh tile. Time: 1344464850.676569 Unfilled Pixels: 823808
66940            SCROLLING: Filled visible fresh tile. Time: 1344464850.795877 Unfilled Pixels: 569344
66941            SCROLLING: Filled visible fresh tile. Time: 1344464850.846940 Unfilled Pixels: 524288
66942            SCROLLING: Filled visible fresh tile. Time: 1344464850.984113 Unfilled Pixels: 262144
66943            SCROLLING: Filled visible fresh tile. Time: 1344464851.027985 Unfilled Pixels: 0
66944
66945        No new tests, as this is just debugging logging.
66946
66947        * WebCore.exp.in:
66948        * page/FrameView.cpp:
66949        (WebCore::FrameView::setScrollingPerformanceLoggingEnabled):
66950        Added setScrollingPerformanceLoggingEnabled, passes flag into TiledBacking.
66951
66952        * page/FrameView.h:
66953        * page/Settings.cpp:
66954        (WebCore::Settings::Settings):
66955        (WebCore::Settings::setScrollingPerformanceLoggingEnabled):
66956        Added setScrollingPerformanceLoggingEnabled, passes flag into FrameView.
66957
66958        * page/Settings.h:
66959        (WebCore::Settings::scrollingPerformanceLoggingEnabled):
66960        * page/scrolling/ScrollingTree.cpp:
66961        (WebCore::ScrollingTree::ScrollingTree):
66962        (WebCore::ScrollingTree::setScrollingPerformanceLoggingEnabled):
66963        (WebCore::ScrollingTree::scrollingPeformanceLoggingEnabled):
66964        Added ScrollingPerformanceLoggingEnabled setter/getter; this is where it's accessed from ScrollingTreeNodeMac.
66965
66966        * page/scrolling/ScrollingTree.h:
66967        * page/scrolling/mac/ScrollingTreeNodeMac.h:
66968        (ScrollingTreeNodeMac):
66969        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
66970        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
66971        When updating scroll position, conditionally log the amount of unpainted area that was just exposed.
66972
66973        (WebCore::ScrollingTreeNodeMac::logExposedTilelessArea):
66974        * platform/graphics/TiledBacking.h:
66975        (WebCore::TiledBacking::TiledBacking):
66976        (WebCore::TiledBacking::setScrollingPerformanceLoggingEnabled):
66977        (WebCore::TiledBacking::scrollingPerformanceLoggingEnabled):
66978        Added ScrollingPerformanceLoggingEnabled setter/getter; this is where it's accessed from WebTileLayer.
66979
66980        * platform/graphics/ca/mac/TileCache.h:
66981        (WebCore::TileCache::visibleRect):
66982        * platform/graphics/ca/mac/TileCache.mm:
66983        (WebCore::TileCache::blankPixelCount):
66984        (WebCore::TileCache::blankPixelCountForTiles):
66985        Compute the exposed, unpainted area of the tile cache by iterating over the layers,
66986        checking if they've been painted, and subtracting painted layers from the total visible area.
66987
66988        * platform/graphics/ca/mac/WebTileLayer.h:
66989        * platform/graphics/ca/mac/WebTileLayer.mm:
66990        (-[WebTileLayer drawInContext:]):
66991        (-[WebTileLayer repaintCount]):
66992        (-[WebTileLayer logFilledFreshTile]):
66993        When painting a WebTileLayer, conditionally log the amount of unpainted area remaining after painting said tile.
66994
66995        * rendering/RenderLayerBacking.cpp:
66996        (WebCore::RenderLayerBacking::RenderLayerBacking):
66997        Plumb ScrollingPerformanceLoggingEnabled through to TiledBacking.
66998
669992012-08-08  Alpha Lam  <hclam@chromium.org>
67000
67001        Remove image decoding in some BitmapImage metadata functions
67002        https://bugs.webkit.org/show_bug.cgi?id=93171
67003
67004        Reviewed by Simon Fraser.
67005
67006        These two metadata functions were decoding an entire frame:
67007        - frameOrientationAtIndex
67008        - frameHasAlphaAtIndex
67009
67010        This change removes image decoding from these two methods. This is for
67011        preparation of having asynchronous image decoding, intending to reduce
67012        code location that trigger image decoding.
67013
67014        frameOrientationAtIndex() doesn't require decoding a frame. This method
67015        is only implemented in CG port in ImageSourceCG.cpp which doesn't do
67016        image decoding.
67017
67018        frameHasAlphaAtIndex() is used to optimize certain drawing operations
67019        and accelerated compositing. This change uses a heuristic for non-CG
67020        port to determine if an image has alpha. If an image is not yet
67021        decoded the function answers having alpha. Only if a frame is decoded
67022        and cached that the alpha state of the frame is returned. This is an
67023        admissible heuristic that postpone answering the question until a frame
67024        is decoded.
67025
67026        Tested this change with a fully loaded image and partially loaded image
67027        with background color.
67028
67029        Test: http/tests/images/jpg-img-partial-load.html
67030
67031        * platform/graphics/BitmapImage.cpp:
67032        (WebCore::BitmapImage::frameHasAlphaAtIndex):
67033        (WebCore::BitmapImage::frameOrientationAtIndex):
67034        * platform/graphics/ImageSource.cpp:
67035        (WebCore::ImageSource::frameHasAlphaAtIndex):
67036        * platform/image-decoders/ImageDecoder.cpp:
67037        (WebCore::ImageDecoder::frameHasAlphaAtIndex):
67038        (WebCore):
67039        * platform/image-decoders/ImageDecoder.h:
67040        (ImageDecoder):
67041
670422012-08-08  Sheriff Bot  <webkit.review.bot@gmail.com>
67043
67044        Unreviewed, rolling out r125146.
67045        http://trac.webkit.org/changeset/125146
67046        https://bugs.webkit.org/show_bug.cgi?id=93578
67047
67048        Would like to study fast/dom/Window/timer-null-script-
67049        execution-context.html behavior change (Requested by abarth on
67050        #webkit).
67051
67052        * bindings/js/JSDOMWindowBase.cpp:
67053        (WebCore):
67054        (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
67055        (WebCore::JSDOMWindowBase::allowsAccessFrom):
67056        * bindings/js/JSDOMWindowBase.h:
67057        (JSDOMWindowBase):
67058        * bindings/js/JSDOMWindowCustom.cpp:
67059        (WebCore::namedItemGetter):
67060        (WebCore::JSDOMWindow::getOwnPropertySlot):
67061        (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
67062        (WebCore::JSDOMWindow::put):
67063        (WebCore::JSDOMWindow::deleteProperty):
67064        (WebCore::JSDOMWindow::getPropertyNames):
67065        (WebCore::JSDOMWindow::getOwnPropertyNames):
67066        (WebCore::JSDOMWindow::defineOwnProperty):
67067        (WebCore::JSDOMWindow::setLocation):
67068        * bindings/js/JSDOMWindowCustom.h:
67069        (WebCore::JSDOMWindowBase::allowsAccessFrom):
67070        (WebCore):
67071        (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
67072        (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
67073        * bindings/js/JSInjectedScriptManager.cpp:
67074        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
67075        * bindings/objc/WebScriptObject.mm:
67076        (-[WebScriptObject _isSafeScript]):
67077        * bindings/scripts/CodeGeneratorJS.pm:
67078        (GenerateGetOwnPropertyDescriptorBody):
67079        (GenerateImplementation):
67080        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
67081        (WebCore::jsTestActiveDOMObjectExcitingAttr):
67082        (WebCore::jsTestActiveDOMObjectConstructor):
67083        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
67084
670852012-08-05  Kinuko Yasuda  <kinuko@chromium.org>
67086
67087        Unprefix window.webkitURL
67088        https://bugs.webkit.org/show_bug.cgi?id=93034
67089
67090        Reviewed by Jian Li.
67091
67092        Adding unprefixed window.URL as other browsers like FireFox and Opera 12 seem to have the API unprefixed.
67093        (This patch doesn't remove webkitURL yet as Safari and Chrome has exposed the URL for a while now.)
67094
67095        Test: fast/dom/DOMURL/check-instanceof-domurl-functions.html
67096
67097        * page/DOMWindow.cpp:
67098        * page/DOMWindow.h:
67099        (DOMWindow):
67100        * page/DOMWindow.idl:
67101        * workers/WorkerContext.idl:
67102
671032012-08-08  MORITA Hajime  <morrita@google.com>
67104
67105        [SVG] load events shouldn't be fired during Node::insrtedInto()
67106        https://bugs.webkit.org/show_bug.cgi?id=92969
67107
67108        Reviewed by Ryosuke Niwa.
67109
67110        Event dispatches during insertedInto() allow event handlers to
67111        break DOM tree cosistency. This chagne makes them async for load
67112        events which are dispatched during insertedInto() call. This
67113        prevents event handlers from breaking tree consistency while the
67114        notification traversal.
67115
67116        Test: svg/custom/loadevents-async.html
67117
67118        * svg/SVGElement.cpp:
67119        (WebCore::SVGElement::sendSVGLoadEventIfPossibleAsynchronously): Added.
67120        (WebCore):
67121        (WebCore::SVGElement::svgLoadEventTimerFired): Added.
67122        (WebCore::SVGElement::svgLoadEventTimer):
67123        - Added a stub. Implemented in SVGScriptElement, SVGStopElement, SVGUseElement
67124          where the load event happens.
67125        * svg/SVGElement.h:
67126        (SVGElement):
67127        * svg/SVGExternalResourcesRequired.cpp:
67128        (WebCore::SVGExternalResourcesRequired::insertedIntoDocument):
67129        - Replaces event dispatch call with async version.
67130        * svg/SVGScriptElement.h:
67131        * svg/SVGStyleElement.h:
67132        * svg/SVGUseElement.h:
67133
671342012-08-08  Adam Barth  <abarth@webkit.org>
67135
67136        Implement JSDOMWindow*::allowsAccessFrom* in terms of BindingSecurity
67137        https://bugs.webkit.org/show_bug.cgi?id=93407
67138
67139        Reviewed by Eric Seidel.
67140
67141        This patch removes allowsAccessFrom and implements the security checks
67142        in terms of shouldAllowAccessToFrame directly. There shouldn't be any
67143        change in behavior.
67144
67145        * bindings/js/JSDOMWindowBase.cpp:
67146        (WebCore):
67147        (WebCore::shouldAllowAccessFrom):
67148        * bindings/js/JSDOMWindowBase.h:
67149        (JSDOMWindowBase):
67150        * bindings/js/JSDOMWindowCustom.cpp:
67151        (WebCore::namedItemGetter):
67152        (WebCore::JSDOMWindow::getOwnPropertySlot):
67153        (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
67154        (WebCore::JSDOMWindow::put):
67155        (WebCore::JSDOMWindow::deleteProperty):
67156        (WebCore::JSDOMWindow::getPropertyNames):
67157        (WebCore::JSDOMWindow::getOwnPropertyNames):
67158        (WebCore::JSDOMWindow::defineOwnProperty):
67159        (WebCore::JSDOMWindow::setLocation):
67160        * bindings/js/JSDOMWindowCustom.h:
67161        * bindings/js/JSInjectedScriptManager.cpp:
67162        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
67163        * bindings/objc/WebScriptObject.mm:
67164        (-[WebScriptObject _isSafeScript]):
67165        * bindings/scripts/CodeGeneratorJS.pm:
67166        (GenerateGetOwnPropertyDescriptorBody):
67167        (GenerateImplementation):
67168        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
67169        (WebCore::jsTestActiveDOMObjectExcitingAttr):
67170        (WebCore::jsTestActiveDOMObjectConstructor):
67171        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
67172
671732012-08-08  Sheriff Bot  <webkit.review.bot@gmail.com>
67174
67175        Unreviewed, rolling out r125143.
67176        http://trac.webkit.org/changeset/125143
67177        https://bugs.webkit.org/show_bug.cgi?id=93573
67178
67179        Doesn't compile on Mac (Requested by tony^work on #webkit).
67180
67181        * GNUmakefile.list.am:
67182        * Target.pri:
67183        * WebCore.gypi:
67184        * WebCore.vcproj/WebCore.vcproj:
67185        * WebCore.xcodeproj/project.pbxproj:
67186        * platform/graphics/BitmapImage.h:
67187        * platform/graphics/Image.h:
67188        * platform/graphics/ImageSource.h:
67189        (WebCore):
67190        * platform/graphics/NativeImagePtr.h: Removed.
67191        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
67192
671932012-08-08  Huang Dongsung  <luxtella@company100.net>
67194
67195        Extract the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
67196        https://bugs.webkit.org/show_bug.cgi?id=93466
67197
67198        Reviewed by Adam Barth.
67199
67200        Image.h includes ImageSource.h in order to know the definition of NativeImagePtr.
67201        But Image does not need to know the definition of ImageSource. So, this patch
67202        extracts the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
67203
67204        This is a preparation for asynchronous image decoding. Async decoding
67205        will need a callback function, which sends a NativeImagePtr to clients, and the
67206        callback must know the definition of NativeImagePtr, not ImageSource.
67207
67208        No new tests, behavior is unchanged.
67209
67210        * GNUmakefile.list.am:
67211        * Target.pri:
67212        * WebCore.gypi:
67213        * WebCore.vcproj/WebCore.vcproj:
67214        * WebCore.xcodeproj/project.pbxproj:
67215        * platform/graphics/BitmapImage.h:
67216        * platform/graphics/Image.h:
67217        * platform/graphics/ImageSource.h:
67218        (WebCore):
67219        * platform/graphics/NativeImagePtr.h: Added.
67220        (WebCore):
67221
672222012-08-08  Shane Stephens  <shanestephens@google.com>
67223
67224        Compile flag for CSS Hierarchies
67225        https://bugs.webkit.org/show_bug.cgi?id=92433
67226
67227        Reviewed by Tony Chang.
67228
67229        Note that this flag is disabled on all platforms for now.
67230
67231        No new tests since there's no functional change.
67232
67233        * Configurations/FeatureDefines.xcconfig:
67234
672352012-08-08  Kent Tamura  <tkent@chromium.org>
67236
67237        [Chromium-mac] Switch to LocalizedNumberMac from LocalizedNumberICU
67238        https://bugs.webkit.org/show_bug.cgi?id=93432
67239
67240        Reviewed by Hajime Morita.
67241
67242        No new tests. Covered by fast/forms/number/number-lossless-localization.html,
67243        and WebKit/chromium/tests/LocaleMacTest.cpp.
67244
67245        * WebCore.gyp/WebCore.gyp:
67246        Exclude locale-relatef files for ICU, and include files for Mac.
67247
672482012-08-08  Hayato Ito  <hayato@chromium.org>
67249
67250        EventDispatcher::dispatchSimulatedClick should not reuse the same EventDispatcher instance.
67251        https://bugs.webkit.org/show_bug.cgi?id=93452
67252
67253        Reviewed by Dimitri Glazkov.
67254
67255        This is a follow up patch after r124975.  There is yet another
67256        place where the same EventDispatcher instance is reused across
67257        event dispatching.
67258
67259        In addition to that, in order to simulate a real click, we must
67260        different dispatchers because we must recalculate event ancestors
67261        each time.  Current implementation wrongly freezes event ancestors
67262        at the first event dispatching.
67263
67264        No new tests, no change in functionality.
67265
67266        * dom/EventDispatcher.cpp:
67267        (WebCore::EventDispatcher::dispatchSimulatedClick):
67268        (WebCore::EventDispatcher::EventDispatcher):
67269        (WebCore::EventDispatcher::dispatchEvent):
67270        * dom/EventDispatcher.h:
67271        (EventDispatcher):
67272
672732012-08-08  Jae Hyun Park  <jae.park@company100.net>
67274
67275        writeHelperGetString in V8HTMLDocument uses += to concatenate strings
67276        https://bugs.webkit.org/show_bug.cgi?id=93035
67277
67278        Reviewed by Adam Barth.
67279
67280        Use a StringBuilder instead of String concatenation because StringBuilder is generally faster.
67281
67282        No new functionality, so no new tests.
67283
67284        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
67285        (WebCore::writeHelperGetString):
67286
672872012-08-08  Adrienne Walker  <enne@google.com>
67288
67289        [chromium] Move scrollbar pointer into WebScrollbarThemePainter
67290        https://bugs.webkit.org/show_bug.cgi?id=93541
67291
67292        Reviewed by James Robinson.
67293
67294        Update clients of WebScrollbarThemePainter.
67295
67296        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
67297        (WebCore::createScrollbarLayer):
67298        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
67299
673002012-08-08  Alexandru Chiculita  <achicu@adobe.com>
67301
67302        [CSS Shaders] Invalid shaders should act as pass-through filters
67303        https://bugs.webkit.org/show_bug.cgi?id=93405
67304
67305        Reviewed by Dean Jackson.
67306
67307        If the shader fails to apply then clearShaderResult will just copy the result of the previous filter
67308        to the output of the current filter.
67309
67310        Test: css3/filters/custom/invalid-custom-filter-shader.html
67311
67312        * platform/graphics/filters/FECustomFilter.cpp:
67313        (WebCore::FECustomFilter::platformApplySoftware):
67314        (WebCore):
67315        (WebCore::FECustomFilter::clearShaderResult):
67316        (WebCore::FECustomFilter::applyShader):
67317        * platform/graphics/filters/FECustomFilter.h:
67318        (FECustomFilter):
67319        * rendering/style/StyleCustomFilterProgram.h: The test was exposing the fact that if the shaders were referencing the same
67320        file then StyleCustomFilterProgram will never complete the load. Having the same file for both the vertex and the fragment shader
67321        cannot really work, because the shaders would not compile anyway, thus triggering an invalid shader. 
67322        I'm fixing it part of this change because the current test actually exposes that on Safari Mac builds. See the note in the LayoutTest/ChangeLog.
67323        (WebCore::StyleCustomFilterProgram::notifyFinished):
67324
673252012-08-08  Adam Barth  <abarth@webkit.org>
67326
67327        Rewire the same-origin checks for the JavaScriptCore bindings through BindingSecurity
67328        https://bugs.webkit.org/show_bug.cgi?id=93382
67329
67330        Reviewed by Eric Seidel.
67331
67332        This patch rewires the same-origin policy checks in the JavaScriptCore
67333        bindings to use the implementation in BindingSecurity.cpp, which is now
67334        shared by JavaScriptCore and V8. There are still a few places were we
67335        use the JSDOMWindowCustom-based code path, but I plan to change those
67336        in a follow up patch in the interest of keeping this patch as small as
67337        possible.
67338
67339        This patch as two main benefits:
67340
67341        1) We no longer need to maintain duplicate code in the JSC and the V8
67342           bindings for as delicate an area as the same-origin check.
67343           Previously, the two implementations accomplished the same task using
67344           a slightly different mechansim. After this patch, they use the same
67345           mechanism, which means we only need to convince ourselves that one
67346           implementation is correct.
67347
67348        2) This patch will make it easier to remove DOMWindow::m_securityOrigin
67349           because there will be only one piece of code that needs to change.
67350           Prior to this patch, we would have had to change both
67351           implementations of the same-origin policy not to rely upon
67352           DOMWindow::m_securityOrigin.
67353
67354        * bindings/js/BindingState.cpp:
67355        (WebCore::immediatelyReportUnsafeAccessTo):
67356        (WebCore):
67357        * bindings/js/BindingState.h:
67358        (WebCore):
67359        * bindings/js/JSDOMBinding.cpp:
67360        (WebCore::shouldAllowAccessToNode):
67361        (WebCore::shouldAllowAccessToFrame):
67362
673632012-08-08  Brady Eidson  <beidson@apple.com>
67364
67365        Google search query text reverts to original search query after multiple searches
67366        <rdar://problem/10800686> and https://bugs.webkit.org/show_bug.cgi?id=93544
67367
67368        Reviewed by Darin Adler.
67369
67370        For security sensitive fields we normally clear "autocomplete=off" form elements when
67371        restoring a page from the page cache.
67372        
67373        If the element is textual and has a defaultValue then "clearing" it actually restores 
67374        the default value.
67375        
67376        There's no scenario we can imagine where that makes sense so we should not reset the 
67377        value in such fields.
67378
67379        Test: fast/forms/autocomplete-off-with-default-value-does-not-clear.html
67380
67381        * html/HTMLInputElement.cpp:
67382        (WebCore::HTMLInputElement::parseAttribute): Update suspension callback registration as needed.
67383        (WebCore::HTMLInputElement::needsSuspensionCallback): Don't reset text fields with a non-empty default value.
67384
673852012-08-08  Raymond Toy  <rtoy@google.com>
67386
67387        Creating "basic waveform" Oscillator nodes is not efficient
67388        https://bugs.webkit.org/show_bug.cgi?id=93194
67389
67390        Reviewed by Chris Rogers.
67391
67392        Cache the wavetables for the basic types so they don't have to be
67393        recomputed every time.
67394
67395        Also fix a bug where oscillator type was always set to CUSTOM
67396        instead of the specified oscillator type.  Test added for this.
67397
67398        Test: webaudio/oscillator-basic.html
67399
67400        * Modules/webaudio/Oscillator.cpp:
67401        (WebCore):
67402        (WebCore::Oscillator::setType): Use cached wavetables; fix bug in
67403        setting the oscillator type.
67404        * Modules/webaudio/Oscillator.h: 
67405        (Oscillator): Define static variables to hold cached wavetables.
67406
674072012-08-08  Tom Sepez  <tsepez@chromium.org>
67408
67409        Avoid ASSERT(m_workerContext->isSharedWorkerContext()) in WorkerScriptController::initScript()
67410        https://bugs.webkit.org/show_bug.cgi?id=93521
67411
67412        Reviewed by Adam Barth.
67413
67414        Changes WorkerContext and its subclasses so that we do not call functions that rely upon subclass
67415        virtual methods from the superclass constructor.
67416
67417        Test: http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked.html
67418
67419        * workers/DedicatedWorkerContext.cpp:
67420        (WebCore):
67421        (WebCore::DedicatedWorkerContext::create):
67422        (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
67423        * workers/DedicatedWorkerContext.h:
67424        (DedicatedWorkerContext):
67425        * workers/SharedWorkerContext.cpp:
67426        (WebCore):
67427        (WebCore::SharedWorkerContext::create):
67428        (WebCore::SharedWorkerContext::SharedWorkerContext):
67429        * workers/SharedWorkerContext.h:
67430        (SharedWorkerContext):
67431        * workers/WorkerContext.cpp:
67432        (WebCore::WorkerContext::WorkerContext):
67433        (WebCore::WorkerContext::applyContentSecurityPolicyFromString):
67434        (WebCore):
67435        * workers/WorkerContext.h:
67436        (WorkerContext):
67437
674382012-08-08  Thiago Marcos P. Santos  <thiago.santos@intel.com>
67439
67440        CanvasRenderContext2D::setFont() should ignore inherited properties and default keyword value
67441        https://bugs.webkit.org/show_bug.cgi?id=93491
67442
67443        Reviewed by Kenneth Rohde Christiansen.
67444
67445        Treat "inherit" as an invalid value. Also ignore the "default"
67446        keyword that was previously treated as a font family. This second
67447        change was done in the property validation and will also affect the
67448        CSS font parsing, but it is probably harmless since font doesn't
67449        recognize the default keyword anyway.
67450
67451        * css/CSSParser.cpp:
67452        (WebCore::CSSParser::parseFontFamily):
67453        * html/canvas/CanvasRenderingContext2D.cpp:
67454        (WebCore::CanvasRenderingContext2D::setFont):
67455
674562012-08-08  James Robinson  <jamesr@chromium.org>
67457
67458        [chromium] Add missing OVERRIDE and virtual annotations in compositor
67459        https://bugs.webkit.org/show_bug.cgi?id=93438
67460
67461        Reviewed by Adrienne Walker.
67462
67463        As the title suggests.
67464
67465        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
67466        (BitmapCanvasLayerTextureUpdater):
67467        * platform/graphics/chromium/ScrollbarLayerChromium.h:
67468        (ScrollbarLayerChromium):
67469        * platform/graphics/chromium/SolidColorLayerChromium.h:
67470        (SolidColorLayerChromium):
67471        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
67472        * platform/graphics/chromium/cc/CCFrameRateController.h:
67473        (CCFrameRateController):
67474        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
67475        (CCScrollbarLayerImpl):
67476
674772012-08-08  Eric Penner  <epenner@google.com>
67478
67479        [chromium] Refactor tile flags.
67480        https://bugs.webkit.org/show_bug.cgi?id=93059
67481
67482        Reviewed by Adrienne Walker.
67483
67484        This has become a general refactoring patch to make updateTiles easier
67485        to work with. The 'updated' flag had become convoluted and incorrect
67486        and the function had lots of special cases piled into it which
67487        makes for tangled depedancies that are hard to reason with.
67488 
67489        This refactors the updated flag into two flags ('validForFrame',
67490        and 'occluded') for the two purposes it is actually used for,
67491        simplifies the use of those flags.
67492
67493        'validForFrame' is improved to work for all tiles that are not dirty
67494        before painting begins, rather than just the tiles that get touched via
67495        updateTiles().
67496
67497        This refactors updateTiles() into several functions that more clearly
67498        illustrate all the depedancies that have accumulated in there. After
67499        doing that I managed to separate the occlusion pass from the painting
67500        passes, ecapsulating the difficult dependancies in one documented
67501        function 'markOcclusionsAndRequestTextures'.
67502
67503        Now update tiles doesn't need the 'idle' flag, and returns didPaint
67504        as an out-param. The last remaining wierd output is m_failedPaint
67505        which is needed in place of m_skipsIdlePaint to prevent infinite 
67506        paints from being requested.
67507
67508        As a last step I was going to merge LayerChromium::update() and
67509        LayerChromium::needsMoreUpdates() by having update() just return
67510        a boolean, but this proved to be a big change so I'm holding off
67511        on that. That would let us remove the m_failedPaint and get rid
67512        of needsIdlePaint() altogether.
67513
67514        Tested by many existing tests.
67515
67516        * platform/graphics/chromium/TiledLayerChromium.cpp:
67517        (UpdatableTile):
67518        (WebCore::UpdatableTile::resetUpdateState):
67519        (WebCore::UpdatableTile::markForUpdate):
67520        (WebCore::UpdatableTile::UpdatableTile):
67521        (WebCore::TiledLayerChromium::TiledLayerChromium):
67522        (WebCore::TiledLayerChromium::pushPropertiesTo):
67523        (WebCore):
67524        (WebCore::TiledLayerChromium::updateTiles):
67525        (WebCore::TiledLayerChromium::markOcclusionsAndRequestTextures):
67526        (WebCore::TiledLayerChromium::haveTexturesForTiles):
67527        (WebCore::TiledLayerChromium::markTilesForUpdate):
67528        (WebCore::TiledLayerChromium::updateTileTextures):
67529        (WebCore::TiledLayerChromium::resetUpdateState):
67530        (WebCore::TiledLayerChromium::updateContentRect):
67531        (WebCore::TiledLayerChromium::needsIdlePaint):
67532        * platform/graphics/chromium/TiledLayerChromium.h:
67533        (TiledLayerChromium):
67534
675352012-08-08  Beth Dakin  <bdakin@apple.com>
67536
67537        https://bugs.webkit.org/show_bug.cgi?id=93393
67538        Overflow regions sometimes repaint incorrectly after going into or 
67539        coming out of compositing mode
67540        -and corresponding-
67541        <rdar://problem/12006463>
67542
67543        Reviewed by Simon Fraser.
67544
67545        My first patch to fix this bug removed an if (parent()) check that is 
67546        needed to prevent a table crash seen in 
67547        fast/table/table-row-compositing-repaint-crash.html  
67548        The parent() check was actually added originally to prevent this same 
67549        crash. See http://trac.webkit.org/changeset/110456  
67550        This patch adds that check back, but really we should delay the 
67551        computation of repaint rects if layout has not happened yet.
67552        * rendering/RenderLayerCompositor.cpp:
67553        (WebCore::RenderLayerCompositor::updateBacking):
67554
675552012-08-08  Simon Fraser  <simon.fraser@apple.com>
67556
67557        Avoid backing store on layers created for CoreAnimation plugins
67558        https://bugs.webkit.org/show_bug.cgi?id=93526
67559        <rdar://problem/12052828>
67560
67561        Reviewed by Dean Jackson.
67562
67563        We create a compositing layer for <embed> objects whose plug-in supports
67564        the CoreAnimation rendering model. When the embed's renderer is not styled,
67565        we can avoid allocating backing store for it.
67566
67567        Test: compositing/plugins/no-backing-store.html
67568
67569        * rendering/RenderLayerBacking.cpp:
67570        (WebCore::isCompositedPlugin):
67571        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
67572
675732012-08-08  Erik Arvidsson  <arv@chromium.org>
67574
67575        DOM4: classList should be defined on Element and not on HTMLElement
67576        https://bugs.webkit.org/show_bug.cgi?id=93015
67577
67578        Reviewed by Adam Barth.
67579
67580        DOM4 specs that Element should have the classList WebIDL attribute. This moves the
67581        attribute to the correct IDL file.
67582
67583        Test: fast/dom/Element/class-list.html
67584
67585        * dom/Element.idl:
67586        * html/HTMLElement.idl:
67587
675882012-08-08  Beth Dakin  <bdakin@apple.com>
67589
67590        https://bugs.webkit.org/show_bug.cgi?id=92275
67591        Need a way to get a snapshot image that does not show the selection
67592        -and corresponding-
67593        <rdar://problem/11956802>
67594
67595        Reviewed by Anders Carlsson.
67596
67597        New function FrameView::paintContentsForSnapshot() has the option to 
67598        exclude selection from the snapshot.
67599
67600        Export new function
67601        * WebCore.exp.in:
67602
67603        Clear the selection from the RenderView when selection is to be excluded. Restore 
67604        all of this information via FrameSelection::updateAppearance() after calling 
67605        paintContents().
67606        * page/FrameView.cpp:
67607        (WebCore::FrameView::paintContentsForSnapshot):
67608        (WebCore):
67609        * page/FrameView.h:
67610
676112012-08-07  James Robinson  <jamesr@chromium.org>
67612
67613        [chromium] Only use public Platform API in NonCompositedContentHost
67614        https://bugs.webkit.org/show_bug.cgi?id=93423
67615
67616        Reviewed by Adrienne Walker.
67617
67618        This renames the "NonCompositedContentHost" flag to "useLCDText", which is the primary purpose of the flag. We
67619        also use this flag to control whether we have border texels or not on the "root" layer, but I can't think of a
67620        clean name that encapsulates both behaviors.
67621
67622        * platform/graphics/chromium/LayerChromium.cpp:
67623        (WebCore::LayerChromium::LayerChromium):
67624        (WebCore::LayerChromium::setUseLCDText):
67625        (WebCore::LayerChromium::pushPropertiesTo):
67626        * platform/graphics/chromium/LayerChromium.h:
67627        (LayerChromium):
67628        (WebCore::LayerChromium::useLCDText):
67629        * platform/graphics/chromium/TiledLayerChromium.cpp:
67630        (WebCore::TiledLayerChromium::setUseLCDText):
67631        * platform/graphics/chromium/TiledLayerChromium.h:
67632        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
67633        (WebCore::CCLayerImpl::CCLayerImpl):
67634        * platform/graphics/chromium/cc/CCLayerImpl.h:
67635        (WebCore::CCLayerImpl::setUseLCDText):
67636        (WebCore::CCLayerImpl::useLCDText):
67637        (CCLayerImpl):
67638
676392012-08-08  Beth Dakin  <bdakin@apple.com>
67640
67641        https://bugs.webkit.org/show_bug.cgi?id=93393
67642        Overflow regions sometimes repaint incorrectly after going into or 
67643        coming out of compositing mode
67644        -and corresponding-
67645        <rdar://problem/12006463>
67646
67647        Reviewed by Simon Fraser.
67648
67649        New RenderLayer function computeRepaintRectsIncludingDescendants()
67650        * rendering/RenderLayer.cpp:
67651        (WebCore):
67652        (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
67653        * rendering/RenderLayer.h:
67654        (RenderLayer):
67655
67656        It is not sufficient to compute repaint rects just for the current 
67657        layer when compositing changes. They must be recomputed for all 
67658        descendant layers as well.
67659        * rendering/RenderLayerCompositor.cpp:
67660        (WebCore::RenderLayerCompositor::updateBacking):
67661
676622012-08-08  Alec Flett  <alecflett@chromium.org>
67663
67664        IndexedDB: new enums and openCursor stub
67665        https://bugs.webkit.org/show_bug.cgi?id=93410
67666
67667        Reviewed by Adam Barth.
67668
67669        Introduce a new TaskType enum that will be used to prioritize
67670        internal tasks. This is preliminary staging for
67671        https://bugs.webkit.org/show_bug.cgi?id=91125.
67672
67673        No new tests, coming in bug 91125.
67674
67675        * Modules/indexeddb/IDBTransactionBackendInterface.h:
67676
676772012-08-08  Pavel Feldman  <pfeldman@chromium.org>
67678
67679        REGRESSION(r125046): Breaks debug build (assertion in protocol type checks) (Requested by pfeldman on #webkit).
67680        https://bugs.webkit.org/show_bug.cgi?id=93505
67681
67682        Not reviewed: roll out.
67683
67684        * inspector/ConsoleMessage.cpp:
67685        (WebCore::ConsoleMessage::addToFrontend):
67686        * inspector/ConsoleMessage.h:
67687        (ConsoleMessage):
67688        * inspector/InjectedScript.cpp:
67689        (WebCore::InjectedScript::wrapObject):
67690        * inspector/InjectedScript.h:
67691        (InjectedScript):
67692        * inspector/InjectedScriptSource.js:
67693        (.):
67694        * inspector/InspectorConsoleAgent.cpp:
67695        (WebCore::InspectorConsoleAgent::enable):
67696        (WebCore::InspectorConsoleAgent::addConsoleMessage):
67697        * inspector/front-end/ConsoleMessage.js:
67698        (WebInspector.ConsoleMessageImpl.prototype._format):
67699        (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
67700        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
67701        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
67702        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
67703        (WebInspector.ConsoleMessageImpl.prototype._printArray):
67704        (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
67705        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
67706        * inspector/front-end/DOMExtension.js:
67707        * inspector/front-end/ObjectPropertiesSection.js:
67708        (WebInspector.ObjectPropertiesSection):
67709        * inspector/front-end/PropertiesSection.js:
67710        * inspector/front-end/RemoteObject.js:
67711        (WebInspector.RemoteObject):
67712        (WebInspector.RemoteObject.fromPayload):
67713        * inspector/front-end/Section.js:
67714        * inspector/front-end/inspector.css:
67715        (.console-group-messages .section .header .title):
67716        (.section .properties .name, .event-properties .name):
67717
677182012-08-08  Adam Barth  <abarth@webkit.org>
67719
67720        Crash when reloading a Chromium "platform" app
67721        https://bugs.webkit.org/show_bug.cgi?id=93497
67722
67723        Reviewed by Eric Seidel.
67724
67725        The framework for Chromium "platform" apps executes a big blob of
67726        script during the didCreateScriptContext callback. This blob of scripts
67727        interacts with a bunch of JavaScript objects and triggers a number of
67728        security checks.
67729
67730        When reloading a frame, the didCreateScriptContext is called during
67731        Frame::setDocument (as a consequence of calling
67732        ScriptController::updateDocument). At that time, the SecurityOrigin
67733        object hasn't yet been copied over to the DOMWindow, and we crash
67734        trying to grab it.
67735
67736        The long-term fix for this bug is to fix
67737        https://bugs.webkit.org/show_bug.cgi?id=75793, at which point there
67738        will no longer be a SecurityOrigin object on DOMWindow. In the
67739        meantime, however, we can fix this crash by null checking the
67740        DOMWindow's SecurityOrigin object.
67741
67742        * bindings/generic/BindingSecurity.cpp:
67743        (WebCore::canAccessDocument):
67744
677452012-08-08  Dean Jackson  <dino@apple.com>
67746
67747        Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/125051
67748
67749        Add CachedImageClient.h to project.
67750
67751        * WebCore.xcodeproj/project.pbxproj:
67752
677532012-08-08  Antonio Gomes  <agomes@rim.com>
67754
67755        [BlackBerry] Add boundsOrigin accessors to LayerOverride
67756        https://bugs.webkit.org/show_bug.cgi?id=93479
67757        PR #188677
67758
67759        Reviewed by Yong Li.
67760
67761        This is needed in order to allow us to directly set the boundsOrigin value
67762        to the LayerCompositingThread and avoid it to get overridden by the respective
67763        LayerWebKitThread's boundsOrigin value in the next commit.
67764
67765        No new tests, since this is another preparation PR.
67766
67767        * platform/graphics/blackberry/LayerCompositingThread.cpp:
67768        (WebCore::LayerCompositingThread::updateAnimations):
67769        * platform/graphics/blackberry/LayerCompositingThread.h:
67770        (WebCore::LayerOverride::isBoundsOriginSet):
67771        (WebCore::LayerOverride::boundsOrigin):
67772        (WebCore::LayerOverride::setBoundsOrigin):
67773        (LayerOverride):
67774        (WebCore::LayerOverride::LayerOverride):
67775
677762012-08-08  Antonio Gomes  <agomes@rim.com>
67777
67778        [BlackBerry] Propagate GraphicsLayer::boundsOrigin down to the platform layers
67779        https://bugs.webkit.org/show_bug.cgi?id=93478
67780        PR #188657
67781
67782        Reviewed by Yong Li.
67783
67784        This property will be set from both WebKit and Compositing/UI
67785        threads in order to fast scroll block elements.
67786
67787        No new tests, as it is a mid-step patch.
67788
67789        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
67790        (WebCore::GraphicsLayerBlackBerry::setBoundsOrigin):
67791        (WebCore):
67792        (WebCore::GraphicsLayerBlackBerry::updateBoundsOrigin):
67793        * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
67794        (GraphicsLayerBlackBerry):
67795        * platform/graphics/blackberry/LayerCompositingThread.h:
67796        (WebCore::LayerCompositingThread::setBoundsOrigin):
67797        * platform/graphics/blackberry/LayerData.h:
67798        (WebCore::LayerData::boundsOrigin):
67799        (LayerData):
67800        * platform/graphics/blackberry/LayerRenderer.cpp:
67801        (WebCore::LayerRenderer::updateLayersRecursive):
67802        * platform/graphics/blackberry/LayerWebKitThread.h:
67803        (WebCore::LayerWebKitThread::setBoundsOrigin):
67804        (LayerWebKitThread):
67805
678062012-08-08  Nate Chapin  <japhet@chromium.org>
67807
67808        [chromium] Upstream android's FlingAnimator
67809        https://bugs.webkit.org/show_bug.cgi?id=92900
67810
67811        Reviewed by James Robinson.
67812
67813        No new tests yet, will be added once this code is called.
67814
67815        * WebCore.gypi:
67816        * platform/chromium/support/PlatformGestureCurveFactory.cpp: Added.
67817        (WebKit):
67818        (WebKit::PlatformGestureCurveFactory::get):
67819        (WebKit::PlatformGestureCurveFactory::createCurve):
67820        (WebKit::PlatformGestureCurveFactory::setWebFlingAnimatorForTest):
67821        * platform/chromium/support/PlatformGestureCurveFactory.h: Added.
67822        (WebKit):
67823        (PlatformGestureCurveFactory):
67824        * platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Added.
67825        (WebKit):
67826        (WebFlingAnimatorToGestureCurveAdapter):
67827        (WebKit::WebFlingAnimatorToGestureCurveAdapter::create):
67828        (WebKit::WebFlingAnimatorToGestureCurveAdapter::WebFlingAnimatorToGestureCurveAdapter):
67829
678302012-08-08  Anna Cavender  <annacc@chromium.org>
67831
67832        Update HTMLMediaElement to the new OO MediaSource API.
67833        https://bugs.webkit.org/show_bug.cgi?id=91775
67834
67835        Reviewed by Eric Carlson.
67836
67837        This patch rips out the old-style MediaSource API and allows a
67838        MediaSource object to be attached to HTMLMediaElement.
67839        http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
67840
67841        Tests: updates to http/tests/media/media-source/*
67842               http/tests/media/media-source/video-media-source-add-and-remove-buffers.html
67843               http/tests/media/media-source/video-media-source-objects.html
67844
67845        * html/HTMLMediaElement.cpp:
67846        (WebCore):
67847        (WebCore::HTMLMediaElement::HTMLMediaElement): Remove old style API resources.
67848        (WebCore::HTMLMediaElement::parseAttribute): Remove old style event attribute.
67849        (WebCore::HTMLMediaElement::prepareForLoad): Set source state to "closed".
67850        (WebCore::HTMLMediaElement::loadResource): Get MediaSource object from blob registry
67851            look up and, if found, set it's MediaPlayer pointer to the current MediaPlayer.
67852        (WebCore::HTMLMediaElement::noneSupported): Set source state to "closed".
67853        (WebCore::HTMLMediaElement::mediaEngineError): Set source state to "closed".
67854        (WebCore::HTMLMediaElement::mediaPlayerSourceOpened): Set source state to "open".
67855        (WebCore::HTMLMediaElement::mediaPlayerSourceURL): Change to new blob URL.
67856        (WebCore::HTMLMediaElement::seek): Check if source state is "closed".
67857        (WebCore::HTMLMediaElement::setSourceState): Helper function so that we don't have to
67858            keep checking for m_mediaSource.
67859        (WebCore::HTMLMediaElement::userCancelledLoad): Set source state to "closed".
67860        (WebCore::HTMLMediaElement::createMediaPlayer): If the current MediaPlayer is re-
67861             created, notify the MediaSource and reset its MediaPlayer.
67862
67863        * html/HTMLMediaElement.h: Remove old style API code and add a MediaSource object.
67864        (HTMLMediaElement):
67865        * html/HTMLMediaElement.idl: Remove old style API.
67866
678672012-08-08  Dean Jackson  <dino@apple.com>
67868
67869        Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/125051
67870
67871        * platform/mac/ClipboardMac.mm:
67872
678732012-08-08  Xan Lopez  <xlopez@igalia.com>
67874
67875        Evolution, empathy no longer build with webkint 1.9.6:  webkit_dom_html_element_set_class_name is gone
67876        https://bugs.webkit.org/show_bug.cgi?id=93384
67877
67878        Reviewed by Adam Barth.
67879
67880        Provide custom backwards compatibility wrappers for HTMLElement
67881        className accessors, since the attribute was moved to Element. The
67882        previous fix attempted to define the attribute twice (once in each
67883        class), but this is wrong, just provide again the old accessors
67884        making them forward to the new methods.
67885
67886        * bindings/gobject/WebKitDOMCustom.cpp:
67887        (webkit_dom_html_element_get_class_name): provide again
67888        get_class_name for backwards compatibility.
67889        (webkit_dom_html_element_set_class_name): provide again
67890        set_class_name for backwards compatibility.
67891        * bindings/gobject/WebKitDOMCustom.h: ditto.
67892        * html/HTMLElement.idl: remove the className attribute
67893        definition. Since it's already present in Element this will break
67894        our bindings.
67895
678962012-08-07  Ojan Vafai  <ojan@chromium.org>
67897
67898        percentage height/width values in quirks mode are incorrectly resolved in flexbox children
67899        https://bugs.webkit.org/show_bug.cgi?id=81809
67900
67901        Reviewed by Tony Chang.
67902
67903        When computing percentage logical heights we need to use the RenderBox helper methods
67904        to make sure we handle all the edge cases correctly (e.g. walk up the containing block
67905        ancestor chain in quirks mode until we find a definite size).
67906
67907        For widths, the containing block always has a definite size, so all we need to do
67908        is call computeContentBoxLogicalWidth(valueForLength(...)), although I'm not sure
67909        this does the right thing for the intrinsic sizing keywords.
67910
67911        Tests: css3/flexbox/box-sizing-min-max-sizes.html
67912               css3/flexbox/percentage-sizes-quirks.html
67913               css3/flexbox/percentage-sizes.html
67914
67915        * rendering/RenderBox.cpp:
67916        (WebCore::RenderBox::computeLogicalClientHeight):
67917        (WebCore):
67918        * rendering/RenderBox.h:
67919        (RenderBox):
67920        * rendering/RenderFlexibleBox.cpp:
67921        (WebCore::RenderFlexibleBox::computeMainAxisSizeForChild):
67922        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
67923        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
67924        * rendering/RenderFlexibleBox.h:
67925
679262012-08-08  Andrew Scherkus  <scherkus@chromium.org>
67927
67928        Fire suspend event whenever network state is set to NETWORK_IDLE.
67929        https://bugs.webkit.org/show_bug.cgi?id=93052
67930
67931        Reviewed by Eric Carlson.
67932
67933        There was a regression in the Chromium port (http://crbug.com/139511) that revealed we didn't
67934        have a layout test for suspend events. Upon further investigation it appeared we also had a bug
67935        where we didn't fire the suspend event when a media engine reported they had completely loaded
67936        the media.
67937
67938        Covered by new test http/tests/media/video-load-suspend.html.
67939
67940        * html/HTMLMediaElement.cpp: Move firing of suspend event to changeNetworkStateFromLoadingToIdle
67941        (WebCore::HTMLMediaElement::setNetworkState):
67942        (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
67943
679442012-08-08  Tom Sepez  <tsepez@chromium.org>
67945
67946        Video element image loader must persist after element detach.  
67947        https://bugs.webkit.org/show_bug.cgi?id=90801
67948
67949        Reviewed by Eric Carlson.
67950
67951        We rely on the OwnPtr in the element to cleanup the loader.     
67952
67953        Test: fast/dom/beforeload/remove-video-poster-in-beforeload-listener.html
67954
67955        * html/HTMLVideoElement.cpp:
67956        (WebCore):
67957        * html/HTMLVideoElement.h:
67958        (HTMLVideoElement):
67959
679602012-08-08  Nikhil Bhargava  <nbhargava@google.com>
67961
67962        Improve RenderObject.h compile time - split CachedImage and CachedImageClient
67963        https://bugs.webkit.org/show_bug.cgi?id=93400
67964
67965        Reviewed by Eric Seidel.
67966
67967        Splits loader/cache/CachedImage.h into two files. The remaining changes are to repair existing #includes
67968
67969        No new tests. No changes to existing functions/functionality.
67970
67971        * css/CSSCrossfadeValue.h:
67972        * loader/ImageLoader.h:
67973        * loader/cache/CachedImage.cpp:
67974        * loader/cache/CachedImage.h:
67975        (WebCore):
67976        * loader/cache/CachedImageClient.h: Added.
67977        (WebCore):
67978        (CachedImageClient):
67979        (WebCore::CachedImageClient::~CachedImageClient):
67980        (WebCore::CachedImageClient::expectedType):
67981        (WebCore::CachedImageClient::resourceClientType):
67982        (WebCore::CachedImageClient::imageChanged):
67983        (WebCore::CachedImageClient::willRenderImage):
67984        * platform/chromium/ClipboardChromium.h:
67985        * rendering/RenderObject.h:
67986        (WebCore):
67987        * rendering/style/StyleCachedImage.cpp:
67988        * rendering/style/StyleCachedImage.h:
67989        (WebCore):
67990        * rendering/style/StyleCachedImageSet.h:
67991        * svg/graphics/SVGImage.cpp:
67992
679932012-08-08  Dan Bernstein  <mitz@apple.com>
67994
67995        REGRESSION (r123171): <svg> element with intrinsic size and max-width gets sized incorrectly
67996        https://bugs.webkit.org/show_bug.cgi?id=93388
67997
67998        Reviewed by Beth Dakin.
67999
68000        Test: svg/css/max-width-3.html
68001
68002        * rendering/RenderReplaced.cpp:
68003        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox): Added code to set
68004        m_intrinsicSize in the no-contentRenderer branch of this function so that the calls to
68005        RenderBox::computeReplacedLogical{Height,Width} in the end use the right intrinsic size.
68006        This is similar to what the contentRenderer branch of this function already does.
68007
680082012-08-08  Keishi Hattori  <keishi@webkit.org>
68009
68010        Make slider tick mark snapping threshold configurable for each platform
68011        https://bugs.webkit.org/show_bug.cgi?id=93429
68012
68013        Reviewed by Kent Tamura.
68014
68015        This makes the slider tick mark snapping threshold configurable for each platform.
68016        And we increase the threshold for the Chromium port.
68017
68018        No new tests. Covered by range-snap-to-datalist.html.
68019
68020        * html/shadow/SliderThumbElement.cpp:
68021        (WebCore::SliderThumbElement::setPositionFromPoint):
68022        * rendering/RenderTheme.cpp:
68023        (WebCore::RenderTheme::sliderTickSnappingThreshold):
68024        (WebCore):
68025        * rendering/RenderTheme.h:
68026        (RenderTheme):
68027        (WebCore::RenderTheme::sliderTickSnappingThreshold): Returns the threshold distance to the tick mark for snapping to occur.
68028        * rendering/RenderThemeChromiumCommon.cpp:
68029        (WebCore::RenderThemeChromiumCommon::sliderTickSnappingThreshold):
68030        (WebCore):
68031        * rendering/RenderThemeChromiumCommon.h:
68032        (RenderThemeChromiumCommon):
68033        * rendering/RenderThemeChromiumMac.h:
68034        * rendering/RenderThemeChromiumMac.mm:
68035        (WebCore):
68036        (WebCore::RenderThemeChromiumMac::sliderTickSnappingThreshold):
68037        * rendering/RenderThemeChromiumSkia.cpp:
68038        (WebCore):
68039        (WebCore::RenderThemeChromiumSkia::sliderTickSnappingThreshold):
68040        * rendering/RenderThemeChromiumSkia.h:
68041
680422012-08-08  Mike West  <mkwst@chromium.org>
68043
68044        Until CSP fully supports paths, we should log a warning if we encounter a source with a path.
68045        https://bugs.webkit.org/show_bug.cgi?id=93468
68046
68047        Reviewed by Adam Barth.
68048
68049        CSP 1.0 ignores path components of sources in directives' source lists.
68050        'script-src http://example.com/path/to/directory' is treated exactly the
68051        same as 'script-src http://example.com'. It's likely that this behavior
68052        will change in CSP 1.1, which could break with developers' expectations.
68053        This patch adds a warning when a path is encountered, alerting
68054        developers to the fact that their current source is interpreted
68055        differently than they might expect.
68056
68057        See http://crbug.com/128493 for additional context and discussion.
68058
68059        Tests for this change are covered by updating the existing Content
68060        Security Policy tests to include the new console warnings.
68061
68062        * page/ContentSecurityPolicy.cpp:
68063        (CSPSourceList):
68064        (WebCore::CSPSourceList::CSPSourceList):
68065            Passing the directive name down into CSPSourceList so that we can
68066            generate informative error messages.
68067        (WebCore::CSPSourceList::parse):
68068            Create a 'path' string, pass it into 'parseSource', and use it after
68069            parsing each source to determine whether a warning should be sent.
68070        (WebCore::CSPSourceList::parseSource):
68071            Adding a 'path' argument so that we can see whether or not a
68072            specific source should generate a warning.
68073        (WebCore::CSPDirective::CSPDirective):
68074            Passing the directive name down into CSPSourceList so that we can
68075            generate informative error messages.
68076        (WebCore::ContentSecurityPolicy::reportIgnoredPathComponent):
68077            Generate the new warning message.
68078        (WebCore):
68079        * page/ContentSecurityPolicy.h:
68080
680812012-08-08  Pavel Feldman  <pfeldman@chromium.org>
68082
68083        Web Inspector: generate preview for the objects dumped into the console upon logging.
68084        https://bugs.webkit.org/show_bug.cgi?id=35801
68085
68086        Reviewed by Vsevolod Vlasov.
68087
68088        As of today, dumping an object (array) into console will result in objects' properties being
68089        read upon console object expansion (i.e. lazily). This means that dumping the same object while
68090        mutating it will be hard to debug using the console.
68091
68092        This change starts generating abbreviated previews for objects / arrays at the moment of their
68093        logging and passes this information along into the front-end. This only happens when the front-end
68094        is already opened, it only works for console.log(), not live console interaction.
68095
68096        Covered by the existing console tests + collections test has been expanded to capture both: pre and post-
68097        front-end opening scenarios.
68098
68099        * inspector/ConsoleMessage.cpp:
68100        (WebCore::ConsoleMessage::addToFrontend):
68101        * inspector/ConsoleMessage.h:
68102        (ConsoleMessage):
68103        * inspector/InjectedScript.cpp:
68104        (WebCore::InjectedScript::wrapObject):
68105        * inspector/InjectedScript.h:
68106        (InjectedScript):
68107        * inspector/InjectedScriptSource.js:
68108        (.):
68109        * inspector/Inspector.json:
68110        * inspector/InspectorConsoleAgent.cpp:
68111        (WebCore::InspectorConsoleAgent::enable):
68112        (WebCore::InspectorConsoleAgent::addConsoleMessage):
68113        * inspector/front-end/ConsoleMessage.js:
68114        (WebInspector.ConsoleMessageImpl.prototype._format):
68115        (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
68116        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
68117        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
68118        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
68119        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
68120        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
68121        (WebInspector.ConsoleMessageImpl.prototype._printArray):
68122        (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
68123        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
68124        * inspector/front-end/DOMExtension.js:
68125        (Element.prototype.createTextChild):
68126        * inspector/front-end/ObjectPropertiesSection.js:
68127        (WebInspector.ObjectPropertiesSection):
68128        * inspector/front-end/PropertiesSection.js:
68129        * inspector/front-end/RemoteObject.js:
68130        (WebInspector.RemoteObject):
68131        (WebInspector.RemoteObject.fromPayload):
68132        (WebInspector.RemoteObject.prototype.get previewProperties):
68133        * inspector/front-end/Section.js:
68134        * inspector/front-end/inspector.css:
68135        (.console-group-messages .section .header .title):
68136        (.section .console-formatted-node):
68137        (.console-object-preview):
68138        (.section .properties .name, .event-properties .name, .console-formatted-object .name):
68139
681402012-07-31  Philippe Normand  <pnormand@igalia.com>
68141
68142        [GStreamer] media/media-continues-playing-after-replace-source.html fails
68143        https://bugs.webkit.org/show_bug.cgi?id=86310
68144
68145        Reviewed by Eric Carlson.
68146
68147        Reset the player's network and ready states, this allows the media
68148        player client to potentially emit a timeupdate event while the new
68149        location is being loaded. States are synchronized again after the
68150        pipeline pre-rolled.
68151
68152        No new tests but fixes
68153        media/media-continues-playing-after-replace-source.html
68154
68155        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
68156        (WebCore::MediaPlayerPrivateGStreamer::load):
68157
681582012-08-08  Alexandru Chiculita  <achicu@adobe.com>
68159
68160        [Chromium] Skia assert triggered by custom filter unmultiplied results
68161        https://bugs.webkit.org/show_bug.cgi?id=92758
68162
68163        Reviewed by Dean Jackson.
68164
68165        The FECustomFilter (which renders the CSS Shaders) used premultiplied colors for both input and ouput.
68166        The problem with that is that some shaders do not pre-multiply the values and the reality is that
68167        we cannot trust the shader to do that. The easy way would be to use only unpremultiplied colors and do the
68168        computation in C++ code. This will be changed when the mix blending is implemented to do that in the shader itself. 
68169
68170        No new tests, just updated existing tests to take unpremultiplied colors instead.
68171
68172        * platform/graphics/filters/FECustomFilter.cpp:
68173        (WebCore::FECustomFilter::platformApplySoftware):
68174
681752012-08-08  Philippe Normand  <pnormand@igalia.com>
68176
68177        Unreviewed, build fix after r125041.
68178
68179        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
68180        (StreamingClient::didReceiveResponse): Fix arguments order of the
68181        notifyGstTagsOnPad() call.
68182
681832012-08-08  Vineet Chaudhary  <rgf748@motorola.com>
68184
68185        Remove All Custom binding code for TypedArray.
68186        https://bugs.webkit.org/show_bug.cgi?id=93371
68187
68188        Reviewed by Kentaro Hara.
68189
68190        Removing Custom bindings completely with help of [TypedArray] attribute.
68191
68192        Tests: TestTypedArray.idl
68193        There should not be any behavioral change and all tests should pass.
68194
68195        * GNUmakefile.list.am: Removed Custom files.
68196        * Target.pri: Ditto.
68197        * UseJSC.cmake: Ditto.
68198        * UseV8.cmake: Ditto.
68199        * WebCore.gypi: Ditto.
68200        * WebCore.xcodeproj/project.pbxproj: Ditto.
68201        * bindings/js/JSBindingsAllInOne.cpp: Ditto.
68202        * bindings/js/JSFloat32ArrayCustom.cpp: Removed.
68203        * bindings/js/JSFloat64ArrayCustom.cpp: Removed.
68204        * bindings/js/JSInt16ArrayCustom.cpp: Removed.
68205        * bindings/js/JSInt32ArrayCustom.cpp: Removed.
68206        * bindings/js/JSInt8ArrayCustom.cpp: Removed.
68207        * bindings/js/JSUint16ArrayCustom.cpp: Removed.
68208        * bindings/js/JSUint32ArrayCustom.cpp: Removed.
68209        * bindings/js/JSUint8ArrayCustom.cpp: Removed.
68210        * bindings/js/JSUint8ClampedArrayCustom.cpp: Removed.
68211        * bindings/scripts/CodeGeneratorCPP.pm:
68212        (GenerateHeader): Skip implementaion for TypedArray.
68213        (GenerateImplementation): Skip implementaion for TypedArray.
68214        * bindings/scripts/CodeGeneratorGObject.pm:
68215        (GenerateFunction): Skip implementaion for TypedArray.
68216        * bindings/scripts/CodeGeneratorJS.pm:
68217        (GenerateImplementation): Generates binding for set() call.
68218        (GenerateConstructorDefinition): ConstructorTemplate implementation for TypedArray.
68219        * bindings/scripts/CodeGeneratorObjC.pm:
68220        (GenerateHeader): Skip implementaion for TypedArray.
68221        (GenerateImplementation): Skip implementaion for TypedArray.
68222        * bindings/scripts/CodeGeneratorV8.pm:
68223        (GenerateFunctionCallback): Generates binding for setCallback().
68224        (GenerateTypedArrayConstructorCallback): Generates binding for constructorCallback().
68225        (GenerateImplementation):
68226        * bindings/scripts/IDLAttributes.txt: Support ConstructorTemplate for TypedArray as well.
68227        * bindings/scripts/test/JS/JSFloat64Array.cpp: Binding tests results.
68228        (WebCore::toJS):
68229        (WebCore::JSFloat64Array::indexSetter):
68230        (WebCore::JSFloat64ArrayConstructor::getConstructData):
68231        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
68232        (WebCore::jsFloat64ArrayPrototypeFunctionSet):
68233        * bindings/scripts/test/JS/JSFloat64Array.h: Binding tests results.
68234        * bindings/scripts/test/TestTypedArray.idl: Binding tests.
68235        * bindings/scripts/test/V8/V8Float64Array.cpp: Binding tests results.
68236        (WebCore::Float64ArrayV8Internal::setCallback):
68237        (Float64ArrayV8Internal):
68238        (WebCore):
68239        (WebCore::V8Float64Array::constructorCallback):
68240        (WebCore::ConfigureV8Float64ArrayTemplate):
68241        * bindings/v8/custom/V8Float32ArrayCustom.cpp: Removed.
68242        * bindings/v8/custom/V8Float64ArrayCustom.cpp: Removed.
68243        * bindings/v8/custom/V8Int16ArrayCustom.cpp: Removed.
68244        * bindings/v8/custom/V8Int32ArrayCustom.cpp: Removed.
68245        * bindings/v8/custom/V8Int8ArrayCustom.cpp: Removed.
68246        * bindings/v8/custom/V8Uint16ArrayCustom.cpp: Removed.
68247        * bindings/v8/custom/V8Uint32ArrayCustom.cpp: Removed.
68248        * bindings/v8/custom/V8Uint8ArrayCustom.cpp: Removed.
68249        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: Removed.
68250        * html/canvas/Float32Array.idl: Using [ConstructorTemplate = TypedArray] instead of custom implementaion.
68251        * html/canvas/Float64Array.idl: Ditto.
68252        * html/canvas/Int16Array.idl: Ditto.
68253        * html/canvas/Int32Array.idl: Ditto.
68254        * html/canvas/Int8Array.idl: Ditto.
68255        * html/canvas/Uint16Array.idl: Ditto.
68256        * html/canvas/Uint32Array.idl: Ditto.
68257        * html/canvas/Uint8Array.idl: Ditto.
68258        * html/canvas/Uint8ClampedArray.idl: Ditto.
68259
682602012-08-08  Philippe Normand  <pnormand@igalia.com>
68261
68262        [GStreamer] 0.11 build broken (again)
68263        https://bugs.webkit.org/show_bug.cgi?id=93474
68264
68265        Reviewed by Martin Robinson.
68266
68267        Adapt the GStreamer media player backend to the latest GStreamer
68268        0.11 API changes.
68269
68270        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
68271        (WTF::adoptGRef):
68272        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
68273        (gstObjectIsFloating):
68274        * platform/graphics/gstreamer/GStreamerVersioning.h:
68275        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
68276        (StreamingClient::didReceiveResponse):
68277
682782012-08-08  Loïc Yhuel  <loic.yhuel@softathome.com>
68279
68280        [Qt] Compile errors with OpenGLES2
68281        https://bugs.webkit.org/show_bug.cgi?id=93206
68282
68283        Reviewed by Noam Rosenthal.
68284
68285        Fix build with OpenGLES2 on Linux desktop
68286
68287        * platform/graphics/OpenGLESShims.h: removed unused define conflicting with gl2ext.h from ANGLE
68288
682892012-08-08  Pavel Feldman  <pfeldman@chromium.org>
68290
68291        Web Inspector: store last evaluation result in $_
68292        https://bugs.webkit.org/show_bug.cgi?id=93377
68293
68294        Reviewed by Vsevolod Vlasov.
68295
68296        All "console" evaluations end up in that variable on command line API.
68297
68298        Test: inspector/console/console-last-result.html
68299
68300        * inspector/InjectedScriptSource.js:
68301        (.):
68302
683032012-08-08  Simon Hausmann  <simon.hausmann@nokia.com>
68304
68305        [Qt] Port internal findMethodIndex method matcher to use JSC C API
68306        https://bugs.webkit.org/show_bug.cgi?id=93463
68307
68308        Reviewed by Kenneth Rohde Christiansen.
68309
68310        Based on patch by No'am Rosenthal.
68311
68312        * bridge/qt/qt_runtime.cpp:
68313        (JSC::Bindings::setException):
68314        (Bindings):
68315        (JSC::Bindings::findMethodIndex): Fixed also coding style while at it.
68316        (JSC::Bindings::QtRuntimeMetaMethod::call): Use new findMethodIndex. The
68317        created JSValueRefs should not need GC protection because we only support
68318        up to 10 method arguments and thus they will live on the stack storage
68319        of the vector.
68320        * bridge/qt/qt_runtime.h:
68321        (Bindings):
68322
683232012-08-08  Alexander Pavlov  <apavlov@chromium.org>
68324
68325        Web Inspector: move setTouchEventEmulationEnabled from DOMAgent to PageAgent
68326        https://bugs.webkit.org/show_bug.cgi?id=93437
68327
68328        Reviewed by Pavel Feldman.
68329
68330        * inspector/Inspector.json:
68331        * inspector/InspectorDOMAgent.cpp:
68332        (WebCore::InspectorDOMAgent::clearFrontend):
68333        (WebCore::InspectorDOMAgent::restore):
68334        * inspector/InspectorDOMAgent.h:
68335        (InspectorDOMAgent):
68336        * inspector/InspectorPageAgent.cpp:
68337        (PageAgentState):
68338        (WebCore::InspectorPageAgent::clearFrontend):
68339        (WebCore::InspectorPageAgent::restore):
68340        (WebCore):
68341        (WebCore::InspectorPageAgent::updateTouchEventEmulationInPage):
68342        (WebCore::InspectorPageAgent::setTouchEmulationEnabled):
68343        * inspector/InspectorPageAgent.h:
68344        * inspector/front-end/DOMAgent.js:
68345        (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
68346
683472012-08-08  Alexis Menard  <alexis.menard@openbossa.org>
68348
68349        Unreviewed build fix for Qt on Linux.
68350
68351        * platform/qt/GamepadsQt.cpp:
68352
683532012-08-08  KwangYong Choi  <ky0.choi@samsung.com>
68354
68355        [EFL] Support DataList for <input type="range">
68356        https://bugs.webkit.org/show_bug.cgi?id=92634
68357
68358        Reviewed by Kenneth Rohde Christiansen.
68359
68360        DataList theme for EFL is implemented. DataList feature of
68361        <input type="range"> is supported.
68362
68363        Test: fast/forms/datalist/input-list.html
68364
68365        * platform/efl/RenderThemeEfl.cpp:
68366        (WebCore::RenderThemeEfl::paintSliderTrack):
68367        (WebCore::RenderThemeEfl::sliderTickSize):
68368        (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
68369        (WebCore::RenderThemeEfl::supportsDataListUI):
68370        (WebCore):
68371        * platform/efl/RenderThemeEfl.h:
68372        (RenderThemeEfl):
68373
683742012-08-08  Sergey Rogulenko  <rogulenko@google.com>
68375
68376        Web Inspector: renaming DOMNodeHighlighter to InspectorOverlay
68377        https://bugs.webkit.org/show_bug.cgi?id=93253
68378
68379        Reviewed by Pavel Feldman.
68380
68381        Renaming DOMNodeHighlighter to InspectorOverlay where necessary.
68382
68383        * CMakeLists.txt:
68384        * GNUmakefile.list.am:
68385        * Target.pri:
68386        * WebCore.gypi:
68387        * WebCore.vcproj/WebCore.vcproj:
68388        * WebCore.xcodeproj/project.pbxproj:
68389        * inspector/InspectorAllInOne.cpp:
68390        * inspector/InspectorController.cpp:
68391        * inspector/InspectorDOMAgent.cpp:
68392        * inspector/InspectorDOMAgent.h:
68393        * inspector/InspectorOverlay.cpp: Renamed from Source/WebCore/inspector/DOMNodeHighlighter.cpp.
68394        (WebCore::InspectorOverlay::InspectorOverlay):
68395        (WebCore):
68396        (WebCore::InspectorOverlay::paint):
68397        (WebCore::InspectorOverlay::drawOutline):
68398        (WebCore::InspectorOverlay::getHighlight):
68399        (WebCore::InspectorOverlay::setPausedInDebuggerMessage):
68400        (WebCore::InspectorOverlay::hideHighlight):
68401        (WebCore::InspectorOverlay::highlightNode):
68402        (WebCore::InspectorOverlay::highlightRect):
68403        (WebCore::InspectorOverlay::highlightedNode):
68404        (WebCore::InspectorOverlay::update):
68405        (WebCore::InspectorOverlay::drawNodeHighlight):
68406        (WebCore::InspectorOverlay::drawRectHighlight):
68407        (WebCore::InspectorOverlay::drawPausedInDebugger):
68408        * inspector/InspectorOverlay.h: Renamed from Source/WebCore/inspector/DOMNodeHighlighter.h.
68409        (WebCore):
68410        (HighlightConfig):
68411        (WebCore::Highlight::setColors):
68412        (Highlight):
68413        (InspectorOverlay):
68414        (WebCore::InspectorOverlay::create):
68415        * inspector/InspectorPageAgent.cpp:
68416        * inspector/PageDebuggerAgent.cpp:
68417        * page/GestureTapHighlighter.h:
68418        * testing/Internals.cpp:
68419
684202012-08-08  Chris Guan  <chris.guan@torchmobile.com.cn>
68421
68422        [Blackberry] missing a Multipart header when m_multipartResponse is null
68423        https://bugs.webkit.org/show_bug.cgi?id=93440
68424
68425        Reviewed by George Staikos.
68426
68427        when m_multipartResponse is null, we just created new one but not called 
68428        setHTTPHeaderField. So we missed this received multipart Header. We should 
68429        call setHTTPHeaderField for each reveived header.
68430
68431        No new tests, because those current multipart test cases (http/tests/multipart/*) 
68432        are enough.
68433
68434        * platform/network/blackberry/NetworkJob.cpp:
68435        (WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
68436
684372012-08-08  Mike West  <mkwst@chromium.org>
68438
68439        Refactor console logging out of CSPDirectiveList into ContentSecurityPolicy
68440        https://bugs.webkit.org/show_bug.cgi?id=93205
68441
68442        Reviewed by Adam Barth.
68443
68444        We currently pass a protected resource's ScriptExecutionContext down
68445        into CSPDirectiveList in order to log errors, grab the SecurityOrigin,
68446        resolve relative URLs, and one or two other bits. This implementation
68447        requires us to maintain state inside of low-level objects that shouldn't
68448        really know about the ScriptExecutionContext, and makes logging errors
68449        difficult, as CSPDirectiveList is the only piece of the puzzle that can
68450        interact with the console.
68451
68452        This patch removes the dependence on ScriptExecutionContext, replacing
68453        it with a pointer to the ContentSecurityPolicy object itself. The low-
68454        level objects like CSPDirectiveList now make requests to the policy
68455        object, which understands how to resolve them. This gives a cleaner
68456        separation between the CSP implementation and the rest of WebCore, and
68457        opens the door for future patches that teach the remaining low-level
68458        objects about the policy in which they're contained in order to improve
68459        error logging.
68460
68461        This should be a purely internal refactoring of the location from which
68462        warnings are logged to the console. No new tests have been added; the
68463        behavior should be covered by the existing CSP tests.
68464
68465        * page/ContentSecurityPolicy.cpp:
68466        (CSPSourceList):
68467        (WebCore::CSPSourceList::CSPSourceList):
68468            Pass the policy object into CSPSourceList, rather than a pointer to
68469            ScriptExecutionContext.
68470        (WebCore::CSPSourceList::parse):
68471        (WebCore::CSPSourceList::addSourceSelf):
68472            Read the SecurityOrigin from the policy object, rather than from the
68473            ScriptExecutionContext.
68474        (WebCore::CSPDirective::CSPDirective):
68475            Pass the policy object into CSPDirective, rather than a pointer to
68476            ScriptExecutionContext. Use it to read the protected resource's
68477            URL.
68478        (CSPDirectiveList):
68479        (WebCore::CSPDirectiveList::CSPDirectiveList):
68480            Pass the policy object into CSPSourceList, rather than a pointer to
68481            ScriptExecutionContext.
68482        (WebCore::CSPDirectiveList::create):
68483            Move the enforcement of eval restrictions out of CSPDirectiveList,
68484            and into ContentSecurityPolicy::ContentSecurityPolicy.
68485        (WebCore::CSPDirectiveList::reportViolation):
68486            Move most of the logic out of this method, and into
68487            ContentSecurityPolicy::reportViolation.
68488        (WebCore::CSPDirectiveList::parseDirective):
68489            Use the policy object for logging.
68490        (WebCore::CSPDirectiveList::parseReportURI):
68491            Use the policy object for logging, and URL completion.
68492        (WebCore::CSPDirectiveList::parseScriptNonce):
68493            Use the policy object for logging.
68494        (WebCore::CSPDirectiveList::setCSPDirective):
68495            Use the policy object for logging.
68496        (WebCore::CSPDirectiveList::applySandboxPolicy):
68497            Use the policy object for logging, and move enforcement to
68498            ContentSecurityPolicy::enforceSandboxFlags.
68499        (WebCore::CSPDirectiveList::addDirective):
68500            Use the policy object for logging.
68501        (WebCore::ContentSecurityPolicy::didReceiveHeader):
68502            Pass the policy object to CSPDirectiveList, and disable eval if
68503            necessary after parsing the policy.
68504        (WebCore::ContentSecurityPolicy::securityOrigin):
68505        (WebCore):
68506        (WebCore::ContentSecurityPolicy::url):
68507        (WebCore::ContentSecurityPolicy::completeURL):
68508        (WebCore::ContentSecurityPolicy::enforceSandboxFlags):
68509            Move the enforcement of the sandbox directive out of
68510            CSPDirectiveList and into the policy object.
68511        (WebCore::ContentSecurityPolicy::reportViolation):
68512        (WebCore::ContentSecurityPolicy::reportUnrecognizedDirective):
68513        (WebCore::ContentSecurityPolicy::reportDuplicateDirective):
68514        (WebCore::ContentSecurityPolicy::reportInvalidNonce):
68515            Move CSPDirectiveList::logXXX out to the policy object. The
68516            directive list is now responsible for reporting errors and
68517            violations; the policy decides what to do with them.
68518        (WebCore::ContentSecurityPolicy::logToConsole):
68519            Wrap the call to addConsoleMessage to make it simpler for the
68520            various ContentSecurityPolicy::reportXXX methods.
68521        * page/ContentSecurityPolicy.h:
68522        (WebCore):
68523
685242012-08-08  Kentaro Hara  <haraken@chromium.org>
68525
68526        [V8] Rename V8Helpers to V8BindingHelpers
68527        https://bugs.webkit.org/show_bug.cgi?id=93318
68528
68529        Reviewed by Eric Seidel.
68530
68531        For naming consistency, a file including binding utility methods
68532        should be prefixed by "V8Binding". In a follow-up patch, I'll move
68533        methods from V8Binding to V8BindingHelpers.
68534
68535        In addition this patch makes V8Binding.h include V8BindingHelpers.h,
68536        and removes #include V8BindingHelpers.h from binding files.
68537
68538        No tests. No change in behavior.
68539
68540        * UseV8.cmake:
68541        * WebCore.gypi:
68542        * bindings/v8/NPV8Object.cpp:
68543        * bindings/v8/V8BindingHelpers.cpp: Renamed from Source/WebCore/bindings/v8/V8Helpers.cpp.
68544        (WebCore):
68545        (WebCore::toV8Context):
68546        (WebCore::toV8Proxy):
68547        * bindings/v8/V8BindingHelpers.h: Renamed from Source/WebCore/bindings/v8/V8Helpers.h.
68548        (WebCore):
68549        * bindings/v8/V8NPObject.cpp:
68550
685512012-08-08  Kentaro Hara  <haraken@chromium.org>
68552
68553        'class WrapperTypeInfo' should be 'struct WrapperTypeInfo'
68554
68555        Unreviewed. Build fix for r125015.
68556
68557        * bindings/v8/V8BindingPerIsolateData.h:
68558        (WebCore):
68559
685602012-08-08  Matt Arsenault  <arsenm2@gmail.com>
68561
68562        Crash when inspecting an element with border-image
68563        https://bugs.webkit.org/show_bug.cgi?id=93380
68564
68565        Reviewed by Tim Horton.
68566
68567        The second value in the CSSPair should be the same as the first if
68568        we are in a shorthand and the next value is not a
68569        border-image-repeat keyword.
68570
68571        Test: fast/css/parse-border-image-repeat-null-crash.html
68572
68573        * css/CSSParser.cpp:
68574        (WebCore::CSSParser::parseBorderImageRepeat):
68575
685762012-08-08  Kentaro Hara  <haraken@chromium.org>
68577
68578        [V8] Factor out V8BindingPerIsolateData from V8Binding to a separate file
68579        https://bugs.webkit.org/show_bug.cgi?id=93333
68580
68581        Reviewed by Adam Barth.
68582
68583        This patch moves V8BindingPerIsolateData to V8BindingPerIsolateData.{h,cpp}.
68584
68585        To avoid circular #include dependency, I used OwnPtrs for m_stringCache,
68586        m_integerCache, m_hiddenPropertyName and m_gcEventData.
68587
68588        No tests. No change in behavior.
68589
68590        * UseV8.cmake:
68591        * WebCore.gypi:
68592        * bindings/v8/ScriptGCEvent.cpp:
68593        (WebCore::isolateGCEventData):
68594        (WebCore::ScriptGCEvent::addEventListener):
68595        (WebCore::ScriptGCEvent::removeEventListener):
68596        (WebCore::ScriptGCEvent::gcPrologueCallback):
68597        (WebCore::ScriptGCEvent::gcEpilogueCallback):
68598        * bindings/v8/V8Binding.cpp:
68599        * bindings/v8/V8Binding.h:
68600        (GCEventData):
68601        (WebCore):
68602        * bindings/v8/V8BindingPerIsolateData.cpp: Added.
68603        (WebCore):
68604        (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
68605        (WebCore::V8BindingPerIsolateData::~V8BindingPerIsolateData):
68606        (WebCore::V8BindingPerIsolateData::create):
68607        (WebCore::V8BindingPerIsolateData::ensureInitialized):
68608        (WebCore::V8BindingPerIsolateData::dispose):
68609        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
68610        * bindings/v8/V8BindingPerIsolateData.h: Added.
68611        (WebCore):
68612        (V8BindingPerIsolateData):
68613        (WebCore::V8BindingPerIsolateData::current):
68614        (WebCore::V8BindingPerIsolateData::rawTemplateMap):
68615        (WebCore::V8BindingPerIsolateData::templateMap):
68616        (WebCore::V8BindingPerIsolateData::toStringName):
68617        (WebCore::V8BindingPerIsolateData::toStringTemplate):
68618        (WebCore::V8BindingPerIsolateData::lazyEventListenerToStringTemplate):
68619        (WebCore::V8BindingPerIsolateData::stringCache):
68620        (WebCore::V8BindingPerIsolateData::integerCache):
68621        (WebCore::V8BindingPerIsolateData::allStores):
68622        (WebCore::V8BindingPerIsolateData::hiddenPropertyName):
68623        (WebCore::V8BindingPerIsolateData::auxiliaryContext):
68624        (WebCore::V8BindingPerIsolateData::registerDOMDataStore):
68625        (WebCore::V8BindingPerIsolateData::unregisterDOMDataStore):
68626        (WebCore::V8BindingPerIsolateData::domDataStore):
68627        (WebCore::V8BindingPerIsolateData::setDOMDataStore):
68628        (WebCore::V8BindingPerIsolateData::recursionLevel):
68629        (WebCore::V8BindingPerIsolateData::incrementRecursionLevel):
68630        (WebCore::V8BindingPerIsolateData::decrementRecursionLevel):
68631        (WebCore::V8BindingPerIsolateData::globalHandleMap):
68632        (WebCore::V8BindingPerIsolateData::internalScriptRecursionLevel):
68633        (WebCore::V8BindingPerIsolateData::incrementInternalScriptRecursionLevel):
68634        (WebCore::V8BindingPerIsolateData::decrementInternalScriptRecursionLevel):
68635        (WebCore::V8BindingPerIsolateData::gcEventData):
68636        (WebCore::V8BindingPerIsolateData::setShouldCollectGarbageSoon):
68637        (WebCore::V8BindingPerIsolateData::clearShouldCollectGarbageSoon):
68638        (WebCore::V8BindingPerIsolateData::shouldCollectGarbageSoon):
68639
686402012-08-08  Pavel Feldman  <pfeldman@chromium.org>
68641
68642        Web Inspector: show whitespace nodes if they are the only tag's children.
68643        https://bugs.webkit.org/show_bug.cgi?id=93441
68644
68645        Reviewed by Vsevolod Vlasov.
68646
68647        Pass whitespace node info into the front-end when it is the only element's child.
68648
68649        * inspector/InspectorDOMAgent.cpp:
68650        (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
68651
686522012-08-08  Kentaro Hara  <haraken@chromium.org>
68653
68654        [V8] Pass Isolate to ArrayValue and Dictionary
68655        https://bugs.webkit.org/show_bug.cgi?id=93315
68656
68657        Reviewed by Adam Barth.
68658
68659        This patch passes Isolate to ArrayValue and Dictionary.
68660
68661        Rationale 1: We want to replace V8Proxy::throwError(ExceptionCode)
68662        with setDOMException(ExceptionCode, Isolate*). For the replacement,
68663        we need to pass Isolate to V8Utilities::extractTransferables().
68664        To pass Isolate to V8Utilities::extractTransferables(), ( ...omitted... ),
68665        we need to pass Isolate to ArrayValue and Dictionary.
68666
68667        Rationale 2: JSC already passes ExecState to ArrayValue and Dictionary.
68668
68669        Tests: storage/indexeddb/*
68670               fast/files/*
68671
68672        * bindings/scripts/CodeGeneratorV8.pm:
68673        (GenerateEventConstructorCallback):
68674        (JSValueToNative):
68675        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
68676        (WebCore::V8TestEventConstructor::constructorCallback):
68677        * bindings/scripts/test/V8/V8TestObj.cpp:
68678        (WebCore::TestObjV8Internal::optionsObjectCallback):
68679        * bindings/v8/ArrayValue.cpp:
68680        (WebCore::ArrayValue::operator=):
68681        (WebCore::ArrayValue::get):
68682        * bindings/v8/ArrayValue.h:
68683        (WebCore::ArrayValue::ArrayValue):
68684        (ArrayValue):
68685        * bindings/v8/Dictionary.cpp:
68686        (WebCore::Dictionary::Dictionary):
68687        (WebCore::Dictionary::operator=):
68688        (WebCore::Dictionary::get):
68689        * bindings/v8/Dictionary.h:
68690        (Dictionary):
68691        * bindings/v8/custom/V8BlobCustom.cpp:
68692        (WebCore::V8Blob::constructorCallback):
68693        * bindings/v8/custom/V8IntentConstructor.cpp:
68694        (WebCore::V8Intent::constructorCallback):
68695
686962012-08-08  Yury Semikhatsky  <yurys@chromium.org>
68697
68698        Web Inspector: cached images memory instrumentation regression after r124744
68699        https://bugs.webkit.org/show_bug.cgi?id=93366
68700
68701        Reviewed by Vsevolod Vlasov.
68702
68703        CachedImage memory usage data no includes size of both encoded and
68704        decoded data.
68705
68706        Test: inspector/profiler/memory-instrumentation-cached-images.html
68707
68708        * loader/cache/CachedImage.cpp:
68709        (WebCore::CachedImage::reportMemoryUsage):
68710
687112012-08-08  Kentaro Hara  <haraken@chromium.org>
68712
68713        Optimize Element::hasAttribute() by replacing String with AtomicString
68714        https://bugs.webkit.org/show_bug.cgi?id=90273
68715
68716        Reviewed by Adam Barth.
68717
68718        Based on the observation described in this ChangeLog
68719        (http://trac.webkit.org/changeset/121439), this patch optimizes the
68720        performance of Element::hasAttribute() by replacing String with AtomicString.
68721
68722        Performance test: https://bugs.webkit.org/attachment.cgi?id=150144
68723
68724        hasAttribute (Chromium/Linux):
68725        329.60ms => 259.00ms
68726
68727        hasAttributeNS (Chromium/Linux):
68728        549.60ms => 435.80ms
68729
68730        * dom/Element.cpp:
68731        (WebCore::Element::hasAttribute):
68732        (WebCore::Element::hasAttributeNS):
68733        * dom/Element.h:
68734        (Element):
68735
687362012-08-08  Kentaro Hara  <haraken@chromium.org>
68737
68738        Optimize Element::removeAttribute() by replacing String with AtomicString
68739        https://bugs.webkit.org/show_bug.cgi?id=90265
68740
68741        Reviewed by Adam Barth.
68742
68743        Based on the observation described in this ChangeLog
68744        (http://trac.webkit.org/changeset/121439), this patch optimizes
68745        Element::removeAttribute() by replacing String with AtomicString.
68746
68747        Performance test: https://bugs.webkit.org/attachment.cgi?id=150140
68748
68749        removeAttribute (Chromium/Linux):
68750        334.20ms => 240.60ms
68751
68752        removeAttributeNS (Chromium/Linux):
68753        552.80ms => 421.60ms
68754
68755        * dom/Element.cpp:
68756        (WebCore::Element::removeAttribute):
68757        (WebCore::Element::removeAttributeNS):
68758        * dom/Element.h:
68759        (Element):
68760
687612012-08-08  Shinya Kawanaka  <shinyak@chromium.org>
68762
68763        Remove Element::ensureShadowRoot
68764        https://bugs.webkit.org/show_bug.cgi?id=77608
68765
68766        Reviewed by Ryosuke Niwa.
68767
68768        Since Element::ensureShadowRoot is not used anymore, we can remove this safely.
68769
68770        No new tests, no change in behavior.
68771
68772        * WebCore.order:
68773        * dom/Element.cpp:
68774        * dom/Element.h:
68775        (Element):
68776
687772012-08-08  Kentaro Hara  <haraken@chromium.org>
68778
68779        Remove an unused member variable.
68780
68781        Unreviewed, build fix for r124990.
68782
68783        * dom/ContainerNode.h:
68784        (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
68785        (ChildNodesLazySnapshot):
68786
687872012-08-07  Vsevolod Vlasov  <vsevik@chromium.org>
68788
68789        Web Inspector: TabbedPane should use floating point width values for measuring.
68790        https://bugs.webkit.org/show_bug.cgi?id=93349
68791
68792        Reviewed by Pavel Feldman.
68793
68794        TabbedPane now uses getBoundingClientRect().width instead of offsetWidth for more precise calculation.
68795
68796        * inspector/front-end/TabbedPane.js:
68797        (WebInspector.TabbedPane.prototype._totalWidth):
68798        (WebInspector.TabbedPane.prototype._updateTabsDropDown):
68799        (WebInspector.TabbedPane.prototype._measureDropDownButton):
68800        (WebInspector.TabbedPane.prototype._updateWidths):
68801        (WebInspector.TabbedPaneTab.prototype._measure):
68802
688032012-08-08  Douglas Stockwell  <dstockwell@chromium.org>
68804
68805        'highlight' should not be parsed for a composite operation
68806        https://bugs.webkit.org/show_bug.cgi?id=92615
68807
68808        Reviewed by Ryosuke Niwa.
68809
68810        r88144 removed support for highlight as a composite operation but did
68811        not update the parser.
68812
68813        Test: fast/backgrounds/composite-highlight-is-invalid.html
68814
68815        * css/CSSParser.cpp:
68816        (WebCore::CSSParser::parseFillProperty):
68817
688182012-08-08  Takashi Sakamoto  <tasak@google.com>
68819
68820        showNodePath should show the age of ShadowRoot
68821        https://bugs.webkit.org/show_bug.cgi?id=93347
68822
68823        Reviewed by Ryosuke Niwa.
68824
68825        No new tests, because this patch is for fixing a bug of a method for
68826        debugging. If NDEBUG is defined, the method is not compiled.
68827
68828        * dom/Node.cpp:
68829        (WebCore::Node::showNodePathForThis):
68830        Fixed the bug to obtain the oldest shadow root from a shadow root.
68831        oldestShadowRootFor only works for an element node, not for a shadow root.
68832
688332012-08-07  Kent Tamura  <tkent@chromium.org>
68834
68835        Remove fractionDigits argument of WebCore::convertToLocalizedNumber()
68836        https://bugs.webkit.org/show_bug.cgi?id=93435
68837
68838        Reviewed by Kentaro Hara.
68839
68840        Remove the fractionDigits argument of convertToLocalizedNumber because
68841        we don't use it any more. Also, we can remove
68842        parseToDoubleForNumberTypeWithDecimalPlaces() functions, which are used
68843        to obtain the fractionDigits argument.
68844
68845        No new tests because of no behavior changes.
68846
68847        * platform/text/LocalizedNumber.h:
68848        (WebCore): Remove the fractionDigits argument of convertToLocalizedNumber.
68849        * platform/text/LocalizedNumberICU.cpp:
68850        (WebCore::convertToLocalizedNumber): ditto.
68851        * platform/text/LocalizedNumberNone.cpp:
68852        (WebCore::convertToLocalizedNumber): ditto.
68853        * platform/text/mac/LocalizedNumberMac.mm:
68854        (WebCore::convertToLocalizedNumber): ditto.
68855        * platform/text/win/LocalizedNumberWin.cpp:
68856        (WebCore::convertToLocalizedNumber): ditto.
68857
68858        * html/NumberInputType.cpp:
68859        (WebCore::NumberInputType::localizeValue):
68860        Remove the code to make the decimalPlace value.
68861        * html/parser/HTMLParserIdioms.cpp:
68862        Remove parseToDoubleForNumberTypeWithDecimalPlaces.
68863        * html/parser/HTMLParserIdioms.h: ditto.
68864
688652012-08-08  Mario Sanchez Prada  <msanchez@igalia.com>
68866
68867        REGRESSION(r65062): out of bound access in TextIterator (5 editing tests) on GTK
68868        https://bugs.webkit.org/show_bug.cgi?id=63611
68869
68870        Reviewed by Ryosuke Niwa.
68871
68872        Ensure document's layout is up-to-date before using TextIterator
68873        to properly calculate the offset for a text change when emitting
68874        accessibility related signals in GTK.
68875
68876        * accessibility/gtk/AXObjectCacheAtk.cpp:
68877        (WebCore::AXObjectCache::nodeTextChangePlatformNotification): Call
68878        to document->updateLayout() before using TextIterator.
68879
688802012-08-07  Hayato Ito  <hayato@chromium.org>
68881
68882        Unreviewed build fix after http://trac.webkit.org/changeset/124975
68883
68884        Remove assertion introduced in r124975.
68885
68886        * dom/EventDispatcher.cpp:
68887        (WebCore::EventDispatcher::EventDispatcher):
68888        (WebCore::EventDispatcher::dispatchEvent):
68889        * dom/EventDispatcher.h:
68890        (EventDispatcher):
68891
688922012-08-07  Sheriff Bot  <webkit.review.bot@gmail.com>
68893
68894        Unreviewed, rolling out r124969.
68895        http://trac.webkit.org/changeset/124969
68896        https://bugs.webkit.org/show_bug.cgi?id=93436
68897
68898        Causes assertion failure in RenderQueue (Requested by toyoshim
68899        on #webkit).
68900
68901        * rendering/RenderObjectChildList.cpp:
68902        (WebCore::RenderObjectChildList::removeChildNode):
68903        (WebCore::RenderObjectChildList::appendChildNode):
68904        (WebCore::RenderObjectChildList::insertChildNode):
68905        * rendering/RenderQuote.cpp:
68906        (WebCore::adjustDepth):
68907        (WebCore::RenderQuote::RenderQuote):
68908        (WebCore::RenderQuote::~RenderQuote):
68909        (WebCore::RenderQuote::willBeDestroyed):
68910        (WebCore::RenderQuote::renderName):
68911        (WebCore):
68912        (WebCore::RenderQuote::placeQuote):
68913        (WebCore::RenderQuote::originalText):
68914        (WebCore::RenderQuote::computePreferredLogicalWidths):
68915        (WebCore::RenderQuote::rendererSubtreeAttached):
68916        (WebCore::RenderQuote::rendererRemovedFromTree):
68917        (WebCore::RenderQuote::styleDidChange):
68918        * rendering/RenderQuote.h:
68919        (RenderQuote):
68920        (WebCore::RenderQuote::isQuote):
68921        * rendering/RenderView.cpp:
68922        (WebCore::RenderView::RenderView):
68923        * rendering/RenderView.h:
68924        (WebCore):
68925        (RenderView):
68926        (WebCore::RenderView::addRenderQuote):
68927        (WebCore::RenderView::removeRenderQuote):
68928        (WebCore::RenderView::hasRenderQuotes):
68929        * rendering/style/RenderStyle.cpp:
68930        (WebCore::RenderStyle::diff):
68931
689322012-08-07  Kentaro Hara  <haraken@chromium.org>
68933
68934        Optimize ChildNode{Insertion,Removal}Notifier::notify() by lazily taking a snapshot of child nodes
68935        https://bugs.webkit.org/show_bug.cgi?id=92965
68936
68937        Reviewed by Adam Barth.
68938
68939        This patch improves performance of Dromaeo/dom-modify by 8.2% in both Chromium and Safari.
68940
68941        [Mac/Safari]     4590.33 runs/s  =>  4965.79 runs/s  (+8.18%)
68942        [Chromium/Linux] 3970.63 runs/s  =>  4299.65 runs/s  (+8.29%)
68943
68944        notifyDescendantRemovedFromDocument() cannot iterate child nodes in this way:
68945
68946        void notifyDescendantRemovedFromDocument(Node* node) {
68947            for (Node* child = node->firstChild(); child; child = child->nextSibling()) {
68948                ...;
68949                notifyNodeRemovedFromDocument(child);
68950            }
68951        }
68952
68953        This is because notifyNodeRemovedFromDocument(child) might dispatch events
68954        and the events might change child trees. To avoid security issues, the current
68955        code takes a snapshot of child nodes before starting the iteration.
68956
68957        void notifyDescendantRemovedFromDocument(Node* node) {
68958            NodeVector children;
68959            getChildNodes(node, children); // Take a snapshot.
68960            for (int i = 0; i < children.size(); i++) {
68961                ...;
68962                notifyNodeRemovedFromDocument(children[i]);
68963            }
68964        }
68965
68966        Based on the observation that in almost all cases events won't be dispatched
68967        from inside notifyNodeRemovedFromDocument(), this patch implements
68968        a "lazy" snapshot. The snapshot is taken at the point where
68969        EventDispatcher::dispatchEvent() is invoked. The snapshot is not taken unless
68970        any event is dispatched.
68971
68972        No tests. Confirm that all existing tests pass.
68973        Actually, at present there is (should be) no case where an event is
68974        dispatched from inside notifyNodeRemovedFromDocument(). Even DOMNodeInserted
68975        and DOMNodeRemoved events are not dispatched. Originally the snapshot was
68976        implemented "just in case" to protect the code from future attacks.
68977        I manually confirmed that the lazy snapshot works correctly by inserting
68978        takeChildNodesSnapshot() to notifyDescendantRemovedFromDocument()
68979        in a random manner.
68980
68981        * dom/ContainerNode.cpp:
68982        (WebCore):
68983        * dom/ContainerNode.h:
68984        (ChildNodesLazySnapshot):
68985        (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
68986        (WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):
68987        (WebCore::ChildNodesLazySnapshot::nextNode):
68988        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
68989        (WebCore::ChildNodesLazySnapshot::nextSnapshot):
68990        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
68991        (WebCore::ChildNodesLazySnapshot::takeChildNodesLazySnapshot):
68992        (WebCore):
68993        * dom/ContainerNodeAlgorithms.cpp:
68994        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
68995        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
68996        * dom/EventDispatcher.cpp:
68997        (WebCore::EventDispatcher::dispatchEvent):
68998
689992012-08-07  Ojan Vafai  <ojan@chromium.org>
69000
69001        percentage margins + flex incorrectly overflows the flexbox
69002        https://bugs.webkit.org/show_bug.cgi?id=93411
69003
69004        Reviewed by Tony Chang.
69005
69006        Percent margins should always be computed with respect to the containing
69007        block's width, not it's height. We were getting this wrong in column flows.
69008
69009        Test: css3/flexbox/percent-margins.html
69010
69011        * rendering/RenderFlexibleBox.cpp:
69012        (WebCore::RenderFlexibleBox::computeMarginValue):
69013        (WebCore):
69014        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
69015        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
69016        * rendering/RenderFlexibleBox.h:
69017
690182012-08-07  Kentaro Hara  <haraken@chromium.org>
69019
69020        [V8] Replace throwError(ExceptionCode, Isolate*) with setDOMException(ExceptionCode, Isolate*) in v8/* and v8/custom/*
69021        https://bugs.webkit.org/show_bug.cgi?id=93226
69022
69023        Reviewed by Eric Seidel.
69024
69025        Now throwError(ExceptionCode, Isolate*) is equivalent to
69026        setDOMException(ExceptionCode, Isolate*). We can replace the former with
69027        the latter. After this replacement, the rule becomes simple and sane:
69028        "Use throwError() for throwing JavaScript errors, use setDOMException()
69029        for throwing DOM exceptions".
69030
69031        No tests. No change in behavior.
69032
69033        * bindings/v8/SerializedScriptValue.cpp:
69034        (WebCore::SerializedScriptValue::transferArrayBuffers):
69035        (WebCore::SerializedScriptValue::SerializedScriptValue):
69036        * bindings/v8/custom/V8AudioContextCustom.cpp:
69037        (WebCore::V8AudioContext::constructorCallback):
69038        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
69039        (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
69040        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
69041        (WebCore::V8DOMStringMap::namedPropertySetter):
69042        * bindings/v8/custom/V8DOMWindowCustom.cpp:
69043        (WebCore::handlePostMessageCallback):
69044        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
69045        (WebCore::handlePostMessageCallback):
69046        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
69047        (WebCore::V8DirectoryEntry::getDirectoryCallback):
69048        (WebCore::V8DirectoryEntry::getFileCallback):
69049        * bindings/v8/custom/V8DocumentCustom.cpp:
69050        (WebCore::V8Document::evaluateCallback):
69051        * bindings/v8/custom/V8HistoryCustom.cpp:
69052        (WebCore::V8History::pushStateCallback):
69053        (WebCore::V8History::replaceStateCallback):
69054        * bindings/v8/custom/V8IntentConstructor.cpp:
69055        (WebCore::V8Intent::constructorCallback):
69056        * bindings/v8/custom/V8MessagePortCustom.cpp:
69057        (WebCore::handlePostMessageCallback):
69058        * bindings/v8/custom/V8MutationObserverCustom.cpp:
69059        (WebCore::V8MutationObserver::constructorCallback):
69060        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
69061        (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
69062        (WebCore::V8NotificationCenter::createNotificationCallback):
69063        (WebCore::V8NotificationCenter::requestPermissionCallback):
69064        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
69065        (WebCore::V8SQLTransaction::executeSqlCallback):
69066        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
69067        (WebCore::V8SQLTransactionSync::executeSqlCallback):
69068        * bindings/v8/custom/V8StorageCustom.cpp:
69069        (WebCore::storageSetter):
69070        * bindings/v8/custom/V8WebSocketCustom.cpp:
69071        (WebCore::V8WebSocket::constructorCallback):
69072        (WebCore::V8WebSocket::sendCallback):
69073        * bindings/v8/custom/V8WorkerContextCustom.cpp:
69074        (WebCore::V8WorkerContext::importScriptsCallback):
69075        * bindings/v8/custom/V8WorkerCustom.cpp:
69076        (WebCore::handlePostMessageCallback):
69077        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
69078        (WebCore::V8XMLHttpRequest::responseTextAccessorGetter):
69079        (WebCore::V8XMLHttpRequest::openCallback):
69080        (WebCore::V8XMLHttpRequest::sendCallback):
69081
690822012-08-07  Kentaro Hara  <haraken@chromium.org>
69083
69084        [V8] Replace v8::Handle<v8::Value>() in custom bindings with v8Undefined()
69085        https://bugs.webkit.org/show_bug.cgi?id=93215
69086
69087        Reviewed by Eric Seidel.
69088
69089        We should use v8Undefined() everywhere in V8 bindings.
69090
69091        No tests. No change in behavior.
69092
69093        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
69094        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
69095        (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
69096        * bindings/v8/custom/V8ConsoleCustom.cpp:
69097        (WebCore::V8Console::traceCallback):
69098        (WebCore::V8Console::assertCallback):
69099        (WebCore::V8Console::profileCallback):
69100        (WebCore::V8Console::profileEndCallback):
69101        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
69102        (WebCore::V8DOMStringMap::namedPropertyGetter):
69103        * bindings/v8/custom/V8DOMWindowCustom.cpp:
69104        (WebCore::V8DOMWindow::indexedPropertyGetter):
69105        (WebCore::V8DOMWindow::namedPropertyGetter):
69106        * bindings/v8/custom/V8DataViewCustom.cpp:
69107        (WebCore::V8DataView::setInt8Callback):
69108        (WebCore::V8DataView::setUint8Callback):
69109        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
69110        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
69111        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
69112        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
69113        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
69114        (WebCore::V8DirectoryEntry::getDirectoryCallback):
69115        (WebCore::V8DirectoryEntry::getFileCallback):
69116        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
69117        (WebCore::getNamedItems):
69118        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
69119        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
69120        (WebCore::getNamedItems):
69121        (WebCore::V8HTMLCollection::namedPropertyGetter):
69122        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
69123        (WebCore::V8HTMLDocument::GetNamedProperty):
69124        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
69125        (WebCore::V8HTMLFormElement::indexedPropertyGetter):
69126        (WebCore::V8HTMLFormElement::namedPropertyGetter):
69127        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
69128        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
69129        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
69130        (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
69131        * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
69132        (WebCore::npObjectNamedGetter):
69133        (WebCore::npObjectNamedSetter):
69134        (WebCore::npObjectIndexedGetter):
69135        (WebCore::npObjectIndexedSetter):
69136        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
69137        (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
69138        * bindings/v8/custom/V8LocationCustom.cpp:
69139        (WebCore::V8Location::reloadAccessorGetter):
69140        (WebCore::V8Location::replaceAccessorGetter):
69141        (WebCore::V8Location::assignAccessorGetter):
69142        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
69143        (WebCore::V8NamedNodeMap::indexedPropertyGetter):
69144        (WebCore::V8NamedNodeMap::namedPropertyGetter):
69145        * bindings/v8/custom/V8NodeListCustom.cpp:
69146        (WebCore::V8NodeList::namedPropertyGetter):
69147        * bindings/v8/custom/V8SVGLengthCustom.cpp:
69148        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
69149        * bindings/v8/custom/V8StorageCustom.cpp:
69150        (WebCore::storageGetter):
69151        (WebCore::V8Storage::namedPropertyGetter):
69152        (WebCore::storageSetter):
69153        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
69154        (WebCore::V8StyleSheetList::namedPropertyGetter):
69155
691562012-08-07  Kentaro Hara  <haraken@chromium.org>
69157
69158        [V8] Replace v8::Handle<v8::Value>() in bindings/v8/* with v8Undefined()
69159        https://bugs.webkit.org/show_bug.cgi?id=93211
69160
69161        Reviewed by Eric Seidel.
69162
69163        We should use v8Undefined() everywhere in V8 bindings.
69164        Replacing v8::Local<v8::Value>() etc with v8Undefined() can cause build
69165        errors due to type conversion mismatch. I'll do the replacement in follow-up
69166        patches.
69167
69168        No tests. No change in behavior.
69169
69170        * bindings/v8/IDBBindingUtilities.cpp:
69171        (WebCore):
69172        * bindings/v8/ScriptDebugServer.cpp:
69173        (WebCore::ScriptDebugServer::pauseOnExceptionsState):
69174        (WebCore::ScriptDebugServer::handleV8DebugEvent):
69175        * bindings/v8/SerializedScriptValue.cpp:
69176        * bindings/v8/V8Binding.cpp:
69177        (WebCore::batchConfigureCallbacks):
69178        * bindings/v8/V8Collection.h:
69179        (WebCore::getV8Object):
69180        (WebCore::collectionNamedPropertyGetter):
69181        * bindings/v8/V8DOMWrapper.cpp:
69182        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
69183        * bindings/v8/V8NPObject.cpp:
69184        (WebCore::npObjectGetProperty):
69185        (WebCore::npObjectSetProperty):
69186        * bindings/v8/V8Proxy.cpp:
69187        (WebCore::V8Proxy::setDOMException):
69188        (WebCore::V8Proxy::throwError):
69189        * bindings/v8/WorkerScriptDebugServer.cpp:
69190        (WebCore::WorkerScriptDebugServer::addListener):
69191
691922012-08-07  Joe Mason  <jmason@rim.com>
69193
69194        Fix regression in credential storage when using Negotiate auth
69195        https://bugs.webkit.org/show_bug.cgi?id=93386
69196
69197        Reviewed by George Staikos.
69198
69199        r124205 regressed credential storage and lookup.  It added code to update the scheme used in
69200        credential storage if the scheme chosen by the network stack is different from that requested by
69201        webkit (currently this is only used when webkit requests Negotiate auth, but the Negotiate
69202        infrastructure isn't set up correctly, so the network stack falls back to another auth type, usually
69203        NTLM).  But the credentials are saved when a "success" status is received, and the scheme in the
69204        credentials is not updated until notifyAuthReceived is called to report the actual auth scheme used.
69205        The result is that the credentials are stored with the wrong auth scheme and can never be retreived.
69206
69207        Fixed by delaying the credential save until notifyAuthReceived.
69208
69209        RIM PR 166514
69210        Internally reviewed by George Staikos
69211
69212        * platform/network/blackberry/NetworkJob.cpp:
69213        (WebCore::NetworkJob::handleNotifyStatusReceived): Stop storing credentials here.
69214        (WebCore::NetworkJob::notifyAuthReceived): Store credentials here instead.
69215
692162012-08-07  Kent Tamura  <tkent@chromium.org>
69217
69218        [Mac] Do not reformat numbers in <input type=number>
69219        https://bugs.webkit.org/show_bug.cgi?id=93236
69220
69221        Reviewed by Hajime Morita.
69222
69223        We had bugs such as stripping leading zeros, dropping lower digits of
69224        large numbers because we parse a user-input string to a double value,
69225        and generate a string from the double value.
69226
69227        In order to avoid such reformatting, we use
69228        platform/text/NumberLocalizer, which maps ASCII digits to the
69229        corresponding localized digits.
69230
69231        Test: fast/forms/number/number-lossless-localization.html
69232
69233        * WebCore.xcodeproj/project.pbxproj:
69234        Add the following files:
69235         - platform/text/NumberLocalizer.cpp
69236         - platform/text/NumberLocalizer.h
69237         - platform/mac/LocaleMac.h
69238         - platform/mac/LocaleMac.mm
69239        * platform/text/mac/LocaleMac.h:
69240        (LocaleMac): Inherit NumberLocalizer, and declare
69241        initializeNumberLocalizerData() for it.
69242        Add m_didInitializeNumberData flag.
69243        * platform/text/mac/LocaleMac.mm:
69244        (WebCore::LocaleMac::LocaleMac): Initialize m_didInitializeNumberData
69245        (WebCore::LocaleMac::initializeNumberLocalizerData):
69246        Added. Prepare data for number localization, and call
69247        NumberLocalizer::setNumberLocalizerData().
69248        A tricky part is to format 9876543210 for m_locale. It seems OSX doesn't
69249        have API to get localized digits.
69250        * platform/text/mac/LocalizedNumberMac.mm:
69251        Remove many lines, and calls the corresponding functions of LocaleMac.
69252        (WebCore::convertToLocalizedNumber):
69253        (WebCore::convertFromLocalizedNumber):
69254        (WebCore::localizedDecimalSeparator):
69255
692562012-08-07  Kentaro Hara  <haraken@chromium.org>
69257
69258        [V8] Move V8BindingMacros.h from bindings/v8/custom/ to bindings/v8/
69259        https://bugs.webkit.org/show_bug.cgi?id=93254
69260
69261        Reviewed by Eric Seidel.
69262
69263        V8BindingMacros.h should exist in bindings/v8/.
69264        This patch also moves related enums from V8Binding.h to V8BindingMacros.h.
69265
69266        No tests. No change in behavior.
69267
69268        * WebCore.gypi:
69269        * bindings/v8/V8BindingMacros.h: Renamed from Source/WebCore/bindings/v8/custom/V8BindingMacros.h.
69270        (WebCore):
69271
692722012-08-07  Kentaro Hara  <haraken@chromium.org>
69273
69274        [V8] StringCache::m_lastStringImpl and StringCache::m_lastV8String should be in sync
69275        https://bugs.webkit.org/show_bug.cgi?id=93065
69276
69277        Reviewed by Eric Seidel.
69278
69279        StringCache::m_lastStringImpl caches a StringImpl that was accessed most
69280        recently. StringCache::m_lastV8String caches Persistent<String> corresponding
69281        to the StringImpl. Hence m_lastStringImpl and m_lastV8String should be in sync.
69282
69283        However, StringCache::remove() breaks the sync. StringCache::remove() clears
69284        m_lastStringImpl but does not clear m_lastV8String. As far as I analyze the code,
69285        this won't cause any problem, but we should fix it just in case.
69286
69287        No tests. No change in behavior.
69288
69289        * bindings/v8/V8Binding.cpp:
69290        (WebCore::StringCache::remove):
69291
692922012-08-07  Hayato Ito  <hayato@chromium.org>
69293
69294        Don't re-use the same EventDispatcher instance to dispatch events.
69295        https://bugs.webkit.org/show_bug.cgi?id=93322
69296
69297        Reviewed by Dimitri Glazkov.
69298
69299        It is potentially dangerous to call
69300        EventDispatcher::dispatchEvent(PassRefPtr<Event>) twice for the
69301        same EventDispatcher instance.  Some member functions in
69302        EventDispatcher assume that dispatchEvent(PassRefPtr<Event>) is
69303        never called more than once in its life cycle.
69304
69305        For example, EventDispatcher::ensureEventAncestor never
69306        recalculates ancestors of node even when
69307        dispatchEvent(PassRefPtr<Event)) is called again with a different
69308        event parameter.
69309
69310        A 'dblclick' event violates this rule. A 'dblclick' dispatching
69311        reuses the same dispatcher instance.  So stop re-using the same
69312        dispatcher and add ASSERT to make sure dispatchEvent() is never
69313        called more than once.
69314
69315        No new tests, no change in functionality.
69316
69317        * dom/EventDispatcher.cpp:
69318        (WebCore::EventDispatcher::EventDispatcher):
69319        (WebCore::EventDispatcher::dispatchEvent):
69320        * dom/EventDispatcher.h:
69321        (EventDispatcher):
69322        * dom/MouseEvent.cpp:
69323        (WebCore::MouseEventDispatchMediator::dispatchEvent):
69324
693252012-08-07  Joshua Bell  <jsbell@chromium.org>
69326
69327        Layout Test storage/indexeddb/intversion-omit-parameter.html is flaky
69328        https://bugs.webkit.org/show_bug.cgi?id=92952
69329
69330        Reviewed by Tony Chang.
69331
69332        Account for events being propagated from the back-end to front-end after
69333        front-end context is stopped (i.e. document is being destroyed). The IDBRequest
69334        lifecycle was tightened up in http://trac.webkit.org/changeset/123275 with more
69335        asserts but the stopped state wasn't accounted for.
69336
69337        Test: [chromium] webkit_unit_tests --gtest_filter='IDBRequestTest.EventsAfterStopping'
69338
69339        * Modules/indexeddb/IDBRequest.cpp:
69340        (WebCore::IDBRequest::abort):
69341        (WebCore::IDBRequest::onError):
69342        (WebCore::IDBRequest::onSuccess):
69343        (WebCore::IDBRequest::onSuccessWithContinuation):
69344
693452012-08-07  Kentaro Hara  <haraken@chromium.org>
69346
69347        Optimize Element::getAttributeNode() by replacing String with AtomicString
69348        https://bugs.webkit.org/show_bug.cgi?id=90274
69349
69350        Reviewed by Adam Barth.
69351
69352        Based on the observation described in this ChangeLog
69353        (http://trac.webkit.org/changeset/121439), this patch optimizes
69354        the performance of Element::getAttributeNode() by replacing String
69355        with AtomicString.
69356
69357        Performance test: https://bugs.webkit.org/attachment.cgi?id=150147
69358
69359        getAttributeNode (Chromium/Linux):
69360        375.20ms => 310.80ms
69361
69362        getAttributeNodeNS (Chromium/Linux):
69363        684.40ms => 539.00ms
69364
69365        * dom/Element.cpp:
69366        (WebCore::Element::getAttributeNode):
69367        (WebCore::Element::getAttributeNodeNS):
69368        * dom/Element.h:
69369        (Element):
69370
693712012-08-07  Michelangelo De Simone  <michelangelo@webkit.org>
69372
69373        CSSParser::parseTransform() refactor to accept valueList as argument
69374        https://bugs.webkit.org/show_bug.cgi?id=93295
69375
69376        Reviewed by Darin Adler.
69377
69378        CSS::parseTranform() is now accepting the related CSSParserValueList as
69379        argument. This change will be used by the code to parse the 3d-transforms
69380        within the custom() function, see bug #71443.
69381
69382        * css/CSSParser.cpp:
69383        (WebCore::CSSParser::parseValue):
69384        (WebCore::CSSParser::parseTransform):
69385        * css/CSSParser.h:
69386
693872012-08-07  Elliott Sprehn  <esprehn@gmail.com>
69388
69389        Reimplement RenderQuote placement algorithm
69390        https://bugs.webkit.org/show_bug.cgi?id=93056
69391
69392        Reviewed by Eric Seidel.
69393
69394        Greatly simplify the code that maintains the linked list of RenderQuotes. Now RenderQuote
69395        is placed into the linked list in computePreferredLogicalWidths on first access and is
69396        detached when destroyed (or explicitly removed).
69397
69398        The new algorithm doesn't require walking up the tree of renderers when there are no
69399        RenderQuotes in the tree yet, and also removes the need to walk over every subtree
69400        when inserting in rendererSubtreeAttached.
69401
69402        No new tests because this patch doesn't change any behavior.
69403
69404        * rendering/RenderObjectChildList.cpp:
69405        (WebCore::RenderObjectChildList::removeChildNode): Call detachQuote when removing from a child list.
69406        (WebCore::RenderObjectChildList::appendChildNode):
69407        (WebCore::RenderObjectChildList::insertChildNode):
69408        * rendering/RenderQuote.cpp:
69409        (WebCore::RenderQuote::RenderQuote):
69410        (WebCore::RenderQuote::~RenderQuote):
69411        (WebCore::RenderQuote::willBeDestroyed): Call detachQuote to ensure all destroyed quotes are detached.
69412        (WebCore::RenderQuote::originalText):
69413        (WebCore::RenderQuote::computePreferredLogicalWidths): Attach quote before computing the width.
69414        (WebCore):
69415        (WebCore::RenderQuote::attachQuote): Puts the RenderQuote in the linked list of quotes and computes the depth.
69416        (WebCore::RenderQuote::detachQuote): Removes the quote from the linked list.
69417        (WebCore::RenderQuote::updateDepth):
69418        * rendering/RenderQuote.h:
69419        (RenderQuote):
69420        * rendering/style/RenderStyle.cpp:
69421        (WebCore::RenderStyle::diff): Return StyleDifferenceLayout if quotes change and remove check in styleDidChange in RenderQuote.
69422        * rendering/RenderView.cpp:
69423        (WebCore::RenderView::RenderView):
69424        * rendering/RenderView.h:
69425        (WebCore):
69426        (WebCore::RenderView::setRenderQuoteHead):
69427        (WebCore::RenderView::renderQuoteHead): Stores the first quote in the document.
69428        (RenderView):
69429
694302012-08-07  Kentaro Hara  <haraken@chromium.org>
69431
69432        [V8] Remove a bunch of Persistent::New()s on setJSWrapperForXXXObject()
69433        https://bugs.webkit.org/show_bug.cgi?id=93342
69434
69435        Reviewed by Adam Barth.
69436
69437        There are a lot of custom bindings like this:
69438
69439            V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), v8::Persistent<v8::Object>::New(args.Holder()));
69440
69441        Manually written Persistent::New() is error-prone. We can remove the
69442        Persistent::New() by allocating the Persistent handle inside
69443        setJSWrapperForDOMObject().
69444
69445        A new setJSWrapperForDOMObject() receives a wrapper object, allocates
69446        the Persistent handle of the wrapper object, and return the Persistent handle.
69447
69448        No tests. No change in behavior.
69449
69450        * bindings/scripts/CodeGeneratorV8.pm:
69451        (GenerateConstructorCallback):
69452        (GenerateEventConstructorCallback):
69453        (GenerateNamedConstructorCallback):
69454        (GenerateToV8Converters):
69455        * bindings/scripts/test/V8/V8Float64Array.cpp:
69456        (WebCore::V8Float64Array::wrapSlow):
69457        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
69458        (WebCore::V8TestActiveDOMObject::wrapSlow):
69459        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
69460        (WebCore::V8TestCustomNamedGetter::wrapSlow):
69461        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
69462        (WebCore::V8TestEventConstructor::constructorCallback):
69463        (WebCore::V8TestEventConstructor::wrapSlow):
69464        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
69465        (WebCore::V8TestEventTarget::wrapSlow):
69466        * bindings/scripts/test/V8/V8TestException.cpp:
69467        (WebCore::V8TestException::wrapSlow):
69468        * bindings/scripts/test/V8/V8TestInterface.cpp:
69469        (WebCore::V8TestInterface::constructorCallback):
69470        (WebCore::V8TestInterface::wrapSlow):
69471        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
69472        (WebCore::V8TestMediaQueryListListener::wrapSlow):
69473        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
69474        (WebCore::V8TestNamedConstructorConstructorCallback):
69475        (WebCore::V8TestNamedConstructor::wrapSlow):
69476        * bindings/scripts/test/V8/V8TestNode.cpp:
69477        (WebCore::V8TestNode::constructorCallback):
69478        (WebCore::V8TestNode::wrapSlow):
69479        * bindings/scripts/test/V8/V8TestObj.cpp:
69480        (WebCore::V8TestObj::constructorCallback):
69481        (WebCore::V8TestObj::wrapSlow):
69482        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
69483        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
69484        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
69485        * bindings/v8/V8DOMWindowShell.cpp:
69486        (WebCore::V8DOMWindowShell::installDOMWindow):
69487        * bindings/v8/V8DOMWrapper.cpp:
69488        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
69489        (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
69490        * bindings/v8/V8DOMWrapper.h:
69491        (V8DOMWrapper):
69492        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
69493        (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
69494        * bindings/v8/WorkerContextExecutionProxy.cpp:
69495        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
69496        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
69497        (WebCore::V8ArrayBuffer::constructorCallback):
69498        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
69499        (WebCore::wrapArrayBufferView):
69500        (WebCore::constructWebGLArray):
69501        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
69502        (WebCore::V8DOMFormData::constructorCallback):
69503        * bindings/v8/custom/V8DataViewCustom.cpp:
69504        (WebCore::V8DataView::constructorCallback):
69505        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
69506        (WebCore::v8HTMLImageElementConstructorCallback):
69507        * bindings/v8/custom/V8IntentConstructor.cpp:
69508        (WebCore::V8Intent::constructorCallback):
69509        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
69510        (WebCore::V8MessageChannel::constructorCallback):
69511        * bindings/v8/custom/V8MutationObserverCustom.cpp:
69512        (WebCore::V8MutationObserver::constructorCallback):
69513        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
69514        (WebCore::V8WebKitPoint::constructorCallback):
69515        * bindings/v8/custom/V8WebSocketCustom.cpp:
69516        (WebCore::V8WebSocket::constructorCallback):
69517        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
69518        (WebCore::V8XMLHttpRequest::constructorCallback):
69519
695202012-08-07  Erik Arvidsson  <arv@chromium.org>
69521
69522        Evolution, empathy no longer build with webkint 1.9.6:  webkit_dom_html_element_set_class_name is gone
69523        https://bugs.webkit.org/show_bug.cgi?id=93384
69524
69525        Reviewed by Adam Barth.
69526
69527        The GObject bindings do not do inheritance so when className was moved from HTMLElement to Element,
69528        webkit_dom_html_element_set_class_name was no longer defined. This patch re-adds the binding for the
69529        GObject bindings to HTMLElement.
69530
69531        No new tests.
69532
69533        * html/HTMLElement.idl:
69534
695352012-08-07  Dirk Pranke  <dpranke@chromium.org>
69536
69537        fix chromium win build after r124945
69538        https://bugs.webkit.org/show_bug.cgi?id=93421
69539
69540        Unreviewed, build fix.
69541
69542        Two Efl files were removed in r124945 but we forgot to remove
69543        them from WebCore.gypi.
69544
69545        * WebCore.gypi:
69546
695472012-08-07  Dean Jackson  <dino@apple.com>
69548
69549        Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/124954
69550
69551        * html/HTMLPlugInElement.cpp:
69552        (WebCore::HTMLPlugInElement::isKeyboardFocusable):
69553
695542012-08-07  Kentaro Hara  <haraken@chromium.org>
69555
69556        [V8] Move setIsolatedWorldSecurityOrigin() from V8Proxy to ScriptController
69557        https://bugs.webkit.org/show_bug.cgi?id=93334
69558
69559        Reviewed by Adam Barth.
69560
69561        The goal is to move factor out V8Proxy methods to ScriptController.
69562        As a starting point, this patch moves setIsolatedWorldSecurityOrigin().
69563
69564        isolatedWorlds() and isolatedWorldSecurityOrigins() are temporary methods.
69565        They will be soon removed after moving all related methods
69566        and m_isolatedWorlds and m_isolatedWorldSecurityOrigins.
69567
69568        No tests. No change in behavior.
69569
69570        * bindings/v8/ScriptController.cpp:
69571        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
69572        * bindings/v8/V8Proxy.cpp:
69573        * bindings/v8/V8Proxy.h:
69574        (WebCore):
69575        (V8Proxy):
69576        (WebCore::V8Proxy::isolatedWorlds):
69577        (WebCore::V8Proxy::isolatedWorldSecurityOrigins):
69578
695792012-08-07  Yoshifumi Inoue  <yosin@chromium.org>
69580
69581        translateZ(0) shifts file name in file input
69582        https://bugs.webkit.org/show_bug.cgi?id=69248
69583
69584        Reviewed by Simon Fraser.
69585
69586        This patch changes to use relative y-coordinate rather than absolute
69587        y-coordinate for baseline of text of input type "file" what we've already
69588        done for file icon y-coordinate.
69589
69590        Test: file-appearance-transform-no-effects.html
69591
69592        * rendering/RenderFileUploadControl.cpp:
69593        (WebCore::RenderFileUploadControl::paintObject): Changed to use paintOffset
69594        instead of absoluteBoundingBoxRectIgnoringTransforms().
69595
695962012-08-07  Kentaro Hara  <haraken@chromium.org>
69597
69598        [V8] Replace throwError(ExceptionCode, Isolate*) with
69599        setDOMException(ExceptionCode, Isolate*) in CodeGeneratorV8.pm
69600        https://bugs.webkit.org/show_bug.cgi?id=93223
69601
69602        Reviewed by Adam Barth.
69603
69604        Now throwError(ExceptionCode, Isolate*) is equivalent to
69605        setDOMException(ExceptionCode, Isolate*). We can replace the former
69606        with the latter. After this replacement, the rule becomes simple
69607        and sane: "Use throwError() for throwing JavaScript errors, use
69608        setDOMException() for throwing DOM exceptions".
69609
69610        Test: bindings/scripts/test/TestObj.idl
69611
69612        * bindings/scripts/CodeGeneratorV8.pm:
69613        (GenerateParametersCheck):
69614        (GenerateConstructorCallback):
69615        (GenerateNamedConstructorCallback):
69616        * bindings/scripts/test/V8/V8TestInterface.cpp:
69617        (WebCore::V8TestInterface::constructorCallback):
69618        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
69619        (WebCore::V8TestNamedConstructorConstructorCallback):
69620        * bindings/scripts/test/V8/V8TestObj.cpp:
69621        (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
69622        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
69623        (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgCallback):
69624        (WebCore::TestObjV8Internal::overloadedMethod5Callback):
69625        (WebCore::V8TestObj::constructorCallback):
69626
696272012-08-07  Fady Samuel  <fsamuel@chromium.org>
69628
69629        Allow plugins to decide whether they are keyboard focusable
69630        https://bugs.webkit.org/show_bug.cgi?id=88958
69631
69632        Reviewed by Anders Carlsson.
69633
69634        * dom/Node.h:
69635        (WebCore::Node::isPluginElement):
69636        * html/HTMLEmbedElement.cpp:
69637        (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
69638        * html/HTMLEmbedElement.h:
69639        (HTMLEmbedElement):
69640        * html/HTMLObjectElement.cpp:
69641        (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
69642        * html/HTMLObjectElement.h:
69643        (HTMLObjectElement):
69644        * html/HTMLPlugInElement.cpp:
69645        (WebCore::HTMLPlugInElement::pluginWidget):
69646        (WebCore::HTMLPlugInElement::isKeyboardFocusable):
69647        (WebCore):
69648        (WebCore::HTMLPlugInElement::isPluginElement):
69649        * html/HTMLPlugInElement.h:
69650        (HTMLPlugInElement):
69651        * page/FocusController.cpp:
69652        (WebCore::FocusController::advanceFocusInDocumentOrder):
69653        * plugins/PluginViewBase.h:
69654        (WebCore::PluginViewBase::supportsKeyboardFocus):
69655
696562012-08-07  Anna Cavender  <annacc@chromium.org>
69657
69658        Create a MediaSource object.
69659        https://bugs.webkit.org/show_bug.cgi?id=91773
69660
69661        Reviewed by Eric Carlson.
69662
69663        MediaSource object is needed in order to implement the new
69664        object-oriented MediaSource API:
69665        http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
69666
69667        No new tests - will be able to test after landing:
69668        https://bugs.webkit.org/show_bug.cgi?id=91775
69669
69670        Adding new files to build files:
69671        * CMakeLists.txt:
69672        * DerivedSources.cpp:
69673        * DerivedSources.make:
69674        * DerivedSources.pri:
69675        * GNUmakefile.list.am:
69676        * Target.pri:
69677        * WebCore.gypi:
69678        * WebCore.vcproj/WebCore.vcproj:
69679        * WebCore.xcodeproj/project.pbxproj:
69680
69681        New MediaSource object:
69682        * Modules/mediasource/MediaSource.cpp: Added.
69683        * Modules/mediasource/MediaSource.h: Added.
69684        * Modules/mediasource/MediaSource.idl: Added.
69685
69686        Create a registry for the blob storage and lookup:
69687        * Modules/mediasource/MediaSourceRegistry.cpp: Added.
69688        * Modules/mediasource/MediaSourceRegistry.h: Added.
69689
69690        Connect SourceBuffer to MediaSource:
69691        * Modules/mediasource/SourceBuffer.cpp:
69692        (WebCore::SourceBuffer::SourceBuffer):
69693        (WebCore::SourceBuffer::buffered): Forward call to MediaSource.
69694        (WebCore::SourceBuffer::append): Ditto.
69695        (WebCore::SourceBuffer::abort): Ditto.
69696        * Modules/mediasource/SourceBuffer.h:
69697        (WebCore::SourceBuffer::create): Add a MediaSource to the constructor.
69698        (WebCore::SourceBuffer::clear): Clear the MediaSource.
69699        (SourceBuffer):
69700        * Modules/mediasource/SourceBufferList.cpp: include SourceBuffer.h
69701        * Modules/mediasource/SourceBufferList.h:
69702
69703        Make MediaSource an EventTarget:
69704        * dom/EventTarget.h:
69705        (WebCore):
69706        * dom/EventTargetFactory.in:
69707
69708        Enable creation of MediaSource object URL from JavaScript:
69709        * html/DOMURL.cpp:
69710        (WebCore):
69711        (WebCore::DOMURL::createObjectURL):
69712        (WebCore::DOMURL::revokeObjectURL):
69713        * html/DOMURL.h:
69714        (WebCore):
69715        (DOMURL):
69716        * html/DOMURL.idl:
69717        * html/PublicURLManager.h: create a new sourceURLs list for storing
69718            reigstered MediaSource URLS.
69719        (WebCore::PublicURLManager::contextDestroyed): make sure everything is
69720            removed from the sourceURLs list upon destruction.
69721        (PublicURLManager):
69722        (WebCore::PublicURLManager::sourceURLs): getter for the sourceURLs list.
69723
69724        New MediaSource constructor:
69725        * page/DOMWindow.idl:
69726
697272012-08-07  Kentaro Hara  <haraken@chromium.org>
69728
69729        [V8] Implement V8Proxy::registerExtensionIfNeeded() and remove redundant methods
69730        https://bugs.webkit.org/show_bug.cgi?id=93209
69731
69732        Reviewed by Adam Barth.
69733
69734        By implementing V8Proxy::registerExtensionIfNeeded(), we can remove
69735        registeredExtensionWithV8() and registerExtension().
69736
69737        No tests. No change in behavior.
69738
69739        * bindings/v8/V8DOMWindowShell.cpp:
69740        (WebCore::V8DOMWindowShell::createNewContext):
69741        * bindings/v8/V8Proxy.cpp:
69742        (WebCore::V8Proxy::registerExtensionIfNeeded):
69743        * bindings/v8/V8Proxy.h:
69744        (V8Proxy):
69745
697462012-08-07  Ryuan Choi  <ryuan.choi@samsung.com>
69747
69748        [EFL] Remove PlatformTouchEventEfl and PlatformTouchPointEfl
69749        https://bugs.webkit.org/show_bug.cgi?id=93270
69750
69751        Reviewed by Eric Seidel.
69752
69753        PlatformTouchEventEfl and PlatformTouchPointEfl initialize PlatformTouchEvent
69754        directly from Ewk_TouchEvent which is WebKit1/Efl API and they can not be
69755        shared with WebKit2/Efl.
69756
69757        In order to remove this WebKit dependency from WebCore, this patch removes Efl
69758        specific codes from PlatformTouchXXX and adds the classes which convert
69759        Ewk_Touch_XXX to PlatformTouchXXX.
69760
69761        No new tests. Just a refactoring.
69762
69763        * PlatformEfl.cmake: Removed PlatformTouchEventEfl.cpp and PlatformTouchPointEfl.cpp
69764        * platform/PlatformTouchEvent.h: Removed Efl specific codes.
69765        (PlatformTouchEvent):
69766        * platform/PlatformTouchPoint.h: Ditto.
69767        (PlatformTouchPoint):
69768        * platform/efl/PlatformTouchEventEfl.cpp: Removed.
69769        * platform/efl/PlatformTouchPointEfl.cpp: Removed.
69770
697712012-08-07  James Robinson  <jamesr@chromium.org>
69772
69773        [chromium] Avoid dependending on implicit WebString -> String conversion in compositor
69774        https://bugs.webkit.org/show_bug.cgi?id=93408
69775
69776        Reviewed by Adrienne Walker.
69777
69778        * platform/graphics/chromium/LayerRendererChromium.cpp:
69779        (WebCore::LayerRendererChromium::initialize):
69780        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
69781        (WebCore::CCResourceProvider::initialize):
69782
697832012-08-07  Kentaro Hara  <haraken@chromium.org>
69784
69785        [V8] Factor out V8Binding methods that configures DOM attributes and methods
69786        https://bugs.webkit.org/show_bug.cgi?id=93239
69787
69788        Reviewed by Adam Barth.
69789
69790        V8Binding is messy. This patch factors out V8Binding methods that configures
69791        DOM attributes and methods into another file. This patch just moves the methods
69792        from V8Binding.{h,cpp} to V8ConfigureDOMAttributesAndMethods.{h,cpp}.
69793
69794        No tests. No change in behavior.
69795
69796        * UseV8.cmake:
69797        * WebCore.gypi:
69798        * bindings/v8/V8Binding.cpp:
69799        * bindings/v8/V8Binding.h:
69800        (WebCore):
69801        * bindings/v8/V8ConfigureDOMAttributesAndMethods.cpp: Added.
69802        (WebCore):
69803        (WebCore::batchConfigureAttributes):
69804        (WebCore::batchConfigureConstants):
69805        (WebCore::batchConfigureCallbacks):
69806        (WebCore::configureTemplate):
69807        * bindings/v8/V8ConfigureDOMAttributesAndMethods.h: Added.
69808        (WebCore):
69809        (BatchedAttribute):
69810        (WebCore::configureAttribute):
69811        (BatchedConstant):
69812        (BatchedCallback):
69813
698142012-08-07  Kentaro Hara  <haraken@chromium.org>
69815
69816        [V8] Replace all V8 undefined values in the rest of custom bindings with v8Undefined()
69817        https://bugs.webkit.org/show_bug.cgi?id=93220
69818
69819        Reviewed by Eric Seidel.
69820
69821        We should use v8Undefined() everywhere in V8 bindings.
69822        This patch replaces all V8 undefined values in the rest of custom bindings
69823        with v8Undefined().
69824
69825        No tests. No change in behavior.
69826
69827        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
69828        (WebCore::V8DOMStringMap::namedPropertyQuery): Simple refactoring not related to
69829        this patch. Since other bindings are using 0 instead of v8::None, we should use 0 here too.
69830        * bindings/v8/custom/V8DOMWindowCustom.cpp:
69831        (WebCore::toV8):
69832        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
69833        (WebCore::toV8):
69834        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
69835        (WebCore::toV8):
69836
698372012-08-07  Kentaro Hara  <haraken@chromium.org>
69838
69839        [V8] Remove #include V8BindingMacros.h
69840        https://bugs.webkit.org/show_bug.cgi?id=93312
69841
69842        Reviewed by Eric Seidel.
69843
69844        We are factoring out V8Binding methods to separate files.
69845        After the refactoring, V8Binding.h will include binding related
69846        header files (e.g. V8BindingMacros.h, V8BindingHelper.h, etc), so that
69847        custom V8 binding files just need to include V8Binding.h only.
69848
69849        We can remove '#include V8BindingMacros.h' from V8 binding files.
69850
69851        No tests. No change in behavior.
69852
69853        * bindings/scripts/CodeGeneratorV8.pm:
69854        (GenerateNormalAttrSetter):
69855        (GenerateParametersCheck):
69856        (GenerateEventConstructorCallback):
69857        (ConvertToV8Parameter):
69858        * bindings/scripts/test/V8/V8Float64Array.cpp:
69859        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
69860        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
69861        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
69862        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
69863        * bindings/scripts/test/V8/V8TestInterface.cpp:
69864        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
69865        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
69866        * bindings/scripts/test/V8/V8TestObj.cpp:
69867        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
69868        * bindings/v8/ScriptController.cpp:
69869        * bindings/v8/custom/V8BlobCustom.cpp:
69870        * bindings/v8/custom/V8ConsoleCustom.cpp:
69871        * bindings/v8/custom/V8DOMWindowCustom.cpp:
69872        * bindings/v8/custom/V8DataViewCustom.cpp:
69873        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
69874        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
69875        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
69876        * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
69877        * bindings/v8/custom/V8IntentConstructor.cpp:
69878        * bindings/v8/custom/V8MutationObserverCustom.cpp:
69879        * bindings/v8/custom/V8PerformanceCustom.cpp:
69880        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
69881        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
69882        * bindings/v8/custom/V8SVGLengthCustom.cpp:
69883        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
69884        * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
69885        * bindings/v8/custom/V8WorkerContextCustom.cpp:
69886
698872012-08-07  Kentaro Hara  <haraken@chromium.org>
69888
69889        [V8] Remove #include Frame.h from V8Binding.h
69890        https://bugs.webkit.org/show_bug.cgi?id=93326
69891
69892        Reviewed by Adam Barth.
69893
69894        We want to remove unnecessary #include in V8Binding.h
69895        to avoid circular include dependency.
69896
69897        No tests. No change in behavior.
69898
69899        * bindings/scripts/CodeGeneratorV8.pm:
69900        (GenerateDomainSafeFunctionGetter):
69901        (GenerateNormalAttrGetter):
69902        (GenerateReplaceableAttrSetter):
69903        (GenerateFunctionCallback):
69904        (GenerateNamedConstructorCallback):
69905        (GenerateToV8Converters):
69906        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
69907        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
69908        * bindings/scripts/test/V8/V8TestNode.cpp:
69909        * bindings/v8/ScheduledAction.cpp:
69910        * bindings/v8/V8Binding.h:
69911        * bindings/v8/V8DOMWrapper.cpp:
69912        * bindings/v8/custom/V8DocumentCustom.cpp:
69913        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
69914        * testing/v8/WebCoreTestSupport.cpp:
69915
699162012-08-07  Kentaro Hara  <haraken@chromium.org>
69917
69918        [V8] Factor out V8Binding classes that manage V8 value's cache
69919        https://bugs.webkit.org/show_bug.cgi?id=93343
69920
69921        Reviewed by Adam Barth.
69922
69923        We are factoring out V8Binding methods to separate files.
69924        This patch moves V8Binding classes that manage V8 value's cache
69925        to V8ValueCache.{h,cpp}.
69926
69927        No tests. No change in behavior.
69928
69929        * UseV8.cmake:
69930        * WebCore.gypi:
69931        * bindings/v8/V8Binding.cpp:
69932        * bindings/v8/V8Binding.h:
69933        (WebCore):
69934        * bindings/v8/V8ValueCache.cpp: Added.
69935        (WebCore):
69936        (WebCore::makeExternalString):
69937        (WebCore::cachedStringCallback):
69938        (WebCore::StringCache::remove):
69939        (WebCore::StringCache::v8ExternalStringSlow):
69940        (WebCore::IntegerCache::createSmallIntegers):
69941        (WebCore::IntegerCache::~IntegerCache):
69942        * bindings/v8/V8ValueCache.h: Added.
69943        (WebCore):
69944        (StringCache):
69945        (WebCore::StringCache::StringCache):
69946        (WebCore::StringCache::v8ExternalString):
69947        (WebCore::StringCache::clearOnGC):
69948        (WebCoreStringResource):
69949        (WebCore::WebCoreStringResource::WebCoreStringResource):
69950        (WebCore::WebCoreStringResource::~WebCoreStringResource):
69951        (WebCore::WebCoreStringResource::data):
69952        (WebCore::WebCoreStringResource::length):
69953        (WebCore::WebCoreStringResource::webcoreString):
69954        (WebCore::WebCoreStringResource::atomicString):
69955        (WebCore::WebCoreStringResource::visitStrings): This method is used by inspector
69956        and thus is not performance-critical. To avoid circular #include dependency,
69957        I moved the implementation to cpp.
69958        (WebCore::WebCoreStringResource::toStringResource):
69959        (IntegerCache):
69960        (WebCore::IntegerCache::IntegerCache):
69961        (WebCore::IntegerCache::v8Integer):
69962        (WebCore::IntegerCache::v8UnsignedInteger):
69963
699642012-08-07  James Robinson  <jamesr@chromium.org>
69965
69966        [chromium] Switch PlatformLayer typedef to Platform API type for PLATFORM(CHROMIUM)
69967        https://bugs.webkit.org/show_bug.cgi?id=93335
69968
69969        Reviewed by Adrienne Walker.
69970
69971        This converts the PlatformLayer typedef to WebKit::WebLayer (part of the chromium Platform API) for the
69972        Chromium port. This involves some odd const_cast<>s in places since cross-platform interfaces assume that
69973        PlatformLayer is a potentially heavy implementation class, but WebLayer is a thin smart pointer type.
69974
69975        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
69976        (WebCore::createScrollbarLayer):
69977        (WebCore::ScrollingCoordinator::setScrollLayer):
69978        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
69979        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
69980        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
69981        * platform/graphics/PlatformLayer.h:
69982        (WebKit):
69983        (WebCore):
69984        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
69985        (WebCore::Canvas2DLayerBridge::layer):
69986        * platform/graphics/chromium/Canvas2DLayerBridge.h:
69987        (Canvas2DLayerBridge):
69988        * platform/graphics/chromium/DrawingBufferChromium.cpp:
69989        (WebCore::DrawingBufferPrivate::layer):
69990        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
69991        (WebCore::GraphicsLayerChromium::removeFromParent):
69992        (WebCore::GraphicsLayerChromium::setDrawsContent):
69993        (WebCore::GraphicsLayerChromium::setContentsVisible):
69994        (WebCore::GraphicsLayerChromium::setMaskLayer):
69995        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
69996        (WebCore::GraphicsLayerChromium::setContentsToMedia):
69997        (WebCore::GraphicsLayerChromium::primaryLayer):
69998        (WebCore::GraphicsLayerChromium::platformLayer):
69999        (WebCore::GraphicsLayerChromium::updateChildList):
70000        * platform/graphics/chromium/GraphicsLayerChromium.h:
70001        (GraphicsLayerChromium):
70002
700032012-08-07  James Robinson  <jamesr@chromium.org>
70004
70005        [chromium] Use WebCompositor interface in Platform API instead of CCProxy to query threaded compositor status
70006        https://bugs.webkit.org/show_bug.cgi?id=93398
70007
70008        Reviewed by Adam Barth.
70009
70010        Converts non-compositor code that cares about threaded compositing status over to query WebCompositor instead of
70011        CCProxy.
70012
70013        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
70014        * platform/chromium/support/WebCompositorImpl.cpp:
70015        (WebKit):
70016        (WebKit::WebCompositor::threadingEnabled):
70017        (WebKit::WebCompositor::onCompositorThread):
70018        (WebKit::WebCompositorImpl::threadingEnabled):
70019        * platform/chromium/support/WebCompositorImpl.h:
70020        (WebCompositorImpl):
70021        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
70022        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
70023        * platform/graphics/chromium/DrawingBufferChromium.cpp:
70024        (WebCore::DrawingBuffer::DrawingBuffer):
70025
700262012-08-07  Anders Carlsson  <andersca@apple.com>
70027
70028        Knob slot animation is flipped
70029        https://bugs.webkit.org/show_bug.cgi?id=93396
70030
70031        Reviewed by Beth Dakin.
70032
70033        When painting the scrollbar knob slot, use rectForPart: since it correctly takes the expansion transition state into account.
70034
70035        * platform/mac/ScrollbarThemeMac.mm:
70036        (WebCore::scrollbarPainterPaint):
70037
700382012-08-07  Adrienne Walker  <enne@google.com>
70039
70040        50% fixed position coverage slow scroll heuristic is incorrect when invalidations aren't clipped
70041        https://bugs.webkit.org/show_bug.cgi?id=92011
70042
70043        Reviewed by Simon Fraser.
70044
70045        The heuristic in scrollContentsFastPath to slow scroll by invalidating
70046        the entire frame if fixed position elements cover 50% of the frame
70047        takes away the ability of ports to make their own decisions about how
70048        to best handle invalidations. Therefore, remove this heuristic.
70049
70050        * page/FrameView.cpp:
70051        (WebCore::FrameView::scrollContentsFastPath):
70052
700532012-08-07  Konrad Piascik  <kpiascik@rim.com>
70054
70055        [BlackBerry] Change how devicePixelRatio is set.
70056        https://bugs.webkit.org/show_bug.cgi?id=93385
70057
70058        Reviewed by Antonio Gomes.
70059
70060        Update the theme to adjust to a constant devicePixelRatio.
70061
70062        Not testable.
70063
70064        * platform/blackberry/RenderThemeBlackBerry.cpp:
70065        (WebCore::determineFullScreenMultiplier):
70066
700672012-08-07  James Robinson  <jamesr@chromium.org>
70068
70069        [chromium] Move WebCompositor interface into Platform API
70070        https://bugs.webkit.org/show_bug.cgi?id=93391
70071
70072        Reviewed by Adam Barth.
70073
70074        Moves the support files for WebCompositor into WebCore/platform/support/. CCThreadImpl is a helper class used
70075        only by WebCompositorImpl.
70076
70077        Refactor/renaming only, so no new tests.
70078
70079        * WebCore.gypi:
70080        * platform/chromium/support/CCThreadImpl.cpp: Renamed from Source/WebKit/chromium/src/CCThreadImpl.cpp.
70081        (WebKit):
70082        (GetThreadIDTask):
70083        (WebKit::GetThreadIDTask::GetThreadIDTask):
70084        (WebKit::GetThreadIDTask::~GetThreadIDTask):
70085        (WebKit::GetThreadIDTask::run):
70086        (CCThreadTaskAdapter):
70087        (WebKit::CCThreadTaskAdapter::CCThreadTaskAdapter):
70088        (WebKit::CCThreadTaskAdapter::~CCThreadTaskAdapter):
70089        (WebKit::CCThreadTaskAdapter::run):
70090        (WebKit::CCThreadImpl::create):
70091        (WebKit::CCThreadImpl::~CCThreadImpl):
70092        (WebKit::CCThreadImpl::postTask):
70093        (WebKit::CCThreadImpl::postDelayedTask):
70094        (WebKit::CCThreadImpl::threadID):
70095        (WebKit::CCThreadImpl::CCThreadImpl):
70096        * platform/chromium/support/CCThreadImpl.h: Renamed from Source/WebKit/chromium/src/CCThreadImpl.h.
70097        (WebKit):
70098        (CCThreadImpl):
70099        * platform/chromium/support/WebCompositorImpl.cpp: Renamed from Source/WebKit/chromium/src/WebCompositorImpl.cpp.
70100        (WebKit):
70101        (WebKit::WebCompositor::initialize):
70102        (WebKit::WebCompositor::shutdown):
70103        (WebKit::WebCompositor::setPerTilePaintingEnabled):
70104        (WebKit::WebCompositor::setPartialSwapEnabled):
70105        (WebKit::WebCompositor::setAcceleratedAnimationEnabled):
70106        (WebKit::WebCompositorImpl::initialize):
70107        (WebKit::WebCompositorImpl::initialized):
70108        (WebKit::WebCompositorImpl::shutdown):
70109        * platform/chromium/support/WebCompositorImpl.h: Renamed from Source/WebKit/chromium/src/WebCompositorImpl.h.
70110        (WebCore):
70111        (WebKit):
70112        (WebCompositorImpl):
70113
701142012-08-07  Abhishek Arya  <inferno@chromium.org>
70115
70116        Crash in ContainerNode::cloneChildNodes.
70117        https://bugs.webkit.org/show_bug.cgi?id=93378
70118
70119        Reviewed by Levi Weintraub.
70120
70121        Re-enabling the editing delete button controller in cloneChildNode was causing style changes,
70122        thereby causing load events to fire. The load event can blow our nodes from underneath. This causes
70123        crashes when we are nested inside cloneChildNodes. The patch just skips the delete button controller's
70124        container element from being cloned and removes the hacky enable/disable logic. 
70125
70126        Test: fast/dom/clone-node-load-event-crash.html
70127
70128        * dom/ContainerNode.cpp:
70129        (WebCore::ContainerNode::cloneChildNodes):
70130
701312012-08-07  No'am Rosenthal  <noam.rosenthal@nokia.com>
70132
70133        GraphicsLayerAnimation shouldn't use HashMap<String>
70134        https://bugs.webkit.org/show_bug.cgi?id=93284
70135
70136        Reviewed by Kenneth Rohde Christiansen.
70137
70138        Use a vector containing all the animations instead of a map of String to Vector.
70139        The HashMap contains very few elements, which makes it inefficient relatively to a vector.
70140        This has been shown to be a bottleneck in valgrind.
70141
70142        Covered by existing animation tests.
70143
70144        * platform/graphics/GraphicsLayerAnimation.cpp:
70145        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
70146        (WebCore::GraphicsLayerAnimations::hasActiveAnimationsOfType):
70147        (WebCore::GraphicsLayerAnimations::hasRunningAnimations):
70148        (WebCore::GraphicsLayerAnimations::add):
70149        (WebCore::GraphicsLayerAnimations::pause):
70150        (WebCore::GraphicsLayerAnimations::remove):
70151        (WebCore::GraphicsLayerAnimations::apply):
70152        * platform/graphics/GraphicsLayerAnimation.h:
70153        (GraphicsLayerAnimation):
70154        (WebCore::GraphicsLayerAnimation::name):
70155        (GraphicsLayerAnimations):
70156        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
70157        (WebCore::GraphicsLayerTextureMapper::addAnimation):
70158
701592012-08-07  Marcelo Lira  <marcelo.lira@openbossa.org>
70160
70161        [Qt] Add support for the Gamepad API
70162        https://bugs.webkit.org/show_bug.cgi?id=90637
70163
70164        Reviewed by Alexis Menard.
70165
70166        Adds support for Gamepad API on the Qt port.
70167
70168        The implementation of this class relies on the Linux
70169        kernel joystick API.
70170
70171        Gamepad devices are recognized through the GamepadsQt
70172        class, which uses the udev library to watch for connection,
70173        disconnection and other gamepad related events.
70174
70175        Tests for this feature already exist.
70176
70177        * DerivedSources.pri:
70178        * Target.pri:
70179        * WebCore.pri:
70180        * platform/qt/GamepadsQt.cpp: Added.
70181        (WebCore):
70182        (GamepadDeviceLinuxQt):
70183        (WebCore::GamepadDeviceLinuxQt::create):
70184        (WebCore::GamepadDeviceLinuxQt::GamepadDeviceLinuxQt):
70185        (WebCore::GamepadDeviceLinuxQt::~GamepadDeviceLinuxQt):
70186        (WebCore::GamepadDeviceLinuxQt::readCallback):
70187        (GamepadsQt):
70188        (WebCore::GamepadsQt::GamepadsQt):
70189        (WebCore::GamepadsQt::~GamepadsQt):
70190        (WebCore::GamepadsQt::isGamepadDevice):
70191        (WebCore::GamepadsQt::onGamePadChange):
70192        (WebCore::GamepadsQt::registerDevice):
70193        (WebCore::GamepadsQt::unregisterDevice):
70194        (WebCore::GamepadsQt::updateGamepadList):
70195        (WebCore::sampleGamepads):
70196
701972012-08-07  Mike Reed  <reed@google.com>
70198
70199        reimplement fastMod w/o (soon to be) private skia macros
70200        https://bugs.webkit.org/show_bug.cgi?id=93370
70201
70202        Reviewed by Adrienne Walker.
70203
70204        fastMod() reimplemented (same functionality) to stop using soon-to-be private macros in
70205        SkMath.h. The new version is functionally identical.
70206
70207        No new tests -- existing layouttests exercise GraphicsContext::strokeArc(), the only caller
70208
70209        * platform/graphics/skia/GraphicsContextSkia.cpp:
70210
702112012-08-07  Brian Anderson  <brianderson@chromium.org>
70212
70213        Add CCDelayBasedTimeSource::setTimebaseAndInterval
70214        https://bugs.webkit.org/show_bug.cgi?id=92825
70215
70216        Reviewed by James Robinson.
70217
70218        Allows CCDelayBaseTimeSource to have it's timebase and interval updated
70219        on the fly.  Accounts for double ticking due to jitter or resetting the
70220        timer multiple times quickly.
70221
70222        CCDelayBasedTimeSourceTest updated with two tests for proper handling
70223        of jittery timebase/interval source and immediate handling of
70224        significant timebase/interval changes.
70225
70226        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
70227        (WebCore::CCDelayBasedTimeSource::CCDelayBasedTimeSource):
70228        (WebCore::CCDelayBasedTimeSource::nextTickTime):
70229        (WebCore):
70230        (WebCore::CCDelayBasedTimeSource::onTimerFired):
70231        (WebCore::CCDelayBasedTimeSource::setTimebaseAndInterval):
70232        (WebCore::CCDelayBasedTimeSource::postNextTickTask):
70233        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
70234
702352012-07-23  Alexandru Chiculita  <achicu@adobe.com>
70236
70237        [CSS Shaders] Reuse precompiled shaders across elements
70238        https://bugs.webkit.org/show_bug.cgi?id=88427
70239
70240        Reviewed by Dean Jackson.
70241
70242        Added CustomFilterProgramInfo as a link between the CustomFilterProgram and the CustomFilterCompiledProgram.
70243        CustomFilterGlobalContext now acts as a cache for the compiled shaders. Note that only the shaders displayed on the page
70244        are cached, making it useful in animations or when more elements share the same shader filter.
70245
70246        For CSS Shaders we need two files, vertex and fragment shaders, so that's why we have a CustomFilterProgram. 
70247        CustomFilterProgram is the platform object, so StyleCustomFilterProgram implements it and is referenced from the RenderStyle.
70248
70249        StyleCustomFilterProgram is also the one that actually keeps references to the CachedShaders and has all the loading logic.
70250        The only problem is that there might be multiple StyleCustomFilterProgram with the same set of CachedShaders.
70251        That's why in this patch I've added CustomFilterProgramInfo as a simple class to be used as a key in a hash map.
70252
70253        For now CustomFilterProgramInfo should act similar to a pair<String, String>. There's only one exception: one of the strings
70254        is allowed to be null. A null string is the placeholder for the default shader.
70255
70256        Note that alpha compositing and blending will be added to the CustomFilterProgramInfo after the mix() 
70257        function parsing will land in https://bugs.webkit.org/show_bug.cgi?id=90101 .
70258
70259        Test: css3/filters/custom/custom-filter-shader-reuse.html
70260
70261        * CMakeLists.txt:
70262        * GNUmakefile.list.am:
70263        * WebCore.gypi:
70264        * WebCore.vcproj/WebCore.vcproj:
70265        * WebCore.xcodeproj/project.pbxproj:
70266        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
70267        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
70268        (WebCore::CustomFilterCompiledProgram::getDefaultShaderString): Returns the default shader based on the type.
70269        (WebCore):
70270        (WebCore::CustomFilterCompiledProgram::compileShader): Added check for isNull and used the default shader in that case.
70271        (WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram): Added call to CustomFilterGlobalContext::removeCompiledProgram.
70272        * platform/graphics/filters/CustomFilterCompiledProgram.h:
70273        (WebCore::CustomFilterCompiledProgram::detachFromGlobalContext): Called from ~CustomFilterGlobalContext, so that it doesn't call into a deleted object later when ~CustomFilterCompiledProgram is called. It should only happen when CustomFilterGlobalContext dies before the 
70274        CustomFilterCompiledPrograms that it caches.
70275        (WebCore):
70276        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
70277        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
70278        (WebCore::CustomFilterGlobalContext::getCompiledProgram): Gets or creates a compiled shader for a specific CustomFilterProgramInfo.
70279        (WebCore):
70280        (WebCore::CustomFilterGlobalContext::removeCompiledProgram): Called by ~CustomFilterCompiledProgram.
70281        * platform/graphics/filters/CustomFilterGlobalContext.h:
70282        (WebCore):
70283        (CustomFilterGlobalContext):
70284        * platform/graphics/filters/CustomFilterProgram.cpp:
70285        (WebCore::CustomFilterProgram::programInfo):
70286        * platform/graphics/filters/CustomFilterProgram.h:
70287        (WebCore):
70288        * platform/graphics/filters/CustomFilterProgramInfo.cpp: Added.
70289        (WebCore):
70290        (WebCore::hashPossiblyNullString): We need to allow null strings in the hash, so this is a helper to check for isNull 
70291        before asking for the hash.
70292        (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
70293        (WebCore::CustomFilterProgramInfo::isEmptyValue):
70294        (WebCore::CustomFilterProgramInfo::isHashTableDeletedValue):
70295        (WebCore::CustomFilterProgramInfo::hash):
70296        (WebCore::CustomFilterProgramInfo::operator==):
70297        * platform/graphics/filters/CustomFilterProgramInfo.h: Added.
70298        (WebCore):
70299        (CustomFilterProgramInfo):
70300        (WebCore::CustomFilterProgramInfo::vertexShaderString):
70301        (WebCore::CustomFilterProgramInfo::fragmentShaderString):
70302        (WebCore::CustomFilterProgramInfoHash::hash):
70303        (WebCore::CustomFilterProgramInfoHash::equal):
70304        (CustomFilterProgramInfoHash): Structures needed to make this a key in the hash map.
70305        (CustomFilterProgramInfoHashTraits):
70306        (WebCore::CustomFilterProgramInfoHashTraits::isEmptyValue): I've used the deleted strings value to mark a deleted
70307        CustomFilterProgramInfo object. Those are not safe to compare to deleted, so there's a need to set safeToCompareToEmptyOrDeleted to false, meaning that there's a need to manually check for empty values.
70308        (WTF):
70309        * platform/graphics/filters/FECustomFilter.cpp:
70310        (WebCore::FECustomFilter::initializeContext): Moved to using the cached shader instead.
70311
703122012-08-07  Florin Malita  <fmalita@chromium.org>
70313
70314        [Chromium] Unreviewed build fix after r124879.
70315
70316        * WebCore.gypi: Remove deleted file references.
70317
703182012-08-07  George Staikos  <staikos@webkit.org>
70319
70320        [BlackBerry] We should fail the HTTP auth silently for non-main loads
70321        in the non-viewer process.
70322        https://bugs.webkit.org/show_bug.cgi?id=93230
70323
70324        Reviewed by Rob Buis.
70325
70326        No way to test this in WebKit.
70327
70328        * platform/network/blackberry/NetworkJob.cpp: Add early return.
70329        (WebCore::NetworkJob::sendRequestWithCredentials):
70330
703312012-08-07  Alexander Pavlov  <apavlov@chromium.org>
70332
70333        Web Inspector: Typing backslash in Console traverses the panel history when using German keyboard layout
70334        https://bugs.webkit.org/show_bug.cgi?id=93357
70335
70336        Reviewed by Vsevolod Vlasov.
70337
70338        For some reason, in the German keyboard layout keyIdentifier for '\' is the same as that for '['
70339        in the ordinary English-US layout.
70340        Remove a too-safe-side check and never switch panels on key combinations that result in "keypress" events.
70341
70342        * inspector/front-end/InspectorView.js:
70343        (WebInspector.InspectorView):
70344        (WebInspector.InspectorView.prototype._keyPress):
70345
703462012-08-07  Robin Cao  <robin.cao@torchmobile.com.cn>
70347
70348        [BlackBerry] GL scissor test is accidentally turned off
70349        https://bugs.webkit.org/show_bug.cgi?id=93360
70350        PR #161020
70351
70352        Reviewed by Antonio Gomes.
70353
70354        The GL scissor test is accidentally turned off inside drawTextures().
70355        This is wrong and should be removed.
70356
70357        * platform/graphics/blackberry/LayerCompositingThread.cpp:
70358        (WebCore::LayerCompositingThread::drawTextures):
70359
703602012-08-07  Abhishek Arya  <inferno@chromium.org>
70361
70362        Crash in InlineFlowBox::deleteLine.
70363        https://bugs.webkit.org/show_bug.cgi?id=88795
70364
70365        Reviewed by Tony Chang.
70366
70367        When we move the fullscreen object from its parent to RenderFullScreen, we forgot to clear the
70368        line box tree underneath the object's containing block and mark it for layout. Before the patch,
70369        the containing block never got laid out and maintained references to removed line boxes (since the
70370        object moved under RenderFullScreen did get laid out and its lineboxes replaced with new ones).
70371
70372        Test: fullscreen/full-screen-line-boxes-crash.html
70373
70374        * rendering/RenderFullScreen.cpp:
70375        (RenderFullScreen::wrapRenderer):
70376
703772012-08-07  Vsevolod Vlasov  <vsevik@chromium.org>
70378
70379        Web Inspector: Do not disable network tracking while profiling cpu.
70380        https://bugs.webkit.org/show_bug.cgi?id=93359
70381
70382        Reviewed by Yury Semikhatsky.
70383
70384        Removed network tracking enabling/disabling machinery.
70385
70386        * inspector/front-end/CPUProfileView.js:
70387        (WebInspector.CPUProfileType.prototype.buttonClicked):
70388        * inspector/front-end/NetworkManager.js:
70389        (WebInspector.NetworkManager.get this):
70390        (WebInspector.NetworkManager.get NetworkAgent):
70391        (WebInspector.NetworkManager):
70392        * inspector/front-end/ResourceTreeModel.js:
70393        (WebInspector.ResourceTreeModel):
70394
703952012-08-07  Alexei Filippov  <alexeif@chromium.org>
70396
70397        Web Inspector: make the MemoryClassInfo class a not-template
70398        https://bugs.webkit.org/show_bug.cgi?id=93265
70399
70400        Reviewed by Yury Semikhatsky.
70401
70402        * bindings/js/ScriptWrappable.h:
70403        (WebCore::ScriptWrappable::reportMemoryUsage):
70404        * bindings/v8/DOMDataStore.cpp:
70405        (WebCore::DOMDataStore::reportMemoryUsage):
70406        * bindings/v8/IntrusiveDOMWrapperMap.h:
70407        (WebCore::ChunkedTable::reportMemoryUsage):
70408        * bindings/v8/ScriptWrappable.h:
70409        (WebCore::ScriptWrappable::reportMemoryUsage):
70410        * bindings/v8/V8Binding.cpp:
70411        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
70412        (WebCore::StringCache::reportMemoryUsage):
70413        * bindings/v8/V8DOMMap.h:
70414        * css/CSSAspectRatioValue.cpp:
70415        (WebCore::CSSAspectRatioValue::reportDescendantMemoryUsage):
70416        * css/CSSBorderImageSliceValue.cpp:
70417        (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
70418        * css/CSSCalculationValue.cpp:
70419        (WebCore::CSSCalcValue::reportDescendantMemoryUsage):
70420        * css/CSSCanvasValue.cpp:
70421        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
70422        * css/CSSCharsetRule.cpp:
70423        (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
70424        * css/CSSComputedStyleDeclaration.cpp:
70425        (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
70426        * css/CSSCrossfadeValue.cpp:
70427        (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
70428        * css/CSSCursorImageValue.cpp:
70429        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
70430        * css/CSSFontFaceRule.cpp:
70431        (WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
70432        * css/CSSFontFaceSrcValue.cpp:
70433        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
70434        * css/CSSFunctionValue.cpp:
70435        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
70436        * css/CSSGradientValue.cpp:
70437        (WebCore::CSSGradientColorStop::reportMemoryUsage):
70438        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
70439        (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
70440        (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
70441        * css/CSSImageGeneratorValue.cpp:
70442        (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
70443        * css/CSSImageSetValue.cpp:
70444        (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
70445        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
70446        * css/CSSImageValue.cpp:
70447        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
70448        * css/CSSImportRule.cpp:
70449        (WebCore::CSSImportRule::reportDescendantMemoryUsage):
70450        * css/CSSInheritedValue.cpp:
70451        (WebCore::CSSInheritedValue::reportDescendantMemoryUsage):
70452        * css/CSSInitialValue.cpp:
70453        (WebCore::CSSInitialValue::reportDescendantMemoryUsage):
70454        * css/CSSLineBoxContainValue.cpp:
70455        (WebCore::CSSLineBoxContainValue::reportDescendantMemoryUsage):
70456        * css/CSSMediaRule.cpp:
70457        (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
70458        * css/CSSPageRule.cpp:
70459        (WebCore::CSSPageRule::reportDescendantMemoryUsage):
70460        * css/CSSPrimitiveValue.cpp:
70461        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
70462        * css/CSSProperty.cpp:
70463        (WebCore::CSSProperty::reportMemoryUsage):
70464        * css/CSSReflectValue.cpp:
70465        (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
70466        * css/CSSRule.cpp:
70467        (WebCore::CSSRule::reportBaseClassMemoryUsage):
70468        * css/CSSRuleList.cpp:
70469        (WebCore::StaticCSSRuleList::reportMemoryUsage):
70470        * css/CSSRuleList.h:
70471        * css/CSSSelectorList.cpp:
70472        (WebCore::CSSSelectorList::reportMemoryUsage):
70473        * css/CSSStyleRule.cpp:
70474        (WebCore::CSSStyleRule::reportDescendantMemoryUsage):
70475        * css/CSSStyleSheet.cpp:
70476        (WebCore::CSSStyleSheet::reportMemoryUsage):
70477        * css/CSSTimingFunctionValue.cpp:
70478        (WebCore::CSSLinearTimingFunctionValue::reportDescendantMemoryUsage):
70479        (WebCore::CSSCubicBezierTimingFunctionValue::reportDescendantMemoryUsage):
70480        (WebCore::CSSStepsTimingFunctionValue::reportDescendantMemoryUsage):
70481        * css/CSSUnicodeRangeValue.cpp:
70482        (WebCore::CSSUnicodeRangeValue::reportDescendantMemoryUsage):
70483        * css/CSSUnknownRule.h:
70484        (WebCore::CSSUnknownRule::reportDescendantMemoryUsage):
70485        * css/CSSValue.cpp:
70486        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
70487        * css/CSSValueList.cpp:
70488        (WebCore::CSSValueList::reportDescendantMemoryUsage):
70489        * css/CSSVariableValue.h:
70490        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
70491        * css/FontFeatureValue.cpp:
70492        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
70493        * css/FontValue.cpp:
70494        (WebCore::FontValue::reportDescendantMemoryUsage):
70495        * css/MediaList.cpp:
70496        (WebCore::MediaQuerySet::reportMemoryUsage):
70497        (WebCore::MediaList::reportMemoryUsage):
70498        * css/MediaQuery.cpp:
70499        (WebCore::MediaQuery::reportMemoryUsage):
70500        * css/MediaQueryExp.cpp:
70501        (WebCore::MediaQueryExp::reportMemoryUsage):
70502        * css/PropertySetCSSStyleDeclaration.cpp:
70503        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
70504        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
70505        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
70506        * css/ShadowValue.cpp:
70507        (WebCore::ShadowValue::reportDescendantMemoryUsage):
70508        * css/StylePropertySet.cpp:
70509        (WebCore::StylePropertySet::reportMemoryUsage):
70510        * css/StyleResolver.cpp:
70511        (WebCore::StyleResolver::Features::reportMemoryUsage):
70512        (WebCore::StyleResolver::collectMatchingRulesForList):
70513        * css/StyleRule.cpp:
70514        (WebCore::StyleRuleBase::reportMemoryUsage):
70515        (WebCore::StyleRule::reportDescendantMemoryUsage):
70516        (WebCore::StyleRulePage::reportDescendantMemoryUsage):
70517        (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
70518        (WebCore::StyleRuleBlock::reportDescendantMemoryUsage):
70519        (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
70520        (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
70521        * css/StyleRuleImport.cpp:
70522        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
70523        * css/StyleSheetContents.cpp:
70524        (WebCore::StyleSheetContents::reportMemoryUsage):
70525        * css/WebKitCSSFilterValue.cpp:
70526        (WebCore::WebKitCSSFilterValue::reportDescendantMemoryUsage):
70527        * css/WebKitCSSKeyframeRule.cpp:
70528        (WebCore::StyleKeyframe::reportMemoryUsage):
70529        (WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
70530        * css/WebKitCSSKeyframesRule.cpp:
70531        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
70532        (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
70533        * css/WebKitCSSMixFunctionValue.cpp:
70534        (WebCore::WebKitCSSMixFunctionValue::reportDescendantMemoryUsage):
70535        * css/WebKitCSSRegionRule.cpp:
70536        (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
70537        * css/WebKitCSSSVGDocumentValue.cpp:
70538        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
70539        * css/WebKitCSSShaderValue.cpp:
70540        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
70541        * css/WebKitCSSTransformValue.cpp:
70542        (WebCore::WebKitCSSTransformValue::reportDescendantMemoryUsage):
70543        * dom/CharacterData.cpp:
70544        (WebCore::CharacterData::reportMemoryUsage):
70545        * dom/ContainerNode.h:
70546        (WebCore::ContainerNode::reportMemoryUsage):
70547        * dom/Document.cpp:
70548        (WebCore::Document::reportMemoryUsage):
70549        * dom/Element.h:
70550        (WebCore::Element::reportMemoryUsage):
70551        * dom/ElementAttributeData.cpp:
70552        (WebCore::ElementAttributeData::reportMemoryUsage):
70553        * dom/MemoryInstrumentation.h:
70554        (MemoryInstrumentation):
70555        (MemoryObjectInfo):
70556        (WebCore::MemoryObjectInfo::reportObjectInfo):
70557        (MemoryClassInfo):
70558        (WebCore::MemoryClassInfo::MemoryClassInfo):
70559        * dom/Node.cpp:
70560        (WebCore::Node::reportMemoryUsage):
70561        * dom/QualifiedName.h:
70562        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
70563        (WebCore::QualifiedName::reportMemoryUsage):
70564        * loader/DocumentLoader.cpp:
70565        (WebCore::DocumentLoader::reportMemoryUsage):
70566        * loader/FrameLoader.cpp:
70567        (WebCore::FrameLoader::reportMemoryUsage):
70568        * loader/ResourceLoader.cpp:
70569        (WebCore::ResourceLoader::reportMemoryUsage):
70570        * loader/cache/CachedCSSStyleSheet.cpp:
70571        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
70572        * loader/cache/CachedFont.cpp:
70573        (WebCore::CachedFont::reportMemoryUsage):
70574        * loader/cache/CachedImage.cpp:
70575        (WebCore::CachedImage::reportMemoryUsage):
70576        * loader/cache/CachedRawResource.cpp:
70577        (WebCore::CachedRawResource::reportMemoryUsage):
70578        * loader/cache/CachedResource.cpp:
70579        (WebCore::CachedResource::reportMemoryUsage):
70580        * loader/cache/CachedResourceHandle.cpp:
70581        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
70582        * loader/cache/CachedResourceLoader.cpp:
70583        (WebCore::CachedResourceLoader::reportMemoryUsage):
70584        * loader/cache/CachedSVGDocument.cpp:
70585        (WebCore::CachedSVGDocument::reportMemoryUsage):
70586        * loader/cache/CachedScript.cpp:
70587        (WebCore::CachedScript::reportMemoryUsage):
70588        * loader/cache/CachedShader.cpp:
70589        (WebCore::CachedShader::reportMemoryUsage):
70590        * loader/cache/CachedXSLStyleSheet.cpp:
70591        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
70592        * loader/cache/MemoryCache.cpp:
70593        (WebCore::MemoryCache::reportMemoryUsage):
70594        * page/Frame.cpp:
70595        (WebCore::Frame::reportMemoryUsage):
70596        * platform/SharedBuffer.cpp:
70597        (WebCore::SharedBuffer::reportMemoryUsage):
70598        * platform/TreeShared.h:
70599        (WebCore::TreeShared::reportMemoryUsage):
70600        * rendering/style/RenderStyle.cpp:
70601        (WebCore::RenderStyle::reportMemoryUsage):
70602        * rendering/style/StyleRareInheritedData.cpp:
70603        (WebCore::StyleRareInheritedData::reportMemoryUsage):
70604        * rendering/style/StyleRareNonInheritedData.cpp:
70605        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
70606        * svg/SVGColor.cpp:
70607        (WebCore::SVGColor::reportDescendantMemoryUsage):
70608        * svg/SVGPaint.cpp:
70609        (WebCore::SVGPaint::reportDescendantMemoryUsage):
70610
706112012-08-02  Simon Hausmann  <simon.hausmann@nokia.com>
70612
70613        [Qt] Remove Qt 4 specific code paths
70614        https://bugs.webkit.org/show_bug.cgi?id=88161
70615
70616        Reviewed by Kenneth Rohde Christiansen.
70617
70618        * Target.pri:
70619        * WebCore.pri:
70620        * bridge/qt/qt_class.cpp:
70621        (JSC::Bindings::QtClass::fallbackObject):
70622        * bridge/qt/qt_instance.cpp:
70623        (JSC::Bindings::QtInstance::getPropertyNames):
70624        (JSC::Bindings::QtInstance::stringValue):
70625        (JSC::Bindings::QtField::setValueToInstance):
70626        * bridge/qt/qt_runtime.h:
70627        (QtConnectionObject):
70628        * bridge/qt/qt_runtime_qt4.cpp: Removed.
70629        * editing/qt/SmartReplaceQt.cpp: Removed.
70630        * page/qt/EventHandlerQt.cpp:
70631        (WebCore::EventHandler::tabsToAllFormControls):
70632        * platform/graphics/GraphicsContext3D.h:
70633        * platform/graphics/OpenGLShims.cpp:
70634        (WebCore::getProcAddress):
70635        * platform/graphics/OpenGLShims.h:
70636        * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
70637        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
70638        (FullScreenVideoWindow::FullScreenVideoWindow):
70639        (FullScreenVideoWindow::keyPressEvent):
70640        (FullScreenVideoWindow::event):
70641        (FullScreenVideoWindow::showFullScreen):
70642        (PlatformVideoWindow::PlatformVideoWindow):
70643        * platform/graphics/qt/GraphicsContext3DQt.cpp:
70644        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
70645        (WebCore::GraphicsContext3DPrivate::makeCurrentIfNeeded):
70646        * platform/graphics/qt/GraphicsContextQt.cpp:
70647        (WebCore::GraphicsContext::releaseWindowsContext):
70648        * platform/graphics/qt/ImageQt.cpp:
70649        (WebCore::BitmapImage::create):
70650        * platform/graphics/qt/SimpleFontDataQt.cpp:
70651        (WebCore::SimpleFontData::platformInit):
70652        * platform/graphics/texmap/TextureMapper.h:
70653        * platform/graphics/texmap/TextureMapperGL.cpp:
70654        (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
70655        * platform/qt/DeviceMotionProviderQt.h:
70656        * platform/qt/DeviceOrientationProviderQt.h:
70657        * platform/qt/KURLQt.cpp:
70658        (WebCore::KURL::operator QUrl):
70659        * platform/qt/PlatformScreenQt.cpp:
70660        (WebCore::screenDepth):
70661        (WebCore::screenDepthPerComponent):
70662        (WebCore::screenIsMonochrome):
70663        (WebCore::screenRect):
70664        (WebCore::screenAvailableRect):
70665        * platform/qt/QWebPageClient.h:
70666        (QWebPageClient):
70667        * platform/qt/RenderThemeQt.cpp:
70668        * platform/text/qt/TextBreakIteratorQt.cpp: Removed.
70669        * plugins/qt/PluginContainerQt.cpp: Removed.
70670        * plugins/qt/PluginContainerQt.h: Removed.
70671        * plugins/qt/PluginPackageQt.cpp:
70672        (WebCore::PluginPackage::isPluginBlacklisted):
70673        * plugins/qt/PluginViewQt.cpp:
70674        (WebCore::PluginView::setFocus):
70675        (WebCore::PluginView::paintUsingXPixmap):
70676        (WebCore::setSharedXEventFields):
70677        (WebCore::PluginView::setNPWindowIfNeeded):
70678        (WebCore::PluginView::setParentVisible):
70679        (WebCore::PluginView::platformGetValue):
70680        (WebCore::PluginView::invalidateRect):
70681        (WebCore::getVisualAndColormap):
70682        (WebCore::PluginView::platformStart):
70683        * plugins/win/PluginViewWin.cpp:
70684        (windowHandleForPageClient):
70685
706862012-08-06  Andrey Kosyakov  <caseq@chromium.org>
70687
70688        Web Inspector: implement reusable progress bar
70689        https://bugs.webkit.org/show_bug.cgi?id=93267
70690
70691        - Generic progress bar implementation to be used
70692            by various long-running operations in inspector.
70693
70694        Test: inspector/progress-bar.html
70695
70696        Reviewed by Pavel Feldman.
70697
70698        * WebCore.gypi: Added ProgressBar.js
70699        * WebCore.vcproj/WebCore.vcproj: ditto.
70700        * inspector/compile-front-end.py: ditto.
70701        * inspector/front-end/AdvancedSearchController.js: renamed style for stop button.
70702        (WebInspector.SearchView):
70703        * inspector/front-end/ProgressBar.js: Added.
70704        (WebInspector.Progress): Interface for both ProgressIndicator and SubProgress.
70705        (WebInspector.Progress.prototype.setTotalWork):
70706        (WebInspector.Progress.prototype.setTitle):
70707        (WebInspector.Progress.prototype.setWorked):
70708        (WebInspector.Progress.prototype.done):
70709        (WebInspector.Progress.prototype.isCanceled):
70710        (WebInspector.ProgressIndicator): A UI control that implements Progress.
70711        (WebInspector.ProgressIndicator.prototype.show):
70712        (WebInspector.ProgressIndicator.prototype.hide):
70713        (WebInspector.ProgressIndicator.prototype.done):
70714        (WebInspector.ProgressIndicator.prototype._cancel):
70715        (WebInspector.ProgressIndicator.prototype.isCanceled):
70716        (WebInspector.ProgressIndicator.prototype.setTitle):
70717        (WebInspector.ProgressIndicator.prototype.setTotalWork):
70718        (WebInspector.ProgressIndicator.prototype.setWorked):
70719        (WebInspector.CompositeProgress): A progress bar that is composed of several SubProgress bars and uses a Progress to display total progress of all tasks.
70720        (WebInspector.CompositeProgress.prototype._childDone):
70721        (WebInspector.CompositeProgress.prototype.createSubProgress):
70722        (WebInspector.CompositeProgress.prototype._update):
70723        (WebInspector.SubProgress): A child of CompositeProgress, implements Progress interface.
70724        (WebInspector.SubProgress.prototype.isCanceled):
70725        (WebInspector.SubProgress.prototype.setTitle):
70726        (WebInspector.SubProgress.prototype.done):
70727        (WebInspector.SubProgress.prototype.setTotalWork):
70728        (WebInspector.SubProgress.prototype.setWorked):
70729        * inspector/front-end/WebKit.qrc: Added ProgressBar.js
70730        * inspector/front-end/inspector.css:
70731        (.progress-bar-stop-button-item):
70732        (.progress-bar-stop-button .glyph):
70733        (.progress-bar-container):
70734        (.progress-bar-container span):
70735        (.progress-bar-container progress):
70736        (.progress-bar-container button.status-bar-item):
70737        * inspector/front-end/inspector.html:
70738
707392012-08-07  Peter Rybin  <peter.rybin@gmail.com>
70740
70741        Web Inspector: display function scope in UI
70742        https://bugs.webkit.org/show_bug.cgi?id=90631
70743
70744        Reviewed by Yury Semikhatsky.
70745
70746        Two new tree element types added: function scope group node and scope node.
70747        Scope node is only used to represent closure and catch scopes. Scopes that
70748        have a real object beneath are represented as a property node.
70749        A method that reads properties from RemoteObject and populate tree element
70750        is factored out from RemoteObjectTreeElement for reuse.
70751
70752        * inspector/front-end/ObjectPropertiesSection.js:
70753        (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
70754        (WebInspector.ObjectPropertyTreeElement.Populate.callback):
70755        (WebInspector.ObjectPropertyTreeElement.Populate):
70756        (WebInspector.FunctionScopeMainTreeElement):
70757        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
70758        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
70759        (WebInspector.FunctionScopeMainTreeElement.prototype.onattach):
70760        (WebInspector.FunctionScopeMainTreeElement.prototype.update):
70761        (WebInspector.ScopeTreeElement):
70762        (WebInspector.ScopeTreeElement.prototype.onpopulate):
70763        (WebInspector.ScopeTreeElement.prototype.onattach):
70764        (WebInspector.ScopeTreeElement.prototype.update):
70765        * inspector/front-end/RemoteObject.js:
70766        (WebInspector.RemoteObjectProperty.fromScopeValue):
70767
70768
707692012-08-07  Vineet Chaudhary  <rgf748@motorola.com>
70770
70771        [V8] Remove custom toV8() calls for TypedArray.
70772        https://bugs.webkit.org/show_bug.cgi?id=93248
70773
70774        Reviewed by Kentaro Hara.
70775
70776        With the support of [TypedArray] we can remove the custom calls toV8().
70777        TypedArray spec : http://www.khronos.org/registry/typedarray/specs/latest/#7
70778
70779        Tests: TestTypedArray.idl
70780        Tests under below folders should pass as this does not cause any behavioral changes.
70781               fast/canvas/webgl
70782               compositing/webgl
70783
70784        * bindings/js/JSInt8ArrayCustom.cpp:
70785        * bindings/js/JSUint8ArrayCustom.cpp:
70786        * bindings/js/JSUint8ClampedArrayCustom.cpp:
70787        * bindings/scripts/CodeGeneratorV8.pm:
70788        (GenerateImplementation): Modified Generator code to generate bindings for toV8().
70789        (IsWrapperType):
70790        (GetTypeNameOfExternalTypedArray): Method to get view type of TypedArray.
70791        * bindings/scripts/test/V8/V8Float64Array.cpp: Tests results.
70792        (WebCore::toV8):
70793        * bindings/v8/custom/V8Float32ArrayCustom.cpp: Removed custom call toV8().
70794        * bindings/v8/custom/V8Float64ArrayCustom.cpp: Ditto.
70795        * bindings/v8/custom/V8Int16ArrayCustom.cpp: Ditto.
70796        * bindings/v8/custom/V8Int32ArrayCustom.cpp: Ditto.
70797        * bindings/v8/custom/V8Int8ArrayCustom.cpp: Ditto.
70798        * bindings/v8/custom/V8Uint16ArrayCustom.cpp: Ditto.
70799        * bindings/v8/custom/V8Uint32ArrayCustom.cpp: Ditto.
70800        * bindings/v8/custom/V8Uint8ArrayCustom.cpp: Ditto.
70801        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: Ditto.
70802        * html/canvas/Int8Array.idl: Using TypedArray.
70803        * html/canvas/Uint8Array.idl: Ditto.
70804        * html/canvas/Uint8ClampedArray.idl: Ditto.
70805
708062012-08-07  Pavel Feldman  <pfeldman@chromium.org>
70807
70808        Web Inspector: [regression r121673] restore link between the command and the result.
70809        https://bugs.webkit.org/show_bug.cgi?id=93280
70810
70811        Reviewed by Vsevolod Vlasov.
70812
70813        Passing lost parameter along.
70814
70815        Test: inspector/console/console-originating-command.html
70816
70817        * inspector/front-end/ConsoleView.js:
70818        (WebInspector.ConsoleView.prototype.runScript.runCallback):
70819        (WebInspector.ConsoleView.prototype.runScript):
70820        (WebInspector.ConsoleView.prototype._printResult):
70821
708222012-08-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
70823
70824        CUSTOM_SCHEME_HANDLER flag should depend on REGISTER_PROTOCOL_HANDLER
70825        https://bugs.webkit.org/show_bug.cgi?id=93081
70826
70827        Reviewed by Adam Barth.
70828
70829        CUSTOM_SCHEME_HANDLER #if guards are enclosed in the REGISTER_PROTOCOL_HANDLER guards.
70830        The whole NavigatorRegisterProtocolHandler interface is conditional on REGISTER_PROTOCOL_HANDLER
70831        CUSTOM_SCHEME_HANDLER-specific methods only are conditional on CUSTOM_SCHEME_HANDLER.
70832
70833        No new tests. No new functionality is added.
70834
70835        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.cpp:
70836        (WebCore::NavigatorRegisterProtocolHandler::registerProtocolHandler):
70837        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.h:
70838        (NavigatorRegisterProtocolHandler):
70839        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.idl:
70840        * Modules/protocolhandler/RegisterProtocolHandlerClient.h:
70841
708422012-08-07  Xingnan Wang  <xingnan.wang@intel.com>
70843
70844        IndexedDB: Size the Vector in encodeInt/encodeVarInt/encodeString
70845        https://bugs.webkit.org/show_bug.cgi?id=91813
70846
70847        Reviewed by Kentaro Hara.
70848
70849        To avoid memory re-allocation in Vector, init the capability or size of Vector in encodeInt(), encodeVarInt(),
70850        encodeBool(), encodeIDBKey() etc.
70851
70852        No new tests - Low level functions covered by existing layout tests and also covered by Chromium
70853        webkit_unit_tests IDBLevelIDBCodingTest.* which validates the sizes of buffers returned by encodeVarInt.
70854
70855        * Modules/indexeddb/IDBLevelDBCoding.cpp:
70856        (WebCore::IDBLevelDBCoding::encodeInt):
70857        (WebCore::IDBLevelDBCoding::encodeVarInt):
70858        (WebCore::IDBLevelDBCoding::encodeString):
70859
708602012-08-06  Arko Saha  <arko@motorola.com>
70861
70862        Microdata: itemType[index] must be undefined for out-of-range index.
70863        https://bugs.webkit.org/show_bug.cgi?id=92988
70864
70865        Reviewed by Kentaro Hara.
70866
70867        Made changes in IndexedGetter property so that it returns undefined
70868        for out-of-range index.
70869        Spec: http://www.w3.org/TR/WebIDL/#idl-indexed-properties
70870        Firefox and Opera's behavior is consistent with the spec. Both returns
70871        undefined for out-of-range index.
70872
70873        Also renamed the function name collectionStringOrNullIndexedPropertyGetter and
70874        setCollectionStringOrNullIndexedGetter to collectionStringOrUndefinedIndexedPropertyGetter
70875        and setCollectionStringOrUndefinedIndexedGetter respectively.
70876
70877        Test: fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
70878
70879        * bindings/scripts/CodeGeneratorJS.pm:
70880        (GenerateImplementation):
70881        * bindings/scripts/CodeGeneratorV8.pm:
70882        (GenerateImplementationIndexer):
70883        * bindings/v8/V8Collection.h:
70884        (WebCore::collectionStringOrUndefinedIndexedPropertyGetter):
70885        (WebCore::setCollectionStringOrUndefinedIndexedGetter):
70886
708872012-08-06  David Grogan  <dgrogan@chromium.org>
70888
70889        IndexedDB: Make leveldb store integer versions and migrate old schemas
70890        https://bugs.webkit.org/show_bug.cgi?id=92883
70891
70892        Reviewed by Tony Chang.
70893
70894        Our first schema change. If an existing DB doesn't have integer
70895        versions, this will add one to all object stores in the origin.
70896
70897        No new tests - chrome test for the migration forthcoming. Will involve
70898        starting with a leveldb directory from an old build of chrome, opening
70899        it up with the migration code in place, and checking the new database.
70900        http://codereview.chromium.org/10826159/
70901
70902        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
70903        (WebCore::putVarInt):
70904        (WebCore):
70905        (WebCore::setUpMetadata):
70906        Uses the ASSERT-but-still-handle-corruption pattern recently discussed
70907        in https://bugs.webkit.org/show_bug.cgi?id=92725#c13.
70908
70909        (WebCore::IDBLevelDBBackingStore::open):
70910        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
70911        Because we can't store negative numbers, store 0 instead of -1.
70912
70913        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
70914        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
70915        * Modules/indexeddb/IDBLevelDBCoding.h:
70916        * Modules/indexeddb/IDBMetadata.h:
70917
709182012-08-06  Sheriff Bot  <webkit.review.bot@gmail.com>
70919
70920        Unreviewed, rolling out r124780.
70921        http://trac.webkit.org/changeset/124780
70922        https://bugs.webkit.org/show_bug.cgi?id=93340
70923
70924        We don't want an incomplete feature set for the chromium
70925        branch cut. (Requested by annacc on #webkit).
70926
70927        * CMakeLists.txt:
70928        * DerivedSources.cpp:
70929        * DerivedSources.make:
70930        * DerivedSources.pri:
70931        * GNUmakefile.list.am:
70932        * Modules/mediasource/MediaSource.cpp: Removed.
70933        * Modules/mediasource/MediaSource.h: Removed.
70934        * Modules/mediasource/MediaSource.idl: Removed.
70935        * Modules/mediasource/MediaSourceRegistry.cpp: Removed.
70936        * Modules/mediasource/MediaSourceRegistry.h: Removed.
70937        * Modules/mediasource/SourceBuffer.cpp:
70938        (WebCore::SourceBuffer::SourceBuffer):
70939        (WebCore::SourceBuffer::buffered):
70940        (WebCore::SourceBuffer::append):
70941        (WebCore::SourceBuffer::abort):
70942        * Modules/mediasource/SourceBuffer.h:
70943        (WebCore::SourceBuffer::create):
70944        (WebCore::SourceBuffer::clear):
70945        (SourceBuffer):
70946        * Modules/mediasource/SourceBufferList.cpp:
70947        * Modules/mediasource/SourceBufferList.h:
70948        * Target.pri:
70949        * WebCore.gypi:
70950        * WebCore.vcproj/WebCore.vcproj:
70951        * WebCore.xcodeproj/project.pbxproj:
70952        * dom/EventTarget.h:
70953        (WebCore):
70954        * dom/EventTargetFactory.in:
70955        * html/DOMURL.cpp:
70956        * html/DOMURL.h:
70957        (WebCore):
70958        (DOMURL):
70959        * html/DOMURL.idl:
70960        * page/DOMWindow.idl:
70961
709622012-08-06  Sheriff Bot  <webkit.review.bot@gmail.com>
70963
70964        Unreviewed, rolling out r124798.
70965        http://trac.webkit.org/changeset/124798
70966        https://bugs.webkit.org/show_bug.cgi?id=93337
70967
70968        We don't want an incomplete feature set for the chromium
70969        branch cut. (Requested by annacc on #webkit).
70970
70971        * html/DOMURL.cpp:
70972        (WebCore::DOMURL::createObjectURL):
70973        * html/PublicURLManager.h:
70974        (WebCore::PublicURLManager::contextDestroyed):
70975        (PublicURLManager):
70976
709772012-08-06  Sheriff Bot  <webkit.review.bot@gmail.com>
70978
70979        Unreviewed, rolling out r124848.
70980        http://trac.webkit.org/changeset/124848
70981        https://bugs.webkit.org/show_bug.cgi?id=93336
70982
70983        Caused 3 tests to crash on chromium Linux32/Mac10.6/Linux
70984        (Requested by toyoshim on #webkit).
70985
70986        * html/HTMLMediaElement.cpp:
70987        (WebCore):
70988        (WebCore::HTMLMediaElement::HTMLMediaElement):
70989        (WebCore::HTMLMediaElement::parseAttribute):
70990        (WebCore::HTMLMediaElement::prepareForLoad):
70991        (WebCore::HTMLMediaElement::loadResource):
70992        (WebCore::HTMLMediaElement::noneSupported):
70993        (WebCore::HTMLMediaElement::mediaEngineError):
70994        (WebCore::HTMLMediaElement::mediaPlayerSourceOpened):
70995        (WebCore::HTMLMediaElement::isValidSourceId):
70996        (WebCore::HTMLMediaElement::seek):
70997        (WebCore::HTMLMediaElement::webkitSourceAddId):
70998        (WebCore::HTMLMediaElement::webkitSourceRemoveId):
70999        (WebCore::HTMLMediaElement::webkitSourceBuffered):
71000        (WebCore::HTMLMediaElement::webkitSourceAppend):
71001        (WebCore::HTMLMediaElement::webkitSourceAbort):
71002        (WebCore::HTMLMediaElement::webkitSourceEndOfStream):
71003        (WebCore::HTMLMediaElement::webkitSourceState):
71004        (WebCore::HTMLMediaElement::setSourceState):
71005        (WebCore::HTMLMediaElement::userCancelledLoad):
71006        (WebCore::HTMLMediaElement::createMediaPlayer):
71007        * html/HTMLMediaElement.h:
71008        (HTMLMediaElement):
71009        * html/HTMLMediaElement.idl:
71010
710112012-08-06  Anna Cavender  <annacc@chromium.org>
71012
71013        Update HTMLMediaElement to the new OO MediaSource API.
71014        https://bugs.webkit.org/show_bug.cgi?id=91775
71015
71016        Reviewed by Eric Carlson.
71017
71018        This patch rips out the old-style MediaSource API and allows a
71019        MediaSource object to be attached to HTMLMediaElement.
71020        http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
71021
71022        Test: http/tests/media/media-source/video-media-source-add-and-remove-buffers.html
71023
71024        Tests: updates to http/tests/media/media-source/*
71025
71026        * html/HTMLMediaElement.cpp:
71027        (WebCore):
71028        (WebCore::HTMLMediaElement::HTMLMediaElement): Remove old style API resources.
71029        (WebCore::HTMLMediaElement::parseAttribute): Remove old style event attributes.
71030        (WebCore::HTMLMediaElement::prepareForLoad): Set source state to "closed".
71031        (WebCore::HTMLMediaElement::loadResource): Get MediaSource object from blob registry
71032            look up and, if found, set it's MediaPlayer pointer to the current MediaPlayer.
71033        (WebCore::HTMLMediaElement::noneSupported): Set source state to "closed".
71034        (WebCore::HTMLMediaElement::mediaEngineError): Set source state to "closed".
71035        (WebCore::HTMLMediaElement::mediaPlayerSourceOpened): Set source state to "open".
71036        (WebCore::HTMLMediaElement::mediaPlayerSourceURL): Change to new blob URL.
71037        (WebCore::HTMLMediaElement::seek): Check if source state is "closed".
71038        (WebCore::HTMLMediaElement::setSourceState): Helper function so that we don't have to
71039            keep checking for m_mediaSource.
71040        (WebCore::HTMLMediaElement::userCancelledLoad): Set source state to "closed".
71041        (WebCore::HTMLMediaElement::createMediaPlayer): If the current MediaPlayer is re-
71042            created, notify the MediaSource and reset its MediaPlayer.
71043
71044        * html/HTMLMediaElement.h: Remove old style API code and add a MediaSource object.
71045        (HTMLMediaElement):
71046        * html/HTMLMediaElement.idl: Remove old style API.
71047
710482012-08-06  Adam Barth  <abarth@webkit.org>
71049
71050        BindingSecurity::shouldAllowAccessToFrame shouldn't use a raw boolean parameter
71051        https://bugs.webkit.org/show_bug.cgi?id=93323
71052
71053        Reviewed by Eric Seidel.
71054
71055        As requested by Eric. This patch also renames the function to match its
71056        counterpart in the JavaScriptCore bindings.
71057
71058        * bindings/generic/BindingSecurity.cpp:
71059        (WebCore::canAccessDocument):
71060        (WebCore::BindingSecurity::shouldAllowAccessToFrame):
71061        (WebCore::BindingSecurity::shouldAllowAccessToNode):
71062        (WebCore::BindingSecurity::allowSettingFrameSrcToJavascriptUrl):
71063        * bindings/generic/BindingSecurity.h:
71064        (BindingSecurity):
71065        * bindings/scripts/CodeGeneratorV8.pm:
71066        (GenerateDomainSafeFunctionGetter):
71067        (GenerateReplaceableAttrSetter):
71068        (GenerateFunctionCallback):
71069        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
71070        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
71071        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
71072        * bindings/v8/ScriptController.cpp:
71073        (WebCore::ScriptController::canAccessFromCurrentOrigin):
71074        * bindings/v8/custom/V8DOMWindowCustom.cpp:
71075        (WebCore::WindowSetTimeoutImpl):
71076        (WebCore::V8DOMWindow::eventAccessorGetter):
71077        (WebCore::V8DOMWindow::eventAccessorSetter):
71078        (WebCore::V8DOMWindow::openerAccessorSetter):
71079        (WebCore::V8DOMWindow::addEventListenerCallback):
71080        (WebCore::V8DOMWindow::removeEventListenerCallback):
71081        (WebCore::V8DOMWindow::showModalDialogCallback):
71082        (WebCore::V8DOMWindow::openCallback):
71083        (WebCore::V8DOMWindow::namedSecurityCheck):
71084        (WebCore::V8DOMWindow::indexedSecurityCheck):
71085        * bindings/v8/custom/V8HistoryCustom.cpp:
71086        (WebCore::V8History::indexedSecurityCheck):
71087        (WebCore::V8History::namedSecurityCheck):
71088        * bindings/v8/custom/V8InjectedScriptManager.cpp:
71089        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
71090        * bindings/v8/custom/V8LocationCustom.cpp:
71091        (WebCore::V8Location::reloadAccessorGetter):
71092        (WebCore::V8Location::replaceAccessorGetter):
71093        (WebCore::V8Location::assignAccessorGetter):
71094        (WebCore::V8Location::toStringCallback):
71095        (WebCore::V8Location::indexedSecurityCheck):
71096        (WebCore::V8Location::namedSecurityCheck):
71097
710982012-08-06  Yuta Kitamura  <yutak@chromium.org>
71099
71100        WebSocket.send() should accept ArrayBufferView
71101        https://bugs.webkit.org/show_bug.cgi?id=90877
71102
71103        Reviewed by Kent Tamura.
71104
71105        Accept ArrayBufferView as an argument of WebSocket.send() to comply with recent change
71106        in specification: <http://html5.org/tools/web-apps-tracker?from=7084&to=7085>.
71107
71108        Once WebSocket.send(ArrayBuffer) was removed from the specification, but added back
71109        in <http://html5.org/tools/web-apps-tracker?from=7202&to=7203>. Thus the functionality
71110        of send(ArrayBuffer) is kept as-is.
71111
71112        Tests: http/tests/websocket/tests/hybi/send-arraybufferview.html
71113               http/tests/websocket/tests/hybi/workers/send-arraybufferview.html
71114
71115        * Modules/websockets/ThreadableWebSocketChannel.h:
71116        Change the signature of send() to receive offset and length so the clients can send
71117        subrange of an ArrayBuffer.
71118        * Modules/websockets/WebSocket.cpp:
71119        (WebCore::WebSocket::send):
71120        WebSocket.send(ArrayBufferView) is added, which puts the sub region of the given
71121        ArrayBuffer into the outgoing frame queue.
71122        * Modules/websockets/WebSocket.h:
71123        * Modules/websockets/WebSocket.idl:
71124        * Modules/websockets/WebSocketChannel.cpp:
71125        (WebCore::WebSocketChannel::send):
71126        * Modules/websockets/WebSocketChannel.h:
71127        (WebSocketChannel):
71128        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
71129        (WebCore::WorkerThreadableWebSocketChannel::send):
71130        (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
71131        (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
71132        Send only necessary part of data to the main thread.
71133        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
71134        (WorkerThreadableWebSocketChannel):
71135        (Bridge):
71136        * bindings/js/JSWebSocketCustom.cpp:
71137        (WebCore::JSWebSocket::send): Accept ArrayBufferView in send().
71138        * bindings/v8/custom/V8WebSocketCustom.cpp:
71139        (WebCore::V8WebSocket::sendCallback): Ditto.
71140
711412012-08-06  James Robinson  <jamesr@chromium.org>
71142
71143        [chromium] Add gyp variable to control which compositor target is depended on
71144        https://bugs.webkit.org/show_bug.cgi?id=93165
71145
71146        Reviewed by Adam Barth.
71147
71148        This adds a use_libcc_for_compositor gyp variable to control whether webcore_platform links in the compositor
71149        code from the webcore_chromium_compositor target or from cc from the chromium repo.
71150
71151        * WebCore.gyp/WebCore.gyp:
71152        * WebCore.gypi:
71153
711542012-08-06  Shinya Kawanaka  <shinyak@chromium.org>
71155
71156        Crash in GenericEventQueue::timerFired since the owner of GenericEventQueue is deleted during dispatching events.
71157        https://bugs.webkit.org/show_bug.cgi?id=92946
71158
71159        Reviewed by Eric Carlson.
71160
71161        In GenericEventQueue::timerFired(), the owner of GenericEventQueue might be deleted.
71162        We have to protect the owner of GenericEventQueue during dispatching events.
71163
71164        Test: media/event-queue-crash.html
71165
71166        * dom/GenericEventQueue.cpp:
71167        (WebCore::GenericEventQueue::timerFired): Added a protection.
71168
711692012-08-06  Joshua Bell  <jsbell@chromium.org>
71170
71171        IndexedDB: Remove IDBRequest::finishCursor() and plumbing
71172        https://bugs.webkit.org/show_bug.cgi?id=93274
71173
71174        Reviewed by Tony Chang.
71175
71176        Delete an unused flag and code for setting it, rendered obsolete in r123275.
71177
71178        No new tests - no functional changes.
71179
71180        * Modules/indexeddb/IDBCursor.cpp:
71181        (WebCore::IDBCursor::close):
71182        * Modules/indexeddb/IDBRequest.cpp:
71183        (WebCore::IDBRequest::IDBRequest):
71184        * Modules/indexeddb/IDBRequest.h:
71185        (IDBRequest):
71186
711872012-08-06  James Robinson  <jamesr@chromium.org>
71188
71189        [chromium] Remove lingering unwrap<>() calls in GraphicsLayerChromium.cpp
71190        https://bugs.webkit.org/show_bug.cgi?id=93319
71191
71192        Reviewed by Adrienne Walker.
71193
71194        Gets rid of all (but one) of the remaining unwrap<LayerChromium>() calls in GraphicsLayer chromium to avoid
71195        punching through the WebLayer API.  Covered by many layout tests, mostly in compositing/
71196
71197        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
71198        (WebCore::GraphicsLayerChromium::willBeDestroyed):
71199        (WebCore::GraphicsLayerChromium::setName):
71200        (WebCore::GraphicsLayerChromium::updateNames):
71201        (WebCore::GraphicsLayerChromium::setMaskLayer):
71202        (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
71203        (WebCore::GraphicsLayerChromium::setContentsToImage):
71204        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
71205        (WebCore::GraphicsLayerChromium::setContentsToMedia):
71206        (WebCore::GraphicsLayerChromium::updateChildList):
71207        (WebCore::GraphicsLayerChromium::setupContentsLayer):
71208        * platform/graphics/chromium/GraphicsLayerChromium.h:
71209        (GraphicsLayerChromium):
71210
712112012-08-06  Adrienne Walker  <enne@google.com>
71212
71213        [chromium] Convert WebScrollbarThemeGeometry from a concrete class to an interface
71214        https://bugs.webkit.org/show_bug.cgi?id=93308
71215
71216        Reviewed by James Robinson.
71217
71218        Convert WebScrollbarThemeGeometry to be an interface. Create a new
71219        WebScrollbarThemeGeometryNative implementation to wrap a native theme
71220        pointer.
71221
71222        Update ScrollbarLayerChromium/CCScrollbarLayerImpl to use a pointer to
71223        this interface rather than a concrete member variable. Because both
71224        layer types need to access the theme during painting or compositing
71225        and either layer could go away at any time, the theme is cloned during
71226        commit rather than dealing with refcounting across threads or having
71227        one layer type be the sole owner.
71228
71229        * WebCore.gypi:
71230        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
71231        (WebCore::createScrollbarLayer):
71232        * platform/chromium/support/WebScrollbarThemeGeometryNative.cpp: Renamed from Source/WebKit/chromium/src/WebScrollbarThemeGeometry.cpp.
71233        (WebKit):
71234        (WebKit::WebScrollbarThemeGeometryNative::create):
71235        (WebKit::WebScrollbarThemeGeometryNative::WebScrollbarThemeGeometryNative):
71236        (WebKit::WebScrollbarThemeGeometryNative::clone):
71237        (WebKit::WebScrollbarThemeGeometryNative::thumbPosition):
71238        (WebKit::WebScrollbarThemeGeometryNative::thumbLength):
71239        (WebKit::WebScrollbarThemeGeometryNative::trackPosition):
71240        (WebKit::WebScrollbarThemeGeometryNative::trackLength):
71241        (WebKit::WebScrollbarThemeGeometryNative::hasButtons):
71242        (WebKit::WebScrollbarThemeGeometryNative::hasThumb):
71243        (WebKit::WebScrollbarThemeGeometryNative::trackRect):
71244        (WebKit::WebScrollbarThemeGeometryNative::thumbRect):
71245        (WebKit::WebScrollbarThemeGeometryNative::minimumThumbLength):
71246        (WebKit::WebScrollbarThemeGeometryNative::scrollbarThickness):
71247        (WebKit::WebScrollbarThemeGeometryNative::backButtonStartRect):
71248        (WebKit::WebScrollbarThemeGeometryNative::backButtonEndRect):
71249        (WebKit::WebScrollbarThemeGeometryNative::forwardButtonStartRect):
71250        (WebKit::WebScrollbarThemeGeometryNative::forwardButtonEndRect):
71251        (WebKit::WebScrollbarThemeGeometryNative::constrainTrackRectToTrackPieces):
71252        (WebKit::WebScrollbarThemeGeometryNative::splitTrack):
71253        * platform/chromium/support/WebScrollbarThemeGeometryNative.h: Added.
71254        (WebKit):
71255        (WebScrollbarThemeGeometryNative):
71256        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
71257        (WebCore::ScrollbarLayerChromium::create):
71258        (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
71259        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
71260        (WebCore::ScrollbarBackgroundPainter::create):
71261        (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
71262        (ScrollbarBackgroundPainter):
71263        (WebCore::ScrollbarThumbPainter::create):
71264        (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
71265        (ScrollbarThumbPainter):
71266        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
71267        (WebCore::ScrollbarLayerChromium::setTexturePriorities):
71268        (WebCore::ScrollbarLayerChromium::update):
71269        * platform/graphics/chromium/ScrollbarLayerChromium.h:
71270        (ScrollbarLayerChromium):
71271        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
71272        (WebCore::CCScrollbarLayerImpl::setScrollbarGeometry):
71273        (WebCore::CCScrollbarLayerImpl::setScrollbarData):
71274        (WebCore::CCScrollbarLayerImpl::appendQuads):
71275        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
71276        (WebCore::CCScrollbarLayerImpl::scrollbarGeometry):
71277        (CCScrollbarLayerImpl):
71278
712792012-08-06  Adam Barth  <abarth@webkit.org>
71280
71281        JSC should use BindingState to determine the activeDOMWindow
71282        https://bugs.webkit.org/show_bug.cgi?id=93307
71283
71284        Reviewed by Eric Seidel.
71285
71286        This patch moves activeDOMWindow from JSDOMBindings.cpp to
71287        BindingState.cpp. This is a first step towards sharing the core
71288        security logic in the bindings between JavaScriptCore and V8. Once the
71289        logic is shared, we will be able to refactor the logic to avoid the
71290        need for DOMWindow::m_securityOrigin.
71291
71292        This patch doesn't actually share any code (yet). It just sets the
71293        stage by creating BindingState as a typedef of ExecState and adding the
71294        appropriate files to the build systems.
71295
71296        This patch also renames activeWindow and firstWindow in the V8 bindings
71297        to activeDOMWindow and firstDOMWindow to match the names in the
71298        JavaScriptCore bindings.
71299
71300        * GNUmakefile.list.am:
71301        * Target.pri:
71302        * UseJSC.cmake:
71303        * WebCore.gypi:
71304        * WebCore.vcproj/WebCore.vcproj:
71305        * WebCore.xcodeproj/project.pbxproj:
71306        * bindings/generic/BindingSecurity.cpp:
71307        (WebCore::canAccessDocument):
71308        * bindings/js/JSBindingsAllInOne.cpp:
71309        * bindings/js/JSDOMBinding.cpp:
71310        (WebCore):
71311        * bindings/js/JSDOMBinding.h:
71312        (WebCore):
71313        * bindings/v8/BindingState.cpp:
71314        (WebCore::activeDOMWindow):
71315        (WebCore::firstDOMWindow):
71316        * bindings/v8/BindingState.h:
71317        (WebCore):
71318        * bindings/v8/custom/V8DOMWindowCustom.cpp:
71319        (WebCore::V8DOMWindow::locationAccessorSetter):
71320        (WebCore::handlePostMessageCallback):
71321        (WebCore::V8DOMWindow::showModalDialogCallback):
71322        (WebCore::V8DOMWindow::openCallback):
71323        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
71324        (WebCore::V8Document::locationAccessorSetter):
71325        * bindings/v8/custom/V8LocationCustom.cpp:
71326        (WebCore::V8Location::hashAccessorSetter):
71327        (WebCore::V8Location::hostAccessorSetter):
71328        (WebCore::V8Location::hostnameAccessorSetter):
71329        (WebCore::V8Location::hrefAccessorSetter):
71330        (WebCore::V8Location::pathnameAccessorSetter):
71331        (WebCore::V8Location::portAccessorSetter):
71332        (WebCore::V8Location::protocolAccessorSetter):
71333        (WebCore::V8Location::searchAccessorSetter):
71334        (WebCore::V8Location::reloadCallback):
71335        (WebCore::V8Location::replaceCallback):
71336        (WebCore::V8Location::assignCallback):
71337
713382012-08-05  Kent Tamura  <tkent@chromium.org>
71339
71340        [Chromium-Mac] Use the default locale only if the browser locale matches to it
71341        https://bugs.webkit.org/show_bug.cgi?id=93227
71342
71343        Reviewed by Hajime Morita.
71344
71345        For a calendar picker, we have used month names and day-of-week names
71346        obtained from the OS default locale. However, the year-month format and
71347        [Today] [Clear] labels are decided with the browser locale. It made
71348        calendar pickers with mixed languages.
71349
71350        To make calendar pickers with a single language, we use the OS default
71351        locale only if the browser locale matches to it.
71352
71353        No new tests. Behavior for locale setting is not testable in WebKit.
71354
71355        * platform/text/mac/LocaleMac.mm:
71356        (WebCore::languageFromLocale):
71357        A helper for determineLocale. This returns the language part of the
71358        specified locale identifier.
71359        (WebCore::determineLocale):
71360        If the browser language matches to the language of the current NSLocale,
71361        returns the current NSLocale. Otherwise, returns a NSLocale with the
71362        browser language.
71363        Note that [NSLolca localeIdentifier] returns a string in
71364        <language>_<country> format though defaultLanguage() in Chromium returns
71365        a string in <language>-<country> format.
71366        (WebCore::LocaleMac::currentLocale):
71367        Use determineLocale.
71368
713692012-08-06  Luke Macpherson   <macpherson@chromium.org>
71370
71371        Handle variables in CSSParser::parseValidPrimitive(), preventing null return value.
71372        https://bugs.webkit.org/show_bug.cgi?id=93235
71373
71374        Reviewed by Tony Chang.
71375
71376        By returning null here (and failing to handle the variable) the current code would cause null pointer dereferences in StyleResolver at several points.
71377        Instead we create a primitive value for the variable reference and return it.
71378
71379        Test: fast/css/variables/invalid-font-reference.html
71380
71381        * css/CSSParser.cpp:
71382        (WebCore::CSSParser::parseValidPrimitive):
71383
713842012-08-06  David Reveman  <reveman@chromium.org>
71385
71386        [Chromium] Rename CCTextureUpdater to CCTextureUpdateQueue.
71387        https://bugs.webkit.org/show_bug.cgi?id=93293
71388
71389        Reviewed by Adrienne Walker.
71390
71391        No new tests.
71392
71393        * WebCore.gypi:
71394        * platform/graphics/chromium/ContentLayerChromium.cpp:
71395        (WebCore::ContentLayerChromium::update):
71396        * platform/graphics/chromium/ContentLayerChromium.h:
71397        (ContentLayerChromium):
71398        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
71399        (WebCore::HeadsUpDisplayLayerChromium::update):
71400        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h:
71401        (HeadsUpDisplayLayerChromium):
71402        * platform/graphics/chromium/ImageLayerChromium.cpp:
71403        (WebCore::ImageLayerChromium::update):
71404        * platform/graphics/chromium/ImageLayerChromium.h:
71405        (ImageLayerChromium):
71406        * platform/graphics/chromium/LayerChromium.h:
71407        (WebCore):
71408        (WebCore::LayerChromium::update):
71409        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
71410        (WebCore::ScrollbarLayerChromium::updatePart):
71411        (WebCore::ScrollbarLayerChromium::update):
71412        * platform/graphics/chromium/ScrollbarLayerChromium.h:
71413        (WebCore):
71414        (ScrollbarLayerChromium):
71415        * platform/graphics/chromium/TextureLayerChromium.cpp:
71416        (WebCore::TextureLayerChromium::update):
71417        * platform/graphics/chromium/TextureLayerChromium.h:
71418        (TextureLayerChromiumClient):
71419        (TextureLayerChromium):
71420        * platform/graphics/chromium/TiledLayerChromium.cpp:
71421        (WebCore::TiledLayerChromium::updateTiles):
71422        (WebCore::TiledLayerChromium::updateContentRect):
71423        * platform/graphics/chromium/TiledLayerChromium.h:
71424        (TiledLayerChromium):
71425        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
71426        (WebCore::CCLayerTreeHost::updateLayers):
71427        (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
71428        (WebCore::CCLayerTreeHost::paintLayerContents):
71429        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
71430        (WebCore):
71431        (CCLayerTreeHost):
71432        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
71433        (WebCore::CCSingleThreadProxy::doCommit):
71434        (WebCore::CCSingleThreadProxy::commitAndComposite):
71435        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
71436        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
71437        (WebCore::CCTextureUpdateController::updateTextures):
71438        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
71439        (WebCore::CCTextureUpdateController::hasMoreUpdates):
71440        (WebCore::CCTextureUpdateController::updateMoreTextures):
71441        * platform/graphics/chromium/cc/CCTextureUpdateController.h:
71442        (WebCore::CCTextureUpdateController::create):
71443        (CCTextureUpdateController):
71444        * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.cpp.
71445        (WebCore):
71446        (WebCore::CCTextureUpdateQueue::CCTextureUpdateQueue):
71447        (WebCore::CCTextureUpdateQueue::~CCTextureUpdateQueue):
71448        (WebCore::CCTextureUpdateQueue::appendFullUpload):
71449        (WebCore::CCTextureUpdateQueue::appendPartialUpload):
71450        (WebCore::CCTextureUpdateQueue::appendCopy):
71451        (WebCore::CCTextureUpdateQueue::takeFirstFullUpload):
71452        (WebCore::CCTextureUpdateQueue::takeFirstPartialUpload):
71453        (WebCore::CCTextureUpdateQueue::takeFirstCopy):
71454        (WebCore::CCTextureUpdateQueue::hasMoreUpdates):
71455        * platform/graphics/chromium/cc/CCTextureUpdateQueue.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
71456        (WebCore):
71457        (CCTextureUpdateQueue):
71458        (WebCore::CCTextureUpdateQueue::fullUploadSize):
71459        (WebCore::CCTextureUpdateQueue::partialUploadSize):
71460        (WebCore::CCTextureUpdateQueue::copySize):
71461        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
71462        (WebCore::CCThreadProxy::beginFrame):
71463        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
71464        * platform/graphics/chromium/cc/CCThreadProxy.h:
71465        (WebCore):
71466        (CCThreadProxy):
71467
714682012-08-06  Anders Carlsson  <andersca@apple.com>
71469
71470        Clear out the TileCache backpointer for all tile layers when the tile cache is destroyed
71471        https://bugs.webkit.org/show_bug.cgi?id=93317
71472        <rdar://problem/11566543>
71473
71474        Reviewed by Dean Jackson.
71475
71476        It seems that in some rare cases, the tile cache layer can be destroyed in the same transaction as tile layers
71477        are being asked to paint. Make sure to null out the TileCache back pointer for all layers in the TileCache destructor.
71478
71479        * platform/graphics/ca/mac/TileCache.mm:
71480        (WebCore::TileCache::~TileCache):
71481
714822012-08-06  Sheriff Bot  <webkit.review.bot@gmail.com>
71483
71484        Unreviewed, rolling out r124816.
71485        http://trac.webkit.org/changeset/124816
71486        https://bugs.webkit.org/show_bug.cgi?id=93311
71487
71488        made some tests crash (Requested by noamr on #webkit).
71489
71490        * platform/graphics/GraphicsLayerAnimation.cpp:
71491        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
71492        (WebCore::GraphicsLayerAnimations::hasActiveAnimationsOfType):
71493        (WebCore::GraphicsLayerAnimations::hasRunningAnimations):
71494        (WebCore::GraphicsLayerAnimations::add):
71495        (WebCore::GraphicsLayerAnimations::pause):
71496        (WebCore::GraphicsLayerAnimations::apply):
71497        * platform/graphics/GraphicsLayerAnimation.h:
71498        (GraphicsLayerAnimation):
71499        (GraphicsLayerAnimations):
71500        (WebCore::GraphicsLayerAnimations::remove):
71501        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
71502        (WebCore::GraphicsLayerTextureMapper::addAnimation):
71503
715042012-08-06  Max Vujovic  <mvujovic@adobe.com>
71505
71506        [CSS Shaders] Parse mix function
71507        https://bugs.webkit.org/show_bug.cgi?id=90101
71508
71509        Reviewed by Dirk Schulze.
71510
71511        Parse the mix function syntax for CSS Shaders as defined in the Filter Effects spec:
71512        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#FilterFunction
71513
71514        The fragment shader argument of the custom filter function can now be a mix function with
71515        the following syntax:
71516        mix(<uri> [ <blend-mode> || <alpha-compositing> ]?)
71517
71518        For example:
71519        -webkit-filter: custom(url(shader.vert) mix(url(shader.frag multiply source-over))
71520
71521        The Filter Effects spec references the Compositing and Blending spec, which defines the
71522        supported blend modes and alpha compositing modes.
71523
71524        Blend modes:
71525        https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blend-mode
71526
71527        This patch adds all of the blend modes in the spec.
71528
71529        Alpha compositing modes:
71530        https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#alpha-compositing
71531
71532        This patch does not add any new CSS values for alpha compositing. Currently, we parse the
71533        values that are the same between the spec and the -webkit-background-composite property,
71534        including:
71535            clear
71536            copy
71537            source-over
71538            source-in
71539            source-out
71540            source-atop
71541            destination-over
71542            destination-in
71543            destination-out
71544            destination-atop
71545            xor
71546
71547        In the future, we may need to add the following CSS values for alpha compositing:
71548            lighter
71549            destination
71550
71551        This is currently under discussion on the www-style mailing list:
71552        http://lists.w3.org/Archives/Public/www-style/2012Aug/0123.html
71553
71554        No new test files. Add test cases in:
71555            css3/filters/script-tests/custom-filter-property-computed-style.js:
71556            css3/filters/script-tests/custom-filter-property-parsing-invalid.js:
71557            css3/filters/script-tests/custom-filter-property-parsing.js:
71558
71559        * GNUmakefile.list.am:
71560        * Target.pri:
71561        * WebCore.gypi:
71562        * WebCore.vcproj/WebCore.vcproj:
71563        * WebCore.xcodeproj/project.pbxproj:
71564        * css/CSSComputedStyleDeclaration.cpp:
71565        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
71566        * css/CSSParser.cpp:
71567        (WebCore::CSSParser::isBlendMode):
71568        (WebCore):
71569        (WebCore::CSSParser::isCompositeOperator):
71570        (WebCore::CSSParser::parseMixFunction):
71571        (WebCore::CSSParser::parseCustomFilter):
71572        * css/CSSParser.h:
71573        (WebCore):
71574        * css/CSSParserValues.h:
71575        (WebCore::CSSParserValueList::currentIndex):
71576        * css/CSSPrimitiveValueMappings.h:
71577        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
71578        (WebCore):
71579        (WebCore::CSSPrimitiveValue::operator BlendMode):
71580        * css/CSSValue.cpp:
71581        (WebCore::CSSValue::reportMemoryUsage):
71582        (WebCore::CSSValue::cssText):
71583        (WebCore::CSSValue::destroy):
71584        (WebCore::CSSValue::cloneForCSSOM):
71585        * css/CSSValue.h:
71586        (WebCore::CSSValue::isWebKitCSSMixFunctionValue):
71587        (CSSValue):
71588        * css/CSSValueKeywords.in:
71589        * css/StyleResolver.cpp:
71590        (WebCore::StyleResolver::collectMatchingRulesForList):
71591        * css/WebKitCSSMixFunctionValue.cpp: Added.
71592        (WebCore):
71593        (WebCore::WebKitCSSMixFunctionValue::WebKitCSSMixFunctionValue):
71594        (WebCore::WebKitCSSMixFunctionValue::customCssText):
71595        (WebCore::WebKitCSSMixFunctionValue::cloneForCSSOM):
71596        (WebCore::WebKitCSSMixFunctionValue::reportDescendantMemoryUsage):
71597        * css/WebKitCSSMixFunctionValue.h: Added.
71598        (WebCore):
71599        (WebKitCSSMixFunctionValue):
71600        (WebCore::WebKitCSSMixFunctionValue::create):
71601        * platform/graphics/GraphicsTypes.h:
71602        * platform/graphics/filters/CustomFilterProgram.cpp:
71603        (WebCore::CustomFilterProgram::CustomFilterProgram):
71604        * platform/graphics/filters/CustomFilterProgram.h:
71605        (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
71606        (CustomFilterProgramMixSettings):
71607        (WebCore):
71608        * rendering/style/StyleCustomFilterProgram.h:
71609        (WebCore::StyleCustomFilterProgram::create):
71610        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram):
71611
716122012-08-06  No'am Rosenthal  <noam.rosenthal@nokia.com>
71613
71614        GraphicsLayerAnimation shouldn't use HashMap<String>
71615        https://bugs.webkit.org/show_bug.cgi?id=93284
71616
71617        Reviewed by Kenneth Rohde Christiansen.
71618
71619        Use a vector containing all the animations instead of a map of String to Vector.
71620        The HashMap contains very few elements, which makes it inefficient relatively to a vector.
71621        This has been shown to be a bottleneck in valgrind.
71622
71623        Covered by existing animation tests.
71624
71625        * platform/graphics/GraphicsLayerAnimation.cpp:
71626        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
71627        (WebCore::GraphicsLayerAnimations::hasActiveAnimationsOfType):
71628        (WebCore::GraphicsLayerAnimations::hasRunningAnimations):
71629        (WebCore::GraphicsLayerAnimations::add):
71630        (WebCore::GraphicsLayerAnimations::pause):
71631        (WebCore::GraphicsLayerAnimations::remove):
71632        (WebCore::GraphicsLayerAnimations::apply):
71633        * platform/graphics/GraphicsLayerAnimation.h:
71634        (GraphicsLayerAnimation):
71635        (WebCore::GraphicsLayerAnimation::name):
71636        (GraphicsLayerAnimations):
71637        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
71638        (WebCore::GraphicsLayerTextureMapper::addAnimation):
71639
716402012-08-06  Beth Dakin  <bdakin@apple.com>
71641
71642        https://bugs.webkit.org/show_bug.cgi?id=93199
71643        REGRESSION (r124489): Crash in FrameView::scrollContentsFastPath when 
71644        scrolling Facebook and Google image search
71645        -and corresponding-
71646        <rdar://problem/12035066>
71647
71648        Reviewed by Anders Carlsson.
71649
71650        As the comment in setShouldUpdateScrollLayerPositionOnMainThread() 
71651        indicates, the goal of adding a call to 
71652        updateMainFrameScrollPositionAndScrollLayerPosition() within that 
71653        function was just to make sure the layer position was up-to-date 
71654        since that is what is not kept up to date when scrolling is happening 
71655        on the scrolling thread. So I'm fixing this crash by having that code 
71656        ONLY update the layer position instead of also updating the scroll 
71657        position, since it was updating the scroll position that led to this 
71658        crash.
71659
71660        New function updateMainFrameScrollLayerPosition() will update JUST 
71661        the layer position.
71662        * page/scrolling/ScrollingCoordinator.h:
71663        (ScrollingCoordinator):        
71664        * page/scrolling/ScrollingCoordinator.cpp:
71665        (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
71666
71667        Update just the layer position here instead of the layer position and 
71668        the scroll position.
71669        (WebCore)::
71670(WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
71671
716722012-08-06  Anna Cavender  <annacc@chromium.org>
71673
71674        MediaSource should use it's own list of source URLs
71675        https://bugs.webkit.org/show_bug.cgi?id=93285
71676
71677        Reviewed by Eric Carlson.
71678
71679        r124780 added MediaSource objects to PublicURLManager's streamURLs list,
71680        piggy-backing on MEDIA_STREAM.  This patch creates a sourceURLs list so
71681        that MediaSource can stand on its own.
71682
71683        Test: builds on Andriod even when MEDIA_STREAM is disabled.
71684
71685        * html/DOMURL.cpp:
71686        (WebCore::DOMURL::createObjectURL):
71687        * html/PublicURLManager.h:
71688        (WebCore::PublicURLManager::contextDestroyed):
71689        (PublicURLManager):
71690        (WebCore::PublicURLManager::sourceURLs):
71691
716922012-08-06  Nico Weber  <thakis@chromium.org>
71693
71694        [chromium/mac] Unbreak debug builds with the 10.7 SDK
71695        https://bugs.webkit.org/show_bug.cgi?id=93202
71696
71697        Reviewed by James Robinson.
71698
71699        FMGetATSFontRefFromFont() is not available with the 10.7 SDK
71700        when targetting 10.6. Don't delete this code completely yet,
71701        it's still used with the 10.6 SDK when targetting 10.6 (which
71702        chromium's build bots use).
71703
71704        * platform/graphics/mac/SimpleFontDataMac.mm:
71705        (WebCore):
71706
717072012-07-31  Ojan Vafai  <ojan@chromium.org>
71708
71709        need tests to ensure flexboxes play nicely with box-sizing
71710        https://bugs.webkit.org/show_bug.cgi?id=70771
71711
71712        Reviewed by Tony Chang.
71713
71714        Anytime we grab the width/height off of the RenderStyle, we need to adjust
71715        it for box-sizing. Fortunately, we only do this two places in RenderFlexibleBox.
71716        Also, delete crossAxisLength since it's unused.
71717
71718        Test: css3/flexbox/box-sizing.html
71719
71720        * rendering/RenderFlexibleBox.cpp:
71721        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
71722        * rendering/RenderFlexibleBox.h:
71723
717242012-08-06  John J. Barton  <johnjbarton@chromium.org>
71725
71726        Web Inspector: WebInspector.linkifyStringAsFragment gives wrong typeof lineNumber
71727        https://bugs.webkit.org/show_bug.cgi?id=93019
71728
71729        Reviewed by Pavel Feldman.
71730
71731        Add test for WebInspector.linkifyStringAsFragment()
71732
71733        * inspector/front-end/ResourceUtils.js:
71734        (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
71735
717362012-08-06  David Reveman  <reveman@chromium.org>
71737
71738        [Chromium] Refactor CCTextureUpdater into CCTextureUpdater and CCTextureUpdateController.
71739        https://bugs.webkit.org/show_bug.cgi?id=92596
71740
71741        Reviewed by Adrienne Walker.
71742
71743        The CCTextureUpdater interface is used by the main thread to queue
71744        texture updates. The CCTextureUpdateController constructor takes a
71745        CCTextureUpdater and contains the logic required to perform texture
71746        uploads and texture copies. This class is only used by the impl thread.
71747
71748        No new tests.
71749
71750        * WebCore.gypi:
71751        * platform/graphics/chromium/LayerRendererChromium.cpp:
71752        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
71753        (WebCore::ScrollbarLayerChromium::updatePart):
71754        * platform/graphics/chromium/TextureCopier.cpp:
71755        (WebCore::AcceleratedTextureCopier::copyTexture):
71756        * platform/graphics/chromium/TextureCopier.h:
71757        (Parameters):
71758        (TextureCopier):
71759        (AcceleratedTextureCopier):
71760        * platform/graphics/chromium/TextureUploader.h:
71761        (Parameters):
71762        (TextureUploader):
71763        * platform/graphics/chromium/ThrottledTextureUploader.cpp:
71764        (WebCore::ThrottledTextureUploader::uploadTexture):
71765        * platform/graphics/chromium/ThrottledTextureUploader.h:
71766        (ThrottledTextureUploader):
71767        * platform/graphics/chromium/TiledLayerChromium.cpp:
71768        (WebCore::TiledLayerChromium::updateTiles):
71769        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
71770        (WebCore::CCSingleThreadProxy::doCommit):
71771        * platform/graphics/chromium/cc/CCTextureUpdateController.cpp: Added.
71772        (WebCore):
71773        (WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
71774        (WebCore::CCTextureUpdateController::updateTextures):
71775        (WebCore::CCTextureUpdateController::CCTextureUpdateController):
71776        (WebCore::CCTextureUpdateController::~CCTextureUpdateController):
71777        (WebCore::CCTextureUpdateController::hasMoreUpdates):
71778        (WebCore::CCTextureUpdateController::updateMoreTextures):
71779        (WebCore::CCTextureUpdateController::updateMoreTexturesSize):
71780        * platform/graphics/chromium/cc/CCTextureUpdateController.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
71781        (WebCore):
71782        (CCTextureUpdateController):
71783        (WebCore::CCTextureUpdateController::create):
71784        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
71785        (WebCore::CCTextureUpdater::appendFullUpload):
71786        (WebCore::CCTextureUpdater::appendPartialUpload):
71787        (WebCore::CCTextureUpdater::appendCopy):
71788        (WebCore::CCTextureUpdater::takeFirstFullUpload):
71789        (WebCore::CCTextureUpdater::takeFirstPartialUpload):
71790        (WebCore::CCTextureUpdater::takeFirstCopy):
71791        (WebCore::CCTextureUpdater::hasMoreUpdates):
71792        * platform/graphics/chromium/cc/CCTextureUpdater.h:
71793        (CCTextureUpdater):
71794        (WebCore::CCTextureUpdater::fullUploadSize):
71795        (WebCore::CCTextureUpdater::partialUploadSize):
71796        (WebCore::CCTextureUpdater::copySize):
71797        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
71798        (WebCore::CCThreadProxy::scheduledActionBeginFrame):
71799        (WebCore::CCThreadProxy::beginFrame):
71800        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
71801        (WebCore::CCThreadProxy::hasMoreResourceUpdates):
71802        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
71803        (WebCore::CCThreadProxy::scheduledActionCommit):
71804        (WebCore::CCThreadProxy::maxPartialTextureUpdates):
71805        * platform/graphics/chromium/cc/CCThreadProxy.h:
71806        (WebCore):
71807        (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
71808        (BeginFrameAndCommitState):
71809        (CCThreadProxy):
71810
718112012-08-06  Douglas Stockwell  <dstockwell@chromium.org>
71812
71813        Crash in WebCore::RenderListItem::updateMarkerLocation
71814        https://bugs.webkit.org/show_bug.cgi?id=90476
71815
71816        Reviewed by Abhishek Arya.
71817
71818        In some cases an anonymous block is destroyed when its last child is
71819        removed. RenderListItem did not expect this and has it's own logic for
71820        cleaning up such blocks when the list marker is removed. Detect this
71821        case in RenderBlock::removeChild to defer to the logic in RenderListItem::updateListMarker.
71822
71823        Test: fast/lists/list-marker-remove-crash.html
71824
71825        * rendering/RenderBlock.cpp:
71826        (WebCore::RenderBlock::removeChild):
71827
718282012-08-06  Shawn Singh  <shawnsingh@chromium.org>
71829
71830        [chromium] Non-preserves-3d requires explicit flattening of screen-space transform.
71831        https://bugs.webkit.org/show_bug.cgi?id=85808
71832
71833        Reviewed by Adrienne Walker.
71834
71835        When computing the screen-space transforms, z values were not
71836        being flattened when they should be. This caused incorrect
71837        clipping due to occlusion tracking that relied on the screen-space
71838        transform. The fix is to flatten the screen-space transform just
71839        like the "sublayerMatrix" is flattened, when the layer does not
71840        preserve-3d.
71841
71842        In addition to making the simple fix, it was convenient to make a
71843        helper function for the flattening code.
71844
71845        Additional unit test added to exercise that flattening code:
71846          CCLayerTreeHostCommonTest.verifyTransformsForFlatteningLayer
71847
71848        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
71849        (WebCore::calculateDrawTransformsInternal):
71850        * platform/graphics/chromium/cc/CCMathUtil.cpp:
71851        (WebCore::CCMathUtil::flattenTransformTo2d):
71852        (WebCore):
71853        * platform/graphics/chromium/cc/CCMathUtil.h:
71854        (CCMathUtil):
71855
718562012-08-06  Anna Cavender  <annacc@chromium.org>
71857
71858        Create a MediaSource object.
71859        https://bugs.webkit.org/show_bug.cgi?id=91773
71860
71861        Reviewed by Eric Carlson.
71862
71863        MediaSource object is needed in order to implement the new
71864        object-oriented MediaSource API:
71865        http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
71866
71867        No new tests - will be able to test after landing:
71868        https://bugs.webkit.org/show_bug.cgi?id=91775
71869 
71870        Adding new files to build files:
71871        * CMakeLists.txt:
71872        * DerivedSources.cpp:
71873        * DerivedSources.make:
71874        * DerivedSources.pri:
71875        * GNUmakefile.list.am:
71876        * Target.pri:
71877        * WebCore.gypi:
71878        * WebCore.vcproj/WebCore.vcproj:
71879        * WebCore.xcodeproj/project.pbxproj:
71880
71881        New MediaSource object:
71882        * Modules/mediasource/MediaSource.cpp: Added.
71883        * Modules/mediasource/MediaSource.h: Added.
71884        * Modules/mediasource/MediaSource.idl: Added.
71885
71886        Create a registry for the blob storage and lookup:
71887        * Modules/mediasource/MediaSourceRegistry.cpp: Added.
71888        * Modules/mediasource/MediaSourceRegistry.h: Added.
71889
71890        Connect SourceBuffer to MediaSource:
71891        * Modules/mediasource/SourceBuffer.cpp:
71892        (WebCore::SourceBuffer::SourceBuffer):
71893        (WebCore::SourceBuffer::buffered): Forward call to MediaSource.
71894        (WebCore::SourceBuffer::append): Ditto.
71895        (WebCore::SourceBuffer::abort): Ditto.
71896        * Modules/mediasource/SourceBuffer.h:
71897        (WebCore::SourceBuffer::create): Add a MediaSource to the constructor.
71898        (WebCore::SourceBuffer::clear): Clear the MediaSource.
71899        (SourceBuffer):
71900        * Modules/mediasource/SourceBufferList.cpp: include SourceBuffer.h
71901        * Modules/mediasource/SourceBufferList.h:
71902 
71903        Make MediaSource an EventTarget:
71904        * dom/EventTarget.h:
71905        (WebCore):
71906        * dom/EventTargetFactory.in:
71907
71908        Enable creation of MediaSource object URL from JavaScript:
71909        * html/DOMURL.cpp:
71910        (WebCore):
71911        (WebCore::DOMURL::createObjectURL):
71912        * html/DOMURL.h:
71913        (WebCore):
71914        (DOMURL):
71915        * html/DOMURL.idl:
71916
71917        New MediaSource constructor:
71918        * page/DOMWindow.idl:
71919
719202012-08-06  Andreas Kling  <kling@webkit.org>
71921
71922        Simplify CSSOM style declaration's grabbing at internals.
71923        <http://webkit.org/b/93261>
71924
71925        Reviewed by Antti Koivisto.
71926
71927        It was already the case that StylePropertySets exposed in CSSOM were guaranteed mutable,
71928        so remove the mechanism to convert immutable backing objects to mutable ones.
71929
71930        Made ensureCSSStyleDeclaration() non-const to prevent callers that may have an
71931        immutable StylePropertySet from wrapping a CSSOM object around it.
71932
71933        * css/PropertySetCSSStyleDeclaration.h:
71934        (PropertySetCSSStyleDeclaration):
71935        * css/PropertySetCSSStyleDeclaration.cpp:
71936        (WebCore::PropertySetCSSStyleDeclaration::length):
71937        (WebCore::PropertySetCSSStyleDeclaration::item):
71938        (WebCore::PropertySetCSSStyleDeclaration::cssText):
71939        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
71940        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
71941        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
71942        (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
71943        (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
71944        (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
71945        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
71946        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
71947        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
71948        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
71949        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
71950        (WebCore::PropertySetCSSStyleDeclaration::copy):
71951        (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
71952        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
71953
71954            Remove indirection and access StylePropertySet member directly.
71955
71956        * css/StylePropertySet.h:
71957        * css/StylePropertySet.cpp:
71958        (WebCore::StylePropertySet::ensureCSSStyleDeclaration):
71959        (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
71960
71961            Made these two non-const. CSSOM wrappers should only ever be constructed around
71962            mutable StylePropertySets.
71963            Also added ASSERT(isMutable()).
71964
71965        * inspector/InspectorCSSAgent.cpp:
71966        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
71967
71968            Cast away the constness of StyledElement::attributeStyle(). It's not pretty,
71969            but these objects are guaranteed mutable, and there's an assertion to protect
71970            us in ensureCSSStyleDeclaration() if something changes in the future.
71971
719722012-08-06  Andrei Poenaru  <poenaru@adobe.com>
71973
71974        Web Inspector: Protocol: Add "namedFlowCreated" and "namedFlowRemoved" events
71975        https://bugs.webkit.org/show_bug.cgi?id=92739
71976
71977        Reviewed by Pavel Feldman.
71978
71979        Implemented "namedFlowCreated" and "namedFlowRemoved" events.
71980
71981        Modified test: inspector/styles/protocol-css-regions-commands.html.
71982
71983        * dom/WebKitNamedFlowCollection.cpp:
71984        (WebCore::WebKitNamedFlowCollection::ensureFlowWithName):
71985        (WebCore::WebKitNamedFlowCollection::discardNamedFlow):
71986        * inspector/Inspector.json:
71987        * inspector/InspectorCSSAgent.cpp:
71988        (WebCore::InspectorCSSAgent::reset):
71989        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
71990        (WebCore):
71991        (WebCore::InspectorCSSAgent::didRemoveNamedFlow):
71992        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
71993        * inspector/InspectorCSSAgent.h:
71994        (InspectorCSSAgent):
71995        * inspector/InspectorInstrumentation.cpp:
71996        (WebCore):
71997        (WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
71998        (WebCore::InspectorInstrumentation::didRemoveNamedFlowImpl):
71999        * inspector/InspectorInstrumentation.h:
72000        (InspectorInstrumentation):
72001        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
72002        (WebCore):
72003        (WebCore::InspectorInstrumentation::didRemoveNamedFlow):
72004        * inspector/front-end/CSSStyleModel.js:
72005        (WebInspector.CSSStyleModel.prototype._namedFlowCreated.callback):
72006        (WebInspector.CSSStyleModel.prototype._namedFlowCreated):
72007        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved.callback):
72008        (WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
72009        (WebInspector.CSSDispatcher.prototype.styleSheetChanged):
72010        (WebInspector.CSSDispatcher.prototype.namedFlowCreated):
72011        (WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
72012
720132012-08-06  Abhishek Arya  <inferno@chromium.org>
72014
72015        Crash in FrameLoader::stopAllLoaders.
72016        https://bugs.webkit.org/show_bug.cgi?id=90805
72017
72018        Reviewed by Nate Chapin.
72019
72020        Calling m_provisionalDocumentLoader->stopLoading() can blow away the frame
72021        from underneath. Protect it with a RefPtr.
72022
72023        No new tests. We don't have a reliable testcase to reproduce this. However,
72024        the crash and free stack from ClusterFuzz point clearly at the bug.
72025
72026        * loader/FrameLoader.cpp:
72027        (WebCore::FrameLoader::stopAllLoaders):
72028
720292012-08-06  Hironori Bono  <hbono@chromium.org>
72030
72031        Rolling out my r123067 and r123572
72032        https://bugs.webkit.org/show_bug.cgi?id=93234
72033
72034        Reviewed by Ryosuke Niwa.
72035
72036        This change manually rolls out my r123067 and r123572 (except layout tests)
72037        because it renders RTL text to a wrong place when an RTL element shows a
72038        vertical scrollbar at its left side.
72039
72040        No new tests because this change rolls out my changes.
72041
72042        * dom/Element.cpp:
72043        (WebCore::Element::clientLeft):
72044        * rendering/RenderBlock.cpp:
72045        (WebCore::RenderBlock::addOverflowFromPositionedObjects):
72046        (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
72047        (WebCore::RenderBlock::paintObject):
72048        * rendering/RenderBox.cpp:
72049        (WebCore::RenderBox::topLeftLocationOffset):
72050
720512012-08-06  Andrei Bucur  <abucur@adobe.com>
72052
72053        [CSS Regions] Add the NamedFlow.getRegions() API
72054        https://bugs.webkit.org/show_bug.cgi?id=93240
72055
72056        Reviewed by Andreas Kling.
72057
72058        This patch adds the NamedFlow.getRegions() API call as specified by http://www.w3.org/TR/2012/WD-css3-regions-20120503/#dom-named-flow .
72059        For now, WebKit supports only one type of regions, Element. The Region interface will be introduced when other interfaces will be capable
72060        of becoming regions.
72061
72062        New test: fast/regions/webkit-named-flow-get-regions.html
72063
72064        * dom/WebKitNamedFlow.cpp:
72065        (WebCore::WebKitNamedFlow::getRegionsByContent): Add a check not to include the pseudo-elements that are regions; those don't have a node attached.
72066        (WebCore::WebKitNamedFlow::getRegions):
72067        (WebCore):
72068        * dom/WebKitNamedFlow.h:
72069        (WebKitNamedFlow):
72070        * dom/WebKitNamedFlow.idl:
72071
720722012-08-06  Andrei Bucur  <abucur@adobe.com>
72073
72074        [CSS Regions] Rename regionOverflow to regionOverset
72075        https://bugs.webkit.org/show_bug.cgi?id=93256
72076
72077        Reviewed by Andreas Kling.
72078
72079        Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/#dom-region-regionoverset
72080        The regionOverflow property has been renamed to regionOverset in the latest working draft. This patch applies the change both externally and
72081        internally in the code.
72082
72083        Tests: No new tests because this is not a functional change.
72084
72085        * dom/Element.cpp:
72086        (WebCore::Element::renderRegion): Convenience method to access the renderer for a region element.
72087        (WebCore):
72088        (WebCore::Element::webkitRegionOverset):
72089        * dom/Element.h:
72090        (WebCore):
72091        * dom/Element.idl:
72092        * rendering/RenderFlowThread.cpp:
72093        (WebCore::RenderFlowThread::paintIntoRegion):
72094        (WebCore::RenderFlowThread::hitTestRegion):
72095        (WebCore::RenderFlowThread::repaintRectangleInRegions):
72096        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
72097        * rendering/RenderRegion.cpp:
72098        (WebCore::RenderRegion::regionOversetRect):
72099        * rendering/RenderRegion.h:
72100        (RenderRegion):
72101
721022012-08-06  Sergey Rogulenko  <rogulenko@google.com>
72103
72104        Web Inspector: a tiny refactoring of Highlighter in InspectorDOMAgent
72105        https://bugs.webkit.org/show_bug.cgi?id=93257
72106
72107        Reviewed by Pavel Feldman.
72108
72109        Moving error string setting inside highlightConfigFromInspectorObject.
72110
72111        * inspector/InspectorDOMAgent.cpp:
72112        (WebCore::InspectorDOMAgent::setSearchingForNode):
72113        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
72114        (WebCore::InspectorDOMAgent::highlightNode):
72115        * inspector/InspectorDOMAgent.h:
72116        (InspectorDOMAgent):
72117
721182012-08-03  Yury Semikhatsky  <yurys@chromium.org>
72119
72120        Web Inspector: add memory instrumentation for CSSValue and its descendants
72121        https://bugs.webkit.org/show_bug.cgi?id=93130
72122
72123        Reviewed by Pavel Feldman.
72124
72125        Added memory footprint reporting routine to CSSValue and its descendants.
72126
72127        Memory reporing for CSSValue is organized in a following way:
72128        - CSSValue implements reportMemoryUsage method that switches by the value
72129          type and calls reportDescendantMemoryUsage on the concrete type
72130        - There may be some intermediate classes in the inheritance chain between
72131          CSSValue and the leaf class implementing reportDescendantMemoryUsage. Those
72132          intermediate classes implement reportBaseClassMemoryUsage method that can
72133          be called from a descendant to collect memory information for the base class
72134          members. Having reportDescendantMemoryUsage only on the leaf classes prevents
72135          us from accidentally adding the intermediate classes to the switch block
72136          in the CSSValue::reportMemoryUsage.
72137
72138        * css/CSSAspectRatioValue.cpp:
72139        (WebCore::CSSAspectRatioValue::reportDescendantMemoryUsage):
72140        (WebCore):
72141        * css/CSSAspectRatioValue.h:
72142        (CSSAspectRatioValue):
72143        * css/CSSBorderImageSliceValue.cpp:
72144        (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
72145        (WebCore):
72146        * css/CSSBorderImageSliceValue.h:
72147        (CSSBorderImageSliceValue):
72148        * css/CSSCalculationValue.cpp:
72149        (WebCore):
72150        (WebCore::CSSCalcValue::reportDescendantMemoryUsage):
72151        (CSSCalcPrimitiveValue):
72152        * css/CSSCalculationValue.h:
72153        (CSSCalcExpressionNode):
72154        (CSSCalcValue):
72155        * css/CSSCanvasValue.cpp:
72156        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
72157        (WebCore):
72158        * css/CSSCanvasValue.h:
72159        (CSSCanvasValue):
72160        * css/CSSCrossfadeValue.cpp:
72161        (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
72162        (WebCore):
72163        * css/CSSCrossfadeValue.h:
72164        (CSSCrossfadeValue):
72165        * css/CSSCursorImageValue.cpp:
72166        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
72167        (WebCore):
72168        * css/CSSCursorImageValue.h:
72169        (CSSCursorImageValue):
72170        * css/CSSFontFaceSrcValue.cpp:
72171        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
72172        (WebCore):
72173        * css/CSSFontFaceSrcValue.h:
72174        (CSSFontFaceSrcValue):
72175        * css/CSSFunctionValue.cpp:
72176        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
72177        (WebCore):
72178        * css/CSSFunctionValue.h:
72179        (CSSFunctionValue):
72180        * css/CSSGradientValue.cpp:
72181        (WebCore::CSSGradientColorStop::reportMemoryUsage):
72182        (WebCore):
72183        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
72184        (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
72185        (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
72186        * css/CSSGradientValue.h:
72187        (CSSGradientColorStop):
72188        (CSSGradientValue):
72189        (CSSLinearGradientValue):
72190        (CSSRadialGradientValue):
72191        * css/CSSImageGeneratorValue.cpp:
72192        (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
72193        (WebCore):
72194        * css/CSSImageGeneratorValue.h:
72195        (CSSImageGeneratorValue):
72196        * css/CSSImageSetValue.cpp:
72197        (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
72198        (WebCore):
72199        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
72200        * css/CSSImageSetValue.h:
72201        (ImageWithScale):
72202        (CSSImageSetValue):
72203        * css/CSSImageValue.cpp:
72204        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
72205        (WebCore):
72206        * css/CSSImageValue.h:
72207        (CSSImageValue):
72208        * css/CSSInheritedValue.cpp:
72209        (WebCore::CSSInheritedValue::reportDescendantMemoryUsage):
72210        (WebCore):
72211        * css/CSSInheritedValue.h:
72212        (CSSInheritedValue):
72213        * css/CSSInitialValue.cpp:
72214        (WebCore::CSSInitialValue::reportDescendantMemoryUsage):
72215        (WebCore):
72216        * css/CSSInitialValue.h:
72217        (CSSInitialValue):
72218        * css/CSSLineBoxContainValue.cpp:
72219        (WebCore::CSSLineBoxContainValue::reportDescendantMemoryUsage):
72220        (WebCore):
72221        * css/CSSLineBoxContainValue.h:
72222        (CSSLineBoxContainValue):
72223        * css/CSSPrimitiveValue.cpp:
72224        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
72225        (WebCore):
72226        * css/CSSPrimitiveValue.h:
72227        (CSSPrimitiveValue):
72228        * css/CSSReflectValue.cpp:
72229        (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
72230        (WebCore):
72231        * css/CSSReflectValue.h:
72232        (CSSReflectValue):
72233        * css/CSSTimingFunctionValue.cpp:
72234        (WebCore::CSSLinearTimingFunctionValue::reportDescendantMemoryUsage):
72235        (WebCore):
72236        (WebCore::CSSCubicBezierTimingFunctionValue::reportDescendantMemoryUsage):
72237        (WebCore::CSSStepsTimingFunctionValue::reportDescendantMemoryUsage):
72238        * css/CSSTimingFunctionValue.h:
72239        (CSSLinearTimingFunctionValue):
72240        (CSSCubicBezierTimingFunctionValue):
72241        (CSSStepsTimingFunctionValue):
72242        * css/CSSUnicodeRangeValue.cpp:
72243        (WebCore::CSSUnicodeRangeValue::reportDescendantMemoryUsage):
72244        (WebCore):
72245        * css/CSSUnicodeRangeValue.h:
72246        (CSSUnicodeRangeValue):
72247        * css/CSSValue.cpp:
72248        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
72249        (TextCloneCSSValue):
72250        (WebCore::CSSValue::reportMemoryUsage):
72251        (WebCore):
72252        * css/CSSValue.h:
72253        (WebCore):
72254        (CSSValue):
72255        * css/CSSValueList.cpp:
72256        (WebCore::CSSValueList::reportDescendantMemoryUsage):
72257        (WebCore):
72258        * css/CSSValueList.h:
72259        (CSSValueList):
72260        * css/CSSVariableValue.h:
72261        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
72262        (CSSVariableValue):
72263        * css/FontFeatureValue.cpp:
72264        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
72265        (WebCore):
72266        * css/FontFeatureValue.h:
72267        (FontFeatureValue):
72268        * css/FontValue.cpp:
72269        (WebCore::FontValue::reportDescendantMemoryUsage):
72270        (WebCore):
72271        * css/FontValue.h:
72272        (FontValue):
72273        * css/MediaQueryExp.cpp:
72274        (WebCore::MediaQueryExp::reportMemoryUsage):
72275        * css/ShadowValue.cpp:
72276        (WebCore::ShadowValue::reportDescendantMemoryUsage):
72277        (WebCore):
72278        * css/ShadowValue.h:
72279        (ShadowValue):
72280        * css/StyleResolver.cpp:
72281        (WebCore::StyleResolver::collectMatchingRulesForList):
72282        * css/WebKitCSSFilterValue.cpp:
72283        (WebCore::WebKitCSSFilterValue::reportDescendantMemoryUsage):
72284        (WebCore):
72285        * css/WebKitCSSFilterValue.h:
72286        (WebKitCSSFilterValue):
72287        * css/WebKitCSSSVGDocumentValue.cpp:
72288        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
72289        (WebCore):
72290        * css/WebKitCSSSVGDocumentValue.h:
72291        (WebKitCSSSVGDocumentValue):
72292        * css/WebKitCSSShaderValue.cpp:
72293        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
72294        (WebCore):
72295        * css/WebKitCSSShaderValue.h:
72296        (WebKitCSSShaderValue):
72297        * css/WebKitCSSTransformValue.cpp:
72298        (WebCore::WebKitCSSTransformValue::reportDescendantMemoryUsage):
72299        (WebCore):
72300        * css/WebKitCSSTransformValue.h:
72301        (WebKitCSSTransformValue):
72302        * dom/MemoryInstrumentation.cpp:
72303        (WebCore::MemoryInstrumentation::addString):
72304        (WebCore):
72305        * dom/MemoryInstrumentation.h:
72306        (MemoryInstrumentation):
72307        (WebCore::MemoryClassInfo::addHashCountedSet):
72308        (WebCore::MemoryClassInfo::addMember):
72309        * svg/SVGColor.cpp:
72310        (WebCore::SVGColor::reportDescendantMemoryUsage):
72311        (WebCore):
72312        * svg/SVGColor.h:
72313        (SVGColor):
72314        * svg/SVGPaint.cpp:
72315        (WebCore::SVGPaint::reportDescendantMemoryUsage):
72316        (WebCore):
72317        * svg/SVGPaint.h:
72318        (SVGPaint):
72319
723202012-08-06  Yury Semikhatsky  <yurys@chromium.org>
72321
72322        Web Inspector: rename WorkerAgent.setWorkerInspectionEnabled to WorkerAgent.enable and make it return error
72323        https://bugs.webkit.org/show_bug.cgi?id=92545
72324
72325        Reviewed by Pavel Feldman.
72326
72327        - Replaced WorkerAgent.setWorkerInspectionEnabled with WorkerAgent.enable/disable
72328        - Replaced Preferences.exposeWorkersInspection with InspectorFrontendHost.canInspectWorkers()
72329          that tells if inspector front-end on the given platform can launch dedicated worker
72330          front-end.
72331
72332        * inspector/Inspector.json:
72333        * inspector/InspectorFrontendClient.h:
72334        (InspectorFrontendClient):
72335        * inspector/InspectorFrontendClientLocal.h:
72336        (WebCore::InspectorFrontendClientLocal::canInspectWorkers):
72337        * inspector/InspectorFrontendHost.cpp:
72338        (WebCore::InspectorFrontendHost::canInspectWorkers):
72339        (WebCore):
72340        * inspector/InspectorFrontendHost.h:
72341        (InspectorFrontendHost):
72342        * inspector/InspectorFrontendHost.idl:
72343        * inspector/InspectorWorkerAgent.cpp:
72344        (WebCore::InspectorWorkerAgent::enable):
72345        (WebCore):
72346        (WebCore::InspectorWorkerAgent::disable):
72347        * inspector/InspectorWorkerAgent.h:
72348        (InspectorWorkerAgent):
72349        * inspector/front-end/InspectorFrontendHostStub.js:
72350        (.WebInspector.InspectorFrontendHostStub.prototype.setZoomFactor):
72351        (.WebInspector.InspectorFrontendHostStub.prototype.canInspectWorkers):
72352        * inspector/front-end/ScriptsPanel.js:
72353        * inspector/front-end/Settings.js:
72354
723552012-08-06  Mario Sanchez Prada  <msanchez@igalia.com>
72356
72357        [WK2][GTK] Improvements for the new spell-checking API
72358        https://bugs.webkit.org/show_bug.cgi?id=93262
72359
72360        Reviewed by Carlos Garcia Campos.
72361
72362        Provide a way to ask TextCheckerEnchant helper class for the list
72363        of languages currently available for the spell checking feature.
72364
72365        * platform/text/gtk/TextCheckerEnchant.cpp:
72366        (enchantDictDescribeCallback): Renamed from
72367        getAvailableDictionariesCallback, for consistency.
72368        (TextCheckerEnchant::updateSpellCheckingLanguages): Updated usage
72369        of getAvailableDictionariesCallback to enchantDictDescribeCallback.
72370        (TextCheckerEnchant::getSpellCheckingLanguages): New. Will build
72371        and return a String with a comma-separated list of languages
72372        currently in use by the spell checking feature.
72373        * platform/text/gtk/TextCheckerEnchant.h:
72374        (TextCheckerEnchant): Added new function getSpellCheckingLanguages.
72375
723762012-08-06  Andreas Kling  <kling@webkit.org>
72377
72378        Pass presentational attribute StylePropertySets by const pointer where possible.
72379        <http://webkit.org/b/93187>
72380
72381        Reviewed by Antti Koivisto.
72382
72383        Minor cleanup to enforce (at compile time) the fact that no methods that have the
72384        side-effect of incurring immutable-to-mutable-StylePropertySet conversion.
72385
72386        This was already covered by assertions, we're just making it stricter and adding
72387        some documentational flavor.
72388
72389        * css/StyleResolver.cpp:
72390        (WebCore::StyleResolver::addElementStyleProperties):
72391        (WebCore::StyleResolver::collectMatchingRulesForList):
72392        * css/StyleResolver.h:
72393        (StyleResolver):
72394        * dom/ElementAttributeData.h:
72395        (WebCore::ElementAttributeData::attributeStyle):
72396        * dom/StyledElement.h:
72397        (WebCore::StyledElement::additionalAttributeStyle):
72398        (StyledElement):
72399        (WebCore::StyledElement::attributeStyle):
72400        * html/HTMLTableCellElement.cpp:
72401        (WebCore::HTMLTableCellElement::additionalAttributeStyle):
72402        * html/HTMLTableCellElement.h:
72403        (HTMLTableCellElement):
72404        * html/HTMLTableColElement.cpp:
72405        (WebCore::HTMLTableColElement::additionalAttributeStyle):
72406        * html/HTMLTableColElement.h:
72407        (HTMLTableColElement):
72408        * html/HTMLTableElement.cpp:
72409        (WebCore::HTMLTableElement::additionalAttributeStyle):
72410        (WebCore::HTMLTableElement::additionalCellStyle):
72411        (WebCore::HTMLTableElement::additionalGroupStyle):
72412        * html/HTMLTableElement.h:
72413        (HTMLTableElement):
72414        * html/HTMLTableSectionElement.cpp:
72415        (WebCore::HTMLTableSectionElement::additionalAttributeStyle):
72416        * html/HTMLTableSectionElement.h:
72417        (HTMLTableSectionElement):
72418        * inspector/InspectorCSSAgent.cpp:
72419        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
72420
724212012-08-06  Kihong Kwon  <kihong.kwon@samsung.com>
72422
72423        Add DeviceProximityEvent interface
72424        https://bugs.webkit.org/show_bug.cgi?id=92942
72425
72426        Reviewed by Kentaro Hara.
72427
72428        Spec : http://www.w3.org/TR/proximity/#idl-def-DeviceProximityEvent
72429
72430        Add DeviceProximityEvent interface of Proximity Events.
72431        And add onwebkitdeviceproximity event handler to the DOMWindow.
72432
72433        Tests: fast/dom/Proximity/check-event-deviceproximity.html
72434               fast/dom/Proximity/create-event-deviceproximity.html
72435               fast/events/constructors/device-proximity-event-constructor.html
72436
72437        * CMakeLists.txt:
72438        * Modules/proximity/DeviceProximityEvent.cpp: Added.
72439        (WebCore):
72440        (WebCore::DeviceProximityEvent::DeviceProximityEvent):
72441        * Modules/proximity/DeviceProximityEvent.h: Added.
72442        (WebCore):
72443        (WebCore::DeviceProximityEventInit::DeviceProximityEventInit):
72444        (DeviceProximityEventInit):
72445        (DeviceProximityEvent):
72446        (WebCore::DeviceProximityEvent::~DeviceProximityEvent):
72447        (WebCore::DeviceProximityEvent::create):
72448        (WebCore::DeviceProximityEvent::value):
72449        (WebCore::DeviceProximityEvent::min):
72450        (WebCore::DeviceProximityEvent::max):
72451        (WebCore::DeviceProximityEvent::interfaceName):
72452        * Modules/proximity/DeviceProximityEvent.idl: Added.
72453        * dom/EventNames.h:
72454        (WebCore):
72455        * dom/EventNames.in:
72456        * page/DOMWindow.h:
72457        (DOMWindow):
72458        * page/DOMWindow.idl:
72459
724602012-08-06  Carlos Garcia Campos  <cgarcia@igalia.com>
72461
72462        Unreviewed. Fix make distcheck.
72463
72464        * GNUmakefile.list.am: Remove unexistent header file.
72465
724662012-08-06  Vineet Chaudhary  <rgf748@motorola.com>
72467
72468        [JSC] Remove custom JSBindings for constructArrayBufferView()
72469        https://bugs.webkit.org/show_bug.cgi?id=93097
72470
72471        Reviewed by Kentaro Hara.
72472
72473        Currently TypedArray files have the custom implementation of constructArrayBufferView().
72474        We can can remove these modifying CodeGeneratorJS.pm
72475
72476        Tests: TestTypedArray.idl
72477
72478        * bindings/js/JSFloat32ArrayCustom.cpp: Removed custom call constructArrayBufferView().
72479        * bindings/js/JSFloat64ArrayCustom.cpp: Ditto.
72480        * bindings/js/JSInt16ArrayCustom.cpp: Ditto.
72481        * bindings/js/JSInt32ArrayCustom.cpp: Ditto.
72482        * bindings/js/JSUint16ArrayCustom.cpp: Ditto.
72483        * bindings/js/JSUint32ArrayCustom.cpp: Ditto.
72484        * bindings/scripts/CodeGeneratorJS.pm: Modified Generator code to generate bindings for
72485        constructArrayBufferView()
72486        (GenerateConstructorDefinition):
72487        * bindings/scripts/IDLAttributes.txt: Added [TypedArray] attribute.
72488        * bindings/scripts/test/JS/JSFloat64Array.cpp: Tests result.
72489        (WebCore::JSFloat64ArrayConstructor::getConstructData):
72490        (WebCore::JSFloat64ArrayConstructor::constructJSFloat64Array):
72491        * bindings/scripts/test/TestTypedArray.idl: Test.
72492        * html/canvas/Float32Array.idl: Using [TypedArray].
72493        * html/canvas/Float64Array.idl: Ditto.
72494        * html/canvas/Int16Array.idl: Ditto.
72495        * html/canvas/Int32Array.idl: Ditto.
72496        * html/canvas/Uint16Array.idl: Ditto.
72497        * html/canvas/Uint32Array.idl: Ditto.
72498
724992012-08-06  Shinya Kawanaka  <shinyak@chromium.org>
72500
72501        AuthorShadowDOM for progress element
72502        https://bugs.webkit.org/show_bug.cgi?id=91969
72503
72504        Reviewed by Hajime Morita.
72505
72506        We add support for AuthorShadowDOM for progress element.
72507
72508        According to the Shadow DOM spec, a progress element should behave like having a UserAgentShadowRoot and
72509        an element in UserAgentShadowRoot draws a real 'progress' bar. In this patch, we change the inner structure
72510        of a progress element so that we can distribute an element having RenderProgress to AuthorShadowDOM.
72511
72512        Before this patch, a progress element has the following inner structure.
72513
72514            <progress>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
72515                               |
72516                               +-- ProgressBarElement
72517                               |
72518                               +-- ProgressValueElement
72519
72520        After this patch, a progress element will have the following inner structure.
72521
72522            <progress>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
72523                               |
72524                               +-- ProgressInnerElement
72525                                           |
72526                                           +-- ProgressBarElement
72527                                           |
72528                                           +-- ProgressValueElement
72529
72530
72531        Tests: fast/dom/shadow/shadowdom-for-progress-dynamic.html
72532               fast/dom/shadow/shadowdom-for-progress-multiple.html
72533               fast/dom/shadow/shadowdom-for-progress-with-style.html
72534               fast/dom/shadow/shadowdom-for-progress-without-appearance.html
72535               fast/dom/shadow/shadowdom-for-progress-without-shadow-element.html
72536               fast/dom/shadow/shadowdom-for-progress.html
72537
72538        * css/html.css:
72539        (progress::-webkit-progress-inner-element):
72540        * html/HTMLProgressElement.cpp:
72541        (WebCore::HTMLProgressElement::HTMLProgressElement):
72542        (WebCore::HTMLProgressElement::createRenderer):
72543        (WebCore::HTMLProgressElement::renderProgress): Returns RenderProgress gotten from UserAgentShadowDOM.
72544        (WebCore):
72545        (WebCore::HTMLProgressElement::willAddAuthorShadowRoot):
72546        (WebCore::HTMLProgressElement::didElementStateChange):
72547        (WebCore::HTMLProgressElement::createShadowSubtree): Creates a new Shadow DOM structure.
72548        * html/HTMLProgressElement.h:
72549        (WebCore):
72550        (WebCore::HTMLProgressElement::hasAuthorShadowRoot):
72551        (HTMLProgressElement):
72552        (WebCore::isHTMLProgressElement):
72553        (WebCore::toHTMLProgressElement):
72554        * html/shadow/ProgressShadowElement.cpp:
72555        (WebCore::ProgressShadowElement::ProgressShadowElement):
72556        (WebCore::ProgressShadowElement::progressElement):
72557        (WebCore::ProgressInnerElement::ProgressInnerElement): We introduce a new element having RenderProgress
72558        so that we can distribute an element having RenderProgress to AuthorShadowDOM.
72559        (WebCore):
72560        (WebCore::ProgressInnerElement::create):
72561        (WebCore::ProgressInnerElement::shadowPseudoId):
72562        (WebCore::ProgressInnerElement::createRenderer):
72563        (WebCore::ProgressInnerElement::rendererIsNeeded):
72564        * html/shadow/ProgressShadowElement.h:
72565        (ProgressShadowElement):
72566        (WebCore):
72567        (ProgressInnerElement):
72568        * rendering/RenderProgress.cpp:
72569        (WebCore::RenderProgress::RenderProgress):
72570        (WebCore::RenderProgress::progressElement):
72571        * rendering/RenderProgress.h:
72572        (RenderProgress):
72573
725742012-08-06  Keishi Hattori  <keishi@webkit.org>
72575
72576        Remove minimum window size for PagePopup
72577        https://bugs.webkit.org/show_bug.cgi?id=93100
72578
72579        Reviewed by Kent Tamura.
72580
72581        DOMWindow had a minimum size of 100x100 pixels. We need to remove that limit for PagePopup window.
72582
72583        No new tests. Covered in platform/chromium/fast/forms/color/color-suggestion-picker-{one,two}-row-appearance.html.
72584
72585        * Resources/colorSuggestionPicker.css:
72586        (.color-swatch-container):
72587        * page/ChromeClient.h:
72588        (WebCore::ChromeClient::minimumWindowSize):
72589        (ChromeClient):
72590        * page/DOMWindow.cpp:
72591        (WebCore):
72592        (WebCore::DOMWindow::adjustWindowRect): Asks Chrome::minimumWindowSize for minimum window size.
72593        * page/DOMWindow.h:
72594        (DOMWindow):
72595
725962012-08-06  Arko Saha  <arko@motorola.com>
72597
72598        Microdata: document.getItems() must treat no token as no parameter.
72599        https://bugs.webkit.org/show_bug.cgi?id=93071
72600
72601        Reviewed by Ryosuke Niwa.
72602
72603        document.getItems() must return all top-level microdata items in the
72604        document when no tokens specified in the argument.
72605        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#dom-document-getitems
72606
72607        Test: fast/dom/MicroData/getitems-empty-string-as-arg.html
72608
72609        * dom/Document.cpp:
72610        (WebCore::Document::getItems): Create an empty string identifier when typeNames is null string
72611        to map such request in the cache.
72612        * dom/MicroDataItemList.cpp:
72613        (WebCore::MicroDataItemList::undefinedItemType): Changed undefinedItemType() to empty string.
72614        (WebCore::MicroDataItemList::nodeMatches): Return true if m_typeNames contains no token.
72615
726162012-08-06  Sergey Rogulenko  <rogulenko@google.com>
72617
72618        Web Inspector: extracting HighlightInfo from HighlightData in DOMNodeHighlighter
72619        https://bugs.webkit.org/show_bug.cgi?id=91632
72620
72621        Reviewed by Pavel Feldman.
72622
72623        Extracted struct HighlightInfo from struct HighlightData in DOMNodeHighlighter.
72624        Now InspectorOverlay receives node or rect to highlight together with highlightInfo.
72625
72626        * inspector/DOMNodeHighlighter.cpp:
72627        (WebCore::InspectorOverlay::paint):
72628        (WebCore::InspectorOverlay::getHighlight):
72629        (WebCore::InspectorOverlay::hideHighlight):
72630        (WebCore::InspectorOverlay::highlightNode):
72631        (WebCore::InspectorOverlay::highlightRect):
72632        (WebCore::InspectorOverlay::highlightedNode):
72633        (WebCore::InspectorOverlay::update):
72634        (WebCore::InspectorOverlay::drawNodeHighlight):
72635        (WebCore):
72636        (WebCore::InspectorOverlay::drawRectHighlight):
72637        (WebCore::InspectorOverlay::drawPausedInDebugger):
72638        * inspector/DOMNodeHighlighter.h:
72639        (HighlightConfig):
72640        (WebCore::Highlight::setColors):
72641        (Highlight):
72642        (InspectorOverlay):
72643        * inspector/InspectorDOMAgent.cpp:
72644        (WebCore::InspectorDOMAgent::clearFrontend):
72645        (WebCore::InspectorDOMAgent::inspect):
72646        (WebCore::InspectorDOMAgent::mouseDidMoveOverElement):
72647        (WebCore::InspectorDOMAgent::setSearchingForNode):
72648        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
72649        (WebCore::InspectorDOMAgent::setInspectModeEnabled):
72650        (WebCore::InspectorDOMAgent::highlightRect):
72651        (WebCore::InspectorDOMAgent::highlightNode):
72652        (WebCore::InspectorDOMAgent::highlightFrame):
72653        * inspector/InspectorDOMAgent.h:
72654        (WebCore):
72655        (InspectorDOMAgent):
72656
726572012-08-06  Ilya Tikhonovsky  <loislo@chromium.org>
72658
72659        Unreviewed: Web Inspector: single line test fix for r124744.
72660
72661        * loader/cache/CachedResourceLoader.cpp:
72662        (WebCore::CachedResourceLoader::reportMemoryUsage):
72663
726642012-08-06  Sheriff Bot  <webkit.review.bot@gmail.com>
72665
72666        Unreviewed, rolling out r124739.
72667        http://trac.webkit.org/changeset/124739
72668        https://bugs.webkit.org/show_bug.cgi?id=93241
72669
72670        newly added test crash on chromium linux debug (Requested by
72671        toyoshim on #webkit).
72672
72673        * rendering/RenderBlock.cpp:
72674        (WebCore::RenderBlock::removeChild):
72675
726762012-08-06  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
72677
72678        Fix layoutMod in fractional layout units.
72679        https://bugs.webkit.org/show_bug.cgi?id=92374
72680
72681        Reviewed by Levi Weintraub.
72682
72683        The modulo operation is upgraded from only being performed in integer to 
72684        being performed in fractionalLayoutUnits, so that it returns an accurate
72685        remainder for fractionalLayoutUnit division.
72686
72687        An alternative modulo operation is added and used to find the remainder
72688        after division with natural integer results, for instance, the remainding
72689        height after pagination.
72690
72691        No new functionality. No new tests.
72692
72693        * platform/FractionalLayoutUnit.h:
72694        (WebCore::intMod):
72695        (WebCore::operator%):
72696        * rendering/LayoutTypes.h:
72697        (WebCore::layoutMod):
72698        * rendering/RenderBlock.cpp:
72699        (WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
72700        * rendering/RenderFlowThread.cpp:
72701        (WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
72702
727032012-08-06  Ilya Tikhonovsky  <loislo@chromium.org>
72704
72705        Web Inspector: native memory instrumentation: cover MemoryCache with MemoryInstrumentation
72706        https://bugs.webkit.org/show_bug.cgi?id=91734
72707
72708        Reviewed by Yury Semikhatsky.
72709
72710        Old version of native memory instrumentation doesn't mark the memory cache objects as visited.
72711        As a result MI could count the same objects multiple times.
72712        The new version just traverses through MemoryCache the same way as through DOM.
72713        Also not all the cached resource types were counted.
72714
72715        * dom/Document.cpp:
72716        (WebCore::Document::reportMemoryUsage):
72717        * dom/MemoryInstrumentation.h:
72718        * inspector/InspectorMemoryAgent.cpp:
72719        (MemoryBlockName):
72720        (WebCore):
72721        (WebCore::collectDomTreeInfo):
72722        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
72723        * loader/cache/CachedCSSStyleSheet.cpp:
72724        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
72725        (WebCore):
72726        * loader/cache/CachedCSSStyleSheet.h:
72727        (WebCore):
72728        (CachedCSSStyleSheet):
72729        * loader/cache/CachedFont.cpp:
72730        (WebCore::CachedFont::reportMemoryUsage):
72731        (WebCore):
72732        * loader/cache/CachedFont.h:
72733        (CachedFont):
72734        * loader/cache/CachedImage.cpp:
72735        (WebCore::CachedImage::reportMemoryUsage):
72736        (WebCore):
72737        * loader/cache/CachedImage.h:
72738        (CachedImage):
72739        * loader/cache/CachedRawResource.cpp:
72740        (WebCore::CachedRawResource::reportMemoryUsage):
72741        (WebCore):
72742        * loader/cache/CachedRawResource.h:
72743        (WebCore):
72744        (CachedRawResource):
72745        * loader/cache/CachedResource.cpp:
72746        (WebCore::CachedResource::reportMemoryUsage):
72747        (WebCore):
72748        * loader/cache/CachedResource.h:
72749        (WebCore):
72750        (CachedResource):
72751        * loader/cache/CachedResourceHandle.cpp:
72752        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
72753        (WebCore):
72754        * loader/cache/CachedResourceHandle.h:
72755        (WebCore):
72756        (CachedResourceHandleBase):
72757        * loader/cache/CachedResourceLoader.cpp:
72758        (WebCore):
72759        (WebCore::CachedResourceLoader::reportMemoryUsage):
72760        * loader/cache/CachedResourceLoader.h:
72761        (WebCore):
72762        (CachedResourceLoader):
72763        * loader/cache/CachedSVGDocument.cpp:
72764        (WebCore::CachedSVGDocument::reportMemoryUsage):
72765        (WebCore):
72766        * loader/cache/CachedSVGDocument.h:
72767        (CachedSVGDocument):
72768        * loader/cache/CachedScript.cpp:
72769        (WebCore::CachedScript::reportMemoryUsage):
72770        (WebCore):
72771        * loader/cache/CachedScript.h:
72772        (WebCore):
72773        (CachedScript):
72774        * loader/cache/CachedShader.cpp:
72775        (WebCore::CachedShader::reportMemoryUsage):
72776        (WebCore):
72777        * loader/cache/CachedShader.h:
72778        (WebCore):
72779        (CachedShader):
72780        * loader/cache/CachedXSLStyleSheet.cpp:
72781        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
72782        (WebCore):
72783        * loader/cache/CachedXSLStyleSheet.h:
72784        (WebCore):
72785        (CachedXSLStyleSheet):
72786        * loader/cache/MemoryCache.cpp:
72787        (WebCore::MemoryCache::reportMemoryUsage):
72788        (WebCore):
72789        * loader/cache/MemoryCache.h:
72790        (WebCore):
72791        (MemoryCache):
72792        * platform/PurgeableBuffer.h:
72793        (WebCore):
72794        (PurgeableBuffer):
72795
727962012-08-06  Douglas Stockwell  <dstockwell@chromium.org>
72797
72798        Crash in WebCore::RenderListItem::updateMarkerLocation
72799        https://bugs.webkit.org/show_bug.cgi?id=90476
72800
72801        Reviewed by Abhishek Arya.
72802
72803        In some cases an anonymous block is destroyed when its last child is
72804        removed. RenderListItem did not expect this and has it's own logic for
72805        cleaning up such blocks when the list marker is removed. Detect this
72806        case in RenderBlock::removeChild to defer to the logic in RenderListItem::updateListMarker.
72807
72808        Test: fast/lists/list-marker-remove-crash.html
72809
72810        * rendering/RenderBlock.cpp:
72811        (WebCore::RenderBlock::removeChild):
72812
728132012-08-06  Ilya Tikhonovsky  <loislo@chromium.org>
72814
72815        Web Inspector: NMI: replace addString with addMember overload function.
72816        https://bugs.webkit.org/show_bug.cgi?id=93201
72817
72818        Reviewed by Yury Semikhatsky.
72819
72820        It is impossible to implement nice instrumentation for template containers
72821        content when we have different function names for different types.
72822
72823        Drive by: fix the most annoing warning in Element.h detected by our clang plugin.
72824
72825        * css/CSSCharsetRule.cpp:
72826        (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
72827        * css/CSSStyleSheet.cpp:
72828        (WebCore::CSSStyleSheet::reportMemoryUsage):
72829        * css/MediaQuery.cpp:
72830        (WebCore::MediaQuery::reportMemoryUsage):
72831        * css/MediaQueryExp.cpp:
72832        (WebCore::MediaQueryExp::reportMemoryUsage):
72833        * css/StyleRuleImport.cpp:
72834        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
72835        * css/StyleSheetContents.cpp:
72836        (WebCore::StyleSheetContents::reportMemoryUsage):
72837        * css/WebKitCSSKeyframeRule.cpp:
72838        (WebCore::StyleKeyframe::reportMemoryUsage):
72839        * css/WebKitCSSKeyframesRule.cpp:
72840        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
72841        * dom/CharacterData.cpp:
72842        (WebCore::CharacterData::reportMemoryUsage):
72843        * dom/Document.cpp:
72844        (WebCore::Document::reportMemoryUsage):
72845        * dom/Element.h:
72846        (WebCore::Element::reportMemoryUsage):
72847        * dom/ElementAttributeData.cpp:
72848        (WebCore::ElementAttributeData::reportMemoryUsage):
72849        * dom/MemoryInstrumentation.cpp:
72850        (WebCore::MemoryInstrumentation::addObject):
72851        * dom/MemoryInstrumentation.h:
72852        (MemoryInstrumentation):
72853        (WebCore::MemoryClassInfo::addMember):
72854        * dom/QualifiedName.h:
72855        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
72856        * loader/DocumentLoader.cpp:
72857        (WebCore::DocumentLoader::reportMemoryUsage):
72858        * loader/FrameLoader.cpp:
72859        (WebCore::FrameLoader::reportMemoryUsage):
72860        * rendering/style/StyleRareInheritedData.cpp:
72861        (WebCore::StyleRareInheritedData::reportMemoryUsage):
72862        * rendering/style/StyleRareNonInheritedData.cpp:
72863        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
72864
728652012-08-05  Kent Tamura  <tkent@chromium.org>
72866
72867        [Chromium-win] Use system locale for number representation
72868        https://bugs.webkit.org/show_bug.cgi?id=93085
72869
72870        Reviewed by Hajime Morita.
72871
72872        We have used LocaleICU for number localization (presentation of <input
72873        type=number>) even on Windows. This patch introduces number localization
72874        feature with Windows API to LocaleWin, and we stop using LocaleICU on
72875        Windows.
72876
72877        Tests: Add new test cases to WebKit/chromium/tests/LocaleWinTest.cpp.
72878
72879        * WebCore.gyp/WebCore.gyp:
72880        - Stop using LocaleICU.{cpp,h} and LocalizedNumberICU.cpp.
72881        - Add LocalizedNumberWin.cpp.
72882        * platform/text/LocaleWin.cpp:
72883        (WebCore::LocaleWin::LocaleWin):
72884         - Initialize m_didInitializeNumberData.
72885         - Use getLocaleInfo() to obtain LOCALE_IFIRSTDAYOFWEEK.
72886        (WebCore::LocaleWin::getLocaleInfo):
72887        Added. A helper to obtain integer locale value.
72888        (WebCore::LocaleWin::initializeNumberLocalizerData):
72889        Added. Prepare data for number localization, and pass it to NumberLocalizer.
72890        * platform/text/LocaleWin.h:
72891        (LocaleWin): Inherit NumberLocalizer, and declare some new members.
72892        * platform/text/win/LocalizedNumberWin.cpp: Added.
72893        (WebCore::convertToLocalizedNumber):
72894        Forward to the corresponding function of LocaleWin.
72895        (WebCore::convertFromLocalizedNumber): ditto.
72896        (WebCore::localizedDecimalSeparator): ditto.
72897
728982012-08-05  Philip Rogers  <pdr@google.com>
72899
72900        Fix assertion during detach of SVG wrappers without baseVal
72901        https://bugs.webkit.org/show_bug.cgi?id=93063
72902
72903        Reviewed by Nikolas Zimmermann.
72904
72905        r131583 introduced a change where SVGAnimatedListPropertyTearOff required
72906        a baseVal to be set before detaching wrappers. This caused an assertion
72907        to be hit if no baseVal was set.
72908        This patch changes this behavior so that wrappers are detached even if
72909        no baseVal is set.
72910
72911        Test: svg/animations/dynamic-modify-transform-without-baseval.html
72912
72913        * svg/properties/SVGAnimatedListPropertyTearOff.h:
72914        (WebCore::SVGAnimatedListPropertyTearOff::detachListWrappers):
72915        * svg/properties/SVGListProperty.h:
72916        (WebCore::SVGListProperty::detachListWrappersAndResize): Extracted this static method for detaching wrappers without needing an SVGListProperty.
72917        (SVGListProperty):
72918        (WebCore::SVGListProperty::detachListWrappers):
72919
729202012-08-05  Kihong Kwon  <kihong.kwon@samsung.com>
72921
72922        Remove DeviceMotionEvent.h and DeviceOrientationEvent.h from Document.cpp
72923        https://bugs.webkit.org/show_bug.cgi?id=93224
72924
72925        Reviewed by Kentaro Hara.
72926
72927        Need to remove DeviceMotionEvent.h and DeviceOrientationEvent.h from Document.cpp.
72928        They are not used anymore in that file.
72929
72930        No new tests. No change in behavior.
72931
72932        * dom/Document.cpp:
72933
729342012-08-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
72935
72936        [CMAKE] Move media source files from #ifdef ENABLE(MEDIA_SOURCE) to existing file list
72937        https://bugs.webkit.org/show_bug.cgi?id=93219
72938
72939        Reviewed by Hajime Morita.
72940
72941        r122688 removed duplicating #ifdef guards from CMakeLists.txt. But, ENABLE_MEDIA_SOURCE is added to
72942        CMakeList using duplicating #ifdef again.
72943
72944        No new tests. No change in behavior.
72945
72946        * CMakeLists.txt:
72947
729482012-08-05  Peter Wang  <peter.wang@torchmobile.com.cn>
72949
72950        Web Inspector: [JSC] implement setting breakpoints by line:column
72951        https://bugs.webkit.org/show_bug.cgi?id=53003
72952
72953        Reviewed by Geoffrey Garen.
72954
72955        Since JSC can provide column info now, ScriptDebugServer can use it to support "Pretty Print"
72956        debug mode. The related interfaces derived from JSC::Debugger was added a parameter. 
72957
72958        No new tests for this patch.
72959
72960        * bindings/js/ScriptDebugServer.cpp:
72961        (WebCore::ScriptDebugServer::setBreakpoint):
72962        (WebCore::ScriptDebugServer::removeBreakpoint):
72963        (WebCore):
72964        (WebCore::ScriptDebugServer::updateCurrentStatementPosition):
72965        (WebCore::ScriptDebugServer::hasBreakpoint):
72966        (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
72967        (WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded):
72968        (WebCore::ScriptDebugServer::callEvent):
72969        (WebCore::ScriptDebugServer::atStatement):
72970        (WebCore::ScriptDebugServer::returnEvent):
72971        (WebCore::ScriptDebugServer::exception):
72972        (WebCore::ScriptDebugServer::willExecuteProgram):
72973        (WebCore::ScriptDebugServer::didExecuteProgram):
72974        (WebCore::ScriptDebugServer::didReachBreakpoint):
72975        * bindings/js/ScriptDebugServer.h:
72976        (ScriptDebugServer):
72977
729782012-08-05  Luke Macpherson   <macpherson@chromium.org>
72979
72980        Fix null pointer dereference when CSSParser::sinkFloatingValueList() returns null and is passed to storeVariableDeclaration().
72981        https://bugs.webkit.org/show_bug.cgi?id=92461
72982
72983        Reviewed by Eric Seidel.
72984
72985        Invalid variable lists could cause CSSGrammar.y to pass null as value to storeVariableDeclaration, so we now check for null.
72986
72987        Test: fast/css/variables/invalid-value-list-crash.html
72988
72989        * css/CSSParser.cpp:
72990        (WebCore::CSSParser::storeVariableDeclaration):
72991
729922012-08-03  Kent Tamura  <tkent@chromium.org>
72993
72994        [Chromium-win] Use the default locale only if the browser locale matches to it
72995        https://bugs.webkit.org/show_bug.cgi?id=93083
72996
72997        Reviewed by Hajime Morita.
72998
72999        For a calendar picker, we have used month names and day-of-week names
73000        obtained from the OS default locale. However, the year-month format and
73001        [Today] [Clear] labels are decided with the browser locale. It made
73002        calendar pickers with mixed languages.
73003
73004        To make calendar pickers with a single language, we use the OS default
73005        locale only if the browser locale matches to it.
73006        This patch changes the behavior for Windows Vista or later. No change
73007        for Windows XP because of API support limitation.
73008
73009        No new tests.  Behavior for locale setting is not testable in WebKit.
73010
73011        * platform/text/LocaleWin.cpp:
73012        (determineCurrentLCID):
73013        Added. If the system has no LocaleNameToLCID API, just returns
73014        LOCALE_USER_DEFAULT. Otherwise, if the system locale matches to the
73015        browser locale, it returns LOCALE_USER_DEFAULT, otherwise it returns the
73016        LCID for the browser locale.
73017        (WebCore::LocaleWin::currentLocale): Uses determineCurrentLCID().
73018
730192012-08-05  Antti Koivisto  <antti@apple.com>
73020
73021        Don't reuse cached stylesheet with failed or canceled resource loads
73022        https://bugs.webkit.org/show_bug.cgi?id=93203
73023
73024        Reviewed by Simon Fraser.
73025
73026        1) Go to apple.com
73027        2) Reload repeatedly
73028
73029        Eventually you can get into state where some images don't load.
73030        
73031        The problem is that a cached stylesheet may end up pointing to image resources that have been canceled (by the reload).
73032        If this happens they stay in the canceled state even when the stylesheet is applied to a new document.
73033        
73034        Fix by checking if all loads are complete (or pending) when restoring a cached stylesheet. The sheet is only used
73035        if there are no failed or canceled loads. There are potential more sophisticated fixes but this is simple and safe.
73036        Walking the sheet is fast and since it is only done on cache restore the cost is minimal.
73037
73038        No regression test yet though the new code does get exercised by the existing tests.
73039
73040        * css/CSSCrossfadeValue.cpp:
73041        (WebCore::CSSCrossfadeValue::hasFailedOrCanceledSubresources):
73042        (WebCore):
73043        * css/CSSCrossfadeValue.h:
73044        (CSSCrossfadeValue):
73045        * css/CSSFontFaceSrcValue.cpp:
73046        (WebCore::CSSFontFaceSrcValue::hasFailedOrCanceledSubresources):
73047        (WebCore):
73048        * css/CSSFontFaceSrcValue.h:
73049        (CSSFontFaceSrcValue):
73050        * css/CSSImageSetValue.cpp:
73051        (WebCore::CSSImageSetValue::hasFailedOrCanceledSubresources):
73052        (WebCore):
73053        * css/CSSImageSetValue.h:
73054        (CSSImageSetValue):
73055        * css/CSSImageValue.cpp:
73056        (WebCore::CSSImageValue::hasFailedOrCanceledSubresources):
73057        (WebCore):
73058        * css/CSSImageValue.h:
73059        (CSSImageValue):
73060        * css/CSSValue.cpp:
73061        (WebCore::CSSValue::hasFailedOrCanceledSubresources):
73062        (WebCore):
73063        * css/CSSValue.h:
73064        (CSSValue):
73065        * css/CSSValueList.cpp:
73066        (WebCore::CSSValueList::hasFailedOrCanceledSubresources):
73067        (WebCore):
73068        * css/CSSValueList.h:
73069        (CSSValueList):
73070        * css/StylePropertySet.cpp:
73071        (WebCore::StylePropertySet::hasFailedOrCanceledSubresources):
73072        (WebCore):
73073        * css/StylePropertySet.h:
73074        (StylePropertySet):
73075        * css/StyleSheetContents.cpp:
73076        (WebCore::childRulesHaveFailedOrCanceledSubresources):
73077        (WebCore):
73078        (WebCore::StyleSheetContents::hasFailedOrCanceledSubresources):
73079        * css/StyleSheetContents.h:
73080        (StyleSheetContents):
73081        * loader/cache/CachedCSSStyleSheet.cpp:
73082        (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
73083        * loader/cache/CachedResource.h:
73084        (WebCore::CachedResource::loadFailedOrCanceled):
73085
730862012-08-05  Kentaro Hara  <haraken@chromium.org>
73087
73088        [V8] Move V8Proxy methods that set DOM attributes/callbacks to V8Binding
73089        https://bugs.webkit.org/show_bug.cgi?id=93103
73090
73091        Reviewed by Adam Barth.
73092
73093        To remove V8Proxy, we can move V8Proxy methods that set DOM
73094        attributes/callbacks to V8Binding.
73095
73096        No tests. No change in behavior.
73097
73098        * bindings/v8/V8Binding.cpp:
73099        (WebCore::batchConfigureAttributes):
73100        (WebCore):
73101        (WebCore::batchConfigureCallbacks):
73102        (WebCore::batchConfigureConstants):
73103        * bindings/v8/V8Binding.h:
73104        (BatchedAttribute):
73105        (WebCore):
73106        (WebCore::configureAttribute):
73107        (BatchedConstant):
73108        (BatchedCallback):
73109        * bindings/v8/V8Proxy.cpp:
73110        * bindings/v8/V8Proxy.h:
73111        (WebCore):
73112
731132012-08-05  Kentaro Hara  <haraken@chromium.org>
73114
73115        [V8] Remove V8Proxy::registerExtensionWithV8()
73116        https://bugs.webkit.org/show_bug.cgi?id=93115
73117
73118        Reviewed by Adam Barth.
73119
73120        V8Proxy::registerExtensionWithV8() is used by V8Proxy::registerExtension()
73121        only. We can remove the redundant method.
73122
73123        In a follow-up patch, I will implement V8Proxy::registerExtentionIfNeeded()
73124        and remove registerExtensionWithV8() and registerExtension().
73125
73126        No tests. No change in behavior.
73127
73128        * bindings/v8/V8Proxy.cpp:
73129        (WebCore::staticExtensionsList): Just moved to near related methods.
73130        (WebCore):
73131        (WebCore::V8Proxy::extensions):
73132        (WebCore::V8Proxy::registerExtension):
73133        * bindings/v8/V8Proxy.h:
73134        (V8Proxy):
73135
731362012-08-05  Kentaro Hara  <haraken@chromium.org>
73137
73138        [V8] Remove unused enum and typedefs in V8Proxy
73139        https://bugs.webkit.org/show_bug.cgi?id=93105
73140
73141        Reviewed by Adam Barth.
73142
73143        In preparation for removing V8Proxy, we can remove unused enum
73144        and typedefs in V8Proxy.
73145
73146        No tests. No change in behavior.
73147
73148        * bindings/v8/V8Proxy.cpp:
73149        * bindings/v8/V8Proxy.h:
73150        (WebCore::throwError):
73151
731522012-08-04  Dan Bernstein  <mitz@apple.com>
73153
73154        <rdar://problem/11875795> REGRESSION (tiled drawing): Page’s scroll bars flash with each character you type in a textarea (affects Wikipedia and YouTube)
73155        https://bugs.webkit.org/show_bug.cgi?id=91348
73156
73157        Reviewed by Andy Estes.
73158
73159        * platform/ScrollableArea.cpp:
73160        (WebCore::ScrollableArea::scrollPositionChanged): Changed to call notifyContentAreaScrolled()
73161        only if the scroll position after the change differs from what it was before the change.
73162        * rendering/RenderListBox.cpp:
73163        (WebCore::RenderListBox::scrollPosition): Added an override of this ScrollableArea function.
73164        * rendering/RenderListBox.h:
73165
731662012-08-04  Ami Fischman  <fischman@chromium.org>
73167
73168        HTMLMediaElement may fire the seeked event before currentTime reaches the seek time
73169        https://bugs.webkit.org/show_bug.cgi?id=92881
73170
73171        Reviewed by Eric Carlson.
73172
73173        Testing provided by media/video-seek-past-end-paused.html, hopefully demonstrating lack of redness on all ports/bots this time.
73174
73175        * html/HTMLMediaElement.cpp:
73176        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): don't finishSeek() until the media player is no longer seeking.
73177
731782012-08-04  Dan Bernstein  <mitz@apple.com>
73179
73180        Tried to fix the Qt Windows build after r124654.
73181
73182        * platform/graphics/SimpleFontData.cpp:
73183        (WebCore::SimpleFontData::glyphForCharacter): Enclosed this function in
73184        #if !(PLATFORM(QT) && !HAVE(QRAWFONT)).
73185
731862012-08-04  Mike West  <mkwst@chromium.org>
73187
73188        Refactor SubframeLoader::requestPlugin/loadPlugin for clarity.
73189        https://bugs.webkit.org/show_bug.cgi?id=93138
73190
73191        Reviewed by Adam Barth.
73192
73193        SubframeLoader::requestPlugin and SubframeLoader::loadPlugin both do a
73194        variety of checks to determine whether or not a specific resource ought
73195        to instantiate a plugin in a specific context. r124636[1] moved one of
73196        those checks, but there doesn't seem to be a clear way to determine
73197        which checks should be performed where.
73198
73199        This patch refactors the checks out of those two methods for clarity,
73200        moving them all into a new method: SubframeLoader::pluginIsLoadable.
73201        That method requires the resource URL and MIME type, as well as the
73202        `object` or `embed` element that owns this bit of rendering. The URL
73203        and type are used directly to determine availability, while the element
73204        is currently used only to create a renderer on which
73205        setPluginUnavailabilityReason can be called if the plugin is blocked by
73206        Content Security Policy.
73207
73208        This patch introduces no new tests, as it shouldn't change the code's
73209        behavior: it should be a straightforward refactoring without web-visible
73210        side-effects.
73211
73212        [1]: http://trac.webkit.org/changeset/124636
73213
73214        * loader/SubframeLoader.cpp:
73215        (WebCore::SubframeLoader::pluginIsLoadable):
73216            A new method that extracts the various 'Should we allow this plugin
73217            in this context?' checks from requestPlugin and loadPlugin into ine
73218            location, rather than spreading them across both.
73219        (WebCore):
73220        (WebCore::SubframeLoader::requestPlugin):
73221        (WebCore::SubframeLoader::loadPlugin):
73222        * loader/SubframeLoader.h:
73223        (SubframeLoader):
73224
732252012-08-04  John J. Barton  <johnjbarton@chromium.org>
73226
73227        Web Inspector: filteredItemSelectionDialog.css has wrong selector for highlights
73228        https://bugs.webkit.org/show_bug.cgi?id=93168
73229
73230        Reviewed by Pavel Feldman.
73231
73232        Selector required span to be a child, but highlights are themselves span. Used descendent selector.
73233        No new tests: I'll make one next week, to go with bug 93166
73234
73235        * inspector/front-end/filteredItemSelectionDialog.css:
73236        (.js-outline-dialog > .container > div.item span.highlight):
73237
732382012-08-03  Robert Hogan  <robert@webkit.org>
73239
73240        CSS 2.1 failure: overflow-applies-to-001 fails
73241        https://bugs.webkit.org/show_bug.cgi?id=93148
73242
73243        Reviewed by Eric Seidel.
73244
73245        Overflow no longer applies to table-rows or table-row-groups, it only applies
73246        to block containers: http://www.w3.org/TR/CSS21/visufx.html#overflow
73247
73248        Tests:  css2.1/20110323/overflow-applies-to-001.htm
73249                css2.1/20110323/overflow-applies-to-002.htm
73250                css2.1/20110323/overflow-applies-to-003.htm
73251                css2.1/20110323/overflow-applies-to-004.htm
73252                css2.1/20110323/overflow-applies-to-005.htm
73253                css2.1/20110323/overflow-applies-to-006.htm
73254                css2.1/20110323/overflow-applies-to-007.htm
73255                css2.1/20110323/overflow-applies-to-008.htm
73256                css2.1/20110323/overflow-applies-to-009.htm
73257                css2.1/20110323/overflow-applies-to-010.htm
73258                css2.1/20110323/overflow-applies-to-012.htm
73259                css2.1/20110323/overflow-applies-to-013.htm
73260                css2.1/20110323/overflow-applies-to-014.htm
73261                css2.1/20110323/overflow-applies-to-015.htm
73262
73263        * rendering/RenderBox.cpp:
73264        (WebCore::RenderBox::updateBoxModelInfoFromStyle):
73265
732662012-08-04  Adam Barth  <abarth@webkit.org>
73267
73268        BindingSecurity::shouldAllowAccessToNode shouldn't detour through Frame to find the node's document
73269        https://bugs.webkit.org/show_bug.cgi?id=93140
73270
73271        Reviewed by Eric Seidel.
73272
73273        Previously, shouldAllowAccessToNode took a detour through the Frame to
73274        find the Document associated with a given Node. That's crazy! Nodes
73275        already know their documents. This patch removes the detour.
73276
73277        It's theoretically possible that this patch changes behavior in the
73278        case where the Frame is 0, but I couldn't find any situations in which
73279        we call this function on nodes in inactive documents because the
73280        typical way you find a node worth checking security on is via
73281        a JavaScript window object.
73282
73283        * bindings/generic/BindingSecurity.cpp:
73284        (WebCore::canAccessDocument):
73285        (WebCore::BindingSecurity::shouldAllowAccessToNode):
73286        (WebCore::BindingSecurity::allowSettingFrameSrcToJavascriptUrl):
73287
732882012-08-04  Adam Barth  <abarth@webkit.org>
73289
73290        [V8] Re-wire "target" half of the same-origin security check through Document rather than DOMWindow
73291        https://bugs.webkit.org/show_bug.cgi?id=93079
73292
73293        Reviewed by Eric Seidel.
73294
73295        Before this patch, we were traversing from Nodes to Frames to
73296        DOMWindows to SecurityOrigins when determing the "target" of an
73297        operation for the same-origin policy security check. Rather than
73298        detouring through DOMWindow, these security checks should operate in
73299        terms of ScriptExecutionContexts (aka Documents) because that's the
73300        canonical place we store SecurityOrigin objects.
73301
73302        A future patch will re-wire the "active" part of the security check to
73303        use ScriptExecutionContexts as well and we'll be able to remove the
73304        extra copy of SecurityOrigin that we keep in DOMWindow.
73305
73306        * bindings/generic/BindingSecurity.cpp:
73307        (WebCore::canAccessDocument):
73308        (WebCore::BindingSecurity::canAccessFrame):
73309        (WebCore::BindingSecurity::shouldAllowAccessToNode):
73310        * bindings/v8/BindingState.cpp:
73311        (WebCore::immediatelyReportUnsafeAccessTo):
73312        * bindings/v8/BindingState.h:
73313        (WebCore):
73314        * bindings/v8/V8DOMWindowShell.cpp:
73315        (WebCore::reportUnsafeJavaScriptAccess):
73316        * bindings/v8/V8Proxy.cpp:
73317        (WebCore::V8Proxy::reportUnsafeAccessTo):
73318        * bindings/v8/V8Proxy.h:
73319        (V8Proxy):
73320
733212012-08-03  Adam Barth  <abarth@webkit.org>
73322
73323        Disabling eval changes the timing of DidCreateScriptContext
73324        https://bugs.webkit.org/show_bug.cgi?id=92189
73325
73326        Reviewed by Eric Seidel.
73327
73328        When we implemented Content-Security-Policy, we added the ability to
73329        disable eval in the JavaScript engine. However, when we process the
73330        Content-Security-Policy header, we might not have initialized the
73331        script context for the given frame.
73332
73333        Previously, we would initialize the context, but that generates a
73334        DidCreateScriptContext callback to the embedder earlier in the Document's
73335        lifetime that before. A natural thing to do in this callback is to run
73336        script to customize the script context, but Document isn't fully
73337        initialized yet, which leads to odd bugs and general confusion.
73338
73339        In this patch, we delay actually disabling eval until we would have
73340        created the scripting context previously. From the perspective of the
73341        web platform, this has the same behavior. The only difference is that
73342        now the DidCreateScriptContext notification occurs at the same time
73343        regardless of whether Content-Security-Policy disables eval.
73344
73345        I tried to write a test for this change, but it was unclear to me how
73346        to write a good test. I tried writing a Chromium WebKit unit test to no
73347        avail. The good news is that this patch will be covered by the
73348        PlatformAppBrowserTest.Iframes test in Chromium once
73349        https://bugs.webkit.org/show_bug.cgi?id=93079 lands. That's not the
73350        best way to test this change, but it might be sufficient.
73351
73352        * bindings/js/ScriptController.cpp:
73353        (WebCore::ScriptController::initScript):
73354        (WebCore::ScriptController::disableEval):
73355        * bindings/v8/ScriptController.cpp:
73356        (WebCore::ScriptController::enableEval):
73357        (WebCore::ScriptController::disableEval):
73358        * bindings/v8/V8DOMWindowShell.cpp:
73359        (WebCore::V8DOMWindowShell::initContextIfNeeded):
73360
733612012-08-03  James Robinson  <jamesr@chromium.org>
73362
73363        [chromium] Stop relying on implicit WebFoo <-> WebCore conversion operators in compositor
73364        https://bugs.webkit.org/show_bug.cgi?id=93169
73365
73366        Reviewed by Adrienne Walker.
73367
73368        This removes the compositor's reliance on implicit conversion operators from Web* types to WebKit-internal
73369        types, specifically WebRect <-> WebCore::IntRect and WebString <-> WTF::String.
73370
73371        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
73372        (WebCore::CanvasLayerTextureUpdater::paintContents):
73373        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
73374        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
73375        * platform/graphics/chromium/LayerRendererChromium.cpp:
73376        (WebCore::LayerRendererChromium::getFramebufferPixels):
73377        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
73378        (WebCore::ScrollbarLayerChromium::setTexturePriorities):
73379        (WebCore::ScrollbarLayerChromium::update):
73380        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
73381        (WebCore::CCFontAtlas::drawOneLineOfTextInternal):
73382        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
73383        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounter):
73384        (WebCore::CCHeadsUpDisplayLayerImpl::drawDebugRects):
73385        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
73386        (WebCore::toUVRect):
73387        (WebCore::CCScrollbarLayerImpl::appendQuads):
73388        (WebCore::CCScrollbarLayerImpl::CCScrollbar::size):
73389
733902012-08-03  Michael Nordman  <michaeln@google.com>
73391
73392        [Chromium] Cross-thread-copy a couple more recently added ResourceResponse data members, apparently
73393        these got missed when they were added. And fix a bug with how the m_remoteIPAddress
73394        data member is handled, an isolatedCopy() is needed for thread safety.
73395        https://bugs.webkit.org/show_bug.cgi?id=93158
73396
73397        Reviewed by David Levin.
73398
73399        No new tests, minor cleanup.
73400
73401        * platform/network/chromium/ResourceResponse.cpp:
73402        (WebCore::ResourceResponse::doPlatformCopyData): make deep copies
73403        (WebCore::ResourceResponse::doPlatformAdopt): take ownership of them
73404        * platform/network/chromium/ResourceResponse.h:
73405        (ResourceResponse):
73406        (CrossThreadResourceResponseData):
73407
734082012-08-03  Florin Malita  <fmalita@chromium.org>
73409
73410        [SVG] Tref target event listener cleanup
73411        https://bugs.webkit.org/show_bug.cgi?id=93004
73412
73413        Reviewed by Abhishek Arya.
73414
73415        Currently SVGTRefElement allocates event listeners dynamically as it attaches to its
73416        targets. Synchronizing the lifetime of the target listener vs. the tref element is
73417        error prone, as various events can stack and trigger nested handlers.
73418
73419        In order to reduce complexity and address a couple of outstanding issues, this patch
73420        changes the way event listeners are allocated: only one target listener is created
73421        for the lifetime of the SVGTRefElement, and gets reused if the target element changes.
73422
73423        Test: svg/custom/tref-nested-events-crash.svg
73424
73425        * dom/EventListener.h:
73426        Added new <tref> target event listener type.
73427        * svg/SVGTRefElement.cpp:
73428        (WebCore):
73429        (WebCore::SVGTRefTargetEventListener::create):
73430        (WebCore::SVGTRefTargetEventListener::cast):
73431        (SVGTRefTargetEventListener):
73432        (WebCore::SVGTRefTargetEventListener::isAttached):
73433        (WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):
73434        (WebCore::SVGTRefTargetEventListener::attach):
73435        (WebCore::SVGTRefTargetEventListener::detach):
73436        (WebCore::SVGTRefTargetEventListener::operator==):
73437        (WebCore::SVGTRefTargetEventListener::handleEvent):
73438        No need to check m_trefElement anymore - the listener is allocated for the whole element
73439        lifetime, detached when the element is removed and deallocated when the element is
73440        destroyed.
73441        (WebCore::SVGTRefElement::SVGTRefElement):
73442        Allocate one target listener per element, at construction time.
73443        (WebCore::SVGTRefElement::~SVGTRefElement):
73444        Detach the listener if necessary.
73445        (WebCore::SVGTRefElement::detachTarget):
73446        Check whether the element is still in document after updating the text (may have been
73447        removed by event handlers).
73448        (WebCore::SVGTRefElement::buildPendingResource):
73449        Attach the event listener before updating the text content to avoid racing with event
73450        handlers (which can remove the element).
73451        (WebCore::SVGTRefElement::removedFrom):
73452        * svg/SVGTRefElement.h:
73453        (WebCore):
73454        (SVGTRefElement):
73455
734562012-08-03  Michael Saboff  <msaboff@apple.com>
73457
73458        Convert HTML parser to handle 8-bit resources without converting to UChar*
73459        https://bugs.webkit.org/show_bug.cgi?id=90321
73460
73461        Reviewed by Adam Barth.
73462
73463        No new tests, no new functionality therefore covered by existing tests.
73464
73465        Changed the parsing of HTML to handle 8-bit strings without converting the 
73466        whole string to 16-bits.  Primary change was to use the appropriate 
73467        character pointer type (LChar* or UChar*) depending on the source string.
73468        This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
73469        incrementAndGetCurrentChar{8,16} methods.  In SegmentedString, the advance()
73470        and advanceAndUpdateLineNumber() methods have been refactored into a
73471        state machine managed pair of function pointers.  The possible functions
73472        have not only the 8 and 16 bitness factored out, they also have the 
73473        "exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
73474        This change also has improvements over http://trac.webkit.org/changeset/123679.
73475        The most prominent change was to inline the 8 bit paths for both advance()
73476        and advanceAndUpdateLineNumber().
73477        This provides a net speed-up even with the 8/16 bit testing.
73478        Other changes involve using String methods to access and compare with the
73479        source data.
73480
73481        * html/FTPDirectoryDocument.cpp:
73482        (WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
73483        instead of SegmentedString '*' operator.
73484        * html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
73485        SegmentedString '*' operator.
73486        * html/parser/HTMLParserIdioms.cpp:
73487        (WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
73488        * html/parser/HTMLSourceTracker.cpp:
73489        (WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
73490        SegmentedString '*' operator.
73491        * loader/cache/CachedScript.cpp:
73492        (WebCore::CachedScript::script): Updated to use new String::dataSize() method.
73493        * platform/text/SegmentedString.cpp:
73494        (WebCore::SegmentedString::SegmentedString):
73495        (WebCore::SegmentedString::operator=):
73496        (WebCore::SegmentedString::clear):
73497        (WebCore::SegmentedString::append):
73498        (WebCore::SegmentedString::prepend):
73499        (WebCore::SegmentedString::advanceSubstring):
73500        (WebCore::SegmentedString::advance):
73501        (WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
73502        (WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
73503        (WebCore::SegmentedString::advanceAndUpdateLineNumber8): Fast path
73504        advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
73505        (WebCore::SegmentedString::advanceAndUpdateLineNumber16): Fast path
73506        advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
73507        (WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
73508        8 and 16 bit advance.
73509        (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
73510        advanceAndUpdateLineNumber function for both 8 and 16 bit data.
73511        (WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
73512        (WebCore::SegmentedString::updateSlowCaseFunctionPointers): Set advance function
73513        pointers to slow case functions.
73514        * platform/text/SegmentedString.h:
73515        (WebCore::SegmentedSubstring::SegmentedSubstring):
73516        (WebCore::SegmentedSubstring::clear):
73517        (SegmentedSubstring):
73518        (WebCore::SegmentedSubstring::is8Bit): New getter.
73519        (WebCore::SegmentedSubstring::appendTo):
73520        (WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
73521        (WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
73522        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
73523        that pre-increments the 8 bit pointer and returns the next character.
73524        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
73525        that pre-increments the 16 bit pointer and returns the next character.
73526        (WebCore::SegmentedSubstring::currentSubString):
73527        (WebCore::SegmentedSubstring::getCurrentChar):
73528        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
73529        (WebCore::SegmentedString::SegmentedString):
73530        (WebCore::SegmentedString::push):
73531        (WebCore::SegmentedString::isEmpty):
73532        (WebCore::SegmentedString::lookAhead):
73533        (WebCore::SegmentedString::lookAheadIgnoringCase):
73534        (WebCore::SegmentedString::advance): Wrapper that contains 8 bit fast path
73535        or calls via member function point to approriate advance() flavor.
73536        (WebCore::SegmentedString::advanceAndUpdateLineNumber): Wrapper that
73537        contains 8 bit fast path or calls via member function point to approriate
73538        advance() flavor.
73539        (WebCore::SegmentedString::advanceAndASSERT):
73540        (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
73541        (WebCore::SegmentedString::advancePastNonNewline):
73542        (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
73543        (WebCore::SegmentedString::currentChar):
73544        (WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
73545        change to slow case functions when only one character left.
73546        (WebCore::SegmentedString::updateAdvanceFunctionPointers): Select appropriate
73547        advance functions based on current substring.
73548        (WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
73549        (WebCore::SegmentedString::lookAheadSlowCase):
73550        * xml/parser/CharacterReferenceParserInlineMethods.h:
73551        (WebCore::consumeCharacterReference): Changed to use currentChar() instead of
73552        SegmentedString '*' operator.
73553        * xml/parser/MarkupTokenizerBase.h:
73554        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
73555        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
73556        currentChar() instead of SegmentedString '*' operator.
73557        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
73558
735592012-08-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
73560
73561        Update TypedArrays to throw RangeError or similar instead of INDEX_SIZE_ERR
73562        https://bugs.webkit.org/show_bug.cgi?id=45118
73563
73564        Reviewed by Kenneth Russell.
73565
73566        Update TypedArrays to raise JavaScript RangeError instead of dom
73567        INDEX_SIZE_ERR exceptions. Also, update TypedArrays to raise TypeError
73568        instead of JavaScript SyntaxError or dom exceptions SYNTAX_ERR when
73569        calling set method with invalid arguments.
73570
73571        Specification does not define the type of exceptions to raise, but
73572        other browsers raise JavaScript errors, so those changes will improve
73573        compatibility.
73574
73575        New Test: fast/canvas/webgl/array-set-invalid-arguments.html
73576
73577        Updated Tests expectations:
73578            fast/canvas/webgl/array-set-out-of-bounds.html
73579            fast/canvas/webgl/data-view-crash.html
73580            fast/canvas/webgl/data-view-test.html
73581
73582        * bindings/js/JSArrayBufferViewHelper.h:
73583        (WebCore):
73584        (WebCore::setWebGLArrayWithTypedArrayArgument):
73585        (WebCore::setWebGLArrayHelper):
73586        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
73587        (WebCore::constructArrayBufferViewWithArrayBufferArgument):
73588        (WebCore::constructArrayBufferView):
73589        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
73590        (WebCore):
73591        (WebCore::constructWebGLArrayWithArrayBufferArgument):
73592        (WebCore::setWebGLArrayHelper):
73593
735942012-08-03  Dave Tu  <dtu@chromium.org>
73595
73596        [chromium] Fix Renderer4.CompositorThreadImplDrawDelay histogram.
73597        https://bugs.webkit.org/show_bug.cgi?id=93159
73598
73599        Reviewed by Adrienne Walker.
73600
73601        The histogram is using the frame number instead of the frame time by mistake.
73602
73603        * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
73604        (WebCore::CCFrameRateCounter::markBeginningOfFrame):
73605
736062012-08-03  David Grogan  <dgrogan@chromium.org>
73607
73608        IndexedDB: Core upgradeneeded logic
73609        https://bugs.webkit.org/show_bug.cgi?id=92558
73610
73611        Reviewed by Ojan Vafai.
73612
73613        This is the backend webkit logic needed for integer versions. The rest
73614        is in https://bugs.webkit.org/show_bug.cgi?id=89505.
73615
73616        I tried to make use of the existing processPendingCalls and added two
73617        more queues, pendingOpenWithVersionCalls and
73618        pendingSecondHalfOpenWithVersionCalls. The "second half" refers to
73619        how there are two events that need to be fired in response to an
73620        open-with-version call. The "second half" queue holds the open
73621        requests that should immediately follow the caller's upgradeneeded
73622        handler.
73623
73624        No new tests, there are so many they are in their own patch:
73625        https://bugs.webkit.org/show_bug.cgi?id=92560
73626
73627        Though this patch doesn't change any expected behavior anyway, lack of
73628        regressions is what we're hoping for here.
73629
73630        * Modules/indexeddb/IDBBackingStore.h:
73631        (IDBBackingStore):
73632        * Modules/indexeddb/IDBCallbacks.h:
73633        (WebCore::IDBCallbacks::onBlocked):
73634        (WebCore::IDBCallbacks::onUpgradeNeeded):
73635        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
73636        (IDBDatabaseBackendImpl::PendingOpenCall):
73637        (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
73638        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
73639        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::callbacks):
73640        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::version):
73641        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
73642        (WebCore):
73643        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
73644        (WebCore::IDBDatabaseBackendImpl::openInternal):
73645        (WebCore::IDBDatabaseBackendImpl::metadata):
73646        (WebCore::IDBDatabaseBackendImpl::setVersion):
73647        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
73648        (WebCore::IDBDatabaseBackendImpl::transactionFinished):
73649        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndEventsFired):
73650        When an upgradeneeded event is fired in response to an
73651        open-with-version call, the version change transaction must receive its
73652        complete event before processPendingCalls fires a success event at
73653        IDBOpenDBRequest. In the future this should probably be changed
73654        instead to transactionFinishedAndAbortFired and
73655        transactionFinishedAndCompleteFired so that we'll know to fire a
73656        success or error event at IDBOpenDBRequest. Currently, instead of
73657        firing error when there's an abort, we don't fire anything.
73658
73659        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
73660        Now that this is called after a connection is opened, we unfortunately
73661        lose the invariant that there is only one existing connection when this
73662        is called, but nothing inside this function actually relied on that.
73663        Additionally, the secondHalfOpen calls only ever need to be serviced
73664        in one place: right after a version change transaction completes, so
73665        it could be moved out of here.
73666
73667        (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
73668        Now that setVersion and deleteDatabase calls are queued up behind
73669        secondHalfOpen calls, we have to service those queues when
73670        secondHalfOpen calls complete, which is here.  So call
73671        processPendingCalls().
73672
73673        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
73674        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
73675        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
73676        (WebCore::IDBDatabaseBackendImpl::close):
73677        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
73678        (IDBDatabaseBackendImpl):
73679        * Modules/indexeddb/IDBDatabaseCallbacks.h:
73680        (WebCore::IDBDatabaseCallbacks::onVersionChange):
73681        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
73682        (WebCore::IDBFactoryBackendImpl::open):
73683        This is refactored some so that the call to openConection{WithVersion}
73684        happens once, at the end.
73685
73686        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
73687        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
73688        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
73689        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
73690        (WebCore):
73691        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
73692        * Modules/indexeddb/IDBLevelDBBackingStore.h:
73693        (IDBLevelDBBackingStore):
73694        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
73695        (WebCore::IDBTransactionBackendImpl::commit):
73696        See above comments about transactionFinishedAndEventsFired. I tried
73697        moving the call to transactionFinished after the events were fired but
73698        that failed some asserts. But changing those asserts is still an
73699        alternative to splitting up transactionFinished as is done here.
73700
737012012-08-03  Rick Byers  <rbyers@chromium.org>
73702
73703        Double tap gesture should send dblclick event
73704        https://bugs.webkit.org/show_bug.cgi?id=92412
73705
73706        Reviewed by Adam Barth.
73707
73708        Propagate the tap count from PlatformGestureEvent in the derived mouse
73709        events.
73710
73711        Also fixes a crash with unexpected GestureDoubleTap events by just
73712        supressing them early.  They will probably be removed soon anyway.
73713
73714        Test: fast/events/touch/gesture/gesture-dblclick.html
73715
73716        * page/EventHandler.cpp:
73717        (WebCore::EventHandler::handleGestureEvent):
73718        (WebCore::EventHandler::handleGestureTap):
73719
737202012-08-03  Sheriff Bot  <webkit.review.bot@gmail.com>
73721
73722        Unreviewed, rolling out r124668.
73723        http://trac.webkit.org/changeset/124668
73724        https://bugs.webkit.org/show_bug.cgi?id=93167
73725
73726        Broke Mac build (Requested by kbr_google on #webkit).
73727
73728        * bindings/js/JSArrayBufferViewHelper.h:
73729        (WebCore::setWebGLArrayWithTypedArrayArgument):
73730        (WebCore::setWebGLArrayHelper):
73731        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
73732        (WebCore::constructArrayBufferViewWithArrayBufferArgument):
73733        (WebCore::constructArrayBufferView):
73734        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
73735        (WebCore::constructWebGLArrayWithArrayBufferArgument):
73736        (WebCore):
73737        (WebCore::constructWebGLArray):
73738        (WebCore::setWebGLArrayHelper):
73739
737402012-08-03  Julien Chaffraix  <jchaffraix@webkit.org>
73741
73742        Implement computePreferredLogicalWidths on RenderGrid
73743        https://bugs.webkit.org/show_bug.cgi?id=92908
73744
73745        Reviewed by Ojan Vafai.
73746
73747        This functions implements a primitive computePreferredLogicalWidths
73748        so that we properly handle vertical writing modes.
73749
73750        Covered by fast/css-grid-layout/place-cell-by-index.html.
73751
73752        * rendering/RenderGrid.cpp:
73753        (WebCore::RenderGrid::computePreferredLogicalWidths):
73754        * rendering/RenderGrid.h:
73755        Added computePreferredLogicalWidths.
73756
737572012-08-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
73758
73759        Update TypedArrays to throw RangeError or similar instead of INDEX_SIZE_ERR
73760        https://bugs.webkit.org/show_bug.cgi?id=45118
73761
73762        Reviewed by Kenneth Russell.
73763
73764        Update TypedArrays to raise JavaScript RangeError instead of dom
73765        INDEX_SIZE_ERR exceptions. Also, update TypedArrays to raise TypeError
73766        instead of JavaScript SyntaxError or dom exceptions SYNTAX_ERR when
73767        calling set method with invalid arguments.
73768
73769        Specification does not define the type of exceptions to raise, but
73770        other browsers raise JavaScript errors, so those changes will improve
73771        compatibility.
73772
73773        New Test: fast/canvas/webgl/array-set-invalid-arguments.html
73774
73775        Updated Tests expectations:
73776            fast/canvas/webgl/array-set-out-of-bounds.html
73777            fast/canvas/webgl/data-view-crash.html
73778            fast/canvas/webgl/data-view-test.html
73779
73780        * bindings/js/JSArrayBufferViewHelper.h:
73781        (WebCore):
73782        (WebCore::setWebGLArrayWithTypedArrayArgument):
73783        (WebCore::setWebGLArrayHelper):
73784        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
73785        (WebCore::constructArrayBufferViewWithArrayBufferArgument):
73786        (WebCore::constructArrayBufferView):
73787        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
73788        (WebCore):
73789        (WebCore::constructWebGLArrayWithArrayBufferArgument):
73790        (WebCore::setWebGLArrayHelper):
73791
737922012-08-03  Levi Weintraub  <leviw@chromium.org>
73793
73794        Switch mapLocalToContainer to use a flag instead of boolean parameters
73795        https://bugs.webkit.org/show_bug.cgi?id=92927
73796
73797        Reviewed by Dirk Schulze.
73798
73799        Changing mapLocalToContainer to use a uint flag to set the mode of operation. This removes
73800        simplifies the contract, removes boolean arguments and paves the way for an additional mode
73801        for sub-pixel layout support. See https://bugs.webkit.org/show_bug.cgi?id=89238 for the
73802        sub-pixel use case. Other than the new MapLocalToContainerMode enum and MapLocalToContainerFlags
73803        typedef, this change is purely mechanical.
73804
73805        No new tests as this doesn't change current behavior.
73806
73807        * rendering/RenderBlock.cpp:
73808        (WebCore::RenderBlock::selectionGapRectsForRepaint):
73809        * rendering/RenderBox.cpp:
73810        (WebCore::RenderBox::mapLocalToContainer):
73811        * rendering/RenderBox.h:
73812        (RenderBox):
73813        * rendering/RenderGeometryMap.cpp:
73814        (WebCore::RenderGeometryMap::mapToAbsolute):
73815        * rendering/RenderInline.cpp:
73816        (WebCore::RenderInline::mapLocalToContainer):
73817        * rendering/RenderInline.h:
73818        (RenderInline):
73819        * rendering/RenderObject.cpp:
73820        (WebCore::RenderObject::localToAbsolute):
73821        (WebCore::RenderObject::mapLocalToContainer):
73822        (WebCore::RenderObject::localToContainerQuad):
73823        (WebCore::RenderObject::localToContainerPoint):
73824        * rendering/RenderObject.h:
73825        (RenderObject): Adding the MapLocalToContainerMode enum and MapLocalToContainerFlags unsigned
73826        int, and removing the old ApplyContainerFlipOrNot enum.
73827        * rendering/RenderView.cpp:
73828        (WebCore::RenderView::mapLocalToContainer):
73829        * rendering/RenderView.h:
73830        (RenderView):
73831        * rendering/svg/RenderSVGForeignObject.cpp:
73832        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
73833        * rendering/svg/RenderSVGForeignObject.h:
73834        (RenderSVGForeignObject):
73835        * rendering/svg/RenderSVGInline.cpp:
73836        (WebCore::RenderSVGInline::mapLocalToContainer):
73837        * rendering/svg/RenderSVGInline.h:
73838        (RenderSVGInline):
73839        * rendering/svg/RenderSVGModelObject.cpp:
73840        (WebCore::RenderSVGModelObject::mapLocalToContainer):
73841        * rendering/svg/RenderSVGModelObject.h:
73842        (RenderSVGModelObject):
73843        * rendering/svg/RenderSVGRoot.cpp:
73844        (WebCore::RenderSVGRoot::mapLocalToContainer):
73845        * rendering/svg/RenderSVGRoot.h:
73846        (RenderSVGRoot):
73847        * rendering/svg/RenderSVGText.cpp:
73848        (WebCore::RenderSVGText::mapLocalToContainer):
73849        * rendering/svg/RenderSVGText.h:
73850        (RenderSVGText):
73851        * rendering/svg/SVGRenderSupport.cpp:
73852        (WebCore::SVGRenderSupport::mapLocalToContainer):
73853
738542012-08-03  Emil A Eklund  <eae@chromium.org>
73855
73856        Remove dependency on LayoutTypes.h from transformation code
73857        https://bugs.webkit.org/show_bug.cgi?id=93037
73858
73859        Reviewed by Levi Weintraub.
73860
73861        TransformationMatrix and HitTestingTransformState includes LayoutTypes.h
73862        which is in rendering. This is a layering violation.
73863        Remove this dependency as it is no longer needed.
73864
73865        No new tests, no change in functionality.
73866
73867        * rendering/LayoutTypes.h:
73868        Remove clampToLayoutUnit
73869        
73870        * platform/FractionalLayoutUnit.h:
73871        (WebCore::FractionalLayoutUnit::clamp):
73872        Add FractionalLayoutUnit::clamp method that clamps a double to a FractionalLayoutUnit.
73873        * platform/graphics/transforms/TransformationMatrix.cpp:
73874        (WebCore::clampEdgeValue):
73875        (WebCore::TransformationMatrix::clampedBoundsOfProjectedQuad):
73876        Use clamp/max/min from FractionalLayoutUnit instead of going through LayoutUnit abstraction.
73877        * platform/graphics/transforms/TransformationMatrix.h:
73878        * rendering/HitTestingTransformState.cpp:
73879        * rendering/HitTestingTransformState.h:
73880        Replace use of LayoutRect with FractionalLayoutRect as LayoutRect maps to FractionalLayoutRect on all platforms.
73881
738822012-08-03  Dan Bernstein  <mitz@apple.com>
73883
73884        <rdar://problem/12005188> REGRESSION (Safari 5.1 - 6): Cannot correctly display Traditional Mongolian Script
73885        https://bugs.webkit.org/show_bug.cgi?id=92864
73886
73887        Reviewed by Sam Weinig.
73888
73889        Test: platform/mac/fast/text/combining-character-sequence-vertical.html
73890
73891        * platform/graphics/SimpleFontData.cpp:
73892        (WebCore::SimpleFontData::glyphForCharacter): Added this helper function.
73893        * platform/graphics/SimpleFontData.h:
73894        (SimpleFontData): Declared glyphDataForCharacter.
73895        * platform/graphics/mac/FontComplexTextMac.cpp:
73896        (WebCore::Font::fontDataForCombiningCharacterSequence): Added logic to use the appropriate
73897        variant of each font in the fallback list, which mimcs the equivalent logic in
73898        glyphDataAndPageForCharacter().
73899
739002012-08-03  Kenneth Russell  <kbr@google.com>
73901
73902        [Chromium] Web Inspector: Win Dbg tests timing out (r123556 or r123560?)
73903        https://bugs.webkit.org/show_bug.cgi?id=92570
73904
73905        Reviewed by Pavel Feldman.
73906
73907        Try restricting the use of the GC hint for canvas contexts to only
73908        WebGL contexts, where it is most needed, to see whether this
73909        clears up the timeouts.
73910
73911        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
73912        (WebCore::V8HTMLCanvasElement::getContextCallback):
73913
739142012-08-02  Jeffrey Pfau  <jpfau@apple.com>
73915
73916        Add API for enabling blanket third-party data blocking
73917        https://bugs.webkit.org/show_bug.cgi?id=93022
73918
73919        Reviewed by Anders Carlsson.
73920
73921        Added API for enabling third-party storage blocking.
73922
73923        * page/Settings.cpp:
73924        (WebCore::Settings::Settings):
73925        * page/Settings.h:
73926        (WebCore::Settings::setThirdPartyStorageBlockingEnabled):
73927        (WebCore::Settings::thirdPartyStorageBlockingEnabled):
73928        (Settings):
73929
739302012-08-03  Anna Cavender  <annacc@chromium.org>
73931
73932        Negative timestamps for TextTrackCues should not be allowed.
73933        https://bugs.webkit.org/show_bug.cgi?id=92939
73934
73935        Reviewed by Eric Carlson.
73936
73937        Make sure cues added in JavaScript are not allowed negative timestamps.
73938        Attempting to add a cue with a negative timestamp is not successful
73939        and setting a timestamp to a negative value has no effect.
73940
73941        Test: media/track/track-cue-negative-timestamp.html
73942
73943        * html/track/TextTrack.cpp:
73944        (WebCore::TextTrack::addCue): If the cue's startTime or endTime is 
73945            negative, do not add the cue.
73946        * html/track/TextTrackCue.cpp:
73947        (WebCore::TextTrackCue::setStartTime): Ignore negative values.
73948        (WebCore::TextTrackCue::setEndTime): Ignore negative values.
73949        * html/track/TextTrackCueList.cpp:
73950        (WebCore::TextTrackCueList::add): Add ASSERTs to check startTime and
73951            endTime are positive.
73952
739532012-08-03  Sheriff Bot  <webkit.review.bot@gmail.com>
73954
73955        Unreviewed, rolling out r124594.
73956        http://trac.webkit.org/changeset/124594
73957        https://bugs.webkit.org/show_bug.cgi?id=93152
73958
73959        Broke PlatformAppBrowserTest.Iframes browser_test on Chromium
73960        bots (Requested by dimich on #webkit).
73961
73962        * bindings/generic/BindingSecurity.cpp:
73963        (WebCore::canAccess):
73964        (WebCore::BindingSecurity::canAccessFrame):
73965        (WebCore::BindingSecurity::shouldAllowAccessToNode):
73966        * bindings/v8/BindingState.cpp:
73967        (WebCore::immediatelyReportUnsafeAccessTo):
73968        * bindings/v8/BindingState.h:
73969        (WebCore):
73970        * bindings/v8/V8DOMWindowShell.cpp:
73971        (WebCore::reportUnsafeJavaScriptAccess):
73972        * bindings/v8/V8Proxy.cpp:
73973        (WebCore::V8Proxy::reportUnsafeAccessTo):
73974        * bindings/v8/V8Proxy.h:
73975        (V8Proxy):
73976
739772012-08-03  Terry Anderson  <tdanderson@chromium.org>
73978
73979        Apply target fuzzing when sending a context menu event
73980        https://bugs.webkit.org/show_bug.cgi?id=92914
73981
73982        Reviewed by Antonio Gomes.
73983
73984        If TOUCH_ADJUSTMENT is enabled, use bestClickableNodeForTouchPoint to possibly
73985        adjust the location of a context menu event. This change uses the same set of
73986        candidates for touch adjustment as is used for a GestureTap event (which
73987        admittedly is a simplifying assumption).
73988
73989        Test: touchadjustment/touch-links-longpress.html
73990
73991        * page/EventHandler.cpp:
73992        (WebCore::EventHandler::handleGestureTap):
73993        Some code moved to the new function adjustGesturePosition.
73994        (WebCore):
73995        (WebCore::EventHandler::adjustGesturePosition):
73996        Added this function to avoid repeated code in handleGestureTap and
73997        sendContextMenuEventForGesture.
73998        (WebCore::EventHandler::sendContextMenuEventForGesture):
73999        Try to adjust the location of |mouseEvent| to correspond to the most
74000        probable gesture target. If no such target exists, the location of
74001        |mouseEvent| is unchanged.
74002        * page/EventHandler.h:
74003        (EventHandler):
74004
740052012-08-03  Sheriff Bot  <webkit.review.bot@gmail.com>
74006
74007        Unreviewed, rolling out r124475 and r124496.
74008        http://trac.webkit.org/changeset/124475
74009        http://trac.webkit.org/changeset/124496
74010        https://bugs.webkit.org/show_bug.cgi?id=93151
74011
74012        Causing assertion failures in table-section-node-at-point-
74013        crash.html (Requested by inferno-sec on #webkit).
74014
74015        * rendering/RenderTableSection.cpp:
74016        (WebCore::RenderTableSection::paint):
74017
740182012-08-03  Jan Keromnes  <janx@linux.com>
74019
74020        Web Inspector: Create and interface for TextEditor
74021        https://bugs.webkit.org/show_bug.cgi?id=93126
74022
74023        Reviewed by Pavel Feldman.
74024
74025        For more extensibility, TextEditor needs to be an interface that other
74026        classes can implement, e.g. the new class DefaultTextEditor.
74027
74028        * WebCore.gypi:
74029        * WebCore.vcproj/WebCore.vcproj:
74030        * inspector/compile-front-end.py:
74031        * inspector/front-end/SourceFrame.js:
74032        (WebInspector.SourceFrame):
74033        * inspector/front-end/TextEditor.js:
74034        (WebInspector.TextEditor):
74035        (WebInspector.TextEditor.prototype.set mimeType):
74036        (WebInspector.TextEditor.prototype.setReadOnly):
74037        (WebInspector.TextEditor.prototype.readOnly):
74038        (WebInspector.TextEditor.prototype.defaultFocusedElement):
74039        (WebInspector.TextEditor.prototype.revealLine):
74040        (WebInspector.TextEditor.prototype.addDecoration):
74041        (WebInspector.TextEditor.prototype.removeDecoration):
74042        (WebInspector.TextEditor.prototype.markAndRevealRange):
74043        (WebInspector.TextEditor.prototype.highlightLine):
74044        (WebInspector.TextEditor.prototype.clearLineHighlight):
74045        (WebInspector.TextEditor.prototype.freeCachedElements):
74046        (WebInspector.TextEditor.prototype.elementsToRestoreScrollPositionsFor):
74047        (WebInspector.TextEditor.prototype.inheritScrollPositions):
74048        (WebInspector.TextEditor.prototype.beginUpdates):
74049        (WebInspector.TextEditor.prototype.endUpdates):
74050        (WebInspector.TextEditor.prototype.onResize):
74051        (WebInspector.TextEditor.prototype._textChanged):
74052        (WebInspector.TextEditor.prototype.editRange):
74053        (WebInspector.TextEditor.prototype.scrollToLine):
74054        (WebInspector.TextEditor.prototype.selection):
74055        (WebInspector.TextEditor.prototype.lastSelection):
74056        (WebInspector.TextEditor.prototype.setSelection):
74057        (WebInspector.TextEditor.prototype.setText):
74058        (WebInspector.TextEditor.prototype.text):
74059        (WebInspector.TextEditor.prototype.range):
74060        (WebInspector.TextEditor.prototype.line):
74061        (WebInspector.TextEditor.prototype.get linesCount):
74062        (WebInspector.TextEditor.prototype.setAttribute):
74063        (WebInspector.TextEditor.prototype.getAttribute):
74064        (WebInspector.TextEditor.prototype.removeAttribute):
74065        (WebInspector.TextEditor.prototype.wasShown):
74066        (WebInspector.TextEditor.prototype._handleFocused):
74067        (WebInspector.TextEditor.prototype.willHide):
74068        * inspector/front-end/WebKit.qrc:
74069        * inspector/front-end/inspector.html:
74070
740712012-08-03  Mike West  <mkwst@chromium.org>
74072
74073        Blocking a plugin via CSP should result in one (and only one) console message.
74074        https://bugs.webkit.org/show_bug.cgi?id=92649
74075
74076        Reviewed by Adam Barth.
74077
74078        Currently, blocking a plugin via Content Security Policy results in some
74079        leakage of console log messages between tests. I'm unclear as to the
74080        root cause, but the symptoms exhibited include
74081        `SubframeLoader::requestPlugin` being called multiple times for a single
74082        element, which in turn causes multiple console logs to be sent. These
74083        messages tend to appear in the subsequent test, making the
74084        `http/test/security/contentSecurityPolicy/object-src-*` set of tests
74085        flakey indeed.
74086
74087        This patch addresses the issue by marking elements' plugins as
74088        unavailable when they're blocked by CSP. No new tests have been added:
74089        this patch should simply make the current tests actually pass.
74090
74091        * loader/SubframeLoader.cpp:
74092        (WebCore::SubframeLoader::requestPlugin):
74093            We check the CSP status in `SubframeLoader::loadPlugin`, which is
74094            called at the end of this function. Checking CSP status in both
74095            locations is redundant.
74096        (WebCore::SubframeLoader::loadPlugin):
74097            If the plugin is blocked by CSP, tell the element's embedded object
74098            renderer that the plugin is unavailable.
74099        * platform/LocalizedStrings.cpp:
74100        (WebCore::blockedPluginByContentSecurityPolicyText):
74101        (WebCore):
74102        * platform/LocalizedStrings.h:
74103        (WebCore):
74104        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
74105        (WebCore::blockedPluginByContentSecurityPolicyText):
74106        (WebCore):
74107        * platform/efl/LocalizedStringsEfl.cpp:
74108        (WebCore::blockedPluginByContentSecurityPolicyText):
74109        (WebCore):
74110        * platform/gtk/LocalizedStringsGtk.cpp:
74111        (WebCore::blockedPluginByContentSecurityPolicyText):
74112        (WebCore):
74113        * platform/qt/LocalizedStringsQt.cpp:
74114        (WebCore::blockedPluginByContentSecurityPolicyText):
74115        (WebCore):
74116        * rendering/RenderEmbeddedObject.cpp:
74117        (WebCore::unavailablePluginReplacementText):
74118        * rendering/RenderEmbeddedObject.h:
74119            Return appropriate text when the plugin is blocked by CSP.
74120
741212012-08-03  Kentaro Hara  <haraken@chromium.org>
74122
74123        [V8] Add an IsExecutionTerminating() check to setDOMException()
74124        https://bugs.webkit.org/show_bug.cgi?id=93101
74125
74126        Reviewed by Adam Barth.
74127
74128        In preparation for moving exception related code from V8Proxy to V8Binding,
74129        I am going to remove throwError(ExceptionCode, v8::Isolate*) from V8Proxy.
74130        throwError(ExceptionCode, v8::Isolate*) will be replaced with
74131        setDOMException(ExceptionCode, v8::Isolate*). By this refactoring,
74132        the way to throw JavaScript errors and DOM exceptions becomes simple:
74133        "Throw JavaScript errors by throwError(). Throw DOM exceptions by setDOMException()".
74134        (Currently some DOM exceptions are being thrown by throwError().)
74135
74136        To keep the current behavior of throwError(ExceptionCode, v8::Isolate*),
74137        before the replacement, we need to insert the IsExecutionTerminating()
74138        check to setDOMException(). This will add an extra check to the current
74139        setDOMException(), but I don't think it's a problem.
74140
74141        No tests. No change in behavior.
74142
74143        * bindings/v8/V8Proxy.cpp:
74144        (WebCore::V8Proxy::setDOMException):
74145
741462012-08-03  Sadrul Habib Chowdhury  <sadrul@chromium.org>
74147
74148        Avoid dispatching gesture events of unknown types
74149        https://bugs.webkit.org/show_bug.cgi?id=93060
74150
74151        Reviewed by Adam Barth.
74152
74153        WebCore gesture events do not always correspond 1-to-1 to the Platform gesture events. So
74154        avoid dispatching the unknown gesture events to nodes.
74155
74156        * dom/GestureEvent.cpp:
74157        (WebCore::GestureEvent::create):
74158        * dom/Node.cpp:
74159        (WebCore::Node::dispatchGestureEvent):
74160
741612012-08-03  Stephen Chenney  <schenney@chromium.org>
74162
74163        Crash when a clip path referencing a clip path changes documents
74164        https://bugs.webkit.org/show_bug.cgi?id=93023
74165
74166        Reviewed by Dirk Schulze.
74167
74168        The SVGClipPathElement is set to not need pending resource handling,
74169        when in fact it can have pending resources. The result is a crash when
74170        the element is moved to a new document (which deletes all resources
74171        and leaves them pending) and then immediately deleted (which asserts
74172        that there are no pending resources). There is code to remove pending
74173        resources upon deletion and removal from the DOM, but it was not
74174        executing for clips because of the aforementioned code claiming that
74175        clips don't require such handling.
74176
74177        The assertion that there be no pending resources is necessary to
74178        prevent caches of pending resources from trying to access the deleted
74179        element.
74180
74181        This change removes the check for needsPendingResourceHandling in
74182        SVGStyledElement upon deletion and removal from the DOM. Pending resources
74183        will always be checked in such cases to ensure we do not introduce
74184        security issues.
74185
74186        Test: svg/custom/clip-path-document-change-assert.html
74187
74188        * svg/SVGStyledElement.cpp:
74189        (WebCore::SVGStyledElement::~SVGStyledElement): Removed needsPendingResourceHandling in the conditional to clean up resources.
74190        (WebCore::SVGStyledElement::removedFrom): Removed needsPendingResourceHandling in the conditional to clean up resources.
74191
741922012-08-03  Kentaro Hara  <haraken@chromium.org>
74193
74194        [V8] Remove unused methods in V8Proxy
74195        https://bugs.webkit.org/show_bug.cgi?id=93106
74196
74197        Reviewed by Adam Barth.
74198
74199        In preparation for removing V8Proxy, we can remove unused methods in V8Proxy.
74200
74201        No tests. No change in behavior.
74202
74203        * bindings/v8/V8Proxy.h:
74204        (V8Proxy):
74205
742062012-08-03  Kentaro Hara  <haraken@chromium.org>
74207
74208        [V8] Implement v8Undefined()
74209        https://bugs.webkit.org/show_bug.cgi?id=93093
74210
74211        Reviewed by Adam Barth.
74212
74213        There are a couple of equivalent ways to create an undefined value,
74214        e.g. v8::Undefined(), v8::Undefined(isolate), v8::Handle<v8::Value>(), etc.
74215        We should implement v8Undefined() and use it everywhere.
74216
74217        In this bug, we implement v8Undefined() and use it in CodeGeneratorV8.pm.
74218        We can implement v8Undefined() like this:
74219
74220            v8::Handle<v8::Value> v8Undefined() { v8::Handle<v8::Value>(); }
74221
74222        This is based on the following performance results:
74223
74224        // 14.5 ns
74225        v8::Handle<v8::Value> xxxAttrGetter(..., info) {
74226            return v8::Undefined();
74227        }
74228
74229        // 8.24 ns (This cannot be used where isolate can be 0.)
74230        v8::Handle<v8::Value> xxxAttrGetter(..., info) {
74231            return v8::Undefined(info.GetIsolate());
74232        }
74233
74234        // 8.54 ns
74235        v8::Handle<v8::Value> xxxAttrGetter(..., info) {
74236            v8::Isolate* isolate = info.GetIsolate();
74237            return isolate ? v8::Handle<v8::Value>(v8::Undefined(isolate)) : v8::Handle<v8::Value>();
74238        }
74239
74240        // 8.52 ns
74241        v8::Handle<v8::Value> xxxAttrGetter(..., info) {
74242            return v8::Handle<v8::Value>();
74243        }
74244
74245        No tests. No change in behavior.
74246
74247        * bindings/scripts/CodeGeneratorV8.pm:
74248        (GenerateConstructorGetter):
74249        (GenerateNormalAttrGetter):
74250        (GenerateNewFunctionTemplate):
74251        (GenerateEventListenerCallback):
74252        (GenerateFunctionCallback):
74253        (GenerateCallWith):
74254        (GenerateParametersCheck):
74255        (GenerateEventConstructorCallback):
74256        (GenerateNonStandardFunction):
74257        (GenerateImplementation):
74258        (NativeToJSValue):
74259        * bindings/scripts/test/V8/V8Float64Array.cpp:
74260        (WebCore::ConfigureV8Float64ArrayTemplate):
74261        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
74262        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
74263        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
74264        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
74265        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
74266        (WebCore::V8TestActiveDOMObject::wrapSlow):
74267        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
74268        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
74269        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
74270        (WebCore::V8TestEventConstructor::constructorCallback):
74271        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
74272        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
74273        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
74274        (WebCore::ConfigureV8TestEventTargetTemplate):
74275        * bindings/scripts/test/V8/V8TestInterface.cpp:
74276        (WebCore::TestInterfaceV8Internal::supplementalMethod1Callback):
74277        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
74278        (WebCore::TestInterfaceV8Internal::supplementalMethod4Callback):
74279        (WebCore::ConfigureV8TestInterfaceTemplate):
74280        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
74281        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
74282        * bindings/scripts/test/V8/V8TestObj.cpp:
74283        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
74284        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetter):
74285        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
74286        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
74287        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
74288        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
74289        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
74290        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
74291        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
74292        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
74293        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
74294        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
74295        (WebCore::TestObjV8Internal::TestObjConstructorGetter):
74296        (WebCore::TestObjV8Internal::voidMethodCallback):
74297        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
74298        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
74299        (WebCore::TestObjV8Internal::serializedValueCallback):
74300        (WebCore::TestObjV8Internal::idbKeyCallback):
74301        (WebCore::TestObjV8Internal::optionsObjectCallback):
74302        (WebCore::TestObjV8Internal::methodWithExceptionCallback):
74303        (WebCore::TestObjV8Internal::addEventListenerCallback):
74304        (WebCore::TestObjV8Internal::removeEventListenerCallback):
74305        (WebCore::TestObjV8Internal::withScriptStateVoidCallback):
74306        (WebCore::TestObjV8Internal::withScriptStateVoidExceptionCallback):
74307        (WebCore::TestObjV8Internal::withScriptExecutionContextCallback):
74308        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateCallback):
74309        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
74310        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
74311        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
74312        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
74313        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
74314        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
74315        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
74316        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
74317        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
74318        (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
74319        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
74320        (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgCallback):
74321        (WebCore::TestObjV8Internal::conditionalMethod2Callback):
74322        (WebCore::TestObjV8Internal::conditionalMethod3Callback):
74323        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
74324        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
74325        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
74326        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
74327        (WebCore::TestObjV8Internal::overloadedMethod5Callback):
74328        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
74329        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
74330        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
74331        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
74332        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
74333        (WebCore::TestObjV8Internal::classMethodCallback):
74334        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
74335        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
74336        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
74337        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
74338        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
74339        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
74340        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
74341        (WebCore::TestObjV8Internal::convert1Callback):
74342        (WebCore::TestObjV8Internal::convert2Callback):
74343        (WebCore::TestObjV8Internal::convert3Callback):
74344        (WebCore::TestObjV8Internal::convert4Callback):
74345        (WebCore::TestObjV8Internal::convert5Callback):
74346        (WebCore::TestObjV8Internal::orangeCallback):
74347        (WebCore::ConfigureV8TestObjTemplate):
74348        (WebCore::V8TestObj::installPerContextProperties):
74349        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
74350        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
74351        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
74352        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
74353        * bindings/v8/V8Binding.h:
74354        (WebCore::v8Undefined):
74355        (WebCore):
74356
743572012-08-03  Kentaro Hara  <haraken@chromium.org>
74358
74359        [V8] Remove v8StringToWebCoreString()
74360        https://bugs.webkit.org/show_bug.cgi?id=93087
74361
74362        Reviewed by Adam Barth.
74363
74364        There should be only one API that converts V8 String
74365        to WebCore String. v8ValueToWebCoreString() does it.
74366        We can remove v8StringToWebCoreString().
74367
74368        No tests. No change in behavior.
74369
74370        * bindings/v8/ScriptDebugServer.cpp:
74371        (WebCore::ScriptDebugServer::setBreakpoint):
74372        * bindings/v8/V8Binding.cpp:
74373        (WebCore::v8ValueToWebCoreString):
74374        * bindings/v8/V8Binding.h:
74375        (WebCore):
74376
743772012-07-20  Jon Lee  <jonlee@apple.com>
74378
74379        Crash in Notification when setting a non-object as an event listener (91881)
74380        https://bugs.webkit.org/show_bug.cgi?id=91881
74381        <rdar://problem/11923341>
74382
74383        Reviewed by Oliver Hunt.
74384
74385        Check to make sure that the value being retrieved is an object. This is similar
74386        to the isObject() check done in the bindings code.
74387
74388        Test: fast/notifications/notifications-event-listener-crash.html
74389
74390        * bindings/js/Dictionary.h:
74391        (WebCore::Dictionary::getEventListener):
74392
743932012-08-03  Kentaro Hara  <haraken@chromium.org>
74394
74395        [V8] Remove v8StringToAtomicWebCoreString()
74396        https://bugs.webkit.org/show_bug.cgi?id=93086
74397
74398        Reviewed by Dimitri Glazkov.
74399
74400        There should be only one API that converts V8 String to
74401        AtomicString. v8ValueToAtomicWebCoreString() does it.
74402        We can remove v8StringToAtomicWebCoreString().
74403
74404        No tests. No change in behavior.
74405
74406        * bindings/v8/V8Binding.cpp:
74407        (WebCore::v8ValueToAtomicWebCoreString):
74408        * bindings/v8/V8Binding.h:
74409        (WebCore):
74410        * bindings/v8/V8DOMWindowShell.cpp:
74411        (WebCore::getter):
74412        * bindings/v8/custom/V8DOMWindowCustom.cpp:
74413        (WebCore::V8DOMWindow::namedPropertyGetter):
74414        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
74415        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
74416        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
74417        (WebCore::V8HTMLCollection::namedPropertyGetter):
74418        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
74419        (WebCore::V8HTMLFormElement::namedPropertyGetter):
74420        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
74421        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
74422
744232012-08-03  Ilya Tikhonovsky  <loislo@chromium.org>
74424
74425        Web Inspector: eliminate visitBaseClass method from NMI. It introduces unnecessary complexity.
74426        https://bugs.webkit.org/show_bug.cgi?id=93129
74427
74428        Reviewed by Yury Semikhatsky.
74429
74430        * css/PropertySetCSSStyleDeclaration.cpp:
74431        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
74432        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
74433        * dom/CharacterData.cpp:
74434        (WebCore::CharacterData::reportMemoryUsage):
74435        * dom/ContainerNode.h:
74436        (WebCore::ContainerNode::reportMemoryUsage):
74437        * dom/Document.cpp:
74438        (WebCore::Document::reportMemoryUsage):
74439        * dom/Element.h:
74440        (WebCore::Element::reportMemoryUsage):
74441        * dom/MemoryInstrumentation.h:
74442        * dom/Node.cpp:
74443        (WebCore::Node::reportMemoryUsage):
74444
744452012-08-03  Alexandre Elias  <aelias@google.com>
74446
74447        [chromium] Move ubercomp quads back into CC
74448        https://bugs.webkit.org/show_bug.cgi?id=93062
74449
74450        Reviewed by James Robinson.
74451
74452        Because GTFO is almost done, we can move back the quad types
74453        to CC and pickle them there.  This patch moves everything back
74454        to where it was before and changes types like WebRect to IntRect.
74455
74456        As a bonus, I also added CCRenderPassDrawQuad and CCYUVVideoDrawQuad
74457        (which had been left in the CC files) to CCDrawQuad::size(), so now
74458        every quad type is ready for serialization.
74459
74460        No new tests (no-op refactoring).
74461
74462        * WebCore.gypi:
74463        * platform/chromium/support/WebCompositorStreamVideoQuad.cpp: Removed.
74464        * platform/graphics/chromium/LayerRendererChromium.cpp:
74465        (WebCore::LayerRendererChromium::drawQuad):
74466        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCQuadSink.h.
74467        (WebCore):
74468        (WebCore::CCCheckerboardDrawQuad::create):
74469        (WebCore::CCCheckerboardDrawQuad::CCCheckerboardDrawQuad):
74470        (WebCore::CCCheckerboardDrawQuad::materialCast):
74471        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h:
74472        (WebCore):
74473        (CCCheckerboardDrawQuad):
74474        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorDebugBorderQuad.cpp.
74475        (WebCore):
74476        (WebCore::CCDebugBorderDrawQuad::create):
74477        (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
74478        (WebCore::CCDebugBorderDrawQuad::materialCast):
74479        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
74480        (WebCore):
74481        (CCDebugBorderDrawQuad):
74482        (WebCore::CCDebugBorderDrawQuad::color):
74483        (WebCore::CCDebugBorderDrawQuad::width):
74484        * platform/graphics/chromium/cc/CCDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorQuad.cpp.
74485        (WebCore):
74486        (WebCore::CCDrawQuad::CCDrawQuad):
74487        (WebCore::CCDrawQuad::opaqueRect):
74488        (WebCore::CCDrawQuad::setQuadVisibleRect):
74489        (WebCore::CCDrawQuad::size):
74490        (WebCore::CCDrawQuad::setSharedQuadState):
74491        * platform/graphics/chromium/cc/CCDrawQuad.h:
74492        (WebCore):
74493        (CCDrawQuad):
74494        (WebCore::CCDrawQuad::quadRect):
74495        (WebCore::CCDrawQuad::quadTransform):
74496        (WebCore::CCDrawQuad::visibleContentRect):
74497        (WebCore::CCDrawQuad::scissorRect):
74498        (WebCore::CCDrawQuad::opacity):
74499        (WebCore::CCDrawQuad::needsBlending):
74500        (WebCore::CCDrawQuad::isLayerAxisAlignedIntRect):
74501        (WebCore::CCDrawQuad::quadVisibleRect):
74502        (WebCore::CCDrawQuad::isDebugQuad):
74503        (WebCore::CCDrawQuad::material):
74504        (WebCore::CCDrawQuad::sharedQuadState):
74505        (WebCore::CCDrawQuad::sharedQuadStateId):
74506        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
74507        (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
74508        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorIOSurfaceQuad.cpp.
74509        (WebCore):
74510        (WebCore::CCIOSurfaceDrawQuad::create):
74511        (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
74512        (WebCore::CCIOSurfaceDrawQuad::materialCast):
74513        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
74514        (WebCore):
74515        (CCIOSurfaceDrawQuad):
74516        (WebCore::CCIOSurfaceDrawQuad::ioSurfaceSize):
74517        (WebCore::CCIOSurfaceDrawQuad::ioSurfaceTextureId):
74518        (WebCore::CCIOSurfaceDrawQuad::orientation):
74519        * platform/graphics/chromium/cc/CCQuadCuller.h:
74520        (CCQuadCuller):
74521        * platform/graphics/chromium/cc/CCQuadSink.h:
74522        (WebCore):
74523        (CCQuadSink):
74524        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
74525        (WebCore::CCRenderPassDrawQuad::create):
74526        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
74527        (WebCore::CCRenderPassDrawQuad::materialCast):
74528        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
74529        (CCRenderPassDrawQuad):
74530        * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorSharedQuadState.cpp.
74531        (WebCore):
74532        (WebCore::CCSharedQuadState::CCSharedQuadState):
74533        (WebCore::CCSharedQuadState::create):
74534        (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
74535        * platform/graphics/chromium/cc/CCSharedQuadState.h:
74536        (WebCore):
74537        (CCSharedQuadState):
74538        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorSolidColorQuad.cpp.
74539        (WebCore):
74540        (WebCore::CCSolidColorDrawQuad::create):
74541        (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
74542        (WebCore::CCSolidColorDrawQuad::materialCast):
74543        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
74544        (WebCore):
74545        (CCSolidColorDrawQuad):
74546        (WebCore::CCSolidColorDrawQuad::color):
74547        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorCheckerboardQuad.cpp.
74548        (WebCore):
74549        (WebCore::CCStreamVideoDrawQuad::create):
74550        (WebCore::CCStreamVideoDrawQuad::CCStreamVideoDrawQuad):
74551        (WebCore::CCStreamVideoDrawQuad::materialCast):
74552        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h:
74553        (WebCore):
74554        (CCStreamVideoDrawQuad):
74555        (WebCore::CCStreamVideoDrawQuad::textureId):
74556        (WebCore::CCStreamVideoDrawQuad::matrix):
74557        * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorTextureQuad.cpp.
74558        (WebCore):
74559        (WebCore::CCTextureDrawQuad::create):
74560        (WebCore::CCTextureDrawQuad::CCTextureDrawQuad):
74561        (WebCore::CCTextureDrawQuad::setNeedsBlending):
74562        (WebCore::CCTextureDrawQuad::materialCast):
74563        * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
74564        (WebCore):
74565        (CCTextureDrawQuad):
74566        (WebCore::CCTextureDrawQuad::uvRect):
74567        (WebCore::CCTextureDrawQuad::resourceId):
74568        (WebCore::CCTextureDrawQuad::premultipliedAlpha):
74569        (WebCore::CCTextureDrawQuad::flipped):
74570        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Renamed from Source/WebCore/platform/chromium/support/WebCompositorTileQuad.cpp.
74571        (WebCore):
74572        (WebCore::CCTileDrawQuad::create):
74573        (WebCore::CCTileDrawQuad::CCTileDrawQuad):
74574        (WebCore::CCTileDrawQuad::materialCast):
74575        * platform/graphics/chromium/cc/CCTileDrawQuad.h:
74576        (WebCore):
74577        (CCTileDrawQuad):
74578        (WebCore::CCTileDrawQuad::resourceId):
74579        (WebCore::CCTileDrawQuad::textureOffset):
74580        (WebCore::CCTileDrawQuad::textureSize):
74581        (WebCore::CCTileDrawQuad::textureFilter):
74582        (WebCore::CCTileDrawQuad::swizzleContents):
74583        (WebCore::CCTileDrawQuad::leftEdgeAA):
74584        (WebCore::CCTileDrawQuad::topEdgeAA):
74585        (WebCore::CCTileDrawQuad::rightEdgeAA):
74586        (WebCore::CCTileDrawQuad::bottomEdgeAA):
74587        (WebCore::CCTileDrawQuad::isAntialiased):
74588        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp:
74589        (WebCore::CCYUVVideoDrawQuad::create):
74590        (WebCore::CCYUVVideoDrawQuad::CCYUVVideoDrawQuad):
74591        (WebCore::CCYUVVideoDrawQuad::materialCast):
74592        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h:
74593        (CCYUVVideoDrawQuad):
74594
745952012-08-03  Alexander Pavlov  <apavlov@chromium.org>
74596
74597        Unreviewed, restore Web Inspector JS frontend compilability after r124484 (fix JSDoc annotations).
74598
74599        * inspector/front-end/Settings.js:
74600        * inspector/front-end/SettingsScreen.js:
74601        * inspector/front-end/UserAgentSupport.js:
74602        (WebInspector.UserAgentSupport.DeviceOrientation):
74603
746042012-08-03  Philippe Normand  <pnormand@igalia.com>
74605
74606        Unreviewed, rolling out r124614.
74607        http://trac.webkit.org/changeset/124614
74608        https://bugs.webkit.org/show_bug.cgi?id=91727
74609
74610        gstreamer core .po files mess up the build again
74611
74612        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
74613        (WTF::adoptGRef):
74614        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
74615        (setGstElementClassMetadata):
74616        * platform/graphics/gstreamer/GStreamerVersioning.h:
74617        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
74618        (StreamingClient::didReceiveResponse):
74619
746202012-08-03  Benjamin Poulain  <bpoulain@apple.com>
74621
74622        Initialize the Event Names' string from read only memory
74623        https://bugs.webkit.org/show_bug.cgi?id=92435
74624
74625        Reviewed by Anders Carlsson.
74626
74627        Similarily to r123689, we can initialize the event names' string from memory without copying the data.
74628        This saves us memory and initialization time.
74629
74630        * dom/EventNames.cpp:
74631        (WebCore):
74632
746332012-08-03  Philippe Normand  <pnormand@igalia.com>
74634
74635        [GTK][jhbuild] Switch to GStreamer 0.11 build
74636        https://bugs.webkit.org/show_bug.cgi?id=91727
74637
74638        Reviewed by Gustavo Noronha Silva.
74639
74640        Add a new function to encapsulate the GStreamer API removal of
74641        GST_OBJECT_IS_FLOATING in the upcoming 1.0 release. Use of this
74642        macro can now be replaced by calling the g_object_is_floating
74643        function.
74644
74645        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
74646        (WTF::adoptGRef):
74647        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
74648        (gstObjectIsFloating):
74649        * platform/graphics/gstreamer/GStreamerVersioning.h:
74650
746512012-08-03  George Staikos  <staikos@webkit.org>
74652
74653        [BlackBerry] Add a null check for media implementation to fix a crash.
74654        https://bugs.webkit.org/show_bug.cgi?id=93107
74655
74656        Reviewed by Rob Buis.
74657
74658        Fixes media/video-size.html.
74659
74660        * platform/blackberry/RenderThemeBlackBerry.cpp:
74661        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack): Add null check.
74662
746632012-08-03  Yury Semikhatsky  <yurys@chromium.org>
74664
74665        Unreviewed. Fixed WinCE compilation after r124589.
74666
74667        * css/PropertySetCSSStyleDeclaration.cpp:
74668        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
74669        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
74670
746712012-08-03  Keishi Hattori  <keishi@webkit.org>
74672
74673        Add keyboard support for color suggestion popup
74674        https://bugs.webkit.org/show_bug.cgi?id=93069
74675
74676        Reviewed by Kent Tamura.
74677
74678        This adds support for keyboard inside the color suggestion popup.
74679        Tab or arrow keys to move around. Return or space to select the color.
74680        Escape closes the popup.
74681
74682        No new tests. Covered in platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html.
74683
74684        * Resources/colorSuggestionPicker.css:
74685        (.color-swatch):
74686        (.color-swatch:focus):
74687        * Resources/colorSuggestionPicker.js:
74688        (ColorPicker):
74689        (ColorPicker.prototype._layout):
74690        (ColorPicker.prototype.selectColorAtIndex): Selects color at index.
74691        (ColorPicker.prototype._handleMouseMove): Set focus to the swatch under the mouse cursor.
74692        (ColorPicker.prototype._handleKeyDown): Move focused element on arrow keys.
74693        (ColorPicker.prototype._handleMouseDown): Prevents blur on click.
74694
746952012-08-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
74696
74697        Add missing include to build on Mac OS 10.8
74698
74699        Reviewed by Ossy.
74700
74701        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
74702
747032012-08-03  Adam Barth  <abarth@webkit.org>
74704
74705        [V8] Re-wire "target" half of the same-origin security check through Document rather than DOMWindow
74706        https://bugs.webkit.org/show_bug.cgi?id=93079
74707
74708        Reviewed by Eric Seidel.
74709
74710        Before this patch, we were traversing from Nodes to Frames to
74711        DOMWindows to SecurityOrigins when determing the "target" of an
74712        operation for the same-origin policy security check. Rather than
74713        detouring through DOMWindow, these security checks should operate in
74714        terms of ScriptExecutionContexts (aka Documents) because that's the
74715        canonical place we store SecurityOrigin objects.
74716
74717        A future patch will re-wire the "active" part of the security check to
74718        use ScriptExecutionContexts as well and we'll be able to remove the
74719        extra copy of SecurityOrigin that we keep in DOMWindow.
74720
74721        * bindings/generic/BindingSecurity.cpp:
74722        (WebCore::canAccessDocument):
74723        (WebCore::BindingSecurity::canAccessFrame):
74724        (WebCore::BindingSecurity::shouldAllowAccessToNode):
74725        * bindings/v8/BindingState.cpp:
74726        (WebCore::immediatelyReportUnsafeAccessTo):
74727        * bindings/v8/BindingState.h:
74728        (WebCore):
74729        * bindings/v8/V8DOMWindowShell.cpp:
74730        (WebCore::reportUnsafeJavaScriptAccess):
74731        * bindings/v8/V8Proxy.cpp:
74732        (WebCore::V8Proxy::reportUnsafeAccessTo):
74733        * bindings/v8/V8Proxy.h:
74734        (V8Proxy):
74735
747362012-08-03  Keishi Hattori  <keishi@webkit.org>
74737
74738        ColorSuggestionPicker popup's height doesn't get smaller than 100 px
74739        https://bugs.webkit.org/show_bug.cgi?id=92945
74740
74741        Reviewed by Kent Tamura.
74742
74743        A window cannot be resized to be smaller than 100x100 pixels so this
74744        adjust the color suggestion popup UI to look better when there are only
74745        a few suggestions.
74746
74747        Tests: platform/chromium/fast/forms/color/color-suggestion-picker-one-row-appearance.html
74748               platform/chromium/fast/forms/color/color-suggestion-picker-two-row-appearance.html
74749
74750        * Resources/colorSuggestionPicker.css:
74751        (.color-swatch-container): Vertically center the swatches.
74752
747532012-08-03  Alexander Pavlov  <apavlov@chromium.org>
74754
74755        Web Inspector: Remove InspectorCSSAgent from InstrumentingAgents on clearFrontend()
74756        https://bugs.webkit.org/show_bug.cgi?id=93082
74757
74758        Reviewed by Yury Semikhatsky.
74759
74760        * inspector/InspectorCSSAgent.cpp:
74761        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
74762        (WebCore::InspectorCSSAgent::~InspectorCSSAgent):
74763        (WebCore::InspectorCSSAgent::setFrontend):
74764        (WebCore::InspectorCSSAgent::clearFrontend):
74765
747662012-08-03  Eugene Klyuchnikov  <eustas.big@gmail.com>
74767
74768        Web Inspector: Profiles: extract save to file / load from code
74769        https://bugs.webkit.org/show_bug.cgi?id=92348
74770
74771        Reviewed by Yury Semikhatsky.
74772
74773        Motivation: extract reusable code for timeline load/save.
74774        FileUtils.js will contain common code. Not all code moved to FileUtils
74775        to make review easier. This code will be moved in next patch.
74776
74777        Core abstractions: OutputStream and OutputStreamDelegate.
74778
74779        OutputStream is interface that is used to transfer entity divded
74780        to chunks. Transfer process is explicitly initialized (startTransfer)
74781        and finalized (finishTrnsfer).
74782
74783        OutputStreamDelegate is interface to receive notifications about
74784        transfer process: onTransferStarted, onChunkTransferred, onTransferFinished.
74785
74786        ChunkedFileReader: utility class that loads file by chunks of specified
74787        size and notifies given delegate. OutputStream is supplied as a
74788        parameter of method "start".
74789
74790        ChunkedFileWriter: implementation of OutputStream that saves data
74791        to file specified by file name and notifies given delegate.
74792
74793        * WebCore.gypi: Added 'FileUtils.js'.
74794        * WebCore.vcproj/WebCore.vcproj: Added 'FileUtils.js'.
74795        * inspector/compile-front-end.py: Added 'FileUtils.js'.
74796        * inspector/front-end/FileUtils.js: Added.
74797        (WebInspector.OutputStreamDelegate): Added.
74798        (WebInspector.ChunkedFileReader): Added.
74799        (WebInspector.createFileSelectorElement): Added utility method to construct
74800        hidden input element to select file.
74801        * inspector/front-end/HeapSnapshotLoader.js: Adopted new API.
74802        * inspector/front-end/HeapSnapshotProxy.js: Adopted new API.
74803        * inspector/front-end/HeapSnapshotView.js: Adopted new API.
74804        (WebInspector.HeapSnapshotLoadFromFileDelegate):
74805        Extracted from existing code.
74806        (WebInspector.ChunkedFileWriter): Renamed and refactored.
74807        (WebInspector.HeapSnapshotSaveToFileDelegate):
74808        Extracted from existing code.
74809        * inspector/front-end/ProfilesPanel.js: Adopted new API.
74810
748112012-08-03  Alexander Pavlov  <apavlov@chromium.org>
74812
74813        Web Inspector: Incorrect blob url href when inspecting
74814        https://bugs.webkit.org/show_bug.cgi?id=93076
74815
74816        Reviewed by Vsevolod Vlasov.
74817
74818        Special-cased the "blob" scheme to return the original URL intact on completion.
74819
74820        * inspector/front-end/ResourceUtils.js:
74821        (WebInspector.completeURL):
74822
748232012-08-03  Yury Semikhatsky  <yurys@chromium.org>
74824
74825        Web Inspector: add CSSRule memory instrumentation
74826        https://bugs.webkit.org/show_bug.cgi?id=92962
74827
74828        Reviewed by Pavel Feldman.
74829
74830        Added memory footprint reporting method to CSSRule and its descendants.
74831
74832        * css/CSSCharsetRule.cpp:
74833        (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
74834        (WebCore):
74835        * css/CSSCharsetRule.h:
74836        (CSSCharsetRule):
74837        * css/CSSComputedStyleDeclaration.cpp:
74838        (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
74839        (WebCore):
74840        * css/CSSComputedStyleDeclaration.h:
74841        (CSSComputedStyleDeclaration):
74842        * css/CSSFontFaceRule.cpp:
74843        (WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
74844        (WebCore):
74845        * css/CSSFontFaceRule.h:
74846        (CSSFontFaceRule):
74847        * css/CSSImportRule.cpp:
74848        (WebCore::CSSImportRule::reportDescendantMemoryUsage):
74849        (WebCore):
74850        * css/CSSImportRule.h:
74851        (CSSImportRule):
74852        * css/CSSMediaRule.cpp:
74853        (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
74854        (WebCore):
74855        * css/CSSMediaRule.h:
74856        (CSSMediaRule):
74857        * css/CSSPageRule.cpp:
74858        (WebCore::CSSPageRule::reportDescendantMemoryUsage):
74859        (WebCore):
74860        * css/CSSPageRule.h:
74861        (CSSPageRule):
74862        * css/CSSRule.cpp:
74863        (WebCore::CSSRule::reportMemoryUsage): we manually implement polymorphic
74864        call here to avoid adding vtable pointer to all CSSRule objects. Descendants
74865        are expected to report their memory via reportDescendantMemoryUsage. The name
74866        is intentionally different from reportMemoryUsage to avoid accidential infitite
74867        recursion: if the descendants overrode non-virtual CSSRule::reportMemoryUsage,
74868        it would be easy to add a new descendant type to the switch in
74869        CSSRule::reportMemoryUsage without providing proper override for reportMemoryUsage
74870        and CSSRule::reportMemoryUsage would end up calling itself.
74871        (WebCore):
74872        (WebCore::CSSRule::reportBaseClassMemoryUsage): again we cannot use
74873        MemoryClassInfo::visitBaseClass like we do for virtual methods because it would
74874        lead to a recursive call of CSSRule::reportMemoryUsage. This is why we use
74875        reportBaseClassMemoryUsage to allow descendants to report objects referenced
74876        from their base class.
74877        * css/CSSRule.h:
74878        (WebCore):
74879        (CSSRule):
74880        * css/CSSRuleList.cpp:
74881        (WebCore::StaticCSSRuleList::reportMemoryUsage):
74882        (WebCore):
74883        * css/CSSRuleList.h:
74884        (WebCore):
74885        (CSSRuleList):
74886        (StaticCSSRuleList):
74887        (LiveCSSRuleList):
74888        * css/CSSStyleDeclaration.h:
74889        (WebCore):
74890        (CSSStyleDeclaration):
74891        * css/CSSStyleRule.cpp:
74892        (WebCore::CSSStyleRule::reportDescendantMemoryUsage):
74893        (WebCore):
74894        * css/CSSStyleRule.h:
74895        (CSSStyleRule):
74896        * css/CSSStyleSheet.cpp:
74897        (StyleSheetCSSRuleList):
74898        (WebCore::CSSStyleSheet::reportMemoryUsage):
74899        * css/CSSUnknownRule.h:
74900        (CSSUnknownRule):
74901        (WebCore::CSSUnknownRule::reportDescendantMemoryUsage):
74902        * css/PropertySetCSSStyleDeclaration.cpp:
74903        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
74904        (WebCore):
74905        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
74906        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
74907        * css/PropertySetCSSStyleDeclaration.h:
74908        (PropertySetCSSStyleDeclaration):
74909        (StyleRuleCSSStyleDeclaration):
74910        (InlineCSSStyleDeclaration):
74911        * css/WebKitCSSKeyframeRule.cpp:
74912        (WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
74913        (WebCore):
74914        * css/WebKitCSSKeyframeRule.h:
74915        (WebKitCSSKeyframeRule):
74916        * css/WebKitCSSKeyframesRule.cpp:
74917        (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
74918        (WebCore):
74919        * css/WebKitCSSKeyframesRule.h:
74920        (WebKitCSSKeyframesRule):
74921        * css/WebKitCSSRegionRule.cpp:
74922        (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
74923        (WebCore):
74924        * css/WebKitCSSRegionRule.h:
74925        (WebKitCSSRegionRule):
74926
749272012-08-03  Adam Barth  <abarth@webkit.org>
74928
74929        WebCore::DragController::cleanupAfterSystemDrag should null-check page
74930        https://bugs.webkit.org/show_bug.cgi?id=61815
74931
74932        Reviewed by Eric Seidel.
74933
74934        * page/DragController.cpp:
74935        (WebCore::DragController::dragEnteredOrUpdated):
74936        (WebCore::DragController::doSystemDrag):
74937
749382012-08-03  Sergio Carlos Morales Angeles  <carloschilazo@gmail.com>
74939
74940        Delete text from password does nothing.
74941        https://bugs.webkit.org/show_bug.cgi?id=92040
74942
74943        Reviewed by Ryosuke Niwa.
74944
74945        Use Editor::canDelete() to determine if field is editable or not.
74946        Added password-delete-contents test.
74947
74948        Test: editing/deleting/password-delete-contents.html
74949
74950        * editing/EditorCommand.cpp:
74951        (WebCore::enabledDelete):
74952
749532012-08-03  Jan Keromnes  <janx@linux.com>
74954
74955        Web Inspector: Make textModel private to textEditor
74956        https://bugs.webkit.org/show_bug.cgi?id=92999
74957
74958        Reviewed by Pavel Feldman.
74959
74960        Making textModel private to the textEditor ensures that it is accessed
74961        only through the textEditor, making the latter more modular.
74962
74963        Tests were changed accordingly.
74964
74965        * inspector/front-end/JavaScriptSourceFrame.js:
74966        (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
74967        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
74968        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
74969        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
74970        (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
74971        * inspector/front-end/SourceFrame.js:
74972        (WebInspector.SourceFrame):
74973        (WebInspector.SourceFrame.prototype.setContent):
74974        (WebInspector.SourceFrame.prototype.replaceAllWith):
74975        (WebInspector.SourceFrame.prototype._collectRegexMatches):
74976        (WebInspector.SourceFrame.prototype.addMessageToSource):
74977        (WebInspector.SourceFrame.prototype.removeMessageFromSource):
74978        (WebInspector.TextEditorDelegateForSourceFrame.prototype.commitEditing):
74979        * inspector/front-end/TextEditor.js:
74980        (WebInspector.TextEditor.prototype.setText):
74981        (WebInspector.TextEditor.prototype.text):
74982        (WebInspector.TextEditor.prototype.range):
74983        (WebInspector.TextEditor.prototype.line):
74984        (WebInspector.TextEditor.prototype.get linesCount):
74985        (WebInspector.TextEditor.prototype.setAttribute):
74986        (WebInspector.TextEditor.prototype.getAttribute):
74987        (WebInspector.TextEditor.prototype.removeAttribute):
74988        * inspector/front-end/UISourceCodeFrame.js:
74989        (WebInspector.UISourceCodeFrame.prototype.afterTextChanged):
74990
749912012-08-03  Adam Barth  <abarth@webkit.org>
74992
74993        V8Proxy::retrieve(*) leads to really obfuscated code and should be removed
74994        https://bugs.webkit.org/show_bug.cgi?id=93072
74995
74996        Reviewed by Eric Seidel.
74997
74998        Once upon a time, V8Proxy::retrieve did a bunch of checks before
74999        returning the V8Proxy object (such as checking whether script was
75000        enabled). Over time, we've removed all of these checks in order to fix
75001        various bugs. Now all it does is check whether the Frame is 0. However,
75002        because the function ends up returning 0 when its argument is 0, the
75003        caller sill needs to have a null check.
75004
75005        This patch deletes all the variations of V8Proxy::retrieve(*) and
75006        inlines them into their callers. In several cases, inlining the
75007        function call showed that we were testing the Frame for 0 twice, and
75008        I've removed the redundant null checks. In other cases, I've
75009        uncontorted the callers to make the code more readable.
75010
75011        * bindings/scripts/CodeGeneratorV8.pm:
75012        (GenerateToV8Converters):
75013        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
75014        (WebCore::V8TestActiveDOMObject::wrapSlow):
75015        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
75016        (WebCore::V8TestNamedConstructorConstructorCallback):
75017        * bindings/scripts/test/V8/V8TestNode.cpp:
75018        (WebCore::V8TestNode::wrapSlow):
75019        * bindings/v8/PageScriptDebugServer.cpp:
75020        (WebCore::PageScriptDebugServer::addListener):
75021        * bindings/v8/ScheduledAction.cpp:
75022        (WebCore::ScheduledAction::execute):
75023        * bindings/v8/ScriptController.h:
75024        (WebCore::ScriptController::windowShell):
75025        * bindings/v8/V8DOMWrapper.cpp:
75026        (WebCore::V8DOMWrapper::instantiateV8Object):
75027        * bindings/v8/V8EventListener.cpp:
75028        (WebCore::V8EventListener::callListenerFunction):
75029        * bindings/v8/V8Helpers.cpp:
75030        (WebCore::toV8Proxy):
75031        * bindings/v8/V8LazyEventListener.cpp:
75032        (WebCore::V8LazyEventListener::callListenerFunction):
75033        (WebCore::V8LazyEventListener::prepareListenerObject):
75034        * bindings/v8/V8Proxy.cpp:
75035        (WebCore::V8Proxy::handleOutOfMemory):
75036        (WebCore::V8Proxy::retrievePerContextData):
75037        (WebCore::V8Proxy::mainWorldContext):
75038        (WebCore::toV8Context):
75039        * bindings/v8/V8Proxy.h:
75040        (V8Proxy):
75041        * bindings/v8/custom/V8DOMWindowCustom.cpp:
75042        (WebCore::V8DOMWindow::addEventListenerCallback):
75043        (WebCore::V8DOMWindow::removeEventListenerCallback):
75044        * bindings/v8/custom/V8DocumentCustom.cpp:
75045        (WebCore::toV8):
75046        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
75047        (WebCore::V8HTMLDocument::openCallback):
75048        (WebCore::toV8):
75049        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
75050        (WebCore::toV8):
75051
750522012-08-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
75053
75054        Add *explicit* keyword to constructors in WebCore/accessibility
75055        https://bugs.webkit.org/show_bug.cgi?id=93067
75056
75057        Reviewed by Kentaro Hara.
75058
75059        As a step to add *explicit* keyword to constructors which have a parameter,
75060        *explicit* keyword is added to Source/WebCore/accessibility in order to avoid
75061        implicit type conversion.
75062
75063        No new tests. Covered by existing tests.
75064
75065        * accessibility/AXObjectCache.h:
75066        (AXObjectCache):
75067        * accessibility/AccessibilityARIAGrid.h:
75068        (AccessibilityARIAGrid):
75069        * accessibility/AccessibilityARIAGridCell.h:
75070        (AccessibilityARIAGridCell):
75071        * accessibility/AccessibilityARIAGridRow.h:
75072        (AccessibilityARIAGridRow):
75073        * accessibility/AccessibilityList.h:
75074        (AccessibilityList):
75075        * accessibility/AccessibilityListBox.h:
75076        (AccessibilityListBox):
75077        * accessibility/AccessibilityMediaControls.h:
75078        (AccessibilityMediaControl):
75079        (AccessibilityMediaTimeline):
75080        (AccessibilityMediaControlsContainer):
75081        (AccessibilityMediaTimeDisplay):
75082        * accessibility/AccessibilityMenuList.h:
75083        (AccessibilityMenuList):
75084        * accessibility/AccessibilityNodeObject.h:
75085        (AccessibilityNodeObject):
75086        * accessibility/AccessibilityProgressIndicator.h:
75087        (AccessibilityProgressIndicator):
75088        * accessibility/AccessibilityRenderObject.h:
75089        (AccessibilityRenderObject):
75090        * accessibility/AccessibilityScrollView.h:
75091        (AccessibilityScrollView):
75092        * accessibility/AccessibilityScrollbar.h:
75093        (AccessibilityScrollbar):
75094        * accessibility/AccessibilitySlider.h:
75095        (AccessibilitySlider):
75096        * accessibility/AccessibilityTable.h:
75097        (AccessibilityTable):
75098        * accessibility/AccessibilityTableCell.h:
75099        (AccessibilityTableCell):
75100        * accessibility/AccessibilityTableRow.h:
75101        (AccessibilityTableRow):
75102
751032012-08-03  Abhishek Arya  <inferno@chromium.org>
75104
75105        Regression(r124564): Wrong inlineChildrenBlock->hasLayer() computed in RenderBlock::removeChild.
75106        https://bugs.webkit.org/show_bug.cgi?id=90800
75107
75108        Reviewed by Eric Seidel.
75109
75110        r124564 reversed the sequence of setStyle and removeChildNode calls, but failed to cache the value
75111        of inlineChildrenBlock->hasLayer(). So, it will be null when the layer is removed from parent in setStyle.
75112        Fixed by the caching the bool value. 
75113
75114        Covered by existing test fast/block/layer-not-removed-from-parent-crash.html.
75115
75116        * rendering/RenderBlock.cpp:
75117        (WebCore::RenderBlock::removeChild):
75118
751192012-08-03  Mario Sanchez Prada  <msanchez@igalia.com>
75120
75121        [GTK] Add a new and reusable enchant-based spellchecker in WebCore
75122        https://bugs.webkit.org/show_bug.cgi?id=90269
75123
75124        Reviewed by Martin Robinson.
75125
75126        Move enchant specific code down to WebCore, into a new class
75127        TextCheckerEnchant, that we can use from WK1 and WK2.
75128
75129        * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
75130        * GNUmakefile.list.am: Added new files.
75131        * platform/text/gtk/TextCheckerEnchant.cpp: Added.
75132        (getAvailableDictionariesCallback):
75133        (TextCheckerEnchant::TextCheckerEnchant):
75134        (TextCheckerEnchant::~TextCheckerEnchant):
75135        (TextCheckerEnchant::ignoreWord):
75136        (TextCheckerEnchant::learnWord):
75137        (TextCheckerEnchant::checkSpellingOfString):
75138        (TextCheckerEnchant::getGuessesForWord):
75139        (TextCheckerEnchant::updateSpellCheckingLanguages):
75140        (TextCheckerEnchant::freeEnchantBrokerDictionaries):
75141        * platform/text/gtk/TextCheckerEnchant.h: Added.
75142        (WebCore):
75143        (TextCheckerEnchant):
75144        (WebCore::TextCheckerEnchant::create):
75145
751462012-08-03  Kwang Yul Seo  <skyul@company100.net>
75147
75148        Unreviewed r124536 followup, fix the assertion error on Chromium.
75149
75150        * html/parser/HTMLTreeBuilder.cpp:
75151        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
75152
751532012-08-03  Ilya Tikhonovsky  <loislo@chromium.org>
75154
75155        Web Inspector: simple replace objectType with ownerObjectType in NMI code.
75156        https://bugs.webkit.org/show_bug.cgi?id=93001
75157
75158        Reviewed by Yury Semikhatsky.
75159
75160        In all the cases when we are visiting members, objectType field is actually the object type of the member's owner object.
75161
75162        * dom/MemoryInstrumentation.h:
75163        (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
75164        (InstrumentedPointer):
75165        (WebCore::MemoryInstrumentation::addObject):
75166        (WebCore::MemoryInstrumentation::addInstrumentedObject):
75167        (WebCore::MemoryInstrumentation::addRawBuffer):
75168        (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
75169        (WebCore::MemoryInstrumentation::OwningTraits::addObject):
75170        (WebCore::MemoryObjectInfo::MemoryObjectInfo):
75171        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
75172        (WebCore::MemoryInstrumentation::addObjectImpl):
75173        (WebCore::MemoryInstrumentation::addHashMap):
75174        (WebCore::MemoryInstrumentation::addHashSet):
75175        (WebCore::MemoryInstrumentation::addInstrumentedCollection):
75176        (WebCore::MemoryInstrumentation::addListHashSet):
75177        (WebCore::MemoryInstrumentation::addVector):
75178        (WebCore::::process):
75179
751802012-08-02  Ilya Tikhonovsky  <loislo@chromium.org>
75181
75182        Web Inspector: extend test coverage for nmi code and fix 2 bugs.
75183        https://bugs.webkit.org/show_bug.cgi?id=92994
75184
75185        Reviewed by Yury Semikhatsky.
75186
75187        1) owner object type propagation.
75188        If a class with object-type DOM has an instrumented member with object-type Other then it has to be recorded as DOM.
75189        Sample: We have SharedBuffer class and we don't know the object-type for it but we know that it is owned by an object with object-type CachedResourceImage.
75190
75191        2) the first member of an instrumented non virtual class was skipped even if it was reported properly.
75192        it happened because the first member has the same address as it's owner
75193
75194        * dom/MemoryInstrumentation.h:
75195        (WebCore::MemoryInstrumentation::addRootObject):
75196        (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
75197        (InstrumentedPointer):
75198        (WebCore::MemoryInstrumentation::addInstrumentedObject):
75199        (MemoryInstrumentation):
75200        (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
75201        (WebCore::MemoryObjectInfo::MemoryObjectInfo):
75202        (WebCore::MemoryObjectInfo::reportObjectInfo):
75203        (WebCore::MemoryClassInfo::addInstrumentedMember):
75204        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
75205        (WebCore::MemoryInstrumentation::addObjectImpl):
75206        (WebCore::MemoryInstrumentation::addInstrumentedCollection):
75207        (WebCore::::process):
75208
752092012-08-03  Kentaro Hara  <haraken@chromium.org>
75210
75211        [V8] Make v8NonStringValueToWebCoreString a static method
75212        https://bugs.webkit.org/show_bug.cgi?id=93066
75213
75214        Reviewed by Adam Barth.
75215
75216        v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
75217        are not intended to be used from outside V8Binding.cpp.
75218        They should be static methods.
75219
75220        No tests. No change in behavior.
75221
75222        * bindings/v8/V8Binding.cpp:
75223        (WebCore::v8NonStringValueToWebCoreString):
75224        (WebCore):
75225        (WebCore::v8NonStringValueToAtomicWebCoreString):
75226        * bindings/v8/V8Binding.h:
75227        (WebCore::v8StringToWebCoreString):
75228        (WebCore::v8StringToAtomicWebCoreString):
75229
752302012-08-02  Abhishek Arya  <inferno@chromium.org>
75231
75232        Crash due to layer not removed from parent for anonymous block.
75233        https://bugs.webkit.org/show_bug.cgi?id=90800
75234
75235        Reviewed by Kent Tamura.
75236
75237        Reverse the order of setStyle and removeChildNode calls. This ensures that setting the style
75238        properly removes its layer from the parent in RenderBoxModelObject::styleDidChange. Calling
75239        removeChildNode before calling setStyle is problematic since the parent layer never gets
75240        notified.
75241
75242        Test: fast/block/layer-not-removed-from-parent-crash.html
75243
75244        * rendering/RenderBlock.cpp:
75245        (WebCore::RenderBlock::removeChild):
75246
752472012-08-02  Adam Barth  <abarth@webkit.org>
75248
75249        V8Proxy::retrieveFrameFor*Context are used only by BindingState and should be removed as separate functions
75250        https://bugs.webkit.org/show_bug.cgi?id=93049
75251
75252        Reviewed by Eric Seidel.
75253
75254        No one calls these functions directly anymore. This patch removes them
75255        from V8Proxy and inlines their logic into BindingState.cpp.
75256
75257        * bindings/v8/BindingState.cpp:
75258        (WebCore::activeContext):
75259        (WebCore):
75260        (WebCore::activeWindow):
75261        (WebCore::activeFrame):
75262        (WebCore::firstFrame):
75263        (WebCore::currentFrame):
75264        * bindings/v8/V8Proxy.cpp:
75265        * bindings/v8/V8Proxy.h:
75266        (V8Proxy):
75267
752682012-08-02  Yoshifumi Inoue  <yosin@chromium.org>
75269
75270        Make order of attribute/method in HTMLTrackElement.idl as same as specification
75271        https://bugs.webkit.org/show_bug.cgi?id=80102
75272
75273        Reviewed by Kentaro Hara.
75274
75275        No new tests. This patch doesn't change behavior.
75276
75277        * html/HTMLTrackElement.idl: Reorder attribute/method position.
75278
752792012-08-02  Kent Tamura  <tkent@chromium.org>
75280
75281        Fix crashes for <input> and <textarea> with display:run-in.
75282        https://bugs.webkit.org/show_bug.cgi?id=87300
75283
75284        Reviewed by Abhishek Arya.
75285
75286        Introduce RenderObject::canBeReplacedWithInlineRunIn, and renderers which
75287        should not be run-in override it so that it returns false.
75288
75289        Test: fast/runin/input-text-runin.html
75290              fast/runin/textarea-runin.html
75291
75292        * rendering/RenderBlock.cpp:
75293        (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
75294        Checks canBeReplacedWithInlineRunIn instead of checking tag names.
75295        * rendering/RenderFileUploadControl.cpp:
75296        (WebCore::RenderFileUploadControl::canBeReplacedWithInlineRunIn):
75297        Added. Disallow run-in.
75298        * rendering/RenderFileUploadControl.h:
75299        (RenderFileUploadControl): Declare canBeReplacedWithInlineRunIn.
75300        * rendering/RenderListBox.cpp:
75301        (WebCore::RenderListBox::canBeReplacedWithInlineRunIn):
75302        Added. Disallow run-in. This is not a behavior change.
75303        * rendering/RenderListBox.h:
75304        (RenderListBox): Declare canBeReplacedWithInlineRunIn.
75305        * rendering/RenderMenuList.cpp:
75306        (WebCore::RenderMenuList::canBeReplacedWithInlineRunIn):
75307        Added. Disallow run-in. This is not a behavior change.
75308        * rendering/RenderMenuList.h:
75309        (RenderMenuList): Declare canBeReplacedWithInlineRunIn.
75310        * rendering/RenderObject.cpp:
75311        (WebCore::RenderObject::canBeReplacedWithInlineRunIn):
75312        Added. Allow run-in by default.
75313        * rendering/RenderObject.h:
75314        (RenderObject): Declare canBeReplacedWithInlineRunIn.
75315        * rendering/RenderProgress.cpp:
75316        (WebCore::RenderProgress::canBeReplacedWithInlineRunIn):
75317        Added. Disallow run-in. This is not a behavior change.
75318        * rendering/RenderProgress.h:
75319        (RenderProgress): Declare canBeReplacedWithInlineRunIn.
75320        * rendering/RenderSlider.cpp:
75321        (WebCore::RenderSlider::canBeReplacedWithInlineRunIn):
75322        Added. Disallow run-in.
75323        * rendering/RenderSlider.h:
75324        (RenderSlider): Declare canBeReplacedWithInlineRunIn.
75325        * rendering/RenderTextControl.cpp:
75326        (WebCore::RenderTextControl::canBeReplacedWithInlineRunIn):
75327        Added. Disallow run-in.
75328        * rendering/RenderTextControl.h:
75329        (RenderTextControl): Declare canBeReplacedWithInlineRunIn.
75330
753312012-08-02  Kihong Kwon  <kihong.kwon@samsung.com>
75332
75333        [EFL] Fix wrong assigned value of BatteryStatus
75334        https://bugs.webkit.org/show_bug.cgi?id=93058
75335
75336        Reviewed by Kentaro Hara.
75337
75338        There is a wrong change in the bug 92964.
75339        property variable have to be used after assigned value in the setBatteryClient.
75340
75341        * platform/efl/BatteryProviderEfl.cpp:
75342        (WebCore::BatteryProviderEfl::setBatteryClient):
75343
753442012-08-02  Arvid Nilsson  <anilsson@rim.com>
75345
75346        [BlackBerry] Add default implementation of GraphicsLayerClient::contentsVisible()
75347        https://bugs.webkit.org/show_bug.cgi?id=93036
75348
75349        Reviewed by George Staikos.
75350
75351        Returning true by default would cause memory usage to balloon, because
75352        the LayerTiler would believe every tile is visible and always needs to
75353        be rendered. Instead, we choose to return false by default, relying
75354        entirely on reactive rendering through render jobs.
75355
75356        However this revealed a subtle bug. If the entire layer was invalidated
75357        every frame, checkerboard would never resolve with this default
75358        implementation.
75359
75360        Fixed by not clearing render jobs when the entire layer is invalidated,
75361        thus making us robust against an incomplete contentsVisible
75362        implementation.
75363
75364        Also removed dead code related to the deprecated
75365        LayerTiler::m_tilesWebKitThread mechanism, which has been replaced by
75366        the implicit visibility management resulting from render jobs.
75367
75368        With m_tilesWebKitThread out of the way, rename m_tilesCompositingThread
75369        to be simply m_tiles.
75370
75371        PR 187458
75372
75373        This is not currently testable using BlackBerry testing infrastructure.
75374
75375        * platform/graphics/GraphicsLayerClient.h:
75376        (WebCore::GraphicsLayerClient::contentsVisible): Gets a default implementation instead of being pure virtual.
75377        * platform/graphics/blackberry/LayerTile.cpp:
75378        (WebCore::LayerTile::LayerTile): Merged LayerTileData into LayerTile now that m_tilesWebKitThread is gone.
75379        * platform/graphics/blackberry/LayerTile.h:
75380        (LayerTile):
75381        * platform/graphics/blackberry/LayerTiler.cpp:
75382        (WebCore::LayerTiler::~LayerTiler):
75383        (WebCore::LayerTiler::updateTextureContentsIfNeeded): Bug fix to make us robust against the new default implementation of GraphicsLayerClient::contentsVisible()
75384        (WebCore::LayerTiler::shouldPerformRenderJob):
75385        (WebCore::LayerTiler::layerVisibilityChanged):
75386        (WebCore::LayerTiler::uploadTexturesIfNeeded):
75387        (WebCore::LayerTiler::drawTexturesInternal):
75388        (WebCore::LayerTiler::deleteTextures):
75389        (WebCore::LayerTiler::pruneTextures):
75390        (WebCore::LayerTiler::bindContentsTexture):
75391        * platform/graphics/blackberry/LayerTiler.h:
75392        (LayerTiler):
75393
753942012-08-02  Keishi Hattori  <keishi@webkit.org>
75395
75396        Slider should snap to datalist tick marks
75397        https://bugs.webkit.org/show_bug.cgi?id=92640
75398
75399        Reviewed by Kent Tamura.
75400
75401        Input type=range slider snaps to datalist tick marks.
75402
75403        Test: fast/forms/datalist/range-snap-to-datalist.html
75404
75405        * html/HTMLInputElement.cpp:
75406        (WebCore::HTMLInputElement::findClosestTickMarkValue): Just calls InputType::findClosestTickMarkValue.
75407        (WebCore):
75408        * html/HTMLInputElement.h:
75409        (HTMLInputElement):
75410        * html/InputType.cpp:
75411        (WebCore):
75412        (WebCore::InputType::findClosestTickMarkValue): Overridden by RangeInputType.
75413        * html/InputType.h:
75414        (InputType):
75415        * html/RangeInputType.cpp:
75416        (WebCore::RangeInputType::RangeInputType):
75417        (WebCore):
75418        (WebCore::RangeInputType::listAttributeTargetChanged): Mark m_tickMarkValues as dirty.
75419        (WebCore::decimalCompare):
75420        (WebCore::RangeInputType::updateTickMarkValues): Sets m_tickMarkValues to a list of sorted valid datalist values.
75421        (WebCore::RangeInputType::findClosestTickMarkValue): Finds closest tick mark value to a given value.
75422        * html/RangeInputType.h:
75423        (RangeInputType):
75424        * html/shadow/SliderThumbElement.cpp:
75425        (WebCore):
75426        (WebCore::SliderThumbElement::setPositionFromPoint): Snaps to the closest tick mark value if it is within a certain distance.
75427
754282012-08-02  Ryuan Choi  <ryuan.choi@samsung.com>
75429
75430        [EFL] Crash while loading plugin after r121467
75431        https://bugs.webkit.org/show_bug.cgi?id=92943
75432
75433        Reviewed by Laszlo Gombos.
75434
75435        r121467 replaced POSIX dlopen to helpers in eina_module, but some codes
75436        are not changed.
75437
75438        No new tests, behavior has not changed.
75439
75440        * plugins/efl/PluginPackageEfl.cpp:
75441        (WebCore::PluginPackage::fetchInfo):
75442        Changes dlsym to eina_module_symbol_get to follow changes of r121467.
75443
754442012-08-02  Adam Barth  <abarth@webkit.org>
75445
75446        V8 bindings code that tries to find its context should use BindingState functions rather than V8Proxy
75447        https://bugs.webkit.org/show_bug.cgi?id=93038
75448
75449        Reviewed by Eric Seidel.
75450
75451        After this patch, most code in the V8 bindings that tries to determine
75452        it's "context" goes through BindingState.h rather than V8Proxy. This
75453        patch is a step towards unifying all these code paths.
75454
75455        * bindings/scripts/CodeGeneratorV8.pm:
75456        (GenerateNamedConstructorCallback):
75457        * bindings/v8/BindingState.cpp:
75458        (WebCore::currentFrame):
75459        (WebCore):
75460        * bindings/v8/BindingState.h:
75461        (WebCore):
75462        * bindings/v8/ScriptController.cpp:
75463        (WebCore::ScriptController::retrieveFrameForEnteredContext):
75464        (WebCore::ScriptController::retrieveFrameForCurrentContext):
75465        * bindings/v8/V8DOMWindowShell.cpp:
75466        (WebCore::v8UncaughtExceptionHandler):
75467        * bindings/v8/V8Proxy.cpp:
75468        (WebCore::V8Proxy::reportUnsafeAccessTo):
75469        * bindings/v8/V8Proxy.h:
75470        (V8Proxy):
75471        * bindings/v8/V8Utilities.cpp:
75472        (WebCore::getScriptExecutionContext):
75473        * bindings/v8/custom/V8AudioContextCustom.cpp:
75474        (WebCore::V8AudioContext::constructorCallback):
75475        * bindings/v8/custom/V8DOMWindowCustom.cpp:
75476        (WebCore::handlePostMessageCallback):
75477        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
75478        (WebCore::V8HTMLDocument::writeCallback):
75479        (WebCore::V8HTMLDocument::writelnCallback):
75480        (WebCore::V8HTMLDocument::openCallback):
75481        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
75482        (WebCore::v8HTMLImageElementConstructorCallback):
75483
754842012-08-02  Sheriff Bot  <webkit.review.bot@gmail.com>
75485
75486        Unreviewed, rolling out r124540.
75487        http://trac.webkit.org/changeset/124540
75488        https://bugs.webkit.org/show_bug.cgi?id=93055
75489
75490        Broke compile on Chromium Win bot (Requested by dimich on
75491        #webkit).
75492
75493        * Modules/indexeddb/IDBBackingStore.h:
75494        (IDBBackingStore):
75495        * Modules/indexeddb/IDBCallbacks.h:
75496        (IDBCallbacks):
75497        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
75498        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
75499        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
75500        (WebCore::IDBDatabaseBackendImpl::openInternal):
75501        (WebCore::IDBDatabaseBackendImpl::metadata):
75502        (WebCore::IDBDatabaseBackendImpl::setVersion):
75503        (WebCore::IDBDatabaseBackendImpl::transactionFinished):
75504        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
75505        (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
75506        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
75507        (WebCore::IDBDatabaseBackendImpl::close):
75508        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
75509        (IDBDatabaseBackendImpl):
75510        * Modules/indexeddb/IDBDatabaseCallbacks.h:
75511        (IDBDatabaseCallbacks):
75512        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
75513        (WebCore::IDBFactoryBackendImpl::open):
75514        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
75515        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
75516        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
75517        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
75518        * Modules/indexeddb/IDBLevelDBBackingStore.h:
75519        (IDBLevelDBBackingStore):
75520        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
75521        (WebCore::IDBTransactionBackendImpl::commit):
75522
755232012-08-02  Arvid Nilsson  <anilsson@rim.com>
75524
75525        [BlackBerry] Upstream GraphicsLayerClient::contentsVisible()
75526        https://bugs.webkit.org/show_bug.cgi?id=93040
75527
75528        Reviewed by George Staikos.
75529
75530        Our LayerTiler uses both proactive and reactive rendering to populate
75531        tiles. If contentsVisible() is accurate, it will cause the right tiles
75532        to be rendered. Failing that, when a dirty tile is found to be visible
75533        on the compositing thread, a render job is scheduled.
75534
75535        This is not currently testable using BlackBerry testing infrastructure.
75536
75537        * platform/graphics/GraphicsLayerClient.h:
75538        (GraphicsLayerClient): New BlackBerry-specific method "contentsVisible" added.
75539        * rendering/RenderLayerBacking.cpp:
75540        (WebCore):
75541        (WebCore::RenderLayerBacking::contentsVisible): BlackBerry-specific implementation.
75542
755432012-08-02  Alexandre Elias  <aelias@google.com>
75544
75545        [chromium] deviceViewportSize cleanup
75546        https://bugs.webkit.org/show_bug.cgi?id=92794
75547
75548        Reviewed by Adrienne Walker.
75549
75550        In the future, CSS layout size will become increasingly disassociated
75551        from physical device size, and it will become impossible to infer one
75552        from the other inside the compositor.  Therefore, this patch allows
75553        deviceViewportSize to be explicitly passed in by the outside client.
75554
75555        I also renamed the existing viewportSize field to "layoutViewportSize"
75556        for clarity, and converted its uses to deviceViewportSize since
75557        that is more appropriate.
75558
75559        I had to add some default-value scaffolding to WebLayerTreeView in
75560        order to avoid breaking ui/compositor.  We can delete it once that's
75561        updated.
75562
75563        No new tests (covered by existing tests).
75564
75565        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
75566        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
75567        (WebCore::CCLayerTreeHost::setViewportSize):
75568        (WebCore::CCLayerTreeHost::updateLayers):
75569        (WebCore::CCLayerTreeHost::setDeviceScaleFactor):
75570        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
75571        (CCLayerTreeHost):
75572        (WebCore::CCLayerTreeHost::layoutViewportSize):
75573        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
75574        (WebCore::CCLayerTreeHostImpl::canDraw):
75575        (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
75576        (WebCore::CCLayerTreeHostImpl::setViewportSize):
75577        (WebCore::CCLayerTreeHostImpl::setDeviceScaleFactor):
75578        (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
75579        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
75580        (CCLayerTreeHostImpl):
75581        (WebCore::CCLayerTreeHostImpl::layoutViewportSize):
75582
755832012-08-02  Adam Barth  <abarth@webkit.org>
75584
75585        V8Proxy::currentContext() doesn't do anything and should be removed
75586        https://bugs.webkit.org/show_bug.cgi?id=93041
75587
75588        Reviewed by Eric Seidel.
75589
75590        It's just a wrapper for GetCurrent().
75591
75592        * bindings/v8/DateExtension.cpp:
75593        (WebCore::DateExtension::setAllowSleep):
75594        * bindings/v8/V8NPUtils.cpp:
75595        (WebCore::convertV8ObjectToNPVariant):
75596        * bindings/v8/V8Proxy.cpp:
75597        (WebCore::V8Proxy::retrieve):
75598        (WebCore::V8Proxy::mainWorldContext):
75599        * bindings/v8/V8Proxy.h:
75600        (V8Proxy):
75601        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
75602        (WebCore::getJSListenerFunctions):
75603
756042012-08-02  David Grogan  <dgrogan@chromium.org>
75605
75606        IndexedDB: Core upgradeneeded logic
75607        https://bugs.webkit.org/show_bug.cgi?id=92558
75608
75609        Reviewed by Ojan Vafai.
75610
75611        This is the backend webkit logic needed for integer versions. The rest
75612        is in https://bugs.webkit.org/show_bug.cgi?id=89505.
75613
75614        I tried to make use of the existing processPendingCalls and added two
75615        more queues, pendingOpenWithVersionCalls and
75616        pendingSecondHalfOpenWithVersionCalls. The "second half" refers to
75617        how there are two events that need to be fired in response to an
75618        open-with-version call. The "second half" queue holds the open
75619        requests that should immediately follow the caller's upgradeneeded
75620        handler.
75621
75622        No new tests, there are so many they are in their own patch:
75623        https://bugs.webkit.org/show_bug.cgi?id=92560
75624
75625        Though this patch doesn't change any expected behavior anyway, lack of
75626        regressions is what we're hoping for here.
75627
75628        * Modules/indexeddb/IDBBackingStore.h:
75629        (IDBBackingStore):
75630        * Modules/indexeddb/IDBCallbacks.h:
75631        (WebCore::IDBCallbacks::onBlocked):
75632        (WebCore::IDBCallbacks::onUpgradeNeeded):
75633        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
75634        (IDBDatabaseBackendImpl::PendingOpenCall):
75635        (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
75636        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
75637        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::callbacks):
75638        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::version):
75639        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
75640        (WebCore):
75641        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
75642        (WebCore::IDBDatabaseBackendImpl::openInternal):
75643        (WebCore::IDBDatabaseBackendImpl::metadata):
75644        (WebCore::IDBDatabaseBackendImpl::setVersion):
75645        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
75646        (WebCore::IDBDatabaseBackendImpl::transactionFinished):
75647        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndEventsFired):
75648        When an upgradeneeded event is fired in response to an
75649        open-with-version call, the version change transaction must receive its
75650        complete event before processPendingCalls fires a success event at
75651        IDBOpenDBRequest. In the future this should probably be changed
75652        instead to transactionFinishedAndAbortFired and
75653        transactionFinishedAndCompleteFired so that we'll know to fire a
75654        success or error event at IDBOpenDBRequest. Currently, instead of
75655        firing error when there's an abort, we don't fire anything.
75656
75657        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
75658        Now that this is called after a connection is opened, we unfortunately
75659        lose the invariant that there is only one existing connection when this
75660        is called, but nothing inside this function actually relied on that.
75661        Additionally, the secondHalfOpen calls only ever need to be serviced
75662        in one place: right after a version change transaction completes, so
75663        it could be moved out of here.
75664
75665        (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
75666        Now that setVersion and deleteDatabase calls are queued up behind
75667        secondHalfOpen calls, we have to service those queues when
75668        secondHalfOpen calls complete, which is here.  So call
75669        processPendingCalls().
75670
75671        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
75672        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
75673        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
75674        (WebCore::IDBDatabaseBackendImpl::close):
75675        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
75676        (IDBDatabaseBackendImpl):
75677        * Modules/indexeddb/IDBDatabaseCallbacks.h:
75678        (WebCore::IDBDatabaseCallbacks::onVersionChange):
75679        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
75680        (WebCore::IDBFactoryBackendImpl::open):
75681        This is refactored some so that the call to openConection{WithVersion}
75682        happens once, at the end.
75683
75684        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
75685        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
75686        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
75687        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
75688        (WebCore):
75689        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
75690        * Modules/indexeddb/IDBLevelDBBackingStore.h:
75691        (IDBLevelDBBackingStore):
75692        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
75693        (WebCore::IDBTransactionBackendImpl::commit):
75694        See above comments about transactionFinishedAndEventsFired. I tried
75695        moving the call to transactionFinished after the events were fired but
75696        that failed some asserts. But changing those asserts is still an
75697        alternative to splitting up transactionFinished as is done here.
75698
756992012-08-02  Rob Buis  <rwlbuis@webkit.org>
75700
75701        SVG text selection doesn't work with hyperlinked text
75702        https://bugs.webkit.org/show_bug.cgi?id=29166
75703
75704        Reviewed by Eric Seidel.
75705
75706        Cleanup SVGAElement. There is no need to test for middle mouse button here, this
75707        is handled elsewhere, so remove isMiddleMouseButtonEvent. Similarly handleLinkClick
75708        is not used anymore by HTMLAnchorElement, remove it. Finally, _self indeed is not needed.
75709
75710        No new tests, since no change in behaviour.
75711
75712        * WebCore.order:
75713        * html/HTMLAnchorElement.cpp:
75714        * html/HTMLAnchorElement.h:
75715        (WebCore):
75716        * svg/SVGAElement.cpp:
75717        (WebCore::SVGAElement::defaultEventHandler):
75718
757192012-08-02  Kwang Yul Seo  <skyul@company100.net>
75720
75721        Move causesFosterParenting() to HTMLStackItem
75722        https://bugs.webkit.org/show_bug.cgi?id=93048
75723
75724        Reviewed by Adam Barth.
75725
75726        Changed to share causesFosterParenting() between HTMLTreeBuilder and HTMLConstructionSite
75727        by moving this function to HTMLStackItem.
75728
75729        No functional change, so no new tests.
75730
75731        * html/parser/HTMLConstructionSite.cpp:
75732        (WebCore::HTMLConstructionSite::shouldFosterParent):
75733        * html/parser/HTMLStackItem.h:
75734        (WebCore::HTMLStackItem::causesFosterParenting):
75735        (HTMLStackItem):
75736        * html/parser/HTMLTreeBuilder.cpp:
75737        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
75738
757392012-08-02  Kwang Yul Seo  <skyul@company100.net>
75740
75741        Read tag names and attributes from the saved tokens in HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken*)
75742        https://bugs.webkit.org/show_bug.cgi?id=93047
75743
75744        Reviewed by Adam Barth.
75745
75746        This is a follow-up patch for r123577.
75747        Changed to retrieve the stack item of commonAncestor and read the local name from the saved token.
75748
75749        No new tests, covered by existing tests.
75750
75751        * html/parser/HTMLTreeBuilder.cpp:
75752        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
75753
757542012-08-02  Vincent Scheib  <scheib@chromium.org>
75755
75756        Remove old Pointer Lock API.
75757        https://bugs.webkit.org/show_bug.cgi?id=88892
75758
75759        Reviewed by Adam Barth.
75760
75761        Removing the old Pointer Lock API as one of the final cleanup
75762        changes for the Update to Fullscreen style locking Spec meta
75763        bug https://bugs.webkit.org/show_bug.cgi?id=84402.
75764
75765        This change primarily removes idl, access in navigator,
75766        one event, and supporting infrastructure in page/PointerLock.
75767
75768        In PointerLockController changes were already noted clearly with
75769        TODOs differentiating old and new api sections.
75770
75771        Test: pointer-lock/pointerlockchange-event-on-lock-lost.html
75772
75773        * WebCore.gypi:
75774        * dom/Element.cpp:
75775        (WebCore::Element::webkitRequestPointerLock):
75776        * dom/EventNames.h:
75777        (WebCore):
75778        * page/Navigator.cpp:
75779        * page/Navigator.h:
75780        (WebCore):
75781        (Navigator):
75782        * page/Navigator.idl:
75783        * page/PointerLock.cpp: Removed.
75784        * page/PointerLock.h: Removed.
75785        * page/PointerLock.idl: Removed.
75786        * page/PointerLockController.cpp:
75787        (WebCore::PointerLockController::requestPointerLock):
75788        (WebCore::PointerLockController::didAcquirePointerLock):
75789        (WebCore::PointerLockController::didNotAcquirePointerLock):
75790        (WebCore::PointerLockController::didLosePointerLock):
75791        * page/PointerLockController.h:
75792        (PointerLockController):
75793
757942012-08-02  Ryosuke Niwa  <rniwa@webkit.org>
75795
75796        scripts in formaction should be stripped upon paste
75797        https://bugs.webkit.org/show_bug.cgi?id=92298
75798
75799        Reviewed by Eric Seidel.
75800
75801        Strip formaction attribute values when the URL is of javascript protocol.
75802
75803        Test: editing/pasteboard/paste-noscript-xhtml.html
75804              editing/pasteboard/paste-noscript.html
75805
75806        * dom/Element.cpp:
75807        (WebCore::isAttributeToRemove): Explicitly compare with href and nohref instead of comparing
75808        the ends of strings since comparing two AtomicString is much faster.
75809
758102012-08-02  Elliott Sprehn  <esprehn@gmail.com>
75811
75812        Built in quotes don't use lang attribute
75813        https://bugs.webkit.org/show_bug.cgi?id=92918
75814
75815        Reviewed by Alexey Proskuryakov.
75816
75817        Previously even though there was a table in RenderQuote of languages mapped
75818        to quotes we always used basic quotes. This patch removes the broken tree
75819        walking and uses Element::computeInheritedLanguage fixing this.
75820
75821        Tests: fast/css-generated-content/quotes-lang-expected.html
75822               fast/css-generated-content/quotes-lang.html
75823               fast/css-generated-content/quotes-xml-lang-expected.html
75824               fast/css-generated-content/quotes-xml-lang.html
75825
75826        * rendering/RenderQuote.cpp:
75827        (WebCore::RenderQuote::originalText):
75828        (WebCore::RenderQuote::quotesData): New method that determines the right QuotesData to use.
75829        (WebCore):
75830        * rendering/RenderQuote.h:
75831        (RenderQuote):
75832
758332012-08-02  Adam Barth  <abarth@webkit.org>
75834
75835        Add back a header I mistakenly removed in my previous commit.
75836
75837        * WebCore.xcodeproj/project.pbxproj:
75838
758392012-08-02  Adrienne Walker  <enne@google.com>
75840
75841        [chromium] Remove dependency on Scrollbar.h from ScrollbarLayerChromium
75842        https://bugs.webkit.org/show_bug.cgi?id=93024
75843
75844        Reviewed by James Robinson.
75845
75846        Change part enum from the Scrollbar version to WebScrollbar's.
75847
75848        Tested by composited layout tests.
75849
75850        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
75851        (WebCore::ScrollbarBackgroundPainter::create):
75852        (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
75853        (ScrollbarBackgroundPainter):
75854        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
75855
758562012-08-02  Adam Barth  <abarth@webkit.org>
75857
75858        BindingSecurityBase serves no purpose and should be removed
75859        https://bugs.webkit.org/show_bug.cgi?id=93025
75860
75861        Reviewed by Eric Seidel.
75862
75863        Now that we don't use templates in the generic bindings, we can merge
75864        BindingSecurity and BindingSecurityBase. This patch also removes some
75865        functions that are no longer used (and reduces the number of
75866        #includes).
75867
75868        No behavior change.
75869
75870        * GNUmakefile.list.am:
75871        * WebCore.gypi:
75872        * bindings/generic/BindingSecurity.h:
75873        (WebCore):
75874        (BindingSecurity):
75875        * bindings/generic/BindingSecurityBase.cpp: Removed.
75876        * bindings/generic/BindingSecurityBase.h: Removed.
75877        * bindings/v8/V8Binding.h:
75878        * bindings/v8/V8Utilities.cpp:
75879        * bindings/v8/custom/V8MutationObserverCustom.cpp:
75880
758812012-08-02  Ryosuke Niwa  <rniwa@webkit.org>
75882
75883        Let Xcode have its own away and also sort the files.
75884
75885        * WebCore.xcodeproj/project.pbxproj:
75886
758872012-08-02  Tien-Ren Chen  <trchen@chromium.org>
75888
75889        [chromium] Add CCScrollbarAnimationController class for compositor scrollbar animation
75890        https://bugs.webkit.org/show_bug.cgi?id=91688
75891
75892        Reviewed by Adrienne Walker.
75893
75894        Add CCScrollbarAnimationController that serves as the middle man
75895        between the scrolling layer and scrollbar layer. Now all scroll offset
75896        information are pushed through the controller, and individual platform
75897        can provide specialized controller for extra processing.
75898
75899        A basic fadeout controller for Android scrollbar is included.
75900
75901        New test: ScrollbarLayerChromiumTest.scrollOffsetSynchronization
75902                  CCScrollbarAnimationControllerLinearFade.*
75903
75904        * WebCore.gypi:
75905        * page/FrameView.cpp:
75906        (WebCore::FrameView::calculateScrollbarModesForLayout):
75907        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
75908        (WebCore::createScrollbarLayer):
75909        * platform/graphics/chromium/TreeSynchronizer.cpp:
75910        (WebCore::TreeSynchronizer::synchronizeTreeRecursive):
75911        (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
75912        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
75913        (WebCore::CCLayerImpl::scrollBy):
75914        (WebCore::CCLayerImpl::setMaxScrollPosition):
75915        (WebCore):
75916        (WebCore::CCLayerImpl::horizontalScrollbarLayer):
75917        (WebCore::CCLayerImpl::setHorizontalScrollbarLayer):
75918        (WebCore::CCLayerImpl::verticalScrollbarLayer):
75919        (WebCore::CCLayerImpl::setVerticalScrollbarLayer):
75920        * platform/graphics/chromium/cc/CCLayerImpl.h:
75921        (WebCore):
75922        (CCLayerImpl):
75923        (WebCore::CCLayerImpl::scrollbarAnimationController):
75924        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
75925        (WebCore::CCLayerTreeHostImpl::animate):
75926        (WebCore::CCLayerTreeHostImpl::pinchGestureBegin):
75927        (WebCore::CCLayerTreeHostImpl::pinchGestureUpdate):
75928        (WebCore::CCLayerTreeHostImpl::pinchGestureEnd):
75929        (WebCore::CCLayerTreeHostImpl::animateScrollbars):
75930        (WebCore):
75931        (WebCore::CCLayerTreeHostImpl::animateScrollbarsRecursive):
75932        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
75933        (CCLayerTreeHostImpl):
75934        * platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp: Added.
75935        (WebCore):
75936        (WebCore::CCScrollbarAnimationController::create):
75937        (WebCore::CCScrollbarAnimationController::CCScrollbarAnimationController):
75938        (WebCore::CCScrollbarAnimationController::~CCScrollbarAnimationController):
75939        (WebCore::CCScrollbarAnimationController::getScrollLayerBounds):
75940        (WebCore::CCScrollbarAnimationController::updateScrollOffset):
75941        * platform/graphics/chromium/cc/CCScrollbarAnimationController.h: Added.
75942        (WebCore):
75943        (CCScrollbarAnimationController):
75944        (WebCore::CCScrollbarAnimationController::animate):
75945        (WebCore::CCScrollbarAnimationController::didPinchGestureBegin):
75946        (WebCore::CCScrollbarAnimationController::didPinchGestureUpdate):
75947        (WebCore::CCScrollbarAnimationController::didPinchGestureEnd):
75948        (WebCore::CCScrollbarAnimationController::setHorizontalScrollbarLayer):
75949        (WebCore::CCScrollbarAnimationController::horizontalScrollbarLayer):
75950        (WebCore::CCScrollbarAnimationController::setVerticalScrollbarLayer):
75951        (WebCore::CCScrollbarAnimationController::verticalScrollbarLayer):
75952        * platform/graphics/chromium/cc/CCScrollbarAnimationControllerAndroid.cpp: Added.
75953        (WebCore):
75954        (WebCore::CCScrollbarAnimationController::create):
75955        (WebCore::CCScrollbarAnimationControllerAndroid::CCScrollbarAnimationControllerAndroid):
75956        (WebCore::CCScrollbarAnimationControllerAndroid::~CCScrollbarAnimationControllerAndroid):
75957        (WebCore::CCScrollbarAnimationControllerAndroid::animate):
75958        (WebCore::CCScrollbarAnimationControllerAndroid::didPinchGestureUpdate):
75959        (WebCore::CCScrollbarAnimationControllerAndroid::didPinchGestureEnd):
75960        (WebCore::CCScrollbarAnimationControllerAndroid::updateScrollOffset):
75961        (WebCore::CCScrollbarAnimationControllerAndroid::opacityAtTime):
75962        * platform/graphics/chromium/cc/CCScrollbarAnimationControllerAndroid.h: Added.
75963        (WebCore):
75964        (CCScrollbarAnimationControllerAndroid):
75965        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
75966        (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
75967        (WebCore):
75968        (WebCore::CCScrollbarLayerImpl::CCScrollbar::value):
75969        (WebCore::CCScrollbarLayerImpl::CCScrollbar::currentPos):
75970        (WebCore::CCScrollbarLayerImpl::CCScrollbar::totalSize):
75971        (WebCore::CCScrollbarLayerImpl::CCScrollbar::maximum):
75972        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
75973        (WebCore::CCScrollbarLayerImpl::orientation):
75974        (WebCore::CCScrollbarLayerImpl::setCurrentPos):
75975        (WebCore::CCScrollbarLayerImpl::setTotalSize):
75976        (WebCore::CCScrollbarLayerImpl::setMaximum):
75977        (CCScrollbarLayerImpl):
75978
759792012-06-15  David Barton  <dbarton@mathscribe.com>
75980
75981        MathML: nested square root symbols have varying descenders
75982        https://bugs.webkit.org/show_bug.cgi?id=43819
75983
75984        Reviewed by Eric Seidel.
75985
75986        This bug stems from the use of offsetHeight() on a renderer that's possibly a
75987        RenderInline, in getBoxModelObjectHeight() in RenderMathMLBlock.h.
75988        RenderInline::offsetHeight() actually returns linesBoundingBox().height(), which can be
75989        overly large, especially for the big STIX fonts that include a few mathematical symbols
75990        with unusually tall ascenders or descenders. A better solution for MathML in general is
75991        the CSS properties { -webkit-line-box-contain: glyphs replaced; line-height: 0; }. This
75992        gives tight glyph-based formatting in radical expressions, subscripts, superscripts,
75993        underscripts, overscripts, numerators, denominators, etc. To make this work, inline
75994        elements such as <mn> and <mi> must be wrapped inside implicit <mrow>s or just
75995        RenderMathMLBlocks, when a tight height is desired. We also replace
75996        getBoxModelObjectWidth(), which uses offsetWidth(), with contentLogicalWidth(). Finally,
75997        we enable the STIXGeneral font for use inside layout tests.
75998
75999        Tested by existing LayoutTests/mathml/presentation/ files including roots.xhtml.
76000
76001        * css/mathml.css:
76002        (math):
76003        (mtext):
76004        (mroot > * + *):
76005        (mtd):
76006        * rendering/mathml/RenderMathMLBlock.cpp:
76007        (WebCore::RenderMathMLBlock::preferredLogicalHeightAfterSizing):
76008        (WebCore::RenderMathMLBlock::baselinePosition):
76009        * rendering/mathml/RenderMathMLBlock.h:
76010        * rendering/mathml/RenderMathMLFraction.cpp:
76011        (WebCore::RenderMathMLFraction::baselinePosition):
76012        * rendering/mathml/RenderMathMLOperator.cpp:
76013        (WebCore::RenderMathMLOperator::createStackableStyle):
76014        (WebCore::RenderMathMLOperator::baselinePosition):
76015        * rendering/mathml/RenderMathMLRoot.cpp:
76016        (WebCore::RenderMathMLRoot::addChild):
76017        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
76018        (WebCore::RenderMathMLRoot::paint):
76019        * rendering/mathml/RenderMathMLRoot.h:
76020        * rendering/mathml/RenderMathMLSquareRoot.cpp:
76021        * rendering/mathml/RenderMathMLSquareRoot.h:
76022        * rendering/mathml/RenderMathMLSubSup.cpp:
76023        (WebCore::RenderMathMLSubSup::layout):
76024        * rendering/mathml/RenderMathMLUnderOver.cpp:
76025        (WebCore::RenderMathMLUnderOver::baselinePosition):
76026        * rendering/mathml/RenderMathMLUnderOver.h:
76027
760282012-08-02  Adrienne Walker  <enne@google.com>
76029
76030        [chromium] Make CCScrollbarLayerImpl handle lost contexts properly
76031        https://bugs.webkit.org/show_bug.cgi?id=93021
76032
76033        Reviewed by James Robinson.
76034
76035        The resource ids that CCScrollbarLayerImpl holds onto need to be
76036        discarded during a lost context as the resource provider they came
76037        from is also destroyed.
76038
76039        Make a scrollbarGeometry function that wraps all uses of the
76040        m_geometry member to make it possible to test CCScrollbarLayerImpl
76041        without depending on WebCore.
76042
76043        Test: CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext
76044
76045        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
76046        (WebCore::CCScrollbarLayerImpl::scrollbarGeometry):
76047        (WebCore):
76048        (WebCore::CCScrollbarLayerImpl::appendQuads):
76049        (WebCore::CCScrollbarLayerImpl::didLoseContext):
76050        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
76051        (CCScrollbarLayerImpl):
76052
760532012-08-02  Oliver Hunt  <oliver@apple.com>
76054
76055        A few objects aren't being safely protected from GC in all cases
76056        https://bugs.webkit.org/show_bug.cgi?id=93031
76057
76058        Reviewed by Filip Pizlo.
76059
76060        I haven't seen evidence that anyone is hitting bugs due to this, but any
76061        GC error can lead to later -- hard to diagnose -- bugs if they result in
76062        resurrecting dead objects.
76063
76064        * bindings/js/JSCustomXPathNSResolver.cpp:
76065        (WebCore::JSCustomXPathNSResolver::create):
76066        (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
76067        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
76068        * bindings/js/JSCustomXPathNSResolver.h:
76069        (JSCustomXPathNSResolver):
76070        * bindings/js/JSDictionary.cpp:
76071        (WebCore::JSDictionary::tryGetProperty):
76072        * bindings/js/JSDictionary.h:
76073        (WebCore::JSDictionary::JSDictionary):
76074        (WebCore::JSDictionary::initializerObject):
76075
760762012-08-02  Emil A Eklund  <eae@chromium.org>
76077
76078        Range::isPointInRange incorrectly throws WRONG_DOCUMENT_ERR
76079        https://bugs.webkit.org/show_bug.cgi?id=93009
76080
76081        Reviewed by Ojan Vafai.
76082
76083        The latest working draft of the DOM4 spec has all but killed the
76084        WRONG_DOCUMENT_ERR exception. Update isPointInRange to return false
76085        instead of throwing an exception when the range and point are in
76086        different documents. This matches the Mozilla behavior.
76087
76088        Test: fast/html/range-point-in-range-for-different-documents.html
76089
76090        * dom/Range.cpp:
76091        (WebCore::Range::isPointInRange):
76092        Return false instead of throwing WRONG_DOCUMENT_ERR when the point is in
76093        a different document.
76094
760952012-08-02  Erik Arvidsson  <arv@chromium.org>
76096
76097        DOM4: className should be defined on Element and not on HTMLElement
76098        https://bugs.webkit.org/show_bug.cgi?id=93014
76099
76100        Reviewed by Adam Barth.
76101
76102        DOM4 specs that Element should have the className WebIDL attribute. This moves the
76103        attribute to the correct IDL file.
76104
76105        Test: fast/dom/Element/class-name.html
76106
76107        * dom/Element.idl:
76108        * html/HTMLElement.idl:
76109
761102012-08-02  Erik Arvidsson  <arv@chromium.org>
76111
76112        [V8] Handle case where Error.prototype returns an empty object
76113        https://bugs.webkit.org/show_bug.cgi?id=91792
76114
76115        Reviewed by Kentaro Hara.
76116
76117        In some edge cases we get an empty object back from Error.prototype.
76118
76119        No new tests. I cannot reproduce this.
76120
76121        * bindings/v8/V8BindingPerContextData.cpp:
76122        (WebCore::V8BindingPerContextData::constructorForTypeSlowCase):
76123
761242012-08-02  Eric Seidel  <eric@webkit.org>
76125
76126        Add back ASSERT(!needsLayout) to RenderTableSection which is now valid
76127        https://bugs.webkit.org/show_bug.cgi?id=92954
76128
76129        Unreviewed, follow-up per Mitz's request.
76130
76131        * rendering/RenderTableSection.cpp:
76132        (WebCore::RenderTableSection::paint):
76133
761342012-08-02  James Robinson  <jamesr@chromium.org>
76135
76136        [chromium] Remove unused includes from compositor code
76137        https://bugs.webkit.org/show_bug.cgi?id=92930
76138
76139        Reviewed by Adrienne Walker.
76140
76141        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
76142        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
76143        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
76144
761452012-08-02  Adam Barth  <abarth@webkit.org>
76146
76147        The generic bindings shouldn't use templates
76148        https://bugs.webkit.org/show_bug.cgi?id=93016
76149
76150        Reviewed by Eric Seidel.
76151
76152        We originally created the generic bindings to share code between the
76153        JavaScriptCore and V8 bindings. However, the code came out sort of ugly
76154        because we used templates (with the idea that templates would let us
76155        use more than one scripting engine).
76156
76157        This patch rips out the templates in an attempt to make the code
76158        prettier and therefore easier to use in both V8 and JSC. I've tried to
76159        keep this patch small by remaning things mostly in place. In the next
76160        patch, I'll move a bunch of code out of headers and into cpp files.
76161
76162        No behavior change.
76163
76164        * GNUmakefile.am:
76165        * UseV8.cmake:
76166        * WebCore.gyp/WebCore.gyp:
76167        * WebCore.gypi:
76168        * WebCore.pri:
76169        * bindings/generic/BindingSecurity.h:
76170        (WebCore):
76171        (BindingSecurity):
76172        (WebCore::BindingSecurity::canAccessWindow):
76173        (WebCore::BindingSecurity::canAccessFrame):
76174        (WebCore::BindingSecurity::shouldAllowAccessToNode):
76175        (WebCore::BindingSecurity::allowPopUp):
76176        (WebCore::BindingSecurity::allowSettingFrameSrcToJavascriptUrl):
76177        (WebCore::BindingSecurity::allowSettingSrcToJavascriptURL):
76178        * bindings/generic/GenericBinding.h:
76179        (WebCore::completeURL):
76180        * bindings/scripts/CodeGeneratorV8.pm:
76181        (GenerateDomainSafeFunctionGetter):
76182        (GenerateNormalAttrGetter):
76183        (GenerateReplaceableAttrSetter):
76184        (GenerateFunctionCallback):
76185        (GenerateImplementation):
76186        * bindings/scripts/test/V8/V8Float64Array.cpp:
76187        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
76188        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
76189        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
76190        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
76191        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
76192        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
76193        * bindings/scripts/test/V8/V8TestException.cpp:
76194        * bindings/scripts/test/V8/V8TestInterface.cpp:
76195        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
76196        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
76197        * bindings/scripts/test/V8/V8TestNode.cpp:
76198        * bindings/scripts/test/V8/V8TestObj.cpp:
76199        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
76200        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
76201        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
76202        * bindings/v8/BindingState.cpp: Renamed from Source/WebCore/bindings/v8/specialization/V8BindingState.cpp.
76203        (WebCore):
76204        (WebCore::BindingState::instance):
76205        (WebCore::activeWindow):
76206        (WebCore::firstWindow):
76207        (WebCore::activeFrame):
76208        (WebCore::firstFrame):
76209        (WebCore::immediatelyReportUnsafeAccessTo):
76210        * bindings/v8/BindingState.h: Renamed from Source/WebCore/bindings/v8/specialization/V8BindingState.h.
76211        (WebCore):
76212        (BindingState):
76213        * bindings/v8/ScriptController.cpp:
76214        (WebCore::ScriptController::canAccessFromCurrentOrigin):
76215        * bindings/v8/V8Binding.h:
76216        (WebCore):
76217        * bindings/v8/V8DOMWindowShell.cpp:
76218        * bindings/v8/V8Proxy.cpp:
76219        * bindings/v8/V8Utilities.cpp:
76220        (WebCore::callingOrEnteredFrame):
76221        (WebCore::completeURL):
76222        * bindings/v8/custom/V8DOMWindowCustom.cpp:
76223        (WebCore::WindowSetTimeoutImpl):
76224        (WebCore::V8DOMWindow::eventAccessorGetter):
76225        (WebCore::V8DOMWindow::eventAccessorSetter):
76226        (WebCore::V8DOMWindow::locationAccessorSetter):
76227        (WebCore::V8DOMWindow::openerAccessorSetter):
76228        (WebCore::V8DOMWindow::addEventListenerCallback):
76229        (WebCore::V8DOMWindow::removeEventListenerCallback):
76230        (WebCore::V8DOMWindow::showModalDialogCallback):
76231        (WebCore::V8DOMWindow::openCallback):
76232        (WebCore::V8DOMWindow::namedSecurityCheck):
76233        (WebCore::V8DOMWindow::indexedSecurityCheck):
76234        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
76235        (WebCore::V8Document::locationAccessorSetter):
76236        * bindings/v8/custom/V8EntryCustom.cpp:
76237        * bindings/v8/custom/V8EntrySyncCustom.cpp:
76238        * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
76239        (WebCore::V8HTMLFrameElement::locationAccessorSetter):
76240        * bindings/v8/custom/V8HistoryCustom.cpp:
76241        (WebCore::V8History::indexedSecurityCheck):
76242        (WebCore::V8History::namedSecurityCheck):
76243        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
76244        * bindings/v8/custom/V8InjectedScriptManager.cpp:
76245        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
76246        * bindings/v8/custom/V8LocationCustom.cpp:
76247        (WebCore::V8Location::hashAccessorSetter):
76248        (WebCore::V8Location::hostAccessorSetter):
76249        (WebCore::V8Location::hostnameAccessorSetter):
76250        (WebCore::V8Location::hrefAccessorSetter):
76251        (WebCore::V8Location::pathnameAccessorSetter):
76252        (WebCore::V8Location::portAccessorSetter):
76253        (WebCore::V8Location::protocolAccessorSetter):
76254        (WebCore::V8Location::searchAccessorSetter):
76255        (WebCore::V8Location::reloadAccessorGetter):
76256        (WebCore::V8Location::replaceAccessorGetter):
76257        (WebCore::V8Location::assignAccessorGetter):
76258        (WebCore::V8Location::reloadCallback):
76259        (WebCore::V8Location::replaceCallback):
76260        (WebCore::V8Location::assignCallback):
76261        (WebCore::V8Location::toStringCallback):
76262        (WebCore::V8Location::indexedSecurityCheck):
76263        (WebCore::V8Location::namedSecurityCheck):
76264        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
76265        * bindings/v8/custom/V8NodeCustom.cpp:
76266
762672012-08-02  Abhishek Arya  <inferno@chromium.org>
76268
76269        No isChildAllowed checked when adding RenderFullScreen as the child..
76270        https://bugs.webkit.org/show_bug.cgi?id=92995
76271
76272        Reviewed by Eric Seidel.
76273
76274        Test: fullscreen/fullscreen-child-not-allowed-crash.html
76275
76276        * dom/Document.cpp:
76277        (WebCore::Document::webkitWillEnterFullScreenForElement): pass the object's parent
76278        pointer as an additional argument.
76279        * dom/NodeRenderingContext.cpp:
76280        (WebCore::NodeRendererFactory::createRendererIfNeeded): pass the to be parent |parentRenderer|
76281        as the argument. 
76282        * rendering/RenderFullScreen.cpp:
76283        (RenderFullScreen::wrapRenderer): make sure that parent allows RenderFullScreen as the child.
76284        * rendering/RenderFullScreen.h: 
76285        (RenderFullScreen): support the object's parent
76286        pointer as an additional argument.
76287
762882012-08-01  James Robinson  <jamesr@chromium.org>
76289
76290        [chromium] Wrap shared context getters in WebKit API and avoid WebCore::GraphicsContext3D use in compositor internals
76291        https://bugs.webkit.org/show_bug.cgi?id=92917
76292
76293        Reviewed by Adrienne Walker.
76294
76295        This uses Platform API wrappers to access the shared WebGraphicsContext3D / Ganesh contexts from the compositor
76296        to evaluate accelerated filters or do accelerated painting.
76297
76298        Filters changes covered by css3/filters/*-hw.html layout tests.
76299
76300        * WebCore.gypi:
76301        * platform/chromium/support/WebSharedGraphicsContext3D.cpp:
76302        (WebKit):
76303        (WebKit::WebSharedGraphicsContext3D::mainThreadContext):
76304        (WebKit::WebSharedGraphicsContext3D::mainThreadGrContext):
76305        (WebKit::WebSharedGraphicsContext3D::compositorThreadContext):
76306        (WebKit::WebSharedGraphicsContext3D::compositorThreadGrContext):
76307        (WebKit::WebSharedGraphicsContext3D::haveCompositorThreadContext):
76308        (WebKit::WebSharedGraphicsContext3D::createCompositorThreadContext):
76309        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
76310        (WebCore::createAcceleratedCanvas):
76311        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
76312        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
76313        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
76314        (WebKit):
76315        (FrameBufferSkPictureCanvasLayerTextureUpdater):
76316        * platform/graphics/chromium/LayerRendererChromium.cpp:
76317        (WebCore::applyFilters):
76318        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
76319        (WebCore::CCRenderSurfaceFilters::apply):
76320        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.h:
76321        (WebKit):
76322        (CCRenderSurfaceFilters):
76323
763242012-08-02  Beth Dakin  <bdakin@apple.com>
76325
76326        https://bugs.webkit.org/show_bug.cgi?id=93020
76327        REGRESSION (tiled scrolling): Full-screen video is broken if page is 
76328        scrolled
76329        -and corresponding-
76330        <rdar://problem/11629778>
76331
76332        Reviewed by Anders Carlsson.
76333
76334        The bug here is that ScrollingTreeNodeMac::setScrollLayerPosition() 
76335        uses the CALayer (PlatformLayer) directly to set the position. That 
76336        means that the GraphicsLayer that owns that PlatformLayer does not 
76337        have updated position information. That results in this bug when we 
76338        switch from fast scrolling to main thread scrolling, because at that 
76339        point, the GraphicsLayer needs to have the correct information. So 
76340        make sure to update the main thread scroll position and layer 
76341        position before transitioning to main thread scrolling.
76342        * page/scrolling/ScrollingCoordinator.cpp:
76343        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
76344
763452012-08-02  Addy Osmani  <addyo@chromium.org>
76346
76347        Web Inspector: Rename 'User agent' to 'Overrides' in settings screen
76348        https://bugs.webkit.org/show_bug.cgi?id=92990
76349
76350        Reviewed by Pavel Feldman.
76351
76352        Simple setting rename of User agent -> Overrides
76353
76354        * English.lproj/localizedStrings.js:
76355        * inspector/front-end/SettingsScreen.js:
76356
763572012-08-02  Philip Rogers  <pdr@google.com>
76358
76359        Do not dispatch modification events in SVG attribute synchronization
76360        https://bugs.webkit.org/show_bug.cgi?id=92604
76361
76362        Reviewed by Ryosuke Niwa.
76363
76364        Previously, calling hasAttribute() during layout could hit a
76365        layout-during-layout bug because calling hasAttribute() could dispatch a 
76366        subtree modification event which could synchronously force a layout. hasAttribute()
76367        exhibits this behavior because property synchronization is done lazily.
76368
76369        This patch skips dispatching subtree modification events during attribute
76370        synchronization.
76371
76372        Additionally, this patch contains a refactoring of lazy attribute setting. We
76373        now have a single place where lazy attributes are set (setSynchronizedLazyAttribute)
76374        and lazy attribute flags have been moved to just Element and ElementAttributeData.
76375
76376        Test: svg/custom/path-domsubtreemodified-crash.html
76377
76378        * dom/Element.cpp:
76379        (WebCore::Element::setAttribute):
76380        (WebCore::Element::setSynchronizedLazyAttribute):
76381        (WebCore):
76382        (WebCore::Element::setAttributeInternal):
76383        * dom/Element.h:
76384        (Element):
76385        * dom/ElementAttributeData.cpp:
76386        (WebCore::ElementAttributeData::addAttribute):
76387        (WebCore::ElementAttributeData::removeAttribute):
76388        * dom/ElementAttributeData.h:
76389        (ElementAttributeData):
76390        * dom/StyledElement.cpp:
76391        (WebCore::StyledElement::updateStyleAttribute):
76392        * svg/properties/SVGAnimatedPropertyMacros.h:
76393        (WebCore::SVGSynchronizableAnimatedProperty::synchronize):
76394
763952012-08-02  Konrad Piascik  <kpiascik@rim.com>
76396
76397        Web Inspector: Override the DeviceOrientation
76398        https://bugs.webkit.org/show_bug.cgi?id=91008
76399
76400        Reviewed by Pavel Feldman.
76401
76402        Re-added the m_page member variable to DeviceOrientationController and
76403        added InspectorInstrumentation to see if the DeviceOrientationData
76404        should be overridden or not.
76405
76406        Added UI to the web inspector front-end to allow users to override the
76407        device orientation.  This is currently hidden behind an experiment.
76408
76409        Test: inspector/device-orientation-success.html
76410
76411        * English.lproj/localizedStrings.js:
76412        * dom/DeviceOrientationController.cpp:
76413        (WebCore::DeviceOrientationController::DeviceOrientationController):
76414        (WebCore::DeviceOrientationController::create):
76415        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
76416        (WebCore::provideDeviceOrientationTo):
76417        * dom/DeviceOrientationController.h:
76418        (DeviceOrientationController):
76419        * inspector/Inspector.json:
76420        * inspector/InspectorInstrumentation.cpp:
76421        (WebCore):
76422        (WebCore::InspectorInstrumentation::overrideDeviceOrientationImpl):
76423        * inspector/InspectorInstrumentation.h:
76424        (WebCore):
76425        (InspectorInstrumentation):
76426        (WebCore::InspectorInstrumentation::overrideDeviceOrientation):
76427        * inspector/InspectorPageAgent.cpp:
76428        (WebCore::InspectorPageAgent::setDeviceOrientationOverride):
76429        (WebCore):
76430        (WebCore::InspectorPageAgent::clearDeviceOrientationOverride):
76431        (WebCore::InspectorPageAgent::canOverrideDeviceOrientation):
76432        (WebCore::InspectorPageAgent::overrideDeviceOrientation):
76433        * inspector/InspectorPageAgent.h:
76434        * inspector/front-end/Settings.js:
76435        (WebInspector.ExperimentsSettings):
76436        * inspector/front-end/SettingsScreen.js:
76437        (WebInspector.UserAgentSettingsTab):
76438        (WebInspector.UserAgentSettingsTab.prototype._createInput):
76439        (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
76440        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
76441        (WebInspector.UserAgentSettingsTab.prototype._onDeviceOrientationOverrideCheckboxClicked):
76442        (WebInspector.UserAgentSettingsTab.prototype._applyDeviceOrientationUserInput):
76443        (WebInspector.UserAgentSettingsTab.prototype._setDeviceOrientation.set if):
76444        (WebInspector.UserAgentSettingsTab.prototype._setDeviceOrientation):
76445        (WebInspector.UserAgentSettingsTab.prototype._createDeviceOrientationOverrideElement):
76446        * inspector/front-end/UserAgentSupport.js:
76447        (WebInspector.UserAgentSupport.DeviceOrientation):
76448        (WebInspector.UserAgentSupport.DeviceOrientation.prototype.toSetting):
76449        (WebInspector.UserAgentSupport.DeviceOrientation.parseSetting):
76450        (WebInspector.UserAgentSupport.DeviceOrientation.parseUserInput):
76451        (WebInspector.UserAgentSupport.DeviceOrientation.clearDeviceOrientationOverride):
76452        * inspector/front-end/inspector.js:
76453        (WebInspector.doLoadedDone):
76454
764552012-08-02  Arnaud Renevier  <a.renevier@sisa.samsung.com>
76456
76457        TypedArray set method is slow when called with another typed array
76458        https://bugs.webkit.org/show_bug.cgi?id=92556
76459
76460        Reviewed by Kenneth Russell.
76461
76462        When setting multiples values to a typed array from an array like
76463        element, try to determine if the argument is a typed array. If so,
76464        cast the argument to a typed array, and read each element with .item()
76465        method. That avoid reading the value as a JSValue, and speedups set
76466        method by approximatively 10x.
76467
76468        Introduce setWebGLArrayWithTypedArrayArgument template function which
76469        checks if argument is a typed array. If so, it copies the data to
76470        target typed array and returns true. Otherwise, it returns false.
76471
76472        Introduce copyTypedArrayBuffer template function which copies data
76473        from a typed array to another one. This function is also used from
76474        constructArrayBufferViewWithTypedArrayArgument.
76475
76476        * bindings/js/JSArrayBufferViewHelper.h:
76477        (WebCore):
76478        (WebCore::copyTypedArrayBuffer):
76479        (WebCore::setWebGLArrayWithTypedArrayArgument):
76480        (WebCore::setWebGLArrayHelper):
76481        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
76482        * bindings/js/JSFloat32ArrayCustom.cpp:
76483        (WebCore::JSFloat32Array::set):
76484        * bindings/js/JSFloat64ArrayCustom.cpp:
76485        (WebCore::JSFloat64Array::set):
76486        * bindings/js/JSInt16ArrayCustom.cpp:
76487        (WebCore::JSInt16Array::set):
76488        * bindings/js/JSInt32ArrayCustom.cpp:
76489        (WebCore::JSInt32Array::set):
76490        * bindings/js/JSInt8ArrayCustom.cpp:
76491        (WebCore::JSInt8Array::set):
76492        * bindings/js/JSUint16ArrayCustom.cpp:
76493        (WebCore::JSUint16Array::set):
76494        * bindings/js/JSUint32ArrayCustom.cpp:
76495        (WebCore::JSUint32Array::set):
76496        * bindings/js/JSUint8ArrayCustom.cpp:
76497        (WebCore::JSUint8Array::set):
76498        * bindings/js/JSUint8ClampedArrayCustom.cpp:
76499        (WebCore::JSUint8ClampedArray::set):
76500
765012012-08-02  Chris Fleizach  <cfleizach@apple.com>
76502
76503        AXEnabled = false for AXIncrementors inside text fields
76504        https://bugs.webkit.org/show_bug.cgi?id=93008
76505
76506        Reviewed by Anders Carlsson.
76507
76508        Mock objects should return "enabled" by default, since they are valid objects.
76509
76510        * accessibility/AccessibilityMockObject.h:
76511        (WebCore::AccessibilityMockObject::isEnabled):
76512        (AccessibilityMockObject):
76513
765142012-08-02  Eric Seidel  <eric@webkit.org>
76515
76516        Add back ASSERT(!needsLayout) to RenderTableSection which is now valid
76517        https://bugs.webkit.org/show_bug.cgi?id=92954
76518
76519        Reviewed by Julien Chaffraix.
76520
76521        * rendering/RenderTableSection.cpp:
76522        (WebCore::RenderTableSection::paint):
76523
765242012-08-02  Kevin Ellis  <kevers@chromium.org>
76525
76526        Month-year selector on calendar picker should be touch friendly.
76527        https://bugs.webkit.org/show_bug.cgi?id=92678
76528
76529        Reviewed by Kent Tamura.
76530
76531        Previously the month-year popup menu was implemented using a listbox,
76532        which does not support CSS customization.  Entries in the listbox
76533        were too shallow to reliably target with touch gestures.  The
76534        replacement popup is CSS configurable with larger entries on devices
76535        that support touch input.
76536
76537        Manually tested with and without touch support in English, Japanese
76538        and Arabic.
76539
76540        * Resources/calendarPicker.css:
76541        (.month-selector-popup): Update to use scrollable div instead of listbox.
76542        (.month-selector-popup-contents): Render popup as a table within a scrollable div.
76543        (.month-selector-popup-entry): Formatting entries in the month-year popup.
76544        (.selected-month-year): Highlight the selected month-year.
76545        (@media (pointer:coarse)): Enlarge entries in the popup meu on devices that support touch.
76546        * Resources/calendarPicker.js:
76547        (YearMonthController.prototype.attachTo): Change selector popup from a list-box to a div.
76548        (YearMonthController.prototype._redraw): Populate table based popup rather than listbox.
76549        (YearMonthController.prototype._showPopup): Set scroll position and resize for scrollbar.
76550        (YearMonthController.prototype._closePopup): Restore focus to the calendar.
76551        (YearMonthController.prototype._getSelection): Added to retrieve the selected month-year.
76552        (YearMonthController.prototype._handleMouseMove): Added to update selected month-year on hover.
76553        (YearMonthController.prototype._handleMonthPopupKey): Add keyboard navigation.
76554        (YearMonthController.prototype._handleYearMonthChange): Retrieve value from selected month-year.
76555
765562012-08-02  Vsevolod Vlasov  <vsevik@chromium.org>
76557
76558        Web Inspector: [Regression] context menu does not open on Sources panel tabs on mac
76559        https://bugs.webkit.org/show_bug.cgi?id=93000
76560
76561        Reviewed by Pavel Feldman.
76562
76563        * inspector/front-end/UIUtils.js:
76564        (WebInspector._elementDragStart):
76565
765662012-08-02  Kwang Yul Seo  <skyul@company100.net>
76567
76568        Check if the last table element's parent node is an element when determining the foster parent element.
76569        https://bugs.webkit.org/show_bug.cgi?id=92977
76570
76571        Reviewed by Adam Barth.
76572
76573        According to the HTML5 spec, if the last table element in the stack of open elements has no parent,
76574        or ITS PARENT NODE IS NOT AN ELEMENT, then the foster parent element is the element
76575        before the last table element in the stack of open elements.
76576
76577        Changed to check if the table element's parent node is an element.
76578
76579        Test: fast/parser/foster-parent.html
76580
76581        * html/parser/HTMLConstructionSite.cpp:
76582        (WebCore::HTMLConstructionSite::findFosterSite):
76583
765842012-08-02  Philippe Normand  <pnormand@igalia.com>
76585
76586        [GStreamer] Use GST_DEBUG instead of LOG_VERBOSE
76587        https://bugs.webkit.org/show_bug.cgi?id=89350
76588
76589        Reviewed by Martin Robinson.
76590
76591        Wrap the media player's logging calls to a new macro that also
76592        hooks into GStreamer's logging facilities. This way the developer
76593        gets the best of both worlds, leaving the choice between GST_DEBUG
76594        and WEBKIT_DEBUG environment variables.
76595
76596        * platform/graphics/gstreamer/GStreamerUtilities.h:
76597        (WebCore):
76598        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
76599        (WebCore::initializeGStreamerAndRegisterWebKitElements):
76600        (WebCore::MediaPlayerPrivateGStreamer::load):
76601        (WebCore::MediaPlayerPrivateGStreamer::commitLoad):
76602        (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
76603        (WebCore::MediaPlayerPrivateGStreamer::play):
76604        (WebCore::MediaPlayerPrivateGStreamer::pause):
76605        (WebCore::MediaPlayerPrivateGStreamer::duration):
76606        (WebCore::MediaPlayerPrivateGStreamer::seek):
76607        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
76608        (WebCore::MediaPlayerPrivateGStreamer::setRate):
76609        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
76610        (WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
76611        (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
76612        (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
76613        (WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
76614        (WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
76615
766162012-08-02  Antti Koivisto  <antti@apple.com>
76617
76618        Inline stylesheets can confuse style sharing
76619        https://bugs.webkit.org/show_bug.cgi?id=92970
76620
76621        Reviewed by Dan Bernstein.
76622
76623        Consider document 
76624        
76625        <div class="i30"></div>
76626        <style>.i30 { background-color:green; }</style>
76627        <div class="i30"></div>
76628        
76629        When processing the <style> element the scope optimization marks the first div as needing style recalc. 
76630        Next the parser adds the second div to the tree and immediately calculates its style. Since it looks exactly 
76631        like the first div the style sharing optimization copies the style from there. The pending recalc of the
76632        first div is resolved by a timer but the second div is left with the old style.
76633        
76634        Fix by disallowing style sharing from elements with pending style recalc.
76635
76636        Test: fast/css/style-sharing-inline-stylesheet.html
76637
76638        * css/StyleResolver.cpp:
76639        (WebCore::StyleResolver::canShareStyleWithElement):
76640
766412012-08-02  Tommy Widenflycht  <tommyw@google.com>
76642
76643        MediaStream API: Add RTCPeerConnectionHandler infrastructure
76644        https://bugs.webkit.org/show_bug.cgi?id=92866
76645
76646        Reviewed by Adam Barth.
76647
76648        Introducing RTCPeerConnectionHandler & RTCPeerConnectionHandlerClient,
76649        together with the Chromium WebKit interface, following the pattern of
76650        the previous PeerConnection00Handler but with the optimizations from MediaStreamCenter.
76651
76652        Not yet testable due to not enough code landed.
76653
76654        * CMakeLists.txt:
76655        * GNUmakefile.list.am:
76656        * Modules/mediastream/RTCPeerConnection.cpp:
76657        (WebCore::RTCPeerConnection::create):
76658        (WebCore::RTCPeerConnection::RTCPeerConnection):
76659        * Modules/mediastream/RTCPeerConnection.h:
76660        (RTCPeerConnection):
76661        * WebCore.gypi:
76662        * platform/mediastream/RTCPeerConnectionHandler.cpp: Added.
76663        (WebCore):
76664        (RTCPeerConnectionHandlerDummy):
76665        (WebCore::RTCPeerConnectionHandler::create):
76666        (WebCore::RTCPeerConnectionHandlerDummy::RTCPeerConnectionHandlerDummy):
76667        (WebCore::RTCPeerConnectionHandlerDummy::~RTCPeerConnectionHandlerDummy):
76668        (WebCore::RTCPeerConnectionHandlerDummy::initialize):
76669        * platform/mediastream/RTCPeerConnectionHandler.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
76670        (WebCore):
76671        (RTCPeerConnectionHandler):
76672        (WebCore::RTCPeerConnectionHandler::~RTCPeerConnectionHandler):
76673        (WebCore::RTCPeerConnectionHandler::RTCPeerConnectionHandler):
76674        * platform/mediastream/RTCPeerConnectionHandlerClient.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
76675        (WebCore):
76676        (RTCPeerConnectionHandlerClient):
76677        (WebCore::RTCPeerConnectionHandlerClient::~RTCPeerConnectionHandlerClient):
76678        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Added.
76679        (WebCore):
76680        (WebCore::RTCPeerConnectionHandler::create):
76681        (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
76682        (WebCore::RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium):
76683        (WebCore::RTCPeerConnectionHandlerChromium::initialize):
76684        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Added.
76685        (WebCore):
76686        (RTCPeerConnectionHandlerChromium):
76687
766882012-08-02  Kent Tamura  <tkent@chromium.org>
76689
76690        Move number localization code in LocaleICU.cpp to new class
76691        https://bugs.webkit.org/show_bug.cgi?id=92976
76692
76693        Reviewed by Kentaro Hara.
76694
76695        The number localization code by character mapping is usefull for non-ICU
76696        platforms.
76697
76698        No new tests. This is just a refactoring, and is covered by
76699        Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp.
76700
76701        * WebCore.gypi: Add NumberLocalizer.{cpp,h}.
76702        * platform/text/LocaleICU.cpp:
76703        (WebCore::LocaleICU::decimalSymbol):
76704        Renamed from setDecimalSymbol. This function returns the resultant
76705        string instead of setting it to a data member.
76706        (WebCore::LocaleICU::decimalTextAttribute):
76707        Renamed from setDecimalTextAttributel. This function returns the
76708        resultant string instead of setting it to the specified string.
76709        (WebCore::LocaleICU::initializeNumberLocalizerData):
76710        Renamed from initializeDecimalFormat.
76711        Calls NumberLocaizer::setNumberLocalizerData.
76712        (WebCore::LocaleICU::localizedDecimalSeparator):
76713        Rename initializeDecimalFormat to initializeNumberLocalizerData.
76714        * platform/text/LocaleICU.h:
76715        (LocaleICU): Remove some members, and inherit NumberLocalizer.
76716        * platform/text/NumberLocalizer.cpp: Added. Move the code from LocaleICU.cpp
76717        (WebCore):
76718        (WebCore::NumberLocalizer::~NumberLocalizer):
76719        (WebCore::NumberLocalizer::setNumberLocalizerData): Added.
76720        (WebCore::NumberLocalizer::convertToLocalizedNumber):
76721        (WebCore::matches):
76722        (WebCore::NumberLocalizer::detectSignAndGetDigitRange):
76723        (WebCore::NumberLocalizer::matchedDecimalSymbolIndex):
76724        (WebCore::NumberLocalizer::convertFromLocalizedNumber):
76725        (WebCore::NumberLocalizer::localizedDecimalSeparator):
76726        * platform/text/NumberLocalizer.h: Added.
76727        (NumberLocalizer):
76728        (WebCore::NumberLocalizer::NumberLocalizer):
76729
767302012-08-02  Alexander Pavlov  <apavlov@chromium.org>
76731
76732        Web Inspector: Move DOM breakpoints-related context menu items into a submenu
76733        https://bugs.webkit.org/show_bug.cgi?id=92989
76734
76735        Reviewed by Vsevolod Vlasov.
76736
76737        A "Break on..." submenu is added to the element context menu, to host all DOM breakpoint items.
76738
76739        * English.lproj/localizedStrings.js:
76740        * inspector/front-end/DOMBreakpointsSidebarPane.js:
76741        (WebInspector.DOMBreakpointsSidebarPane):
76742        (WebInspector.DOMBreakpointsSidebarPane.prototype.populateNodeContextMenu):
76743
767442012-08-02  Dominik Röttsches  <dominik.rottsches@intel.com>
76745
76746        [Cairo] Add complex font drawing using HarfbuzzNG
76747        https://bugs.webkit.org/show_bug.cgi?id=91864
76748
76749        Reviewed by Martin Robinson.
76750
76751        Unfortunately the Freetype based approach that avoids allocations and UTF8 conversion
76752        fails to produce correct results for some tests.
76753
76754        No new tests, at least
76755          fast/dom/52776.html
76756          fast/text/atsui-negative-spacing-features.html
76757          fast/text/atsui-spacing-features.html
76758        expose this problem.
76759
76760        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
76761        (WebCore::harfbuzzGetGlyph): Revert to initial cairo_scaled_font based approach.
76762
767632012-08-02  Eugene Klyuchnikov  <eustas.big@gmail.com>
76764
76765        Web Inspector: Fix protocol version check.
76766        https://bugs.webkit.org/show_bug.cgi?id=91497
76767
76768        Reviewed by Pavel Feldman.
76769
76770        Generated method 'supportsInspectorProtocolVersion' should return
76771        false when requested  minor version is *greater* than actual
76772        minor version.
76773
76774        * inspector/generate-inspector-protocol-version: Fixed stub text
76775
767762012-08-02  Alexei Filippov  <alexeif@chromium.org>
76777
76778        Web Inspector: count RenderStyle objects in the native memory profiler
76779        https://bugs.webkit.org/show_bug.cgi?id=91759
76780
76781        Reviewed by Yury Semikhatsky.
76782
76783        The patch adds instrumentation to the following classes:
76784          - RenderStyle
76785          - StyleRareInheritedData
76786          - StyleRareNonInheritedData
76787
76788        * bindings/js/ScriptWrappable.h:
76789        * bindings/v8/ScriptWrappable.h:
76790        * dom/MemoryInstrumentation.h:
76791        (WebCore):
76792        (WebCore::MemoryInstrumentation::OwningTraits::addObject):
76793        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
76794        (WebCore::MemoryInstrumentation::addObjectImpl):
76795        * dom/Node.cpp:
76796        (WebCore::Node::reportMemoryUsage):
76797        * dom/Node.h:
76798        (WebCore):
76799        * rendering/style/RenderStyle.cpp:
76800        (WebCore::RenderStyle::reportMemoryUsage):
76801        (WebCore):
76802        * rendering/style/RenderStyle.h:
76803        (WebCore):
76804        * rendering/style/StyleRareInheritedData.cpp:
76805        (WebCore::StyleRareInheritedData::reportMemoryUsage):
76806        (WebCore):
76807        * rendering/style/StyleRareInheritedData.h:
76808        (WebCore):
76809        (StyleRareInheritedData):
76810        * rendering/style/StyleRareNonInheritedData.cpp:
76811        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
76812        (WebCore):
76813        * rendering/style/StyleRareNonInheritedData.h:
76814        (WebCore):
76815        (StyleRareNonInheritedData):
76816
768172012-08-02  Alexei Filippov  <alexeif@chromium.org>
76818
76819        Web Inspector: rename host->origin in the inspector protocol DOMStorage entry
76820        https://bugs.webkit.org/show_bug.cgi?id=92979
76821
76822        Reviewed by Yury Semikhatsky.
76823
76824        * inspector/Inspector.json:
76825        * inspector/InspectorDOMStorageResource.cpp:
76826        (WebCore::InspectorDOMStorageResource::bind):
76827        * inspector/front-end/DOMStorage.js:
76828        (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
76829
768302012-08-02  Kihong Kwon  <kihong.kwon@samsung.com>
76831
76832        [EFL] Change return value of battey level
76833        https://bugs.webkit.org/show_bug.cgi?id=92964
76834
76835        Reviewed by Simon Hausmann.
76836
76837        Change return value of navigator.webkitBattery.level from 0~100 to 0~1.0.
76838        Battery level have to returns 0~1.0 by Battery Status API spec.
76839
76840        * platform/efl/BatteryProviderEfl.cpp:
76841        (WebCore::BatteryProviderEfl::setBatteryClient):
76842
768432012-08-02  Yury Semikhatsky  <yurys@chromium.org>
76844
76845        Web Inspector: remove extraObjectSize parameter from MemoryClassInfo constructor
76846        https://bugs.webkit.org/show_bug.cgi?id=92981
76847
76848        Reviewed by Alexander Pavlov.
76849
76850        Refactored MemoryInstrumentation to get rid of extraSize parameter from
76851        MemoryObjectInfo constructor and MemoryObjectInfo::reportObjectInfo. The
76852        extra size should always be reported as an object that occupies these extra
76853        bytes.
76854
76855        * dom/ElementAttributeData.cpp:
76856        (WebCore::ElementAttributeData::reportMemoryUsage):
76857        (WebCore):
76858        * dom/ElementAttributeData.h:
76859        (WebCore):
76860        (ElementAttributeData):
76861        * dom/MemoryInstrumentation.h:
76862        (WebCore::MemoryObjectInfo::reportObjectInfo):
76863        (WebCore::MemoryClassInfo::MemoryClassInfo):
76864
768652012-08-02  Sheriff Bot  <webkit.review.bot@gmail.com>
76866
76867        Unreviewed, rolling out r124439.
76868        http://trac.webkit.org/changeset/124439
76869        https://bugs.webkit.org/show_bug.cgi?id=92980
76870
76871        Broke Chromium Mac Release compile (Requested by apavlov on
76872        #webkit).
76873
76874        * CMakeLists.txt:
76875        * GNUmakefile.list.am:
76876        * Modules/mediastream/RTCPeerConnection.cpp:
76877        (WebCore::RTCPeerConnection::create):
76878        (WebCore::RTCPeerConnection::RTCPeerConnection):
76879        * Modules/mediastream/RTCPeerConnection.h:
76880        * WebCore.gypi:
76881        * platform/mediastream/RTCPeerConnectionHandler.cpp: Removed.
76882        * platform/mediastream/RTCPeerConnectionHandler.h: Removed.
76883        * platform/mediastream/RTCPeerConnectionHandlerClient.h: Removed.
76884        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Removed.
76885        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Removed.
76886
768872012-08-02  Simon Hausmann  <simon.hausmann@nokia.com>
76888
76889        [Qt] Uninitialized memory read in QObject runtime bridge
76890        https://bugs.webkit.org/show_bug.cgi?id=92972
76891
76892        Reviewed by Kenneth Rohde Christiansen.
76893
76894        The vargs array has an initial size of 0 and when calling a method with no return value
76895        and no arguments, vargs remains empty. Therefore unconditional access to vargs[0] results
76896        in access to uninitialized memory.
76897
76898        No new tests, covered by valgrind in existing qobjectbridge tests.
76899
76900        * bridge/qt/qt_runtime.cpp:
76901        (JSC::Bindings::QtRuntimeMetaMethod::call):
76902        * bridge/qt/qt_runtime_qt4.cpp:
76903        (JSC::Bindings::QtRuntimeMetaMethod::call):
76904
769052012-08-02  Zoltan Herczeg  <zherczeg@webkit.org>
76906
76907        Alignment issue for readTime in PluginDatabase.cpp
76908        https://bugs.webkit.org/show_bug.cgi?id=92746
76909
76910        Reviewed by Simon Hausmann.
76911
76912        When the byte stream is written, nothing guarantees that
76913        the time_t data is aligned. This issue caused alignment
76914        traps on ARM CPUs.
76915
76916        No new tests. Covered by existing tests.
76917
76918        * plugins/PluginDatabase.cpp:
76919        (WebCore::readTime):
76920
769212012-08-02  Tommy Widenflycht  <tommyw@google.com>
76922
76923        MediaStream API: Add RTCPeerConnectionHandler infrastructure
76924        https://bugs.webkit.org/show_bug.cgi?id=92866
76925
76926        Reviewed by Kentaro Hara.
76927
76928        Introducing RTCPeerConnectionHandler & RTCPeerConnectionHandlerClient,
76929        together with the Chromium WebKit interface, following the pattern of
76930        the previous PeerConnection00Handler but with the optimizations from MediaStreamCenter.
76931
76932        Not yet testable due to not enough code landed.
76933
76934        * CMakeLists.txt:
76935        * GNUmakefile.list.am:
76936        * Modules/mediastream/RTCPeerConnection.cpp:
76937        (WebCore::RTCPeerConnection::create):
76938        (WebCore::RTCPeerConnection::RTCPeerConnection):
76939        * Modules/mediastream/RTCPeerConnection.h:
76940        (RTCPeerConnection):
76941        * WebCore.gypi:
76942        * platform/mediastream/RTCPeerConnectionHandler.cpp: Added.
76943        (WebCore):
76944        (RTCPeerConnectionHandlerDummy):
76945        (WebCore::RTCPeerConnectionHandler::create):
76946        (WebCore::RTCPeerConnectionHandlerDummy::RTCPeerConnectionHandlerDummy):
76947        (WebCore::RTCPeerConnectionHandlerDummy::~RTCPeerConnectionHandlerDummy):
76948        (WebCore::RTCPeerConnectionHandlerDummy::initialize):
76949        * platform/mediastream/RTCPeerConnectionHandler.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
76950        (WebCore):
76951        (RTCPeerConnectionHandler):
76952        (WebCore::RTCPeerConnectionHandler::~RTCPeerConnectionHandler):
76953        (WebCore::RTCPeerConnectionHandler::RTCPeerConnectionHandler):
76954        * platform/mediastream/RTCPeerConnectionHandlerClient.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
76955        (WebCore):
76956        (RTCPeerConnectionHandlerClient):
76957        (WebCore::RTCPeerConnectionHandlerClient::~RTCPeerConnectionHandlerClient):
76958        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Added.
76959        (WebCore):
76960        (WebCore::RTCPeerConnectionHandler::create):
76961        (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
76962        (WebCore::RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium):
76963        (WebCore::RTCPeerConnectionHandlerChromium::initialize):
76964        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Added.
76965        (WebCore):
76966        (RTCPeerConnectionHandlerChromium):
76967
769682012-08-02  Yury Semikhatsky  <yurys@chromium.org>
76969
76970        Web Inspector: rename reportMemoryUsage to reportDescendantMemoryUsage in StyleRuleBase descendants
76971        https://bugs.webkit.org/show_bug.cgi?id=92966
76972
76973        Reviewed by Alexander Pavlov.
76974
76975        Renamed reportMemoryUsage to reportDescendantMemoryUsage in all descendants of
76976        StyleRuleBase to avoid accidental recursive calls to StyleRuleBase::reportMemoryUsage
76977        when a new type of rule is added.
76978
76979        * css/StyleRule.cpp:
76980        (WebCore::StyleRuleBase::reportMemoryUsage):
76981        (WebCore::StyleRule::reportDescendantMemoryUsage):
76982        (WebCore::StyleRulePage::reportDescendantMemoryUsage):
76983        (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
76984        (WebCore::StyleRuleBlock::reportDescendantMemoryUsage):
76985        (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
76986        (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
76987        * css/StyleRule.h:
76988        (StyleRule):
76989        (StyleRuleFontFace):
76990        (StyleRulePage):
76991        (StyleRuleBlock):
76992        (StyleRuleMedia):
76993        (StyleRuleRegion):
76994        * css/StyleRuleImport.cpp:
76995        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
76996        * css/StyleRuleImport.h:
76997        (StyleRuleImport):
76998        * css/WebKitCSSKeyframesRule.cpp:
76999        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
77000        * css/WebKitCSSKeyframesRule.h:
77001        (StyleRuleKeyframes):
77002
770032012-08-02  Hironori Bono  <hbono@chromium.org>
77004
77005        [Chromium] Implement hyphenation for Chromium
77006        https://bugs.webkit.org/show_bug.cgi?id=48610
77007
77008        Reviewed by Eric Seidel.
77009
77010        This change adds a couple of methods canHyphenate and computeLastHyphenLocation
77011        to Platform so Chromium can implement them. Also, this change uses these methods
77012        to implement the hyphenation methods of WebCore. (This change does not change
77013        any behaviors until Chromium implements these methods.)
77014
77015        No new tests because this change is for fixing a couple of existing layout tests
77016        'fast/text/hyphenate-character.html' and 'fast/text/hyphens.html'.
77017
77018        * WebCore.gypi:
77019        * platform/text/chromium/Hyphenation.cpp: Added.
77020        (WebCore):
77021        (WebCore::canHyphenate): Called Platform::canHyphenation().
77022        (WebCore::lastHyphenLocation): Called Platform::computeLastHyphenLocation().
77023
770242012-08-02  ulan@chromium.org  <ulan@chromium.org>
77025
77026        [chromium] Improve garbage collector hint if page uses Canvas contexts
77027        https://bugs.webkit.org/show_bug.cgi?id=92856
77028
77029        Reviewed by Kentaro Hara.
77030
77031        Request GC by sending context disposed and idle notification to V8 instead
77032        of sending low memory notification. It is faster as it causes one GC
77033        instead of seven GCs caused by low memory notification.
77034
77035        * bindings/v8/V8Binding.cpp:
77036        (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
77037        * bindings/v8/V8Binding.h:
77038        (V8BindingPerIsolateData):
77039        (WebCore::V8BindingPerIsolateData::setShouldCollectGarbageSoon):
77040        (WebCore::V8BindingPerIsolateData::clearShouldCollectGarbageSoon):
77041        (WebCore::V8BindingPerIsolateData::shouldCollectGarbageSoon):
77042        * bindings/v8/V8Proxy.cpp:
77043        (WebCore::V8Proxy::hintForGCIfNecessary):
77044        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
77045        (WebCore::V8HTMLCanvasElement::getContextCallback):
77046
770472012-08-02  Mihnea Ovidenie  <mihnea@adobe.com>
77048
77049        CSSRegions: Crash when reattaching a region to a named flow.
77050        https://bugs.webkit.org/show_bug.cgi?id=91307
77051
77052        Reviewed by Abhishek Arya.
77053
77054        The lifetime of a flow thread  has changed from not being destroyed (until the RenderView is destroyed) to being destroyed,
77055        under certain conditions, no attached regions and no content, before RenderView is destroyed.
77056        When the flow thread does not have any content and the region to be detached is the last region for the flow thread,
77057        the flow thread is destroyed.
77058        In this case, if the same region has to be attached again to the flow thread, the flow thread needs to be
77059        recreated, otherwise the crash will result.
77060
77061        Test: fast/regions/region-flow-reattach-crash.html
77062
77063        * rendering/RenderRegion.cpp:
77064        (WebCore::RenderRegion::attachRegion):
77065        We skip the attach if we are in the middle of document destruction.
77066        We recreate the flow thread to which the region is intended to be attached only if the region was
77067        not previously marked as invalid in relation to the flow thread (because the region was part of a
77068        circular dependency).
77069        (WebCore::RenderRegion::detachRegion): After the region is detached from flow thread,
77070        null the region internal pointer to the flow thread to mark that the region is not
77071        attached.
77072
770732012-08-02  Tommy Widenflycht  <tommyw@google.com>
77074
77075        MediaStream API: Move RTCConfiguration to its proper place
77076        https://bugs.webkit.org/show_bug.cgi?id=92867
77077
77078        Reviewed by Adam Barth.
77079
77080        This patch moves RTCConfiguration to Source/WebCore/platform/mediastream,
77081        and adds its WebKit interface for chromium.
77082
77083        No functional code changes.
77084
77085        * GNUmakefile.list.am:
77086        * Modules/mediastream/RTCPeerConnection.cpp:
77087        * WebCore.gypi:
77088        * platform/chromium/support/WebRTCConfiguration.cpp: Added.
77089        (WebKit):
77090        (WebKit::WebRTCICEServer::WebRTCICEServer):
77091        (WebKit::WebRTCICEServer::assign):
77092        (WebKit::WebRTCICEServer::reset):
77093        (WebKit::WebRTCICEServer::uri):
77094        (WebKit::WebRTCICEServer::credential):
77095        (WebKit::WebRTCConfiguration::WebRTCConfiguration):
77096        (WebKit::WebRTCConfiguration::assign):
77097        (WebKit::WebRTCConfiguration::reset):
77098        (WebKit::WebRTCConfiguration::numberOfServers):
77099        (WebKit::WebRTCConfiguration::server):
77100        * platform/mediastream/RTCConfiguration.h: Added.
77101        (WebCore):
77102        (RTCIceServer):
77103        (WebCore::RTCIceServer::create):
77104        (WebCore::RTCIceServer::~RTCIceServer):
77105        (WebCore::RTCIceServer::uri):
77106        (WebCore::RTCIceServer::credential):
77107        (WebCore::RTCIceServer::RTCIceServer):
77108        (RTCConfiguration):
77109        (WebCore::RTCConfiguration::create):
77110        (WebCore::RTCConfiguration::~RTCConfiguration):
77111        (WebCore::RTCConfiguration::appendServer):
77112        (WebCore::RTCConfiguration::numberOfServers):
77113        (WebCore::RTCConfiguration::server):
77114        (WebCore::RTCConfiguration::RTCConfiguration):
77115
771162012-08-02  Alexander Shalamov  <alexander.shalamov@intel.com>
77117
77118        [EFL] Browser crashes when non-progress element with -webkit-appearance:progress-bar is rendered
77119        https://bugs.webkit.org/show_bug.cgi?id=92747
77120
77121        Reviewed by Hajime Morita.
77122
77123        When https://bugs.webkit.org/show_bug.cgi?id=40158 was fixed, all ports
77124        were fixed except EFL port. This patch fixes assert that is hit when
77125        non-progress element is rendered with -webkit-appearance:progress-bar style.
77126
77127        * platform/efl/RenderThemeEfl.cpp:
77128        (WebCore::RenderThemeEfl::paintProgressBar):
77129
771302012-08-02  Yoshifumi Inoue  <yosin@chromium.org>
77131
77132        REGRESSION(r102741): [Forms] In selects, when disabled, browser skips first option if not in optgroup, then selects first option in optgroup
77133        https://bugs.webkit.org/show_bug.cgi?id=92833
77134
77135        Reviewed by Kent Tamura.
77136
77137        This patch changes implementation of HTMLOptionElement::disabled() to
77138        follow the "disabled" concept of option element in HTML5 specification[1],
77139        the option element is disabled if option element has "disabled"
77140        attribute or parent optgroup element has "disabled" attribute. Before
77141        this patch, HTMLOptionElement::disabled() checks presenting "disabled"
77142        attribute in option element itself and any parent element.
77143
77144        Before this patch, HTMLSelectElement::recalcListItems() didn't considers
77145        non-disabled option as default selected option if select element is
77146        disabled because HTMLOptionElement::disabled() returned true if select
77147        element is disabled.
77148
77149        After this patch, HTMLOptionElement::disabled() is independent from
77150        select element. HTMLSelectElement::recalcListItems() considers
77151        non-disabled option as default selected option.
77152
77153        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#concept-option-disabled
77154
77155        Tests: fast/forms/basic-selects.html: Fixed expectation to right thing.
77156
77157        * css/html.css:
77158        (select[disabled]>option): Added to render option elements in disabled
77159        select element to disabled color as before this patch.
77160        * html/HTMLOptionElement.cpp:
77161        (WebCore::HTMLOptionElement::disabled): Changed to check parent element
77162        is optgroup.
77163        * html/HTMLSelectElement.cpp:
77164        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): On mouse up
77165        and down, don't update selection if select element is disabled.
77166        * rendering/RenderListBox.cpp:
77167        (WebCore::RenderListBox::paintItemForeground): Added checking select
77168        element is disabled. Before this patch, it was done by HTMLOptionElement::disabled().
77169
771702012-08-01  Sheriff Bot  <webkit.review.bot@gmail.com>
77171
77172        Unreviewed, rolling out r124406.
77173        http://trac.webkit.org/changeset/124406
77174        https://bugs.webkit.org/show_bug.cgi?id=92951
77175
77176        it set the Mac bots on fire (Requested by pizlo on #webkit).
77177
77178        * bindings/js/ScriptDebugServer.cpp:
77179        (WebCore::ScriptDebugServer::setBreakpoint):
77180        (WebCore::ScriptDebugServer::removeBreakpoint):
77181        (WebCore::ScriptDebugServer::hasBreakpoint):
77182        (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
77183        (WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded):
77184        (WebCore::ScriptDebugServer::callEvent):
77185        (WebCore::ScriptDebugServer::atStatement):
77186        (WebCore::ScriptDebugServer::returnEvent):
77187        (WebCore::ScriptDebugServer::exception):
77188        (WebCore::ScriptDebugServer::willExecuteProgram):
77189        (WebCore::ScriptDebugServer::didExecuteProgram):
77190        (WebCore::ScriptDebugServer::didReachBreakpoint):
77191        * bindings/js/ScriptDebugServer.h:
77192        (ScriptDebugServer):
77193
771942012-08-01  Ilya Tikhonovsky  <loislo@chromium.org>
77195
77196        Web Inspector: test native memory instrumentation code with help of unittests
77197        https://bugs.webkit.org/show_bug.cgi?id=92743
77198
77199        Reviewed by Yury Semikhatsky.
77200
77201        Test a part of existing Native Memory Instrumentation code with help of unit tests.
77202        6 tests were added and two bugs were fixed.
77203        a drive-by improvement: the method MemoryInstrumentation::addInstrumentedObject
77204        was marked as private and addRootObject was introduced instead of it.
77205        The new function also calls processDeferedPointers.
77206
77207        * bindings/v8/ScriptProfiler.cpp:
77208        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
77209        * dom/MemoryInstrumentation.h:
77210        (WebCore::MemoryInstrumentation::addRootObject):
77211        (MemoryInstrumentation):
77212        (WebCore::MemoryInstrumentation::addInstrumentedObject):
77213        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
77214        (WebCore):
77215        (WebCore::MemoryInstrumentation::addObjectImpl):
77216        * inspector/InspectorMemoryAgent.cpp:
77217        (WebCore):
77218        * inspector/MemoryInstrumentationImpl.h:
77219        (MemoryInstrumentationImpl):
77220        (WebCore::MemoryInstrumentationImpl::totalSize):
77221        (WebCore::MemoryInstrumentationImpl::reportedSizeForAllTypes):
77222
772232012-08-01  Ryosuke Niwa  <rniwa@webkit.org>
77224
77225        Chromium Android build fix after r124402.
77226        Initialize the out variables as suggested by the compiler.
77227
77228        * Modules/indexeddb/IDBLevelDBCoding.cpp:
77229        (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::decode):
77230        (WebCore::IDBLevelDBCoding::DatabaseNameKey::decode):
77231        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::decode):
77232        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::decode):
77233        (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::decode):
77234        (WebCore::IDBLevelDBCoding::IndexFreeListKey::decode):
77235        (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::decode):
77236        (WebCore::IDBLevelDBCoding::IndexNamesKey::decode):
77237
772382012-08-01  Keishi Hattori  <keishi@webkit.org>
77239
77240        Fix typo in colorSuggestionPicker.js
77241        https://bugs.webkit.org/show_bug.cgi?id=92936
77242
77243        Reviewed by Kent Tamura.
77244
77245        Fixes typo.
77246
77247        Test: platform/chromium/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance.html
77248
77249        * Resources/colorSuggestionPicker.js:
77250        (getScrollbarWidth):
77251
772522012-08-01  Shinya Kawanaka  <shinyak@chromium.org>
77253
77254        The elements in Shadow DOM of input should not be modifiable.
77255        https://bugs.webkit.org/show_bug.cgi?id=92200
77256
77257        Reviewed by Kent Tamura.
77258
77259        Since we don't have "-webkit-user-modify: read-only !important;" for the elements in Shadow DOM of
77260        input element, user can change them and it causes a crash.
77261
77262        We should have "-webkit-user-modify: read-only !important;" for those elements.
77263
77264        Test: fast/forms/input-user-modify.html
77265
77266        * css/html.css:
77267        (input::-webkit-textfield-decoration-container):
77268        (input[type="search"]::-webkit-search-cancel-button):
77269        (input[type="search"]::-webkit-search-decoration):
77270        (input[type="search"]::-webkit-search-results-decoration):
77271        (input[type="search"]::-webkit-search-results-button):
77272        (input::-webkit-inner-spin-button):
77273        (input::-webkit-input-speech-button):
77274        (input::-webkit-input-placeholder, isindex::-webkit-input-placeholder):
77275        (input[type="file"]::-webkit-file-upload-button):
77276        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
77277        (input[type="range"]::-webkit-slider-runnable-track):
77278        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
77279        (input[type="color"]::-webkit-color-swatch-wrapper):
77280        (input[type="color"]::-webkit-color-swatch):
77281        (input::-webkit-calendar-picker-indicator):
77282
772832012-08-01  Peter Wang  <peter.wang@torchmobile.com.cn>
77284
77285        Web Inspector: [JSC] implement setting breakpoints by line:column
77286        https://bugs.webkit.org/show_bug.cgi?id=53003
77287
77288        Reviewed by Geoffrey Garen.
77289
77290        As JSC is enabled to provide column info of statement, ScriptDebugServer can use it to
77291        support "Pretty Print" debug mode.
77292
77293        No new test case for this patch.
77294
77295        * bindings/js/ScriptDebugServer.cpp:
77296        (WebCore::ScriptDebugServer::setBreakpoint):
77297        (WebCore::ScriptDebugServer::removeBreakpoint):
77298        (WebCore):
77299        (WebCore::ScriptDebugServer::updateCurrentStatementPosition):
77300        (WebCore::ScriptDebugServer::hasBreakpoint):
77301        (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
77302        (WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded):
77303        (WebCore::ScriptDebugServer::callEvent):
77304        (WebCore::ScriptDebugServer::atStatement):
77305        (WebCore::ScriptDebugServer::returnEvent):
77306        (WebCore::ScriptDebugServer::exception):
77307        (WebCore::ScriptDebugServer::willExecuteProgram):
77308        (WebCore::ScriptDebugServer::didExecuteProgram):
77309        (WebCore::ScriptDebugServer::didReachBreakpoint):
77310        * bindings/js/ScriptDebugServer.h:
77311        (ScriptDebugServer):
77312
773132012-08-01  Xingnan Wang  <xingnan.wang@intel.com>
77314
77315        IndexedDB: ObjectStoreMetaDataKey::m_metaDataType should use byte type
77316        https://bugs.webkit.org/show_bug.cgi?id=92725
77317
77318        Reviewed by Kentaro Hara.
77319
77320        No new tests - Low level functions covered by existing layout tests and also covered by Chromium
77321        webkit_unit_tests IDBLevelIDBCodingTest.*.
77322
77323        * Modules/indexeddb/IDBLevelDBCoding.cpp:
77324        (IDBLevelDBCoding):
77325        (WebCore::IDBLevelDBCoding::decodeByte):
77326        (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::decode):
77327        (WebCore::IDBLevelDBCoding::DatabaseNameKey::decode):
77328        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::decode):
77329        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
77330        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
77331        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::decode):
77332        (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::decode):
77333        (WebCore::IDBLevelDBCoding::IndexFreeListKey::decode):
77334        (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::decode):
77335        (WebCore::IDBLevelDBCoding::IndexNamesKey::decode):
77336        * Modules/indexeddb/IDBLevelDBCoding.h:
77337        (IDBLevelDBCoding):
77338
773392012-08-01  James Robinson  <jamesr@chromium.org>
77340
77341        [chromium] Use new-style tracing macros with explicit category
77342        https://bugs.webkit.org/show_bug.cgi?id=92928
77343
77344        Reviewed by Adam Barth.
77345
77346        The chromium tracing system supports using a string identifier for trace categories that can be used to filter
77347        events. This switches over to setting an explicit category for all traces and removes the old-style
77348        TRACE_EVENT() macro.
77349
77350        * bindings/v8/ScheduledAction.cpp:
77351        (WebCore::ScheduledAction::execute):
77352        * platform/ScrollAnimatorNone.cpp:
77353        (WebCore::ScrollAnimatorNone::scroll):
77354        (WebCore::ScrollAnimatorNone::animationTimerFired):
77355        * platform/chromium/TraceEvent.h:
77356        * platform/graphics/chromium/ProgramBinding.cpp:
77357        (WebCore::ProgramBindingBase::init):
77358        * platform/graphics/skia/ImageSkia.cpp:
77359        (WebCore::drawResampledBitmap):
77360        (WebCore::paintSkBitmap):
77361        (WebCore::Image::drawPattern):
77362        * platform/graphics/skia/NativeImageSkia.cpp:
77363        (WebCore::NativeImageSkia::resizedBitmap):
77364        * platform/graphics/skia/PlatformContextSkia.cpp:
77365        (WebCore::PlatformContextSkia::bitmap):
77366        * platform/image-decoders/bmp/BMPImageDecoder.cpp:
77367        (WebCore::BMPImageDecoder::decode):
77368        * platform/image-decoders/gif/GIFImageDecoder.cpp:
77369        (WebCore::GIFImageDecoder::decode):
77370        * platform/image-decoders/ico/ICOImageDecoder.cpp:
77371        (WebCore::ICOImageDecoder::decode):
77372        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
77373        (WebCore::JPEGImageDecoder::decode):
77374        * platform/image-decoders/png/PNGImageDecoder.cpp:
77375        (WebCore::PNGImageDecoder::decode):
77376        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
77377        (WebCore::WEBPImageDecoder::decode):
77378
773792012-08-01  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
77380
77381        [EFL] Crash at WebCore::toRenderSlider
77382        https://bugs.webkit.org/show_bug.cgi?id=92893
77383
77384        Reviewed by Hajime Morita.
77385
77386        Added a type check before casting a render object to RenderSlider as 
77387        an arbitrary element can have for example webkit-appearance: slider-horizontal.
77388
77389        No new tests. Existing test fast/forms/range/slider-appearance-crash.html covers the case.
77390
77391        * platform/efl/RenderThemeEfl.cpp:
77392        (WebCore::RenderThemeEfl::paintThemePart):
77393
773942012-08-01  Koji Ishii  <kojiishi@gmail.com>
77395
77396        Cache support for OpenTypeVerticalData
77397        https://bugs.webkit.org/show_bug.cgi?id=81332
77398
77399        Reviewed by Tony Chang.
77400
77401        This patch adds FontCache to cache OpenTypeVerticalData class
77402        instances that was introduced in bug 81326.
77403
77404        We need one instance of the class per OpenType font file, and we don't
77405        have a class to hold such instances today.
77406
77407        ENABLE_OPENTYPE_VERTICAL isn't enabled for any platforms yet, so this
77408        patch isn't on any code path. Apple Windows port (bug 48459) is going
77409        to use this code, and probably Chromium (51450, 69282) as well.
77410
77411        "FIXME" comment in SimpleFontData.h will be implemented in 48459.
77412
77413        No new tests are required. No behavior changes.
77414
77415        * platform/graphics/FontCache.cpp:
77416        (WebCore::FontCache::getCachedFontPlatformData): Ignore leading "@" on Windows to disable Windows feature for vertical flow.
77417        (WebCore):
77418        (WebCore::FontCache::getVerticalData): Get cached OpenTypeVerticalData from FontPlatformData, or crete one.
77419        (WebCore::FontCache::purgeInactiveFontData): Purge inactive OpenTypeVerticalData.
77420        * platform/graphics/FontCache.h:
77421        (WebCore):
77422        * platform/graphics/SimpleFontData.h:
77423        (SimpleFontData):
77424        (WebCore::SimpleFontData::verticalData): A dummy implementation for purgeInactiveFontData() to work.
77425        * platform/graphics/opentype/OpenTypeVerticalData.h: Added m_inFontCache for mark & sweep.
77426        (OpenTypeVerticalData):
77427
774282012-08-01  James Robinson  <jamesr@chromium.org>
77429
77430        [chromium] Move compositor HUD font atlas initialization code out of compositor core
77431        https://bugs.webkit.org/show_bug.cgi?id=92924
77432
77433        Reviewed by Adrienne Walker.
77434
77435        This moves the HUD font atlas initialization code out of the compositor implementation to cut out Font-related
77436        dependencies. The new flow is that an embedder can pass a font atlas to the CCLayerTreeHost, after which the
77437        atlas is provided the HUD layer (if any) on the next commit. The HUD layer renders text using the font atlas if
77438        it has any if the settings require text.
77439
77440        HUD tested manually, we don't have automated tests for this debugging-only feature.
77441
77442        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp:
77443        (WebCore):
77444        (WebCore::CompositorHUDFontAtlas::generateFontAtlas):
77445        * platform/graphics/chromium/CompositorHUDFontAtlas.h:
77446        (CompositorHUDFontAtlas):
77447        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
77448        (WebCore::HeadsUpDisplayLayerChromium::create):
77449        (WebCore::HeadsUpDisplayLayerChromium::HeadsUpDisplayLayerChromium):
77450        (WebCore::HeadsUpDisplayLayerChromium::setFontAtlas):
77451        (WebCore):
77452        (WebCore::HeadsUpDisplayLayerChromium::createCCLayerImpl):
77453        (WebCore::HeadsUpDisplayLayerChromium::pushPropertiesTo):
77454        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h:
77455        (HeadsUpDisplayLayerChromium):
77456        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
77457        (WebCore::CCFontAtlas::CCFontAtlas):
77458        * platform/graphics/chromium/cc/CCFontAtlas.h:
77459        (WebCore):
77460        (WebCore::CCFontAtlas::create):
77461        (CCFontAtlas):
77462        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
77463        (WebCore::CCHeadsUpDisplayLayerImpl::CCHeadsUpDisplayLayerImpl):
77464        (WebCore::CCHeadsUpDisplayLayerImpl::setFontAtlas):
77465        (WebCore):
77466        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
77467        (WebCore::CCHeadsUpDisplayLayerImpl::create):
77468        (CCHeadsUpDisplayLayerImpl):
77469        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
77470        (WebCore::CCLayerTreeHost::setFontAtlas):
77471        (WebCore):
77472        (WebCore::CCLayerTreeHost::willCommit):
77473        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
77474        (WebCore):
77475        (CCLayerTreeHost):
77476
774772012-08-01  Antoine Labour  <piman@chromium.org>
77478
77479        [chromium] factor out the optimization pass in CCRenderSurfaceFilters::apply
77480        https://bugs.webkit.org/show_bug.cgi?id=92453
77481
77482        Reviewed by James Robinson.
77483
77484        This separates the "optimization" pass in CCRenderSurfaceFilters::apply
77485        to resolve a succession of color matrix filters into a single operation.
77486        This allows testing of that code.
77487        This introduces a new generic color matrix WebFilterOperation, which can
77488        also be used on its own.
77489
77490        New test: CCRenderSurfaceFiltersTest.
77491
77492        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
77493        (WebCore::CCRenderSurfaceFilters::optimize):
77494        (WebCore):
77495        (WebCore::CCRenderSurfaceFilters::apply):
77496        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.h:
77497        (CCRenderSurfaceFilters):
77498
774992012-08-01  Jian Li  <jianli@chromium.org>
77500
77501        Add new CSS property "-webkit-widget-region" to expose dashboard region support for other port
77502        https://bugs.webkit.org/show_bug.cgi?id=90298
77503
77504        Reviewed by Adam Barth.
77505
77506        The css property "-webkit-widget-region" is essentially a synonym of
77507        "-webkit-dashboard-region" that allows us to expose dashboard region
77508        support for other port. This patch also adds a new feature define
77509        ENABLE(WIDGET_REGION) such that "-webkit-dashboard-region" is only
77510        provided under ENABLE(DASHBOARD_SUPPORT) as it is now and
77511        "-webkit-widget-region" is only exposed under ENABLE(WIDGET_REGION).
77512
77513        Change almost all the code pieces guarded by ENABLE(DASHBOARD_SUPPORT)
77514        to make them also guarded by ENABLE(WIDGET_REGION), except those
77515        that are specific to Apple/WebKit.
77516
77517        Currently ENABLE(WIDGET_REGION) has been turned on by default for
77518        Mac/WebKit and chromium ports.
77519
77520        Test: fast/css/widget-region-parser.html
77521
77522        * Configurations/FeatureDefines.xcconfig: Add ENABLE_WIDGET_REGION define.
77523        * DerivedSources.make:
77524        * GNUmakefile.am: Add ENABLE_WIDGET_REGION define.
77525        * WebCore.exp.in:
77526        * css/CSSComputedStyleDeclaration.cpp: Handle CSSPropertyWebkitWidgetRegion.
77527        (WebCore):
77528        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
77529        * css/CSSParser.cpp: Parse "-webkit-widget-region".
77530        (WebCore::CSSParser::parseValue):
77531        (WebCore):
77532        (WebCore::CSSParser::parseDashboardRegions):
77533        * css/CSSProperty.cpp: Handle CSSPropertyWebkitWidgetRegion.
77534        (WebCore::CSSProperty::isInheritedProperty):
77535        * css/CSSPrimitiveValue.cpp:
77536        (WebCore):
77537        (WebCore::CSSPrimitiveValue::customCssText):
77538        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
77539        * css/CSSPropertyNames.in: Add "-webkit-widget-region" property.
77540        * css/DashboardRegion.h:
77541        (DashboardRegion):
77542        * css/StyleResolver.cpp: Handle CSSPropertyWebkitWidgetRegion.
77543        * dom/Document.cpp:
77544        (WebCore::Document::Document):
77545        (WebCore):
77546        * dom/Document.h:
77547        (WebCore):
77548        (Document):
77549        * page/Chrome.cpp:
77550        (WebCore):
77551        * page/ChromeClient.h:
77552        (ChromeClient):
77553        * page/FrameView.cpp:
77554        (WebCore::FrameView::layout):
77555        (WebCore):
77556        (WebCore::FrameView::paintContents):
77557        * page/FrameView.h:
77558        (FrameView):
77559        * rendering/RenderInline.cpp:
77560        (WebCore):
77561        * rendering/RenderInline.h:
77562        (RenderInline):
77563        * rendering/RenderLayer.cpp:
77564        (WebCore::RenderLayer::scrollTo):
77565        (WebCore::RenderLayer::setHasHorizontalScrollbar):
77566        (WebCore::RenderLayer::setHasVerticalScrollbar):
77567        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
77568        * rendering/RenderListBox.cpp:
77569        (WebCore::RenderListBox::setHasVerticalScrollbar):
77570        * rendering/RenderObject.cpp:
77571        (WebCore::RenderObject::styleWillChange):
77572        (WebCore):
77573        * rendering/RenderObject.h:
77574        (RenderObject):
77575        * rendering/style/RenderStyle.cpp:
77576        (WebCore::RenderStyle::diff):
77577        (WebCore):
77578        * rendering/style/RenderStyle.h:
77579        * rendering/style/StyleDashboardRegion.h:
77580        * rendering/style/StyleRareNonInheritedData.cpp:
77581        (WebCore::StyleRareNonInheritedData::operator==):
77582        * rendering/style/StyleRareNonInheritedData.h:
77583        (WebCore):
77584        (StyleRareNonInheritedData):
77585
775862012-08-01  Arnaud Renevier  <a.renevier@sisa.samsung.com>
77587
77588        [V8] TypedArray binding performance improvements
77589        https://bugs.webkit.org/show_bug.cgi?id=92557
77590
77591        Reviewed by Kenneth Russell.
77592
77593        Improve TypedArray bindings performance:
77594        - create arrays with createUninitialized when possible. Typed Array
77595        construction is about 10% faster.
77596        - when creating a typed array from a same typed array, memcpy data
77597        from source to target.
77598
77599        In order to detect if argument array is the same type as
77600        implementation array, we pass the javascript wrapper type as a new
77601        type argument to template function constructWebGLArray.
77602
77603        Introduce wrapArrayBufferView which wraps typed array into a v8::Value
77604
77605        No new tests: Performance tests are already handled by
77606        Bindings/typed-array-construct-from-same-type.html and
77607        Bindings/typed-array-construct-from-typed.html
77608
77609        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
77610        (WebCore):
77611        (WebCore::constructWebGLArray):
77612        * bindings/v8/custom/V8Float32ArrayCustom.cpp:
77613        (WebCore::V8Float32Array::constructorCallback):
77614        * bindings/v8/custom/V8Float64ArrayCustom.cpp:
77615        (WebCore::V8Float64Array::constructorCallback):
77616        * bindings/v8/custom/V8Int16ArrayCustom.cpp:
77617        (WebCore::V8Int16Array::constructorCallback):
77618        * bindings/v8/custom/V8Int32ArrayCustom.cpp:
77619        (WebCore::V8Int32Array::constructorCallback):
77620        * bindings/v8/custom/V8Int8ArrayCustom.cpp:
77621        (WebCore::V8Int8Array::constructorCallback):
77622        * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
77623        (WebCore::V8Uint16Array::constructorCallback):
77624        * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
77625        (WebCore::V8Uint32Array::constructorCallback):
77626        * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
77627        (WebCore::V8Uint8Array::constructorCallback):
77628        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
77629        (WebCore::V8Uint8ClampedArray::constructorCallback):
77630
776312012-08-01  Antoine Labour  <piman@chromium.org>
77632
77633        [chromium] Fix lost context handling on hud layer
77634        https://bugs.webkit.org/show_bug.cgi?id=92915
77635
77636        Reviewed by Adrienne Walker.
77637
77638        On lost context we need to release CCScopedTextures, otherwise later on
77639        we will try to re-allocate it using a stale CCResourceProvider.
77640
77641        Test CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext
77642        extended.
77643
77644        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
77645        (WebCore::CCHeadsUpDisplayLayerImpl::didLoseContext):
77646        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
77647
776482012-08-01  Kwang Yul Seo  <skyul@company100.net>
77649
77650        Read tag names and attributes from the saved tokens in HTMLElementStack
77651        https://bugs.webkit.org/show_bug.cgi?id=92830
77652
77653        Reviewed by Adam Barth.
77654
77655        This is a follow-up patch for r123577.
77656        Replaced top()->hasTagName(x) with topStackItem()->hasTagName(x).
77657        Also replaced item->element()->hasTagName(x) with item->hasTagName(x).
77658
77659        No new tests, covered by existing tests.
77660
77661        * html/parser/HTMLElementStack.cpp:
77662        (WebCore::HTMLElementStack::pop):
77663        (WebCore::HTMLElementStack::popUntil):
77664        (WebCore::HTMLElementStack::pushHTMLHtmlElement):
77665        (WebCore::HTMLElementStack::pushHTMLHeadElement):
77666        (WebCore::HTMLElementStack::pushHTMLBodyElement):
77667        (WebCore::HTMLElementStack::push):
77668        (WebCore::HTMLElementStack::insertAbove):
77669        (WebCore::HTMLElementStack::popCommon):
77670
776712012-08-01  Antoine Labour  <piman@chromium.org>
77672
77673        [chromium] remove unused fields from LayerRendererCapabilities
77674        https://bugs.webkit.org/show_bug.cgi?id=92906
77675
77676        Reviewed by James Robinson.
77677
77678        No new tests (just removing dead code).
77679
77680        * platform/graphics/chromium/LayerRendererChromium.cpp:
77681        (WebCore::LayerRendererChromium::initialize):
77682        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
77683        (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
77684        (LayerRendererCapabilities):
77685
776862012-08-01  James Robinson  <jamesr@chromium.org>
77687
77688        [chromium] Move compositor HUD font atlas generation out of compositor core
77689        https://bugs.webkit.org/show_bug.cgi?id=92901
77690
77691        Reviewed by Adrienne Walker.
77692
77693        This moves the font atlas generation out of CCFontAtlas into a separate helper class and ports the CCFontAtlas
77694        text drawing code over to use skia directly.
77695
77696        * WebCore.gypi:
77697        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Added.
77698        (WebCore):
77699        (WebCore::wrapPositionIfNeeded):
77700        (WebCore::CompositorHUDFontAtlas::generateFontAtlas):
77701        * platform/graphics/chromium/CompositorHUDFontAtlas.h: Added.
77702        (WebCore):
77703        (CompositorHUDFontAtlas):
77704        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
77705        (WebCore::CCFontAtlas::CCFontAtlas):
77706        (WebCore::CCFontAtlas::~CCFontAtlas):
77707        (WebCore::CCFontAtlas::initialize):
77708        (WebCore::CCFontAtlas::drawText):
77709        (WebCore::CCFontAtlas::drawOneLineOfTextInternal):
77710        (WebCore::CCFontAtlas::drawDebugAtlas):
77711        * platform/graphics/chromium/cc/CCFontAtlas.h:
77712        (WebCore):
77713        (CCFontAtlas):
77714        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
77715
777162012-08-01  Peter Beverloo  <peter@chromium.org>
77717
77718        [Text Autosizing] Provide an API for influencing the font scale factor
77719        https://bugs.webkit.org/show_bug.cgi?id=92882
77720
77721        Reviewed by Adam Barth.
77722
77723        Add the font scale factor to settings, and provide an API in
77724        window.internal.settings to change it from layout tests.
77725
77726        The font scale factor applied to Text Autosizing influences the sizing
77727        of text, and will influence the scaling of boosted blocks once the
77728        implementation progresses. For Android, it will be set to the font size
77729        chosen in the user's system-wide preferences.
77730
77731        Test: fast/text-autosizing/font-scale-factor.html
77732
77733        * page/Settings.cpp:
77734        (WebCore::Settings::Settings):
77735        (WebCore):
77736        (WebCore::Settings::setTextAutosizingFontScaleFactor):
77737        * page/Settings.h:
77738        (Settings):
77739        (WebCore::Settings::textAutosizingFontScaleFactor):
77740        * rendering/TextAutosizer.cpp:
77741        (WebCore::TextAutosizer::processBlock):
77742        * testing/InternalSettings.cpp:
77743        (WebCore::InternalSettings::Backup::Backup):
77744        (WebCore::InternalSettings::Backup::restoreTo):
77745        (WebCore::InternalSettings::setTextAutosizingFontScaleFactor):
77746        (WebCore):
77747        * testing/InternalSettings.h:
77748        (Backup):
77749        (InternalSettings):
77750        * testing/InternalSettings.idl:
77751
777522012-08-01  Mike West  <mkwst@chromium.org>
77753
77754        CSP should correctly block plugin resources rendered in PluginDocuments.
77755        https://bugs.webkit.org/show_bug.cgi?id=92675
77756
77757        Reviewed by Adam Barth.
77758
77759        In certain cases, plugins aren't loaded directly, but are stuffed into a
77760        newly-created PluginDocument before rendering. While we were already
77761        correctly populating information that allowed us to make decisions about
77762        that document's security origin, and already dealing with sandbox
77763        status by creating a 'SinkDocument' that ignored plugin data, we weren't
77764        correctly inheriting the parent frame's Content Security Policy. This
77765        patch ensures that PluginDocuments correctly inherit their parent's
77766        Content Security Policy, meaning that the plugin is blocked or allowed
77767        according to the policy of the protected resource in which the
77768        PluginDocument is embedded.
77769
77770        Tests: http/tests/security/contentSecurityPolicy/object-src-url-allowed.html
77771               http/tests/security/contentSecurityPolicy/object-src-url-blocked.html
77772
77773        * dom/Document.cpp:
77774        (WebCore::Document::initContentSecurityPolicy):
77775            Populate a created PluginDocument with its frame's parent's Content
77776            Security Policy.
77777
777782012-08-01  Florin Malita  <fmalita@chromium.org>
77779
77780        SVG animation not working for elements inserted after parsing is finished
77781        https://bugs.webkit.org/show_bug.cgi?id=92025
77782
77783        Reviewed by Nikolas Zimmermann.
77784
77785        Time containers for SVG elements inserted after document parsing is finished need to be
77786        initialized on insertion (since they've missed the Document::implicitClose() initialization
77787        point).
77788
77789        Test: svg/animations/deferred-insertion.html
77790
77791        * svg/SVGSVGElement.cpp:
77792        (WebCore::SVGSVGElement::insertedInto):
77793
777942012-08-01  Vincent Scheib  <scheib@chromium.org>
77795
77796        Block pointer lock for sandboxed iframes.
77797        https://bugs.webkit.org/show_bug.cgi?id=92796
77798
77799        Reviewed by Adam Barth.
77800
77801        Sandboxed iframe documents should be blocked from using the
77802        pointer lock API until there is specification agreement
77803        on what attribute to use to allow the feature. After
77804        specification this restriction can be relaxed, but not
77805        restricting it now would require breaking applications
77806        later.
77807
77808        Test: http/tests/pointer-lock/iframe-sandboxed.html
77809
77810        * dom/SecurityContext.h:
77811        * page/PointerLockController.cpp:
77812        (WebCore::PointerLockController::requestPointerLock):
77813
778142012-08-01  Patrick Gansterer  <paroga@webkit.org>
77815
77816        Replace WTF::getCurrentLocalTime() with GregorianDateTime::setToCurrentLocalTime()
77817        https://bugs.webkit.org/show_bug.cgi?id=92286
77818
77819        Reviewed by Geoffrey Garen.
77820
77821        Add a method to GregorianDateTime to set its values to the current locale time.
77822        Replacing all occurrences of getCurrentLocalTime with the new function allows
77823        us to remove getCurrentLocalTime in a next step.
77824
77825        * html/FTPDirectoryDocument.cpp:
77826        (WebCore::processFileDateString):
77827        * loader/archive/mhtml/MHTMLArchive.cpp:
77828        (WebCore::MHTMLArchive::generateMHTMLData):
77829
778302012-08-01  Ojan Vafai  <ojan@chromium.org>
77831
77832        Remove code duplication in determining if display is inline or replaced
77833        https://bugs.webkit.org/show_bug.cgi?id=92880
77834
77835        Reviewed by Julien Chaffraix.
77836
77837        Deduplicate lists of display types by using private helpers.
77838
77839        No new tests. No change in behavior.
77840
77841        * rendering/style/RenderStyle.h:
77842
778432012-08-01  Tommy Widenflycht  <tommyw@google.com>
77844
77845        MediaStream API: Add ExtraData capability to MediaStreamSource
77846        https://bugs.webkit.org/show_bug.cgi?id=92860
77847
77848        Reviewed by Adam Barth.
77849
77850        The Chromium port needs to store some related data in MediaStreamSource objects.
77851
77852        Not testable from a LayoutTest.
77853
77854        * platform/chromium/support/WebMediaStreamSource.cpp:
77855        (ExtraDataContainer):
77856        (WebKit::ExtraDataContainer::ExtraDataContainer):
77857        (WebKit::ExtraDataContainer::extraData):
77858        (WebKit):
77859        (WebKit::WebMediaStreamSource::extraData):
77860        (WebKit::WebMediaStreamSource::setExtraData):
77861        * platform/mediastream/MediaStreamSource.h:
77862        (ExtraData):
77863        (WebCore::MediaStreamSource::ExtraData::~ExtraData):
77864        (MediaStreamSource):
77865        (WebCore::MediaStreamSource::extraData):
77866        (WebCore::MediaStreamSource::setExtraData):
77867
778682012-08-01  Joshua Bell  <jsbell@chromium.org>
77869
77870        IndexedDB: IDBCursor.continue(key) does not throw for key "behind" cursor
77871        https://bugs.webkit.org/show_bug.cgi?id=92562
77872
77873        Reviewed by Ojan Vafai.
77874
77875        Per spec, IDBCursor.continue(key) should throw for forward cursors
77876        if key <= current key, and for reverse cursors if key >= current key.
77877        Code was present on the back end but the error code was ignored, possibly
77878        broken in a recent refactor, and there were no tests for this case.
77879
77880        Test: storage/indexeddb/cursor-continue-dir.html
77881
77882        * Modules/indexeddb/IDBCursor.cpp:
77883        (WebCore::IDBCursor::advance): Handle async transaction termination.
77884        (WebCore::IDBCursor::continueFunction): Move checks here from backend.
77885        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
77886        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl): Don't need direction param.
77887        (WebCore::IDBCursorBackendImpl::continueFunction): Remove checks.
77888        * Modules/indexeddb/IDBCursorBackendImpl.h: Only IDBBackingStore::cursor needs direction now.
77889        (WebCore::IDBCursorBackendImpl::create):
77890        (IDBCursorBackendImpl):
77891        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
77892        (WebCore::IDBIndexBackendImpl::openCursorInternal): Drop unused param.
77893        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
77894        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): Ditto.
77895
778962012-08-01  Rick Byers  <rbyers@chromium.org>
77897
77898        Don't request a clickCount of 1 on mouseMove event generated by tap gestures
77899        https://bugs.webkit.org/show_bug.cgi?id=92779
77900
77901        Reviewed by Adam Barth.
77902
77903        mousemove events don't have a click count, so we shouldn't be passing 1
77904        here.  Note this makes no real difference in practice since the value is
77905        ignored - fixed strictly for pedantics.
77906        
77907        Test: fast/events/touch/gesture/gesture-click
77908
77909        * page/EventHandler.cpp:
77910        (WebCore::EventHandler::handleGestureTap):
77911
779122012-08-01  Kihong Kwon  <kihong.kwon@samsung.com>
77913
77914        Dropping webkit prefix from Vibration API
77915        https://bugs.webkit.org/show_bug.cgi?id=92840
77916
77917        Reviewed by Adam Barth.
77918
77919        Remove webkit prefix from navigator.webkitVibrate().
77920        - Vibration API have been entered CR already.
77921        - Firefox already implements Vibration API.
77922
77923        No new tests. Covered by fast/dom/navigator-vibration.html
77924
77925        * Modules/vibration/NavigatorVibration.cpp:
77926        (WebCore::NavigatorVibration::vibrate):
77927        * Modules/vibration/NavigatorVibration.h:
77928        (NavigatorVibration):
77929        * Modules/vibration/NavigatorVibration.idl:
77930
779312012-08-01  Kwang Yul Seo  <skyul@company100.net>
77932
77933        Read tag names and attributes from the saved tokens in HTMLFormattingElementList::closestElementInScopeWithName(const AtomicString&)
77934        https://bugs.webkit.org/show_bug.cgi?id=92841
77935
77936        Reviewed by Adam Barth.
77937
77938        This is a follow-up patch for r123577.
77939        Replaced entry.element()->hasLocalName(targetName) with entry.stackItem()->hasLocalName(targetName).
77940
77941        No new tests, covered by existing tests.
77942
77943        * html/parser/HTMLFormattingElementList.cpp:
77944        (WebCore::HTMLFormattingElementList::closestElementInScopeWithName):
77945
779462012-08-01  Kwang Yul Seo  <skyul@company100.net>
77947
77948        HTMLTreeBuilder passes a wrong token when pushing the head element
77949        https://bugs.webkit.org/show_bug.cgi?id=92838
77950
77951        Reviewed by Adam Barth.
77952
77953        When the tree builder pushes the head element in the "after head" insertion mode,
77954        it creates a HTMLStackItem from a wrong token.
77955
77956        Added HTMLConstructionSite::headStackItem() to retrieve the stack item for the head
77957        element. Modified the tree builder to pass the correct stack item when pushing the head
77958        element in the "after head" insertion mode.
77959
77960        No new tests, covered by existing tests.
77961
77962        * html/parser/HTMLConstructionSite.cpp:
77963        (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
77964        * html/parser/HTMLConstructionSite.h:
77965        (WebCore::HTMLConstructionSite::head):
77966        (WebCore::HTMLConstructionSite::headStackItem):
77967        (HTMLConstructionSite):
77968        * html/parser/HTMLTreeBuilder.cpp:
77969        (WebCore::HTMLTreeBuilder::processStartTag):
77970
779712012-08-01  Andrei Bucur  <abucur@adobe.com>
77972
77973        [CSS Regions] The regionLayoutUpdate event should be dispatched on the NamedFlow object
77974        https://bugs.webkit.org/show_bug.cgi?id=88778
77975
77976        Reviewed by Adam Barth.
77977
77978        Spec: http://www.w3.org/TR/css3-regions/#region-flow-layout-events
77979
77980        This patch implements the regionLayoutUpdate event per May 3rd CSS Regions spec recommendation.
77981        Before this patch the event was dispatched individually on each region whenever its overflow state changed. The trigger conditions are preserved with the following additions:
77982        - the event is dispatched when the last region is removed
77983        - the event is not dispatched when the named flow switches to the NULL state
77984        Also, the NamedFlow objects are not deleted if they switch to the NULL state and have listeners attached. In that scenario the JS wrapper will not release the reference
77985        until the parent Document is destroyed.
77986
77987        Tests: The old tests have been modified to use the event on the NamedFlow object rather the one on the Region. New tests have been added to verify the
77988        correct behavior in the special states of the NamedFlow (no region chain, NULL state).
77989
77990        * dom/Document.cpp:
77991        (WebCore::Document::addListenerTypeIfNeeded): Listeners are not added on Nodes any more so the regionLayoutUpdate type was removed from the list.
77992        * dom/Document.h:
77993        * dom/EventTarget.h:
77994        (WebCore):
77995        * dom/EventTargetFactory.in:
77996        * dom/Node.cpp:
77997        * dom/Node.h:
77998        (Node):
77999        * dom/WebKitNamedFlow.cpp:
78000        (WebCore::WebKitNamedFlow::eventTargetData):
78001        (WebCore):
78002        (WebCore::WebKitNamedFlow::ensureEventTargetData):
78003        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): The 3rd May WD says the event is bubbling. However this doesn't make sense as this object doesn't belong to the DOM tree. This was fixed in the ED.
78004        (WebCore::WebKitNamedFlow::interfaceName):
78005        (WebCore::WebKitNamedFlow::scriptExecutionContext):
78006        (WebCore::WebKitNamedFlow::base): Getter for the owner Document used by the wrapper to determine if the object is reachable.
78007        * dom/WebKitNamedFlow.h:
78008        (WebCore):
78009        (WebKitNamedFlow):
78010        (WebCore::WebKitNamedFlow::refEventTarget):
78011        (WebCore::WebKitNamedFlow::derefEventTarget):
78012        * dom/WebKitNamedFlow.idl:
78013        * rendering/RenderFlowThread.cpp:
78014        (WebCore::RenderFlowThread::RenderFlowThread):
78015        (WebCore::RenderFlowThread::layout): The event dispatching is now handled by the implementation of RenderFlowThread.
78016        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
78017        * rendering/RenderFlowThread.h:
78018        * rendering/RenderNamedFlowThread.cpp:
78019        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
78020        (WebCore::RenderNamedFlowThread::removeRegionFromThread): The layout doesn't detect changes caused by removing the last region. This case is handled separately.
78021        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
78022        (WebCore):
78023        (WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired):
78024        * rendering/RenderNamedFlowThread.h:
78025        (RenderNamedFlowThread):
78026        * rendering/RenderRegion.cpp:
78027        (WebCore::RenderRegion::RenderRegion):
78028        * rendering/RenderRegion.h:
78029        (RenderRegion):
78030
780312012-07-31  Robert Hogan  <robert@webkit.org>
78032
78033        CSS 2.1 failure: margin-collapse-012 fails
78034        https://bugs.webkit.org/show_bug.cgi?id=80219
78035
78036        Reviewed by Eric Seidel.
78037
78038        Tests: css2.1/20110323/margin-collapse-012.htm
78039               fast/css/margin-collapse-abspos-negmargin.htm
78040
78041        I also ran this against the full margin-collapse-* CSS 2.1 suite without regressions.
78042
78043        Per http://www.w3.org/TR/CSS21/box.html#collapsing-margins don't collapse the margins of 
78044        positioned blocks. Instead, just use the margin of the sibling/container to offset the 
78045        positioned block's logical top - its own margin gets added in later at 
78046        RenderBox::computePositionedLogicalHeightUsing().
78047
78048        * rendering/RenderBlock.cpp:
78049        (WebCore::RenderBlock::adjustPositionedBlock):
78050
780512012-08-01  Sheriff Bot  <webkit.review.bot@gmail.com>
78052
78053        Unreviewed, rolling out r124334.
78054        http://trac.webkit.org/changeset/124334
78055        https://bugs.webkit.org/show_bug.cgi?id=92879
78056
78057        Broke MemoryInstrumentationTest.sizeOf from webkit_unit_tests
78058        on Chromium canaries (Requested by apavlov1 on #webkit).
78059
78060        * bindings/v8/ScriptProfiler.cpp:
78061        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
78062        * dom/MemoryInstrumentation.h:
78063        (WebCore::MemoryInstrumentation::addInstrumentedObject):
78064        (MemoryInstrumentation):
78065        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
78066        * inspector/InspectorMemoryAgent.cpp:
78067        (WebCore):
78068        * inspector/MemoryInstrumentationImpl.h:
78069        (MemoryInstrumentationImpl):
78070        (WebCore::MemoryInstrumentationImpl::totalTypeSize):
78071
780722012-08-01  Han Shen  <shenhan@google.com>
78073
78074        Fix gcc 4.7 compile warnings.
78075        https://bugs.webkit.org/show_bug.cgi?id=92797
78076
78077        Reviewed by Kentaro Hara.
78078
78079        GCC 4.7 gives (more strict) warnings on uninitialized variables,
78080        fixed by providing initilization values.
78081
78082        Tested by gcc 4.7 building. No change in behavior.
78083
78084        * platform/graphics/filters/arm/NEONHelpers.h:
78085        (WebCore::loadRGBA8AsFloat): Add initilizaton value for local variable.
78086
780872012-08-01  Ryosuke Niwa  <rniwa@webkit.org>
78088
78089        REGRESSION(r122498): Assertion failure: m_nodeListCounts is sometimes not zero in the Document destructor
78090        https://bugs.webkit.org/show_bug.cgi?id=92742
78091
78092        Reviewed by Andreas Kling.
78093
78094        The bug was caused by adoptTreeScope's not always calling unregisterNodeListCache and registerNodeListCache
78095        on node lists that use m_atomicNameCaches and m_nameCaches.
78096
78097        Tests: fast/dom/NodeList/nodelist-moved-to-fragment-2.html
78098               fast/dom/NodeList/nodelist-moved-to-fragment.html
78099
78100        * dom/NodeRareData.h:
78101        (WebCore::NodeListsNodeData::adoptTreeScope):
78102
781032012-08-01  Vsevolod Vlasov  <vsevik@chromium.org>
78104
78105        Web Inspector: Crashes in NetworkResourcesData.
78106        https://bugs.webkit.org/show_bug.cgi?id=92874
78107
78108        Reviewed by Yury Semikhatsky.
78109
78110        * inspector/NetworkResourcesData.cpp:
78111        (WebCore::contentSizeInBytes):
78112        (WebCore):
78113        (WebCore::NetworkResourcesData::ResourceData::removeContent):
78114        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
78115        (WebCore::NetworkResourcesData::setResourceContent):
78116        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
78117
781182012-08-01  Ilya Tikhonovsky  <loislo@chromium.org>
78119
78120        Web Inspector: test native memory instrumentation code with help of unittests
78121        https://bugs.webkit.org/show_bug.cgi?id=92743
78122
78123        Reviewed by Yury Semikhatsky.
78124
78125        Test a part of existing Native Memory Instrumentation code with help of unit tests.
78126        6 tests were added and two bugs were fixed.
78127        a drive-by improvement: the method MemoryInstrumentation::addInstrumentedObject
78128        was marked as private and addRootObject was introduced instead of it.
78129        The new function also calls processDeferedPointers.
78130
78131        * bindings/v8/ScriptProfiler.cpp:
78132        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
78133        * dom/MemoryInstrumentation.h:
78134        (WebCore::MemoryInstrumentation::addRootObject):
78135        (MemoryInstrumentation):
78136        (WebCore::MemoryInstrumentation::addInstrumentedObject):
78137        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
78138        (WebCore):
78139        (WebCore::MemoryInstrumentation::addObjectImpl):
78140        * inspector/InspectorMemoryAgent.cpp:
78141        (WebCore):
78142        * inspector/MemoryInstrumentationImpl.h:
78143        (MemoryInstrumentationImpl):
78144
781452012-08-01  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
78146
78147        [GTK] Memory leak found while running webaudio tests
78148        https://bugs.webkit.org/show_bug.cgi?id=92861
78149
78150        Reviewed by Philippe Normand.
78151
78152        Fix a memory leak in decodeAudioForBusCreation by adopting
78153        an allocation of GInputStream.
78154
78155        No new tests. No change in behavior.
78156
78157        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
78158        (WebCore::AudioFileReader::decodeAudioForBusCreation):
78159
781602012-08-01  Alexei Filippov  <alexeif@chromium.org>
78161
78162        Web Inspector: count DOM storage cache memory for native snapshot
78163        https://bugs.webkit.org/show_bug.cgi?id=91617
78164
78165        Reviewed by Yury Semikhatsky.
78166
78167        Add memory size used for DOM storage cache reporting interface.
78168        Report it to the native memory snapshot instrumentation framework.
78169
78170        * inspector/InspectorController.cpp:
78171        (WebCore::InspectorController::InspectorController):
78172        * inspector/InspectorDOMStorageAgent.cpp:
78173        (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
78174        (WebCore):
78175        * inspector/InspectorDOMStorageAgent.h:
78176        (InspectorDOMStorageAgent):
78177        * inspector/InspectorMemoryAgent.cpp:
78178        (MemoryBlockName):
78179        (WebCore):
78180        (WebCore::dumpDOMStorageCache):
78181        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
78182        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
78183        * inspector/InspectorMemoryAgent.h:
78184        (WebCore):
78185        (WebCore::InspectorMemoryAgent::create):
78186        (InspectorMemoryAgent):
78187        * inspector/front-end/NativeMemorySnapshotView.js:
78188        (WebInspector.MemoryBlockViewProperties._initialize):
78189        * storage/StorageArea.h:
78190        (StorageArea):
78191        * storage/StorageAreaImpl.cpp:
78192        (WebCore::StorageAreaImpl::memoryBytesUsedByCache):
78193        (WebCore):
78194        * storage/StorageAreaImpl.h:
78195        (StorageAreaImpl):
78196
781972012-07-31  Yury Semikhatsky  <yurys@chromium.org>
78198
78199        Web Inspector: add CSSStyleSheet memory instrumentation
78200        https://bugs.webkit.org/show_bug.cgi?id=92748
78201
78202        Reviewed by Antti Koivisto.
78203
78204        Added MemoryInstrumentation for CSSStyleSheet, StyleSheetContents, StyleRule,
78205        CSSSelectorList and StylePropertySet. The coverage is not complete as the
78206        patch was growing too big.
78207
78208        * css/CSSSelectorList.cpp:
78209        (WebCore::CSSSelectorList::CSSSelectorList):
78210        (WebCore::CSSSelectorList::length):
78211        (WebCore):
78212        (WebCore::CSSSelectorList::reportMemoryUsage):
78213        * css/CSSSelectorList.h:
78214        (WebCore):
78215        (CSSSelectorList):
78216        * css/CSSStyleSheet.cpp:
78217        (WebCore::CSSStyleSheet::reportMemoryUsage):
78218        (WebCore):
78219        * css/CSSStyleSheet.h:
78220        (WebCore):
78221        (CSSStyleSheet):
78222        * css/MediaList.cpp:
78223        (WebCore):
78224        (WebCore::MediaQuerySet::reportMemoryUsage):
78225        (WebCore::MediaList::reportMemoryUsage):
78226        * css/MediaList.h:
78227        (WebCore):
78228        (MediaQuerySet):
78229        (MediaList):
78230        * css/MediaQuery.cpp:
78231        (WebCore::MediaQuery::reportMemoryUsage):
78232        (WebCore):
78233        * css/MediaQuery.h:
78234        (WebCore):
78235        (MediaQuery):
78236        * css/MediaQueryExp.cpp:
78237        (WebCore::MediaQueryExp::reportMemoryUsage):
78238        (WebCore):
78239        * css/MediaQueryExp.h:
78240        (WebCore):
78241        (MediaQueryExp):
78242        * css/StylePropertySet.cpp:
78243        (WebCore::StylePropertySet::reportMemoryUsage):
78244        (WebCore):
78245        * css/StylePropertySet.h:
78246        (WebCore):
78247        (StylePropertySet):
78248        * css/StyleRule.cpp:
78249        (WebCore::StyleRuleBase::reportMemoryUsage): We cannot make
78250        reportMemoryUsage virtual as it would add vtable to StyleRuleBase
78251        and its descendants and would blow its memory footprint. This
78252        is why we have a switch over StyleRule type here.
78253        (WebCore):
78254        (WebCore::StyleRule::reportMemoryUsage):
78255        (WebCore::StyleRulePage::reportMemoryUsage):
78256        (WebCore::StyleRuleFontFace::reportMemoryUsage):
78257        (WebCore::StyleRuleBlock::reportMemoryUsage):
78258        (WebCore::StyleRuleMedia::reportMemoryUsage):
78259        (WebCore::StyleRuleRegion::reportMemoryUsage):
78260        * css/StyleRule.h:
78261        (WebCore):
78262        (StyleRuleBase):
78263        (StyleRule):
78264        (StyleRuleFontFace):
78265        (StyleRulePage):
78266        (StyleRuleBlock):
78267        (StyleRuleMedia):
78268        (StyleRuleRegion):
78269        * css/StyleSheetContents.cpp:
78270        (WebCore::StyleSheetContents::reportMemoryUsage):
78271        (WebCore):
78272        * css/StyleSheetContents.h:
78273        (WebCore):
78274        (StyleSheetContents):
78275        * dom/Document.cpp:
78276        (WebCore::Document::reportMemoryUsage):
78277        * dom/MemoryInstrumentation.h:
78278        (WebCore::MemoryClassInfo::addInstrumentedVectorPtr):
78279        (WebCore::MemoryClassInfo::addVectorPtr):
78280
782812012-08-01  Keishi Hattori  <keishi@webkit.org>
78282
78283        Attempt to fix flakiness of color-suggestion-picker-appearance.html
78284        https://bugs.webkit.org/show_bug.cgi?id=92848
78285
78286        Reviewed by Kent Tamura.
78287
78288        * Resources/colorSuggestionPicker.js:
78289        (ColorPicker.prototype._layout): We put the width and height into
78290        variables so we don't call window.onresize twice.
78291
782922012-08-01  Carlos Garcia Campos  <cgarcia@igalia.com>
78293
78294        Unreviewed. Fix GTK+ build with recent version of GTK+.
78295
78296        Use g_threads_enter/leave instead of the wrapper macros. This
78297        gives a compile warning because they are now deprecated but at
78298        least it builds.
78299
78300        * plugins/gtk/gtk2xtbin.c:
78301        (xt_event_prepare):
78302        (xt_event_check):
78303        (xt_event_dispatch):
78304
783052012-08-01  Alexei Filippov  <alexeif@chromium.org>
78306
78307        Web Inspector: Add native memory used by GlyphCache to the snapshot
78308        https://bugs.webkit.org/show_bug.cgi?id=90615
78309
78310        Reviewed by Yury Semikhatsky.
78311
78312        Adds interface for reporting memory usage of platform specific
78313        components.
78314        Report memory usage of the font cache allocated by skia in chromium.
78315
78316        * inspector/InspectorMemoryAgent.cpp:
78317        (WebCore::addPlatformComponentsInfo):
78318        (WebCore):
78319        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
78320        * inspector/front-end/NativeMemorySnapshotView.js:
78321        (WebInspector.MemoryBlockViewProperties._initialize):
78322        * platform/MemoryUsageSupport.cpp:
78323        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
78324        (WebCore):
78325        * platform/MemoryUsageSupport.h:
78326        (MemoryUsageSupport):
78327        (ComponentInfo):
78328        (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
78329        * platform/chromium/MemoryUsageSupportChromium.cpp:
78330        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
78331        (WebCore):
78332        * platform/qt/MemoryUsageSupportQt.cpp:
78333        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
78334        (WebCore):
78335
783362012-08-01  Yoshifumi Inoue  <yosin@chromium.org>
78337
78338        [CSS] Add selectors for multiple fields time input UI.
78339        https://bugs.webkit.org/show_bug.cgi?id=92834
78340
78341        Reviewed by Kent Tamura.
78342
78343        This patch adds new selectors and "height" property to spin button
78344        for multiple fields time input UI.
78345
78346        RenderTextControlSingleLine::layout() sets height of spin button for
78347        input type "number" and other input types using RenderTextControlSingleLine
78348        as renderer object. However, multiple fields time input UI doesn't use
78349        it and needs to set height of spin button.
78350
78351        No new tests. This patch doesn't change behavior.
78352
78353        * css/html.css:
78354        (input::-webkit-datetime-edit): Added.
78355        (input::-webkit-datetime-edit-ampm-field): Added.
78356        (input::-webkit-datetime-edit-hour-field): Added.
78357        (input::-webkit-datetime-edit-millisecond-field): Added.
78358        (input::-webkit-datetime-edit-minute-field): Added.
78359        (input::-webkit-datetime-edit-minute-field[readonly]): Added. This selector
78360        is used for step>=3600 second and time format contains minute field.
78361        (input::-webkit-datetime-edit-second-field): Added.
78362        (input::-webkit-datetime-edit-second-field[readonly]): Added. This selector
78363        is used for step>=60 second and time format contains second field.
78364        (input::-webkit-inner-spin-button): Add "height" property for using
78365        spin button other than RenderTextControlSingleLine.
78366
783672012-08-01  Kwang Yul Seo  <skyul@company100.net>
78368
78369        Make HTMLConstructionSite::createHTMLElement(AtomicHTMLToken*) private.
78370        https://bugs.webkit.org/show_bug.cgi?id=92846
78371
78372        Reviewed by Eric Seidel.
78373
78374        This method is internal to HTMLConstructionSite.
78375
78376        No functional change.
78377
78378        * html/parser/HTMLConstructionSite.h:
78379        (HTMLConstructionSite):
78380
783812012-08-01  Kinuko Yasuda  <kinuko@chromium.org>
78382
78383        [Filesystem] Assertion on $0.webkitEntries while on the input field.
78384        https://bugs.webkit.org/show_bug.cgi?id=91954
78385
78386        Reviewed by Kent Tamura.
78387
78388        Accessing .webkitEntries should not crash when input type is not for file.
78389
78390        Tests: fast/filesystem/input-access-entries.html
78391
78392        * Modules/filesystem/HTMLInputElementFileSystem.cpp:
78393        (WebCore::HTMLInputElementFileSystem::webkitEntries):
78394
783952012-08-01  Eugene Klyuchnikov  <eustas.big@gmail.com>
78396
78397        Web Inspector: Profiles: cleanup HeapSnapshotReceiver interface
78398        https://bugs.webkit.org/show_bug.cgi?id=92390
78399
78400        Reviewed by Yury Semikhatsky.
78401
78402        Remove callback parameter and return values from methods startLoading
78403        and finishLoading. All implementations of HeapSnapshotReceiver honestly
78404        override interface methods now.
78405
78406        * inspector/front-end/HeapSnapshotLoader.js: Adopted new API.
78407        * inspector/front-end/HeapSnapshotProxy.js: Adopted new API. 
78408        (WebInspector.HeapSnapshotLoaderProxy.prototype.isStarted): Added.
78409        (WebInspector.HeapSnapshotLoaderProxy.prototype.addConsumer): Added.
78410        (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading):
78411        Explicitly finishes loading and build snapshot.
78412        * inspector/front-end/HeapSnapshotView.js:
78413        (WebInspector.HeapSnapshotReceiver.prototype.startLoading):
78414        Removed callback parameter and return value.
78415        (WebInspector.HeapSnapshotReceiver.prototype.finishLoading):
78416        Removed callback parameter.
78417        (WebInspector.HeapSnapshotSaveToFileReceiver): Adopted new API.
78418
784192012-04-07  Ilya Tikhonovsky  <loislo@chromium.org>
78420
78421        Web Inspector: extract MemoryInstrumentationImpl into separate files for future reusing in unit tests
78422        https://bugs.webkit.org/show_bug.cgi?id=92751
78423
78424        Reviewed by Yury Semikhatsky.
78425
78426        * CMakeLists.txt:
78427        * GNUmakefile.list.am:
78428        * Target.pri:
78429        * WebCore.gypi:
78430        * WebCore.vcproj/WebCore.vcproj:
78431        * inspector/InspectorAllInOne.cpp:
78432        * inspector/InspectorMemoryAgent.cpp:
78433        (WebCore):
78434        * inspector/MemoryInstrumentationImpl.cpp: Added.
78435        (WebCore):
78436        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
78437        (WebCore::MemoryInstrumentationImpl::processDeferredInstrumentedPointers):
78438        (WebCore::MemoryInstrumentationImpl::countObjectSize):
78439        (WebCore::MemoryInstrumentationImpl::deferInstrumentedPointer):
78440        (WebCore::MemoryInstrumentationImpl::visited):
78441        (WebCore::MemoryInstrumentationImpl::selfSize):
78442        * inspector/MemoryInstrumentationImpl.h: Added.
78443        (WebCore):
78444        (MemoryInstrumentationImpl):
78445        (WebCore::MemoryInstrumentationImpl::totalTypeSize):
78446
784472012-07-31  MORITA Hajime  <morrita@google.com>
78448
78449        Internals::setAuthorShadowDOMForAnyElementEnabled should be on InternalSettings
78450        https://bugs.webkit.org/show_bug.cgi?id=92823
78451
78452        Reviewed by Kentaro Hara.
78453
78454        This change moves Internals::setAuthorShadowDOMForAnyElementEnabled() to
78455        InternalSettings to support original value recovery.
78456
78457        * testing/InternalSettings.cpp:
78458        (WebCore::InternalSettings::Backup::Backup):
78459        (WebCore::InternalSettings::Backup::restoreTo):
78460        (WebCore::InternalSettings::setAuthorShadowDOMForAnyElementEnabled): Moved from Internals.
78461        (WebCore):
78462        * testing/InternalSettings.h:
78463        (Backup):
78464        (InternalSettings):
78465        * testing/InternalSettings.idl:
78466        * testing/Internals.cpp:
78467        * testing/Internals.h:
78468        (Internals):
78469        * testing/Internals.idl:
78470
784712012-07-31  Vincent Scheib  <scheib@chromium.org>
78472
78473        webkitRequestPointerLock and webkitExitPointerLock limited to the same document of an active Pointer lock.
78474        https://bugs.webkit.org/show_bug.cgi?id=91284
78475
78476        Reviewed by Adrienne Walker.
78477
78478        Previously, cross-talk between documents was possible, e.g. allowing one
78479        document.webkitExitPointerLock to exit the lock from another document.
78480        This change brings Pointer Lock closer to the Fullscreen API behavior,
78481        and stops the pointer lock target from being transferable between
78482        documents.
78483
78484        Test: http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html
78485
78486        * dom/Document.cpp:
78487        (WebCore::Document::webkitExitPointerLock):
78488        * page/PointerLockController.cpp:
78489        (WebCore::PointerLockController::requestPointerLock):
78490
784912012-07-31  Keishi Hattori  <keishi@webkit.org>
78492
78493        ColorInputType::typeMismatchFor is returning the opposite bool
78494        https://bugs.webkit.org/show_bug.cgi?id=92836
78495
78496        Reviewed by Kent Tamura.
78497
78498        No new tests. Covered by color-suggestion-picker-appearance.html.
78499
78500        * html/ColorInputType.cpp:
78501        (WebCore::ColorInputType::typeMismatchFor):
78502
785032012-07-31  Douglas Stockwell  <dstockwell@chromium.org>
78504
78505        -webkit-flex-flow does not work with inherit/initial values
78506        https://bugs.webkit.org/show_bug.cgi?id=92709
78507
78508        Reviewed by Ojan Vafai.
78509
78510        Add a new handler for flex-flow and move flex to StyleBuilder to mirror the standard pattern for handling initial/inherit in shorthands.
78511
78512        Test: css3/flexbox/flex-flow-initial.html
78513
78514        * css/StyleBuilder.cpp:
78515        (WebCore::StyleBuilder::StyleBuilder): Added handlers for flex and flex-flow.
78516        * css/StyleResolver.cpp:
78517        (WebCore::StyleResolver::collectMatchingRulesForList): Removed hand written logic for handling flex.
78518
785192012-07-31  Emil A Eklund  <eae@chromium.org>
78520
78521        Float imprecision causes incorrect wrapping in LineLayout with subpixel layout
78522        https://bugs.webkit.org/show_bug.cgi?id=92778
78523
78524        Reviewed by Eric Seidel.
78525
78526        Due to float imprecision an incorrect wrapping decision is made in
78527        certain cases where the values being compare are close but not exactly
78528        the same. This can happen as the size of blocks is represented in layout
78529        units while line layout uses floats.
78530
78531        Test: fast/sub-pixel/inline-block-should-not-wrap.html
78532
78533        * rendering/RenderBlockLineLayout.cpp:
78534        (WebCore::LineWidth::fitsOnLine):
78535        Use LayoutUnit::epsilon when comparing values as that is the maximum
78536        precision we support.
78537
785382012-07-31  Hayato Ito  <hayato@chromium.org>
78539
78540        Refactor EventDispatcher::dispatchEvent() so that we can call each phase (Caputure, Target and Bubbling) of event dispatching separately.
78541        https://bugs.webkit.org/show_bug.cgi?id=92621
78542
78543        Reviewed by Dimitri Glazkov.
78544
78545        This is one of the required refactorings to support event
78546        propagation for seamless iframes.  I've removed 'goto' statements
78547        from EventDispatcher::dispatchEvent() as a result.
78548
78549        I've verified that all separated functions are successfully
78550        inlined. I could not see any performance regression.  The
78551        benchmark result is:
78552
78553        Before this patch:
78554        % ./Tools/Scripts/run-perf-tests PerformanceTests/DOM/Events.html
78555        Running 1 tests
78556        Running DOM/Events.html (1 of 1)
78557        RESULT DOM: Events= 243.986607143 ms
78558        median= 242.297619048 ms, stdev= 5.74748351315 ms, min= 239.80952381 ms, max= 268.0 ms
78559
78560        After this patch:
78561        % ./Tools/Scripts/run-perf-tests PerformanceTests/DOM/Events.html
78562        Running 1 tests
78563        Running DOM/Events.html (1 of 1)
78564        RESULT DOM: Events= 242.291666667 ms
78565        median= 240.452380952 ms, stdev= 5.8718643632 ms, min= 238.214285714 ms, max= 266.5 ms
78566
78567        No new tests, no behavior change.
78568
78569        * dom/EventDispatcher.cpp:
78570        (WebCore::EventDispatcher::dispatchEvent):
78571        (WebCore::EventDispatcher::dispatchEventPreProcess):
78572        (WebCore):
78573        (WebCore::EventDispatcher::dispatchEventAtCapturing):
78574        (WebCore::EventDispatcher::dispatchEventAtTarget):
78575        (WebCore::EventDispatcher::dispatchEventAtBubbling):
78576        (WebCore::EventDispatcher::dispatchEventPostProcess):
78577        (WebCore::EventDispatcher::topEventContext):
78578        * dom/EventDispatcher.h:
78579        (WebCore):
78580        (EventDispatcher):
78581
785822012-07-31  Yoshifumi Inoue  <yosin@chromium.org>
78583
78584        [Chromium] Enable ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
78585        https://bugs.webkit.org/show_bug.cgi?id=92822
78586
78587        Reviewed by Kent Tamura.
78588
78589        This patch touches header files for compiling files which contains
78590        ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
78591
78592        No new tests. This patch doesn't change behavior.
78593
78594        * platform/text/DateTimeFormat.h:
78595        * platform/text/LocaleICU.h:
78596        * platform/text/LocaleWin.h:
78597        * platform/text/LocalizedDate.h:
78598        * platform/text/LocalizedNumber.h:
78599        * platform/text/mac/LocaleMac.h:
78600
786012012-07-30  Ryosuke Niwa  <rniwa@webkit.org>
78602
78603        REGRESSION(r120979): Node list returned by getElementsByTagNameNS isn't invalidated when children changes
78604        https://bugs.webkit.org/show_bug.cgi?id=92705
78605
78606        Reviewed by Abhishek Arya.
78607
78608        The bug was caused by a typo in NodeListsNodeData::invalidateCaches. We need to invalidate
78609        tag name node lists when child nodes change and not when attributes change.
78610
78611        Test: fast/dom/NodeList/nodelist-namespace-invalidation.html
78612
78613        * dom/Node.cpp:
78614        (WebCore::NodeListsNodeData::invalidateCaches):
78615
786162012-07-31  Tony Chang  <tony@chromium.org>
78617
78618        flexbox should avoid floats
78619        https://bugs.webkit.org/show_bug.cgi?id=92661
78620
78621        Reviewed by Ojan Vafai.
78622
78623        Block types should avoid floats. Deprecated flexbox and grid already avoid floats.
78624
78625        Tests: css3/flexbox/floated-flexbox.html - added a test case.
78626
78627        * rendering/RenderFlexibleBox.h:
78628
786292012-07-31  Tony Chang  <tony@chromium.org>
78630
78631        REGRESSION: flexbox content-size fails to exclude scrollbar
78632        https://bugs.webkit.org/show_bug.cgi?id=92667
78633
78634        Reviewed by Ojan Vafai.
78635
78636        In r123909, we switched to computing the height using computeContentLogicalHeightUsing().
78637        Unfortunately, this includes the scrollbar when we want the content height. Add a helper
78638        method for computing the value needed by flexbox.
78639
78640        Test: css3/flexbox/content-height-with-scrollbars.html
78641
78642        * rendering/RenderFlexibleBox.cpp:
78643        (WebCore::RenderFlexibleBox::mainAxisContentExtent): Use computeLogicalClientHeight
78644        (WebCore::RenderFlexibleBox::computeLogicalClientHeight): Add new method for taking scrollbar into consideration.
78645        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): Use computeLogicalClientHeight
78646        (WebCore::RenderFlexibleBox::lineBreakLength): Use computeLogicalClientHeight
78647        * rendering/RenderFlexibleBox.h:
78648
786492012-07-31  Kwang Yul Seo  <skyul@company100.net>
78650
78651        Remove unused method HTMLElementStack::bottom()
78652        https://bugs.webkit.org/show_bug.cgi?id=92807
78653
78654        Reviewed by Kentaro Hara.
78655
78656        HTMLElementStack::bottom() was replaced with HTMLElementStack::rootNode()
78657        in r80231.
78658
78659        No functional change, so no new tests.
78660
78661        * html/parser/HTMLElementStack.cpp:
78662        * html/parser/HTMLElementStack.h:
78663        (HTMLElementStack):
78664
786652012-07-31  Tony Chang  <tony@chromium.org>
78666
78667        -webkit-order should take an integer, not a number
78668        https://bugs.webkit.org/show_bug.cgi?id=92688
78669
78670        Reviewed by Ojan Vafai.
78671
78672        The spec changed back from floats to integers:
78673        http://lists.w3.org/Archives/Public/www-style/2012Jul/0607.html
78674
78675        Tests: css3/flexbox/css-properties.html: Updated.
78676               css3/flexbox/flex-order.html: Test cases modified.
78677
78678
78679        * css/CSSComputedStyleDeclaration.cpp:
78680        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
78681        * css/CSSParser.cpp:
78682        (WebCore::CSSParser::parseValue):
78683        * css/StyleBuilder.cpp:
78684        (WebCore::StyleBuilder::StyleBuilder):
78685        * rendering/RenderFlexibleBox.cpp:
78686        (WebCore):
78687        (RenderFlexibleBox::OrderHashTraits):
78688        (WebCore::RenderFlexibleBox::OrderHashTraits::emptyValue):
78689        (WebCore::RenderFlexibleBox::OrderHashTraits::constructDeletedValue):
78690        (WebCore::RenderFlexibleBox::OrderHashTraits::isDeletedValue):
78691        (RenderFlexibleBox::OrderIterator):
78692        * rendering/RenderFlexibleBox.h:
78693        * rendering/style/RenderStyle.h:
78694        * rendering/style/StyleRareNonInheritedData.h:
78695        (StyleRareNonInheritedData):
78696
786972012-07-31  James Robinson  <jamesr@chromium.org>
78698
78699        [chromium] Use skia directly in CCHeadsUpDisplayLayerImpl
78700        https://bugs.webkit.org/show_bug.cgi?id=92810
78701
78702        Reviewed by Adrienne Walker.
78703
78704        The chromium compositor HUD doesn't need to use a full GraphicsContext/etc, all it draws are rectangles and a
78705        simple stroked path. This draws the HUD with straight skia calls and removes the now unnecessary PlatformCanvas
78706        wrapper.
78707
78708        * WebCore.gypi:
78709        * platform/graphics/chromium/PlatformCanvas.cpp: Removed.
78710        * platform/graphics/chromium/PlatformCanvas.h: Removed.
78711        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
78712        (WebCore::CCFontAtlas::drawText):
78713        * platform/graphics/chromium/cc/CCFontAtlas.h:
78714        (CCFontAtlas):
78715        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
78716        (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
78717        (WebCore::CCHeadsUpDisplayLayerImpl::drawHudContents):
78718        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounter):
78719        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounterText):
78720        (WebCore::CCHeadsUpDisplayLayerImpl::drawDebugRects):
78721        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
78722        (WebCore):
78723
787242012-07-31  Dean Jackson  <dino@apple.com>
78725
78726        ImageCG doesn't initialize m_decodedPropertiesSize in BitmapImage constructor
78727        https://bugs.webkit.org/show_bug.cgi?id=92418
78728
78729        Reviewed by Dan Bernstein.
78730
78731        Tested by existing content.
78732
78733        * platform/graphics/cg/ImageCG.cpp:
78734        (WebCore::BitmapImage::BitmapImage): initialize m_decodedPropertiesSize to zero.
78735
787362012-07-31  Shawn Singh  <shawnsingh@chromium.org>
78737
78738        [chromium] Hit test points are being clipped by layers that should not clip
78739        https://bugs.webkit.org/show_bug.cgi?id=92786
78740
78741        Reviewed by James Robinson.
78742
78743        On impl-side hit testing for chromium compositor, we are
78744        accidentally checking all ancestor layers for clipping, instead of
78745        only layers that actually clip something. This patch fixes it.
78746
78747        Added new unit test that reproduces the scenario:
78748          CCLayerTreeHostCommonTest.verifyHitTestingForNonClippingIntermediateLayer
78749
78750        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
78751        (WebCore::pointIsClippedBySurfaceOrClipRect):
78752
787532012-07-31  James Robinson  <jamesr@chromium.org>
78754
78755        [chromium] REGRESSION(r123644) Compositor HUD crashes immediately with --show-paint-rects
78756        https://bugs.webkit.org/show_bug.cgi?id=92775
78757
78758        Reviewed by Adrienne Walker.
78759
78760        In r123644, the compositor HUD was turned into a normal layer. When the HUD is supposed to cover the entire
78761        viewport - for instance if the showPlatformLayerTree or showDebugRects settings are true -
78762        HeadsUpDisplayLayerChromium's constructor tries to size itself to its layerTreeHost()'s device viewport size.
78763        Unfortunately, its layerTreeHost pointer is always nil in the constructor since the layer is not yet in the
78764        tree. Additionally, this doesn't handle resize at all.
78765
78766        To fix this, this grabs the device viewport size and settings in a LayerChromium::update() OVERRIDE. Also
78767        changes CCLayerTreeHost::willCommit to only reparent the HUD layer if needed instead of on every frame.
78768
78769        Tested manually, we don't have any layout tests for the debug HUD.
78770
78771        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
78772        (WebCore::HeadsUpDisplayLayerChromium::create):
78773        (WebCore::HeadsUpDisplayLayerChromium::HeadsUpDisplayLayerChromium):
78774        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h:
78775        (HeadsUpDisplayLayerChromium):
78776        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
78777        (WebCore::CCLayerTreeHost::willCommit):
78778
787792012-07-31  Sam Weinig  <sam@webkit.org>
78780
78781        Stop masking 8 bits off of the visited link hash. We need all the bits!
78782        https://bugs.webkit.org/show_bug.cgi?id=92799
78783
78784        Reviewed by Anders Carlsson.
78785
78786        * loader/appcache/ApplicationCacheStorage.cpp:
78787        (WebCore::urlHostHash):
78788        * platform/network/blackberry/CredentialBackingStore.cpp:
78789        (WebCore::hashCredentialInfo):
78790        * plugins/blackberry/PluginPackageBlackBerry.cpp:
78791        (WebCore::PluginPackage::hash):
78792        Update for new function names.
78793
787942012-07-31  Chris Rogers  <crogers@google.com>
78795
78796        Allow AudioDestination to support local/live audio input
78797        https://bugs.webkit.org/show_bug.cgi?id=90318
78798
78799        Reviewed by Kenneth Russell.
78800
78801        * WebCore.gypi:
78802        * WebCore.xcodeproj/project.pbxproj:
78803        * GNUmakefile.list.am:
78804        Add AudioIOCallback.h to make files.
78805
78806        * Modules/webaudio/AudioDestinationNode.h:
78807        * Modules/webaudio/AudioDestinationNode.cpp:
78808        (WebCore::AudioDestinationNode::render):
78809        Change provideInput() method to render() to support optional audio input.
78810
78811        (AudioDestinationNode):
78812        (WebCore::AudioDestinationNode::localAudioInputProvider):
78813        Expose public access to an AudioSourceProvider for local/live audio input.
78814
78815        (LocalAudioInputProvider):
78816        (WebCore::AudioDestinationNode::LocalAudioInputProvider::LocalAudioInputProvider):
78817        (WebCore::AudioDestinationNode::LocalAudioInputProvider::set):
78818        (WebCore::AudioDestinationNode::LocalAudioInputProvider::provideInput):
78819        Add simple AudioSourceProvider implementation which dishes out a single AudioBus each
78820        render quantum for optional local/live audio input.
78821
78822        * Modules/webaudio/OfflineAudioDestinationNode.h:
78823        * Modules/webaudio/OfflineAudioDestinationNode.cpp:
78824        (WebCore::OfflineAudioDestinationNode::startRendering):
78825        (WebCore::OfflineAudioDestinationNode::offlineRenderEntry):
78826        (WebCore::OfflineAudioDestinationNode::offlineRender):
78827        Simple name change using "offline" prefix to avoid confusion with AudioDestinationNode::render() method (implementing AudioIOCallback)
78828
78829        * platform/audio/AudioDestination.h:
78830        Switch create() method to take an AudioIOCallback instead of AudioSourceProvider.
78831
78832        * platform/audio/AudioIOCallback.h:
78833        (WebCore::AudioIOCallback::~AudioIOCallback):
78834        Add new AudioIOCallback interface for audio input/output.
78835
78836        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
78837        (WebCore::AudioDestination::create):
78838        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
78839        * platform/audio/gstreamer/AudioDestinationGStreamer.h:
78840        (AudioDestinationGStreamer):
78841        (WebCore::AudioDestinationGStreamer::callback):
78842        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
78843        (_WebKitWebAudioSourcePrivate):
78844        (webKitWebAudioSrcSetProperty):
78845        (webKitWebAudioSrcLoop):
78846        Small tweaks to AudioDestinationGStreamer implementation to account for switch to AudioIOCallback.
78847
78848        * platform/audio/mac/AudioDestinationMac.cpp:
78849        (WebCore::AudioDestination::create):
78850        (WebCore::AudioDestinationMac::AudioDestinationMac):
78851        (WebCore::AudioDestinationMac::render):
78852        * platform/audio/mac/AudioDestinationMac.h:
78853        (AudioDestinationMac):
78854        Small tweaks to AudioDestinationMac implementation to account for switch to AudioIOCallback.
78855
788562012-07-31  Kwang Yul Seo  <skyul@company100.net>
78857
78858        Read tag names and attributes from the saved tokens in HTMLTreeBuilder::processEndTag(AtomicHTMLToken*)
78859        https://bugs.webkit.org/show_bug.cgi?id=92715
78860
78861        Reviewed by Adam Barth.
78862
78863        This is a follow-up patch for r123577. Changed oneBelowTop to return HTMLStackItem*.
78864
78865        No new tests, covered by existing tests.
78866
78867        * html/parser/HTMLConstructionSite.h:
78868        (WebCore::HTMLConstructionSite::oneBelowTop):
78869        * html/parser/HTMLElementStack.cpp:
78870        (WebCore::HTMLElementStack::oneBelowTop):
78871        * html/parser/HTMLElementStack.h:
78872        (HTMLElementStack):
78873
788742012-07-31  Eric Seidel  <eric@webkit.org>
78875
78876        StyleResolver::canShareStyleWithElement does not need to use getAttribute for classAttr in the non-SVG case
78877        https://bugs.webkit.org/show_bug.cgi?id=92687
78878
78879        Reviewed by Antti Koivisto.
78880
78881        Previously 10% of samples in canShareStyleWithElement hit this line, after this change < 1% do.
78882        This is a small speedup for the non-SVG case.  Since this call is made for every element
78883        when style is resolved, any small speedup in this function matters on large documents.
78884
78885        * css/StyleResolver.cpp:
78886        (WebCore::StyleResolver::collectMatchingRulesForList):
78887
788882012-07-31  Luke Macpherson   <macpherson@chromium.org>
78889
78890        Heap-use-after-free in WebCore::StyleResolver::loadPendingImage
78891        https://bugs.webkit.org/show_bug.cgi?id=92606
78892
78893        Reviewed by Abhishek Arya.
78894
78895        Changes StyleResolver's m_pendingImageProperties set to a map, such that for each property we keep
78896        a RefPtr to the CSSValue used to set that property. This ensures that CSSValues are not freed before
78897        they are needed by loadPendingImage.
78898
78899        Test: fast/css/variables/deferred-image-load-from-variable.html
78900
78901        * css/StyleResolver.cpp:
78902        * css/StyleResolver.h:
78903
789042012-07-31  Chris Rogers  <crogers@google.com>
78905
78906        Add stub implementation for MediaStreamAudioSourceNode
78907        https://bugs.webkit.org/show_bug.cgi?id=90110
78908
78909        Reviewed by Kenneth Russell.
78910
78911        Test: webaudio/mediastreamaudiosourcenode.html
78912
78913        * CMakeLists.txt:
78914        * DerivedSources.make:
78915        * GNUmakefile.list.am:
78916        * WebCore.gypi:
78917        * WebCore.xcodeproj/project.pbxproj:
78918        Add MediaStreamAudioSourceNode files to make files.
78919
78920        * Modules/webaudio/AudioContext.cpp:
78921        * Modules/webaudio/AudioContext.h:
78922        * Modules/webaudio/AudioContext.idl:
78923        (WebCore::AudioContext::createMediaStreamSource):
78924        Add new createMediaStreamSource() method.
78925
78926        * Modules/webaudio/AudioNode.h:
78927        Add NodeTypeMediaStreamAudioSource.
78928
78929        * Modules/webaudio/MediaStreamAudioSourceNode.cpp: Added.
78930        * Modules/webaudio/MediaStreamAudioSourceNode.h: Added.
78931        (WebCore::MediaStreamAudioSourceNode::create):
78932        (WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
78933        (WebCore::MediaStreamAudioSourceNode::~MediaStreamAudioSourceNode):
78934        (WebCore::MediaStreamAudioSourceNode::setFormat):
78935        (WebCore::MediaStreamAudioSourceNode::process):
78936        (WebCore::MediaStreamAudioSourceNode::reset):
78937        (WebCore::MediaStreamAudioSourceNode::mediaStream):
78938        (WebCore::MediaStreamAudioSourceNode::audioSourceProvider):
78939        Basic MediaStreamAudioSourceNode implementation.
78940
78941        * Modules/webaudio/MediaStreamAudioSourceNode.idl: Added.
78942
789432012-07-31  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
78944
78945        FractionalLayoutUnit minor math bugs
78946        https://bugs.webkit.org/show_bug.cgi?id=86065
78947
78948        Reviewed by Levi Weintraub.
78949
78950        Implement a consistent set of subject modifying operators, to ensure
78951        operations that need to be in float are performed in float.
78952
78953        Scale FractionalLayoutSize in FractionalLayoutUnits instead of intergers.
78954
78955        No new functionality. No new tests.
78956
78957        * platform/FractionalLayoutUnit.h:
78958        (WebCore::operator-=):
78959        (WebCore::operator*=):
78960        (WebCore::operator/=):
78961        * platform/graphics/FractionalLayoutSize.h:
78962        (WebCore::FractionalLayoutSize::scale):
78963
789642012-07-31  Joshua Netterfield  <jnetterfield@rim.com>
78965
78966        [BlackBerry] Enable CSS Filter Effects
78967        https://bugs.webkit.org/show_bug.cgi?id=92685
78968
78969        Reviewed by Rob Buis.
78970
78971        Enable CSS filter effects, with the exception of custom effects (CSS shaders) and reference effects (SVG effects)
78972
78973        No new tests, because this is covered by tests from other platforms.
78974
78975        Internally reviewed by Arvid Nilsson <anilsson@rim.com> and Antonio Gomes <agomes@rim.com>.
78976
78977        * CMakeLists.txt:
78978        * PlatformBlackBerry.cmake:
78979        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
78980        (WebCore):
78981        (WebCore::GraphicsLayerBlackBerry::setFilters):
78982        (WebCore::GraphicsLayerBlackBerry::updateFilters):
78983        * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
78984        (GraphicsLayerBlackBerry):
78985        (WebCore::GraphicsLayerBlackBerry::filters):
78986        * platform/graphics/blackberry/LayerCompositingThread.h:
78987        (LayerOverride):
78988        (WebCore):
78989        (WebCore::LayerCompositingThread::filterOperationsChanged):
78990        (WebCore::LayerCompositingThread::setFilterOperationsChanged):
78991        (LayerCompositingThread):
78992        (WebCore::LayerCompositingThread::filterActions):
78993        (WebCore::LayerCompositingThread::setFilterActions):
78994        * platform/graphics/blackberry/LayerData.h:
78995        (LayerData):
78996        (WebCore::LayerData::filters):
78997        * platform/graphics/blackberry/LayerFilterRenderer.cpp: Added.
78998        (WebCore):
78999        (WebCore::operationTypeToProgramID):
79000        (WebCore::Uniformf::Uniformf):
79001        (WebCore::Uniform1f::apply):
79002        (WebCore::Uniform1f::create):
79003        (WebCore::Uniform1f::Uniform1f):
79004        (WebCore::Uniform2f::apply):
79005        (WebCore::Uniform2f::create):
79006        (WebCore::Uniform2f::Uniform2f):
79007        (WebCore::Uniform3f::apply):
79008        (WebCore::Uniform3f::create):
79009        (WebCore::Uniform3f::Uniform3f):
79010        (WebCore::LayerFilterRendererAction::create):
79011        (WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
79012        (WebCore::LayerFilterRendererAction::~LayerFilterRendererAction):
79013        (WebCore::LayerFilterRendererAction::useActionOn):
79014        (WebCore::LayerFilterRenderer::create):
79015        (WebCore::LayerFilterRenderer::LayerFilterRenderer):
79016        (WebCore::LayerFilterRenderer::bindCommonAttribLocation):
79017        (WebCore::LayerFilterRenderer::initializeSharedGLObjects):
79018        (WebCore::LayerFilterRenderer::ping):
79019        (WebCore::LayerFilterRenderer::pong):
79020        (WebCore::LayerFilterRenderer::pushSnapshot):
79021        (WebCore::LayerFilterRenderer::popSnapshot):
79022        (WebCore::LayerFilterRenderer::actionsForOperations):
79023        (WebCore::LayerFilterRenderer::applyActions):
79024        * platform/graphics/blackberry/LayerFilterRenderer.h: Added.
79025        (WebCore):
79026        (Uniformf):
79027        (WebCore::Uniformf::location):
79028        (Uniform1f):
79029        (Uniform2f):
79030        (Uniform3f):
79031        (LayerFilterRendererAction):
79032        (WebCore::LayerFilterRendererAction::shouldPushSnapshot):
79033        (WebCore::LayerFilterRendererAction::setPushSnapshot):
79034        (WebCore::LayerFilterRendererAction::shouldPopSnapshot):
79035        (WebCore::LayerFilterRendererAction::setPopSnapshot):
79036        (WebCore::LayerFilterRendererAction::appendUniform):
79037        (LayerFilterRenderer):
79038        (WebCore::LayerFilterRenderer::isEnabled):
79039        (WebCore::LayerFilterRenderer::disable):
79040        * platform/graphics/blackberry/LayerRenderer.cpp:
79041        (WebCore::LayerRenderer::loadShader):
79042        (WebCore::LayerRenderer::loadShaderProgram):
79043        (WebCore::LayerRenderer::drawLayersOnSurfaces):
79044        (WebCore::LayerRenderer::updateLayersRecursive):
79045        (WebCore):
79046        (WebCore::LayerRenderer::initializeSharedGLObjects):
79047        * platform/graphics/blackberry/LayerRenderer.h:
79048        (LayerRenderer):
79049        * platform/graphics/blackberry/LayerWebKitThread.cpp:
79050        (WebCore::LayerWebKitThread::LayerWebKitThread):
79051        (WebCore::LayerWebKitThread::commitOnCompositingThread):
79052        (WebCore):
79053        (WebCore::LayerWebKitThread::filtersCanBeComposited):
79054        * platform/graphics/blackberry/LayerWebKitThread.h:
79055        (LayerWebKitThread):
79056        (WebCore::LayerWebKitThread::setFilters):
79057        * platform/graphics/filters/FECustomFilter.cpp:
79058        (WebCore::FECustomFilter::platformApplySoftware):
79059        (WebCore::FECustomFilter::resizeContext):
79060        (WebCore::FECustomFilter::bindProgramAndBuffers):
79061        * platform/graphics/filters/FilterOperation.h:
79062        (WebCore):
79063        (FilterOperation):
79064
790652012-07-31  Alexis Menard  <alexis.menard@openbossa.org>
79066
79067        Get rid of "parser" type casts in CSSGrammar.y
79068        https://bugs.webkit.org/show_bug.cgi?id=92760
79069
79070        Reviewed by Adam Barth.
79071
79072        r124099 now type the parser parameter, it is therefore not needed to
79073        cast to CSSParser* everywhere as we know have a CSSParser* type
79074        already.
79075
79076        No new tests : refactor with no behavior change expected.
79077
79078        * css/CSSGrammar.y:
79079
790802012-07-31  Ian Vollick  <vollick@chromium.org>
79081
79082        [chromium] Use WebAnimation and related classes in GraphicsLayerChromium and AnimTranslationUtil
79083        https://bugs.webkit.org/show_bug.cgi?id=90468
79084
79085        Reviewed by James Robinson.
79086
79087        No new tests. No new functionality.
79088
79089        * WebCore.gypi:
79090        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
79091        (WebCore::appendKeyframe):
79092        (WebCore::WebTransformAnimationCurve):
79093        (WebCore::createWebAnimation):
79094        * platform/graphics/chromium/AnimationTranslationUtil.h:
79095        (WebKit):
79096        (WebCore):
79097        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
79098        (WebCore::GraphicsLayerChromium::willBeDestroyed):
79099        (WebCore::GraphicsLayerChromium::addAnimation):
79100        (WebCore::GraphicsLayerChromium::pauseAnimation):
79101        (WebCore::GraphicsLayerChromium::removeAnimation):
79102        (WebCore::GraphicsLayerChromium::suspendAnimations):
79103        (WebCore::GraphicsLayerChromium::resumeAnimations):
79104        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
79105        * platform/graphics/chromium/GraphicsLayerChromium.h:
79106        (GraphicsLayerChromium):
79107        * platform/graphics/chromium/LayerChromium.cpp:
79108        * platform/graphics/chromium/LayerChromium.h:
79109        (WebKit):
79110        (WebCore):
79111        (WebCore::LayerChromium::setLayerAnimationDelegate):
79112        (LayerChromium):
79113        * platform/graphics/chromium/LinkHighlight.h:
79114        (LinkHighlight):
79115
791162012-07-31  Taiju Tsuiki  <tzik@chromium.org>
79117
79118        Fix potential build error on LocalFileSystem::deleteFileSystem.
79119        https://bugs.webkit.org/show_bug.cgi?id=92695
79120
79121        Non-Chrome build of WebKit with FILE_SYSTEM flag will be broken at
79122        LocalFileSystem::deleteFileSystem.
79123        Chrome does not use this source and most of other ports don't turn on
79124        FILE_SYSTEM flag for now. So, we've not seen the breakage explicitly yet.
79125
79126        Reviewed by Adam Barth.
79127
79128        Non-Chrome WebKit build with FILE_SYSTEM should be finished successfully.
79129
79130        * Modules/filesystem/LocalFileSystem.cpp:
79131        (WebCore::LocalFileSystem::deleteFileSystem):
79132
791332012-07-31  Li Yin  <li.yin@intel.com>
79134
79135        AudioPannerNode should raise exception when distanceModel is set incorrectly
79136        https://bugs.webkit.org/show_bug.cgi?id=90952
79137
79138        Reviewed by Chris Rogers.
79139
79140        Spec: http://www.w3.org/TR/webaudio/#AudioPannerNode-section
79141        The distance model can be only set to LINEAR_DISTANCE, INVERSE_DISTANCE or EXPONENTIAL_DISTANCE.
79142        If the incorrect value is set, it will raise the exception.
79143        Use the unsigned short to replace unsigned long in AudioPannerNode.idl.
79144
79145        Test: webaudio/audiopannernode-basic.html
79146
79147        * Modules/webaudio/AudioPannerNode.cpp:
79148        (WebCore::AudioPannerNode::setDistanceModel): raise exception
79149        (WebCore):
79150        * Modules/webaudio/AudioPannerNode.h:
79151        (AudioPannerNode):
79152        * Modules/webaudio/AudioPannerNode.idl: using unsigned short to replace unsigned long
79153
791542012-07-31  Max Vujovic  <mvujovic@adobe.com>
79155
79156        [CSS Shaders] CSS parser rejects parameter names that are also CSS keywords
79157        https://bugs.webkit.org/show_bug.cgi?id=92537
79158
79159        Reviewed by Dirk Schulze.
79160
79161        Remove the CSS keyword check for CSS Shaders parameter names. Parameters are allowed to be
79162        any valid CSS identifier, including CSS keywords. See the spec:
79163        https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html#feCustom
79164
79165        The CSS parser was rejecting input like the following because it uses a CSS keyword
79166        "background" as a parameter name:
79167        -webkit-filter: custom(none url(fragment.shader), background 0 1 0 1);
79168
79169        Test: css3/filters/custom/custom-filter-css-keyword-as-parameter-name.html
79170
79171        * css/CSSParser.cpp:
79172        (WebCore::CSSParser::parseCustomFilter): Do not return early when the parameter name is a
79173        CSS keyword (i.e. when the CSSParserValue has a non-zero id).
79174
791752012-07-31  Pravin D  <pravind.2k4@gmail.com>
79176
79177        Caret position is wrong when a editable container has word-wrap:normal set
79178        https://bugs.webkit.org/show_bug.cgi?id=89649
79179
79180        Reviewed by Levi Weintraub.
79181
79182        Correcting the incorrect addumption that the min and max position for the caret rect is constrained to 
79183        the logical containing block width. This assumption is incorrect when the text has word-wrap:normal and 
79184        flows beyound the visible rect of the container.
79185
79186        Test: editing/input/editable-container-with-word-wrap-normal.html
79187
79188        * rendering/RenderText.cpp:
79189        (WebCore::RenderText::localCaretRect):
79190
791912012-07-31  Antti Koivisto  <antti@apple.com>
79192
79193        Crash in FrameLoader::checkLoadComplete with non-browser client app
79194        https://bugs.webkit.org/show_bug.cgi?id=92774
79195
79196        Reviewed by Alexey Proskuryakov..
79197
79198        Speculative fix. It is possible that CSSFontSelector could get deleted during the timer callback
79199        and memory reused, making m_document point to some garbage when it is tested at the end.
79200
79201        * css/CSSFontSelector.cpp:
79202        (WebCore::CSSFontSelector::beginLoadTimerFired):
79203
792042012-07-31  Hans Wennborg  <hans@chromium.org>
79205
79206        Speech JavaScript API: Throw exception for start() when already started
79207        https://bugs.webkit.org/show_bug.cgi?id=92756
79208
79209        Reviewed by Adam Barth.
79210
79211        Make the start() function throw an exception if the SpeechRecognition
79212        object was already started.
79213
79214        Test: fast/speech/scripted/start-exception.html
79215
79216        * Modules/speech/SpeechRecognition.cpp:
79217        (WebCore::SpeechRecognition::start):
79218        (WebCore::SpeechRecognition::stopFunction):
79219        (WebCore::SpeechRecognition::abort):
79220        (WebCore::SpeechRecognition::didReceiveError):
79221        (WebCore::SpeechRecognition::didEnd):
79222        (WebCore::SpeechRecognition::SpeechRecognition):
79223        * Modules/speech/SpeechRecognition.h:
79224        (SpeechRecognition):
79225        * Modules/speech/SpeechRecognition.idl:
79226
792272012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
79228
79229        Unreviewed, rolling out r124207.
79230        http://trac.webkit.org/changeset/124207
79231        https://bugs.webkit.org/show_bug.cgi?id=92773
79232
79233        Patch causes crashes on the 64-bit debug builder (and other
79234        builders likely) (Requested by zdobersek on #webkit).
79235
79236        * GNUmakefile.am:
79237        * GNUmakefile.list.am:
79238        * platform/text/gtk/TextCheckerEnchant.cpp: Removed.
79239        * platform/text/gtk/TextCheckerEnchant.h: Removed.
79240
792412012-07-07  Philippe Normand  <pnormand@igalia.com>
79242
79243        [GStreamer] Live stream support is weak
79244        https://bugs.webkit.org/show_bug.cgi?id=90084
79245
79246        Reviewed by Martin Robinson.
79247
79248        Make sure on-disk buffering is disabled for live streams. It is
79249        enabled initially when loading any remote media file if preload is
79250        set to Auto. Later on if the player detects that the media is live
79251        it disables on-disk buffering. This patch also adds support for
79252        caching the total size of the media.
79253
79254        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
79255        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
79256        (WebCore::MediaPlayerPrivateGStreamer::load): Keep track of the
79257        media url as an instance attribute.
79258        (WebCore::MediaPlayerPrivateGStreamer::duration): Logging improvement.
79259        (WebCore::MediaPlayerPrivateGStreamer::setRate): use the new
79260        isLiveStream() method.
79261        (WebCore::MediaPlayerPrivateGStreamer::buffered): Ditto.
79262        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Indicate
79263        source of duration message.
79264        (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired): Perform an
79265        anonymous duration change emission, mostly to cache its value.
79266        (WebCore::MediaPlayerPrivateGStreamer::totalBytes): Return
79267        cached size when available.
79268        (WebCore::MediaPlayerPrivateGStreamer::updateStates): Use the new
79269        isLiveStream() method and handle state change corner cases for live streams.
79270        (WebCore::MediaPlayerPrivateGStreamer::durationChanged): Cache
79271        media total size and re-enable on-disk buffering if caching succeeds.
79272        (WebCore::MediaPlayerPrivateGStreamer::movieLoadType): New
79273        implementation handling on-disk buffered and live streaming cases.
79274        (WebCore::MediaPlayerPrivateGStreamer::setPreload): Remember the
79275        case where preload is updated from Auto to another value, do
79276        on-disk buffering only for Auto preload attribute.
79277        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
79278        (MediaPlayerPrivateGStreamer):
79279        (WebCore::MediaPlayerPrivateGStreamer::isLiveStream): Utility
79280        method, a stream is live if it goes to PAUSE without prerolling.
79281
792822012-07-17  Antonio Gomes  <agomes@rim.com>
79283
79284        [Blackberry][FullScreen] HTML5 <video> controls are scaled differently depending on the current webpage scale
79285        https://bugs.webkit.org/show_bug.cgi?id=90884
79286        PR #162839
79287
79288        Reviewed by Rob Buis.
79289
79290        The way the BlackBerry port implements the FULLSCREEN_API for media
79291        elements might result in the controls being oversized, proportionally
79292        to the current page scale. That happens because the fullscreen element
79293        gets sized to be as big as the viewport size, and the viewport size might
79294        get outstretched to fit to the screen dimensions.
79295
79296        In order to fix that, the patch strips out the Page scale factor from
79297        the media controls multiplier.
79298
79299        Patch also changes many integer-based calculations to be float-based, in
79300        order to get the needed precision.
79301
79302        Internally reviewed by Jacky Jiang.
79303
79304        * platform/blackberry/RenderThemeBlackBerry.cpp:
79305        (WebCore):
79306        (WebCore::determineFullScreenMultiplier):
79307        (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
79308        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
79309        (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
79310        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
79311        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
79312
793132012-07-31  Stephen White  <senorblanco@chromium.org>
79314
79315        Remove the clone() method from FilterOperation (and subclasses).
79316        https://bugs.webkit.org/show_bug.cgi?id=92757
79317
79318        Reviewed by Kentaro Hara.
79319
79320        Since the move to WebFilterOperation in Chromium, this is now dead
79321        code.
79322
79323        Covered by existing tests in css3/filters.
79324
79325        * platform/graphics/filters/CustomFilterOperation.h:
79326        * platform/graphics/filters/FilterOperation.h:
79327
793282012-07-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
79329
79330        Regression(r124135): SVG tests crashing on ports using Cairo
79331        https://bugs.webkit.org/show_bug.cgi?id=92752
79332
79333        Reviewed by Martin Robinson.
79334
79335        * platform/graphics/cairo/PathCairo.cpp:
79336        (WebCore::Path::operator=):
79337
793382012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
79339
79340        Unreviewed, rolling out r124208.
79341        http://trac.webkit.org/changeset/124208
79342        https://bugs.webkit.org/show_bug.cgi?id=92765
79343
79344        it broke compilation on mac (Requested by loislo on #webkit).
79345
79346        * CMakeLists.txt:
79347        * GNUmakefile.list.am:
79348        * Target.pri:
79349        * WebCore.gypi:
79350        * WebCore.vcproj/WebCore.vcproj:
79351        * WebCore.xcodeproj/project.pbxproj:
79352        * inspector/InspectorAllInOne.cpp:
79353        * inspector/InspectorMemoryAgent.cpp:
79354        (WebCore):
79355        * inspector/MemoryInstrumentationImpl.cpp: Removed.
79356        * inspector/MemoryInstrumentationImpl.h: Removed.
79357
793582012-07-31  Stephen Chenney  <schenney@chromium.org>
79359
79360        xmlserializer strips xlink from xlink:html svg image tag
79361        https://bugs.webkit.org/show_bug.cgi?id=79586
79362
79363        Reviewed by Nikolas Zimmermann.
79364
79365        Adding code to ensure the correct prefix on attributes in the xml,
79366        xmlns and xlink namespaces. We now follow the rules in
79367        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments
79368        (circa the time of this change).
79369
79370        Rob Buis wrote the original test for this patch and did the initial work.
79371
79372        Tests: fast/dom/XMLSerializer-xml-namespace.html
79373               svg/custom/xlink-prefix-in-attributes.html
79374
79375        * editing/MarkupAccumulator.cpp:
79376        (WebCore::attributeIsInSerializedNamespace): Test for an attribute in
79377        a specially serialized namespace: xml, xmlns, xlink.
79378        (WebCore):
79379        (WebCore::MarkupAccumulator::appendAttribute): Check the namespace of
79380        attributes upon serialization, and add any necessary prefixes.
79381        * html/parser/HTMLTreeBuilder.cpp:
79382        (WebCore::adjustForeignAttributes): Use WTF::xmlAtom etc for AtomicString arguments.
79383
793842012-07-31  Mike Reed  <reed@google.com>
79385
79386        skia: switch to conical gradient to match css/svg spec for two-point gradients
79387        https://bugs.webkit.org/show_bug.cgi?id=92754
79388
79389        Reviewed by Stephen White.
79390
79391        Switching to skia's TwoPointConical gradient, which has been written explicitly to match the css/svg spec.
79392        Leaving the existing TwoPointRadial gradient in skia, for other callers that may want the old behavior.
79393
79394        No new tests. existing layouttests exercise this change (9 pending rebaselines associated with this CL).
79395
79396        * platform/graphics/skia/GradientSkia.cpp:
79397        (WebCore::Gradient::platformGradient):
79398
793992012-04-06  Ilya Tikhonovsky  <loislo@chromium.org>
79400
79401        Web Inspector: extract MemoryInstrumentationImpl into separate files for future reusing in unit tests
79402        https://bugs.webkit.org/show_bug.cgi?id=92751
79403
79404        Reviewed by Yury Semikhatsky.
79405
79406        * CMakeLists.txt:
79407        * GNUmakefile.list.am:
79408        * Target.pri:
79409        * WebCore.gypi:
79410        * WebCore.vcproj/WebCore.vcproj:
79411        * inspector/InspectorAllInOne.cpp:
79412        * inspector/InspectorMemoryAgent.cpp:
79413        (WebCore):
79414        * inspector/MemoryInstrumentationImpl.cpp: Added.
79415        (WebCore):
79416        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
79417        (WebCore::MemoryInstrumentationImpl::processDeferredInstrumentedPointers):
79418        (WebCore::MemoryInstrumentationImpl::countObjectSize):
79419        (WebCore::MemoryInstrumentationImpl::deferInstrumentedPointer):
79420        (WebCore::MemoryInstrumentationImpl::visited):
79421        (WebCore::MemoryInstrumentationImpl::selfSize):
79422        * inspector/MemoryInstrumentationImpl.h: Added.
79423        (WebCore):
79424        (MemoryInstrumentationImpl):
79425        (WebCore::MemoryInstrumentationImpl::totalTypeSize):
79426
794272012-07-31  Mario Sanchez Prada  <msanchez@igalia.com>
79428
79429        [GTK] Add a new and reusable enchant-based spellchecker in WebCore
79430        https://bugs.webkit.org/show_bug.cgi?id=90269
79431
79432        Reviewed by Martin Robinson.
79433
79434        Move enchant specific code down to WebCore, into a new class
79435        TextCheckerEnchant, that we can use from WK1 and WK2.
79436
79437        * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
79438        * GNUmakefile.list.am: Added new files.
79439        * platform/text/gtk/TextCheckerEnchant.cpp: Added.
79440        (getAvailableDictionariesCallback):
79441        (TextCheckerEnchant::TextCheckerEnchant):
79442        (TextCheckerEnchant::~TextCheckerEnchant):
79443        (TextCheckerEnchant::ignoreWord):
79444        (TextCheckerEnchant::learnWord):
79445        (TextCheckerEnchant::checkSpellingOfString):
79446        (TextCheckerEnchant::getGuessesForWord):
79447        (TextCheckerEnchant::updateSpellCheckingLanguages):
79448        (TextCheckerEnchant::freeEnchantBrokerDictionaries):
79449        * platform/text/gtk/TextCheckerEnchant.h: Added.
79450        (WebCore):
79451        (TextCheckerEnchant):
79452        (WebCore::TextCheckerEnchant::create):
79453
794542012-07-31  Joe Mason  <jmason@rim.com>
79455
79456        [BlackBerry] Support Negotiate auth
79457        https://bugs.webkit.org/show_bug.cgi?id=91871
79458
79459        Reviewed by George Staikos.
79460
79461        Add Negotiate to the list of auth schemes allowed in the platform request.
79462
79463        Add "success" and "requireCredentials" parameters to notifyAuthReceived (which is now called
79464        with success = true on successful authentication, as well as on failures).
79465
79466        When success is true, update the stored credential to use the auth scheme actually reported
79467        rather than that set in the request. (This is used when Negotiate auth can't get a ticket
79468        and falls back to a different supported auth type.)
79469
79470        When requireCredentials is false, just set the auth type and start a new request using empty
79471        credentials.
79472
79473        RIM PR# 166514
79474        Internally reviewed by Jonathan Dong
79475
79476        * platform/network/blackberry/NetworkJob.cpp:
79477        (WebCore::NetworkJob::notifyAuthReceived): Add Negotiate to the auth scheme switch. Handle
79478        success param by updating auth type in stored credentials; pass requireCredentials param on
79479        to sendRequestWithCredentials.
79480        (WebCore::NetworkJob::startNewJobWithRequest): Fix typo in increaseRedirectCount parameter
79481        name.
79482        (WebCore::NetworkJob::sendRequestWithCredentials): Use empty credentials if
79483        requireCredentials is false.
79484        * platform/network/blackberry/NetworkJob.h:
79485        (NetworkJob):
79486        * platform/network/blackberry/NetworkManager.cpp:
79487        (WebCore::NetworkManager::startJob): Add Negotiate to the auth scheme switch.
79488
794892012-07-31  Alexei Filippov  <alexeif@chromium.org>
79490
79491        Web Inspector: take into account the whole security origin instead of just host
79492        https://bugs.webkit.org/show_bug.cgi?id=92740
79493
79494        Reviewed by Pavel Feldman.
79495
79496        Make the DOM Storage Agent take into account all the
79497        information relevant to the security origin, i.e. protocol, host, and
79498        port. Previously only the host was taken into account. That caused
79499        inspector to show the first storage only in the case a page operated
79500        over several security origins sharing the same host (but having
79501        different protocols e.g. http and https).
79502
79503        * inspector/InspectorDOMStorageAgent.cpp:
79504        (WebCore::InspectorDOMStorageAgent::storageId):
79505        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
79506        * inspector/InspectorDOMStorageResource.cpp:
79507        (WebCore::InspectorDOMStorageResource::isSameOriginAndType):
79508        (WebCore::InspectorDOMStorageResource::bind):
79509        * inspector/InspectorDOMStorageResource.h:
79510        (InspectorDOMStorageResource):
79511
795122012-07-31  Keishi Hattori  <keishi@webkit.org>
79513
79514        Slider ticks are drawn at wrong positions
79515        https://bugs.webkit.org/show_bug.cgi?id=92720
79516
79517        Reviewed by Kent Tamura.
79518
79519        Slider tick marks for vertical sliders were drawn reversed. And the tick
79520        mark positions were slightly off from the thumb position because of rounding.
79521
79522        No new tests. Covered in input-appearance-range-with-datalist.html.
79523
79524        * rendering/RenderTheme.cpp:
79525        (WebCore::RenderTheme::paintSliderTicks):
79526
795272012-07-31  Shinya Kawanaka  <shinyak@chromium.org>
79528
79529        Older ShadowDOM is still rendered when a new ShadowDOM is added when they don't have any InsertionPoints.
79530        https://bugs.webkit.org/show_bug.cgi?id=92456
79531
79532        Reviewed by Hajime Morita.
79533
79534        When adding a new ShadowRoot to an element having other ShadowRoots, and they don't have any InsretionPoint,
79535        the older ShadowDOM is still rendered.
79536
79537        When ContentDistributor's validity is 'Undetermined', ElementShadow reattaches the host and the whole shadow
79538        subtree. Since adding a new ShadowRoot makes the validity 'Undetermined', we have had to make it 'Undetermined'.
79539
79540        This change enables us to remove a unnecessary InvalidationType flag from the code. We should call
79541        setValidityUndetermined() instead of using InvalidateAndForceReattach.
79542
79543        Test: fast/dom/shadow/invalidate-distribution.html
79544
79545        * dom/ElementShadow.cpp:
79546        (WebCore::ElementShadow::addShadowRoot): Calls setValidityUndetermined().
79547        (WebCore::ElementShadow::removeAllShadowRoots):
79548        (WebCore::ElementShadow::setValidityUndetermined):
79549        (WebCore::ElementShadow::invalidateDistribution): When validity is undetermined, we will reattach the
79550        host and the shadow subtree.
79551        * dom/ElementShadow.h:
79552        (ElementShadow):
79553        * html/shadow/ContentDistributor.cpp:
79554        * html/shadow/ContentDistributor.h:
79555        (WebCore::ContentDistributor::setValidity):
79556        (ContentDistributor):
79557        * html/shadow/InsertionPoint.cpp:
79558        (WebCore::InsertionPoint::insertedInto): Calls setValidityUndetermined().
79559
795602012-07-31  Tommy Widenflycht  <tommyw@google.com>
79561
79562        Introduce a minimal RTCPeerConnection together with Dictionary changes
79563        https://bugs.webkit.org/show_bug.cgi?id=92380
79564
79565        Reviewed by Kentaro Hara.
79566
79567        This patch introduces a shell RTCPeerConnection together with neccecary changes to
79568        Dictionary.
79569
79570        The W3C specification can be found here:
79571        http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcpeerconnection
79572
79573        Since Dictionaries can't be fully copied around adding
79574        get(const String& name, Vector<Dictionary>& result)
79575        isn't feasible so I have added a new ArrayValue class.
79576
79577        Test: fast/mediastream/RTCPeerConnection.html
79578
79579        * CMakeLists.txt:
79580        * GNUmakefile.list.am:
79581        * Modules/mediastream/DOMWindowMediaStream.idl:
79582        * Modules/mediastream/RTCPeerConnection.cpp: Added.
79583        (WebCore):
79584        (RTCIceServer):
79585        (WebCore::RTCIceServer::create):
79586        (WebCore::RTCIceServer::~RTCIceServer):
79587        (WebCore::RTCIceServer::uri):
79588        (WebCore::RTCIceServer::credential):
79589        (WebCore::RTCIceServer::RTCIceServer):
79590        (RTCConfiguration):
79591        (WebCore::RTCConfiguration::create):
79592        (WebCore::RTCConfiguration::~RTCConfiguration):
79593        (WebCore::RTCConfiguration::appendServer):
79594        (WebCore::RTCConfiguration::numberOfServers):
79595        (WebCore::RTCConfiguration::server):
79596        (WebCore::RTCConfiguration::RTCConfiguration):
79597        (WebCore::RTCPeerConnection::parseConfiguration):
79598        (WebCore::RTCPeerConnection::create):
79599        (WebCore::RTCPeerConnection::RTCPeerConnection):
79600        (WebCore::RTCPeerConnection::~RTCPeerConnection):
79601        (WebCore::RTCPeerConnection::interfaceName):
79602        (WebCore::RTCPeerConnection::scriptExecutionContext):
79603        (WebCore::RTCPeerConnection::stop):
79604        (WebCore::RTCPeerConnection::eventTargetData):
79605        (WebCore::RTCPeerConnection::ensureEventTargetData):
79606        * Modules/mediastream/RTCPeerConnection.h: Added.
79607        (WebCore):
79608        (RTCPeerConnection):
79609        (WebCore::RTCPeerConnection::refEventTarget):
79610        (WebCore::RTCPeerConnection::derefEventTarget):
79611        * Modules/mediastream/RTCPeerConnection.idl: Added.
79612        * Target.pri:
79613        * UseJSC.cmake:
79614        * WebCore.gypi:
79615        * WebCore.vcproj/WebCore.vcproj:
79616        * WebCore.xcodeproj/project.pbxproj:
79617        * bindings/generic/RuntimeEnabledFeatures.h:
79618        (WebCore::RuntimeEnabledFeatures::webkitRTCPeerConnectionEnabled):
79619        * bindings/js/ArrayValue.cpp: Added.
79620        (WebCore):
79621        (WebCore::ArrayValue::ArrayValue):
79622        (WebCore::ArrayValue::operator=):
79623        (WebCore::ArrayValue::isUndefinedOrNull):
79624        (WebCore::ArrayValue::length):
79625        (WebCore::ArrayValue::get):
79626        * bindings/js/ArrayValue.h: Added.
79627        (WebCore):
79628        (ArrayValue):
79629        * bindings/js/JSBindingsAllInOne.cpp:
79630        * bindings/js/JSDictionary.cpp:
79631        (WebCore::JSDictionary::convertValue):
79632        (WebCore):
79633        * bindings/js/JSDictionary.h:
79634        (WebCore):
79635        * bindings/v8/ArrayValue.cpp: Added.
79636        (WebCore):
79637        (WebCore::ArrayValue::operator=):
79638        (WebCore::ArrayValue::isUndefinedOrNull):
79639        (WebCore::ArrayValue::length):
79640        (WebCore::ArrayValue::get):
79641        * bindings/v8/ArrayValue.h: Added.
79642        (WebCore):
79643        (ArrayValue):
79644        (WebCore::ArrayValue::ArrayValue):
79645        (WebCore::ArrayValue::~ArrayValue):
79646        * bindings/v8/Dictionary.cpp:
79647        (WebCore::Dictionary::get):
79648        (WebCore):
79649        * bindings/v8/Dictionary.h:
79650        (WebCore):
79651        (Dictionary):
79652        * dom/EventTargetFactory.in:
79653
796542012-07-31  Raul Hudea  <rhudea@adobe.com>
79655
79656        Inspector crashes when trying to inspect a page with CSS region styling
79657        https://bugs.webkit.org/show_bug.cgi?id=91503
79658
79659        Reviewed by Alexander Pavlov.
79660
79661        Fix by making sure a CSSRuleSourceData is always created when parsing @-webkit-region rules.
79662
79663        Test: inspector/styles/region-style-crash.html
79664
79665        * css/CSSGrammar.y: Made ruleset called explicitly markRuleBodyStart instead of depending on updateLastSelectorLineAndPosition to call it.
79666        * css/CSSParser.cpp:
79667        (WebCore::CSSParser::updateLastSelectorLineAndPosition): markRuleBodyStart should be called via at_rule_body_start. 
79668        * css/CSSPropertySourceData.h:
79669
796702012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
79671
79672        Unreviewed, rolling out r124179.
79673        http://trac.webkit.org/changeset/124179
79674        https://bugs.webkit.org/show_bug.cgi?id=92730
79675
79676        Breaks Chromium Linux 32 bots with "error: integer constant is
79677        too large for 'long' type" in IDBLevelDBCodingTest.cpp
79678        (Requested by apavlov on #webkit).
79679
79680        * Modules/indexeddb/IDBLevelDBCoding.cpp:
79681        (WebCore::IDBLevelDBCoding::encodeByte):
79682        (WebCore::IDBLevelDBCoding::encodeBool):
79683        (WebCore::IDBLevelDBCoding::encodeInt):
79684        (WebCore::IDBLevelDBCoding::encodeVarInt):
79685        (WebCore::IDBLevelDBCoding::encodeString):
79686        (WebCore::IDBLevelDBCoding::encodeDouble):
79687        (WebCore::IDBLevelDBCoding::encodeIDBKey):
79688        (WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
79689        (WebCore::IDBLevelDBCoding::KeyPrefix::encode):
79690        * Modules/indexeddb/IDBLevelDBCoding.h:
79691        (IDBLevelDBCoding):
79692
796932012-07-31  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
79694
79695        add Farstream flags/deps to WebKit, for WebRTC
79696        https://bugs.webkit.org/show_bug.cgi?id=87524
79697
79698        Reviewed by Philippe Normand.
79699
79700        Since Farstream will be used as the backend for GTK's WebRTC, this
79701        patch adds it as a dependency to the build system.
79702
79703        No new features or code changes were added, so new tests aren't necessary.
79704
79705        * GNUmakefile.am:
79706
797072012-07-31  Zan Dobersek  <zandobersek@gmail.com>
79708
79709        Unreviewed crash fix after r124135.
79710
79711        * platform/graphics/cairo/PathCairo.cpp:
79712        (WebCore::Path::Path): Ensure the Cairo path when acquiring its context,
79713        crashes ensue otherwise.
79714
797152012-07-31  Yoshifumi Inoue  <yosin@chromium.org>
79716
79717        Change Element::isReadOnlyFormControl to Element::shouldMatchReadOnlySelector/shouldMatchReadWriteSelector or HTMLFormControlElement::readOnly
79718        https://bugs.webkit.org/show_bug.cgi?id=92602
79719
79720        Reviewed by Kent Tamura.
79721
79722        This patch replaces Element::isReadOnlyFormControl() by
79723        Element::shouldMatchReadOnlySelector/shouldMatchReadOnlySelector or
79724        HTMLFormControlElement::readOnly() to make intention of functions
79725        self descriptive.
79726
79727        No new tests. This patch doesn't change behavior.
79728
79729        * css/SelectorChecker.cpp:
79730        (WebCore::SelectorChecker::checkOneSelector): Replaced isReadOnlyFormControl() by shouldMatchReadOnlySelector() for :read-only pseudo class, and replaced isReadOnlyFormControl() by shouldMatchReadOnlySelector() for :read-only pseudo class.
79731        * dom/Element.cpp:
79732        (WebCore::Element::shouldMatchReadOnlySelector): Added for default implementation.
79733        (WebCore::Element::shouldMatchReadWriteSelector): for default implementation.
79734        * dom/Element.h:
79735        (Element): Removed isReadOnlyFormControl() and added shouldMatchReadOnlySelector and shouldMatchReadWriteSelector.
79736        * html/HTMLFormControlElement.cpp:
79737        (WebCore::HTMLFormControlElement::shouldMatchReadOnlySelector): Added.
79738        (WebCore::HTMLFormControlElement::shouldMatchReadWriteSelector): Added.
79739        * html/HTMLFormControlElement.h:
79740        (HTMLFormControlElement): Removed isReadOnlyFormControl() and added shouldMatchReadOnlySelector and shouldMatchReadWriteSelector.
79741        * html/shadow/SliderThumbElement.cpp:
79742        (WebCore::SliderThumbElement::shouldMatchReadOnlySelector): Added.
79743        (WebCore::SliderThumbElement::shouldMatchReadWriteSelector): Added.
79744        (WebCore::SliderThumbElement::willRespondToMouseMoveEvents): Replaced isReadOnlyFormControl() by readOnly().
79745        (WebCore::SliderThumbElement::willRespondToMouseClickEvents): ditto.
79746        (SliderThumbElement):
79747        * html/shadow/TextControlInnerElements.cpp:
79748        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
79749        (WebCore::SpinButtonElement::willRespondToMouseMoveEvents): ditto.
79750        (WebCore::SpinButtonElement::willRespondToMouseClickEvents): ditto.
79751        (WebCore::SpinButtonElement::shouldMatchReadOnlySelector): Added.
79752        (WebCore::SpinButtonElement::shouldMatchReadWriteSelector): Added.
79753        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
79754        * html/shadow/TextControlInnerElements.h:
79755        (SpinButtonElement): Removed isReadOnlyFormControl() and added shouldMatchReadOnlySelector and shouldMatchReadWriteSelector.
79756        * rendering/RenderTheme.cpp:
79757        (WebCore::RenderTheme::isReadOnlyControl): Replaced isReadOnlyControl() by shouldMatchReadOnlySelector().
79758
797592012-07-31  Xingnan Wang  <xingnan.wang@intel.com>
79760
79761        IndexedDB: Size the Vector in encodeInt/encodeVarInt/encodeString
79762        https://bugs.webkit.org/show_bug.cgi?id=91813
79763
79764        Reviewed by Kentaro Hara.
79765
79766        To avoid memory re-allocation in Vector, init the capability or size of Vector in encodeInt(), encodeVarInt(),
79767        encodeBool(), encodeIDBKey() etc.
79768
79769        No new tests - Low level functions covered by existing layout tests and also covered by Chromium
79770        webkit_unit_tests IDBLevelIDBCodingTest.* which validates the sizes of buffers returned by encodeVarInt.
79771
79772        * Modules/indexeddb/IDBLevelDBCoding.cpp:
79773        (WebCore::IDBLevelDBCoding::encodeInt):
79774        (WebCore::IDBLevelDBCoding::encodeVarInt):
79775        (WebCore::IDBLevelDBCoding::encodeString):
79776
797772012-07-30  Huang Dongsung  <luxtella@company100.net>
79778
79779        [Texmap] Remove the backing store after 'style.visibility' for an element sets 'hidden'.
79780        https://bugs.webkit.org/show_bug.cgi?id=92492
79781
79782        Reviewed by Noam Rosenthal.
79783
79784        This patch's purpose is to save vram memory.
79785        When visibility of the element sets hidden, we do not need to draw the element,
79786        so we do not need to keep a texture of the backing store.
79787        Currently, Texmap does not draw the element with visibility:hidden because
79788        RenderLayerBacking::paintIntoLayer does not draw anything.
79789        This patch just removes unused textures.
79790
79791        No new tests - no new testable functionality.
79792
79793        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
79794        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
79795        (WebCore):
79796        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
79797        (GraphicsLayerTextureMapper):
79798        * platform/graphics/texmap/TextureMapperLayer.cpp:
79799        (WebCore::TextureMapperLayer::updateBackingStore):
79800        (WebCore::TextureMapperLayer::paintSelf):
79801        (WebCore::TextureMapperLayer::isVisible):
79802        (WebCore::TextureMapperLayer::syncCompositingStateSelf):
79803        * platform/graphics/texmap/TextureMapperLayer.h:
79804        (State):
79805        (WebCore::TextureMapperLayer::State::State):
79806
798072012-07-30  Keishi Hattori  <keishi@webkit.org>
79808
79809        Implement datalist UI for input type color for Chromium
79810        https://bugs.webkit.org/show_bug.cgi?id=92075
79811
79812        Reviewed by Kent Tamura.
79813
79814        Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
79815
79816        * rendering/RenderThemeChromiumCommon.cpp:
79817        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
79818
798192012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
79820
79821        Unreviewed, rolling out r124171.
79822        http://trac.webkit.org/changeset/124171
79823        https://bugs.webkit.org/show_bug.cgi?id=92712
79824
79825        Start failing fast/css/square-button-appearance.html
79826        (Requested by yosin on #webkit).
79827
79828        * css/SelectorChecker.cpp:
79829        (WebCore::SelectorChecker::checkOneSelector):
79830        * dom/Element.cpp:
79831        * dom/Element.h:
79832        (Element):
79833        (WebCore::Element::isReadOnlyFormControl):
79834        * html/HTMLFormControlElement.h:
79835        (WebCore::HTMLFormControlElement::isReadOnlyFormControl):
79836        * html/shadow/SliderThumbElement.cpp:
79837        (WebCore::SliderThumbElement::isReadOnlyFormControl):
79838        (WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
79839        (WebCore::SliderThumbElement::willRespondToMouseClickEvents):
79840        * html/shadow/SliderThumbElement.h:
79841        (SliderThumbElement):
79842        * html/shadow/TextControlInnerElements.cpp:
79843        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
79844        (WebCore::SpinButtonElement::willRespondToMouseMoveEvents):
79845        (WebCore::SpinButtonElement::willRespondToMouseClickEvents):
79846        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
79847        * html/shadow/TextControlInnerElements.h:
79848        (WebCore::SpinButtonElement::isReadOnlyFormControl):
79849        * rendering/RenderTheme.cpp:
79850        (WebCore::RenderTheme::isReadOnlyControl):
79851
798522012-07-30  Yoshifumi Inoue  <yosin@chromium.org>
79853
79854        [CSS] Change Element::isReadOnlyFormControl to shouldMatchReadWriteSelector or HTMLTextFormControlElement::readOnly
79855        https://bugs.webkit.org/show_bug.cgi?id=92602
79856
79857        Reviewed by Kent Tamura.
79858
79859        This patch renames Element::isReadOnlyFormControl() to Element::shouldMatchReadWriteSelector()
79860        or HTMLTextFormControlElement::readOnly() to make intention of
79861        shouldMatchReadWriteSelector(was isReadOnlyFormControl) self descriptive.
79862
79863        No new tests. This patch doesn't change behavior.
79864
79865        * css/SelectorChecker.cpp:
79866        (WebCore::SelectorChecker::checkOneSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
79867        * dom/Element.cpp:
79868        (WebCore::Element::shouldMatchReadWriteSelector): Added default implementation.
79869        * dom/Element.h:
79870        (WebCore::Element::shouldMatchReadWriteSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
79871        * html/HTMLFormControlElement.h:
79872        * html/shadow/SliderThumbElement.cpp:
79873        (WebCore::SliderThumbElement::shouldMatchReadWriteSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
79874        (WebCore::SliderThumbElement::willRespondToMouseMoveEvents): Replaced isReadOnlyFormControl() by readOnly().
79875        (WebCore::SliderThumbElement::willRespondToMouseClickEvents): ditto.
79876        * html/shadow/SliderThumbElement.h:
79877        (SliderThumbElement): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
79878        * html/shadow/TextControlInnerElements.cpp:
79879        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
79880        (WebCore::SpinButtonElement::willRespondToMouseMoveEvents): Replaced isReadOnlyFormControl() by readOnly().
79881        (WebCore::SpinButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
79882        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
79883        * html/shadow/TextControlInnerElements.h:
79884        * rendering/RenderTheme.cpp:
79885        (WebCore::RenderTheme::isReadOnlyControl): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
79886
798872012-07-30  Julien Chaffraix  <jchaffraix@webkit.org>
79888
79889        Remove overflow: scroll handling in block flow layout methods
79890        https://bugs.webkit.org/show_bug.cgi?id=92689
79891
79892        Reviewed by Simon Fraser.
79893
79894        The overflow: scroll scrollbars creation was done at layout time for all RenderBlocks and
79895        descendants. This was not only wrong ('overflow' only changes at style change time) but it
79896        was also introducing some code duplication.
79897
79898        The gist of this change is to share the code by moving it to RenderLayer::updateScrollbarsAfterStyleChange,
79899        this includes the code from bug 69993 to special case list box part.
79900
79901        Covered by existing tests:
79902        - All fast/overflow ones.
79903        - For the list box change:
79904            fast/forms/select-overflow-scroll-inherited.html
79905            fast/forms/select-overflow-scroll.html
79906        - For the flexbox:
79907            css3/flexbox/preferred-widths-orthogonal.html
79908            css3/flexbox/preferred-widths.html
79909
79910        * rendering/RenderBlock.cpp:
79911        (WebCore::RenderBlock::layoutBlock):
79912        * rendering/RenderDeprecatedFlexibleBox.cpp:
79913        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
79914        * rendering/RenderGrid.cpp:
79915        (WebCore::RenderGrid::layoutBlock):
79916        * rendering/RenderFlexibleBox.cpp:
79917        (WebCore::RenderFlexibleBox::layoutBlock):
79918        Removed the common code here.
79919
79920        * rendering/RenderFlexibleBox.cpp:
79921        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
79922        Changed to an ASSERT now that the right scrollbars are created. This is
79923        fine as overflow-x/y are physical coordinates and our access was following that.
79924
79925        * rendering/RenderLayer.cpp:
79926        (WebCore::RenderLayer::invalidateScrollbarRect):
79927        Added an early return here if we are not attached yet as RenderLayer::styleChanged
79928        is called at attachment time before we are inserted in the tree. This is fine as the
79929        scrollbars are part of the object which will be painted after the first layout.
79930
79931        (WebCore::overflowRequiresAScrollbar):
79932        (WebCore::overflowDefinesAutomaticScrollbar):
79933        Split the logic in those 2 functions.
79934
79935        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
79936        Updated to use the require / can-have functions. Also added
79937        an early return for list box parts as required by bug 69993.
79938
79939        (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
79940        Added an early return for list box parts as required by bug 69993,
79941        also removed some unneeded NULL-checks that were added for list box parts.
79942
799432012-07-30  Vivek Galatage  <vivekgalatage@gmail.com>
79944
79945        fillWithEmptyClients method should also initialize chromeClient with EmptyChromeClient
79946        https://bugs.webkit.org/show_bug.cgi?id=92703
79947
79948        Reviewed by Kent Tamura.
79949
79950        fillWithEmptyClients should also intialize PageClients.chromeClient with EmptyChromeClient 
79951        as its required for creating a Empty page and to minimize the exported symbols.
79952
79953        No new tests as no change in functionality.
79954
79955        * loader/EmptyClients.cpp:
79956        (WebCore::fillWithEmptyClients):
79957
799582012-07-30  Adrienne Walker  <enne@google.com>
79959
79960        [chromium] Wrap ScrollbarLayerChromium in WebScrollbarLayer
79961        https://bugs.webkit.org/show_bug.cgi?id=91032
79962
79963        Reviewed by James Robinson.
79964
79965        Modify ScrollingCoordinatorChromium to operate on WebScrollbarLayer
79966        instead of ScrollbarLayerChromium. This removes the dependency on
79967        ScrollbarLayerChromium.
79968
79969        No change in functionality, so no new tests.
79970
79971        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
79972        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
79973        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
79974        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
79975        (ScrollingCoordinatorPrivate):
79976        (WebCore::createScrollbarLayer):
79977
799782012-07-30  Ryosuke Niwa  <rniwa@webkit.org>
79979
79980        Another Qt build fix attempt after r124098.
79981        "interface" is a keyword. Don't use it. 
79982
79983        * dom/GestureEvent.cpp:
79984        (WebCore::GestureEvent::interfaceName):
79985
799862012-07-30  Elliott Sprehn  <esprehn@gmail.com>
79987
79988        Make QuotesData use a Vector of pairs
79989        https://bugs.webkit.org/show_bug.cgi?id=92448
79990
79991        Reviewed by Julien Chaffraix.
79992
79993        QuotesData::create returned an array of memory that contained in place instantiations
79994        of a QuotesData and then String instances. This changes the code to use a Vector of
79995        pairs making it safer and ensuring that quotes are always balanced. This also uses a
79996        HashMap directly in the QuoteRenderer instead of building it on first access reducing
79997        the amount of code needed for picking quotes by language.
79998
79999        Test: fast/css-generated-content/close-quote-negative-depth.html
80000
80001        * css/StyleResolver.cpp:
80002        (WebCore::StyleResolver::collectMatchingRulesForList): Create pairs and use the new QuotesData API.
80003        * rendering/RenderQuote.cpp:
80004        (WebCore):
80005        (WebCore::quotesDataLanguageMap): New function that returns the HashMap of languages.
80006        (WebCore::basicQuotesData): Returns the simple form of quotes, " and '.
80007        (WebCore::defaultQuotes): Changed to use the new map.
80008        (WebCore::RenderQuote::styleDidChange):
80009        (WebCore::RenderQuote::originalText): Changed to use the new getOpenQuote and getCloseQuote which ensure bounds checks.
80010        * rendering/style/QuotesData.cpp:
80011        (WebCore::QuotesData::create): Now returns a plain instance of QuotesData without the in place allocation.
80012        (WebCore):
80013        (WebCore::QuotesData::addPair): Adds an std::pair of strings ensuring quotes are always balanced.
80014        (WebCore::QuotesData::getOpenQuote):
80015        (WebCore::QuotesData::getCloseQuote):
80016        (WebCore::QuotesData::equals): Renamed equals (added the s).
80017        * rendering/style/QuotesData.h:
80018        (WebCore::QuotesData::create):
80019        (QuotesData):
80020        (WebCore::QuotesData::QuotesData):
80021        * rendering/style/RenderStyle.cpp:
80022        (WebCore::RenderStyle::setQuotes):
80023        * rendering/style/StyleRareInheritedData.cpp:
80024        (WebCore::StyleRareInheritedData::operator==):
80025
800262012-07-30  MORITA Hajime  <morrita@google.com>
80027
80028        Node::replaceChild() can create bad DOM topology with MutationEvent
80029        https://bugs.webkit.org/show_bug.cgi?id=92619
80030
80031        Reviewed by Ryosuke Niwa.
80032
80033        Node::replaceChild() calls insertBeforeCommon() after dispatching
80034        a MutationEvent event for removeChild(). But insertBeforeCommon()
80035        expects call sites to check the invariant and doesn't have
80036        suffient check. So a MutationEvent handler can let some bad tree
80037        topology to slip into insertBeforeCommon().
80038
80039        This change adds a guard for checking the invariant using
80040        checkReplaceChild() between removeChild() and insertBeforeCommon().
80041
80042        Test: fast/events/mutation-during-replace-child.html
80043
80044        * dom/ContainerNode.cpp:
80045        (WebCore::ContainerNode::replaceChild): Added a guard.
80046
800472012-07-30  Ryosuke Niwa  <rniwa@webkit.org>
80048
80049        Qt Windows build fix attempt after r124098.
80050
80051        * dom/GestureEvent.cpp:
80052
800532012-07-30  Wei James  <james.wei@intel.com>
80054
80055        [Chromium] Enable web audio IPP for x86 chromium android
80056        https://bugs.webkit.org/show_bug.cgi?id=91973
80057
80058        Reviewed by Tony Chang.
80059
80060        Include the IPP libraries at link-time for Android builds when
80061        compiling the Web Audio API with IPP support.
80062
80063        * WebCore.gyp/WebCore.gyp:
80064
800652012-07-30  Yoshifumi Inoue  <yosin@chromium.org>
80066
80067        [Forms] Get rid of Element::isReadOnlyFormControl other than CSS related
80068        https://bugs.webkit.org/show_bug.cgi?id=92612
80069
80070        Reviewed by Kent Tamura.
80071
80072        This patch replaces Element::isReadOnlyFormControl() not related to
80073        CSS selector matching to HTMLFormControlElement::readOnly() for
80074        preparation of introducing Element::shouldMatchReadWriteSelector(), bug 92602.
80075
80076        No new tests. This patch doesn't change behavior.
80077
80078        * html/shadow/SliderThumbElement.cpp:
80079        (WebCore::SliderThumbElement::defaultEventHandler): Changed isReadOnlyFormControl() to readOnly().
80080        * html/shadow/TextControlInnerElements.cpp:
80081        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Changed isReadOnlyFormControl() to readOnly().
80082        (WebCore::SpinButtonElement::defaultEventHandler): ditto.
80083        (WebCore::SpinButtonElement::step): ditto.
80084        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): ditto.
80085        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): ditto.
80086        * rendering/RenderTextControl.cpp:
80087        (updateUserModifyProperty): Changed isReadOnlyFormControl() to readOnly().
80088        * rendering/RenderThemeMac.mm:
80089        (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Changed isReadOnlyFormControl() to readOnly().
80090
800912012-07-30  Eric Seidel  <eric@webkit.org>
80092
80093        Grid Demo spends 1.5% of total time allocating Path objects in RenderBoxModelObject::paintBorderSides
80094        https://bugs.webkit.org/show_bug.cgi?id=92252
80095
80096        Reviewed by Simon Fraser.
80097
80098        This change introduces the concept of a "null Path" very similar to a null WTF::String.
80099        Just like String functions as a RefPtr around a StringImpl, Path (for most ports)
80100        functions as an OwnPtr around a PlatformPathPtr.
80101
80102        In various places in the code, we declare a local Path variable, but don't necessarily
80103        use that Path variable in all code paths, or might pass that Path variable along to GraphicsContext
80104        functions, without ever actually adding points to that Path.
80105        On most platforms, this Path default constructor was causing a malloc!
80106        In some of these case, the code-path in question (like paintBorderSides) can be quite hot.
80107        Introducing this null-Path and delaying instantiation of the PlatformPath object
80108        until it's actually needed, saves a malloc for these hot paths.
80109
80110        To test this, I loaded a few popular pages, and added printfs to both the Path constructor
80111        and destructor, logging during construction and destruction when the path was still null at destruction time.
80112
80113        This simple testing showed this to be a small win (avoiding mallocs) on many sites and a huge win for Google Spreadsheets:
80114        apple.com: 147 Paths created, 9 (6%) destroyed null.
80115        google.com: 58 Paths created, 26 (44%) destroyed null (google seems creating 5 paths every second after load?  1 of which is destroyed empty.)
80116        amazon.com: 130 Paths created, 130 (100%) destroyed null.
80117        Loading an empty spreadsheet from drive.google.com: 5237 created, 4861 destroyed null (92%!) :)
80118
80119        * platform/graphics/Path.h:
80120        (Path):
80121        (WebCore::Path::isNull):
80122        (WebCore::Path::ensurePlatformPath):
80123        * platform/graphics/cairo/CairoUtilities.cpp:
80124        (WebCore::appendWebCorePathToCairoContext):
80125        * platform/graphics/cairo/GraphicsContextCairo.cpp:
80126        (WebCore::GraphicsContext::fillPath):
80127        (WebCore::GraphicsContext::strokePath):
80128        (WebCore::GraphicsContext::clipPath):
80129        (WebCore::GraphicsContext::clip):
80130        * platform/graphics/cairo/PathCairo.cpp:
80131        (WebCore::Path::Path):
80132        (WebCore::Path::~Path):
80133        (WebCore::Path::ensurePlatformPath):
80134        (WebCore):
80135        (WebCore::Path::operator=):
80136        (WebCore::Path::clear):
80137        (WebCore::Path::isEmpty):
80138        (WebCore::Path::currentPoint):
80139        (WebCore::Path::translate):
80140        (WebCore::Path::moveTo):
80141        (WebCore::Path::addLineTo):
80142        (WebCore::Path::addRect):
80143        (WebCore::Path::addQuadCurveTo):
80144        (WebCore::Path::addBezierCurveTo):
80145        (WebCore::Path::addArc):
80146        (WebCore::Path::addArcTo):
80147        (WebCore::Path::addEllipse):
80148        (WebCore::Path::closeSubpath):
80149        (WebCore::Path::boundingRect):
80150        (WebCore::Path::strokeBoundingRect):
80151        (WebCore::Path::contains):
80152        (WebCore::Path::strokeContains):
80153        (WebCore::Path::apply):
80154        (WebCore::Path::transform):
80155        * platform/graphics/cg/GraphicsContextCG.cpp:
80156        (WebCore::GraphicsContext::drawPath):
80157        (WebCore::GraphicsContext::fillPath):
80158        (WebCore::GraphicsContext::strokePath):
80159        (WebCore::GraphicsContext::clipPath):
80160        (WebCore::GraphicsContext::clipOut):
80161        * platform/graphics/cg/PathCG.cpp:
80162        (WebCore::Path::Path):
80163        (WebCore::Path::~Path):
80164        (WebCore):
80165        (WebCore::Path::ensurePlatformPath):
80166        (WebCore::Path::operator=):
80167        (WebCore::Path::contains):
80168        (WebCore::Path::strokeContains):
80169        (WebCore::Path::translate):
80170        (WebCore::Path::boundingRect):
80171        (WebCore::Path::fastBoundingRect):
80172        (WebCore::Path::strokeBoundingRect):
80173        (WebCore::Path::moveTo):
80174        (WebCore::Path::addLineTo):
80175        (WebCore::Path::addQuadCurveTo):
80176        (WebCore::Path::addBezierCurveTo):
80177        (WebCore::Path::addArcTo):
80178        (WebCore::Path::platformAddPathForRoundedRect):
80179        (WebCore::Path::closeSubpath):
80180        (WebCore::Path::addArc):
80181        (WebCore::Path::addRect):
80182        (WebCore::Path::addEllipse):
80183        (WebCore::Path::clear):
80184        (WebCore::Path::isEmpty):
80185        (WebCore::Path::currentPoint):
80186        (WebCore::Path::apply):
80187        * platform/graphics/gpu/LoopBlinnPathProcessor.cpp:
80188        (WebCore):
80189        (WebCore::LoopBlinnPathProcessor::buildContours):
80190        * platform/graphics/mac/GraphicsContextMac.mm:
80191        (WebCore::GraphicsContext::drawFocusRing):
80192        * platform/graphics/openvg/PainterOpenVG.cpp:
80193        (WebCore::PainterOpenVG::drawPath):
80194        * platform/graphics/skia/GraphicsContextSkia.cpp:
80195        (WebCore::GraphicsContext::clip):
80196        (WebCore::GraphicsContext::canvasClip):
80197        (WebCore::GraphicsContext::clipOut):
80198        (WebCore::GraphicsContext::clipPath):
80199        (WebCore::GraphicsContext::fillPath):
80200        (WebCore::GraphicsContext::strokePath):
80201        * platform/graphics/skia/PathSkia.cpp:
80202        (WebCore::Path::Path):
80203        (WebCore::Path::~Path):
80204        (WebCore):
80205        (WebCore::Path::ensurePlatformPath):
80206        (WebCore::Path::operator=):
80207        (WebCore::Path::isEmpty):
80208        (WebCore::Path::hasCurrentPoint):
80209        (WebCore::Path::currentPoint):
80210        (WebCore::Path::contains):
80211        (WebCore::Path::translate):
80212        (WebCore::Path::boundingRect):
80213        (WebCore::Path::moveTo):
80214        (WebCore::Path::addLineTo):
80215        (WebCore::Path::addQuadCurveTo):
80216        (WebCore::Path::addBezierCurveTo):
80217        (WebCore::Path::addArcTo):
80218        (WebCore::Path::closeSubpath):
80219        (WebCore::Path::addArc):
80220        (WebCore::Path::addRect):
80221        (WebCore::Path::addEllipse):
80222        (WebCore::Path::clear):
80223        (WebCore::Path::apply):
80224        (WebCore::Path::transform):
80225        (WebCore::Path::strokeBoundingRect):
80226        (WebCore::Path::strokeContains):
80227        * platform/graphics/wince/GraphicsContextWinCE.cpp:
80228        (WebCore::GraphicsContext::fillPath):
80229        (WebCore::GraphicsContext::strokePath):
80230        * platform/graphics/wx/GraphicsContextWx.cpp:
80231        (WebCore::GraphicsContext::clipPath):
80232        (WebCore::GraphicsContext::fillPath):
80233        (WebCore::GraphicsContext::strokePath):
80234        * platform/graphics/wx/PathWx.cpp:
80235        (WebCore::Path::Path):
80236        (WebCore::Path::~Path):
80237        (WebCore::Path::boundingRect):
80238        (WebCore::Path::operator=):
80239        (WebCore::Path::ensurePlatformPath):
80240        (WebCore):
80241        (WebCore::Path::clear):
80242        (WebCore::Path::moveTo):
80243        (WebCore::Path::addLineTo):
80244        (WebCore::Path::addQuadCurveTo):
80245        (WebCore::Path::addBezierCurveTo):
80246        (WebCore::Path::addArcTo):
80247        (WebCore::Path::closeSubpath):
80248        (WebCore::Path::addArc):
80249        (WebCore::Path::addRect):
80250        (WebCore::Path::addEllipse):
80251        (WebCore::Path::transform):
80252        (WebCore::Path::currentPoint):
80253
802542012-07-30  Dominik Röttsches  <dominik.rottsches@intel.com>
80255
80256        Avoid Assertion Failure in HarfBuzzRun::characterIndexForXPosition
80257        https://bugs.webkit.org/show_bug.cgi?id=92376
80258
80259        Reviewed by Tony Chang.
80260
80261        Previously, the if condition in offsetForPosition gating the call to
80262        characterIndexForXPosition was comparing a different value than what was actually used
80263        as the argument to calling it. In some cases, this can lead to a minuscule difference
80264        when comparing the two floats - enough to trigger the assertion. To resolve this,
80265        the accuracy of the index calculation is improved by changing the types from int
80266        to floats and rephrasing the if condition to be exactly the same as what is checked
80267        for in the assertion.
80268
80269        Manual test ManualTests/harfbuzz-mouse-selection-crash.html added
80270        which reliably reproduces the assertion failure before this change.
80271
80272        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
80273        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition): Types changed to float.
80274        (WebCore::HarfBuzzShaper::offsetForPosition): Types changed to float, if condition rephrased.
80275        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
80276        (HarfBuzzRun):
80277
802782012-06-29  James Robinson  <jamesr@chromium.org>
80279
80280        [chromium] Remove WebTransformationMatrix::mapPoint overrides
80281        https://bugs.webkit.org/show_bug.cgi?id=90329
80282
80283        Reviewed by Adrienne Walker.
80284
80285        Add more functionality for mapping points to CCMathUtil and use it in CCLayerSorter / drawTileQuad. These
80286        mappings should never clip.
80287
80288        * platform/chromium/support/WebTransformationMatrix.cpp:
80289        * platform/graphics/chromium/LayerRendererChromium.cpp:
80290        (WebCore::LayerRendererChromium::drawTileQuad):
80291        * platform/graphics/chromium/cc/CCLayerSorter.cpp:
80292        (WebCore::CCLayerSorter::LayerShape::LayerShape):
80293        * platform/graphics/chromium/cc/CCMathUtil.cpp:
80294        (WebCore::mapHomogeneousPoint):
80295        (WebCore::CCMathUtil::mapPoint):
80296        (WebCore):
80297        * platform/graphics/chromium/cc/CCMathUtil.h:
80298        (WebCore::HomogeneousCoordinate::cartesianPoint3d):
80299        (HomogeneousCoordinate):
80300        (CCMathUtil):
80301
803022012-07-30  Anders Carlsson  <andersca@apple.com>
80303
80304        Crash in logging code if MIME type is null
80305        https://bugs.webkit.org/show_bug.cgi?id=92683
80306        <rdar://problem/11985295>
80307
80308        Reviewed by Dan Bernstein.
80309
80310        If the MIME type is null, try to figure it out from the URL extension. If this fails, return early instead of crashing
80311        trying to insert the null string into a hash set.
80312
80313        * loader/SubframeLoader.cpp:
80314        (WebCore::logPluginRequest):
80315
803162012-07-30  Alexis Menard  <alexis.menard@openbossa.org>
80317
80318        Build fix with newer bison 2.6.
80319        https://bugs.webkit.org/show_bug.cgi?id=92264
80320
80321        Reviewed by Adam Barth.
80322
80323        As stated in http://www.gnu.org/software/bison/manual/html_node/Table-of-Symbols.html
80324        YYLEX_PARAM and YYPARSE_PARAM are depecreated since version 1.875. So far all Mac OS
80325        version I had access to as well as recent Linux runs at least version 2.3 so it's safe
80326        to use the replacement of these deprecated macros in favor of %lex-param and %parse-param.
80327        As announced http://lists.gnu.org/archive/html/info-gnu/2012-07/msg00011.html with the release
80328        of version 2.6 YYLEX_PARAM and YYPARSE_PARAM are not supported anymore.
80329
80330        No new tests : build fix and the patch should not trigger any regressions
80331
80332        * css/CSSGrammar.y:
80333        * css/CSSParser.cpp:
80334        * xml/XPathGrammar.y: Refactored a bit to not use an intermediate PARSER define.
80335        * xml/XPathParser.cpp: bison 2.6 declare xpathyyparse in the .h file now, i.e. XPathGrammar.h
80336        therefore including this file within the namespace {} declarations leads to xpathyyparse being
80337        defined part of WebCore::XPath namespaces but the actual implementation of xpathyyparse is in XPathGrammar.cpp
80338        (generated) and not implemented within the WebCore::XPath so it lead to linking issues. Last, XPathGrammar.h needs 
80339        to be included after the other includes as it uses some XPath types. It breaks the style but CSSParser.cpp is doing the same.
80340
803412012-07-30  Sadrul Habib Chowdhury  <sadrul@chromium.org>
80342
80343        Propagate gesture events to plugins.
80344        https://bugs.webkit.org/show_bug.cgi?id=92281
80345
80346        Reviewed by Adam Barth.
80347
80348        Propagate gesture events to plugins. This change does not expose the gesture events
80349        to JavaScript, since there is no spec for that at the moment. Exposing gesture events
80350        to JavaScript will be done separately, once there is a spec for it.
80351
80352        Test: platform/chromium/plugins/gesture-events.html
80353
80354        * CMakeLists.txt:
80355        * GNUmakefile.list.am:
80356        * Target.pri:
80357        * WebCore.gypi:
80358        * WebCore.xcodeproj/project.pbxproj:
80359        * dom/EventNames.h:
80360        (WebCore):
80361        (WebCore::EventNames::isGestureEventType):
80362        (EventNames):
80363        * dom/GestureEvent.cpp: Added.
80364        (WebCore):
80365        (WebCore::GestureEvent::create):
80366        (WebCore::GestureEvent::initGestureEvent):
80367        (WebCore::GestureEvent::interfaceName):
80368        (WebCore::GestureEvent::GestureEvent):
80369        (WebCore::GestureEventDispatchMediator::GestureEventDispatchMediator):
80370        (WebCore::GestureEventDispatchMediator::event):
80371        (WebCore::GestureEventDispatchMediator::dispatchEvent):
80372        * dom/GestureEvent.h: Added.
80373        (WebCore):
80374        (GestureEvent):
80375        (WebCore::GestureEvent::~GestureEvent):
80376        (WebCore::GestureEvent::deltaX):
80377        (WebCore::GestureEvent::deltaY):
80378        (WebCore::GestureEvent::GestureEvent):
80379        (GestureEventDispatchMediator):
80380        (WebCore::GestureEventDispatchMediator::create):
80381        * dom/Node.cpp:
80382        (WebCore):
80383        (WebCore::Node::dispatchGestureEvent):
80384        * dom/Node.h:
80385        (WebCore):
80386        (Node):
80387        * page/EventHandler.cpp:
80388        (WebCore::EventHandler::clear):
80389        (WebCore::EventHandler::handleGestureEvent):
80390        * page/EventHandler.h:
80391
803922012-07-30  John Bates  <jbates@google.com>
80393
80394        Plumb vsync-enabled flag up to compositor thread and support disable-vsync
80395        https://bugs.webkit.org/show_bug.cgi?id=92323
80396
80397        Reviewed by James Robinson.
80398
80399        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
80400        (WebCore::CCFrameRateController::CCFrameRateController):
80401        (WebCore::CCFrameRateController::disableTimeSourceThrottling):
80402        (WebCore):
80403        (WebCore::CCFrameRateController::setActive):
80404        (WebCore::CCFrameRateController::postManualTick):
80405        (WebCore::CCFrameRateController::onTimerFired):
80406        (WebCore::CCFrameRateController::didBeginFrame):
80407        (WebCore::CCFrameRateController::didFinishFrame):
80408        * platform/graphics/chromium/cc/CCFrameRateController.h:
80409        (WebCore):
80410        (CCFrameRateController):
80411        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
80412        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
80413        (CCLayerTreeSettings):
80414        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
80415        (WebCore::CCThreadProxy::CCThreadProxy):
80416        (WebCore::CCThreadProxy::initializeImplOnImplThread):
80417        * platform/graphics/chromium/cc/CCThreadProxy.h:
80418        (CCThreadProxy):
80419
804202012-07-30  James Robinson  <jamesr@chromium.org>
80421
80422        [chromium] Add miscellaneous missing includes and OVERRIDE declarations in compositor code
80423        https://bugs.webkit.org/show_bug.cgi?id=92680
80424
80425        Reviewed by Adrienne Walker.
80426
80427        * platform/graphics/chromium/TextureCopier.h:
80428        (AcceleratedTextureCopier):
80429        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
80430        (CCLayerTreeHostImpl):
80431        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
80432        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
80433        * platform/graphics/chromium/cc/CCResourceProvider.h:
80434        (WebCore):
80435
804362012-07-30  Adrienne Walker  <enne@google.com>
80437
80438        [chromium] Remove dependency on ScrollbarTheme from the compositor
80439        https://bugs.webkit.org/show_bug.cgi?id=90528
80440
80441        Reviewed by James Robinson.
80442
80443        Tested by existing layout tests.
80444
80445        ScrollbarLayerChromium is modified to use the Platform API for
80446        WebScrollbar, WebScrollbarThemePainter, and WebScrollbarThemeGeometry.
80447        This prevents API dependencies from the compositor code into WebCore
80448        scrollbar and theme code.
80449
80450        CCScrollbarLayerImpl::CCScrollbar now implements the WebScrollbar API
80451        instead of the ScrollbarThemeClient API.
80452
80453        Also, CCScrollbarLayerImpl now no longer gets the theme from a static
80454        accessor. It now gets a "copy" of the theme from the main thread via
80455        WebScrollbarThemeGeometry, which is more correct for render theme
80456        scrollbars which were previously using the native theme to get part
80457        geometry. Using the correct theme unfortunately causes crashes due to
80458        bad casts in RenderScrollbarTheme, so this patch turns back off the
80459        use of ScrollbarLayerChromium for themed scrollbars until that can be
80460        resolved.
80461
80462        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
80463        (WebCore::createScrollbarLayer):
80464        * platform/ScrollbarThemeClient.h:
80465        (ScrollbarThemeClient):
80466        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
80467        (WebCore::ScrollbarLayerChromium::create):
80468        (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
80469        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
80470        (WebCore::ScrollbarBackgroundPainter::create):
80471        (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
80472        (ScrollbarBackgroundPainter):
80473        (WebCore::ScrollbarThumbPainter::create):
80474        (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
80475        (ScrollbarThumbPainter):
80476        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
80477        (WebCore::ScrollbarLayerChromium::setTexturePriorities):
80478        (WebCore::ScrollbarLayerChromium::update):
80479        * platform/graphics/chromium/ScrollbarLayerChromium.h:
80480        (ScrollbarLayerChromium):
80481        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
80482        (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
80483        (WebCore::CCScrollbarLayerImpl::setScrollbarData):
80484        (WebCore::toUVRect):
80485        (WebCore::CCScrollbarLayerImpl::appendQuads):
80486        (WebCore::CCScrollbarLayerImpl::CCScrollbar::isOverlay):
80487        (WebCore::CCScrollbarLayerImpl::CCScrollbar::value):
80488        (WebCore::CCScrollbarLayerImpl::CCScrollbar::location):
80489        (WebCore::CCScrollbarLayerImpl::CCScrollbar::size):
80490        (WebCore::CCScrollbarLayerImpl::CCScrollbar::enabled):
80491        (WebCore::CCScrollbarLayerImpl::CCScrollbar::maximum):
80492        (WebCore::CCScrollbarLayerImpl::CCScrollbar::totalSize):
80493        (WebCore::CCScrollbarLayerImpl::CCScrollbar::isScrollViewScrollbar):
80494        (WebCore::CCScrollbarLayerImpl::CCScrollbar::isScrollableAreaActive):
80495        (WebCore::CCScrollbarLayerImpl::CCScrollbar::getTickmarks):
80496        (WebCore::CCScrollbarLayerImpl::CCScrollbar::controlSize):
80497        (WebCore::CCScrollbarLayerImpl::CCScrollbar::pressedPart):
80498        (WebCore::CCScrollbarLayerImpl::CCScrollbar::hoveredPart):
80499        (WebCore::CCScrollbarLayerImpl::CCScrollbar::scrollbarOverlayStyle):
80500        (WebCore::CCScrollbarLayerImpl::CCScrollbar::orientation):
80501        (WebCore::CCScrollbarLayerImpl::CCScrollbar::isCustomScrollbar):
80502        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
80503        (CCScrollbarLayerImpl):
80504        (CCScrollbar):
80505
805062012-07-30  Andreas Kling  <kling@webkit.org>
80507
80508        REGRESSION(r123636): Heap-use-after-free in StyleResolver::collectMatchingRules.
80509        <http://webkit.org/b/92430>
80510
80511        Reviewed by Antti Koivisto.
80512
80513        Don't hold on to a reference to StyledElement::classNames() as that may become
80514        invalid after mutating the element's attribute data.
80515
80516        In this case it was happening below Element::hasAttributes() which is unfortunately
80517        naive enough to always serialize lazy attributes. That is a minor inefficiency that
80518        can be addressed in a separate patch.
80519
80520        Covered by valgrind on existing tests.
80521
80522        * css/StyleResolver.cpp:
80523        (WebCore::StyleResolver::collectMatchingRules):
80524
805252012-07-30  James Robinson  <jamesr@chromium.org>
80526
80527        [chromium] CCThreadTask should not depend on CrossThreadTask and does not need to depend on CrossThreadCopier
80528        https://bugs.webkit.org/show_bug.cgi?id=90132
80529
80530        Reviewed by David Levin.
80531
80532        CrossThreadTask is defined in WebCore/dom/ and depends on concepts like ScriptExecutionConcept. CCThreadTask,
80533        being in WebCore/platform/, should not depend on /dom/ or anything from that layer.
80534
80535        CrossThreadCopier is not a layering violation per se, but it's also not at all helpful for CCThreadTask - we
80536        never use any types for which it would be useful.
80537
80538        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
80539        (WebCore::CCThreadProxy::compositeAndReadback):
80540        (WebCore::CCThreadProxy::finishAllRendering):
80541        (WebCore::CCThreadProxy::initializeContext):
80542        (WebCore::CCThreadProxy::setVisible):
80543        (WebCore::CCThreadProxy::initializeLayerRenderer):
80544        (WebCore::CCThreadProxy::recreateContext):
80545        (WebCore::CCThreadProxy::implSideRenderingStats):
80546        (WebCore::CCThreadProxy::start):
80547        (WebCore::CCThreadProxy::stop):
80548        (WebCore::CCThreadProxy::forceSerializeOnSwapBuffers):
80549        (WebCore::CCThreadProxy::beginFrame):
80550        (WebCore::CCThreadProxy::acquireLayerTextures):
80551        * platform/graphics/chromium/cc/CCThreadTask.h:
80552        (CCThreadTask1):
80553        (WebCore::CCThreadTask1::create):
80554        (WebCore::CCThreadTask1::CCThreadTask1):
80555        (CCThreadTask2):
80556        (WebCore::CCThreadTask2::create):
80557        (WebCore::CCThreadTask2::CCThreadTask2):
80558        (CCThreadTask3):
80559        (WebCore::CCThreadTask3::create):
80560        (WebCore::CCThreadTask3::CCThreadTask3):
80561        (CCThreadTask4):
80562        (WebCore::CCThreadTask4::create):
80563        (WebCore::CCThreadTask4::CCThreadTask4):
80564        (CCThreadTask5):
80565        (WebCore::CCThreadTask5::create):
80566        (WebCore::CCThreadTask5::CCThreadTask5):
80567        (WebCore::createCCThreadTask):
80568
805692012-07-30  Paul Irish  <paul.irish@gmail.com>
80570
80571        Web Inspector: Rename Databases to Web SQL
80572        https://bugs.webkit.org/show_bug.cgi?id=92646
80573
80574        Reviewed by Pavel Feldman.
80575
80576        Renamed Databases to Web SQL. Drive-by fix for EmptyView
80577        selection.
80578
80579        * English.lproj/localizedStrings.js:
80580        * inspector/front-end/EmptyView.js:
80581        * inspector/front-end/ResourcesPanel.js:
80582
805832012-07-30  Tony Chang  <tony@chromium.org>
80584
80585        new flexbox should ignore float set on flexitems
80586        https://bugs.webkit.org/show_bug.cgi?id=70792
80587
80588        Reviewed by Ojan Vafai.
80589
80590        Force flex items to not float.
80591
80592        Test: css3/flexbox/floated-flexitem.html
80593
80594        * css/StyleResolver.cpp:
80595        (WebCore::StyleResolver::adjustRenderStyle): Force NoFloat on flex items.
80596
805972012-07-30  Adrienne Walker  <enne@google.com>
80598
80599        [chromium] Turn back on ScrollbarLayerChromium for Windows
80600        https://bugs.webkit.org/show_bug.cgi?id=92409
80601
80602        Reviewed by James Robinson.
80603
80604        This reverts r122791. As GDI issues were addressed in Chromium via
80605        http://src.chromium.org/viewvc/chrome?view=rev&revision=148215,
80606        scrollbar parts can now be composited on the thread.
80607
80608        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
80609        (WebCore::createScrollbarLayer):
80610
806112012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
80612
80613        Unreviewed, rolling out r124025.
80614        http://trac.webkit.org/changeset/124025
80615        https://bugs.webkit.org/show_bug.cgi?id=92658
80616
80617        Causes color-suggestion-picker-appearance layout test to time
80618        out on all Chromium platforms (Requested by tomhudson_ on
80619        #webkit).
80620
80621        * rendering/RenderThemeChromiumCommon.cpp:
80622        (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
80623
806242012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
80625
80626        Unreviewed, rolling out r123966 and r123967.
80627        http://trac.webkit.org/changeset/123966
80628        http://trac.webkit.org/changeset/123967
80629        https://bugs.webkit.org/show_bug.cgi?id=92656
80630
80631        This patch is causing assertion failures on the debug bot
80632        (also rolling out a dependent patch) (Requested by mrobinson
80633        on #webkit).
80634
80635        * GNUmakefile.am:
80636        * GNUmakefile.list.am:
80637        * platform/text/gtk/TextCheckerEnchant.cpp: Removed.
80638        * platform/text/gtk/TextCheckerEnchant.h: Removed.
80639
806402012-07-30  Julien Chaffraix  <jchaffraix@webkit.org>
80641
80642        ASSERTION FAILED: !rect.isEmpty()  : void WebCore::GraphicsContext::drawRect(const WebCore::IntRect &)
80643        https://bugs.webkit.org/show_bug.cgi?id=92187
80644
80645        Reviewed by Simon Fraser.
80646
80647        The border painting logic (RenderBoxModelObject::paintOneBorderSide) would pass a rect with a 0px length
80648        to RenderObject::drawLineForBoxSide. We do check the width (thickness) but not the length so we would pass
80649        the rect to GraphicsContext and hit the ASSERT. This change adds a check for the length too as it is the safest
80650        way, it means that we may still do unneeded operations before bailing out but that's an existing problem in the code.
80651
80652        Tests: fast/borders/0px-borders-no-line-height.html
80653               fast/borders/double-1px-border-assert.html
80654
80655        * rendering/RenderObject.cpp:
80656        (WebCore::RenderObject::drawLineForBoxSide):
80657        Added a 0px length check. While renaming confusing variables and re-using others,
80658        I also found a potential empty border that I fixed (tested by the 2nd case above).
80659
806602012-07-26  Stephen White  <senorblanco@chromium.org>
80661
80662        [chromium] Refactor the computation of resampled bitmap size in
80663        drawImage and drawPattern.
80664        https://bugs.webkit.org/show_bug.cgi?id=92408
80665
80666        Reviewed by Adrienne Walker.
80667
80668        We used to have a special-purpose function called TransformDimensions()
80669        which did pretty much the same thing as SkRect::mapRect() does.  This
80670        change unifies the drawPattern code to use mapRect() in the same way
80671        that drawImage() does.
80672
80673        Covered by existing tests, e.g., fast/backgrounds/size/*.
80674
80675        * platform/graphics/skia/ImageSkia.cpp:
80676        (WebCore):
80677        (WebCore::Image::drawPattern):
80678        Note:  we're now doing using the original (float) source rect, and
80679        converting to int only after applying the matrix transform.  This
80680        might result in different decisions about resampling mode, but it's
80681        more correct anyway.
80682
806832012-07-30  Vineet Chaudhary  <rgf748@motorola.com>
80684
80685        https://bugs.webkit.org/show_bug.cgi?id=92642
80686        [Bindings]Remove custom JS/V8 bindings for WebSocket::close() using [Clamp]
80687
80688        Reviewed by Kentaro Hara.
80689
80690        With support of [Clamp] as extended attribute we can replace custom bindings from WebSocket::close().
80691        Spec for WebSocket::close() : http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#websocket
80692
80693        No new tests. There should be no behavioural changes 
80694        Existing tests under http/websocket/tests/hybi/ should cover this.
80695
80696        * Modules/websockets/WebSocket.h:
80697        (WebCore::WebSocket::close):
80698        * Modules/websockets/WebSocket.idl: Used [Clamp].
80699        * bindings/js/JSWebSocketCustom.cpp: Removed custom call close().
80700        (WebCore):
80701        * bindings/scripts/CodeGeneratorJS.pm:
80702        (GenerateParametersCheck):
80703        * bindings/scripts/CodeGeneratorV8.pm:
80704        (GenerateParametersCheck):
80705        * bindings/scripts/test/JS/JSTestObj.cpp:
80706        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
80707        * bindings/scripts/test/V8/V8TestObj.cpp:
80708        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
80709        * bindings/v8/custom/V8WebSocketCustom.cpp: Removed custom call close().
80710        (WebCore):
80711
807122012-07-29  Vsevolod Vlasov  <vsevik@chromium.org>
80713
80714        Web Inspector: Resource agent's reference to cached resources should be weak.
80715        https://bugs.webkit.org/show_bug.cgi?id=92108
80716
80717        Reviewed by Pavel Feldman.
80718
80719        NetworkResourcesData now stores a raw pointer to CachedResource.
80720        CachedResource now notifies InspectorInstrumentation that it will be destroyed.
80721        InspectorInstrumentation stores a set of InstrumentingAgents and broadcasts willDestroyCachedResource event to all available resourceAgents.
80722        Destroyed resources content is saved to NetworkResourcesData.
80723
80724        Tests: http/tests/inspector/network/cached-resource-destroyed-moved-to-storage.html
80725               http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html
80726
80727        * WebCore.exp.in:
80728        * inspector/InspectorController.cpp:
80729        (WebCore::InspectorController::InspectorController):
80730        (WebCore::InspectorController::inspectedPageDestroyed):
80731        * inspector/InspectorInstrumentation.cpp:
80732        (WebCore):
80733        (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
80734        (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
80735        (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
80736        * inspector/InspectorInstrumentation.h:
80737        (InspectorInstrumentation):
80738        (WebCore::InspectorInstrumentation::willDestroyCachedResource):
80739        (WebCore):
80740        * inspector/InspectorResourceAgent.cpp:
80741        (WebCore::InspectorResourceAgent::didReceiveData):
80742        (WebCore::InspectorResourceAgent::willDestroyCachedResource):
80743        (WebCore):
80744        (WebCore::InspectorResourceAgent::getResponseBody):
80745        * inspector/InspectorResourceAgent.h:
80746        (InspectorResourceAgent):
80747        * inspector/NetworkResourcesData.cpp:
80748        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
80749        (WebCore::NetworkResourcesData::ResourceData::setContent):
80750        (WebCore::NetworkResourcesData::setResourceContent):
80751        (WebCore::NetworkResourcesData::removeCachedResource):
80752        (WebCore):
80753        * inspector/NetworkResourcesData.h:
80754        (ResourceData):
80755        (WebCore::NetworkResourcesData::ResourceData::base64Encoded):
80756        (WebCore::NetworkResourcesData::ResourceData::cachedResource):
80757        (NetworkResourcesData):
80758        * loader/cache/CachedResource.cpp:
80759        (WebCore::CachedResource::~CachedResource):
80760        (WebCore::CachedResource::removeClient):
80761        (WebCore::CachedResource::deleteIfPossible):
80762        (WebCore):
80763        * loader/cache/CachedResource.h:
80764        (CachedResource):
80765        * loader/cache/CachedResourceLoader.cpp:
80766        (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
80767        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
80768        (WebCore::CachedResourceLoader::clearPreloads):
80769        * loader/cache/CachedResourceLoader.h:
80770        (CachedResourceLoader):
80771        * loader/cache/MemoryCache.cpp:
80772        (WebCore::MemoryCache::evict):
80773        * testing/InternalSettings.cpp:
80774        * testing/Internals.cpp:
80775        (WebCore::Internals::garbageCollectDocumentResources):
80776        (WebCore):
80777        * testing/Internals.h:
80778        (Internals):
80779        * testing/Internals.idl:
80780
807812012-07-30  Shinya Kawanaka  <shinyak@chromium.org>
80782
80783        Prohibit having AuthorShadowDOM of input or textarea element for a while and having a flag to enable it in Internals.
80784        https://bugs.webkit.org/show_bug.cgi?id=92611
80785
80786        Reviewed by Hajime Morita.
80787
80788        Prohibit having AuthorShadowDOM of input elemnet unless a flag in RuntimeEnabledFeatures is not enabled.
80789        The flag can be enabled in Internals.
80790
80791        The elements in UserAgentShadowDOM of input element assume that they have a renderer when the input
80792        element has a renderer. However, this does not hold when AuthorShadowDOM is added to input element.
80793        So until we fix the issue, we should disable to have AuthorShadowDOM for input element, because it may
80794        cause crashes and security problems.
80795
80796        Tests: fast/dom/shadow/input-with-validation-without-shadow.html
80797               fast/dom/shadow/input-with-validation.html
80798               fast/dom/shadow/shadow-disable.html
80799
80800        * bindings/generic/RuntimeEnabledFeatures.cpp:
80801        (WebCore):
80802        * bindings/generic/RuntimeEnabledFeatures.h:
80803        (RuntimeEnabledFeatures):
80804        (WebCore::RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled):
80805        (WebCore::RuntimeEnabledFeatures::setAuthorShadowDOMForAnyElementEnabled):
80806        * dom/ShadowRoot.cpp:
80807        (WebCore::allowsAuthorShadowRoot): The input element or textarea element does not allow to have a ShadowDOM unless
80808        is a flag in RuntimeEnabledFeatures is not enabled.
80809        * html/HTMLInputElement.h:
80810        (WebCore::isHTMLInputElement):
80811        (WebCore):
80812        * html/HTMLTextAreaElement.h:
80813        (WebCore::isHTMLTextAreaElement):
80814        (WebCore):
80815        * testing/Internals.cpp:
80816        (WebCore::Internals::setAuthorShadowDOMForAnyElementEnabled):
80817        (WebCore):
80818        * testing/Internals.h:
80819        (Internals):
80820        * testing/Internals.idl:
80821
808222012-07-30  Pavel Feldman  <pfeldman@chromium.org>
80823
80824        Web Inspector: support --line-numbers mapping for SASS
80825        https://bugs.webkit.org/show_bug.cgi?id=92400
80826
80827        Reviewed by Vsevolod Vlasov.
80828
80829        There is --debug-info and --line-numbers ways of referencing the source scss file, adding support for --line-numbers here.
80830
80831        * inspector/front-end/SASSSourceMapping.js:
80832        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
80833        (WebInspector.SASSSourceMapping.prototype._resourceAdded):
80834        (_bindUISourceCode):
80835
808362012-07-30  Keishi Hattori  <keishi@webkit.org>
80837
80838        Implement datalist UI for input type color for Chromium
80839        https://bugs.webkit.org/show_bug.cgi?id=92075
80840
80841        Reviewed by Kent Tamura.
80842
80843        Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
80844
80845        * rendering/RenderThemeChromiumCommon.cpp:
80846        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
80847
808482012-07-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
80849
80850        Wheel events on a page with frames are not handled in fixed layout
80851        https://bugs.webkit.org/show_bug.cgi?id=90550
80852
80853        Reviewed by Antonio Gomes.
80854
80855        Based on patch by Andras Becsi.
80856
80857        Frame-rect size is not the right value to check against to see if the document
80858        can be contained within the full visible content rect, since it does not handle
80859        fixedVisibleContentRect. Instead visibleContentRect(true) should be used which
80860        returns the full visible content rect disregarding scrollbars, and which is
80861        the same a frame-rect size when fixedVisibleContentRect is not set.
80862
80863        * platform/ScrollView.cpp:
80864        (WebCore::ScrollView::updateScrollbars):
80865
808662012-07-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
80867
80868        There is no way to tell whether an element can be activated or not
80869        https://bugs.webkit.org/show_bug.cgi?id=92093
80870
80871        Reviewed by Antonio Gomes.
80872
80873        This patch adds the willRespondToMouseClickEvents and willRespondToMouseMoveEvents
80874        functions, named after similar functions in the iOS fork of WebKit.
80875
80876        Touch-adjustment will now use these two functions, which improves accuracy when
80877        targeting shadow-dom elements, and also means touch adjustment will prefer enabled
80878        form-elements over disabled ones.
80879
80880        Test: touchadjustment/disabled-formelements.html
80881
80882        * dom/Node.cpp:
80883        (WebCore::Node::willRespondToMouseMoveEvents):
80884        (WebCore::Node::willRespondToMouseClickEvents):
80885        * dom/Node.h:
80886        (Node):
80887        * editing/DeleteButton.h:
80888        * html/HTMLAnchorElement.cpp:
80889        (WebCore::HTMLAnchorElement::willRespondToMouseClickEvents):
80890        * html/HTMLAnchorElement.h:
80891        (HTMLAnchorElement):
80892        * html/HTMLButtonElement.cpp:
80893        (WebCore::HTMLButtonElement::willRespondToMouseClickEvents):
80894        * html/HTMLButtonElement.h:
80895        (HTMLButtonElement):
80896        * html/HTMLInputElement.cpp:
80897        (WebCore::HTMLInputElement::willRespondToMouseClickEvents):
80898        * html/HTMLInputElement.h:
80899        (HTMLInputElement):
80900        * html/HTMLLabelElement.cpp:
80901        (WebCore::HTMLLabelElement::willRespondToMouseClickEvents):
80902        * html/HTMLLabelElement.h:
80903        (HTMLLabelElement):
80904        * html/HTMLMediaElement.cpp:
80905        (WebCore::HTMLMediaElement::willRespondToMouseClickEvents):
80906        * html/HTMLMediaElement.h:
80907        * html/HTMLSummaryElement.cpp:
80908        (WebCore::HTMLSummaryElement::willRespondToMouseClickEvents):
80909        * html/HTMLSummaryElement.h:
80910        (HTMLSummaryElement):
80911        * html/shadow/CalendarPickerElement.cpp:
80912        (WebCore::CalendarPickerElement::willRespondToMouseClickEvents):
80913        * html/shadow/CalendarPickerElement.h:
80914        (CalendarPickerElement):
80915        * html/shadow/MediaControlElements.cpp:
80916        (WebCore::MediaControlTimelineElement::willRespondToMouseClickEvents):
80917        (WebCore::MediaControlTimelineElement::setPosition):
80918        (WebCore::MediaControlVolumeSliderElement::willRespondToMouseMoveEvents):
80919        (WebCore::MediaControlVolumeSliderElement::willRespondToMouseClickEvents):
80920        * html/shadow/MediaControlElements.h:
80921        (MediaControlTimelineElement):
80922        (MediaControlVolumeSliderElement):
80923        * html/shadow/MediaControlRootElement.h:
80924        * html/shadow/SliderThumbElement.cpp:
80925        (WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
80926        (WebCore::SliderThumbElement::willRespondToMouseClickEvents):
80927        * html/shadow/SliderThumbElement.h:
80928        (SliderThumbElement):
80929        * html/shadow/TextControlInnerElements.cpp:
80930        (WebCore::SearchFieldResultsButtonElement::willRespondToMouseClickEvents):
80931        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
80932        (WebCore::SpinButtonElement::willRespondToMouseMoveEvents):
80933        (WebCore::SpinButtonElement::willRespondToMouseClickEvents):
80934        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
80935        * html/shadow/TextControlInnerElements.h:
80936        (SearchFieldResultsButtonElement):
80937        (SearchFieldCancelButtonElement):
80938        (SpinButtonElement):
80939        * html/shadow/TextFieldDecorationElement.cpp:
80940        (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents):
80941        * html/shadow/TextFieldDecorationElement.h:
80942        (TextFieldDecorationElement):
80943        * page/TouchAdjustment.cpp:
80944        (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
80945
809462012-07-30  Vsevolod Vlasov  <vsevik@chromium.org>
80947
80948        Web Inspector: Content size variables in NetworkResourcesData should have size_t type instead of int.
80949        https://bugs.webkit.org/show_bug.cgi?id=92618
80950
80951        Reviewed by Yury Semikhatsky.
80952
80953        Changed content size variables type in NetworkResourcesData from int to size_t.
80954        Drive-by: Switched String length calculation to recently added StringImpl's sizeInBytes.
80955
80956        * inspector/NetworkResourcesData.cpp:
80957        (WebCore::NetworkResourcesData::ResourceData::removeContent):
80958        (WebCore::NetworkResourcesData::ResourceData::dataLength):
80959        (WebCore::NetworkResourcesData::ResourceData::appendData):
80960        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
80961        (WebCore::NetworkResourcesData::setResourceContent):
80962        (WebCore::NetworkResourcesData::maybeAddResourceData):
80963        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
80964        (WebCore::NetworkResourcesData::setResourcesDataSizeLimits):
80965        (WebCore::NetworkResourcesData::ensureFreeSpace):
80966        * inspector/NetworkResourcesData.h:
80967        (ResourceData):
80968        (NetworkResourcesData):
80969
809702012-07-30  Hayato Ito  <hayato@chromium.org>
80971
80972        Remove an useless member variable, m_shouldPreventDispatch, from EventDispatcher.
80973        https://bugs.webkit.org/show_bug.cgi?id=92625
80974
80975        Reviewed by Hajime Morita.
80976
80977        EventDispatcher::m_shouldPreventDispatch does not have any effects. We can remove that.
80978
80979        No new tests, no behavior change.
80980
80981        * dom/EventDispatcher.cpp:
80982        (WebCore::EventDispatcher::EventDispatcher):
80983        (WebCore::EventDispatcher::dispatchEvent):
80984        * dom/EventDispatcher.h:
80985        (EventDispatcher):
80986
809872012-07-30  Hayato Ito  <hayato@chromium.org>
80988
80989        Remove an useless member variable, m_shouldPreventDispatch, from EventDispatcher.
80990        https://bugs.webkit.org/show_bug.cgi?id=92625
80991
80992        Reviewed by Hajime Morita.
80993
80994        EventDispatcher::m_shouldPreventDispatch does not have any effects. We can remove that.
80995
80996        No new tests, no behavior change.
80997
80998        * dom/EventDispatcher.cpp:
80999        (WebCore::EventDispatcher::EventDispatcher):
81000        (WebCore::EventDispatcher::dispatchEvent):
81001        * dom/EventDispatcher.h:
81002        (EventDispatcher):
81003
810042012-07-26  Yury Semikhatsky  <yurys@chromium.org>
81005
81006        Web Inspector: make MemoryInstrumentation methods private
81007        https://bugs.webkit.org/show_bug.cgi?id=92379
81008
81009        Reviewed by Vsevolod Vlasov.
81010
81011        MemoryInstrumentation was refactored.
81012        - All reporting methods on MemoryInstrumentation except add*Object are
81013          private to enforce MemoryClassInfo usage.
81014        - MemoryInstrumentation::Add*Member methods renamed to Add*Object
81015        - String reporting is implemented directly in the MemoryInstrumentation,
81016          not in its descendants.
81017
81018        * CMakeLists.txt:
81019        * GNUmakefile.list.am:
81020        * WebCore.gypi:
81021        * WebCore.vcproj/WebCore.vcproj:
81022        * WebCore.xcodeproj/project.pbxproj:
81023        * bindings/v8/ScriptProfiler.cpp:
81024        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
81025        * dom/MemoryInstrumentation.cpp: Added.
81026        (WebCore):
81027        (WebCore::MemoryInstrumentation::addString):
81028        * dom/MemoryInstrumentation.h:
81029        (WebCore::MemoryInstrumentation::addInstrumentedObject):
81030        (WebCore::MemoryInstrumentation::addObject):
81031        (MemoryInstrumentation):
81032        (InstrumentedPointerBase):
81033        (WebCore::MemoryInstrumentation::InstrumentedPointerBase::~InstrumentedPointerBase):
81034        (InstrumentedPointer):
81035        (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
81036        (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
81037        (WebCore::MemoryInstrumentation::OwningTraits::addObject):
81038        (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
81039        (WebCore::MemoryClassInfo::addInstrumentedMember):
81040        (WebCore::MemoryClassInfo::addMember):
81041        (WebCore):
81042        (WebCore::MemoryInstrumentation::addObjectImpl):
81043        (WebCore::MemoryInstrumentation::addInstrumentedCollection):
81044        (WebCore::MemoryInstrumentation::calculateContainerSize):
81045        * inspector/InspectorMemoryAgent.cpp:
81046        (WebCore):
81047
810482012-07-30  Alexander Pavlov  <apavlov@chromium.org>
81049
81050        Web Inspector: [Styles] No color swatch for the SVG "fill" and "stroke" property values
81051        https://bugs.webkit.org/show_bug.cgi?id=92638
81052
81053        Reviewed by Vsevolod Vlasov.
81054
81055        Added the "fill" and "stroke" properties to the list of color-aware properties.
81056
81057        * inspector/front-end/CSSKeywordCompletions.js:
81058
810592012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
81060
81061        Unreviewed, rolling out r124000.
81062        http://trac.webkit.org/changeset/124000
81063        https://bugs.webkit.org/show_bug.cgi?id=92632
81064
81065        seems to have broken chromium Range_InstanceSizeUnknown unit
81066        test across many platforms (Requested by tomhudson on
81067        #webkit).
81068
81069        * WebCore.exp.in:
81070        * inspector/InspectorController.cpp:
81071        (WebCore::InspectorController::InspectorController):
81072        (WebCore::InspectorController::inspectedPageDestroyed):
81073        * inspector/InspectorInstrumentation.cpp:
81074        (WebCore):
81075        * inspector/InspectorInstrumentation.h:
81076        (InspectorInstrumentation):
81077        * inspector/InspectorResourceAgent.cpp:
81078        (WebCore::InspectorResourceAgent::didReceiveData):
81079        (WebCore::InspectorResourceAgent::getResponseBody):
81080        * inspector/InspectorResourceAgent.h:
81081        (InspectorResourceAgent):
81082        * inspector/NetworkResourcesData.cpp:
81083        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
81084        (WebCore::NetworkResourcesData::ResourceData::setContent):
81085        (WebCore::NetworkResourcesData::setResourceContent):
81086        * inspector/NetworkResourcesData.h:
81087        (ResourceData):
81088        (WebCore::NetworkResourcesData::ResourceData::cachedResource):
81089        (NetworkResourcesData):
81090        * loader/cache/CachedResource.cpp:
81091        (WebCore::CachedResource::~CachedResource):
81092        (WebCore::CachedResource::removeClient):
81093        (WebCore::CachedResource::deleteIfPossible):
81094        (WebCore):
81095        * loader/cache/CachedResource.h:
81096        (CachedResource):
81097        * loader/cache/CachedResourceLoader.cpp:
81098        (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
81099        (WebCore::CachedResourceLoader::clearPreloads):
81100        * loader/cache/CachedResourceLoader.h:
81101        (CachedResourceLoader):
81102        * loader/cache/MemoryCache.cpp:
81103        (WebCore::MemoryCache::evict):
81104        * testing/InternalSettings.cpp:
81105        * testing/Internals.cpp:
81106        * testing/Internals.h:
81107        (Internals):
81108        * testing/Internals.idl:
81109
811102012-07-30  Hayato Ito  <hayato@chromium.org>
81111
81112        Remove an unused member variable, m_originalTarget, from EventDispatcher.
81113        https://bugs.webkit.org/show_bug.cgi?id=92614
81114
81115        Reviewed by Andreas Kling.
81116
81117        No one uses EventDispatcher::m_originalTarget.
81118
81119        No new tests, no behavior change.
81120
81121        * dom/EventDispatcher.h:
81122        (EventDispatcher):
81123
811242012-07-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
81125
81126        [Qt] Fix issues remaining with fixed positioned layers
81127        https://bugs.webkit.org/show_bug.cgi?id=92528
81128
81129        Reviewed by Noam Rosenthal.
81130
81131        * platform/graphics/texmap/TextureMapperLayer.cpp:
81132        (WebCore::TextureMapperLayer::syncCompositingStateSelf):
81133        Make sure that the delta is used when syncCompositingStateSelf is called afterward.
81134        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
81135        * platform/graphics/texmap/TextureMapperLayer.h:
81136        Use a FloatSize instead of an IntPoint for the delta.
81137        (TextureMapperLayer):
81138        (WebCore::TextureMapperLayer::adjustedPosition):
81139
811402012-07-30  Patrick Gansterer  <paroga@webkit.org>
81141
81142        Replace UnicodeWinCE with UnicodeWchar
81143        https://bugs.webkit.org/show_bug.cgi?id=92539
81144
81145        Reviewed by Ryosuke Niwa.
81146
81147        UnicodeWinCE never contained WinCE specific code. UnicodeWchar
81148        is a replacement for it, which is mainly based on the functions
81149        from <wchar.h>. It is ment as a minimal Unicode backend, which
81150        can be used very easy and has no external dependencies.
81151
81152        * platform/text/TextEncoding.cpp:
81153        (WebCore::TextEncoding::encode):
81154        * platform/text/TextEncodingRegistry.cpp:
81155        (WebCore::extendTextCodecMaps):
81156
811572012-07-30  Hayato Ito  <hayato@chromium.org>
81158
81159        Remove unnecessary code which set event's target from EventDispatcher::dispatchEvent.
81160        https://bugs.webkit.org/show_bug.cgi?id=92613
81161
81162        Reviewed by Hajime Morita.
81163
81164        EventContext::handleLocalEvents does all required jobs so we don't
81165        need to set target in EventDispacher::dispatchEvent() for TARGET phase.
81166
81167        No new tests, no behavior change.
81168
81169        * dom/EventDispatcher.cpp:
81170        (WebCore::EventDispatcher::dispatchEvent):
81171
811722012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
81173
81174        Unreviewed, rolling out r124004.
81175        http://trac.webkit.org/changeset/124004
81176        https://bugs.webkit.org/show_bug.cgi?id=92622
81177
81178        Broke Android build (Requested by keishi on #webkit).
81179
81180        * rendering/RenderThemeChromiumCommon.cpp:
81181        (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
81182
811832012-07-30  Pavel Feldman  <pfeldman@chromium.org>
81184
81185        Web Inspector: element tag disappears after editing
81186        https://bugs.webkit.org/show_bug.cgi?id=92385
81187
81188        Reviewed by Vsevolod Vlasov.
81189
81190        This has regressed when we started hiding elements panel upon
81191        batch updates. Narrowing hiding cases, updating selection
81192        in on-screen mode only.
81193
81194        * inspector/front-end/ElementsTreeOutline.js:
81195        (WebInspector.ElementsTreeElement.prototype.updateSelection):
81196
811972012-07-26  Yury Semikhatsky  <yurys@chromium.org>
81198
81199        Web Inspector: move StringImpl size calculation to StringImpl
81200        https://bugs.webkit.org/show_bug.cgi?id=92359
81201
81202        Reviewed by Pavel Feldman.
81203
81204        Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
81205        StringImpl::sizeInBytes();
81206
81207        * inspector/InspectorMemoryAgent.cpp:
81208        (WebCore):
81209
812102012-07-30  Pavel Feldman  <pfeldman@chromium.org>
81211
81212        Web Inspector: workers inspector is broken in the remote debugging mode
81213        https://bugs.webkit.org/show_bug.cgi?id=92540
81214
81215        Reviewed by Yury Semikhatsky.
81216
81217        The problem was that worker manager re-used complete url with query parameters
81218        for spin-off worker front-ends. As a result, in case of remote debugging, newly
81219        created front-ends were connecting to the same web socket (because of the ws parameter).
81220
81221        * inspector/front-end/WorkerManager.js:
81222        (WebInspector.WorkerManager.isDedicatedWorkerFrontend):
81223        * inspector/front-end/inspector.js:
81224
812252012-07-30  Keishi Hattori  <keishi@webkit.org>
81226
81227        Implement datalist UI for input type color for Chromium
81228        https://bugs.webkit.org/show_bug.cgi?id=92075
81229
81230        Reviewed by Kent Tamura.
81231
81232        Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
81233
81234        * rendering/RenderThemeChromiumCommon.cpp:
81235        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
81236
812372012-07-30  Mario Sanchez Prada  <msanchez@igalia.com>
81238
81239        REGRESSION (r123767): platform/gtk/accessibility/object-with-title.html failing on GTK
81240        https://bugs.webkit.org/show_bug.cgi?id=92477
81241
81242        Reviewed by Chris Fleizach.
81243
81244        Consider title and accessibilityDescription together with helpText to
81245        decide whether an object should be exposed in the accessibility tree.
81246
81247        * accessibility/AccessibilityRenderObject.cpp:
81248        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
81249
812502012-07-29  Vsevolod Vlasov  <vsevik@chromium.org>
81251
81252        Web Inspector: Resource agent's reference to cached resources should be weak.
81253        https://bugs.webkit.org/show_bug.cgi?id=92108
81254
81255        Reviewed by Pavel Feldman.
81256
81257        NetworkResourcesData now stores a raw pointer to CachedResource.
81258        CachedResource now notifies InspectorInstrumentation that it will be destroyed.
81259        InspectorInstrumentation stores a set of InstrumentingAgents and broadcasts willDestroyCachedResource event to all available resourceAgents.
81260        Destroyed resources content is saved to NetworkResourcesData.
81261
81262        Tests: http/tests/inspector/network/cached-resource-destroyed-moved-to-storage.html
81263               http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html
81264
81265        * WebCore.exp.in:
81266        * inspector/InspectorController.cpp:
81267        (WebCore::InspectorController::InspectorController):
81268        (WebCore::InspectorController::inspectedPageDestroyed):
81269        * inspector/InspectorInstrumentation.cpp:
81270        (WebCore):
81271        (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
81272        (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
81273        (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
81274        * inspector/InspectorInstrumentation.h:
81275        (InspectorInstrumentation):
81276        (WebCore::InspectorInstrumentation::willDestroyCachedResource):
81277        (WebCore):
81278        * inspector/InspectorResourceAgent.cpp:
81279        (WebCore::InspectorResourceAgent::didReceiveData):
81280        (WebCore::InspectorResourceAgent::willDestroyCachedResource):
81281        (WebCore):
81282        (WebCore::InspectorResourceAgent::getResponseBody):
81283        * inspector/InspectorResourceAgent.h:
81284        (InspectorResourceAgent):
81285        * inspector/NetworkResourcesData.cpp:
81286        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
81287        (WebCore::NetworkResourcesData::ResourceData::setContent):
81288        (WebCore::NetworkResourcesData::setResourceContent):
81289        (WebCore::NetworkResourcesData::removeCachedResource):
81290        (WebCore):
81291        * inspector/NetworkResourcesData.h:
81292        (ResourceData):
81293        (WebCore::NetworkResourcesData::ResourceData::base64Encoded):
81294        (WebCore::NetworkResourcesData::ResourceData::cachedResource):
81295        (NetworkResourcesData):
81296        * loader/cache/CachedResource.cpp:
81297        (WebCore::CachedResource::~CachedResource):
81298        (WebCore::CachedResource::removeClient):
81299        (WebCore::CachedResource::deleteIfPossible):
81300        (WebCore):
81301        * loader/cache/CachedResource.h:
81302        (CachedResource):
81303        * loader/cache/CachedResourceLoader.cpp:
81304        (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
81305        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
81306        (WebCore::CachedResourceLoader::clearPreloads):
81307        * loader/cache/CachedResourceLoader.h:
81308        (CachedResourceLoader):
81309        * loader/cache/MemoryCache.cpp:
81310        (WebCore::MemoryCache::evict):
81311        * testing/InternalSettings.cpp:
81312        * testing/Internals.cpp:
81313        (WebCore::Internals::garbageCollectDocumentResources):
81314        (WebCore):
81315        * testing/Internals.h:
81316        (Internals):
81317        * testing/Internals.idl:
81318
813192012-07-29  YoungTaeck Song  <youngtaeck.song@samsung.com>
81320
81321        [WK2][EFL] Accelerated compositing support using TextureMapper on Efl WebKit2
81322        https://bugs.webkit.org/show_bug.cgi?id=91583
81323
81324        Reviewed by Noam Rosenthal.
81325
81326        This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
81327        This patch adds Texture Mapper related files to PlatformEfl.cmake.
81328        And wrapped TextureMapperLayer and TextureMapperBackingStore with USE(ACCELERATED_COMPOSITING) for fixing building error when disable ACCELERATED_COMPOSITING.
81329
81330        * CMakeLists.txt:
81331        * PlatformEfl.cmake:
81332        * platform/graphics/GraphicsLayer.cpp:
81333        (WebCore):
81334        * platform/graphics/GraphicsLayer.h:
81335        (GraphicsLayer):
81336        * platform/graphics/GraphicsLayerAnimation.cpp:
81337        * platform/graphics/GraphicsLayerAnimation.h:
81338        * platform/graphics/PlatformLayer.h:
81339        (WebCore):
81340        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
81341        * platform/graphics/texmap/TextureMapperBackingStore.h:
81342        * platform/graphics/texmap/TextureMapperLayer.h:
81343
813442012-07-29  YoungTaeck Song  <youngtaeck.song@samsung.com>
81345
81346        [WK2][EFL] TILED_BACKING_STORE support on Efl WebKit2
81347        https://bugs.webkit.org/show_bug.cgi?id=91582
81348
81349        Reviewed by Noam Rosenthal.
81350
81351        This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
81352        This patch adds TILED_BACKING_STORE related files to CMakeLists.txt and PlatformEfl.cmake
81353
81354        * CMakeLists.txt:
81355        * PlatformEfl.cmake:
81356
813572012-07-29  Keishi Hattori  <keishi@webkit.org>
81358
81359        Fix removing invalid values from color input suggestions
81360        https://bugs.webkit.org/show_bug.cgi?id=92502
81361
81362        Reviewed by Kent Tamura.
81363
81364        Make ColorInputType::typeMismatchFor() return false for invalid color
81365        values so that they don't appear in the list of suggestions that
81366        ColorInputType::suggestions() returns.
81367
81368        No new tests. Tests to be added in Bug 92075.
81369
81370        * html/ColorInputType.cpp:
81371        (WebCore::ColorInputType::typeMismatchFor):
81372        (WebCore):
81373        * html/ColorInputType.h:
81374        (ColorInputType):
81375
813762012-07-29  Li Yin  <li.yin@intel.com>
81377
81378        getChannelData should raise exception when index is more than numberOfChannels.
81379        https://bugs.webkit.org/show_bug.cgi?id=92223
81380
81381        Reviewed by Kentaro Hara.
81382
81383        Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
81384        In getChannelData function, the index value MUST be less than numberOfChannels
81385        or an exception will be thrown.
81386
81387        Test: webaudio/audiobuffer.html
81388
81389        * Modules/webaudio/AudioBuffer.cpp:
81390        (WebCore::AudioBuffer::getChannelData):
81391        (WebCore):
81392        * Modules/webaudio/AudioBuffer.h:
81393        (WebCore):
81394        (AudioBuffer):
81395        * Modules/webaudio/AudioBuffer.idl: raise exception when index is not less than numberOfChannels.
81396
813972012-07-29  Sukolsak Sakshuwong  <sukolsak@google.com>
81398
81399        forward-delete in the last cell of a table moves the caret after the table
81400        https://bugs.webkit.org/show_bug.cgi?id=24250
81401
81402        Reviewed by Ryosuke Niwa.
81403
81404        The ForwardDelete command moved the cursor after the table when it's invoked
81405        in an empty cell that is the last cell of a table. It also removed the break
81406        element when invoked in an empty cell that is not the last cell of a table.
81407        Make it do nothing inside an empty table cell.
81408
81409        Test: editing/deleting/forward-delete-empty-table-cell.html
81410
81411        * editing/TypingCommand.cpp:
81412        (WebCore::TypingCommand::forwardDeleteKeyPressed):
81413
814142012-07-29  Kwang Yul Seo  <skyul@company100.net>
81415
81416        Remove unused method HTMLConstructionSiteTask::take(HTMLConstructionSiteTask&)
81417        https://bugs.webkit.org/show_bug.cgi?id=92601
81418
81419        Reviewed by Adam Barth.
81420
81421        This method was introduced in r104000, but has never been used from the beginning.
81422
81423        No functional change.
81424
81425        * html/parser/HTMLConstructionSite.h:
81426
814272012-07-29  Kenichi Ishibashi  <bashi@chromium.org>
81428
81429        [Chromium] HarfBuzzShaper can't handle segmented text run
81430        https://bugs.webkit.org/show_bug.cgi?id=92445
81431
81432        Reviewed by Tony Chang.
81433
81434        Pass the range to be displayed to HarfBuzzShaper. The shaper calculates positions and advances of each glyph
81435        regardless of the range, but only add glyphs which are in the range.
81436
81437        No new tests. platform/chromium-linux/fast/text/international/draw-complex-text-from-to.html should
81438        work as expected once we move to use harfbuzz-ng on linux. Note that the current expectation will need to be rebaselined
81439        because the old hb shaper (ComplexTextController) mishandles the range. |to| should be exclusive. I'll rebaseline
81440        the expectation later.
81441
81442        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
81443        (WebCore::Font::drawComplexText): Call shaper.setDrawRange().
81444        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
81445        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
81446        (WebCore::HarfBuzzShaper::setDrawRange): Added.
81447        (WebCore):
81448        (WebCore::HarfBuzzShaper::shouldDrawCharacterAt): Added.
81449        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Added variables that hold pending advances.
81450        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Add only glyphs which are in the given range to glyphBuffer.
81451        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
81452        (HarfBuzzShaper):
81453        * platform/graphics/mac/FontComplexTextMac.cpp:
81454        (WebCore::Font::drawComplexText): Call shaper.setDrawRange().
81455
814562012-07-29  Dan Bernstein  <mitz@apple.com>
81457
81458        Hit testing in the gap between pages returns incorrect results in flipped blocks writing modes
81459        https://bugs.webkit.org/show_bug.cgi?id=92600
81460
81461        Reviewed by Simon Fraser.
81462
81463        Test: fast/multicol/hit-test-gap-between-pages-flipped.html
81464
81465        * rendering/RenderBlock.h:
81466        (WebCore::RenderBlock): Promoted offsetForContents() from private to protected, and demoted
81467        adjustPointToColumnContents() back to private.
81468        * rendering/RenderLayer.cpp:
81469        (WebCore::RenderLayer::hitTest): Changed to flip the point passed to updateHitTestResults().
81470        * rendering/RenderView.cpp:
81471        (WebCore::RenderView::updateHitTestResult): Changed to call offsetForContents(), which, as
81472        of r123977, correctly accounts for flippedness.
81473
814742012-07-29  Dan Bernstein  <mitz@apple.com>
81475
81476        In flipped blocks, a point on the top edge of a text box is considered outside the box (and vice versa)
81477        https://bugs.webkit.org/show_bug.cgi?id=92597
81478
81479        Reviewed by Ryosuke Niwa.
81480
81481        This is similar to <http://webkit.org/b/92593> except for RenderText. Fixing this required
81482        fixing some code that creates a point inside a box by setting its y coordinate to the
81483        logical top of the box. In a flipped block, this would be just outside the box.
81484
81485        Enhanced fast/writing-mode/flipped-blocks-hit-test-line-edges.html to cover this.
81486
81487        * editing/visible_units.cpp:
81488        (WebCore::absoluteLineDirectionPointToLocalPointInBlock): Changed to use
81489        RootInlineBox::blockDirectionPointInLine in the vertical case as well.
81490        * rendering/RenderBlock.cpp:
81491        (WebCore::RenderBlock::positionForPointWithInlineChildren): Changed to use
81492        RootInlineBox::blockDirectionPointInLine.
81493        * rendering/RenderText.cpp:
81494        (WebCore::RenderText::positionForPoint): Changed the strictness of y inequalities based on
81495        the flippedness of the block. This fixes the bug.
81496        * rendering/RootInlineBox.cpp:
81497        (WebCore::RootInlineBox::blockDirectionPointInLine): Moved the implementation here from the
81498        header, and made it return the bottom in the flipped block case, so that the returned point
81499        is inside the line in that case as well.
81500        * rendering/RootInlineBox.h:
81501
815022012-07-29  Rik Cabanier  <cabanier@adobe.com>
81503
81504        ENABLE_CSS_COMPOSITING flag
81505        https://bugs.webkit.org/show_bug.cgi?id=92553
81506
81507        Reviewed by Dirk Schulze.
81508
81509        Adds compiler flag CSS_COMPOSITING to build systems to enable CSS blending and compositing. See spec https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html
81510
81511        * GNUmakefile.am:
81512        * Configurations/FeatureDefines.xcconfig:
81513
815142012-07-29  Dan Bernstein  <mitz@apple.com>
81515
81516        In flipped blocks, a point on the top edge of a box is considered outside the box (and vice versa)
81517        https://bugs.webkit.org/show_bug.cgi?id=92593
81518
81519        Reviewed by Simon Fraser.
81520
81521        With respect to hit testing, boxes should always behave as half-open intervals which include
81522        the physical top and left edges and not the bottom and right edges.
81523        RenderBlock::positionForPoint was not adhering to this, since it was comparing flipped
81524        coordinates.
81525
81526        Tests: fast/writing-mode/flipped-blocks-hit-test-box-edges.html
81527               fast/writing-mode/flipped-blocks-hit-test-line-edges.html
81528
81529        * rendering/RenderBlock.cpp:
81530        (WebCore::RenderBlock::positionForPointWithInlineChildren): When blocks are flipped, changed
81531        strict inequalities of y coordinates into non-strict ones and non-strict inequalities into
81532        strict ones.
81533        (WebCore::RenderBlock::positionForPoint): Ditto, except for the test for being under the top
81534        of the last candidate box, which was made non-strict in the unflipped case and remained
81535        strict.
81536
815372012-07-28  Dan Bernstein  <mitz@apple.com>
81538
81539        RenderBlock::offsetForContents() is wrong in flipped blocks writing modes
81540        https://bugs.webkit.org/show_bug.cgi?id=92588
81541
81542        Reviewed by Sam Weinig.
81543
81544        Tests: fast/multicol/hit-test-block-axis-flipped.html
81545               fast/writing-mode/flipped-blocks-hit-test-overflow-scroll.html
81546
81547        * rendering/RenderBlock.cpp:
81548        (WebCore::RenderBlock::offsetForContents): Flip the point, which puts it back in unflipped
81549        coordinates, before adding the scroll offset and adjusting for columns, then flip it back.
81550        (WebCore::RenderBlock::adjustPointToColumnContents): Changed the inline-axis cases to
81551        work with an unflipped point.
81552
815532012-07-28  Dan Bernstein  <mitz@apple.com>
81554
81555        In flipped lines writing modes, hit testing at the beginning of a column may return a result from the previous column
81556        https://bugs.webkit.org/show_bug.cgi?id=92566
81557
81558        Reviewed by Simon Fraser.
81559
81560        Enhanced the fix for <http://webkit.org/b/92524> to work with flipped lines.
81561
81562        Extended fast/multicol/hit-test-end-of-column-with-line-height.html.
81563
81564        * rendering/RenderBlock.cpp:
81565        (WebCore::RenderBlock::positionForPointWithInlineChildren): For flipped lines, check if the
81566        hit line is the last one before a page break, and in that case, check if the hit point was
81567        after the break.
81568
815692012-07-28  Simon Fraser  <simon.fraser@apple.com>
81570
81571        Size changes on a layer with negative z-index children don't repaint correctly
81572        https://bugs.webkit.org/show_bug.cgi?id=92583
81573
81574        Reviewed by Dean Jackson.
81575
81576        Negative z-index descendants cause a composited layer to have a separate
81577        layer for foreground content. If something caused that foreground layer
81578        to change size (like toggling visibility on a descendant), we failed to
81579        repaint the foreground layer, resulting in stretched content.
81580
81581        Test: compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html
81582
81583        * rendering/RenderLayerBacking.cpp:
81584        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Repaint the foreground
81585        layer if its size changes, like we do for the main layer.
81586
815872012-07-28  Simon Fraser  <simon.fraser@apple.com>
81588
81589        Ignore visibility:hidden elements when computing compositing layer bounds
81590        https://bugs.webkit.org/show_bug.cgi?id=92569
81591
81592        Reviewed by Dan Bernstein.
81593
81594        When computing the bounds of compositing layers, we would take into account
81595        layers with no visible content (visibility:hidden, and no non-hidden descendants).
81596        This caused some huge layers in mobile Google maps.
81597
81598        Tests: compositing/geometry/bounds-ignores-hidden-composited-descendant.html
81599               compositing/geometry/bounds-ignores-hidden-dynamic.html
81600               compositing/geometry/bounds-ignores-hidden.html
81601
81602        * rendering/RenderLayer.cpp:
81603        (WebCore::RenderLayer::calculateLayerBounds): If the ExcludeHiddenDescendants flag is set, return
81604        the empty rect for layers with no visible content or descendants, as long as the layer is not
81605        the root of the subtree whose bounds are being computed.
81606        calculateLayerBounds() currently (I think incorrectly) passes the default flags to the recursive calls.
81607        It should probably just pass 'flags', but to make this change safe, OR in the ExcludeHiddenDescendants
81608        flag.
81609        * rendering/RenderLayer.h: Add an ExcludeHiddenDescendants flag to the CalculateLayerBoundsFlags.
81610        * rendering/RenderLayerCompositor.cpp:
81611        (WebCore::RenderLayerCompositor::calculateCompositedBounds): Pass the ExcludeHiddenDescendants
81612        flag.
81613
816142012-07-28  Min Qin  <qinmin@chromium.org>
81615
81616        Add an overlay play button to media controls on android
81617        https://bugs.webkit.org/show_bug.cgi?id=92132
81618
81619        Reviewed by Adam Barth.
81620
81621        This change adds an overlay play button to the media controls for android.
81622        No tests for now as this setting is not being used by other port.
81623        Will add a test and adjust all the test expectations when we upstream the layout tests for android.
81624
81625        * WebCore.gypi:
81626        * css/CSSPrimitiveValueMappings.h:
81627        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
81628        * css/CSSValueKeywords.in:
81629        * css/mediaControls.css:
81630        (audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button):
81631        * css/mediaControlsChromiumAndroid.css:
81632        (audio::-webkit-media-controls-overlay-enclosure):
81633        (video::-webkit-media-controls-overlay-enclosure):
81634        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
81635        (video::-webkit-media-controls-overlay-play-button):
81636        * html/shadow/MediaControlElements.cpp:
81637        (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
81638        (WebCore):
81639        (WebCore::MediaControlOverlayPlayButtonElement::create):
81640        (WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
81641        (WebCore::MediaControlOverlayPlayButtonElement::updateDisplayType):
81642        (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
81643        * html/shadow/MediaControlElements.h:
81644        (MediaControlOverlayPlayButtonElement):
81645        (WebCore):
81646        * html/shadow/MediaControlRootElementChromium.cpp:
81647        (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
81648        (WebCore::MediaControlPanelEnclosureElement::create):
81649        (WebCore):
81650        (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
81651        (WebCore::MediaControlRootElementChromium::create):
81652        (WebCore::MediaControlRootElementChromium::initializeControls):
81653        * html/shadow/MediaControlRootElementChromium.h:
81654        (MediaControlChromiumEnclosureElement):
81655        (WebCore):
81656        (MediaControlPanelEnclosureElement):
81657        (MediaControlRootElementChromium):
81658        * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Added.
81659        (WebCore):
81660        (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
81661        (WebCore::MediaControlOverlayEnclosureElement::create):
81662        (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
81663        (WebCore::MediaControlRootElementChromiumAndroid::MediaControlRootElementChromiumAndroid):
81664        (WebCore::MediaControls::create):
81665        (WebCore::MediaControlRootElementChromiumAndroid::create):
81666        (WebCore::MediaControlRootElementChromiumAndroid::setMediaController):
81667        (WebCore::MediaControlRootElementChromiumAndroid::playbackStarted):
81668        (WebCore::MediaControlRootElementChromiumAndroid::playbackStopped):
81669        * html/shadow/MediaControlRootElementChromiumAndroid.h: Added.
81670        (WebCore):
81671        (MediaControlOverlayEnclosureElement):
81672        (MediaControlRootElementChromiumAndroid):
81673        * platform/ThemeTypes.h:
81674        * rendering/RenderMediaControlsChromium.cpp:
81675        (WebCore::paintMediaOverlayPlayButton):
81676        (WebCore):
81677        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
81678        * rendering/RenderTheme.cpp:
81679        (WebCore::RenderTheme::paint):
81680        * rendering/RenderTheme.h:
81681        (WebCore::RenderTheme::paintMediaOverlayPlayButton):
81682        * rendering/RenderThemeChromiumAndroid.cpp:
81683        (WebCore::RenderThemeChromiumAndroid::paintMediaOverlayPlayButton):
81684        (WebCore):
81685        * rendering/RenderThemeChromiumAndroid.h:
81686
816872012-07-28  Mario Sanchez Prada  <msanchez@igalia.com>
81688
81689        [GTK] Add a new and reusable enchant-based spellchecker in WebCore
81690        https://bugs.webkit.org/show_bug.cgi?id=90269
81691
81692        Reviewed by Martin Robinson.
81693
81694        Move enchant specific code down to WebCore, into a new class
81695        TextCheckerEnchant, that we can use from WK1 and WK2.
81696
81697        * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
81698        * GNUmakefile.list.am: Added new files.
81699        * platform/text/gtk/TextCheckerEnchant.cpp: Added.
81700        (getAvailableDictionariesCallback):
81701        (TextCheckerEnchant::TextCheckerEnchant):
81702        (TextCheckerEnchant::~TextCheckerEnchant):
81703        (TextCheckerEnchant::ignoreWord):
81704        (TextCheckerEnchant::learnWord):
81705        (TextCheckerEnchant::checkSpellingOfString):
81706        (TextCheckerEnchant::getGuessesForWord):
81707        (TextCheckerEnchant::updateSpellCheckingLanguages):
81708        (TextCheckerEnchant::freeEnchantBrokerDictionaries):
81709        * platform/text/gtk/TextCheckerEnchant.h: Added.
81710        (WebCore):
81711        (TextCheckerEnchant):
81712        (WebCore::TextCheckerEnchant::create):
81713
817142012-07-28  Vineet Chaudhary  <rgf748@motorola.com>
81715
81716        [Clamp] support in binding generator.
81717        https://bugs.webkit.org/show_bug.cgi?id=77605
81718
81719        Reviewed by Kentaro Hara.
81720
81721        Currently [Clamp] extended attribute in IDL files.
81722        Spec: http://www.w3.org/TR/2012/CR-WebIDL-20120419/#Clamp
81723
81724        Tests: TestObj.idl
81725
81726        * bindings/scripts/CodeGeneratorCPP.pm:
81727        (SkipFunction): Skips methods with [Clamp] parameters.
81728        * bindings/scripts/CodeGeneratorGObject.pm:
81729        (SkipFunction): Skips methods with [Clamp] parameters.
81730        * bindings/scripts/CodeGeneratorJS.pm:
81731        (GenerateParametersCheck): Support [Clamp] for JSBindings.
81732        * bindings/scripts/CodeGeneratorObjC.pm:
81733        (SkipFunction): Skips methods with [Clamp] parameters.
81734        * bindings/scripts/CodeGeneratorV8.pm:
81735        (GenerateParametersCheck): Support [Clamp] for V8Bindings.
81736        * bindings/scripts/IDLAttributes.txt: Added [Clamp] to attributes list.
81737        * bindings/scripts/test/JS/JSTestObj.cpp: Test.
81738        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
81739        * bindings/scripts/test/JS/JSTestObj.h:
81740        * bindings/scripts/test/TestObj.idl:
81741        * bindings/scripts/test/V8/V8TestObj.cpp:
81742        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
81743        (TestObjV8Internal):
81744
817452012-07-27  Sheriff Bot  <webkit.review.bot@gmail.com>
81746
81747        Unreviewed, rolling out r123908.
81748        http://trac.webkit.org/changeset/123908
81749        https://bugs.webkit.org/show_bug.cgi?id=92572
81750
81751        Broke Chromium Linux compile (Requested by pkasting on
81752        #webkit).
81753
81754        * WebCore.gypi:
81755        * css/CSSPrimitiveValueMappings.h:
81756        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
81757        * css/CSSValueKeywords.in:
81758        * css/mediaControls.css:
81759        * css/mediaControlsChromiumAndroid.css:
81760        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
81761        * html/shadow/MediaControlElements.cpp:
81762        (WebCore):
81763        * html/shadow/MediaControlElements.h:
81764        (WebCore):
81765        * html/shadow/MediaControlRootElementChromium.cpp:
81766        (WebCore::MediaControlChromiumEnclosureElement::create):
81767        (WebCore):
81768        (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
81769        (WebCore::MediaControls::create):
81770        (WebCore::MediaControlRootElementChromium::create):
81771        * html/shadow/MediaControlRootElementChromium.h:
81772        (MediaControlChromiumEnclosureElement):
81773        (MediaControlRootElementChromium):
81774        * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Removed.
81775        * html/shadow/MediaControlRootElementChromiumAndroid.h: Removed.
81776        * platform/ThemeTypes.h:
81777        * rendering/RenderMediaControlsChromium.cpp:
81778        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
81779        * rendering/RenderTheme.cpp:
81780        (WebCore::RenderTheme::paint):
81781        * rendering/RenderTheme.h:
81782        * rendering/RenderThemeChromiumAndroid.cpp:
81783        * rendering/RenderThemeChromiumAndroid.h:
81784
817852012-07-27  Eli Fidler  <efidler@rim.com>
81786
81787        [BlackBerry] Use new LocaleHandler.
81788        https://bugs.webkit.org/show_bug.cgi?id=92548
81789
81790        Reviewed by Yong Li.
81791
81792        RIM PR 128381
81793
81794        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
81795        (WebCore::platformLanguage):
81796        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
81797        (WebCore::ResourceRequest::initializePlatformRequest):
81798        * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
81799        (WebCore::currentSearchLocaleID):
81800        (WebCore::currentTextBreakLocaleID):
81801
818022012-07-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
81803
81804        Change constructor with explicit constructor in WebCore/Modules
81805        https://bugs.webkit.org/show_bug.cgi?id=92529
81806
81807        Reviewed by Kentaro Hara.
81808
81809        As a step to let *explicit* keyword add to constructors which have a parameter,
81810        *explicit* keyword is added to Source/WebCore/Modules in order to avoid implicit
81811        type conversion.
81812
81813        No new tests. Covered by existing tests.
81814
81815        * Modules/filesystem/LocalFileSystem.h:
81816        (WebCore::LocalFileSystem::LocalFileSystem):
81817        * Modules/filesystem/Metadata.h:
81818        (WebCore::Metadata::Metadata):
81819        * Modules/filesystem/SyncCallbackHelper.h:
81820        (WebCore::SyncCallbackHelper::SuccessCallbackImpl::SuccessCallbackImpl):
81821        (WebCore::SyncCallbackHelper::ErrorCallbackImpl::ErrorCallbackImpl):
81822        * Modules/mediastream/IceCandidate.h:
81823        (IceCandidate):
81824        * Modules/mediastream/NavigatorUserMediaError.h:
81825        (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
81826        * Modules/mediastream/SessionDescription.h:
81827        (SessionDescription):
81828        * Modules/mediastream/UserMediaController.h:
81829        (UserMediaController):
81830        * Modules/notifications/NotificationController.h:
81831        (NotificationController):
81832        * Modules/speech/SpeechRecognition.h:
81833        (SpeechRecognition):
81834        * Modules/speech/SpeechRecognitionController.h:
81835        (SpeechRecognitionController):
81836        * Modules/speech/SpeechRecognitionEvent.h:
81837        (SpeechRecognitionEvent):
81838        * Modules/speech/SpeechRecognitionResultList.h:
81839        (SpeechRecognitionResultList):
81840        * Modules/vibration/Vibration.h:
81841        (Vibration):
81842        * Modules/webaudio/AudioBuffer.h:
81843        (AudioBuffer):
81844        * Modules/webaudio/AudioContext.h:
81845        (AudioContext):
81846        * Modules/webaudio/AudioNodeInput.h:
81847        (AudioNodeInput):
81848        * Modules/webaudio/AudioSummingJunction.h:
81849        (AudioSummingJunction):
81850        * Modules/webaudio/BiquadDSPKernel.h:
81851        (WebCore::BiquadDSPKernel::BiquadDSPKernel):
81852        * Modules/webaudio/DefaultAudioDestinationNode.h:
81853        (DefaultAudioDestinationNode):
81854        * Modules/webaudio/DelayDSPKernel.h:
81855        (DelayDSPKernel):
81856        * Modules/webaudio/OfflineAudioCompletionEvent.h:
81857        (OfflineAudioCompletionEvent):
81858        * Modules/webaudio/WaveShaperDSPKernel.h:
81859        (WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
81860        * Modules/webaudio/WaveShaperNode.h:
81861        (WaveShaperNode):
81862        * Modules/webaudio/WaveTable.h:
81863        (WaveTable):
81864        * Modules/webdatabase/DatabaseAuthorizer.h:
81865        (DatabaseAuthorizer):
81866        * Modules/webdatabase/DatabaseTask.h:
81867        (Database::DatabaseTransactionTask):
81868        * Modules/webdatabase/DatabaseTracker.h:
81869        (DatabaseTracker):
81870        * Modules/webdatabase/SQLCallbackWrapper.h:
81871        (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask):
81872        * Modules/webdatabase/SQLException.h:
81873        (WebCore::SQLException::SQLException):
81874        * Modules/websockets/WebSocket.h:
81875        * Modules/websockets/WebSocketExtensionProcessor.h:
81876        (WebCore::WebSocketExtensionProcessor::WebSocketExtensionProcessor):
81877
818782012-07-27  Kentaro Hara  <haraken@chromium.org>
81879
81880        [V8] Optimize Element::getAttributeNS() by replacing String with AtomicString
81881        https://bugs.webkit.org/show_bug.cgi?id=90276
81882
81883        Reviewed by Adam Barth.
81884
81885        In r121439, we changed the argument type of Element::getAttribute()
81886        from String to AtomicString for optimization. This patch changes the
81887        argument type of Element::getAttributeNS() from String to AtomicString.
81888
81889        Actually this change affects V8 performance only.
81890
81891        [JSC without the patch]
81892        The binding code converts a given JavaScript string to a String
81893        -> the String is passed to getAttributeNS()
81894        -> the String is converted to an AtomicString when it is passed to
81895        QualifiedName() constructor.
81896
81897        [JSC with the patch]
81898        The binding code converts a given JavaScript string to a String
81899        -> the String is converted to an AtomicString when it is passed to
81900        getAttributeNS()
81901        -> the AtomicString is passed to QualifiedName() constructor.
81902
81903        [V8 without the patch]
81904        The binding code retrieves a cached external String for a given
81905        JavaScript string
81906        -> the String is passed to getAttributeNS()
81907        -> the String is converted to AtomicString when it is passed to
81908        QualifiedName() constructor.
81909
81910        [V8 with the patch]
81911        The binding code retrieves a cached external AtomicString for a given
81912        JavaScript string
81913        -> the AtomicString is passed to getAttributeNS()
81914        -> the AtomicString is passed to QualifiedName() constructor.
81915
81916        In this way, in JSC, the change affects where a String is converted to
81917        an AtomicString. On the other hand, in V8, (since the AtomicString is already
81918        cached,) we can skip the conversion step.
81919
81920        Performance test: https://bugs.webkit.org/attachment.cgi?id=150158
81921
81922        getAttributeNS (Chromium/Linux):
81923        577.80ms => 454.60ms
81924
81925        * dom/Element.cpp:
81926        (WebCore::Element::getAttributeNS):
81927        * dom/Element.h:
81928        (Element):
81929
819302012-07-27  Sheriff Bot  <webkit.review.bot@gmail.com>
81931
81932        Unreviewed, rolling out r123679.
81933        http://trac.webkit.org/changeset/123679
81934        https://bugs.webkit.org/show_bug.cgi?id=92565
81935
81936        Slowed down HTML parsing by 3.6% (Requested by abarth on
81937        #webkit).
81938
81939        * html/FTPDirectoryDocument.cpp:
81940        (WebCore::FTPDirectoryDocumentParser::append):
81941        * html/parser/HTMLEntityParser.cpp:
81942        (WebCore::HTMLEntityParser::consumeNamedEntity):
81943        * html/parser/HTMLParserIdioms.cpp:
81944        (WebCore::stripLeadingAndTrailingHTMLSpaces):
81945        * html/parser/HTMLSourceTracker.cpp:
81946        (WebCore::HTMLSourceTracker::sourceForToken):
81947        * loader/cache/CachedScript.cpp:
81948        (WebCore::CachedScript::script):
81949        * platform/text/SegmentedString.cpp:
81950        (WebCore::SegmentedString::SegmentedString):
81951        (WebCore::SegmentedString::operator=):
81952        (WebCore::SegmentedString::clear):
81953        (WebCore::SegmentedString::append):
81954        (WebCore::SegmentedString::prepend):
81955        (WebCore::SegmentedString::advanceSubstring):
81956        (WebCore::SegmentedString::advance):
81957        (WebCore::SegmentedString::advanceSlowCase):
81958        (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase):
81959        * platform/text/SegmentedString.h:
81960        (WebCore::SegmentedSubstring::SegmentedSubstring):
81961        (WebCore::SegmentedSubstring::clear):
81962        (WebCore::SegmentedSubstring::appendTo):
81963        (SegmentedSubstring):
81964        (WebCore::SegmentedString::SegmentedString):
81965        (WebCore::SegmentedString::push):
81966        (WebCore::SegmentedString::isEmpty):
81967        (WebCore::SegmentedString::lookAhead):
81968        (WebCore::SegmentedString::lookAheadIgnoringCase):
81969        (WebCore::SegmentedString::advance):
81970        (WebCore::SegmentedString::advanceAndASSERT):
81971        (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
81972        (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
81973        (SegmentedString):
81974        (WebCore::SegmentedString::advancePastNonNewline):
81975        (WebCore::SegmentedString::advanceAndUpdateLineNumber):
81976        (WebCore::SegmentedString::operator*):
81977        (WebCore::SegmentedString::operator->):
81978        (WebCore::SegmentedString::current):
81979        (WebCore::SegmentedString::equalsLiterally):
81980        (WebCore::SegmentedString::equalsIgnoringCase):
81981        (WebCore::SegmentedString::lookAheadInline):
81982        (WebCore::SegmentedString::lookAheadSlowCase):
81983        * xml/parser/CharacterReferenceParserInlineMethods.h:
81984        (WebCore::consumeCharacterReference):
81985        * xml/parser/MarkupTokenizerBase.h:
81986        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
81987        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek):
81988        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
81989
819902012-07-27  Jer Noble  <jer.noble@apple.com>
81991
81992        Reset the set of "seen" plugins when the main frame load is committed.
81993        https://bugs.webkit.org/show_bug.cgi?id=92564
81994
81995        Reviewed by Anders Carlsson.
81996
81997        Because the Page object is re-used across navigation and reload, reset the list
81998        of seen plugins when the main frame load commits. This gives a good baseline to
81999        compare against the number of pages loaded.
82000
82001        No new tests; the "seen" plugin list is for diagnostic purposes only.
82002
82003        * loader/FrameLoader.cpp:
82004        (WebCore::FrameLoader::dispatchDidCommitLoad):
82005        * page/Page.cpp:
82006        (WebCore::Page::resetSeenPlugins):
82007        * page/Page.h:
82008
820092012-07-27  Sukolsak Sakshuwong  <sukolsak@google.com>
82010
82011        execCommand copies the backgroung-color of the enclosing element to the element being edited.
82012        https://bugs.webkit.org/show_bug.cgi?id=91783
82013
82014        Reviewed by Ryosuke Niwa.
82015
82016        InsertListCommand and some other edit commands remove redundant
82017        style properties after their DOM modification by using
82018        StylePropertySet::removeEquivalentProperties.  However, this method
82019        does not remove redundant background-color properties such as
82020        "background-color: white" and "background-color: #fff" because
82021        it compares them using cssText and thus treats them as different.
82022        Add code to convert background colors to RGBA and then compare them.
82023
82024        Test: editing/style/redundant-background-color.html
82025
82026        * editing/EditingStyle.cpp:
82027        (WebCore::getRGBABackgroundColor):
82028        (WebCore):
82029        (WebCore::getPropertiesNotIn):
82030
820312012-07-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
82032
82033        [EFL] Return 0 when network is offline
82034        https://bugs.webkit.org/show_bug.cgi?id=92454
82035
82036        Reviewed by Kenneth Rohde Christiansen.
82037
82038        Network Info latest spec says 0 is returned when network is offline.
82039        r123769 modified to return infinity value when network is offiline.
82040
82041        * platform/efl/NetworkInfoProviderEfl.cpp:
82042        (WebCore::NetworkInfoProviderEfl::bandwidth):
82043
820442012-07-27  Scott Graham  <scottmg@chromium.org>
82045
82046        Change navigator.webkitGamepads[] to navigator.webkitGetGamepads()
82047        https://bugs.webkit.org/show_bug.cgi?id=92533
82048
82049        Reviewed by Adam Barth.
82050
82051        Per discussion on public-webapps. Pages that enumerate navigator were
82052        causing background resources to be created to poll hardware
82053        unintentionally. By changing to an explicit function call, this is
82054        avoided (and the API becomes more clear too). This change updates the
82055        implementation to match the current ED spec.
82056
82057        * Modules/gamepad/NavigatorGamepad.cpp:
82058        (WebCore::NavigatorGamepad::webkitGetGamepads):
82059        * Modules/gamepad/NavigatorGamepad.h:
82060        (NavigatorGamepad):
82061        * Modules/gamepad/NavigatorGamepad.idl:
82062        * bindings/generic/RuntimeEnabledFeatures.h:
82063        (WebCore::RuntimeEnabledFeatures::setWebkitGetGamepadsEnabled):
82064        (WebCore::RuntimeEnabledFeatures::webkitGetGamepadsEnabled):
82065
820662012-07-27  Brady Eidson  <beidson@apple.com>
82067
82068        Plugins should not be allowed to override standard properties/attributes in non-standard worlds
82069        <rdar://problem/11975252> and https://bugs.webkit.org/show_bug.cgi?id=92519
82070
82071        Reviewed by Anders Carlsson.
82072
82073        Change the 3 plugin-owning element's custom bindings to prefer built-in properties if they exist.
82074        When they do they don't give the plugin a chance to override.
82075
82076        Test: plugins/npruntime/overrides-all-properties.html
82077
82078        Add plugin custom functions to prefer built-in properties over plugin scriptable object properties:
82079        * bindings/js/JSPluginElementFunctions.h:
82080        (WebCore::pluginElementCustomGetOwnPropertySlot):
82081        (WebCore::pluginElementCustomGetOwnPropertyDescriptor):
82082
82083        Use those new custom functions for getting properties:
82084        * bindings/js/JSHTMLAppletElementCustom.cpp:
82085        (WebCore::JSHTMLAppletElement::getOwnPropertySlotDelegate):
82086        (WebCore::JSHTMLAppletElement::getOwnPropertyDescriptorDelegate):
82087        * bindings/js/JSHTMLEmbedElementCustom.cpp:
82088        (WebCore::JSHTMLEmbedElement::getOwnPropertySlotDelegate):
82089        (WebCore::JSHTMLEmbedElement::getOwnPropertyDescriptorDelegate):
82090        * bindings/js/JSHTMLObjectElementCustom.cpp:
82091        (WebCore::JSHTMLObjectElement::getOwnPropertySlotDelegate):
82092        (WebCore::JSHTMLObjectElement::getOwnPropertyDescriptorDelegate):
82093
820942012-07-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
82095
82096        use createUninitialized when creating TypedArray from another array
82097        https://bugs.webkit.org/show_bug.cgi?id=92518
82098
82099        Reviewed by Kenneth Russell.
82100
82101        When creating a Typed Array from another array, we fill it with values
82102        from the source array. So, we can create it uninitialized. This is
82103        make constructor about 35% faster when constructed with another typed
82104        array.
82105
82106        Test: fast/canvas/webgl/array-constructor.html
82107
82108        * bindings/js/JSArrayBufferViewHelper.h:
82109        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
82110        (WebCore::constructArrayBufferView):
82111
821122012-07-27  Eli Fidler  <efidler@rim.com>
82113
82114        [BlackBerry] Adapt to change in the FontInfo platform API.
82115        https://bugs.webkit.org/show_bug.cgi?id=92547
82116
82117        Reviewed by Yong Li
82118
82119        RIM PR 161263
82120
82121        * page/blackberry/SettingsBlackBerry.cpp:
82122        (WebCore::Settings::initializeDefaultFontFamilies):
82123
821242012-07-27  Antoine Labour  <piman@chromium.org>
82125
82126        [chromium] Fix color matrix filter computation so that filters that don't need clamping are correctly detected as such
82127        https://bugs.webkit.org/show_bug.cgi?id=92452
82128
82129        Reviewed by Stephen White.
82130
82131        Because of precision issues, some filters were returning true to
82132        matrixNeedsClamping when they can return false. This fixes it.
82133
82134        No new tests in this CL, a follow-up change refactors the code to add
82135        several tests.
82136
82137        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
82138
821392012-07-27  Jer Noble  <jer.noble@apple.com>
82140
82141        Add diagnostic logging for plugins-per-page.
82142        https://bugs.webkit.org/show_bug.cgi?id=92538
82143
82144        Reviewed by Anders Carlsson.
82145
82146        Add some diagnostic logging for whether a page has seen a plugin, and 
82147        whether a page has seen a plugin of a specific type.
82148
82149        Move the diagnostic logging out of the elemements themselves:
82150        * html/HTMLEmbedElement.cpp:
82151        (WebCore::HTMLEmbedElement::updateWidget):
82152        * html/HTMLObjectElement.cpp:
82153        (WebCore::HTMLObjectElement::updateWidget):
82154
82155        Instead, log when the plugin is requested, thereby catching plugins which are
82156        rejected because, e.g., Java is disabled or not installed:
82157        * loader/SubframeLoader.cpp:
82158        (WebCore::logPluginRequest):
82159        (WebCore::SubframeLoader::requestObject):
82160        (WebCore::SubframeLoader::createJavaAppletWidget):
82161
82162        Add new diagnostic key values:
82163        * page/DiagnosticLoggingKeys.cpp:
82164        (WebCore::DiagnosticLoggingKeys::pageContainsPluginKey):
82165        (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey):
82166        * page/DiagnosticLoggingKeys.h:
82167
82168        Add a map of plugin types seen per-page for diagnostic purposes:
82169        * page/Page.cpp:
82170        (WebCore::Page::hasSeenAnyPlugin):
82171        (WebCore::Page::hasSeenPlugin):
82172        (WebCore::Page::sawPlugin):
82173        * page/Page.h:
82174
821752012-07-27  Patrick Gansterer  <paroga@webkit.org>
82176
82177        [WINCE] Use macros from ICU instead of defining the same functionality again
82178        https://bugs.webkit.org/show_bug.cgi?id=92530
82179
82180        Reviewed by Ryosuke Niwa.
82181
82182        Replace isHighSurrogate() with U16_IS_LEAD(), isLowSurrogate() with
82183        U16_IS_TRAIL() and surrogateToUcs4() with U16_GET_SUPPLEMENTARY().
82184
82185        * html/FTPDirectoryDocument.cpp:
82186        (WebCore::processFileDateString):
82187        * loader/archive/mhtml/MHTMLArchive.cpp:
82188        (WebCore::MHTMLArchive::generateMHTMLData):
82189        * platform/graphics/wince/FontWinCE.cpp:
82190        (WebCore::generateComponents):
82191
821922012-07-27  Christophe Dumez  <christophe.dumez@intel.com>
82193
82194        Build warning in CSSPrimitiveValueMappings.h when CSS_STICKY_POSITION is disabled
82195        https://bugs.webkit.org/show_bug.cgi?id=92523
82196
82197        Reviewed by Simon Fraser.
82198
82199        Move #ifdef in CSSPrimitiveValueMappings.h to silent compilation warning
82200        when CSS_STICKY_POSITION is disabled.
82201
82202        No new tests, no behavior change.
82203
82204        * css/CSSPrimitiveValueMappings.h:
82205        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
82206
822072012-07-27  Vivek Galatage  <vivekgalatage@gmail.com>
82208
82209        DragController should ascertain dragClient to be non-null
82210        https://bugs.webkit.org/show_bug.cgi?id=92474
82211
82212        Reviewed by Tony Chang.
82213
82214        The DragController must always ensure a valid dragClient object. Hence
82215        adding the ASSERT to assure that.
82216
82217        No new tests. Added assertion for PageClient.dragClient.
82218
82219        * page/DragController.cpp:
82220        (WebCore::DragController::DragController):
82221
822222012-07-27  Adrienne Walker  <enne@google.com>
82223
82224        [chromium] Clean up LayerRendererChromium::drawTexturedQuad
82225        https://bugs.webkit.org/show_bug.cgi?id=91823
82226
82227        Reviewed by James Robinson.
82228
82229        LayerRendererChromium::drawTexturedQuad has been around forever and
82230        over time has developed several problems:
82231         - Confusingly named relative to drawTextureQuad
82232         - All but one callers identically manipulate the transform matrix
82233         - Lots of optional parameters that only few functions use
82234
82235        This patch breaks up drawTexturedQuad into setShaderOpacity (for
82236        optional opacity values sent to the shader), setShaderFloatQuad (the
82237        full FloatQuad used by AA shaders), and drawQuadGeometry (actually
82238        draw the geometry, and wrap the transform logic that was duplicated
82239        everywhere).
82240
82241        No new tests; no change in functionality.
82242
82243        * platform/graphics/chromium/LayerRendererChromium.cpp:
82244        (WebCore::LayerRendererChromium::drawCheckerboardQuad):
82245        (WebCore::LayerRendererChromium::drawBackgroundFilters):
82246        (WebCore::LayerRendererChromium::drawRenderPassQuad):
82247        (WebCore::LayerRendererChromium::drawSolidColorQuad):
82248        (WebCore::LayerRendererChromium::drawTileQuad):
82249        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
82250        (WebCore::LayerRendererChromium::drawStreamVideoQuad):
82251        (WebCore::LayerRendererChromium::drawTextureQuad):
82252        (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
82253        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
82254        (WebCore::LayerRendererChromium::setShaderFloatQuad):
82255        (WebCore::LayerRendererChromium::setShaderOpacity):
82256        (WebCore::LayerRendererChromium::drawQuadGeometry):
82257        (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
82258        * platform/graphics/chromium/LayerRendererChromium.h:
82259        (LayerRendererChromium):
82260
822612012-07-27  Shawn Singh  <shawnsingh@chromium.org>
82262
82263        [chromium] CCLayerTreeHost placeholder scissor should be deviceViewportSize instead of viewportSize
82264        https://bugs.webkit.org/show_bug.cgi?id=92469
82265
82266        Reviewed by Adrienne Walker.
82267
82268        We were accidentally using viewportSize instead of
82269        deviceViewportSize in a particular place in code. Recent
82270        refactoring to use tighter scissor rects exposed this problem.
82271
82272        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
82273        (WebCore::CCLayerTreeHost::updateLayers):
82274
822752012-07-27  Kevin Ellis  <kevers@chromium.org>
82276
82277        Search cancel button is hard to activate with a tap gesture even if touch adjustment is enabled.
82278        https://bugs.webkit.org/show_bug.cgi?id=91894
82279
82280        Reviewed by Antonio Gomes.
82281
82282        Update check for determining if a node responds to tap gestures.
82283        Previously, the cancel button was being discarded as a candidate for
82284        touch adjustment if the touch area clipped the text input region
82285        because the candidate pruning process failed to account for the cancel
82286        button having a default mouse handler.  Possibly an interim fix,
82287        depending on resolution to 92093.
82288
82289        Test: touchadjustment/search-cancel.html
82290
82291        * page/TouchAdjustment.cpp:
82292        (TouchAdjustment):
82293        (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
82294
822952012-07-27  Varun Jain  <varunjain@chromium.org>
82296
82297        Animated SVGs do not clear previous frame completely in hidpi mode.
82298        https://bugs.webkit.org/show_bug.cgi?id=92395
82299
82300        Reviewed by Darin Adler.
82301
82302        The rect thats is cleared in subsequent frames needed to be scaled with device scale.
82303
82304        Test: svg/as-image/animated-svg-repaints-completely-in-hidpi.html
82305
82306        * svg/graphics/SVGImage.cpp:
82307        (WebCore::SVGImage::drawSVGToImageBuffer):
82308
823092012-07-27  Scott Graham  <scottmg@chromium.org>
82310
82311        Fix COMPILE_ASSERT for InlineFlowBox growing
82312        https://bugs.webkit.org/show_bug.cgi?id=92541
82313
82314        Reviewed by Dan Bernstein.
82315
82316        Use unsigned instead of bool to keep size small on Windows.
82317
82318        No new tests.
82319
82320        * rendering/InlineFlowBox.h:
82321        (InlineFlowBox):
82322
823232012-07-27  Beth Dakin  <bdakin@apple.com>
82324
82325        https://bugs.webkit.org/show_bug.cgi?id=92327
82326        -webkit-background-clip:text is blurry in WebKit 1 apps when
82327        deviceScaleFactor > 1
82328        -and corresponding-
82329        <rdar://problem/11683788>
82330
82331        Reviewed by Simon Fraser.
82332
82333        The bug here is that the code to make createCompatibleBuffer() HiDPI-savvy 
82334        assumed that the deviceScaleFactor would always be baked into the CTM of the
82335        GraphicsContext. But that is NOT the case in WebKit 1.
82336
82337        createCompatibleBuffer() is used for clip text and gradients.
82338
82339        Now getCTM() takes a parameter indicating whether the result should definitely
82340        include the device scale, or if it should possibly included the device scale, 
82341        which is the option that matches old behavior.
82342        * platform/graphics/GraphicsContext.h:
82343        (GraphicsContext):
82344        * platform/graphics/cairo/GraphicsContextCairo.cpp:
82345        (WebCore::GraphicsContext::getCTM):
82346        * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
82347        (WebCore::GraphicsContext::getCTM):
82348        * platform/graphics/qt/GraphicsContextQt.cpp:
82349        (WebCore::GraphicsContext::getCTM):
82350        * platform/graphics/skia/GraphicsContextSkia.cpp:
82351        (WebCore::GraphicsContext::getCTM):
82352        * platform/graphics/wince/GraphicsContextWinCE.cpp:
82353        (WebCore::GraphicsContext::getCTM):
82354        * platform/graphics/wx/GraphicsContextWx.cpp:
82355        (WebCore::GraphicsContext::getCTM):
82356
82357        Actually use the new parameter in the CG implementation. Use CG API to get a
82358        matrix that definitely includes the device scale when that is required. 
82359        * platform/graphics/cg/GraphicsContextCG.cpp:
82360        (WebCore::GraphicsContext::getCTM):
82361
82362        Remove some symbol cruft that doesn't seem to require a replacement.
82363        * WebCore.exp.in:
82364
82365        Use DefinitelyIncludeDeviceScale when getting the CTM in the buggy spot.
82366        * platform/graphics/GraphicsContext.cpp:
82367        (WebCore::GraphicsContext::createCompatibleBuffer):
82368
82369        The ImageBuffer for gradients is created using createCompatibleBuffer(), and since 
82370        createCompatibleBuffer() now uses getCTM(DefinitelyIncludeDeviceScale) to 
82371        determine appropriate sizing, drawPattern() should use that same matrix to 
82372        determine pattern sizing.
82373        * platform/graphics/GeneratorGeneratedImage.cpp:
82374        (WebCore::GeneratorGeneratedImage::drawPattern):
82375
823762012-07-27  Tony Chang  <tony@chromium.org>
82377
82378        flex-wrap: wrap not wrapping for % sized items in column flow
82379        https://bugs.webkit.org/show_bug.cgi?id=92324
82380
82381        Reviewed by Ojan Vafai.
82382
82383        We were using trying to use the value of contentLogicalHeight() before having called computeLogicalHeight()
82384        in a few places. Fix this in mainAxisContentExtent() rather than at the callers.
82385
82386        Test: css3/flexbox/percentage-heights.html
82387
82388        * rendering/RenderFlexibleBox.cpp:
82389        (WebCore::RenderFlexibleBox::mainAxisContentExtent):
82390        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): If we haven't called computeLogicalHeight, we try to compute
82391        the height based on the fixed flexbox value. min/max don't matter here since percent values are only based on height/width.
82392        * rendering/RenderFlexibleBox.h: Drop const because computeContentLogicalHeightUsing is not const. I can
82393        try making computeContentLogicalHeightUsing const in a follow up change (might be non-trivial).
82394
823952012-07-27  Min Qin  <qinmin@chromium.org>
82396
82397        Add an overlay play button to media controls on android
82398        https://bugs.webkit.org/show_bug.cgi?id=92132
82399
82400        Reviewed by Adam Barth.
82401
82402        This change adds an overlay play button to the media controls for android.
82403        No tests for now as this setting is not being used by other port.
82404        Will add a test and adjust all the test expectations when we upstream the layout tests for android.
82405
82406        * WebCore.gypi:
82407        * css/CSSPrimitiveValueMappings.h:
82408        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
82409        * css/CSSValueKeywords.in:
82410        * css/mediaControls.css:
82411        (audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button):
82412        * css/mediaControlsChromiumAndroid.css:
82413        (audio::-webkit-media-controls-overlay-enclosure):
82414        (video::-webkit-media-controls-overlay-enclosure):
82415        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
82416        (video::-webkit-media-controls-overlay-play-button):
82417        * html/shadow/MediaControlElements.cpp:
82418        (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
82419        (WebCore):
82420        (WebCore::MediaControlOverlayPlayButtonElement::create):
82421        (WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
82422        (WebCore::MediaControlOverlayPlayButtonElement::updateDisplayType):
82423        (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
82424        * html/shadow/MediaControlElements.h:
82425        (MediaControlOverlayPlayButtonElement):
82426        (WebCore):
82427        * html/shadow/MediaControlRootElementChromium.cpp:
82428        (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
82429        (WebCore::MediaControlPanelEnclosureElement::create):
82430        (WebCore):
82431        (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
82432        (WebCore::MediaControlRootElementChromium::create):
82433        (WebCore::MediaControlRootElementChromium::initializeControls):
82434        * html/shadow/MediaControlRootElementChromium.h:
82435        (MediaControlChromiumEnclosureElement):
82436        (WebCore):
82437        (MediaControlPanelEnclosureElement):
82438        (MediaControlRootElementChromium):
82439        * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Added.
82440        (WebCore):
82441        (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
82442        (WebCore::MediaControlOverlayEnclosureElement::create):
82443        (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
82444        (WebCore::MediaControlRootElementChromiumAndroid::MediaControlRootElementChromiumAndroid):
82445        (WebCore::MediaControls::create):
82446        (WebCore::MediaControlRootElementChromiumAndroid::create):
82447        (WebCore::MediaControlRootElementChromiumAndroid::setMediaController):
82448        (WebCore::MediaControlRootElementChromiumAndroid::playbackStarted):
82449        (WebCore::MediaControlRootElementChromiumAndroid::playbackStopped):
82450        * html/shadow/MediaControlRootElementChromiumAndroid.h: Added.
82451        (WebCore):
82452        (MediaControlOverlayEnclosureElement):
82453        (MediaControlRootElementChromiumAndroid):
82454        * platform/ThemeTypes.h:
82455        * rendering/RenderMediaControlsChromium.cpp:
82456        (WebCore::paintMediaOverlayPlayButton):
82457        (WebCore):
82458        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
82459        * rendering/RenderTheme.cpp:
82460        (WebCore::RenderTheme::paint):
82461        * rendering/RenderTheme.h:
82462        (WebCore::RenderTheme::paintMediaOverlayPlayButton):
82463        * rendering/RenderThemeChromiumAndroid.cpp:
82464        (WebCore::RenderThemeChromiumAndroid::paintMediaOverlayPlayButton):
82465        (WebCore):
82466        * rendering/RenderThemeChromiumAndroid.h:
82467
824682012-07-27  Anders Carlsson  <andersca@apple.com>
82469
82470        Show the unavailable plug-in indicator for Java applets as well
82471        https://bugs.webkit.org/show_bug.cgi?id=92521
82472
82473        Reviewed by Sam Weinig.
82474
82475        Now that <applet> behaves more like <embed> and <object>, make sure that we show the unavailable plug-in indicator
82476        and call the correct error callbacks if we fail to instantiate the plug-in.
82477
82478        * WebCore.exp.in:
82479        Export a symbol needed by WebKit2.
82480
82481        * html/HTMLAppletElement.cpp:
82482        (WebCore::HTMLAppletElement::HTMLAppletElement):
82483        Set the correct service type.
82484
82485        * loader/SubframeLoader.cpp:
82486        (WebCore::SubframeLoader::createJavaAppletWidget):
82487        Enable the unavailable plug-in indicator if we fail to create the java applet widget.
82488
824892012-07-27  Dan Bernstein  <mitz@apple.com>
82490
82491        Hit testing near a column break can return a result from an adjacent column when there is leading
82492        https://bugs.webkit.org/show_bug.cgi?id=92524
82493
82494        Reviewed by Anders Carlsson.
82495
82496        The fix for <http://webkit.org/b/92311> relied on the existence of a pagination strut for
82497        detecting that a line was at the beginning of a new column. However, when a line naturally
82498        falls at the beginning of a column, there is no pagination strut, and the check failed.
82499
82500        Test: fast/multicol/hit-test-end-of-column-with-line-height.html
82501
82502        * rendering/InlineFlowBox.h:
82503        (WebCore::InlineFlowBox::InlineFlowBox): Added initializer for new member variable.
82504        (InlineFlowBox): Added m_isFirstAfterPageBreak member variable.
82505        * rendering/RenderBlock.cpp:
82506        (WebCore::RenderBlock::positionForPointWithInlineChildren): Changed the test for whether a
82507        line was at the beginning of a column from relying on a pagination strut to checking
82508        isFirstAfterPageBreak(). Also refined the hit test itself to include the leading above such
82509        a line.
82510        (WebCore::RenderBlock::adjustLinePositionForPagination): Added calls to
82511        setIsFirstAfterPageBreak() to first reset this flag, then set it to true if necessary.
82512        * rendering/RootInlineBox.h:
82513        (WebCore::RootInlineBox::isFirstAfterPageBreak): Added this accessor.
82514        (WebCore::RootInlineBox::setIsFirstAfterPageBreak): Ditto.
82515
825162012-07-27  John J. Barton  <johnjbarton@johnjbarton.com>
82517
82518        Web Inspector: Allow front_end to be loaded into an iframe
82519        https://bugs.webkit.org/show_bug.cgi?id=92437
82520
82521        Reviewed by Pavel Feldman.
82522
82523        This change only affects 'embedders' of the inspector/front_end. No change of function for WebKit ports.
82524
82525        * inspector/front-end/ExtensionAPI.js: 
82526        Replace window.top with window.parent two places. When WebInspector is loaded as the main window content, 
82527        then extension iframes have window.top === window.parent; when WebInspector is loaded as an iframe, then
82528        extensions are iframes in iframes and we need to use a relative address window.parent.
82529        (injectedExtensionAPI.ExtensionViewImpl.dispatchShowEvent):
82530        (injectedExtensionAPI.ExtensionViewImpl):
82531        (injectedExtensionAPI.ExtensionServerClient):
82532        WebKit/chromium/scripts/generate_devtools_extension_api.py:
82533        The current number of frames is used in a dynamically created identifier. Again we replace 'top' by 
82534        window.parent.
82535
825362012-07-27  John J. Barton  <johnjbarton@johnjbarton.com>
82537
82538        Web Inspector: Allow front_end to be loaded into an iframe
82539        https://bugs.webkit.org/show_bug.cgi?id=92437
82540
82541        Reviewed by Pavel Feldman.
82542
82543        This change only affects 'embedders' of the inspector/front_end. No change of function for WebKit ports.
82544
82545        * inspector/front-end/ExtensionAPI.js: 
82546        Replace window.top with window.parent two places. When WebInspector is loaded as the main window content, 
82547        then extension iframes have window.top === window.parent; when WebInspector is loaded as an iframe, then
82548        extensions are iframes in iframes and we need to use a relative address window.parent.
82549        (injectedExtensionAPI.ExtensionViewImpl.dispatchShowEvent):
82550        (injectedExtensionAPI.ExtensionViewImpl):
82551        (injectedExtensionAPI.ExtensionServerClient):
82552        WebKit/chromium/scripts/generate_devtools_extension_api.py:
82553        The current number of frames is used in a dynamically created identifier. Again we replace 'top' by 
82554        window.parent.
82555
825562012-07-27  Vivek Galatage  <vivekgalatage@gmail.com>
82557
82558        Web Inspector: InspectorPageAgent should ascertain document to be non-null in updateViewMetrics()
82559        https://bugs.webkit.org/show_bug.cgi?id=92476
82560
82561        Reviewed by Pavel Feldman.
82562
82563        InspectorPageAgent should check for document object being null. As pages created with blank URL might
82564        not have the document object, this causes a crash.
82565
82566        No new tests as added null check.
82567
82568        * inspector/InspectorPageAgent.cpp:
82569        (WebCore::InspectorPageAgent::updateViewMetrics):
82570
825712012-07-27  Mike West  <mkwst@chromium.org>
82572
82573        CSP directives containing invalid characters should log an error.
82574        https://bugs.webkit.org/show_bug.cgi?id=92487
82575
82576        Reviewed by Adam Barth.
82577
82578        Unknown directive names are currently logged, but we exit the directive
82579        parser early without logging if we hit an invalid character inside a
82580        directive. `script-src: ...`, for example, was ignored without letting
82581        the developer know what happened. This patch changes that behavior,
82582        logging the whole name (in this case `script-src:`) as an unknown
82583        directive.
82584
82585        Test: http/tests/security/contentSecurityPolicy/directive-parsing-04.html
82586
82587        * page/ContentSecurityPolicy.cpp:
82588        (WebCore::CSPDirectiveList::parseDirective):
82589
825902012-07-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
82591
82592        [Texmap] Performance regression in texture uploads after r121223
82593        https://bugs.webkit.org/show_bug.cgi?id=91897
82594
82595        Reviewed by Jocelyn Turcotte.
82596
82597        Rolling out r121223, with some conflict fixes.
82598
82599        * platform/graphics/texmap/TextureMapperGL.cpp:
82600        (WebCore::swizzleBGRAToRGBA):
82601        (WebCore):
82602        (WebCore::driverSupportsBGRASwizzling):
82603        (WebCore::BitmapTextureGL::didReset):
82604        (WebCore::BitmapTextureGL::updateContents):
82605
826062012-07-27  Joe Mason  <jmason@rim.com>
82607
82608        [BlackBerry] Update NetworkJob::sendRequestWithCredentials to use new getProxyAddress API
82609        https://bugs.webkit.org/show_bug.cgi?id=92457
82610
82611        Reviewed by Yong Li.
82612
82613        getProxyAddress now returns "host:port", and getProxyPort is gone. Update NetworkJob to use
82614        the new interface.
82615
82616        RIM PR: 176166
82617        Internally reviewed by Jonathan Dong <jonathan.dong@torchmobile.com.cn>
82618
82619        * platform/network/blackberry/NetworkJob.cpp:
82620        (WebCore::NetworkJob::sendRequestWithCredentials):
82621
826222012-07-27  Kevin Ellis  <kevers@chromium.org>
82623
82624        Improve touch adjustment for targetting small controls.
82625        https://bugs.webkit.org/show_bug.cgi?id=92293
82626
82627        Reviewed by Antonio Gomes.
82628
82629        Modifies the touch adjustment algorithm to better discriminate small targets without introducing
82630        a bias towards shorter links.  The revised scoring algorihtm uses a normalized distance to
82631        center-line score and a normalized overlap score.  The better of the two scores is used for
82632        determining the best candidate for target adjustment.  The center-line score works well
82633        for discriminating elements with partial overlaps, where relying solely on percent overlap
82634        could bias towards the smaller element.  Conversely, a high percentage in overlap provides a 
82635        strong measure of confidence in a candidate target.  An additonal tie-break algorithm is
82636        introduced to minimize the adjustment distance if two equally suitable candidates are found.
82637
82638        Test: touchadjustment/small-target-test.html
82639
82640        * page/TouchAdjustment.cpp:
82641        (TouchAdjustment):
82642        (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
82643        (WebCore::TouchAdjustment::hybridDistanceFunction):
82644        (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
82645        (WebCore::findBestClickableCandidate):
82646
826472012-07-27  Kevin Ellis  <kevers@chromium.org>
82648
82649        [chromium] Calendar for input type=date should be larger on devices that support touch input.
82650        https://bugs.webkit.org/show_bug.cgi?id=92424
82651
82652        Reviewed by Kent Tamura.
82653
82654        Adds touch specific CSS rules to enlarge entries in the calendar on
82655        screens that support touch input.
82656
82657        Manually tested with touch support enabled/disabled.
82658
82659        * Resources/calendarPicker.css:
82660        (@media (pointer:coarse)):
82661        * html/shadow/CalendarPickerElement.cpp:
82662        (WebCore::CalendarPickerElement::contentSize):
82663
826642012-07-28  Chris Fleizach  <cfleizach@apple.com>
82665
82666        WebKit should expose @title as label (AXTitle or AXDescription) sometimes instead of AXHelp, according to the ARIA text alt computation
82667        https://bugs.webkit.org/show_bug.cgi?id=91911
82668
82669        Reviewed by Darin Adler.
82670
82671        Update comments around code to explain rationale.
82672
82673        * accessibility/AccessibilityRenderObject.cpp:
82674        (WebCore::AccessibilityRenderObject::helpText):
82675        (WebCore::AccessibilityRenderObject::accessibilityDescription):
82676
826772012-07-27  Zoltan Horvath  <zoltan@webkit.org>
82678
82679        Add runtime flag to enable/disable JS memory information
82680        https://bugs.webkit.org/show_bug.cgi?id=92479
82681
82682        Reviewed by Simon Hausmann.
82683
82684        We need console.memory JS object to be accessible because of the memory consumption
82685        measurements of the performance tests, so I added a toggle to InternalSettings.
82686
82687        * testing/InternalSettings.cpp:
82688        (WebCore::InternalSettings::setMemoryInfoEnabled):
82689        (WebCore):
82690        * testing/InternalSettings.h:
82691        (InternalSettings):
82692        * testing/InternalSettings.idl:
82693
826942012-07-27  Arko Saha  <arko@motorola.com>
82695
82696        Microdata: Remove toJs() and toV8Object() custom methods from JSHTMLElementCustom.cpp and V8HTMLElementCustom.cpp respectively.
82697        https://bugs.webkit.org/show_bug.cgi?id=92482
82698
82699        Reviewed by Kentaro Hara.
82700
82701        Removed custom methods toJS() and toV8Object(). We should use toJS() method defined in
82702        JSMicroDataItemValueCustom.cpp and toV8() method defined in V8MicroDataItemValueCustom.cpp
82703        in place of custom toJs() and toV8Object().
82704
82705        Existing tests :
82706                fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element.html
82707                fast/dom/MicroData/itemvalue-reflects-href-attr.html
82708                fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element.html
82709                fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element.html
82710                fast/dom/MicroData/itemvalue-reflects-the-src-attr.html
82711                fast/dom/MicroData/itemvalue-returns-element-itself.html
82712                fast/dom/MicroData/itemvalue-returns-null.html
82713                fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001.html
82714                fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002.html
82715
82716        * bindings/js/JSHTMLElementCustom.cpp:
82717        (WebCore):
82718        * bindings/v8/custom/V8HTMLElementCustom.cpp:
82719        (WebCore):
82720        (WebCore::V8HTMLElement::itemValueAccessorGetter):
82721
827222012-07-27  Thiago Marcos P. Santos  <thiago.santos@intel.com>
82723
82724        REGRESSION(r123856): Breaks the build when disabling inspector
82725        https://bugs.webkit.org/show_bug.cgi?id=92493
82726
82727        Reviewed by Kentaro Hara.
82728
82729        * bindings/js/ScriptGCEvent.h:
82730        (WebCore):
82731        * bindings/v8/ScriptGCEvent.h:
82732        (WebCore):
82733
827342012-07-27  Christophe Dumez  <christophe.dumez@intel.com>
82735
82736        [EFL][WK2] Add API to Ewk_Cookie_Manager to watch for cookie changes
82737        https://bugs.webkit.org/show_bug.cgi?id=92484
82738
82739        Reviewed by Kenneth Rohde Christiansen.
82740
82741        Make use of soup/CookieStorageSoup.cpp for EFL port instead
82742        of defining empty implementations for cookie storage
82743        functions.
82744
82745        No new tests, no behavior change.
82746
82747        * PlatformEfl.cmake:
82748        * platform/efl/TemporaryLinkStubs.cpp:
82749
827502012-07-27  Keishi Hattori  <keishi@webkit.org>
82751
82752        Replace ColorChooserClient::elementRectRelativeToWindow with elementRectRelativeToRootView
82753        https://bugs.webkit.org/show_bug.cgi?id=92488
82754
82755        Reviewed by Kent Tamura.
82756
82757        Changing ColorChooserClient interface to return element rectangle that is relative to root view instead of window.
82758
82759        No new tests. Method is not used yet.
82760
82761        * html/ColorInputType.cpp:
82762        (WebCore::ColorInputType::elementRectRelativeToRootView): Replaced elementRectRelativeToWindow. Returns element rectangle relative to root view.
82763        * html/ColorInputType.h:
82764        (ColorInputType):
82765        * platform/ColorChooserClient.h:
82766        (ColorChooserClient):
82767
827682012-07-27  Dominik Röttsches  <dominik.rottsches@intel.com>
82769
82770        [Cairo] Add complex font drawing using HarfbuzzNG
82771        https://bugs.webkit.org/show_bug.cgi?id=91864
82772
82773        Reviewed by Simon Hausmann and Martin Robinson.
82774
82775        Adding Harfbuzz support to EFL by implementing it with the help of cairo and cairo-ft.
82776        Reusing Chromium's Harfbuzz-NG support.
82777
82778        No new tests, complex font support is covered by existing tests.
82779
82780        * CMakeLists.txt: Adding new cairo based implementations, removing emtpy FontEfl.cpp
82781        * WebCore.gypi: Removing FontEfl.cpp
82782        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp: Added. New implementation that implements cairo & harfbuzz-ng based complex font drawing.
82783        (WebCore):
82784        (WebCore::Font::drawComplexText):
82785        (WebCore::Font::drawEmphasisMarksForComplexText):
82786        (WebCore::Font::canReturnFallbackFontsForComplexText):
82787        (WebCore::Font::canExpandAroundIdeographsInComplexText):
82788        (WebCore::Font::floatWidthForComplexText):
82789        (WebCore::Font::offsetForPositionForComplexText):
82790        (WebCore::Font::selectionRectForComplexText):
82791        * platform/graphics/efl/FontEfl.cpp: Removed.
82792        * platform/graphics/freetype/FontPlatformData.h: Adding a getter that retrieves a harfbuzz face.
82793        (FontPlatformData):
82794        * platform/graphics/freetype/FontPlatformDataFreeType.cpp: Adding a getter that retrieves a harfbuzz face.
82795        (WebCore::FontPlatformData::operator=):
82796        (WebCore::FontPlatformData::FontPlatformData):
82797        (WebCore):
82798        (WebCore::FontPlatformData::harfbuzzFace):
82799        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp: Added. Cairo-freetype based approach to get complex font metrics.
82800        (WebCore):
82801        (CairoFtFaceLocker):
82802        (WebCore::CairoFtFaceLocker::CairoFtFaceLocker):
82803        (WebCore::CairoFtFaceLocker::lock):
82804        (WebCore::CairoFtFaceLocker::~CairoFtFaceLocker):
82805        (WebCore::floatToHarfBuzzPosition):
82806        (WebCore::doubleToHarfBuzzPosition):
82807        (WebCore::CairoGetGlyphWidthAndExtents):
82808        (WebCore::harfbuzzGetGlyph):
82809        (WebCore::harfbuzzGetGlyphHorizontalAdvance):
82810        (WebCore::harfbuzzGetGlyphHorizontalOrigin):
82811        (WebCore::harfbuzzGetGlyphExtents):
82812        (WebCore::harfbuzzCairoTextGetFontFuncs):
82813        (WebCore::harfbuzzCairoGetTable):
82814        (WebCore::HarfBuzzNGFace::createFace):
82815        (WebCore::HarfBuzzNGFace::createFont):
82816        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
82817
828182012-07-27  Adam Barth  <abarth@webkit.org>
82819
82820        Add a Setting to expose quantized, rate-limited MemoryInfo values
82821        https://bugs.webkit.org/show_bug.cgi?id=80444
82822
82823        Reviewed by Eric Seidel.
82824
82825        We do not currently expose real MemoryInfo objects to the web unless
82826        the user opts in because we're worried that this memory information
82827        could be used in side-channel attacks.
82828
82829        We've gotten feedback from a number of web app developers that this
82830        information is very useful in tracking the performance of their
82831        applications.  These developers use the setting in their testing labs
82832        and regression harnesses to catch memory leaks and regressiosn early in
82833        their development cycle.
82834
82835        Some of these developers have experimented with enabling this feature
82836        within their enterprise and have found the memory data from the field
82837        extremely useful in tracking down memory issues that slip through their
82838        testing.
82839
82840        Based on this experience, they've asked whether we can enable this
82841        functionality on a wider scale so they catch even more problems
82842        including problems that don't manifest within their enterprise.
82843        Because we're still worried about side-channel attacks, we don't want
82844        to expose the raw data, so we've talked with these folks in more detail
82845        to understand what information they find most valuable.
82846
82847        This patch is the result of those discussions.  In particular, this
82848        patch adds an option to expose quantized and rate-limited memory
82849        information to web pages.  Web pages can only learn new data every 20
82850        minutes, which helps mitigate attacks where the attacker compares two
82851        or readings to extract side-channel information.  The patch also only
82852        reports 100 distinct memory values, which (combined with the rate
82853        limts) makes it difficult for attackers to learn about small changes in
82854        memory use.
82855
82856        * page/MemoryInfo.cpp:
82857        (WebCore):
82858        (HeapSizeCache):
82859        (WebCore::HeapSizeCache::HeapSizeCache):
82860        (WebCore::HeapSizeCache::getCachedHeapSize):
82861        (WebCore::HeapSizeCache::maybeUpdate):
82862        (WebCore::HeapSizeCache::update):
82863        (WebCore::HeapSizeCache::quantize):
82864        (WebCore::MemoryInfo::MemoryInfo):
82865        * page/Settings.cpp:
82866        (WebCore::Settings::Settings):
82867        * page/Settings.h:
82868        (WebCore::Settings::setQuantizedMemoryInfoEnabled):
82869        (WebCore::Settings::quantizedMemoryInfoEnabled):
82870        (Settings):
82871
828722012-07-27  Vsevolod Vlasov  <vsevik@chromium.org>
82873
82874        Web Inspector: Move formatting support from JavaScriptSource to UISourceCode.
82875        https://bugs.webkit.org/show_bug.cgi?id=92373
82876
82877        Reviewed by Pavel Feldman.
82878
82879        Moved formatting support from JavaScriptSource to UISourceCode.
82880        Extracted Formatter interface from ScriptFormatter and created IdentityFormatter
82881        implememntation and Formatter.createFormatter(contentType) formatter factory.
82882        Introduced virtual formattedChanged() method on UISourceCode.
82883
82884        * inspector/front-end/JavaScriptSource.js:
82885        (WebInspector.JavaScriptSource):
82886        (WebInspector.JavaScriptSource.prototype.uiLocationToRawLocation):
82887        (WebInspector.JavaScriptSource.prototype.breakpointStorageId):
82888        (WebInspector.JavaScriptSource.prototype.searchInContent):
82889        (WebInspector.JavaScriptSource.prototype.formattedChanged):
82890        * inspector/front-end/ScriptFormatter.js:
82891        (WebInspector.Formatter):
82892        (WebInspector.Formatter.createFormatter):
82893        (WebInspector.Formatter.locationToPosition):
82894        (WebInspector.Formatter.positionToLocation):
82895        (WebInspector.Formatter.prototype.formatContent):
82896        (WebInspector.ScriptFormatter):
82897        (WebInspector.IdentityFormatter):
82898        (WebInspector.IdentityFormatter.prototype.formatContent):
82899        (WebInspector.FormatterSourceMappingImpl.prototype.originalToFormatted):
82900        (WebInspector.FormatterSourceMappingImpl.prototype.formattedToOriginal):
82901        * inspector/front-end/UISourceCode.js:
82902        (WebInspector.UISourceCode):
82903        (WebInspector.UISourceCode.prototype.requestContent):
82904        (WebInspector.UISourceCode.prototype._fireContentAvailable):
82905        (WebInspector.UISourceCode.prototype.uiLocationToRawLocation):
82906        (WebInspector.UISourceCode.prototype.overrideLocation):
82907        (WebInspector.UISourceCode.prototype.togglingFormatter):
82908        (WebInspector.UISourceCode.prototype.formatted):
82909        (WebInspector.UISourceCode.prototype.setFormatted.if):
82910        (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
82911        (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
82912        (WebInspector.UISourceCode.prototype.setFormatted):
82913        (WebInspector.UISourceCode.prototype.createFormatter):
82914        (WebInspector.UISourceCode.prototype.formattedChanged):
82915
829162012-07-27  Vivek Galatage  <vivekgalatage@gmail.com>
82917
82918        Page object should ascertain EditorClient to be non-null
82919        https://bugs.webkit.org/show_bug.cgi?id=92458
82920
82921        Reviewed by Ryosuke Niwa.
82922
82923        The EditorClient should always be available in Page object. Added the assertion to ascertain this.
82924
82925        No new tests. Added assertion to make sure EditorClient always exist.
82926
82927        * page/Page.cpp:
82928        (WebCore::Page::Page):
82929
829302012-07-27  Huang Dongsung  <luxtella@company100.net>
82931
82932        Gather the duplicated timer code into CachedResource.
82933        https://bugs.webkit.org/show_bug.cgi?id=92332
82934
82935        Reviewed by Nate Chapin.
82936
82937        Internal review by Jae Hyun Park.
82938
82939        When all clients are removed, CachedImage, CachedScript and CachedCSSStyleSheet
82940        start the timer to destroy decoded data. Those three classes have their own
82941        timer.
82942        Changed CachedCSSStyleSheet::didAddClient to call super class method in order to
82943        stop the timer. This change does not have any side effect because
82944        CachedResource::didAddClient only stops the timer in this case.
82945
82946        No new tests - no new testable functionality.
82947
82948        * loader/cache/CachedCSSStyleSheet.cpp:
82949        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
82950        (WebCore::CachedCSSStyleSheet::didAddClient):
82951        * loader/cache/CachedCSSStyleSheet.h:
82952        (CachedCSSStyleSheet):
82953        * loader/cache/CachedImage.cpp:
82954        (WebCore::CachedImage::CachedImage):
82955        (WebCore::CachedImage::didAddClient):
82956        (WebCore::CachedImage::allClientsRemoved):
82957        * loader/cache/CachedImage.h:
82958        (CachedImage):
82959        * loader/cache/CachedResource.cpp:
82960        (WebCore::CachedResource::CachedResource):
82961        (WebCore::CachedResource::didAddClient):
82962        (WebCore::CachedResource::removeClient):
82963        (WebCore::CachedResource::destroyDecodedDataIfNeeded):
82964        (WebCore):
82965        (WebCore::CachedResource::decodedDataDeletionTimerFired):
82966        * loader/cache/CachedResource.h:
82967        (CachedResource):
82968        * loader/cache/CachedScript.cpp:
82969        (WebCore::CachedScript::CachedScript):
82970        * loader/cache/CachedScript.h:
82971        (CachedScript):
82972
829732012-07-27  Huang Dongsung  <luxtella@company100.net>
82974
82975        Gather the duplicated timer code into CachedResource.
82976        https://bugs.webkit.org/show_bug.cgi?id=92332
82977
82978        Reviewed by Nate Chapin.
82979
82980        Internal review by Jae Hyun Park.
82981
82982        When all clients are removed, CachedImage, CachedScript and CachedCSSStyleSheet
82983        start the timer to destroy decoded data. Those three classes have their own
82984        timer.
82985        Changed CachedCSSStyleSheet::didAddClient to call super class method in order to
82986        stop the timer. This change does not have any side effect because
82987        CachedResource::didAddClient only stops the timer in this case.
82988
82989        No new tests - no new testable functionality.
82990
82991        * loader/cache/CachedCSSStyleSheet.cpp:
82992        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
82993        (WebCore::CachedCSSStyleSheet::didAddClient):
82994        * loader/cache/CachedCSSStyleSheet.h:
82995        (CachedCSSStyleSheet):
82996        * loader/cache/CachedImage.cpp:
82997        (WebCore::CachedImage::CachedImage):
82998        (WebCore::CachedImage::didAddClient):
82999        (WebCore::CachedImage::allClientsRemoved):
83000        * loader/cache/CachedImage.h:
83001        (CachedImage):
83002        * loader/cache/CachedResource.cpp:
83003        (WebCore::CachedResource::CachedResource):
83004        (WebCore::CachedResource::didAddClient):
83005        (WebCore::CachedResource::removeClient):
83006        (WebCore::CachedResource::destroyDecodedDataIfNeeded):
83007        (WebCore):
83008        (WebCore::CachedResource::decodedDataDeletionTimerFired):
83009        * loader/cache/CachedResource.h:
83010        (CachedResource):
83011        * loader/cache/CachedScript.cpp:
83012        (WebCore::CachedScript::CachedScript):
83013        * loader/cache/CachedScript.h:
83014        (CachedScript):
83015
830162012-07-27  Dana Jansens  <danakj@chromium.org>
83017
83018        [chromium] Don't add a HUD layer when there is no rootLayer
83019        https://bugs.webkit.org/show_bug.cgi?id=92442
83020
83021        Reviewed by Adrienne Walker.
83022
83023        When the compositor is shutting down in threaded mode, it does a commit
83024        without a root layer. We should not try stick the hud layer onto the
83025        null root layer.
83026
83027        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
83028        (WebCore::CCLayerTreeHost::willCommit):
83029
830302012-07-27  Alec Flett  <alecflett@chromium.org>
83031
83032        IndexedDB: inject index keys on cursor/objectstore/index get success handlers
83033        https://bugs.webkit.org/show_bug.cgi?id=91123
83034
83035        Reviewed by Tony Chang.
83036
83037        Move key-injection into the frontend, by injecting the key into
83038        the value on get rather than set for autoincremented keys. This
83039        gives a potential performance win by avoiding an IPC call to the
83040        V8 utility process on chromium, and generally cleans up the key
83041        management.
83042
83043        Note that this duplicates the logic of generateIndexKeys into the
83044        frontend until that method can be expunged from the backend. This
83045        will be cleaned up in a later patch.
83046
83047        In order to account for both old data (which has the duplicate
83048        primary key already injected and serialized) and any new data, an
83049        assertion was removed from IDBBindingUtilities.
83050
83051        This also includes some minor refactoring such as the deprecation
83052        of IDBCursorBackendInterface::update in favor of a direct call to
83053        IDBObjectStoreBackendImpl::put, and removal of the now-defunct
83054        IDBBackingStore::getObjectViaIndex.
83055
83056        Tests: storage/indexdb/index-duplicate-keypaths.html
83057
83058        * Modules/indexeddb/IDBBackingStore.h:
83059        (IDBBackingStore):
83060        * Modules/indexeddb/IDBCursor.cpp:
83061        (WebCore::IDBCursor::update):
83062        (WebCore::IDBCursor::setValueReady):
83063        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
83064        (WebCore::IDBCursorBackendImpl::update):
83065        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
83066        (WebCore::IDBIndexBackendImpl::getInternal):
83067        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
83068        * Modules/indexeddb/IDBLevelDBBackingStore.h:
83069        (IDBLevelDBBackingStore):
83070        * Modules/indexeddb/IDBObjectStore.cpp:
83071        (WebCore::generateIndexKeysForValue):
83072        (WebCore):
83073        (WebCore::IDBObjectStore::add):
83074        (WebCore::IDBObjectStore::put):
83075        * Modules/indexeddb/IDBObjectStore.h:
83076        (IDBObjectStore):
83077        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
83078        (WebCore::IDBObjectStoreBackendImpl::put):
83079        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
83080        (WebCore):
83081        (WebCore::IDBObjectStoreBackendImpl::putInternal):
83082        * Modules/indexeddb/IDBRequest.cpp:
83083        (WebCore::IDBRequest::onSuccess):
83084        * bindings/v8/IDBBindingUtilities.cpp:
83085        (WebCore):
83086
830872012-07-27  Tony Chang  <tony@chromium.org>
83088
83089        changing -webkit-order should change the paint order of flex items
83090        https://bugs.webkit.org/show_bug.cgi?id=92041
83091
83092        Reviewed by Ojan Vafai.
83093
83094        Override paintChildren and use the flex order iterator to determine the order to paint the children.
83095
83096        Test: css3/flexbox/order-painting.html
83097
83098        * rendering/RenderFlexibleBox.cpp:
83099        (WebCore::RenderFlexibleBox::layoutBlock): Save a reference to the order iterator.
83100        (WebCore::RenderFlexibleBox::paintChildren):
83101        * rendering/RenderFlexibleBox.h:
83102        (RenderFlexibleBox): Hold a reference to the order iterator so we don't have to recreate it at paint time.
83103            Also mark all the virtual methods with OVERRIDE.
83104
831052012-07-26  Sheriff Bot  <webkit.review.bot@gmail.com>
83106
83107        Unreviewed, rolling out r123820.
83108        http://trac.webkit.org/changeset/123820
83109        https://bugs.webkit.org/show_bug.cgi?id=92465
83110
83111        It made all tests crash on all port (Requested by Ossy_home on
83112        #webkit).
83113
83114        * dom/EventNames.cpp:
83115        (WebCore):
83116
831172012-07-26  Ryosuke Niwa  <rniwa@webkit.org>
83118
83119        Qt build fix after r123788. Fixed the typo.
83120
83121        * xml/parser/XMLDocumentParserQt.cpp:
83122        (WebCore::handleElementAttributes):
83123
831242012-07-26  Hironori Bono  <hbono@chromium.org>
83125
83126        [Qt] Build fix for Qt after r123811
83127        https://bugs.webkit.org/show_bug.cgi?id=92460
83128
83129        Reviewed by Ryosuke Niwa.
83130
83131        This change explicitly converts from AtomicString to String to avoid ambiguities
83132        when compiling HTMLAppletWidget.cpp on Qt.
83133
83134        No new tests because it is a build fix.
83135
83136        * html/HTMLAppletElement.cpp:
83137        (WebCore::HTMLAppletElement::updateWidget):
83138
831392012-07-26  Mike Lawther  <mikelawther@chromium.org>
83140
83141        Make transitions work between different Length types
83142        https://bugs.webkit.org/show_bug.cgi?id=92220
83143
83144        Reviewed by Simon Fraser.
83145
83146        Use the existing CSS calc machinery for blending between two calculations
83147        to blend between two Lengths of differing types.
83148
83149        Test: transitions/mixed-type.html
83150
83151        * platform/Length.cpp:
83152        (WebCore::Length::blendMixedTypes):
83153        * platform/Length.h:
83154        (WebCore::Length::blend):
83155        (Length):
83156
831572012-07-26  Dan Bernstein  <mitz@apple.com>
83158
83159        Blocks with reverse column progression don’t have layout overflow for overflowing columns
83160        https://bugs.webkit.org/show_bug.cgi?id=92440
83161
83162        Reviewed by Sam Weinig.
83163
83164        Test: fast/multicol/progression-reverse-overflow.html
83165
83166        * rendering/RenderBox.cpp:
83167        (WebCore::RenderBox::addLayoutOverflow): If column progression is reversed, then allow
83168        layout overflow to go in the opposite direction than it would normally be allowed to go.
83169        For example, in a block with writing-mode: horizontal-tb, direction: ltr and
83170        column-progression: reverse, columns overflow to the left, so layout overflow would go on
83171        the left.
83172
831732012-07-26  Keishi Hattori  <keishi@webkit.org>
83174
83175        Implement ColorSuggestionPicker page popup
83176        https://bugs.webkit.org/show_bug.cgi?id=92109
83177
83178        Reviewed by Kent Tamura.
83179
83180        Implements ColorSuggestionPicker page popup. This will be used in
83181        certain ports as the datalist UI for <input type=color>.
83182
83183        No new tests because there is no way to open the popup yet.
83184
83185        * Resources/colorSuggestionPicker.css: Added.
83186        (body):
83187        (#main):
83188        (.color-swatch):
83189        (.color-swatch:hover):
83190        (.color-swatch-container):
83191        (.other-color):
83192        * Resources/colorSuggestionPicker.js: Added.
83193        (getScrollbarWidth):When there are more than 20 colors we need to
83194        increase the window width to accommodate the scroll bar.
83195        (createElement):
83196        (handleMessage):
83197        (initialize):
83198        (handleArgumentsTimeout):
83199        (validateArguments):
83200        (submitValue): Calls setValueAndClosePopup with a numValue of 0.
83201        (handleCancel): Calls setValueAndClosePopup with a numValue of -1.
83202        (chooseOtherColor): Calls setValueAndClosePopup with a numValue of -2.
83203        (ColorPicker):
83204        (ColorPicker.prototype._layout): Lays out the color swatches in a 5x4
83205        grid.
83206        (ColorPicker.prototype._handleSwatchClick):
83207        * WebCore.gyp/WebCore.gyp: Added ColorSuggestionPicker action.
83208        * make-file-arrays.py:
83209        (main): Windows gets confused when "&&" is in the command, so we will replace " AND " with " && " internally.
83210
832112012-07-26  Anish Bhayani  <anish.bhayani@gmail.com>
83212
83213        De-virtualize WrapShape classes
83214        https://bugs.webkit.org/show_bug.cgi?id=90998
83215
83216        Reviewed by Andreas Kling.
83217
83218        The destructor for WrapShapes classes did not need to use a virtual
83219        pointer. WrapShapes.cpp is created to cast the WrapShape destructor 
83220        to the subclass type saving memory and avoiding virtual calls. 
83221
83222        There are existing tests that cover the validity of shapes. The
83223        added changes merely change the destructor of the shape objects
83224        which is also tested by LayoutTests/fast/exclusions.
83225
83226        * CMakeLists.txt:
83227        * GNUmakefile.list.am:
83228        * Target.pri:
83229        * WebCore.gypi:
83230        * WebCore.vcproj/WebCore.vcproj:
83231        * WebCore.xcodeproj/project.pbxproj:
83232        * rendering/style/WrapShapes.cpp: Added.
83233        (WebCore):
83234        (WebCore::WrapShape::destroy):
83235        * rendering/style/WrapShapes.h:
83236        (WebCore::WrapShape::deref):
83237        (WrapShape):
83238        (WebCore::WrapShape::type):
83239        (WebCore::WrapShape::setType):
83240        (WrapShapeRectangle):
83241        (WebCore::WrapShapeRectangle::WrapShapeRectangle):
83242        (WebCore::WrapShapeCircle::WrapShapeCircle):
83243        (WebCore::WrapShapeEllipse::WrapShapeEllipse):
83244        (WebCore::WrapShapePolygon::WrapShapePolygon):
83245        (WrapShapePolygon):
83246
832472012-07-26  Sheriff Bot  <webkit.review.bot@gmail.com>
83248
83249        Unreviewed, rolling out r123808.
83250        http://trac.webkit.org/changeset/123808
83251        https://bugs.webkit.org/show_bug.cgi?id=92443
83252
83253        Broke Apple Mac debug tests ASSERTION FAILED: !hasClients()
83254        (Requested by msaboff_ on #webkit).
83255
83256        * loader/cache/CachedCSSStyleSheet.cpp:
83257        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
83258        (WebCore::CachedCSSStyleSheet::didAddClient):
83259        (WebCore::CachedCSSStyleSheet::allClientsRemoved):
83260        (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
83261        (WebCore):
83262        * loader/cache/CachedCSSStyleSheet.h:
83263        (CachedCSSStyleSheet):
83264        * loader/cache/CachedImage.cpp:
83265        (WebCore::CachedImage::CachedImage):
83266        (WebCore::CachedImage::decodedDataDeletionTimerFired):
83267        (WebCore):
83268        (WebCore::CachedImage::didAddClient):
83269        (WebCore::CachedImage::allClientsRemoved):
83270        * loader/cache/CachedImage.h:
83271        (CachedImage):
83272        * loader/cache/CachedResource.cpp:
83273        (WebCore::CachedResource::CachedResource):
83274        (WebCore::CachedResource::didAddClient):
83275        (WebCore::CachedResource::removeClient):
83276        * loader/cache/CachedResource.h:
83277        (CachedResource):
83278        * loader/cache/CachedScript.cpp:
83279        (WebCore::CachedScript::CachedScript):
83280        (WebCore::CachedScript::didAddClient):
83281        (WebCore):
83282        (WebCore::CachedScript::allClientsRemoved):
83283        (WebCore::CachedScript::decodedDataDeletionTimerFired):
83284        * loader/cache/CachedScript.h:
83285        (CachedScript):
83286
832872012-07-26  Tony Chang  <tony@chromium.org>
83288
83289        [chromium] Remove some unreachable code in ClipboardChromium.cpp
83290        https://bugs.webkit.org/show_bug.cgi?id=92427
83291
83292        Reviewed by Adam Barth.
83293
83294        convertURIListToURL does the same thing (implementation in ClipboardUtilitiesChromium.*).
83295
83296        No new tests, just deleting unused code.
83297
83298        * platform/chromium/ClipboardChromium.cpp:
83299        (WebCore::ClipboardChromium::getData):
83300
833012012-07-26  Sukolsak Sakshuwong  <sukolsak@google.com>
83302
83303        Implement undoscope attribute.
83304        https://bugs.webkit.org/show_bug.cgi?id=88793
83305
83306        Reviewed by Ryosuke Niwa.
83307
83308        undoscope attribute support as specified at
83309        http://dvcs.w3.org/hg/undomanager/raw-file/tip/undomanager.html
83310
83311        Test: editing/undomanager/undoscope-attribute.html
83312
83313        * Target.pri:
83314        * WebCore.gypi:
83315        * WebCore.vcproj/WebCore.vcproj:
83316        * dom/Document.cpp:
83317        (WebCore::Document::~Document):
83318        * dom/Element.cpp:
83319        (WebCore):
83320        (WebCore::Element::undoScope):
83321        (WebCore::Element::setUndoScope):
83322        (WebCore::Element::undoManager):
83323        (WebCore::Element::disconnectUndoManager):
83324        (WebCore::Element::disconnectUndoManagersInSubtree):
83325        * dom/Element.h:
83326        (Element):
83327        * dom/Element.idl:
83328        * dom/ElementRareData.h:
83329        (ElementRareData):
83330        * editing/UndoManager.cpp:
83331        (WebCore::UndoManager::disconnect):
83332        (WebCore::UndoManager::transact):
83333        (WebCore::UndoManager::undo):
83334        (WebCore::UndoManager::redo):
83335        (WebCore::UndoManager::clearUndo):
83336        (WebCore):
83337        (WebCore::UndoManager::clearRedo):
83338        (WebCore::UndoManager::clearUndoRedo):
83339        (WebCore::UndoManager::isConnected):
83340        * editing/UndoManager.h:
83341        (WebCore):
83342        (UndoManager):
83343        (WebCore::UndoManager::length):
83344        * editing/UndoManager.idl:
83345        * html/HTMLAttributeNames.in:
83346        * html/HTMLElement.cpp:
83347        (WebCore::HTMLElement::parseAttribute):
83348        (WebCore::HTMLElement::setContentEditable):
83349
833502012-07-26  Yoshifumi Inoue  <yosin@chromium.org>
83351
83352        [Forms] Introduce runtime feature flags for input type datetime, datetimelocal, month, time, week
83353        https://bugs.webkit.org/show_bug.cgi?id=92339
83354
83355        Reviewed by Kent Tamura.
83356
83357        To detect compilation errors and test failure earlier, I would like
83358        build and run tests for input type datetime, datetime-local, month,
83359        time and week with runtime feature flags to avoid behavior changes
83360        other than test shell.
83361
83362        This patch adds runtime features for input types, datetime, datetime-local,
83363        month, time and week and integrates them into InputType::createInputTypeFactoryMap
83364        to follow runtime feature flags.
83365
83366        At this time, these runtime features are enabled by default for all
83367        ports define ENABLE_INPUT_TYPE_XXX except for Chromium port other than
83368        Android. I'll remove these #if after I update Chromium browser for
83369        disabling them for non-Android.
83370
83371        No new tests. Enabling disabled tests (fast/forms/datetime, fast/forms/dattimelocal,
83372        fast/forms/month, fast/forms/time, fast/forms/week)
83373
83374        * bindings/generic/RuntimeEnabledFeatures.cpp: Added initializations of
83375        variables for runtime features of input types.
83376        * bindings/generic/RuntimeEnabledFeatures.h:
83377        (WebCore::RuntimeEnabledFeatures::inputTypeDateTimeEnabled): Added.
83378        (WebCore::RuntimeEnabledFeatures::setInputTypeDateTimeEnabled): Added.
83379        (WebCore::RuntimeEnabledFeatures::inputTypeDateTimeLocalEnabled): Added.
83380        (WebCore::RuntimeEnabledFeatures::setInputTypeDateTimeLocalEnabled): Added.
83381        (WebCore::RuntimeEnabledFeatures::inputTypeMonthEnabled): Added.
83382        (WebCore::RuntimeEnabledFeatures::setInputTypeMonthEnabled): Added.
83383        (WebCore::RuntimeEnabledFeatures::inputTypeTimeEnabled): Added.
83384        (WebCore::RuntimeEnabledFeatures::setInputTypeTimeEnabled): Added.
83385        (WebCore::RuntimeEnabledFeatures::inputTypeWeekEnabled): Added.
83386        (WebCore::RuntimeEnabledFeatures::setInputTypeWeekEnabled): Added.
83387        * html/InputType.cpp:
83388        (WebCore::createInputTypeFactoryMap): Register input types datetime,
83389        datetime-local, month, time and week if corresponding runtime feature
83390        flag is enabled.
83391        * html/InputType.h: Changed indentation to force building *InputType.cpp for
83392        making Chromium-win bots to be happy.
83393
833942012-07-26  Xianzhu Wang  <wangxianzhu@chromium.org>
83395
83396        [Chromium-Android] Don't overlay scrollbars in layout test mode
83397        https://bugs.webkit.org/show_bug.cgi?id=92419
83398
83399        Reviewed by Adam Barth.
83400
83401        No new tests. This fixes failures of existing tests, e.g. css1/box_properties/border.html and many others.
83402
83403        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
83404        (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars): Returns false in layout test mode.
83405        (WebCore):
83406        (WebCore::ScrollbarThemeChromiumAndroid::hasThumb): Returns false in layout test mode (to match pixel test expectations).
83407        * platform/chromium/ScrollbarThemeChromiumAndroid.h:
83408        (ScrollbarThemeChromiumAndroid):
83409
834102012-07-26  Jeffrey Pfau  <jpfau@apple.com>
83411
83412        Reloading substitute-data/alternate html string for unreachableURL will add an item to the back-forward-history for each reload
83413        https://bugs.webkit.org/show_bug.cgi?id=84041
83414
83415        Reviewed by Brady Eidson.
83416
83417        Previously, loadAlternateHTMLString:baseURL:forUnreachableURL: would insert a new history item, regardless of
83418        the load type of the original frame load. This could cause navigation to a broken website to make back and
83419        forward navigation difficult to use. This change ensures that a reload type makes it through all the way.
83420
83421        Added API test 'mac/BackForwardList.mm'.
83422
83423        * loader/FrameLoader.cpp:
83424        (WebCore::FrameLoader::load): Prevent m_loadType from being overwritten early and check if it's a reload.
83425        * loader/HistoryController.cpp:
83426        (WebCore::HistoryController::updateForCommit): Amend check when committing the provisional item for a reload.
83427        (WebCore::HistoryController::isReloadTypeWithProvisionalItem): Check that a reload type has a provisional item.
83428        (WebCore):
83429        * loader/HistoryController.h:
83430        (HistoryController): Add prototype for isReloadTypeWithProvisionalItem.
83431
834322012-07-26  Silvia Pfeiffer  <silviapf@chromium.org>
83433
83434        [Chromium] Regression: Global-buffer-overflow in WebCore::mediaControlElementType
83435        https://bugs.webkit.org/show_bug.cgi?id=91333
83436
83437        Reviewed by Eric Seidel.
83438
83439        MediaControlChromiumEnclosureElement now is a subclass of MediaControlElement, which
83440        fixes the broken cast detected in the bug.
83441        The displayType() of MediaControlChromiumEnclosureElement is set to 'MediaControlsPanel',
83442        since the Panel element is sufficiently close in functionality to the Enclosure element.
83443        By reusing this type, we do not need to introduce a Chromium-specific constant into
83444        the generally used MediaControlElementType.
83445
83446        Test: accessibility/media-controls.html
83447
83448        * html/shadow/MediaControlRootElementChromium.cpp:
83449        (WebCore::MediaControlChromiumEnclosureElement::MediaControlChromiumEnclosureElement):
83450        Subclass MediaControlChromiumEnclosureElement from MediaControlElement.
83451        (WebCore::MediaControlChromiumEnclosureElement::displayType):
83452        Give the enclosure the MediaPanels type.
83453        * html/shadow/MediaControlRootElementChromium.h:
83454        Add the MediaControlElement.h header file.
83455        (MediaControlChromiumEnclosureElement):
83456        Subclass MediaControlChromiumEnclosureElement from MediaControlElement.
83457
834582012-07-26  Arnaud Renevier  <arno@renevier.net>
83459
83460        [GTK] avoid unneeded object creation when calling Vector::append
83461        https://bugs.webkit.org/show_bug.cgi?id=88805
83462
83463        Reviewed by Alexey Proskuryakov.
83464
83465        No new tests: no change in functionality.
83466
83467        * platform/gtk/ContextMenuGtk.cpp:
83468        (WebCore::contextMenuItemVector):
83469        * platform/gtk/KeyBindingTranslator.h:
83470        (WebCore::KeyBindingTranslator::addPendingEditorCommand):
83471
834722012-07-26  Benjamin Poulain  <bpoulain@apple.com>
83473
83474        Initialize the Event Names' strings from read only memory
83475        https://bugs.webkit.org/show_bug.cgi?id=92435
83476
83477        Reviewed by Anders Carlsson.
83478
83479        Similarily to r123689, we can initialize the event names' strings from memory without copying the data.
83480        This saves us memory and initialization time.
83481
83482        * dom/EventNames.cpp:
83483        (WebCore):
83484
834852012-07-26  Arnaud Renevier  <a.renevier@sisa.samsung.com>
83486
83487        constructing TypedArray from another TypedArray is slow
83488        https://bugs.webkit.org/show_bug.cgi?id=90838
83489
83490        Reviewed by Kenneth Russell.
83491
83492        When constructing a typed array from an array like element, try to
83493        determine if the argument is a typed array. If so, cast the argument
83494        to a typed array, and read each element with .item() method. That
83495        avoid reading the value as a JSValue, and speedups construction by
83496        approximatively 3x (even 30x if TypedArrays are both the same type).
83497
83498        In order to achieve that, we use virtual getType method. We can use
83499        this information to cast the TypedArray to the actual type, and then
83500        read the values from the source.
83501
83502        Introduce constructArrayBufferViewWithTypedArrayArgument template
83503        function which returns a new typed array if first argument is a typed
83504        array, or 0 otherwise.
83505
83506        This patch also replaces previous is<Type>Array() calls with new
83507        getType method.
83508
83509        * bindings/js/JSArrayBufferViewHelper.h:
83510        (WebCore::constructArrayBufferViewWithTypedArrayArgument):
83511        (WebCore):
83512        (WebCore::constructArrayBufferView):
83513        * bindings/v8/SerializedScriptValue.cpp:
83514        * html/canvas/DataView.h:
83515        (DataView):
83516        (WebCore::DataView::getType):
83517        * html/canvas/WebGLRenderingContext.cpp:
83518        (WebCore):
83519        (WebCore::WebGLRenderingContext::readPixels):
83520        (WebCore::WebGLRenderingContext::validateTexFuncData):
83521        * page/Crypto.cpp:
83522
835232012-07-26  Max Vujovic  <mvujovic@adobe.com>
83524
83525        Added binding and updated chromium tests.
83526
83527        [CSS Filters] Add V8 binding for WebKitCSSFilterValue
83528        https://bugs.webkit.org/show_bug.cgi?id=92391
83529
83530        Reviewed by Adam Barth.
83531
83532        No new tests. This fixes test cases in:
83533            platform/chromium/css3/filters/custom/custom-filter-property-computed-style-expected.txt
83534            platform/chromium/css3/filters/custom/custom-filter-property-parsing-expected.txt
83535            platform/chromium/css3/filters/filter-property-computed-style-expected.txt
83536            platform/chromium/css3/filters/filter-property-parsing-expected.txt
83537
83538        * bindings/v8/custom/V8CSSValueCustom.cpp:
83539        (WebCore::toV8):
83540
835412012-07-26  Nayan Kumar K  <nayankk@motorola.com>
83542
83543        [WebGL] Initial size of canvas can be larger than MAX_VIEWPORT_DIMS.
83544        https://bugs.webkit.org/show_bug.cgi?id=91976
83545
83546        Reviewed by Kenneth Russell.
83547
83548        From section 2.2 of the spec the WebGL implementation says initial size of
83549        the canvas can be larger than MAX_VIEWPORT_DIMS. With the current WebGL
83550        implementation, we get error when initial size if greater than MAX_VIEWPORT_DIMS.
83551        This change limits the width and height of drawingbuffer to MAX_VIEWPORT_DIMS
83552        when given initial size exceeds it.
83553
83554        Added tests to LayoutTests/fast/canvas/webgl/drawingbuffer-test.html
83555
83556        * html/canvas/WebGLRenderingContext.cpp:
83557        (WebCore):
83558        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
83559        (WebCore::WebGLRenderingContext::initializeNewContext):
83560        (WebCore::WebGLRenderingContext::markContextChanged):
83561
835622012-07-26  Adrienne Walker  <enne@google.com>
83563
83564        [chromium] When computing surface content scale, use top level device scale
83565        https://bugs.webkit.org/show_bug.cgi?id=92328
83566
83567        Reviewed by Kenneth Russell.
83568
83569        Previously, surface scale was calculated with layer->contentsScale(),
83570        however this value is 1 for any layer that is not ContentLayerChromium
83571        because of layer->needsContentsScale(). This would cause any surface
83572        created with a non-content owner layer to look fuzzy on a high DPI
83573        device. Fix by using the top level device scale.
83574
83575        Additionally, remove contentsScale from CCLayerImpl as it is no longer
83576        used.
83577
83578        * platform/graphics/chromium/LayerChromium.cpp:
83579        (WebCore::LayerChromium::pushPropertiesTo):
83580        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
83581        (WebCore::CCLayerImpl::CCLayerImpl):
83582        * platform/graphics/chromium/cc/CCLayerImpl.h:
83583        (CCLayerImpl):
83584        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
83585        (WebCore::calculateDrawTransformsInternal):
83586        (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
83587
835882012-07-26  Anders Carlsson  <andersca@apple.com>
83589
83590        HTMLAppletElement should inherit from HTMLPlugInImageElement
83591        https://bugs.webkit.org/show_bug.cgi?id=92320
83592
83593        Reviewed by Eric Seidel.
83594
83595        In order to simplify the class hierarchy and eventually merge HTMLPlugInImageElement and HMTLPlugInElement,
83596        make HTMLAppletElement inherit from HTMLPlugInImageElement. While this does mean that HTMLAppletElement will grow by
83597        a couple of words, in practice it won't matter.
83598
83599        Also, make RenderApplet inherit from RenderEmbeddedObject and move the plug-in instantiation to HTMLAppletElement which matches
83600        both HTMLEmbedElement and HTMLObjectElement.
83601
83602        * html/HTMLAppletElement.cpp:
83603        (WebCore::HTMLAppletElement::HTMLAppletElement):
83604        (WebCore::HTMLAppletElement::create):
83605        (WebCore::HTMLAppletElement::parseAttribute):
83606        (WebCore::HTMLAppletElement::rendererIsNeeded):
83607        (WebCore::HTMLAppletElement::createRenderer):
83608        (WebCore):
83609        (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
83610        (WebCore::HTMLAppletElement::updateWidget):
83611        * html/HTMLAppletElement.h:
83612        (HTMLAppletElement):
83613        * html/HTMLTagNames.in:
83614        * loader/SubframeLoader.cpp:
83615        (WebCore::SubframeLoader::createJavaAppletWidget):
83616        * loader/SubframeLoader.h:
83617        (SubframeLoader):
83618        * page/FrameView.cpp:
83619        (WebCore::FrameView::updateWidget):
83620        * rendering/RenderApplet.cpp:
83621        (WebCore::RenderApplet::RenderApplet):
83622        * rendering/RenderApplet.h:
83623        (RenderApplet):
83624        * rendering/RenderEmbeddedObject.h:
83625        (WebCore::toRenderEmbeddedObject):
83626        * rendering/RenderLayer.cpp:
83627        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
83628        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
83629        * rendering/RenderLayerBacking.cpp:
83630        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
83631        * rendering/RenderLayerCompositor.cpp:
83632        (WebCore::RenderLayerCompositor::requiresCompositingForPlugin):
83633        * rendering/RenderObject.cpp:
83634        (WebCore::RenderObject::setStyle):
83635        * rendering/RenderObject.h:
83636
836372012-07-26  Sheriff Bot  <webkit.review.bot@gmail.com>
83638
83639        Unreviewed, rolling out r123799.
83640        http://trac.webkit.org/changeset/123799
83641        https://bugs.webkit.org/show_bug.cgi?id=92431
83642
83643        broke the Apple Mac build (Requested by bweinstein on
83644        #webkit).
83645
83646        * CMakeLists.txt:
83647        * GNUmakefile.list.am:
83648        * Target.pri:
83649        * WebCore.gypi:
83650        * dom/EventNames.h:
83651        (WebCore):
83652        * dom/GestureEvent.cpp: Removed.
83653        * dom/GestureEvent.h: Removed.
83654        * dom/Node.cpp:
83655        * dom/Node.h:
83656        (WebCore):
83657        (Node):
83658        * page/EventHandler.cpp:
83659        (WebCore::EventHandler::clear):
83660        (WebCore::EventHandler::handleGestureEvent):
83661        * page/EventHandler.h:
83662
836632012-07-26  Nima Ghanavatian  <nghanavatian@rim.com>
83664
83665        [BlackBerry] Support async spellcheck for the blackberry port
83666        https://bugs.webkit.org/show_bug.cgi?id=92160
83667
83668        Set USE_UNIFIED_TEXT_CHECKING for PLATFORM(BLACKBERRY) to use the
83669        asynchronous spellchecking code path.
83670
83671        Reviewed by Rob Buis.
83672
83673        Internally reviewed by Mike Fenton.
83674
83675        * platform/text/TextChecking.h:
83676        (WebCore):
83677
836782012-07-26  Huang Dongsung  <luxtella@company100.net>
83679
83680        Gather the duplicated timer code into CachedResource.
83681        https://bugs.webkit.org/show_bug.cgi?id=92332
83682
83683        Reviewed by Nate Chapin.
83684
83685        Internal review by Jae Hyun Park.
83686
83687        When all clients are removed, CachedImage, CachedScript and CachedCSSStyleSheet
83688        start the timer to destroy decoded data. Those three classes have their own
83689        timer.
83690        Changed CachedCSSStyleSheet::didAddClient to call super class method in order to
83691        stop the timer. This change does not have any side effect because
83692        CachedResource::didAddClient only stops the timer in this case.
83693
83694        No new tests - no new testable functionality.
83695
83696        * loader/cache/CachedCSSStyleSheet.cpp:
83697        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
83698        (WebCore::CachedCSSStyleSheet::didAddClient):
83699        * loader/cache/CachedCSSStyleSheet.h:
83700        (CachedCSSStyleSheet):
83701        * loader/cache/CachedImage.cpp:
83702        (WebCore::CachedImage::CachedImage):
83703        (WebCore::CachedImage::didAddClient):
83704        (WebCore::CachedImage::allClientsRemoved):
83705        * loader/cache/CachedImage.h:
83706        (CachedImage):
83707        * loader/cache/CachedResource.cpp:
83708        (WebCore::CachedResource::CachedResource):
83709        (WebCore::CachedResource::didAddClient):
83710        (WebCore::CachedResource::removeClient):
83711        (WebCore::CachedResource::destroyDecodedDataIfNeeded):
83712        (WebCore):
83713        (WebCore::CachedResource::decodedDataDeletionTimerFired):
83714        * loader/cache/CachedResource.h:
83715        (CachedResource):
83716        * loader/cache/CachedScript.cpp:
83717        (WebCore::CachedScript::CachedScript):
83718        * loader/cache/CachedScript.h:
83719        (CachedScript):
83720
837212012-07-26  Benjamin Poulain  <bpoulain@apple.com>
83722
83723        Use the constant count of Tags/Attributes names instead of getting the size when obtaining the tags/attributes
83724        https://bugs.webkit.org/show_bug.cgi?id=92411
83725
83726        Reviewed by Julien Chaffraix.
83727
83728        Since r123582, the number of tags and attributes per "namespace" is exposed in a constant in the header file.
83729        This makes it possible to access this value through two ways:
83730        1) The constant.
83731        2) The first parameter of the tags/attributes getter function.
83732
83733        Having two ways to access the value is error prone. This patches changes the code to have all accesses done
83734        through the constant.
83735
83736        * dom/make_names.pl:
83737        (printNamesHeaderFile):
83738        (printNamesCppFile):
83739        Change the code generator to not provide the size in the getter function.
83740
83741        * html/HTMLObjectElement.cpp:
83742        (WebCore::isRecognizedTagName):
83743        * html/parser/HTMLTreeBuilder.cpp:
83744        (WebCore::adjustSVGTagNameCase):
83745        (WebCore):
83746        (WebCore::adjustAttributes):
83747        (WebCore::adjustSVGAttributes):
83748        (WebCore::adjustMathMLAttributes):
83749        (WebCore::adjustForeignAttributes):
83750
837512012-07-26  Chang Shu  <cshu@webkit.org>
83752
83753        Support constructor-type static readonly attribute for CodeGenerator.
83754        https://bugs.webkit.org/show_bug.cgi?id=92413.
83755
83756        Reviewed by Adam Barth.
83757
83758        Added support for constructor-type static readonly attribute for CodeGenerator.
83759        This is achieved by putting the attribute entry in the table where static properties
83760        belong to but leave the implementation same as a non-static constructor-type attribute.
83761
83762        Tested by running run-bindings-tests.
83763
83764        * bindings/scripts/CodeGeneratorJS.pm:
83765        (GenerateImplementation):
83766        * bindings/scripts/test/JS/JSTestInterface.cpp:
83767        (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
83768        (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
83769        * bindings/scripts/test/JS/JSTestObj.cpp:
83770        (WebCore):
83771        (WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
83772        (WebCore::jsTestObjConstructorStaticStringAttr):
83773        (WebCore::jsTestObjConstructorTestSubObj):
83774        * bindings/scripts/test/JS/JSTestObj.h:
83775        (WebCore):
83776        * bindings/scripts/test/TestObj.idl:
83777        * bindings/scripts/test/V8/V8TestObj.cpp:
83778        (WebCore):
83779
837802012-07-26  Sadrul Habib Chowdhury  <sadrul@chromium.org>
83781
83782        Propagate gesture events to plugins.
83783        https://bugs.webkit.org/show_bug.cgi?id=92281
83784
83785        Reviewed by Adam Barth.
83786
83787        Propagate gesture events to plugins. This change does not expose the gesture events
83788        to JavaScript, since there is no spec for that at the moment. Exposing gesture events
83789        to JavaScript will be done separately, once there is a spec for it.
83790
83791        Test: platform/chromium/plugins/gesture-events.html
83792
83793        * CMakeLists.txt:
83794        * GNUmakefile.list.am:
83795        * Target.pri:
83796        * WebCore.gypi:
83797        * dom/EventNames.h:
83798        (WebCore):
83799        (WebCore::EventNames::isGestureEventType):
83800        (EventNames):
83801        * dom/GestureEvent.cpp: Added.
83802        (WebCore):
83803        (WebCore::GestureEvent::create):
83804        (WebCore::GestureEvent::initGestureEvent):
83805        (WebCore::GestureEvent::interfaceName):
83806        (WebCore::GestureEvent::GestureEvent):
83807        (WebCore::GestureEventDispatchMediator::GestureEventDispatchMediator):
83808        (WebCore::GestureEventDispatchMediator::event):
83809        (WebCore::GestureEventDispatchMediator::dispatchEvent):
83810        * dom/GestureEvent.h: Added.
83811        (WebCore):
83812        (GestureEvent):
83813        (WebCore::GestureEvent::~GestureEvent):
83814        (WebCore::GestureEvent::deltaX):
83815        (WebCore::GestureEvent::deltaY):
83816        (WebCore::GestureEvent::GestureEvent):
83817        (GestureEventDispatchMediator):
83818        (WebCore::GestureEventDispatchMediator::create):
83819        * dom/Node.cpp:
83820        (WebCore):
83821        (WebCore::Node::dispatchGestureEvent):
83822        * dom/Node.h:
83823        (WebCore):
83824        (Node):
83825        * page/EventHandler.cpp:
83826        (WebCore::EventHandler::clear):
83827        (WebCore::EventHandler::handleGestureEvent):
83828        * page/EventHandler.h:
83829
838302012-07-26  Gavin Peters  <gavinp@chromium.org>
83831
83832        Guard Prerenderer against inserting prerenders into detached documents.
83833        https://bugs.webkit.org/show_bug.cgi?id=92401
83834
83835        Reviewed by Adam Barth.
83836
83837        If the document is detached, we should not launch a prerender.
83838
83839        Test: fast/dom/HTMLLinkElement/prerender-insert-after-stop.html
83840
83841        * loader/Prerenderer.cpp:
83842        (WebCore::Prerenderer::render):
83843
838442012-07-26  Sheriff Bot  <webkit.review.bot@gmail.com>
83845
83846        Unreviewed, rolling out r123525.
83847        http://trac.webkit.org/changeset/123525
83848        https://bugs.webkit.org/show_bug.cgi?id=92421
83849
83850        it needed to be rolled out after r123779 too (Requested by
83851        jchaffraix on #webkit).
83852
83853        * rendering/RenderObjectChildList.cpp:
83854        (WebCore::RenderObjectChildList::insertChildNode):
83855
838562012-07-26  Pravin D  <pravind.2k4@gmail.com>
83857
83858        Outline is always painted on the first table row regardless of the row it's set on
83859        https://bugs.webkit.org/show_bug.cgi?id=92389
83860
83861        Reviewed by Eric Seidel.
83862
83863        The outlines of all the rows are drawn on the row instead of their respective rows.
83864        The paint offset for the outlines does not take the row location into account.
83865
83866        Test: fast/table/table-row-outline-paint.html
83867
83868        * rendering/RenderTableRow.cpp:
83869        (WebCore::RenderTableRow::paintOutlineForRowIfNeeded):
83870        The row's location is taken into account for calculating the correct paint offset
83871        for its outline.
83872
838732012-07-26  Antoine Labour  <piman@chromium.org>
83874
83875        [chromium] Combine color matrix filters and apply them in a single pass.
83876        https://bugs.webkit.org/show_bug.cgi?id=92059
83877
83878        Reviewed by Stephen White.
83879
83880        Sequential color matrix filters can easily be combined, by simply
83881        multiplying the color matrices and applying it in a single pass. This
83882        helps dramatically with performance (bandwidth savings by avoiding extra
83883        copy & clear, also saves fragment shader processing).
83884
83885        Covered by css3/filters layout tests, added effect-brightness-clamping
83886        and effect-brightness-clamping-hw.
83887
83888        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
83889        (WebCore::CCRenderSurfaceFilters::apply):
83890
838912012-07-26  Ryosuke Niwa  <rniwa@webkit.org>
83892
83893        Href attribute with javascript protocol is stripped when content is pasted into a XML doucment
83894        https://bugs.webkit.org/show_bug.cgi?id=92310
83895
83896        Reviewed by Adam Barth.
83897
83898        The bug was caused by setAttributeNS's stripping attributes for which isAttributeToRemove
83899        return true instead of setting an empty string. Changing this in setAttributeNS is problematic
83900        because it will trigger a logic, in HTMLAnchorElement for example, to resolve the URL.
83901
83902        Fixed the bug by making XML parsers call parserSetAttributes instead of setAttributeNS.
83903        After this patch, handleNamespaceAttributes and handleElementAttributes simply fills up a Vector
83904        with which startElementNs (or parseStartElement in Qt) calls parserSetAttributes.
83905
83906        * dom/Element.cpp:
83907        (WebCore::Element::parserSetAttributes): Sets emptyAtom instead of nullAtom as nullAtom can be
83908        turned into "null".
83909        (WebCore::Element::parseAttributeName): Extracted from setAttributeNS.
83910        (WebCore::Element::setAttributeNS): No longer takes FragmentScriptingPermission.
83911        * dom/Element.h:
83912        (Element):
83913        * editing/markup.cpp:
83914        (WebCore::completeURLs): Don't resolve URLs when it's empty since empty attribute has a canonical
83915        meaning in some cases. e.g. <frame src=""></iframe>
83916        * xml/parser/XMLDocumentParserLibxml2.cpp:
83917        (WebCore::handleNamespaceAttributes): Renamed from handleElementNamespaces. Call
83918        parserSetAttributes even when exiting early to be maintain the same behavior.
83919        (WebCore::handleElementAttributes):
83920        (WebCore::XMLDocumentParser::startElementNs):
83921        * xml/parser/XMLDocumentParserQt.cpp:
83922        (WebCore::handleNamespaceAttributes): Use XMLNSNames::xmlnsNamespaceURI. Call parserSetAttributes
83923        even when exiting early to be maintain the same behavior.
83924        (WebCore::handleElementAttributes):
83925        (WebCore::XMLDocumentParser::parseStartElement):
83926
839272012-07-26  Dan Bernstein  <mitz@apple.com>
83928
83929        <svg> element with no intrinsic size and max-width gets sized incorrectly
83930        https://bugs.webkit.org/show_bug.cgi?id=92410
83931
83932        Reviewed by Dean Jackson.
83933
83934        Test: svg/css/max-width-2.html
83935
83936        * rendering/RenderReplaced.cpp:
83937        (WebCore::RenderReplaced::computeReplacedLogicalWidth): The rule for computing the width for
83938        elements whose computed width and height are both auto and which have no intrinsic size, but
83939        have an intrinsic ratio was applied only to elements with a content renderer (such as <img>
83940        with an SVG source). Removed the requirement to have a content renderer, so that it will
83941        apply to all elements including <svg>.
83942
839432012-07-26  Tony Chang  <tony@chromium.org>
83944
83945        Regression: r123696 made css3/flexbox tests failing
83946        https://bugs.webkit.org/show_bug.cgi?id=92352
83947
83948        Reviewed by Levi Weintraub.
83949
83950        Use roundedLayoutUnit so ports without subpixel layout still pass existing tests.
83951
83952        Covered by css3/flexbox/flex-algorithm-min-max.html which should pass again.
83953
83954        * rendering/RenderFlexibleBox.cpp:
83955        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
83956
839572012-07-26  Emil A Eklund  <eae@chromium.org>
83958
83959        Contained div with right 0 sometimes overlaps parent div
83960        https://bugs.webkit.org/show_bug.cgi?id=91521
83961
83962        Reviewed by Levi Weintraub.
83963
83964        Due to unnecessary rounding in clientLogicalWidth and clientLogicalHeight
83965        we lost precision when computing the width and position of render boxes.
83966        Change clientLogicalWidth/Height to return values with subpixel precision
83967        to avoid this.
83968
83969        Test: fast/sub-pixel/position-right-aligns-with-container.html
83970
83971        * rendering/RenderBox.h:
83972        (WebCore::RenderBox::clientLogicalWidth):
83973        (WebCore::RenderBox::clientLogicalHeight):
83974        Remove unnecessary rounding.
83975
839762012-07-26  Chang Shu  <cshu@webkit.org>
83977
83978        Build broken when svg is disabled.
83979        https://bugs.webkit.org/show_bug.cgi?id=92393.
83980
83981        Reviewed by Laszlo Gombos.
83982
83983        Need to surpress unused parameters warning.
83984
83985        * rendering/FilterEffectRenderer.cpp:
83986        (WebCore::FilterEffectRenderer::buildReferenceFilter):
83987
839882012-07-25  Jer Noble  <jer.noble@apple.com>
83989
83990        Add diagnostic messages when media and plugins load or fail to load.
83991        https://bugs.webkit.org/show_bug.cgi?id=92341
83992
83993        Reviewed by Anders Carlsson.
83994
83995        Send diagnostic messages when a media or plugin element loads or fails to load. Include in
83996        the trace the media engine description, error code, or plugin mime type.
83997
83998        * html/HTMLEmbedElement.cpp:
83999        (WebCore::HTMLEmbedElement::updateWidget): Send a diagnostic message.
84000        * html/HTMLMediaElement.cpp:
84001        (WebCore::stringForNetworkState): Added convenience function to stringify network states.
84002        (WebCore::HTMLMediaElement::mediaLoadingFailed): Send a diagnostic message.
84003        (WebCore::HTMLMediaElement::setReadyState): Send a diagnostic message.
84004        * html/HTMLObjectElement.cpp:
84005        (WebCore::HTMLObjectElement::updateWidget): Send a diagnostic message.
84006
840072012-07-26  Sheriff Bot  <webkit.review.bot@gmail.com>
84008
84009        Unreviewed, rolling out r123159, r123165, r123168, r123492,
84010        and r123650.
84011        http://trac.webkit.org/changeset/123159
84012        http://trac.webkit.org/changeset/123165
84013        http://trac.webkit.org/changeset/123168
84014        http://trac.webkit.org/changeset/123492
84015        http://trac.webkit.org/changeset/123650
84016        https://bugs.webkit.org/show_bug.cgi?id=92406
84017
84018        allowing inline-table anonymous wrappers is a bad idea due to
84019        tons of corner cases that should be properly handled
84020        (Requested by jchaffraix on #webkit).
84021
84022        * rendering/RenderInline.cpp:
84023        (WebCore::RenderInline::addChildIgnoringContinuation):
84024        * rendering/RenderTable.cpp:
84025        (WebCore::RenderTable::createAnonymousWithParentRenderer):
84026
840272012-07-26  Jer Noble  <jer.noble@apple.com>
84028
84029        Add a ChromeClient method to send diagnostic logging messages from WebCore to the client.
84030        https://bugs.webkit.org/show_bug.cgi?id=92340
84031
84032        Reviewed by Anders Carlsson.
84033
84034        Add a new ChromeClient menthod, to be implemented by WebKit and WebKit2, which sends
84035        a diagnostic logging message up to the client.
84036
84037        * page/ChromeClient.h:
84038        (WebCore::ChromeClient::logDiagnosticMessage):
84039        * page/ChromeClient.h:
84040        (WebCore::ChromeClient::logDiagnosticMessage):
84041        (ChromeClient):
84042        * page/DiagnosticLoggingKeys.cpp: Added.
84043        (WebCore::DiagnosticLoggingKeys::mediaLoadedKey):
84044        (WebCore::DiagnosticLoggingKeys::mediaLoadingFailedKey):
84045        (WebCore::DiagnosticLoggingKeys::pluginLoadedKey):
84046        (WebCore::DiagnosticLoggingKeys::pluginLoadingFailedKey):
84047        (WebCore::DiagnosticLoggingKeys::passKey):
84048        (WebCore::DiagnosticLoggingKeys::failKey):
84049        (WebCore::DiagnosticLoggingKeys::noopKey):
84050        * page/DiagnosticLoggingKeys.h: Added.
84051        (DiagnosticLoggingKeys):
84052
84053        Add the new files DiagnosticLoggingKeys.cpp,h to the project:
84054        * CMakeLists.txt:
84055        * GNUmakefile.list.am:
84056        * Target.pri:
84057        * WebCore.gypi:
84058        * WebCore.vcproj/WebCore.vcproj:
84059        * WebCore.xcodeproj/project.pbxproj:
84060
840612012-07-25  Jer Noble  <jer.noble@apple.com>
84062
84063        Add setting to enable and disable diagnostic logging.
84064        https://bugs.webkit.org/show_bug.cgi?id=92337
84065
84066        Reviewed by Anders Carlsson.
84067
84068        Add a new entry in Settings, defaulting to false.
84069
84070        * page/Settings.cpp:
84071        (WebCore::Settings::Settings): Default the new setting to false.
84072        * page/Settings.h:
84073        (WebCore::Settings::setDiagnosticLoggingEnabled): Simple accessor.
84074        (WebCore::Settings::diagnosticLoggingEnabled): Ditto.
84075
840762012-07-26  Olivier Blin  <olivier.blin@softathome.com>
84077
84078        Add FastMalloc statistics in window.internals
84079        https://bugs.webkit.org/show_bug.cgi?id=91274
84080
84081        Reviewed by Ryosuke Niwa.
84082
84083        Test: fast/harness/fastmallocstatistics-object.html
84084
84085        * CMakeLists.txt:
84086        * DerivedSources.make:
84087        * DerivedSources.pri:
84088        * GNUmakefile.list.am:
84089        * Target.pri:
84090        * WebCore.gyp/WebCore.gyp:
84091        * WebCore.gypi:
84092        * WebCore.vcproj/WebCoreTestSupport.vcproj:
84093        * WebCore.xcodeproj/project.pbxproj:
84094        * testing/FastMallocStatistics.h: Added.
84095        (WebCore):
84096        (FastMallocStatistics):
84097        (WebCore::FastMallocStatistics::create):
84098        (WebCore::FastMallocStatistics::reservedVMBytes):
84099        (WebCore::FastMallocStatistics::committedVMBytes):
84100        (WebCore::FastMallocStatistics::freeListBytes):
84101        (WebCore::FastMallocStatistics::FastMallocStatistics):
84102        * testing/FastMallocStatistics.idl: Added.
84103        * testing/Internals.cpp:
84104        (WebCore::Internals::fastMallocStatistics):
84105        (WebCore):
84106        * testing/Internals.h:
84107        (WebCore):
84108        (Internals):
84109        * testing/Internals.idl:
84110
841112012-07-26  Adrienne Walker  <enne@google.com>
84112
84113        [chromium] Remove redundant surface origin transforms
84114        https://bugs.webkit.org/show_bug.cgi?id=91815
84115
84116        Reviewed by Stephen White.
84117
84118        Bug 91417 changed draw transforms to become equivalent to origin
84119        transforms for surfaces. This change removes them as they are no
84120        longer needed for anything.
84121
84122        No new tests. Just a refactoring.
84123
84124        * platform/graphics/chromium/RenderSurfaceChromium.h:
84125        (RenderSurfaceChromium):
84126        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
84127        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
84128        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
84129        (WebCore::computeScrollCompensationMatrixForChildren):
84130        (WebCore::calculateDrawTransformsInternal):
84131        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
84132        (WebCore::::leaveToRenderTarget):
84133        (WebCore::::unoccludedContributingSurfaceContentRect):
84134        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
84135        (WebCore::CCRenderPassDrawQuad::create):
84136        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
84137        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
84138        (CCRenderPassDrawQuad):
84139        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
84140        (WebCore::CCRenderSurface::createSharedQuadState):
84141        (WebCore::CCRenderSurface::createReplicaSharedQuadState):
84142        (WebCore::CCRenderSurface::appendQuads):
84143        * platform/graphics/chromium/cc/CCRenderSurface.h:
84144        (CCRenderSurface):
84145
841462012-07-25  Andrey Kosyakov  <caseq@chromium.org>
84147
84148        Web Inspector: simplify handling of status bar items
84149        https://bugs.webkit.org/show_bug.cgi?id=92143
84150
84151        Reviewed by Pavel Feldman.
84152
84153        - split status bars into "global" (always in the bottom) and "panel"
84154            (on top of the drawer when drawer is shown)
84155        - use "inner" status bar section in global status bar to display either
84156            panel status bar items or drawer view items (depending on drawer visibility)
84157        - let panels/views manage their counters as part of their status bar
84158            items, not through special interface members;
84159        - get rid of absolute positioning in the status bars where possible;
84160
84161        * inspector/front-end/AdvancedSearchController.js:
84162        (WebInspector.SearchView.prototype.get statusBarItems):
84163        * inspector/front-end/Drawer.js:
84164        (WebInspector.Drawer):
84165        (WebInspector.Drawer.prototype.show.animationFinished):
84166        (WebInspector.Drawer.prototype.show):
84167        (WebInspector.Drawer.prototype.hide.animationFinished):
84168        (WebInspector.Drawer.prototype.hide):
84169        (WebInspector.Drawer.prototype._startStatusBarDragging):
84170        * inspector/front-end/Panel.js:
84171        (WebInspector.Panel.prototype.wasShown):
84172        * inspector/front-end/TimelinePanel.js:
84173        (WebInspector.TimelinePanel.prototype.get statusBarItems):
84174        (WebInspector.TimelinePanel.prototype.willHide):
84175        * inspector/front-end/elementsPanel.css:
84176        (.crumbs):
84177        * inspector/front-end/inspector.css:
84178        (#main):
84179        (body.drawer-visible #main-panels):
84180        (.status-bar):
84181        (.status-bar-item):
84182        (#panel-status-bar-placeholder):
84183        (body.drawer-visible #panel-status-bar-placeholder):
84184        (#panel-status-bar-resizer):
84185        (#panel-status-bar):
84186        (#panel-status-bar > div):
84187        (#error-warning-count):
84188        (#drawer):
84189        (#drawer-contents):
84190        (.status-bar-items):
84191        (.drawer-header):
84192        (#inner-status-bar):
84193        (.search-status-bar-item):
84194        (.search-status-bar-message):
84195        (.search-status-bar-progress):
84196        (body:not(.platform-mac) .search-status-bar-progress):
84197        (body.platform-mac .search-status-bar-progress):
84198        (.search-status-bar-stop-button-item):
84199        (.search-status-bar-stop-button .glyph):
84200        (.search-results-status-bar-message):
84201        * inspector/front-end/inspector.html:
84202        * inspector/front-end/inspector.js:
84203        (WebInspector._createGlobalStatusBarItems):
84204        (WebInspector.showViewInDrawer):
84205        (WebInspector._closePreviousDrawerView):
84206        * inspector/front-end/timelinePanel.css:
84207        (.timeline-records-counter):
84208
842092012-07-26  Christophe Dumez  <christophe.dumez@intel.com>
84210
84211        [EFL][WK2] Implement Network Information provider
84212        https://bugs.webkit.org/show_bug.cgi?id=92343
84213
84214        Reviewed by Kenneth Rohde Christiansen.
84215
84216        Moved Network Information provider code from WebKit1
84217        to WebCore so that it can be shared with WebKit2.
84218
84219        No new tests, no behavior change.
84220
84221        * PlatformEfl.cmake:
84222        * platform/efl/NetworkInfoProviderEfl.cpp: Copied from Source/WebKit/efl/WebCoreSupport/NetworkInfoClientEfl.cpp.
84223        (WebCore):
84224        (WebCore::NetworkInfoProviderEfl::NetworkInfoProviderEfl):
84225        (WebCore::NetworkInfoProviderEfl::startUpdating):
84226        (WebCore::NetworkInfoProviderEfl::stopUpdating):
84227        (WebCore::NetworkInfoProviderEfl::bandwidth):
84228        * platform/efl/NetworkInfoProviderEfl.h: Added.
84229        (WebCore):
84230        (NetworkInfoProviderEfl):
84231
842322012-07-25  Pavel Feldman  <pfeldman@chromium.org>
84233
84234        Web Inspector: SASS source mapping straw man (behind experiment)
84235        https://bugs.webkit.org/show_bug.cgi?id=92265
84236
84237        Reviewed by Vsevolod Vlasov.
84238
84239        This change introduces SASS mapping support (behind the experiment).
84240
84241        * WebCore.gypi:
84242        * WebCore.vcproj/WebCore.vcproj:
84243        * inspector/compile-front-end.py:
84244        * inspector/front-end/CSSStyleModel.js:
84245        (WebInspector.CSSStyleModel):
84246        (WebInspector.CSSStyleModel.prototype.resourceBinding):
84247        (WebInspector.CSSStyleModel.prototype.setSourceMapping):
84248        (WebInspector.CSSStyleModel.prototype.resetSourceMappings):
84249        (WebInspector.CSSStyleModel.prototype._rawLocationToUILocation):
84250        (WebInspector.CSSLocation):
84251        (WebInspector.CSSRule):
84252        (WebInspector.CSSRule.prototype.get isRegular):
84253        (WebInspector.CSSRule.prototype.uiLocation):
84254        * inspector/front-end/ContentProviders.js:
84255        (WebInspector.StaticContentProvider.prototype.contentType):
84256        * inspector/front-end/SASSSourceMapping.js: Added.
84257        (WebInspector.SASSSourceMapping):
84258        (WebInspector.SASSSourceMapping.prototype._populate):
84259        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
84260        (WebInspector.SASSSourceMapping.prototype._resourceAdded):
84261        (rawLocationToUILocation):
84262        (uiLocationToRawLocation):
84263        (uiSourceCodes):
84264        (reset):
84265        (WebInspector.SASSSource):
84266        (WebInspector.SASSSource.prototype.isEditable):
84267        * inspector/front-end/ScriptsPanel.js:
84268        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
84269        * inspector/front-end/Settings.js:
84270        (WebInspector.ExperimentsSettings):
84271        * inspector/front-end/StylesPanel.js:
84272        (WebInspector.StylesUISourceCodeProvider):
84273        (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
84274        (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
84275        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
84276        (WebInspector.StylesUISourceCodeProvider.prototype.reset):
84277        * inspector/front-end/StylesSidebarPane.js:
84278        (WebInspector.StylePropertyTreeElement.prototype):
84279        * inspector/front-end/UISourceCode.js:
84280        (WebInspector.UILocation.prototype.uiLocationToRawLocation):
84281        (WebInspector.UILocation.prototype.url):
84282        * inspector/front-end/Workspace.js:
84283        (WebInspector.Workspace):
84284        * inspector/front-end/inspector.html:
84285
842862012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84287
84288        Unreviewed r123761 follow-up, inspector closure compilation fix.
84289
84290        * inspector/front-end/Script.js:
84291        (WebInspector.Script.Location.prototype.uiLocation):
84292        * inspector/front-end/ScriptSnippetModel.js:
84293
842942012-07-26  Patrick Gansterer  <paroga@webkit.org>
84295
84296        Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
84297        https://bugs.webkit.org/show_bug.cgi?id=92113
84298
84299        Reviewed by Simon Hausmann.
84300
84301        Cleanup the definition of the two methods across different ports and
84302        replace the calls to them with LocalWindowsContext where possible.
84303
84304        * platform/graphics/GraphicsContext.h:
84305        (GraphicsContext):
84306        * platform/win/ScrollbarThemeWin.cpp:
84307        (WebCore::ScrollbarThemeWin::paintThumb):
84308
843092012-07-27 Chris Fleizach <cfleizach@apple.com>
84310
84311        WebKit should expose @title as label (AXTitle or AXDescription) sometimes instead of AXHelp, according to the ARIA text alt computation
84312        https://bugs.webkit.org/show_bug.cgi?id=91911
84313
84314        Reviewed by Anders Carlsson.
84315
84316        The ARIA spec states that the title attribute should be used as the last resort for a description of an element. WebKit needs to honor that.
84317
84318        Test: platform/mac/accessibility/title-attribute-used-as-last-resort.html
84319
84320        * accessibility/AccessibilityRenderObject.cpp:
84321        (WebCore::AccessibilityRenderObject::helpText):
84322        (WebCore::AccessibilityRenderObject::accessibilityDescription):
84323
843242012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84325
84326        Unreviewed r123761 follow-up, inspector closure compilation fix.
84327
84328        * inspector/front-end/Script.js:
84329        (WebInspector.Script.Location.prototype.uiLocation):
84330        * inspector/front-end/ScriptSnippetModel.js:
84331
843322012-07-26  Patrick Gansterer  <paroga@webkit.org>
84333
84334        Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
84335        https://bugs.webkit.org/show_bug.cgi?id=92113
84336
84337        Reviewed by Simon Hausmann.
84338
84339        Cleanup the definition of the two methods across different ports and
84340        replace the calls to them with LocalWindowsContext where possible.
84341
84342        * platform/graphics/GraphicsContext.h:
84343        (GraphicsContext):
84344        * platform/win/ScrollbarThemeWin.cpp:
84345        (WebCore::ScrollbarThemeWin::paintThumb):
84346
843472012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84348
84349        Unreviewed r123761 follow-up, inspector closure compilation fix.
84350
84351        * inspector/front-end/Script.js:
84352        (WebInspector.Script.Location.prototype.uiLocation):
84353        * inspector/front-end/ScriptSnippetModel.js:
84354
843552012-07-26  Patrick Gansterer  <paroga@webkit.org>
84356
84357        Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
84358        https://bugs.webkit.org/show_bug.cgi?id=92113
84359
84360        Reviewed by Simon Hausmann.
84361
84362        Cleanup the definition of the two methods across different ports and
84363        replace the calls to them with LocalWindowsContext where possible.
84364
84365        * platform/graphics/GraphicsContext.h:
84366        (GraphicsContext):
84367        * platform/win/ScrollbarThemeWin.cpp:
84368        (WebCore::ScrollbarThemeWin::paintThumb):
84369
843702012-07-26  Olivier Blin  <olivier.blin@softathome.com>
84371
84372        Add FastMalloc statistics in window.internals
84373        https://bugs.webkit.org/show_bug.cgi?id=91274
84374
84375        Reviewed by Ryosuke Niwa.
84376
84377        Test: fast/harness/fastmallocstatistics-object.html
84378
84379        * CMakeLists.txt:
84380        * DerivedSources.make:
84381        * DerivedSources.pri:
84382        * GNUmakefile.list.am:
84383        * Target.pri:
84384        * WebCore.gyp/WebCore.gyp:
84385        * WebCore.gypi:
84386        * WebCore.vcproj/WebCoreTestSupport.vcproj:
84387        * WebCore.xcodeproj/project.pbxproj:
84388        * testing/FastMallocStatistics.h: Added.
84389        (WebCore):
84390        (FastMallocStatistics):
84391        (WebCore::FastMallocStatistics::create):
84392        (WebCore::FastMallocStatistics::reservedVMBytes):
84393        (WebCore::FastMallocStatistics::committedVMBytes):
84394        (WebCore::FastMallocStatistics::freeListBytes):
84395        (WebCore::FastMallocStatistics::FastMallocStatistics):
84396        * testing/FastMallocStatistics.idl: Added.
84397        * testing/Internals.cpp:
84398        (WebCore::Internals::fastMallocStatistics):
84399        (WebCore):
84400        * testing/Internals.h:
84401        (WebCore):
84402        (Internals):
84403        * testing/Internals.idl:
84404
844052012-07-26  Adrienne Walker  <enne@google.com>
84406
84407        [chromium] Remove redundant surface origin transforms
84408        https://bugs.webkit.org/show_bug.cgi?id=91815
84409
84410        Reviewed by Stephen White.
84411
84412        Bug 91417 changed draw transforms to become equivalent to origin
84413        transforms for surfaces. This change removes them as they are no
84414        longer needed for anything.
84415
84416        No new tests. Just a refactoring.
84417
84418        * platform/graphics/chromium/RenderSurfaceChromium.h:
84419        (RenderSurfaceChromium):
84420        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
84421        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
84422        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
84423        (WebCore::computeScrollCompensationMatrixForChildren):
84424        (WebCore::calculateDrawTransformsInternal):
84425        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
84426        (WebCore::::leaveToRenderTarget):
84427        (WebCore::::unoccludedContributingSurfaceContentRect):
84428        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
84429        (WebCore::CCRenderPassDrawQuad::create):
84430        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
84431        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
84432        (CCRenderPassDrawQuad):
84433        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
84434        (WebCore::CCRenderSurface::createSharedQuadState):
84435        (WebCore::CCRenderSurface::createReplicaSharedQuadState):
84436        (WebCore::CCRenderSurface::appendQuads):
84437        * platform/graphics/chromium/cc/CCRenderSurface.h:
84438        (CCRenderSurface):
84439
844402012-07-25  Andrey Kosyakov  <caseq@chromium.org>
84441
84442        Web Inspector: simplify handling of status bar items
84443        https://bugs.webkit.org/show_bug.cgi?id=92143
84444
84445        Reviewed by Pavel Feldman.
84446
84447        - split status bars into "global" (always in the bottom) and "panel"
84448            (on top of the drawer when drawer is shown)
84449        - use "inner" status bar section in global status bar to display either
84450            panel status bar items or drawer view items (depending on drawer visibility)
84451        - let panels/views manage their counters as part of their status bar
84452            items, not through special interface members;
84453        - get rid of absolute positioning in the status bars where possible;
84454
84455        * inspector/front-end/AdvancedSearchController.js:
84456        (WebInspector.SearchView.prototype.get statusBarItems):
84457        * inspector/front-end/Drawer.js:
84458        (WebInspector.Drawer):
84459        (WebInspector.Drawer.prototype.show.animationFinished):
84460        (WebInspector.Drawer.prototype.show):
84461        (WebInspector.Drawer.prototype.hide.animationFinished):
84462        (WebInspector.Drawer.prototype.hide):
84463        (WebInspector.Drawer.prototype._startStatusBarDragging):
84464        * inspector/front-end/Panel.js:
84465        (WebInspector.Panel.prototype.wasShown):
84466        * inspector/front-end/TimelinePanel.js:
84467        (WebInspector.TimelinePanel.prototype.get statusBarItems):
84468        (WebInspector.TimelinePanel.prototype.willHide):
84469        * inspector/front-end/elementsPanel.css:
84470        (.crumbs):
84471        * inspector/front-end/inspector.css:
84472        (#main):
84473        (body.drawer-visible #main-panels):
84474        (.status-bar):
84475        (.status-bar-item):
84476        (#panel-status-bar-placeholder):
84477        (body.drawer-visible #panel-status-bar-placeholder):
84478        (#panel-status-bar-resizer):
84479        (#panel-status-bar):
84480        (#panel-status-bar > div):
84481        (#error-warning-count):
84482        (#drawer):
84483        (#drawer-contents):
84484        (.status-bar-items):
84485        (.drawer-header):
84486        (#inner-status-bar):
84487        (.search-status-bar-item):
84488        (.search-status-bar-message):
84489        (.search-status-bar-progress):
84490        (body:not(.platform-mac) .search-status-bar-progress):
84491        (body.platform-mac .search-status-bar-progress):
84492        (.search-status-bar-stop-button-item):
84493        (.search-status-bar-stop-button .glyph):
84494        (.search-results-status-bar-message):
84495        * inspector/front-end/inspector.html:
84496        * inspector/front-end/inspector.js:
84497        (WebInspector._createGlobalStatusBarItems):
84498        (WebInspector.showViewInDrawer):
84499        (WebInspector._closePreviousDrawerView):
84500        * inspector/front-end/timelinePanel.css:
84501        (.timeline-records-counter):
84502
845032012-07-26  Christophe Dumez  <christophe.dumez@intel.com>
84504
84505        [EFL][WK2] Implement Network Information provider
84506        https://bugs.webkit.org/show_bug.cgi?id=92343
84507
84508        Reviewed by Kenneth Rohde Christiansen.
84509
84510        Moved Network Information provider code from WebKit1
84511        to WebCore so that it can be shared with WebKit2.
84512
84513        No new tests, no behavior change.
84514
84515        * PlatformEfl.cmake:
84516        * platform/efl/NetworkInfoProviderEfl.cpp: Copied from Source/WebKit/efl/WebCoreSupport/NetworkInfoClientEfl.cpp.
84517        (WebCore):
84518        (WebCore::NetworkInfoProviderEfl::NetworkInfoProviderEfl):
84519        (WebCore::NetworkInfoProviderEfl::startUpdating):
84520        (WebCore::NetworkInfoProviderEfl::stopUpdating):
84521        (WebCore::NetworkInfoProviderEfl::bandwidth):
84522        * platform/efl/NetworkInfoProviderEfl.h: Added.
84523        (WebCore):
84524        (NetworkInfoProviderEfl):
84525
845262012-07-25  Pavel Feldman  <pfeldman@chromium.org>
84527
84528        Web Inspector: SASS source mapping straw man (behind experiment)
84529        https://bugs.webkit.org/show_bug.cgi?id=92265
84530
84531        Reviewed by Vsevolod Vlasov.
84532
84533        This change introduces SASS mapping support (behind the experiment).
84534
84535        * WebCore.gypi:
84536        * WebCore.vcproj/WebCore.vcproj:
84537        * inspector/compile-front-end.py:
84538        * inspector/front-end/CSSStyleModel.js:
84539        (WebInspector.CSSStyleModel):
84540        (WebInspector.CSSStyleModel.prototype.resourceBinding):
84541        (WebInspector.CSSStyleModel.prototype.setSourceMapping):
84542        (WebInspector.CSSStyleModel.prototype.resetSourceMappings):
84543        (WebInspector.CSSStyleModel.prototype._rawLocationToUILocation):
84544        (WebInspector.CSSLocation):
84545        (WebInspector.CSSRule):
84546        (WebInspector.CSSRule.prototype.get isRegular):
84547        (WebInspector.CSSRule.prototype.uiLocation):
84548        * inspector/front-end/ContentProviders.js:
84549        (WebInspector.StaticContentProvider.prototype.contentType):
84550        * inspector/front-end/SASSSourceMapping.js: Added.
84551        (WebInspector.SASSSourceMapping):
84552        (WebInspector.SASSSourceMapping.prototype._populate):
84553        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
84554        (WebInspector.SASSSourceMapping.prototype._resourceAdded):
84555        (rawLocationToUILocation):
84556        (uiLocationToRawLocation):
84557        (uiSourceCodes):
84558        (reset):
84559        (WebInspector.SASSSource):
84560        (WebInspector.SASSSource.prototype.isEditable):
84561        * inspector/front-end/ScriptsPanel.js:
84562        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
84563        * inspector/front-end/Settings.js:
84564        (WebInspector.ExperimentsSettings):
84565        * inspector/front-end/StylesPanel.js:
84566        (WebInspector.StylesUISourceCodeProvider):
84567        (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
84568        (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
84569        (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
84570        (WebInspector.StylesUISourceCodeProvider.prototype.reset):
84571        * inspector/front-end/StylesSidebarPane.js:
84572        (WebInspector.StylePropertyTreeElement.prototype):
84573        * inspector/front-end/UISourceCode.js:
84574        (WebInspector.UILocation.prototype.uiLocationToRawLocation):
84575        (WebInspector.UILocation.prototype.url):
84576        * inspector/front-end/Workspace.js:
84577        (WebInspector.Workspace):
84578        * inspector/front-end/inspector.html:
84579
845802012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84581
84582        Unreviewed r123761 follow-up, inspector closure compilation fix.
84583
84584        * inspector/front-end/Script.js:
84585        (WebInspector.Script.Location.prototype.uiLocation):
84586        * inspector/front-end/ScriptSnippetModel.js:
84587
845882012-07-26  Patrick Gansterer  <paroga@webkit.org>
84589
84590        Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
84591        https://bugs.webkit.org/show_bug.cgi?id=92113
84592
84593        Reviewed by Simon Hausmann.
84594
84595        Cleanup the definition of the two methods across different ports and
84596        replace the calls to them with LocalWindowsContext where possible.
84597
84598        * platform/graphics/GraphicsContext.h:
84599        (GraphicsContext):
84600        * platform/win/ScrollbarThemeWin.cpp:
84601        (WebCore::ScrollbarThemeWin::paintThumb):
84602
846032012-07-27 Chris Fleizach <cfleizach@apple.com>
84604
84605        WebKit should expose @title as label (AXTitle or AXDescription) sometimes instead of AXHelp, according to the ARIA text alt computation
84606        https://bugs.webkit.org/show_bug.cgi?id=91911
84607
84608        Reviewed by Anders Carlsson.
84609
84610        The ARIA spec states that the title attribute should be used as the last resort for a description of an element. WebKit needs to honor that.
84611
84612        Test: platform/mac/accessibility/title-attribute-used-as-last-resort.html
84613
84614        * accessibility/AccessibilityRenderObject.cpp:
84615        (WebCore::AccessibilityRenderObject::helpText):
84616        (WebCore::AccessibilityRenderObject::accessibilityDescription):
84617
846182012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84619
84620        Unreviewed r123761 follow-up, inspector closure compilation fix.
84621
84622        * inspector/front-end/Script.js:
84623        (WebInspector.Script.Location.prototype.uiLocation):
84624        * inspector/front-end/ScriptSnippetModel.js:
84625
846262012-07-26  Patrick Gansterer  <paroga@webkit.org>
84627
84628        Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
84629        https://bugs.webkit.org/show_bug.cgi?id=92113
84630
84631        Reviewed by Simon Hausmann.
84632
84633        Cleanup the definition of the two methods across different ports and
84634        replace the calls to them with LocalWindowsContext where possible.
84635
84636        * platform/graphics/GraphicsContext.h:
84637        (GraphicsContext):
84638        * platform/win/ScrollbarThemeWin.cpp:
84639        (WebCore::ScrollbarThemeWin::paintThumb):
84640
846412012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84642
84643        Unreviewed r123761 follow-up, inspector closure compilation fix.
84644
84645        * inspector/front-end/Script.js:
84646        (WebInspector.Script.Location.prototype.uiLocation):
84647        * inspector/front-end/ScriptSnippetModel.js:
84648
846492012-07-26  Patrick Gansterer  <paroga@webkit.org>
84650
84651        Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
84652        https://bugs.webkit.org/show_bug.cgi?id=92113
84653
84654        Reviewed by Simon Hausmann.
84655
84656        Cleanup the definition of the two methods across different ports and
84657        replace the calls to them with LocalWindowsContext where possible.
84658
84659        * platform/graphics/GraphicsContext.h:
84660        (GraphicsContext):
84661        * platform/win/ScrollbarThemeWin.cpp:
84662        (WebCore::ScrollbarThemeWin::paintThumb):
84663
846642012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
84665
84666        Web Inspector: Introduce generic LiveLocation, make Script.Location inherit it.
84667        https://bugs.webkit.org/show_bug.cgi?id=92388
84668
84669        Reviewed by Pavel Feldman.
84670
84671        Introduced abstract LiveLocation implemented by Script.Location.
84672
84673        * inspector/front-end/Script.js:
84674        (WebInspector.Script.Location):
84675        (WebInspector.Script.Location.prototype.uiLocation):
84676        (WebInspector.Script.Location.prototype.dispose):
84677        * inspector/front-end/UISourceCode.js:
84678        (WebInspector.UISourceCode):
84679        (WebInspector.LiveLocation):
84680        (WebInspector.LiveLocation.prototype.update):
84681        (WebInspector.LiveLocation.prototype.rawLocation):
84682        (WebInspector.LiveLocation.prototype.uiLocation):
84683        (WebInspector.LiveLocation.prototype.dispose):
84684        * inspector/front-end/inspector.html:
84685
846862012-07-26  Joshua Netterfield  <jnetterfield@rim.com>
84687
84688        [BlackBerry] readPixels on FBOs are limited to canvas size on SGX platforms
84689        https://bugs.webkit.org/show_bug.cgi?id=92301
84690
84691        Reviewed by Rob Buis.
84692
84693        This fixes fast/canvas/webgl/uninitialized-test.html on BlackBerry, no new tests.
84694
84695        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
84696        (WebCore::GraphicsContext3D::readPixels):
84697        (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
84698
846992012-07-26  Alexei Filippov  <alexeif@chromium.org>
84700
84701        Web Inspector: reduce auto refresh rate of the live native memory diagram
84702        https://bugs.webkit.org/show_bug.cgi?id=92372
84703
84704        Reviewed by Pavel Feldman.
84705
84706        * inspector/front-end/NativeMemorySnapshotView.js:
84707        (WebInspector.NativeMemoryBarChart.prototype.wasShown):
84708
847092012-07-26  Alexei Filippov  <alexeif@chromium.org>
84710
84711        Web Inspector: add GC button to the profiles panel toolbar.
84712        https://bugs.webkit.org/show_bug.cgi?id=92369
84713
84714        Reviewed by Pavel Feldman.
84715
84716        * inspector/front-end/ProfilesPanel.js:
84717        (WebInspector.ProfilesPanel.prototype.get statusBarItems):
84718        (WebInspector.ProfilesPanel.prototype._garbageCollectButtonClicked):
84719        * inspector/front-end/profilesPanel.css:
84720        (.garbage-collect-status-bar-item .glyph):
84721
847222012-07-26  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
84723
84724        Move region from HitTestResult to HitTestPoint.
84725        https://bugs.webkit.org/show_bug.cgi?id=92367
84726
84727        Reviewed by Antonio Gomes.
84728
84729        Moves the region to HitTestPoint where it makes more sense, and use this
84730        change to simplify hit-testing a new region in RenderFlowThread.
84731
84732        No new functionality. No new tests.
84733
84734        * rendering/HitTestResult.cpp:
84735        (WebCore::HitTestPoint::HitTestPoint):
84736        (WebCore::HitTestPoint::operator=):
84737        (WebCore::HitTestResult::HitTestResult):
84738        (WebCore::HitTestResult::operator=):
84739        * rendering/HitTestResult.h:
84740        (HitTestPoint):
84741        (WebCore::HitTestPoint::region):
84742        (HitTestResult):
84743        * rendering/RenderBlock.cpp:
84744        (WebCore::RenderBlock::nodeAtPoint):
84745        * rendering/RenderBox.cpp:
84746        (WebCore::RenderBox::nodeAtPoint):
84747        * rendering/RenderFlowThread.cpp:
84748        (WebCore::RenderFlowThread::hitTestRegion):
84749        * rendering/RenderLayer.cpp:
84750        (WebCore::RenderLayer::hitTestLayer):
84751        * rendering/RenderRegion.cpp:
84752        (WebCore::RenderRegion::nodeAtPoint):
84753        * rendering/RenderTable.cpp:
84754        (WebCore::RenderTable::nodeAtPoint):
84755        * rendering/RenderTableSection.cpp:
84756        (WebCore::RenderTableSection::nodeAtPoint):
84757
847582012-07-26  Jan Keromnes  <janx@linux.com>
84759
84760        Web Inspector: ExtensionView constructor shouldn't take parent argument
84761        https://bugs.webkit.org/show_bug.cgi?id=92326
84762
84763        Reviewed by Pavel Feldman.
84764
84765        ExtensionView's constructor took a parent element parameter and auto-
84766        showed itself in the constructor. This didn't allow lazy showing and
84767        was confusing because it didn't work like a classic View object. Fixed.
84768
84769        No new tests needed: Refactoring with no behavior changes.
84770
84771        * inspector/front-end/ExtensionPanel.js:
84772        (WebInspector.ExtensionPanel):
84773        (WebInspector.ExtensionSidebarPane.prototype.setPage):
84774        * inspector/front-end/ExtensionView.js:
84775        (WebInspector.ExtensionView):
84776
847772012-07-26  Joshua Netterfield  <jnetterfield@rim.com>
84778
84779        [WebGL] ANGLEWebKitBridge should support ESSL platforms
84780        https://bugs.webkit.org/show_bug.cgi?id=92295
84781
84782        Reviewed by Rob Buis.
84783
84784        This tells ANGLEWebKitBridge to output ESSL code for the BlackBerry
84785        platform. This eliminates the need for a previous hack. In addition,
84786        some (GLSL) ANGLE output that could not be compiled (for example,
84787        glsl-mat4-to-mat3.html) now compiles.
84788
84789        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
84790        (WebCore::GraphicsContext3D::GraphicsContext3D):
84791        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
84792        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
84793
847942012-07-26  Pavel Feldman  <pfeldman@chromium.org>
84795
84796        Web Inspector: replace "textInput" keyboard event listener breakpoint with "input"
84797        https://bugs.webkit.org/show_bug.cgi?id=92384
84798
84799        Reviewed by Vsevolod Vlasov.
84800
84801        * inspector/front-end/BreakpointsSidebarPane.js:
84802        (WebInspector.EventListenerBreakpointsSidebarPane):
84803
848042012-07-26  Jer Noble  <jer.noble@apple.com>
84805
84806        Add a MediaPlayer API to retrieve the description of the current media engine.
84807        https://bugs.webkit.org/show_bug.cgi?id=92336
84808
84809        Reviewed by Eric Carlson.
84810
84811        Add a utility function which retrieves, for diagnostic purposes, a brief description
84812        of the current media engine. Stubs have been added for each of the MediaPlayerPrivate
84813        subclasses which return the name of the class.
84814
84815        * platform/graphics/MediaPlayer.cpp:
84816        (WebCore::MediaPlayer::engineDescription):
84817        * platform/graphics/MediaPlayer.h:
84818        * platform/graphics/MediaPlayerPrivate.h:
84819        (WebCore::MediaPlayerPrivateInterface::engineDescription):
84820        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
84821        (WebCore::MediaPlayerPrivateAVFoundation::engineDescription):
84822        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
84823        (WebCore::MediaPlayerPrivate::engineDescription):
84824        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
84825        (WebCore::MediaPlayerPrivateGStreamer::engineDescription):
84826        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
84827        (WebCore::MediaPlayerPrivateQTKit::engineDescription):
84828        * platform/graphics/qt/MediaPlayerPrivateQt.h:
84829        (WebCore::MediaPlayerPrivateQt::engineDescription):
84830        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
84831        (WebCore::MediaPlayerPrivate::engineDescription):
84832        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
84833        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::engineDescription):
84834
848352012-07-26  Pavel Feldman  <pfeldman@chromium.org>
84836
84837        Web Inspector: Edits of styles declared after invalid selector are not applied
84838        https://bugs.webkit.org/show_bug.cgi?id=92382
84839
84840        Reviewed by Vsevolod Vlasov.
84841
84842        Now popping selectorless rules as well.
84843
84844        Test: inspector/styles/styles-edit-property-after-invalid-rule.html
84845
84846        * css/CSSParser.cpp:
84847        (WebCore::CSSParser::createStyleRule):
84848
848492012-07-26  Joshua Netterfield  <jnetterfield@rim.com>
84850
84851        [WebGL] GraphicsContext3D::readPixels has extraneous code from GraphicsContext3D::readPixelsIMG
84852        https://bugs.webkit.org/show_bug.cgi?id=92302
84853
84854        Reviewed by Noam Rosenthal.
84855
84856        This undoes a mistake from https://bugs.webkit.org/show_bug.cgi?id=90567.
84857
84858        No new tests, because it introduces no new functionality, but it makes the WebGL aquarium demo
84859        run quite a bit smoother on SGX :)
84860
84861        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
84862        (WebCore::GraphicsContext3D::readPixels):
84863
848642012-07-26  Yury Semikhatsky  <yurys@chromium.org>
84865
84866        Unreviewed. Revert r123740 as it breaks AppleMac compilation.
84867
84868        * WebCore.exp.in:
84869        * inspector/InspectorMemoryAgent.cpp:
84870        (WebCore):
84871
848722012-07-26  Yury Semikhatsky  <yurys@chromium.org>
84873
84874        Unreviewed. Fix AppleMac compilation after r123740.
84875
84876        * WebCore.exp.in: Added missing symbol.
84877
848782012-07-26  Yury Semikhatsky  <yurys@chromium.org>
84879
84880        Web Inspector: move StringImpl size calculation to StringImpl
84881        https://bugs.webkit.org/show_bug.cgi?id=92359
84882
84883        Reviewed by Pavel Feldman.
84884
84885        Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
84886        StringImpl::sizeInBytes();
84887
84888        * inspector/InspectorMemoryAgent.cpp:
84889        (WebCore):
84890
848912012-07-26  Charles Wei  <charles.wei@torchmobile.com.cn>
84892
84893        Remove redundant include of PageGroup.h in FrameLoader.cpp
84894        https://bugs.webkit.org/show_bug.cgi?id=92357
84895
84896        Reviewed by Kentaro Hara.
84897
84898
84899        No new tests, just remove redundant include file.
84900
84901        * loader/FrameLoader.cpp:
84902
849032012-07-26  Eric Seidel  <eric@webkit.org>
84904
84905        2% of all samples running grid demo show up in StyleResolver::canShareStyleWithElement, 20% of those due to getAttribute instead of fastGetAttribute
84906        https://bugs.webkit.org/show_bug.cgi?id=92257
84907
84908        Reviewed by Andreas Kling.
84909
84910        This check was added 7 years ago by hyatt in:
84911        http://trac.webkit.org/changeset/10984
84912        And then later made slow after triggering an ASSERT added:
84913        http://trac.webkit.org/changeset/97670
84914
84915        SVG uses a "type" attribute (and it is animatable), but only when
84916        used on filter elements:
84917        http://www.w3.org/TR/SVG/attindex.html
84918        In any case, this does not apply here, and is certainly not what
84919        this check was originally intended for.
84920
84921        I've moved the check to canShareStyleWithControl
84922        as it is only needed when the elements in question are both input elements.
84923
84924        * css/StyleResolver.cpp:
84925        (WebCore::StyleResolver::collectMatchingRulesForList):
84926
849272012-07-26  Yury Semikhatsky  <yurys@chromium.org>
84928
84929        Web Inspector: add memory reporting routine to StyleResolver
84930        https://bugs.webkit.org/show_bug.cgi?id=92259
84931
84932        Reviewed by Vsevolod Vlasov.
84933
84934        SyleResolver::reportMemoryUsage is added for estimating StyleResolver
84935        memory footprint.
84936
84937        * css/StyleResolver.cpp:
84938        (RuleData):
84939        (RuleSet):
84940        (RuleSetSelectorPair):
84941        (WebCore::StyleResolver::Features::reportMemoryUsage):
84942        (WebCore):
84943        (WebCore::StyleResolver::collectMatchingRulesForList):
84944        * css/StyleResolver.h:
84945        (Features):
84946        (StyleResolver):
84947        * dom/Document.cpp:
84948        (WebCore::Document::reportMemoryUsage):
84949        * dom/MemoryInstrumentation.h:
84950        (MemoryInstrumentation):
84951        (WebCore::MemoryClassInfo::addInstrumentedHashSet):
84952        (WebCore::MemoryClassInfo::addInstrumentedVector):
84953        (WebCore::MemoryInstrumentation::addHashMap):
84954        (WebCore):
84955        (WebCore::MemoryInstrumentation::addInstrumentedCollection):
84956
849572012-07-26  Tommy Widenflycht  <tommyw@google.com>
84958
84959        MediaStream API: Remove DeprecatedPeerConnection
84960        https://bugs.webkit.org/show_bug.cgi?id=92106
84961
84962        Reviewed by Adam Barth.
84963
84964        Since we are getting ready to add an updated PeerConnection
84965        the old DeprecatedPeerConnection will have to go.
84966
84967        No new tests, and old tests converted to use PeerConnection00.
84968
84969        * CMakeLists.txt:
84970        * GNUmakefile.list.am:
84971        * Modules/mediastream/DOMWindowMediaStream.idl:
84972        * Modules/mediastream/DeprecatedPeerConnection.cpp: Removed.
84973        * Modules/mediastream/DeprecatedPeerConnection.h: Removed.
84974        * Modules/mediastream/DeprecatedPeerConnection.idl: Removed.
84975        * Modules/mediastream/SignalingCallback.h: Removed.
84976        * Modules/mediastream/SignalingCallback.idl: Removed.
84977        * PlatformBlackBerry.cmake:
84978        * PlatformEfl.cmake:
84979        * UseJSC.cmake:
84980        * WebCore.gypi:
84981        * bindings/generic/RuntimeEnabledFeatures.h:
84982        * bindings/js/JSDeprecatedPeerConnectionCustom.cpp: Removed.
84983        * dom/EventTargetFactory.in:
84984        * platform/mediastream/DeprecatedPeerConnectionHandler.h: Removed.
84985        * platform/mediastream/DeprecatedPeerConnectionHandlerClient.h: Removed.
84986        * platform/mediastream/blackberry/DeprecatedPeerConnectionHandler.cpp: Removed.
84987        * platform/mediastream/chromium/DeprecatedPeerConnectionHandler.cpp: Removed.
84988        * platform/mediastream/chromium/DeprecatedPeerConnectionHandlerInternal.cpp: Removed.
84989        * platform/mediastream/chromium/DeprecatedPeerConnectionHandlerInternal.h: Removed.
84990        * platform/mediastream/gstreamer/DeprecatedPeerConnectionHandler.cpp: Removed.
84991
849922012-07-26  Mike West  <mkwst@chromium.org>
84993
84994        CSP 1.1: Implement the Content Security Policy script interface.
84995        https://bugs.webkit.org/show_bug.cgi?id=91707
84996
84997        Reviewed by Adam Barth.
84998
84999        The CSP 1.1 editor's draft defines a script interface that gives
85000        developers the ability to query a document regarding the restrictions
85001        set by it's currently active content security policy[1]. This patch
85002        exposes that API in terms of a new DOMSecurityPolicy object.
85003
85004        Data for the API is gathered from the existing ContentSecurityPolicy
85005        object on the containing document. CSP's various methods have been
85006        extended with a `reportingStatus` parameter which, unsurprisingly,
85007        determines whether a violation report should be sent for blocked
85008        resources. This allows us to reuse the same codepaths by simply using
85009        ContentSecurityPolicy::SuppressReport when querying on behalf of the
85010        API, and ContentSecurityPolicy::SendReport when checking resources a
85011        page wants to load.
85012
85013        This feature is gated on the CSP_NEXT flag, which is currently disabled
85014        for all ports other than Chromium.
85015
85016        [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces--experimental
85017
85018        Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowconnectionto.html
85019               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-alloweval.html
85020               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowfontfrom.html
85021               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowframefrom.html
85022               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowimagefrom.html
85023               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowmediafrom.html
85024               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowobjectfrom.html
85025               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowscriptfrom.html
85026               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowstylefrom.html
85027               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-isactive.html
85028               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-reporturi.html
85029
85030        * CMakeLists.txt:
85031        * DerivedSources.cpp:
85032        * DerivedSources.make:
85033        * DerivedSources.pri:
85034        * GNUmakefile.list.am:
85035        * WebCore.gypi:
85036        * bindings/gobject/GNUmakefile.am:
85037        * WebCore.xcodeproj/project.pbxproj:
85038            We added a new object, so let's tell _everyone!_
85039        * dom/Document.cpp:
85040        (WebCore::Document::securityPolicy):
85041            Expose the SecurityPolicy object via Document, gated on CSP_NEXT.
85042        (WebCore):
85043        * dom/Document.h:
85044        (WebCore):
85045        (Document):
85046        * dom/Document.idl:
85047            Adding the SecurityPolicy object to the document, gated on CSP_NEXT.
85048        * page/ContentSecurityPolicy.cpp:
85049        (CSPDirectiveList):
85050        (WebCore::CSPDirectiveList::checkInline):
85051        (WebCore::CSPDirectiveList::checkNonce):
85052        (WebCore::CSPDirectiveList::checkSource):
85053            Extracting the core checks out into separate methods.
85054        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
85055            Use checkEval.
85056        (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
85057            Use checkNonce.
85058        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
85059            Use checkInline.
85060        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
85061            Use checkSource.
85062        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
85063        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
85064        (WebCore::CSPDirectiveList::allowInlineScript):
85065        (WebCore::CSPDirectiveList::allowInlineStyle):
85066        (WebCore::CSPDirectiveList::allowEval):
85067        (WebCore::CSPDirectiveList::allowScriptFromSource):
85068        (WebCore::CSPDirectiveList::allowObjectFromSource):
85069        (WebCore::CSPDirectiveList::allowChildFrameFromSource):
85070        (WebCore::CSPDirectiveList::allowImageFromSource):
85071        (WebCore::CSPDirectiveList::allowStyleFromSource):
85072        (WebCore::CSPDirectiveList::allowFontFromSource):
85073        (WebCore::CSPDirectiveList::allowMediaFromSource):
85074        (WebCore::CSPDirectiveList::allowConnectToSource):
85075            These methods now branch on `reportingStatus`: if `SendReoport`,
85076            they call `checkXAndReportViolation`, otherwise, they call `checkX`.
85077        (WebCore::CSPDirectiveList::gatherReportURIs):
85078            New method that gathers the violation report URIs into a DOMStringList.
85079        (WebCore::isAllowedByAllWithCallStack):
85080        (WebCore::isAllowedByAllWithContext):
85081        (WebCore::isAllowedByAllWithURL):
85082            These now pass reportingStatus through to the various `allowX` methods.
85083        (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
85084        (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
85085        (WebCore::ContentSecurityPolicy::allowInlineScript):
85086        (WebCore::ContentSecurityPolicy::allowInlineStyle):
85087        (WebCore::ContentSecurityPolicy::allowEval):
85088        (WebCore::ContentSecurityPolicy::allowScriptFromSource):
85089        (WebCore::ContentSecurityPolicy::allowObjectFromSource):
85090        (WebCore::ContentSecurityPolicy::allowChildFrameFromSource):
85091        (WebCore::ContentSecurityPolicy::allowImageFromSource):
85092        (WebCore::ContentSecurityPolicy::allowStyleFromSource):
85093        (WebCore::ContentSecurityPolicy::allowFontFromSource):
85094        (WebCore::ContentSecurityPolicy::allowMediaFromSource):
85095        (WebCore::ContentSecurityPolicy::allowConnectToSource):
85096            These accept a new `reportingStatus` parameter, which is passed through
85097            to the CSPDirectiveList methods.
85098        (WebCore::ContentSecurityPolicy::isActive):
85099            New method that returns `true` if policy is active.
85100        (WebCore::ContentSecurityPolicy::gatherReportURIs):
85101            New method that returns a DOMStringList of violation report URIs.
85102        * page/ContentSecurityPolicy.h:
85103        (WebCore):
85104        * page/DOMSecurityPolicy.cpp: Added.
85105        (WebCore::DOMSecurityPolicy::DOMSecurityPolicy):
85106        (WebCore):
85107        (WebCore::DOMSecurityPolicy::~DOMSecurityPolicy):
85108        (WebCore::DOMSecurityPolicy::isActive):
85109        (WebCore::DOMSecurityPolicy::reportURIs):
85110        (WebCore::DOMSecurityPolicy::allowsInlineScript):
85111        (WebCore::DOMSecurityPolicy::allowsInlineStyle):
85112        (WebCore::DOMSecurityPolicy::allowsEval):
85113        (WebCore::DOMSecurityPolicy::allowsConnectionTo):
85114        (WebCore::DOMSecurityPolicy::allowsFontFrom):
85115        (WebCore::DOMSecurityPolicy::allowsFrameFrom):
85116        (WebCore::DOMSecurityPolicy::allowsImageFrom):
85117        (WebCore::DOMSecurityPolicy::allowsMediaFrom):
85118        (WebCore::DOMSecurityPolicy::allowsObjectFrom):
85119        (WebCore::DOMSecurityPolicy::allowsScriptFrom):
85120        (WebCore::DOMSecurityPolicy::allowsStyleFrom):
85121        * page/DOMSecurityPolicy.h: Added.
85122        (WebCore):
85123        (DOMSecurityPolicy):
85124        (WebCore::DOMSecurityPolicy::create):
85125        * page/DOMSecurityPolicy.idl: Added.
85126
851272012-07-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
85128
85129        Unreviewed. Fix build break on mac win port by r123716.
85130
85131        * platform/KURL.h:
85132        (KURL):
85133
851342012-07-26  Sheriff Bot  <webkit.review.bot@gmail.com>
85135
85136        Unreviewed, rolling out r123715.
85137        http://trac.webkit.org/changeset/123715
85138        https://bugs.webkit.org/show_bug.cgi?id=92356
85139
85140        Breaks compilation on multiple platforms (Requested by vsevik
85141        on #webkit).
85142
85143        * inspector/InspectorController.cpp:
85144        (WebCore::InspectorController::InspectorController):
85145        (WebCore::InspectorController::inspectedPageDestroyed):
85146        * inspector/InspectorInstrumentation.cpp:
85147        (WebCore):
85148        * inspector/InspectorInstrumentation.h:
85149        (InspectorInstrumentation):
85150        * inspector/InspectorResourceAgent.cpp:
85151        (WebCore::InspectorResourceAgent::didReceiveData):
85152        (WebCore::InspectorResourceAgent::getResponseBody):
85153        * inspector/InspectorResourceAgent.h:
85154        (InspectorResourceAgent):
85155        * inspector/NetworkResourcesData.cpp:
85156        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
85157        (WebCore::NetworkResourcesData::ResourceData::setContent):
85158        (WebCore::NetworkResourcesData::ResourceData::dataLength):
85159        (WebCore::NetworkResourcesData::ResourceData::appendData):
85160        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
85161        (WebCore::NetworkResourcesData::setResourceContent):
85162        (WebCore::NetworkResourcesData::maybeAddResourceData):
85163        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
85164        (WebCore::NetworkResourcesData::setResourcesDataSizeLimits):
85165        (WebCore::NetworkResourcesData::ensureFreeSpace):
85166        * inspector/NetworkResourcesData.h:
85167        (ResourceData):
85168        (WebCore::NetworkResourcesData::ResourceData::cachedResource):
85169        (NetworkResourcesData):
85170        * loader/cache/CachedResource.cpp:
85171        (WebCore::CachedResource::~CachedResource):
85172        (WebCore::CachedResource::removeClient):
85173        (WebCore::CachedResource::deleteIfPossible):
85174        * loader/cache/CachedResource.h:
85175        (CachedResource):
85176        * loader/cache/CachedResourceLoader.cpp:
85177        (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
85178        (WebCore::CachedResourceLoader::clearPreloads):
85179        * loader/cache/CachedResourceLoader.h:
85180        (CachedResourceLoader):
85181        * loader/cache/MemoryCache.cpp:
85182        (WebCore::MemoryCache::evict):
85183        * testing/InternalSettings.cpp:
85184        * testing/Internals.cpp:
85185        * testing/Internals.h:
85186        (Internals):
85187
851882012-07-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
85189
85190        Add *explicit* keyword to constructors in WebCore/platform
85191        https://bugs.webkit.org/show_bug.cgi?id=92238
85192
85193        Reviewed by Kentaro Hara.
85194
85195        As a step to let *explicit* keyword add to constructors which have a parameter,
85196        *explicit* keyword is added to Source/WebCore/platform in order to avoid implicit
85197        type conversion.
85198
85199        Some files in platform directory can't use explicit keyword because of build breaks.
85200
85201        No new tests. Covered by existing tests.
85202
85203        * platform/AutodrainedPool.h:
85204        (AutodrainedPool):
85205        * platform/ContentType.h:
85206        (ContentType):
85207        * platform/ContextMenu.h:
85208        (ContextMenu):
85209        * platform/ContextMenuItem.h:
85210        (ContextMenuItem):
85211        * platform/Cursor.h:
85212        (WebCore::SharedCursor::SharedCursor):
85213        (Cursor):
85214        * platform/KURL.h:
85215        (WebCore::KURL::KURL):
85216        (KURL):
85217        * platform/KURLGooglePrivate.h:
85218        (KURLGooglePrivate):
85219        * platform/PODRedBlackTree.h:
85220        (WebCore::PODRedBlackTree::PODRedBlackTree):
85221        * platform/Pasteboard.h:
85222        (Pasteboard):
85223        * platform/PlatformEvent.h:
85224        (WebCore::PlatformEvent::PlatformEvent):
85225        * platform/PlatformKeyboardEvent.h:
85226        (PlatformKeyboardEvent):
85227        * platform/PlatformMouseEvent.h:
85228        (PlatformMouseEvent):
85229        * platform/PlatformPasteboard.h:
85230        (PlatformPasteboard):
85231        * platform/PlatformTouchEvent.h:
85232        (PlatformTouchEvent):
85233        * platform/PlatformWheelEvent.h:
85234        (PlatformWheelEvent):
85235        * platform/RunLoop.h:
85236        (TimerBase):
85237        * platform/ScrollAnimator.h:
85238        (ScrollAnimator):
85239        * platform/ScrollAnimatorNone.h:
85240        (ScrollAnimatorNone):
85241        * platform/SharedBuffer.h:
85242        (SharedBuffer):
85243        * platform/WheelFlingPlatformGestureCurve.h:
85244        (WheelFlingPlatformGestureCurve):
85245        * platform/Widget.h:
85246        (Widget):
85247
852482012-07-26  Vsevolod Vlasov  <vsevik@chromium.org>
85249
85250        Web Inspector: Resource agent's reference to cached resources should be weak.
85251        https://bugs.webkit.org/show_bug.cgi?id=92108
85252
85253        Reviewed by Pavel Feldman.
85254
85255        NetworkResourcesData now stores a raw pointer to CachedResource.
85256        CachedResource now notifies InspectorInstrumentation that it will be destroyed.
85257        InspectorInstrumentation stores a set of InstrumentingAgents and broadcasts willDestroyCachedResource event to all available resourceAgents.
85258        Destroyed resources content is saved to NetworkResourcesData.
85259        Changed content size variables type in NetworkResourcesData from int to size_t.
85260
85261        Tests: http/tests/inspector/network/cached-resource-destroyed-moved-to-storage.html
85262               http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html
85263
85264        * inspector/InspectorController.cpp:
85265        (WebCore::InspectorController::InspectorController):
85266        (WebCore::InspectorController::inspectedPageDestroyed):
85267        * inspector/InspectorInstrumentation.cpp:
85268        (WebCore):
85269        (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
85270        (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
85271        (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
85272        * inspector/InspectorInstrumentation.h:
85273        (InspectorInstrumentation):
85274        (WebCore::InspectorInstrumentation::willDestroyCachedResource):
85275        (WebCore):
85276        * inspector/InspectorResourceAgent.cpp:
85277        (WebCore::InspectorResourceAgent::didReceiveData):
85278        (WebCore::InspectorResourceAgent::willDestroyCachedResource):
85279        (WebCore):
85280        (WebCore::InspectorResourceAgent::getResponseBody):
85281        * inspector/InspectorResourceAgent.h:
85282        (InspectorResourceAgent):
85283        * inspector/NetworkResourcesData.cpp:
85284        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
85285        (WebCore::NetworkResourcesData::ResourceData::setContent):
85286        (WebCore::NetworkResourcesData::ResourceData::dataLength):
85287        (WebCore::NetworkResourcesData::ResourceData::appendData):
85288        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
85289        (WebCore::NetworkResourcesData::setResourceContent):
85290        (WebCore::NetworkResourcesData::maybeAddResourceData):
85291        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
85292        (WebCore::NetworkResourcesData::removeCachedResource):
85293        (WebCore):
85294        (WebCore::NetworkResourcesData::setResourcesDataSizeLimits):
85295        (WebCore::NetworkResourcesData::ensureFreeSpace):
85296        * inspector/NetworkResourcesData.h:
85297        (ResourceData):
85298        (WebCore::NetworkResourcesData::ResourceData::base64Encoded):
85299        (WebCore::NetworkResourcesData::ResourceData::cachedResource):
85300        (NetworkResourcesData):
85301        * loader/cache/CachedResource.cpp:
85302        (WebCore::CachedResource::~CachedResource):
85303        (WebCore::CachedResource::removeClient):
85304        (WebCore::CachedResource::deleteIfPossible):
85305        * loader/cache/CachedResource.h:
85306        (CachedResource):
85307        * loader/cache/CachedResourceLoader.cpp:
85308        (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
85309        (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
85310        (WebCore::CachedResourceLoader::clearPreloads):
85311        * loader/cache/CachedResourceLoader.h:
85312        (CachedResourceLoader):
85313        * loader/cache/MemoryCache.cpp:
85314        (WebCore::MemoryCache::evict):
85315        * testing/InternalSettings.cpp:
85316        * testing/Internals.cpp:
85317        (WebCore::Internals::garbageCollectDocumentResources):
85318        (WebCore):
85319        * testing/Internals.h:
85320        (Internals):
85321
853222012-07-26  Luke Macpherson   <macpherson@chromium.org>
85323
85324        Fix null ptr deref in CSSParser::storeVariableDeclaration().
85325        https://bugs.webkit.org/show_bug.cgi?id=92333
85326
85327        Reviewed by Andreas Kling.
85328
85329        Fix null pointer deref that occurs if the CSSParserValue couldn't be converted to a CSSValue.
85330
85331        Test fast/css/variables/variable-unparseable-value-crash.html added.
85332
85333        * css/CSSParser.cpp:
85334        (WebCore::CSSParser::storeVariableDeclaration):
85335
853362012-07-26  Shinya Kawanaka  <shinyak@chromium.org>
85337
85338        Add UserAgentShadowDOM to FormControlElement just before adding AuthorShadowDOM
85339        https://bugs.webkit.org/show_bug.cgi?id=90866
85340
85341        Reviewed by Hajime Morita.
85342
85343        It ensures that UserAgentShadowDOM is the oldest ShadowDOM.
85344
85345        To show ValidationMessage, WebKit adds a Shadow DOM to some of FormControlElements.
85346        ValidationMessage assumes that the added Shadow DOM is the oldest, however, there was a case
85347        that a page author might add a Shadow DOM before ValidationMessage adds a Shadow DOM.
85348        It will break the assumption that the Shadow DOM added by ValidationMessage is the oldest.
85349        So we have prohibited a page author adding a Shadow DOM to FormControlElement.
85350
85351        To add UserAgentShadowDOM, we use a callback which is called before a page author adding a Shadow DOM.
85352        It adds a UserAgentShadowDOM if it does not exist, so we can ensure that UserAgentShadowDOM is the oldest.
85353
85354        Tests: fast/dom/shadow/input-with-validation-without-shadow.html
85355               fast/dom/shadow/input-with-validation.html
85356               fast/dom/shadow/shadowdom-for-button-complex-shadow.html
85357               fast/dom/shadow/shadowdom-for-button-only-shadow.html
85358               fast/dom/shadow/shadowdom-for-button-without-shadow.html
85359               fast/dom/shadow/shadowdom-for-fieldset-complex-shadow.html
85360               fast/dom/shadow/shadowdom-for-fieldset-only-shadow.html
85361               fast/dom/shadow/shadowdom-for-fieldset-without-shadow.html
85362               fast/dom/shadow/shadowdom-for-form-associated-element-useragent.html
85363               fast/dom/shadow/shadowdom-for-keygen-complex-shadow.html
85364               fast/dom/shadow/shadowdom-for-keygen-only-shadow.html
85365               fast/dom/shadow/shadowdom-for-keygen-without-shadow.html
85366               fast/dom/shadow/shadowdom-for-object-complex-shadow.html
85367               fast/dom/shadow/shadowdom-for-object-only-shadow.html
85368               fast/dom/shadow/shadowdom-for-object-without-shadow.html
85369               fast/dom/shadow/shadowdom-for-output-complex-shadow.html
85370               fast/dom/shadow/shadowdom-for-output-only-shadow.html
85371               fast/dom/shadow/shadowdom-for-output-without-shadow.html
85372               fast/dom/shadow/shadowdom-for-select-complex-shadow.html
85373               fast/dom/shadow/shadowdom-for-select-only-shadow.html
85374               fast/dom/shadow/shadowdom-for-select-without-shadow.html
85375               fast/dom/shadow/shadowdom-for-textarea-complex-shadow.html
85376               fast/dom/shadow/shadowdom-for-textarea-only-shadow.html
85377               fast/dom/shadow/shadowdom-for-textarea-without-shadow.html
85378
85379        * dom/ShadowRoot.cpp:
85380        (WebCore::allowsAuthorShadowRoot):
85381        * html/FormAssociatedElement.cpp:
85382        (WebCore::FormAssociatedElement::ensureUserAgentShadowRoot): Ensures the existence of a UserAgentShadowRoot.
85383        If it does not exist, we create it with empty content.
85384        (WebCore):
85385        * html/FormAssociatedElement.h:
85386        (FormAssociatedElement):
85387        * html/HTMLFormControlElement.cpp:
85388        (WebCore::HTMLFormControlElement::willAddAuthorShadowRoot):
85389        (WebCore):
85390        * html/HTMLFormControlElement.h:
85391        (HTMLFormControlElement):
85392        * html/ValidationMessage.cpp:
85393        (WebCore::adjustBubblePosition): When AuthroShadowRoot does not a shadow element, ValidationMessage
85394        does not have a renderer. So we have to check the existence of renderer.
85395        (WebCore::ValidationMessage::buildBubbleTree):
85396
853972012-07-26  Kaustubh Atrawalkar  <kaustubh@motorola.com>
85398
85399        [DRT] LTC:: pageNumberForElementById() could be moved to Internals
85400        https://bugs.webkit.org/show_bug.cgi?id=92091
85401
85402        Reviewed by Adam Barth.
85403
85404        Move the pageNumberForElementById from LayoutTestCotroller to Internals and
85405        remove the old platform specific implementations as it exclusively tests WebCore functionality.
85406
85407        Covered by existing test cases.
85408
85409        * testing/Internals.cpp:
85410        (WebCore::Internals::counterValue):
85411        (WebCore):
85412        (WebCore::Internals::pageNumber):
85413        * testing/Internals.h:
85414        (Internals):
85415        (WebCore::Internals::pageNumber):
85416        * testing/Internals.idl:
85417
854182012-07-25  MORITA Hajime  <morrita@google.com>
85419
85420        [Chromium][Win] <progress> animation on RTL direction is reverse
85421        https://bugs.webkit.org/show_bug.cgi?id=92236
85422
85423        Reviewed by Kent Tamura.
85424
85425        This change modfies the way to handle RTL progress bar painting.
85426        Originally it computes the flipped coordinates. This change uses transformation for the flip.
85427        DirectionFlippingScope handles it.
85428
85429        * rendering/RenderThemeChromiumLinux.cpp:
85430        (WebCore::RenderThemeChromiumLinux::paintProgressBar): Applied DirectionFlippingScope
85431        * rendering/RenderThemeChromiumSkia.cpp:
85432        (WebCore::RenderThemeChromiumSkia::determinateProgressValueRectFor):
85433        - Deleted RTL handling in favor of DirectionFlippingScope
85434        (WebCore::RenderThemeChromiumSkia::DirectionFlippingScope::DirectionFlippingScope):
85435        (WebCore):
85436        (WebCore::RenderThemeChromiumSkia::DirectionFlippingScope::~DirectionFlippingScope):
85437        * rendering/RenderThemeChromiumSkia.h:
85438        (RenderThemeChromiumSkia):
85439        (DirectionFlippingScope): Added.
85440        * rendering/RenderThemeChromiumWin.cpp:
85441        (WebCore):
85442        (WebCore::RenderThemeChromiumWin::paintProgressBar): Applied DirectionFlippingScope
85443
854442012-07-25  Vineet Chaudhary  <rgf748@motorola.com>
85445
85446        https://bugs.webkit.org/show_bug.cgi?id=92260
85447        Repalce "int" with "long" from WebCore/*.idls
85448
85449        Reviewed by Adam Barth.
85450
85451        As per the WebIDL spec IDL shouldn't have int attributes but long instead.
85452        Repalced attributes types int with long from WebCore/*.idls.
85453
85454        No new tests. TestObj.idl already covers this.
85455        There should be no behavioural changes.
85456
85457        * dom/Touch.idl: Repalce int with long.
85458        * dom/WebKitNamedFlow.idl: Ditto.
85459        * html/canvas/ArrayBuffer.idl: Ditto.
85460        * html/canvas/WebGLActiveInfo.idl: Ditto.
85461        * html/canvas/WebGLShaderPrecisionFormat.idl: Ditto.
85462        * page/WebKitAnimation.idl: Ditto.
85463
854642012-07-25  Shinya Kawanaka  <shinyak@chromium.org>
85465
85466        The elements in ShadowDOM of meter or progress should not be modifiable.
85467        https://bugs.webkit.org/show_bug.cgi?id=92199
85468
85469        Reviewed by Hajime Morita.
85470
85471        A user can set -webkit-user-modify: read-write to the elements in Shadow DOM in a meter or progress element.
85472        This might cause a undesired crash like Bug 65738. They should be unmodifiable.
85473
85474        We add default css values to elements in ShadowDOM of meter or progress to prohibit editing them.
85475
85476        Tests: fast/html/meter-user-modify.html
85477               fast/html/progress-user-modify.html
85478
85479        * css/html.css:
85480        Added -webkit-user-modify: read-only !important; for these elements so that they won't be
85481        changed by a user.
85482        (meter::-webkit-meter-bar):
85483        (meter::-webkit-meter-optimum-value):
85484        (meter::-webkit-meter-suboptimum-value):
85485        (meter::-webkit-meter-even-less-good-value):
85486        (progress::-webkit-progress-bar):
85487        (progress::-webkit-progress-value):
85488
854892012-07-25  Joshua Netterfield  <jnetterfield@rim.com>
85490
85491        [BlackBerry] GraphicsContext3D::paintToCanvas should not swap 0th and 2nd components of color
85492        https://bugs.webkit.org/show_bug.cgi?id=92314
85493
85494        Reviewed by Rob Buis.
85495
85496        No new tests, because it corrects existing functionality, but it makes BlackBerry
85497        pass canvas-text.html and others.
85498
85499        * platform/graphics/GraphicsContext3D.h:
85500        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
85501        (WebCore::GraphicsContext3D::paintToCanvas):
85502        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
85503        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
85504
855052012-07-25  Joshua Netterfield  <jnetterfield@rim.com>
85506
85507        [BlackBerry] GraphicsContext3D::reshapeFBOs does not report when bound FBOs should be restored
85508        https://bugs.webkit.org/show_bug.cgi?id=92304
85509
85510        Reviewed by Rob Buis.
85511
85512        No new tests, because it corrects existing functionality, but it makes BlackBerry
85513        pass framebuffer-bindings-unaffected-on-resize.html.
85514
85515        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
85516        (WebCore::GraphicsContext3D::reshapeFBOs):
85517
855182012-07-25  Joshua Netterfield  <jnetterfield@rim.com>
85519
85520        [BlackBerry] readPixels should set alpha to 255 instead of 0 when alpha is disabled
85521        https://bugs.webkit.org/show_bug.cgi?id=92303
85522
85523        Reviewed by Rob Buis.
85524
85525        No new tests, because it corrects existing functionality, but it makes BlackBerry
85526        pass context-attributes-alpha-depth-stencil-antialias.html.
85527
85528        * html/canvas/WebGLRenderingContext.cpp:
85529        (WebCore):
85530        (WebCore::WebGLRenderingContext::readPixels):
85531
855322012-07-25  Joshua Netterfield  <jnetterfield@rim.com>
85533
85534        [WebGL] fast/canvas/webgl/framebuffer-object-attachment.html fails on certain platforms
85535        https://bugs.webkit.org/show_bug.cgi?id=92296
85536
85537        Reviewed by Rob Buis.
85538
85539        No new tests, because it introduces no new functionality, only fixes the above mentioned test.
85540
85541        * html/canvas/WebGLFramebuffer.cpp:
85542        (WebCore::WebGLFramebuffer::checkStatus):
85543
855442012-07-25  Xingnan Wang  <xingnan.wang@intel.com>
85545
85546        IndexedDB: IDBTransaction::abort() should throw DOMException
85547        https://bugs.webkit.org/show_bug.cgi?id=92069
85548
85549        Reviewed by Kentaro Hara.
85550
85551        Keep aligned with the W3C spec.
85552        http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBTransaction-abort-void
85553
85554        Test: storage/indexeddb/transaction-abort.html.
85555
85556        * Modules/indexeddb/IDBTransaction.cpp:
85557        (WebCore::IDBTransaction::abort):
85558        (WebCore):
85559        * Modules/indexeddb/IDBTransaction.h:
85560        (IDBTransaction):
85561        * Modules/indexeddb/IDBTransaction.idl:
85562
855632012-07-25  Tony Chang  <tony@chromium.org>
85564
85565        flexitems can overflow the flexbox due to rounding
85566        https://bugs.webkit.org/show_bug.cgi?id=92163
85567
85568        Reviewed by Levi Weintraub.
85569
85570        Don't round flex item sizes and use LayoutPoint for the location of flex items.
85571
85572        Test: css3/flexbox/flex-rounding.html
85573
85574        * rendering/RenderFlexibleBox.cpp:
85575        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
85576        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
85577        (WebCore::RenderFlexibleBox::layoutColumnReverse):
85578
855792012-07-25  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
85580
85581        [BlackBerry] Integrate certmgr with CredentialBackingStore
85582        https://bugs.webkit.org/show_bug.cgi?id=92183
85583
85584        Reviewed by George Staikos.
85585
85586        Integrated BlackBerry::Platform::CertMgrWrapper with
85587        CredentialBackingStore, when certmgr is ready we save
85588        the password in certmgr and retrieve it from certmgr.
85589
85590        RIM PR: 171991
85591        Internally reviewed by Joe Mason <jmason@rim.com>.
85592
85593        No new tests since there's no functional change.
85594
85595        * platform/network/blackberry/CredentialBackingStore.cpp:
85596        (WebCore::hashCredentialInfo):
85597        (WebCore):
85598        (WebCore::CredentialBackingStore::CredentialBackingStore):
85599        (WebCore::CredentialBackingStore::open):
85600        (WebCore::CredentialBackingStore::addLogin):
85601        (WebCore::CredentialBackingStore::updateLogin):
85602        (WebCore::CredentialBackingStore::getLogin):
85603        * platform/network/blackberry/CredentialBackingStore.h:
85604        (CredentialBackingStore):
85605
856062012-07-25  Kent Tamura  <tkent@chromium.org>
85607
85608        REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
85609        https://bugs.webkit.org/show_bug.cgi?id=91804
85610
85611        Reviewed by Hajime Morita.
85612
85613        The complexity of FormKeyGenerator::formKey() was O(N) where N is the
85614        number form elements with an identical action URL, and formKey() is
85615        called for every form. So, it's O(N^2). A page in www.reddit.com
85616        contains hundreds of form elements with action="#". So FormController::
85617        formElementsState() took a few seconds on a slow machine.
85618
85619        In order to avoid O(N^2) operation, storing a map from form signatures
85620        to next index numbers, instead of storing existing formKey strings.
85621
85622        No new tests. Just a performance improvement.
85623
85624        Note: This is a re-landing of r123191. We rolled it out because of
85625        suspicion of a performance regression. However it was innocent.
85626
85627        * html/FormController.cpp:
85628        (FormKeyGenerator): Remove m_existingKeys. Add a map from a form
85629        signature string to the next index number.
85630        (WebCore::formSignature): Returns a signature string for a form, without
85631        an index number. This is like "actionURL [name1 name2 ]"
85632        (WebCore::FormKeyGenerator::formKey):
85633        Creates a formKey string by concatenating a formSignature and #n. N is
85634        obtained from m_formSignatureToNextIndexMap in O(1).
85635        (WebCore::FormKeyGenerator::willDeleteForm):
85636        Remove the code for m_existingKeys.
85637
856382012-07-25  Benjamin Poulain  <bpoulain@apple.com>
85639
85640        Initialize QualifiedName's strings from the read only data segment
85641        https://bugs.webkit.org/show_bug.cgi?id=92226
85642
85643        Reviewed by Anders Carlsson.
85644
85645        Modify the initialization of static QualifiedName to initialize the AtomicString
85646        with the data from the read only memory.
85647
85648        Overall, HTMLNames::init() gets 10% faster.
85649
85650        * dom/QualifiedName.cpp:
85651        (WebCore::QualifiedName::QualifiedName):
85652        * dom/QualifiedName.h:
85653        (QualifiedName):
85654        Remove the useless constructor taking a char* and get rid of the init() function.
85655        The AtomicString representing the name should be constructed by the caller of QualifiedName.
85656
85657        Because the init() code is relatively large and is only executed once, it is important to
85658        keep the AtomicString construction separate. The function createQualifiedName() was added
85659        to improve the cache use. The short version let us reduce the code one more instruction per
85660        call.
85661
85662        * dom/make_names.pl:
85663        (printQualifiedNameMaker):
85664        (printShortQualifiedNameMaker):
85665        (printNamesCppFile):
85666        (printDefinitions):
85667
856682012-07-25  Yoshifumi Inoue  <yosin@chromium.org>
85669
85670        [Forms] Move HTMLInputElement::updateInnerTextValue to InputType class
85671        https://bugs.webkit.org/show_bug.cgi?id=92230
85672
85673        Reviewed by Kent Tamura.
85674
85675        This patch moves implementaion of HTMLInputElement::updateInnerTextValue()
85676        into input type classes, removes updateInnerTextValue() from HTMLInputElement,
85677        and updates call site of updateInnerTextValue().
85678
85679        No new tests. This patch doesn't change behavior.
85680
85681        * html/DateInputType.cpp:
85682        (WebCore::DateInputType::handleBlurEvent): Updated call site of updateInnerTextValue().
85683        * html/HTMLInputElement.cpp:
85684        (WebCore::HTMLInputElement::updateType): Updated call site of updateInnerTextValue().
85685        (WebCore::HTMLInputElement::parseAttribute): Updated call site of updateInnerTextValue().
85686        (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement): Updated call site of updateInnerTextValue().
85687        (WebCore::HTMLInputElement::setSuggestedValue): Updated call site of updateInnerTextValue().
85688        * html/HTMLInputElement.h:
85689        (HTMLInputElement): Removed updateInnerTextValue().
85690        * html/InputType.cpp:
85691        (WebCore::InputType::updateInnerTextValue): Added default implementaion.
85692        * html/InputType.h:
85693        (InputType): Added declaration of updateInnerTextValue().
85694        * html/NumberInputType.cpp:
85695        (WebCore::NumberInputType::handleBlurEvent): Updated call site of updateInnerTextValue().
85696        * html/TextFieldInputType.cpp:
85697        (WebCore::TextFieldInputType::setValue): Updated call site of updateInnerTextValue().
85698        (WebCore::TextFieldInputType::updateInnerTextValue): Moved implementaion from HTMLInputElement.
85699        * html/TextFieldInputType.h:
85700        (TextFieldInputType): Added declaration of updateInnerTextValue().
85701
857022012-07-25  Dana Jansens  <danakj@chromium.org>
85703
85704        [chromium] Move ephemeral data for a single frame in LayerRendererChromium into a structure with a scoped lifetime equal to the frame
85705        https://bugs.webkit.org/show_bug.cgi?id=92294
85706
85707        Reviewed by Adrienne Walker.
85708
85709        The LayerRendererChromium class has a number of member variables that are used
85710        while drawing a single frame. Because they are member variables, their lifetimes
85711        are not clear, and some are even updated between frames, which is not needed.
85712
85713        This change creates a LRC::DrawingFrame structure that holds the data used
85714        while drawing the current frame, and an instance of this structure is held
85715        and passed around to functions in LayerRendererChromium, moving all of the
85716        data out from being member variables on the class to being function
85717        arguments on the relevant methods.
85718
85719        The projection and window matrices are a part of this frame data, and are not
85720        used externally, so they are removed from the CCRenderer interface and included
85721        within the DrawingFrame structure.
85722
85723        Covered by existing tests, no change in behaviour intended.
85724
85725        * platform/graphics/chromium/LayerRendererChromium.cpp:
85726        (WebCore::LayerRendererChromium::LayerRendererChromium):
85727        (WebCore::LayerRendererChromium::viewportChanged):
85728        (WebCore::LayerRendererChromium::clearFramebuffer):
85729        (WebCore::LayerRendererChromium::drawFrame):
85730        (WebCore::LayerRendererChromium::drawRenderPass):
85731        (WebCore::LayerRendererChromium::drawQuad):
85732        (WebCore::LayerRendererChromium::drawCheckerboardQuad):
85733        (WebCore::LayerRendererChromium::drawDebugBorderQuad):
85734        (WebCore::LayerRendererChromium::drawBackgroundFilters):
85735        (WebCore::LayerRendererChromium::drawRenderPassQuad):
85736        (WebCore::LayerRendererChromium::drawSolidColorQuad):
85737        (WebCore::LayerRendererChromium::drawTileQuad):
85738        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
85739        (WebCore::LayerRendererChromium::drawStreamVideoQuad):
85740        (WebCore::LayerRendererChromium::drawTextureQuad):
85741        (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
85742        (WebCore::LayerRendererChromium::finishDrawingFrame):
85743        (WebCore::LayerRendererChromium::drawTexturedQuad):
85744        (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
85745        (WebCore::LayerRendererChromium::isCurrentRenderPass):
85746        (WebCore::LayerRendererChromium::useRenderPass):
85747        (WebCore::LayerRendererChromium::useScopedTexture):
85748        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
85749        (WebCore::LayerRendererChromium::setScissorToRect):
85750        (WebCore::LayerRendererChromium::setDrawFramebufferRect):
85751        * platform/graphics/chromium/LayerRendererChromium.h:
85752        (DrawingFrame):
85753        (WebCore::LayerRendererChromium::DrawingFrame::DrawingFrame):
85754        (LayerRendererChromium):
85755        * platform/graphics/chromium/cc/CCRenderer.h:
85756        (CCRenderer):
85757
857582012-07-19  Adrienne Walker  <enne@google.com>
85759
85760        [chromium] Make all compositor screen space transforms operate on content rects
85761        https://bugs.webkit.org/show_bug.cgi?id=91807
85762
85763        Reviewed by Kenneth Russell.
85764
85765        Previously, surface screen space transforms operated on surface
85766        content space but layer screen space transforms operated on layer
85767        space. For the purpose of consistency, unify these two so that they
85768        both operate on content space.
85769
85770        No tests, because no change in behavior expected. Just a refactoring.
85771
85772        * platform/graphics/chromium/LayerChromium.h:
85773        (LayerChromium):
85774        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
85775        (WebCore::CCDebugRectHistory::savePaintRects):
85776        (WebCore::CCDebugRectHistory::savePropertyChangedRects):
85777        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
85778        (WebCore::calculateDrawTransformsInternal):
85779        (WebCore::CCLayerTreeHostCommon::findLayerThatIsHitByPoint):
85780        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
85781        (WebCore::::markOccludedBehindLayer):
85782        (WebCore::::occluded):
85783        (WebCore::::unoccludedContentRect):
85784
857852012-07-25  Dan Bernstein  <mitz@apple.com>
85786
85787        Hit testing in one column or in the gap between cloumns along the block axis can return a result from the wrong column
85788        https://bugs.webkit.org/show_bug.cgi?id=92311
85789
85790        Reviewed by Anders Carlsson.
85791
85792        Tests: fast/multicol/hit-test-end-of-column.html
85793               fast/multicol/hit-test-gap-block-axis.html
85794
85795        * rendering/RenderBlock.cpp:
85796        (WebCore::RenderBlock::positionForPointWithInlineChildren): To prevent hits after the last
85797        line on a given column from returning the next line in the next column, added a check if
85798        the hit occurred within the pagination strut of a line. Covered by the first test.
85799        (WebCore::RenderBlock::adjustPointToColumnContents): Added clamp-to-column logic for the
85800        block-axis case. This prevents hits near the bottom of the top half of the gap from bleeding
85801        into the top of the next column. Covered by the second test.
85802
858032012-07-25  David Grogan  <dgrogan@chromium.org>
85804
85805        IndexedDB: Make db.version return an integer if appropriate
85806        https://bugs.webkit.org/show_bug.cgi?id=92195
85807
85808        Reviewed by Tony Chang.
85809
85810        Make use of the existing IDBAny mechanism to return an integer if
85811        integer versions have been used.
85812
85813        No new tests - no change in behavior expected.
85814
85815        * Modules/indexeddb/IDBDatabase.cpp:
85816        (WebCore::IDBDatabase::version):
85817        (WebCore):
85818        * Modules/indexeddb/IDBDatabase.h:
85819        (IDBDatabase):
85820        * Modules/indexeddb/IDBDatabase.idl:
85821
858222012-07-25  Michael Saboff  <msaboff@apple.com>
85823
85824        Convert HTML parser to handle 8-bit resources without converting to UChar*
85825        https://bugs.webkit.org/show_bug.cgi?id=90321
85826
85827        Reviewed by Geoffrey Garen.
85828
85829        No new tests, no new functionality therefore covered by existing tests.
85830
85831        Changed the parsing of HTML to handle 8-bit strings without converting the 
85832        whole string to 16-bits.  Primary change was to use the appropriate 
85833        character pointer type (LChar* or UChar*) depending on the source string.
85834        This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
85835        incrementAndGetCurrentChar{8,16} methods.  In SegmentedString, the advance()
85836        and advanceAndUpdateLineNumber() methods have been refactored into a
85837        state machine managed pair of function pointers.  The possible functions
85838        have not only the 8 and 16 bitness factored out, they also have the 
85839        "exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
85840        This provides a net speed-up even with the 8/16 bit testing.
85841        Other changes involve using String methods to access and compare with the
85842        source data.
85843
85844        * html/FTPDirectoryDocument.cpp:
85845        (WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
85846        instead of SegmentedString '*' operator.
85847        * html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
85848        SegmentedString '*' operator.
85849        * html/parser/HTMLParserIdioms.cpp:
85850        (WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
85851        * html/parser/HTMLSourceTracker.cpp:
85852        (WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
85853        SegmentedString '*' operator.
85854        * loader/cache/CachedScript.cpp:
85855        (WebCore::CachedScript::script): Updated to use new String::dataSize() method.
85856        * platform/text/SegmentedString.cpp:
85857        (WebCore::SegmentedString::SegmentedString):
85858        (WebCore::SegmentedString::operator=):
85859        (WebCore::SegmentedString::clear):
85860        (WebCore::SegmentedString::append):
85861        (WebCore::SegmentedString::prepend):
85862        (WebCore::SegmentedString::advanceSubstring):
85863        (WebCore::SegmentedString::advance): Changed to be a wrapper that invokes current 
85864        advance function.
85865        (WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
85866        (WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
85867        (WebCore::SegmentedString::advanceAndUpdateLineNumber8IncludeLineNumbers): Fast
85868        path advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
85869        (WebCore::SegmentedString::advanceAndUpdateLineNumber16IncludeLineNumbers): Fast
85870        path advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
85871        (WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
85872        8 and 16 bit advance.
85873        (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
85874        advanceAndUpdateLineNumber function for both 8 and 16 bit data.
85875        (WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
85876        * platform/text/SegmentedString.h:
85877        (WebCore::SegmentedSubstring::SegmentedSubstring):
85878        (WebCore::SegmentedSubstring::clear):
85879        (SegmentedSubstring):
85880        (WebCore::SegmentedSubstring::is8Bit): New getter.
85881        (WebCore::SegmentedSubstring::appendTo):
85882        (WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
85883        (WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
85884        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
85885        that pre-increments the 8 bit pointer and returns the next character.
85886        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
85887        that pre-increments the 16 bit pointer and returns the next character.
85888        (WebCore::SegmentedSubstring::currentSubString):
85889        (WebCore::SegmentedSubstring::getCurrentChar):
85890        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
85891        (WebCore::SegmentedString::SegmentedString):
85892        (WebCore::SegmentedString::push):
85893        (WebCore::SegmentedString::isEmpty):
85894        (WebCore::SegmentedString::lookAhead):
85895        (WebCore::SegmentedString::lookAheadIgnoringCase):
85896        (WebCore::SegmentedString::advance):
85897        (WebCore::SegmentedString::advanceAndUpdateLineNumber):
85898        (WebCore::SegmentedString::advanceAndASSERT):
85899        (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
85900        (WebCore::SegmentedString::advancePastNonNewline):
85901        (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
85902        (WebCore::SegmentedString::currentChar):
85903        (WebCore::SegmentedString::setSlowCase): Set advance function pointers to slow case
85904        functions.
85905        (WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
85906        change to slow case functions when only one character left.
85907        (WebCore::SegmentedString::setAdvanceFunctionPointers): Select appropriate advance
85908        functions based on current substring.
85909        (WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
85910        (WebCore::SegmentedString::lookAheadSlowCase):
85911        * xml/parser/CharacterReferenceParserInlineMethods.h:
85912        (WebCore::consumeCharacterReference): Changed to use currentChar() instead of
85913        SegmentedString '*' operator.
85914        * xml/parser/MarkupTokenizerBase.h:
85915        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
85916        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
85917        currentChar() instead of SegmentedString '*' operator.
85918        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
85919
859202012-07-25  Sheriff Bot  <webkit.review.bot@gmail.com>
85921
85922        Unreviewed, rolling out r123625 and r123672.
85923        http://trac.webkit.org/changeset/123625
85924        http://trac.webkit.org/changeset/123672
85925        https://bugs.webkit.org/show_bug.cgi?id=92315
85926
85927        Broke Windows and gcc builds (Requested by rniwa on #webkit).
85928
85929        * platform/AutodrainedPool.h:
85930        (AutodrainedPool):
85931        * platform/ContentType.h:
85932        (ContentType):
85933        * platform/ContextMenu.h:
85934        (ContextMenu):
85935        * platform/ContextMenuItem.h:
85936        (ContextMenuItem):
85937        * platform/Cursor.h:
85938        (WebCore::SharedCursor::SharedCursor):
85939        (Cursor):
85940        * platform/KURL.h:
85941        (WebCore::KURL::KURL):
85942        (KURL):
85943        * platform/KURLGooglePrivate.h:
85944        (KURLGooglePrivate):
85945        * platform/PODRedBlackTree.h:
85946        (WebCore::PODRedBlackTree::PODRedBlackTree):
85947        * platform/Pasteboard.h:
85948        (Pasteboard):
85949        * platform/PlatformEvent.h:
85950        (WebCore::PlatformEvent::PlatformEvent):
85951        * platform/PlatformKeyboardEvent.h:
85952        (PlatformKeyboardEvent):
85953        * platform/PlatformMouseEvent.h:
85954        (PlatformMouseEvent):
85955        * platform/PlatformPasteboard.h:
85956        (PlatformPasteboard):
85957        * platform/PlatformTouchEvent.h:
85958        (PlatformTouchEvent):
85959        * platform/PlatformWheelEvent.h:
85960        (PlatformWheelEvent):
85961        * platform/RunLoop.h:
85962        (TimerBase):
85963        * platform/ScrollAnimator.h:
85964        (ScrollAnimator):
85965        * platform/ScrollAnimatorNone.h:
85966        (ScrollAnimatorNone):
85967        * platform/SharedBuffer.h:
85968        (SharedBuffer):
85969        * platform/WheelFlingPlatformGestureCurve.h:
85970        (WheelFlingPlatformGestureCurve):
85971        * platform/Widget.h:
85972        (Widget):
85973        * platform/network/cf/ResourceRequestCFNet.cpp:
85974        (WebCore::ResourceRequest::doUpdateResourceRequest):
85975
859762012-07-25  Ryosuke Niwa  <rniwa@webkit.org>
85977
85978        Windows build fix attempt after r123625.
85979
85980        * platform/network/cf/ResourceRequestCFNet.cpp:
85981        (WebCore::ResourceRequest::doUpdateResourceRequest):
85982
859832012-07-25  Kwang Yul Seo  <skyul@company100.net>
85984
85985        Read tag names and attributes from the saved tokens in HTMLTreeBuilder::resetInsertionModeAppropriately.
85986        https://bugs.webkit.org/show_bug.cgi?id=92240
85987
85988        Reviewed by Adam Barth.
85989
85990        This is a follow-up patch for r123577. Added ItemType enum to HTMLStackItem to handle
85991        the context element case.
85992
85993        No new tests, covered by existing tests.
85994
85995        * html/parser/HTMLStackItem.h:
85996        (WebCore::HTMLStackItem::create):
85997        (WebCore::HTMLStackItem::HTMLStackItem):
85998        * html/parser/HTMLTreeBuilder.cpp:
85999        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
86000        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
86001
860022012-07-25  Nico Weber  <thakis@chromium.org>
86003
86004        [chromium/mac] Remove mac_bundle_resources section from WebCore.gyp
86005        https://bugs.webkit.org/show_bug.cgi?id=92207
86006
86007        Reviewed by Tony Chang.
86008
86009        It's no longer needed after http://crrev.com/148290 and
86010        http://crrev.com/148187.
86011
86012        * WebCore.gyp/WebCore.gyp:
86013
860142012-07-25  Dana Jansens  <danakj@chromium.org>
86015
86016        [chromium] Move WebFilterOperations from RenderPassDrawQuad to RenderPass
86017        https://bugs.webkit.org/show_bug.cgi?id=91885
86018
86019        Reviewed by Adrienne Walker.
86020
86021        We move the filter operations to CCRenderPass to avoid having
86022        variable-length data in a WebCompositorQuad in order to serialize,
86023        and also to avoid requiring a virtual destructor for the quad
86024        classes.
86025
86026        The drawFrame method now takes a CCRenderPassIdHashMap in order
86027        to connect RenderPass quads to their source RenderPass.
86028
86029        Covered by existing tests.
86030
86031        * platform/graphics/chromium/LayerRendererChromium.cpp:
86032        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
86033        (WebCore::LayerRendererChromium::drawFrame):
86034        (WebCore::LayerRendererChromium::beginDrawingFrame):
86035        (WebCore::LayerRendererChromium::drawBackgroundFilters):
86036        (WebCore::LayerRendererChromium::drawRenderPassQuad):
86037        * platform/graphics/chromium/LayerRendererChromium.h:
86038        (LayerRendererChromium):
86039        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
86040        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
86041        (WebCore::CCLayerTreeHostImpl::drawLayers):
86042        * platform/graphics/chromium/cc/CCRenderPass.h:
86043        (WebCore::CCRenderPass::filters):
86044        (WebCore::CCRenderPass::setFilters):
86045        (CCRenderPass):
86046        (WebCore::CCRenderPass::backgroundFilters):
86047        (WebCore::CCRenderPass::setBackgroundFilters):
86048        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
86049        (WebCore::CCRenderPassDrawQuad::create):
86050        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
86051        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
86052        (CCRenderPassDrawQuad):
86053        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
86054        (WebCore::CCRenderSurface::appendQuads):
86055        * platform/graphics/chromium/cc/CCRenderer.h:
86056        (CCRenderer):
86057
860582012-07-25  Mike Reed  <reed@google.com>
86059
86060        fix test in beginLayerClippedToImage to check for immutability if we're going to do a shallow-copy
86061        https://bugs.webkit.org/show_bug.cgi?id=92276
86062
86063        Reviewed by Stephen White.
86064
86065        PlatformContextSkia::beginLayerClippedToImage
86066
86067        This function wants to apply the provided ImageBuffer as a clip. Skia does not support this natively yet,
86068        so the code makes a "copy" of that imageBuffer, to be applied later. The old code, wanting to avoid a
86069        deep copy if possible, checked for the presence of a SkPixelRef. If it found one, it made a shallow copy.
86070        This is flawed, since the contents of a pixelref are not guaranteed to be immutable. The new code checks
86071        against this attribute: if the bitmap is "immutable" then we can make a shallow-copy, else we make a
86072        deep copy.
86073
86074        No new tests. Existing svg layouttests work w/ or w/out this change, but at the next Skia deps roll, we see
86075        failures w/o this change. The change is more "correct", though the problem case does not exhibit itself until
86076        Skia rev. 4722 or later lands.
86077
86078        * platform/graphics/skia/PlatformContextSkia.cpp:
86079        (WebCore::PlatformContextSkia::beginLayerClippedToImage):
86080
860812012-07-25  Li Yin  <li.yin@intel.com>
86082
86083        It is invalid when both numberOfInputChannels and numberOfOutputChannels to be zero in JavaScriptAudioNode.
86084        https://bugs.webkit.org/show_bug.cgi?id=91364
86085
86086        Reviewed by Kenneth Russell.
86087
86088        Spec: http://www.w3.org/TR/webaudio/#JavaScriptAudioNode-section
86089        It is invalid for both numberOfInputChannels and numberOfOutputChannels to be zero.
86090
86091        Test: webaudio/javascriptaudionode.html
86092
86093        * Modules/webaudio/JavaScriptAudioNode.cpp:
86094        (WebCore::JavaScriptAudioNode::create):
86095
860962012-07-24  Shawn Singh  <shawnsingh@chromium.org>
86097
86098        [chromium] Refactor CCLayerTreeHostCommon: move root layer special case initialization into internal code.
86099        https://bugs.webkit.org/show_bug.cgi?id=88953
86100
86101        Reviewed by Adrienne Walker.
86102
86103        This is part 1 of trying to reduce the root layer special
86104        case. This tries to reduce the special-ness of the root layer from
86105        the perspective of outside code.
86106
86107        After this patch, code that uses calcDrawTransforms() no longer
86108        needs to initialize the root layer's surface, and no longer needs
86109        to manually append the root layer to the renderSurfaceLayerList.
86110
86111        Unit tests were also updated (much cleaner!) to account for this change.
86112
86113        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
86114        (WebCore::CCLayerTreeHost::updateLayers):
86115        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
86116        (WebCore):
86117        (WebCore::setupRootLayerAndSurfaceForRecursion):
86118        (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
86119        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
86120        (CCLayerTreeHostCommon):
86121        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
86122        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
86123
861242012-07-25  Taiju Tsuiki  <tzik@chromium.org>
86125
86126        FileSystem should provide a way to delete filesystem.
86127        https://bugs.webkit.org/show_bug.cgi?id=91861
86128
86129        Reviewed by Adam Barth.
86130
86131        We will add a test when we wire-up the feature to Inspector.
86132
86133        * Modules/filesystem/LocalFileSystem.cpp: Add deleteFileSystem
86134        (WebCore::deleteFileSystem):
86135        (WebCore):
86136        (WebCore::LocalFileSystem::deleteFileSystem):
86137        * Modules/filesystem/LocalFileSystem.h:
86138        (LocalFileSystem):
86139        * platform/AsyncFileSystem.cpp: Add deleteFileSystem
86140        (WebCore):
86141        (WebCore::AsyncFileSystem::deleteFileSystem):
86142        * platform/AsyncFileSystem.h:
86143        (AsyncFileSystem):
86144        * platform/blackberry/AsyncFileSystemBlackBerry.cpp: Add deleteFileSystem
86145        (WebCore::AsyncFileSystem::deleteFileSystem):
86146        (WebCore):
86147        * platform/gtk/AsyncFileSystemGtk.cpp: Add deleteFileSystem
86148        (WebCore::AsyncFileSystem::deleteFileSystem):
86149        (WebCore):
86150
861512012-07-25  Andrey Adaikin  <aandrey@chromium.org>
86152
86153        Web Inspector: Add more jsdocs to InjectedScriptSource.js
86154        https://bugs.webkit.org/show_bug.cgi?id=92255
86155
86156        Reviewed by Pavel Feldman.
86157
86158        * inspector/InjectedScriptSource.js:
86159
861602012-07-24  Dana Jansens  <danakj@chromium.org>
86161
86162        [chromium] Turn the debug HUD into a layer so that it can be drawn as a WebCompositorQuad
86163        https://bugs.webkit.org/show_bug.cgi?id=92182
86164
86165        Reviewed by Adrienne Walker.
86166
86167        By changing the HUD into a quad, we are able to create a HUD and pass
86168        it to the host compositor, allowing the HUD to be used for renderers
86169        under Ubercompositor.
86170
86171        This also removes the special drawing code for the HUD from
86172        LayerRendererChromium, allowing us to move finishDrawingFrame
86173        into LayerRendererChromium as a private method and remove it
86174        from the CCRenderer interface.
86175
86176        Finally, we can remove the CCFontAtlas transport code from CCProxy
86177        and its implementations as the atlas can be synced to impl thread
86178        through the usual layer commit mechanism.
86179
86180        The debug HUD is not covered by tests.
86181
86182        * WebCore.gypi:
86183        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp: Added.
86184        (WebCore):
86185        (WebCore::HeadsUpDisplayLayerChromium::create):
86186        (WebCore::HeadsUpDisplayLayerChromium::HeadsUpDisplayLayerChromium):
86187        (WebCore::HeadsUpDisplayLayerChromium::~HeadsUpDisplayLayerChromium):
86188        (WebCore::HeadsUpDisplayLayerChromium::createCCLayerImpl):
86189        * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h: Added.
86190        (WebCore):
86191        (HeadsUpDisplayLayerChromium):
86192        * platform/graphics/chromium/LayerRendererChromium.cpp:
86193        (WebCore::LayerRendererChromium::drawFrame):
86194        (WebCore::LayerRendererChromium::cleanupSharedObjects):
86195        * platform/graphics/chromium/LayerRendererChromium.h:
86196        (LayerRendererChromium):
86197        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
86198        (WebCore::CCDebugRectHistory::savePropertyChangedRects):
86199        * platform/graphics/chromium/cc/CCDebugRectHistory.h:
86200        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp.
86201        (WebCore):
86202        (WebCore::CCHeadsUpDisplayLayerImpl::CCHeadsUpDisplayLayerImpl):
86203        (WebCore::CCHeadsUpDisplayLayerImpl::~CCHeadsUpDisplayLayerImpl):
86204        (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
86205        (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
86206        (WebCore::CCHeadsUpDisplayLayerImpl::didDraw):
86207        (WebCore::CCHeadsUpDisplayLayerImpl::didLoseContext):
86208        (WebCore::CCHeadsUpDisplayLayerImpl::drawHudContents):
86209        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounter):
86210        (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounterText):
86211        (WebCore::CCHeadsUpDisplayLayerImpl::drawDebugRects):
86212        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.h.
86213        (WebCore):
86214        (CCHeadsUpDisplayLayerImpl):
86215        (WebCore::CCHeadsUpDisplayLayerImpl::create):
86216        * platform/graphics/chromium/cc/CCLayerImpl.h:
86217        (WebCore::CCLayerImpl::layerIsAlwaysDamaged):
86218        This flag is used to mark the HUD as always damaged, so that it is
86219        continually drawn on the impl thread. It is also used as a hint by
86220        the CCDebugRectHistory class to not include the layer in the display
86221        of damage, since always damaged is not interesting damage.
86222        (CCLayerImpl):
86223        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
86224        (WebCore::CCLayerTreeHost::create):
86225        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
86226        (WebCore::CCLayerTreeHost::initialize):
86227        (WebCore::CCLayerTreeHost::willCommit):
86228        (WebCore::CCLayerTreeHost::didCommit):
86229        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
86230        (CCLayerTreeSettings):
86231        (WebCore::CCLayerTreeSettings::showDebugInfo):
86232        (WebCore::CCLayerTreeSettings::showDebugRects):
86233        (CCLayerTreeHost):
86234        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
86235        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
86236        (WebCore::CCLayerTreeHostImpl::drawLayers):
86237        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
86238        (WebCore):
86239        (CCLayerTreeHostImpl):
86240        * platform/graphics/chromium/cc/CCProxy.h:
86241        (CCProxy):
86242        * platform/graphics/chromium/cc/CCRenderer.h:
86243        (CCRenderer):
86244        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
86245        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
86246        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
86247        * platform/graphics/chromium/cc/CCThreadProxy.h:
86248        (CCThreadProxy):
86249
862502012-07-25  'Pavel Feldman'  <pfeldman@chromium.org>
86251
86252        Web Inspector: follow up to r123612, fixing CSS value suggest.
86253
86254        Not reviewed, minor JS fix.
86255
86256        * inspector/front-end/CSSCompletions.js:
86257        (WebInspector.CSSCompletions):
86258        * inspector/front-end/StylesSidebarPane.js:
86259        (WebInspector.StylePropertyTreeElement.prototype):
86260
862612012-07-25  Michael Saboff  <msaboff@apple.com>
86262
86263        Unreviewed build fix after r123624.
86264
86265        * inspector/InspectorPageAgent.cpp:
86266        (WebCore::InspectorPageAgent::clearGeolocationOverride):
86267        Changed ASSERT_UNUSED() to UNUSED_PARAM().
86268
862692012-07-25  Pavel Feldman  <pfeldman@chromium.org>
86270
86271        Web inspector auto-completes "optimizequality" but then complains
86272        https://bugs.webkit.org/show_bug.cgi?id=92262
86273
86274        Reviewed by Timothy Hatcher.
86275
86276        Fixed optimizeSpeed, optimizeLegibility, geometricPrecision.
86277
86278        * inspector/front-end/CSSKeywordCompletions.js:
86279
862802012-07-25  Beth Dakin  <bdakin@apple.com>
86281
86282        https://bugs.webkit.org/show_bug.cgi?id=89114
86283        REGRESSION (r112919): Setting scrollTop after setting display from none to block 
86284        fails
86285        -and corresponding-
86286        <rdar://problem/11656050>
86287
86288        Reviewed by Simon Fraser.
86289
86290        ScrollAnimatorMac::immediateScrollTo() and ScrollAnimatorMac::immediateScrollBy() 
86291        both have an optimization in place so that they do not call 
86292        notifyPositionChanged() if the new scroll offset matches the ScrollAnimator's 
86293        cached m_currentPosX and m_currentPosY. So revision 112919 caused troubled with 
86294        this optimization because it allowed RenderLayers to restore a scrollOffset from 
86295        the Element if there is one cached there. This caused the RenderLayer to have a 
86296        scrollOffset that is improperly out-of-synch with the ScrollAnimator's 
86297        currentPosition (which will just be 0,0 since it is being re-created like the 
86298        RenderLayer). This fix makes sure they are in synch by calling 
86299        setCurrentPosition() on the ScrollAnimator when the cached position is non-zero.
86300        * rendering/RenderLayer.cpp:
86301        (WebCore::RenderLayer::RenderLayer):
86302
863032012-07-25  Andreas Kling  <kling@webkit.org>
86304
86305        Make ElementAttributeData a variable-sized object to reduce memory use.
86306        <http://webkit.org/b/88240>
86307
86308        Reviewed by Ryosuke Niwa.
86309
86310        Take advantage of the fact that we know at ElementAttributeData construction time how many attributes
86311        it needs to accomodate and allocate exactly as much space as needed instead of using a Vector.
86312        For elements that never have their attribute list mutated (the vast majority), this saves a lot of
86313        memory and removes the indirection to Vector<Attribute>'s heap-allocated storage.
86314
86315        Introduced a mutability flag to ElementAttributeData and sprinkled assertions all over to make sure
86316        that nothing tries to mutate an element with a raw attribute array.
86317
86318        When an Element's attribute(s) are mutated, we reconstruct the ElementAttributeData, this time using
86319        a Vector as backing instead. This is triggered when calling Element::mutableAttributeData().
86320
86321        This reduces memory consumption by 3.2MB when viewing the full HTML5 spec at <http://whatwg.org/c/>.
86322        That is a ~35% reduction in DOM attribute memory use.
86323
86324        Furthermore, that page ends up promoting 27% of the elements to mutable attribute storage due to dynamic
86325        adding of "class" attributes. For more static pages, savings are even greater.
86326
86327        Also did away with ElementAttributeData::removeAttribute(name) and do separate index lookup where
86328        needed. Not a big deal but avoids double lookup of attributes when removing them.
86329
86330        * dom/Element.cpp:
86331        (WebCore::Element::detachAttribute):
86332        (WebCore::Element::removeAttribute):
86333        (WebCore::Element::attributes):
86334        (WebCore::Element::setAttributeInternal):
86335        (WebCore::Element::parserSetAttributes):
86336        (WebCore::Element::hasEquivalentAttributes):
86337        (WebCore::Element::setAttributeNode):
86338        (WebCore::Element::removeAttributeNode):
86339        (WebCore::Element::getAttributeNode):
86340        (WebCore::Element::getAttributeNodeNS):
86341        (WebCore::Element::hasAttribute):
86342        (WebCore::Element::hasAttributeNS):
86343        (WebCore::Element::cloneAttributesFromElement):
86344
86345            Sprinkle const on ElementAttributeData* pointers.
86346            Switch to using mutableAttributeData() in code paths that modify attributes.
86347
86348        (WebCore::Element::normalizeAttributes):
86349
86350            Cleaner iteration over attributes, I removed ElementAttributeData::attributeVector() since that
86351            was just incurring a bunch of extra Vector copying. Since ElementAttributeData already exposes
86352            length() and attributeItem(index), use those to iterate directly over the attributes.
86353
86354        (WebCore::Element::createMutableAttributeData):
86355
86356            Added, converts existing ElementAttributeData to a mutable object. Otherwise creates a new
86357            ElementAttributeData (mutable and empty.)
86358
86359        * dom/Element.h:
86360        (WebCore::Element::attributeData):
86361        (WebCore::Element::updatedAttributeData):
86362        (WebCore::Element::ensureAttributeData):
86363        (WebCore::Element::ensureUpdatedAttributeData):
86364
86365            Made all of these return "const ElementAttributeData*" to ensure at compile-time that nothing
86366            attempts to modify an ElementAttributeData that may be immutable.
86367
86368            ensureUpdatedAttributeData() is still const, despite possibly calling mutableAttributeData().
86369            The goal of having methods be const is to prevent conversion from one ElementAttributeData
86370            object to another, so that pointers remain intact and no unnecessary work gets done.
86371
86372        (WebCore::Element::mutableAttributeData):
86373
86374            Added, returns a guaranteed mutable ElementAttributeData* pointer.
86375
86376        * dom/ElementAttributeData.cpp:
86377        (WebCore::ElementAttributeData::createImmutable):
86378
86379            Creates a new ElementAttributeData tailored to fit the provided Vector<Attribute>.
86380
86381        (WebCore::ElementAttributeData::ElementAttributeData):
86382
86383            Moved constructors out-of-line, getting too complex for header files.
86384
86385            ElementAttributeData(const Vector<Attribute>&) creates an immutable ElementAttributeData
86386            containing the provided attributes in an array tacked onto the end of the object.
86387
86388        (WebCore::ElementAttributeData::~ElementAttributeData):
86389
86390            Free the attribute vector if mutable.
86391            For immutable objects, manually invoke destructor on each Attribute object,
86392            since these won't be destroyed automatically by ~ElementAttributeData.
86393
86394        (WebCore::ElementAttributeData::attrIfExists):
86395
86396        (WebCore::ElementAttributeData::ensureAttr):
86397        (WebCore::ElementAttributeData::setAttr):
86398        (WebCore::ElementAttributeData::removeAttr):
86399
86400            Make these const, as they should always have been- they don't affect the ElementAttributeData,
86401            only the global DOM Attr <-> ElementAttributeData mappings.
86402
86403        (WebCore::ElementAttributeData::ensureInlineStyle):
86404        (WebCore::ElementAttributeData::ensureMutableInlineStyle):
86405
86406            Sprinkle ASSERT(isMutable()). This doesn't mean that all Elements with inline styles automatically
86407            have mutable attribute data. There's still inlineStyle() for that, which may return null.
86408            These are only for use where you need a valid StylePropertySet*, even if there is no inline style
86409            attribute, e.g in editing code that wants to add style.
86410
86411        (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
86412        (WebCore::ElementAttributeData::destroyInlineStyle):
86413
86414            Make these const. While destroyInlineStyle() doesn't sound very const-y, immutable objects that
86415            contain a style attribute will have a valid inlineStyle() with that style data. This is just
86416            an interface for ~StyledElement to destroy the style object.
86417            It'd be nice to do that in ~ElementAttributeData(), but we need a StyledElement* pointer to
86418            clean up properly and we don't store one in this class.
86419
86420        (WebCore::ElementAttributeData::addAttribute):
86421        (WebCore::ElementAttributeData::removeAttribute):
86422        (WebCore::ElementAttributeData::clearAttributes):
86423        (WebCore::ElementAttributeData::replaceAttribute):
86424
86425            Sprinkle ASSERT(isMutable()).
86426            Always go straight for m_mutableAttributeVector since we know that's the storage being used.
86427
86428        (WebCore::ElementAttributeData::isEquivalent):
86429        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
86430        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
86431        (WebCore::ElementAttributeData::removeAttribute):
86432        (WebCore::ElementAttributeData::getAttributeItem):
86433        (WebCore::ElementAttributeData::getAttributeItemIndex):
86434
86435            Use length() and attributeItem(index) to iterate over the attributes.
86436
86437        (WebCore::ElementAttributeData::cloneDataFrom):
86438
86439            Sprinkle ASSERT(isMutable()). Added a FIXME that cloning elements could create immutable
86440            attribute data. I'm not sure this optimization is worthwhile, as cloning elements is already
86441            a semi-rare occurrence.
86442
86443            Updated code to handle both immutable and mutable source objects. This could 
86444
86445        (WebCore::ElementAttributeData::getAttributeNode):
86446
86447            Const correctness.
86448
86449        * dom/ElementAttributeData.h:
86450        (ElementAttributeData):
86451
86452            Turn attribute storage into what's effectively union { OwnPtr<Vector<Attribute>>; Attribute[]; }
86453            The new m_isMutable bit determines which union member should be used for access.
86454
86455        (WebCore::ElementAttributeData::create):
86456        (WebCore::ElementAttributeData::createImmutable):
86457
86458            Added createImmutable(const Vector<Attribute>&) as a complement to create().
86459
86460        (WebCore::ElementAttributeData::setClass):
86461        (WebCore::ElementAttributeData::setIdForStyleResolution):
86462        (WebCore::ElementAttributeData::inlineStyle):
86463        (WebCore::ElementAttributeData::setAttributeStyle):
86464
86465            Make these const, and their data member counterparts 'mutable'.
86466            An immutable ElementAttributeData object still has m_classNames, m_idForStyleResolution,
86467            m_inlineStyleDecl and m_attributeStyle.
86468
86469        (WebCore::ElementAttributeData::reportMemoryUsage):
86470
86471            Updated for isMutable().
86472
86473        (WebCore::ElementAttributeData::makeMutable):
86474
86475            Returns a mutable clone of itself.
86476
86477        (WebCore::ElementAttributeData::isEmpty):
86478        (WebCore::ElementAttributeData::length):
86479        (WebCore::ElementAttributeData::attributeItem):
86480
86481            Check isMutable() to know how to access attribute storage.
86482
86483        * dom/StyledElement.cpp:
86484        (WebCore::StyledElement::style):
86485        (WebCore::StyledElement::setInlineStyleProperty):
86486
86487            Simplify by using StyledElement::ensureInlineStyle().
86488
86489        (WebCore::StyledElement::classAttributeChanged):
86490
86491            Use mutableAttributeData() if the attribute is being removed completely.
86492            In other cases, tiptoe around without causing the attribute data to go mutable.
86493
86494        (WebCore::StyledElement::removeInlineStyleProperty):
86495
86496            Use mutableAttributeData() if/when actually removing something.
86497
86498        (WebCore::StyledElement::addSubresourceAttributeURLs):
86499
86500            Const correctness.
86501
86502        * dom/StyledElement.h:
86503        (WebCore::StyledElement::ensureInlineStyle):
86504
86505            This now implies conversion to mutable attribute data. Used by codepaths that add/remove
86506            properties, so conversion is inevitable.
86507
86508        * html/parser/HTMLConstructionSite.cpp:
86509        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
86510        (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
86511        * svg/properties/SVGAnimatedPropertyMacros.h:
86512        (WebCore::SVGSynchronizableAnimatedProperty::synchronize):
86513
86514            Use mutableAttributeData() as appropriate.
86515
86516        * xml/parser/XMLDocumentParserQt.cpp:
86517        (WebCore::XMLDocumentParser::XMLDocumentParser):
86518
86519            Const correctness.
86520
865212012-07-25  Andrew Wilson  <atwilson@chromium.org>
86522
86523        Unreviewed, rolling out r123560.
86524        http://trac.webkit.org/changeset/123560
86525        https://bugs.webkit.org/show_bug.cgi?id=90321
86526
86527        Breaks chromium valgrind tests.
86528
86529        * html/FTPDirectoryDocument.cpp:
86530        (WebCore::FTPDirectoryDocumentParser::append):
86531        * html/parser/HTMLEntityParser.cpp:
86532        (WebCore::HTMLEntityParser::consumeNamedEntity):
86533        * html/parser/HTMLParserIdioms.cpp:
86534        (WebCore::stripLeadingAndTrailingHTMLSpaces):
86535        * html/parser/HTMLSourceTracker.cpp:
86536        (WebCore::HTMLSourceTracker::sourceForToken):
86537        * loader/cache/CachedScript.cpp:
86538        (WebCore::CachedScript::script):
86539        * platform/text/SegmentedString.cpp:
86540        (WebCore::SegmentedString::SegmentedString):
86541        (WebCore::SegmentedString::operator=):
86542        (WebCore::SegmentedString::clear):
86543        (WebCore::SegmentedString::append):
86544        (WebCore::SegmentedString::prepend):
86545        (WebCore::SegmentedString::advanceSubstring):
86546        (WebCore::SegmentedString::advance):
86547        (WebCore::SegmentedString::advanceSlowCase):
86548        (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase):
86549        * platform/text/SegmentedString.h:
86550        (WebCore::SegmentedSubstring::SegmentedSubstring):
86551        (WebCore::SegmentedSubstring::clear):
86552        (WebCore::SegmentedSubstring::appendTo):
86553        (SegmentedSubstring):
86554        (WebCore::SegmentedString::SegmentedString):
86555        (WebCore::SegmentedString::push):
86556        (WebCore::SegmentedString::isEmpty):
86557        (WebCore::SegmentedString::lookAhead):
86558        (WebCore::SegmentedString::lookAheadIgnoringCase):
86559        (WebCore::SegmentedString::advance):
86560        (WebCore::SegmentedString::advanceAndASSERT):
86561        (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
86562        (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
86563        (SegmentedString):
86564        (WebCore::SegmentedString::advancePastNonNewline):
86565        (WebCore::SegmentedString::advanceAndUpdateLineNumber):
86566        (WebCore::SegmentedString::operator*):
86567        (WebCore::SegmentedString::operator->):
86568        (WebCore::SegmentedString::current):
86569        (WebCore::SegmentedString::equalsLiterally):
86570        (WebCore::SegmentedString::equalsIgnoringCase):
86571        (WebCore::SegmentedString::lookAheadInline):
86572        (WebCore::SegmentedString::lookAheadSlowCase):
86573        * xml/parser/CharacterReferenceParserInlineMethods.h:
86574        (WebCore::consumeCharacterReference):
86575        * xml/parser/MarkupTokenizerBase.h:
86576        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
86577        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek):
86578        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
86579
865802012-07-25  Konrad Piascik  <kpiascik@rim.com>
86581
86582        Web Inspector: Geolocation override
86583        https://bugs.webkit.org/show_bug.cgi?id=89365
86584
86585        Reviewed by Pavel Feldman.
86586
86587        Re-added the m_page member variable for GeolocationController since
86588        it's now being used by InspectorInstrumentaiton.
86589
86590        Added a way to override the GeolocationPosition and GeolocationError
86591        using Web Inspector. Curretnly only PositionError can be set.
86592
86593        This will be hidden behind the experiments flag for now.
86594
86595        Tests: inspector/geolocation-error.html
86596               inspector/geolocation-success.html
86597               inspector/geolocation-watchPosition.html
86598
86599        * English.lproj/localizedStrings.js:
86600        * Modules/geolocation/GeolocationController.cpp:
86601        (WebCore::GeolocationController::GeolocationController):
86602        (WebCore::GeolocationController::positionChanged):
86603        * Modules/geolocation/GeolocationController.h:
86604        (GeolocationController):
86605        * inspector/Inspector.json:
86606        * inspector/InspectorInstrumentation.cpp:
86607        (WebCore):
86608        (WebCore::InspectorInstrumentation::overrideGeolocationPositionImpl):
86609        * inspector/InspectorInstrumentation.h:
86610        (WebCore):
86611        (InspectorInstrumentation):
86612        (WebCore::InspectorInstrumentation::overrideGeolocationPosition):
86613        * inspector/InspectorPageAgent.cpp:
86614        (WebCore::InspectorPageAgent::InspectorPageAgent):
86615        (WebCore::InspectorPageAgent::setGeolocationOverride):
86616        (WebCore):
86617        (WebCore::InspectorPageAgent::clearGeolocationOverride):
86618        (WebCore::InspectorPageAgent::canOverrideGeolocation):
86619        (WebCore::InspectorPageAgent::overrideGeolocationPosition):
86620        * inspector/InspectorPageAgent.h:
86621        * inspector/front-end/Settings.js:
86622        * inspector/front-end/SettingsScreen.js:
86623        (WebInspector.UserAgentSettingsTab):
86624        (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
86625        (WebInspector.UserAgentSettingsTab.prototype._onGeolocationOverrideCheckboxClicked):
86626        (WebInspector.UserAgentSettingsTab.prototype._applyGeolocationUserInput):
86627        (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition.set if):
86628        (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition):
86629        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement.createInput):
86630        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
86631        * inspector/front-end/UserAgentSupport.js:
86632        (WebInspector.UserAgentSupport.GeolocationPosition):
86633        (WebInspector.UserAgentSupport.GeolocationPosition.prototype.toSetting):
86634        (WebInspector.UserAgentSupport.GeolocationPosition.parseSetting):
86635        (WebInspector.UserAgentSupport.GeolocationPosition.parseUserInput):
86636        (WebInspector.UserAgentSupport.GeolocationPosition.clearGeolocationOverride):
86637        * inspector/front-end/inspector.js:
86638        (WebInspector.doLoadedDone):
86639
866402012-07-25  Shawn Singh  <shawnsingh@chromium.org>
86641
86642        [chromium] Build fix for clang builds after r123628
86643        https://bugs.webkit.org/show_bug.cgi?id=92266
86644
86645        Reviewed by Adrienne Walker.
86646
86647        An un-used variable was causing build failures for clang builds
86648        after the refactoring in r123628.  It is correct to simply remove
86649        this value.
86650
86651        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
86652        (WebCore::calculateDrawTransformsInternal):
86653
866542012-07-25  Hans Wennborg  <hans@chromium.org>
86655
86656        Speech JavaScript API: extract function from SpeechRecognitionResult::emma()
86657        https://bugs.webkit.org/show_bug.cgi?id=92232
86658
86659        Reviewed by Adam Barth.
86660
86661        Extract code for creating emma-qualified names to a helper function.
86662
86663        Just a refactoring; covered by the existing test.
86664
86665        * Modules/speech/SpeechRecognitionResult.cpp:
86666        (WebCore::emmaQualifiedName):
86667        (WebCore):
86668        (WebCore::SpeechRecognitionResult::emma):
86669
866702012-07-25  Adrienne Walker  <enne@google.com>
86671
86672        [chromium] Unify compositor quadTransform/drawTransform/originTransform
86673        https://bugs.webkit.org/show_bug.cgi?id=91417
86674
86675        Reviewed by Kenneth Russell.
86676
86677        drawTransform used to operate on centered layer rects. To unify quad
86678        transforms, draw transforms, and origin transforms, make draw
86679        transforms operate on content rects with the origin in the top left.
86680
86681        This essentially eliminates the need for surface origin transforms,
86682        which will be eliminated in a future patch.
86683
86684        Also, remove the unused CCLayerImpl::getDrawRect function.
86685
86686        No-op refactoring. Tested by existing tests.
86687
86688        * platform/graphics/chromium/LayerRendererChromium.cpp:
86689        (WebCore::LayerRendererChromium::drawRenderPassQuad):
86690        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
86691        (WebCore::RenderSurfaceChromium::drawableContentRect):
86692        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
86693        (WebCore::CCDamageTracker::extendDamageForLayer):
86694        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
86695        (WebCore::CCLayerImpl::createSharedQuadState):
86696        * platform/graphics/chromium/cc/CCLayerImpl.h:
86697        (CCLayerImpl):
86698        * platform/graphics/chromium/cc/CCLayerSorter.cpp:
86699        (WebCore::CCLayerSorter::LayerShape::LayerShape):
86700        (WebCore::CCLayerSorter::createGraphNodes):
86701        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
86702        (WebCore::calculateVisibleContentRect):
86703        (WebCore::calculateDrawTransformsInternal):
86704        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
86705        (WebCore::::markOccludedBehindLayer):
86706        (WebCore::::occluded):
86707        (WebCore::::unoccludedContentRect):
86708        * platform/graphics/chromium/cc/CCRenderPass.cpp:
86709        (WebCore::CCRenderPass::appendQuadsToFillScreen):
86710        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
86711        (WebCore::CCRenderSurface::drawableContentRect):
86712
867132012-07-25  Tommy Widenflycht  <tommyw@google.com>
86714
86715        MediaStream API: Update MediaStreamTrack to match the specification
86716        https://bugs.webkit.org/show_bug.cgi?id=90180
86717
86718        Reviewed by Adam Barth.
86719
86720        MediaStreamTracks are now required to show the status of the underlying source,
86721        and trigger events when that status changes.
86722
86723        Test: fast/mediastream/MediaStreamTrack.html
86724
86725        * GNUmakefile.list.am:
86726        * Modules/mediastream/MediaStream.cpp:
86727        (WebCore::MediaStream::MediaStream):
86728        (WebCore::MediaStream::addTrack):
86729        * Modules/mediastream/MediaStreamTrack.cpp:
86730        (WebCore::MediaStreamTrack::create):
86731        (WebCore::MediaStreamTrack::MediaStreamTrack):
86732        (WebCore::MediaStreamTrack::~MediaStreamTrack):
86733        (WebCore::MediaStreamTrack::setEnabled):
86734        (WebCore::MediaStreamTrack::readyState):
86735        (WebCore):
86736        (WebCore::MediaStreamTrack::sourceChangedState):
86737        (WebCore::MediaStreamTrack::stop):
86738        (WebCore::MediaStreamTrack::interfaceName):
86739        (WebCore::MediaStreamTrack::scriptExecutionContext):
86740        (WebCore::MediaStreamTrack::eventTargetData):
86741        (WebCore::MediaStreamTrack::ensureEventTargetData):
86742        * Modules/mediastream/MediaStreamTrack.h:
86743        * Modules/mediastream/MediaStreamTrack.idl:
86744        * WebCore.gypi:
86745        * dom/EventNames.h:
86746        (WebCore):
86747        * dom/EventTargetFactory.in:
86748        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
86749        * platform/chromium/support/WebMediaStreamSource.cpp:
86750        (WebKit::WebMediaStreamSource::setReadyState):
86751        (WebKit):
86752        (WebKit::WebMediaStreamSource::readyState):
86753        * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
86754        (WebCore):
86755        (WebCore::MediaStreamSource::create):
86756        (WebCore::MediaStreamSource::MediaStreamSource):
86757        (WebCore::MediaStreamSource::setReadyState):
86758        (WebCore::MediaStreamSource::addObserver):
86759        (WebCore::MediaStreamSource::removeObserver):
86760        * platform/mediastream/MediaStreamSource.h:
86761        (Observer):
86762        (WebCore::MediaStreamSource::Observer::~Observer):
86763        (MediaStreamSource):
86764        (WebCore::MediaStreamSource::readyState):
86765        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
86766        (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
86767        (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
86768
867692012-07-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
86770
86771        Incorrect rounding in ceiledLayoutUnit and roundedLayoutUnit.
86772        https://bugs.webkit.org/show_bug.cgi?id=91061
86773
86774        Reviewed by Adam Barth.
86775
86776        The two functions are currently both returning the flooredLayoutUnit when subpixel
86777        layout is enabled. This patch changes them to return the correct fractional rounded
86778        value.
86779
86780        * platform/FractionalLayoutUnit.h:
86781        (WebCore::FractionalLayoutUnit::fromFloatCeil):
86782        (FractionalLayoutUnit):
86783        (WebCore::FractionalLayoutUnit::fromFloatRound):
86784        * rendering/LayoutTypes.h:
86785        (WebCore::roundedLayoutUnit):
86786        (WebCore::ceiledLayoutUnit):
86787        * rendering/RenderBlock.cpp:
86788        (WebCore::updatePreferredWidth):
86789
867902012-07-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
86791
86792        Add *explicit* keyword to constructors in WebCore/platform
86793        https://bugs.webkit.org/show_bug.cgi?id=92238
86794
86795        Reviewed by Kentaro Hara.
86796
86797        As a step to let *explicit* keyword add to constructors which have a parameter,
86798        *explicit* keyword is added to Source/WebCore/platform in order to avoid implicit
86799        type conversion.
86800
86801        Some files in platform directory can't use explicit keyword because of build breaks.
86802
86803        No new tests. Covered by existing tests.
86804
86805        * platform/AutodrainedPool.h:
86806        (AutodrainedPool):
86807        * platform/ContentType.h:
86808        (ContentType):
86809        * platform/ContextMenu.h:
86810        (ContextMenu):
86811        * platform/ContextMenuItem.h:
86812        (ContextMenuItem):
86813        * platform/Cursor.h:
86814        (WebCore::SharedCursor::SharedCursor):
86815        (Cursor):
86816        * platform/KURL.h:
86817        (WebCore::KURL::KURL):
86818        (KURL):
86819        * platform/KURLGooglePrivate.h:
86820        (KURLGooglePrivate):
86821        * platform/PODRedBlackTree.h:
86822        (WebCore::PODRedBlackTree::PODRedBlackTree):
86823        * platform/Pasteboard.h:
86824        (Pasteboard):
86825        * platform/PlatformEvent.h:
86826        (WebCore::PlatformEvent::PlatformEvent):
86827        * platform/PlatformKeyboardEvent.h:
86828        (PlatformKeyboardEvent):
86829        * platform/PlatformMouseEvent.h:
86830        (PlatformMouseEvent):
86831        * platform/PlatformPasteboard.h:
86832        (PlatformPasteboard):
86833        * platform/PlatformTouchEvent.h:
86834        (PlatformTouchEvent):
86835        * platform/PlatformWheelEvent.h:
86836        (PlatformWheelEvent):
86837        * platform/RunLoop.h:
86838        (TimerBase):
86839        * platform/ScrollAnimator.h:
86840        (ScrollAnimator):
86841        * platform/ScrollAnimatorNone.h:
86842        (ScrollAnimatorNone):
86843        * platform/SharedBuffer.h:
86844        (SharedBuffer):
86845        * platform/WheelFlingPlatformGestureCurve.h:
86846        (WheelFlingPlatformGestureCurve):
86847        * platform/Widget.h:
86848        (Widget):
86849
868502012-07-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
86851
86852        NodesFromRect and area-based hit-testing can not handle CSS transforms.
86853        https://bugs.webkit.org/show_bug.cgi?id=85792
86854
86855        Reviewed by Eric Seidel.
86856
86857        To support the combination of CSS transforms and rect based hit testing,
86858        we need to test against the transformed rect, instead of the original rect.
86859
86860        This patch makes HitTestPoint store the exact transformed FloatPoint and 
86861        FloatQuad, and modifies the intersection methods so that they will use a 
86862        new FloatQuad based intersection when transforms requires it.
86863
86864        Tests: fast/dom/nodesFromRect/nodesFromRect-rotate.html
86865               fast/dom/nodesFromRect/nodesFromRect-scale.html
86866
86867        * platform/graphics/FloatQuad.cpp:
86868        (WebCore::determinant):
86869        (WebCore::rightMostCornerToVector):
86870        (WebCore::FloatQuad::intersectsRect):
86871        (WebCore::FloatQuad::isCounterclockwise):
86872        * platform/graphics/FloatQuad.h:
86873        (FloatQuad):
86874        * rendering/HitTestResult.cpp:
86875        (WebCore::HitTestPoint::HitTestPoint):
86876        (WebCore::HitTestPoint::operator=):
86877        (WebCore::HitTestPoint::move):
86878        (WebCore::HitTestPoint::intersectsRect):
86879        (WebCore::HitTestPoint::intersects):
86880        * rendering/HitTestResult.h:
86881        (HitTestPoint):
86882        (WebCore::HitTestPoint::isRectilinear):
86883        (WebCore::HitTestPoint::transformedPoint):
86884        (WebCore::HitTestPoint::transformedRect):
86885        * rendering/HitTestingTransformState.cpp:
86886        (WebCore::HitTestingTransformState::flattenWithTransform):
86887        (WebCore::HitTestingTransformState::mappedArea):
86888        (WebCore::HitTestingTransformState::boundsOfMappedArea):
86889        * rendering/HitTestingTransformState.h:
86890        (WebCore::HitTestingTransformState::create):
86891        (WebCore::HitTestingTransformState::HitTestingTransformState):
86892        * rendering/RenderFlowThread.cpp:
86893        (WebCore::RenderFlowThread::hitTestRegion):
86894        * rendering/RenderLayer.cpp:
86895        (WebCore::RenderLayer::hitTest):
86896        (WebCore::RenderLayer::createLocalTransformState):
86897        (WebCore::RenderLayer::hitTestLayer):
86898        (WebCore::RenderLayer::hitTestChildLayerColumns):
86899        * rendering/RenderLayer.h:
86900        * rendering/svg/RenderSVGText.cpp:
86901        (WebCore::RenderSVGText::nodeAtFloatPoint):
86902
869032012-07-25  Kwang Yul Seo  <skyul@company100.net>
86904
86905        Add HTMLStackItem.h to project files
86906        https://bugs.webkit.org/show_bug.cgi?id=92221
86907
86908        Reviewed by Adam Barth.
86909
86910        Added HTMLStackItem.h introduced in r123399 to project files.
86911
86912        Project file changes only, no change in behavior thus no new tests.
86913
86914        * GNUmakefile.list.am:
86915        * WebCore.gypi:
86916        * WebCore.vcproj/WebCore.vcproj:
86917        * WebCore.xcodeproj/project.pbxproj:
86918
869192012-07-25  Sheriff Bot  <webkit.review.bot@gmail.com>
86920
86921        Unreviewed, rolling out r123606.
86922        http://trac.webkit.org/changeset/123606
86923        https://bugs.webkit.org/show_bug.cgi?id=92247
86924
86925        broke Windows build of Chromium (Requested by tomhudson on
86926        #webkit).
86927
86928        * Resources/colorSuggestionPicker.css: Removed.
86929        * Resources/colorSuggestionPicker.js: Removed.
86930        * WebCore.gyp/WebCore.gyp:
86931
869322012-07-25  Pavel Feldman  <pfeldman@chromium.org>
86933
86934        Web Inspector: disabling property should remove "overriden" decoration from overriden UA shorthand.
86935        https://bugs.webkit.org/show_bug.cgi?id=92253
86936
86937        Reviewed by Vsevolod Vlasov.
86938
86939        Bug fix with a test and more compilation markup.
86940
86941        Test: inspector/styles/styles-disable-then-enable-overriden-ua.html
86942
86943        * inspector/front-end/StylesSidebarPane.js:
86944        (WebInspector.StylePropertiesSection.prototype.update):
86945        (WebInspector.StylePropertyTreeElement):
86946        (WebInspector.StylePropertyTreeElement.prototype):
86947
869482012-07-25  Vsevolod Vlasov  <vsevik@chromium.org>
86949
86950        Web Inspector: Improve ObjectPropertiesSection UI by adding a tooltip for the value.
86951        https://bugs.webkit.org/show_bug.cgi?id=92225
86952
86953        Reviewed by Pavel Feldman.
86954
86955        Added tooltip with property value description on the property's valueElement.
86956
86957        * inspector/front-end/ObjectPropertiesSection.js:
86958        (WebInspector.ObjectPropertyTreeElement.prototype.update):
86959
869602012-07-25  Pavel Feldman  <pfeldman@chromium.org>
86961
86962        https://bugs.webkit.org/show_bug.cgi?id=91931
86963
86964        Reviewed by Vsevolod Vlasov.
86965
86966        - Synthetic shorthand values are now only returned for source-less styles
86967        - CSSAgents reports longhands along with the property names in getSupportedCSSProperties
86968        - StylesSidebarPane now has two paths: for source-enabled styles and for CSSOM-based ones (UA styles)
86969        - CSSStyleModel uses style metainfo as a source of shorthand / longhand relationship now
86970
86971        Test: inspector/styles/styles-overriden-properties.html
86972
86973        * inspector/Inspector.json:
86974        * inspector/InspectorCSSAgent.cpp:
86975        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
86976        * inspector/InspectorCSSAgent.h:
86977        (InspectorCSSAgent):
86978        * inspector/InspectorStyleSheet.cpp:
86979        (WebCore::InspectorStyle::styleWithProperties):
86980        * inspector/front-end/CSSCompletions.js:
86981        (WebInspector.CSSCompletions):
86982        (WebInspector.CSSCompletions.requestCSSNameCompletions):
86983        (WebInspector.CSSCompletions.prototype._closest):
86984        (WebInspector.CSSCompletions.prototype.longhands):
86985        (WebInspector.CSSCompletions.prototype.shorthands):
86986        * inspector/front-end/CSSStyleModel.js:
86987        (WebInspector.CSSStyleDeclaration):
86988        (WebInspector.CSSStyleDeclaration.prototype.longhandProperties):
86989        (WebInspector.CSSStyleDeclaration.prototype.shorthandValue):
86990        (WebInspector.CSSStyleDeclaration.prototype.newBlankProperty):
86991        (WebInspector.CSSProperty):
86992        (WebInspector.CSSProperty.parsePayload):
86993        * inspector/front-end/SourceCSSTokenizer.js:
86994        (WebInspector.SourceCSSTokenizer):
86995        * inspector/front-end/SourceCSSTokenizer.re2js:
86996        * inspector/front-end/StylesSidebarPane.js:
86997        (WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
86998        (WebInspector.StylePropertiesSection.prototype.update):
86999        (WebInspector.StylePropertiesSection.prototype.onpopulate):
87000        (WebInspector.StylePropertyTreeElement.prototype):
87001
870022012-07-25  Keishi Hattori  <keishi@webkit.org>
87003
87004        Implement ColorSuggestionPicker page popup
87005        https://bugs.webkit.org/show_bug.cgi?id=92109
87006
87007        Reviewed by Kent Tamura.
87008
87009        Implements ColorSuggestionPicker page popup. This will be used in
87010        certain ports as the datalist UI for <input type=color>.
87011
87012        No new tests because there is no way to open the popup yet.
87013
87014        * Resources/colorSuggestionPicker.css: Added.
87015        (body):
87016        (#main):
87017        (.color-swatch):
87018        (.color-swatch:hover):
87019        (.color-swatch-container):
87020        (.other-color):
87021        * Resources/colorSuggestionPicker.js: Added.
87022        (getScrollbarWidth):When there are more than 20 colors we need to
87023        increase the window width to accommodate the scroll bar.
87024        (createElement):
87025        (handleMessage):
87026        (initialize):
87027        (handleArgumentsTimeout):
87028        (validateArguments):
87029        (submitValue): Calls setValueAndClosePopup with a numValue of 0.
87030        (handleCancel): Calls setValueAndClosePopup with a numValue of -1.
87031        (chooseOtherColor): Calls setValueAndClosePopup with a numValue of -2.
87032        (ColorPicker):
87033        (ColorPicker.prototype._layout): Lays out the color swatches in a 5x4
87034        grid.
87035        (ColorPicker.prototype._handleSwatchClick):
87036        * WebCore.gyp/WebCore.gyp:
87037
870382012-07-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
87039
87040        Fix arithmetic composite filter for auto-vectorization
87041        https://bugs.webkit.org/show_bug.cgi?id=92123
87042
87043        Reviewed by Nikolas Zimmermann.
87044
87045        Since only clamping of the result prevents GCC from auto-vectorizing the inner loop, this patch 
87046        adds a faster version of the inner loop to handle cases where clamping is unnecessary, 
87047
87048        * platform/graphics/filters/FEComposite.cpp:
87049        (WebCore::computeArithmeticPixelsUnclamped):
87050        (WebCore::arithmeticSoftware):
87051
870522012-07-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
87053
87054        Fix blend filter for autovectorizing
87055        https://bugs.webkit.org/show_bug.cgi?id=91398
87056
87057        Reviewed by Nikolas Zimmermann.
87058
87059        Get rid of wrapper classes, and use functions directly as template argument.
87060
87061        * platform/graphics/filters/FEBlend.cpp:
87062        (WebCore::feBlendNormal):
87063        (WebCore::feBlendMultiply):
87064        (WebCore::feBlendScreen):
87065        (WebCore::feBlendDarken):
87066        (WebCore::feBlendLighten):
87067        (WebCore::feBlendUnknown):
87068        (WebCore::platformApply):
87069        (WebCore::FEBlend::platformApplyGeneric):
87070
870712012-07-25  Keishi Hattori  <keishi@webkit.org>
87072
87073        Add methods to ColorChooserClient so the color chooser can show suggestions
87074        https://bugs.webkit.org/show_bug.cgi?id=92114
87075
87076        Reviewed by Kent Tamura.
87077
87078        Added methods to ColorChooserClient so the color chooser can ask the
87079        client for suggestions and current color.
87080
87081        No new tests. The methods are not used yet.
87082
87083        * html/ColorInputType.cpp:
87084        (WebCore::ColorInputType::currentColor): Returns what color the color
87085        chooser should display.
87086        (WebCore):
87087        (WebCore::ColorInputType::shouldShowSuggestions): Returns if the UI for
87088        suggestions should be shown.
87089        (WebCore::ColorInputType::suggestions): Returns a list of colors to be
87090        suggested to the user.
87091        * html/ColorInputType.h:
87092        (ColorInputType):
87093        * html/HTMLInputElement.h:
87094        (HTMLInputElement): Made dataList() public.
87095        * platform/ColorChooserClient.h:
87096        (ColorChooserClient):
87097
870982012-07-25  Kentaro Hara  <haraken@chromium.org>
87099
87100        Replace int with long in test IDL files
87101        https://bugs.webkit.org/show_bug.cgi?id=92181
87102
87103        Reviewed by Adam Barth.
87104
87105        int is not a valid type in WebIDL. It should be long.
87106        We should replace int with long in bindings/scripts/test/*.idl.
87107        This is a follow-up patch for r123550.
87108
87109        Test: bindings/scripts/test/TestObj.idl
87110
87111        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
87112        (WebDOMTestObj::readOnlyLongAttr):
87113        (WebDOMTestObj::Attr):
87114        (WebDOMTestObj::setAttr):
87115        (WebDOMTestObj::voidMethodWithArgs):
87116        (WebDOMTestObj::Method):
87117        (WebDOMTestObj::MethodWithArgs):
87118        (WebDOMTestObj::objMethodWithArgs):
87119        * bindings/scripts/test/CPP/WebDOMTestObj.h:
87120        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
87121        (webkit_dom_test_obj_set_property):
87122        (webkit_dom_test_obj_get_property):
87123        (webkit_dom_test_obj_class_init):
87124        (webkit_dom_test_obj_void_method_with_args):
87125        (webkit_dom_test_obj_method):
87126        (webkit_dom_test_obj_method_with_args):
87127        (webkit_dom_test_obj_obj_method_with_args):
87128        (webkit_dom_test_obj_get_read_only_long_attr):
87129        (webkit_dom_test_obj_get_attr):
87130        (webkit_dom_test_obj_set_attr):
87131        (webkit_dom_test_obj_get_strawberry):
87132        (webkit_dom_test_obj_set_strawberry):
87133        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
87134        * bindings/scripts/test/JS/JSTestObj.cpp:
87135        (WebCore):
87136        (WebCore::jsTestObjReadOnlyLongAttr):
87137        (WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
87138        (WebCore::jsTestObjAttr):
87139        (WebCore::setJSTestObjAttr):
87140        (WebCore::setJSTestObjStrawberry):
87141        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
87142        (WebCore::jsTestObjPrototypeFunctionMethod):
87143        (WebCore::jsTestObjPrototypeFunctionMethodWithArgs):
87144        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
87145        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
87146        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
87147        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
87148        * bindings/scripts/test/JS/JSTestObj.h:
87149        (WebCore):
87150        * bindings/scripts/test/ObjC/DOMTestObj.h:
87151        * bindings/scripts/test/ObjC/DOMTestObj.mm:
87152        (-[DOMTestObj readOnlyLongAttr]):
87153        (-[DOMTestObj Attr]):
87154        (-[DOMTestObj setAttr:]):
87155        (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
87156        (-[DOMTestObj Method]):
87157        (-[DOMTestObj MethodWithArgs:strArg:objArg:]):
87158        (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
87159        (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
87160        * bindings/scripts/test/TestObj.idl:
87161        * bindings/scripts/test/V8/V8TestObj.cpp:
87162        (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetter):
87163        (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetter):
87164        (WebCore::TestObjV8Internal::AttrAttrGetter):
87165        (WebCore::TestObjV8Internal::AttrAttrSetter):
87166        (WebCore::TestObjV8Internal::strawberryAttrSetter):
87167        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
87168        (WebCore::TestObjV8Internal::MethodCallback):
87169        (WebCore::TestObjV8Internal::MethodWithArgsCallback):
87170        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
87171        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
87172        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
87173        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
87174        (WebCore):
87175        (WebCore::ConfigureV8TestObjTemplate):
87176
871772012-07-25  Shinya Kawanaka  <shinyak@chromium.org>
87178
87179        A validation bubble should not be modifiable.
87180        https://bugs.webkit.org/show_bug.cgi?id=92217
87181
87182        Reviewed by Kent Tamura.
87183
87184        A user can set -webkit-user-modify: read-write to validation message elements.
87185        This might cause a undesired crash like Bug 65738. They should be unmodifiable.
87186
87187        Test: fast/forms/validation-user-modify.html
87188
87189        * css/html.css:
87190        Added -webkit-user-modify: read-only !important; for these elements so that they won't be
87191        changed by a user.
87192        (::-webkit-validation-bubble):
87193        (::-webkit-validation-bubble-message):
87194        (::-webkit-validation-bubble-text-block):
87195        (::-webkit-validation-bubble-heading):
87196        (::-webkit-validation-bubble-arrow):
87197        (::-webkit-validation-bubble-arrow-clipper):
87198
871992012-07-25  Zeno Albisser  <zeno@webkit.org>
87200
87201        [Qt][WK2] Disable CopyToTexture for GraphicsSurfaceMac.
87202        https://bugs.webkit.org/show_bug.cgi?id=92159
87203
87204        Disable CopyToTexture feature for GraphicsSurface on Mac.
87205        While this is actually working, it is currently used for Tiles
87206        that are single buffered, and therefore requires a call to glFlush.
87207        This call blocks the GPU for about 40ms which would make smooth animations impossible.
87208
87209        Reviewed by Noam Rosenthal.
87210
87211        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
87212        (WebCore::GraphicsSurface::platformCreate):
87213        (WebCore::GraphicsSurface::platformImport):
87214
872152012-07-25  Kenichi Ishibashi  <bashi@chromium.org>
87216
87217        [Chromium] Fix up includes in HarfBuzzNGFace.h
87218        https://bugs.webkit.org/show_bug.cgi?id=92127
87219
87220        Reviewed by Hajime Morita.
87221
87222        Move constructors of FontPlatformData from headers to corresponding cpp files
87223        so that we can use forward declaration for HarfBuzzNGFace instead of including HarfBuzzNGFace.h.
87224        This way we can include hb.h in HarfBuzzNGFace.h.
87225
87226        No new tests. No changes in behavior.
87227
87228        * platform/graphics/FontPlatformData.cpp:
87229        (WebCore::FontPlatformData::FontPlatformData): Moved from header file.
87230        (WebCore):
87231        * platform/graphics/FontPlatformData.h:
87232        (WebCore):
87233        (FontPlatformData): Moved to cpp file.
87234        * platform/graphics/cocoa/FontPlatformDataCocoa.mm: Include HarfBuzzNGFace.h
87235        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
87236        (WebCore::FontPlatformData::FontPlatformData): Moved from header file.
87237        (WebCore):
87238        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
87239        (WebCore):
87240        (FontPlatformData): Moved to cpp file.
87241        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h: Include hb.h.
87242
872432012-07-24  Benjamin Poulain  <bpoulain@apple.com> && Joseph Pecoraro  <pecoraro@apple.com>
87244
87245        QualifiedName's HashSet should be big enough to hold at least all the static names
87246        https://bugs.webkit.org/show_bug.cgi?id=91891
87247
87248        Reviewed by Darin Adler.
87249
87250        QualifiedName's table has a standard size of 64 buckets. When initializing WebKit,
87251        we create 850 static QualifiedName for the standard names (HTMLNames, SVGNames etc).
87252
87253        The small base size forces us to grow and rehash the table several time on startup.
87254
87255        This patch solves the issue by defining the initial table size to the minimum size that
87256        can hold all the static QualifiedName.
87257
87258        * dom/QualifiedName.cpp:
87259        (QualifiedNameHashTraits):
87260        * dom/make_names.pl:
87261        (printNamesHeaderFile):
87262
872632012-07-24  Kwang Yul Seo  <skyul@company100.net>
87264
87265        Remove anonymous namespace and make functions static.
87266        https://bugs.webkit.org/show_bug.cgi?id=92214
87267
87268        Reviewed by Adam Barth.
87269
87270        Mark functions as static instead of enclosing them in anonymous namespaces.
87271        One exception to this rule is when a function is passed as a template argument.
87272        In this case, the function must have an external linkage.
87273
87274        No functional change. Covered by existing tests.
87275
87276        * html/parser/HTMLConstructionSite.cpp:
87277        (WebCore::hasImpliedEndTag):
87278        (WebCore::causesFosterParenting):
87279        (WebCore::isAllWhitespace):
87280        * html/parser/HTMLDocumentParser.cpp:
87281        (WebCore):
87282        (WebCore::tokenizerStateForContextElement):
87283        * html/parser/HTMLElementStack.cpp:
87284        (WebCore::isNumberedHeaderElement):
87285        (WebCore::isRootNode):
87286        (WebCore):
87287        * html/parser/HTMLEntityParser.cpp:
87288        (WebCore::isAlphaNumeric):
87289        * html/parser/HTMLEntitySearch.cpp:
87290        (WebCore::halfway):
87291        * html/parser/HTMLPreloadScanner.cpp:
87292        (WebCore):
87293        * html/parser/HTMLTokenizer.cpp:
87294        (WebCore::toLowerCase):
87295        (WebCore::vectorEqualsString):
87296        (WebCore::isEndTagBufferingState):
87297        * html/parser/HTMLTreeBuilder.cpp:
87298        (WebCore):
87299        (WebCore::uninitializedPositionValue1):
87300        (WebCore::isAllWhitespace):
87301        (WebCore::isAllWhitespaceOrReplacementCharacters):
87302        (WebCore::isNumberedHeaderTag):
87303        (WebCore::isCaptionColOrColgroupTag):
87304        (WebCore::isTableCellContextTag):
87305        (WebCore::isTableBodyContextTag):
87306        (WebCore::isSpecialNode):
87307        (WebCore::isNonAnchorNonNobrFormattingTag):
87308        (WebCore::isNonAnchorFormattingTag):
87309        (WebCore::isFormattingTag):
87310        (WebCore::closestFormAncestor):
87311        (WebCore::mapLoweredLocalNameToName):
87312        (WebCore::adjustSVGTagNameCase):
87313        (WebCore::adjustAttributes):
87314        (WebCore::adjustSVGAttributes):
87315        (WebCore::adjustMathMLAttributes):
87316        (WebCore::addNamesWithPrefix):
87317        (WebCore::adjustForeignAttributes):
87318
873192012-07-24  Vsevolod Vlasov  <vsevik@chromium.org>
87320
87321        Unreviewed r123494 follow-up: fixed inspector undock icon.
87322
87323        * inspector/front-end/Images/statusbarButtonGlyphs.png:
87324
873252012-07-24  Kwang Yul Seo  <skyul@company100.net>
87326
87327        Read tag names and attributes from the saved tokens where possible.
87328        https://bugs.webkit.org/show_bug.cgi?id=92079
87329
87330        Reviewed by Adam Barth.
87331
87332        Read tag names and attributes from the saved tokens, not from the DOM.
87333        Also added convenient methods such as hasLocalName, hasTagName, localName,
87334        isElementNode and isDocumentFragmentNode to HTMLStackItem class.
87335
87336        No new tests, covered by existing tests.
87337
87338        * html/parser/HTMLConstructionSite.cpp:
87339        (WebCore::HTMLNames::hasImpliedEndTag):
87340        (WebCore::HTMLNames::causesFosterParenting):
87341        (WebCore::HTMLConstructionSite::generateImpliedEndTagsWithExclusion):
87342        (WebCore::HTMLConstructionSite::generateImpliedEndTags):
87343        (WebCore::HTMLConstructionSite::shouldFosterParent):
87344        * html/parser/HTMLConstructionSite.h:
87345        (WebCore::HTMLConstructionSite::currentStackItem):
87346        * html/parser/HTMLElementStack.cpp:
87347        (WebCore::HTMLNames::isNumberedHeaderElement):
87348        (WebCore::HTMLNames::isRootNode):
87349        (WebCore::HTMLNames::isScopeMarker):
87350        (WebCore::HTMLNames::isListItemScopeMarker):
87351        (WebCore::HTMLNames::isTableScopeMarker):
87352        (WebCore::HTMLNames::isTableBodyScopeMarker):
87353        (WebCore::HTMLNames::isTableRowScopeMarker):
87354        (WebCore::HTMLNames::isForeignContentScopeMarker):
87355        (WebCore::HTMLNames::isButtonScopeMarker):
87356        (WebCore::HTMLNames::isSelectScopeMarker):
87357        (WebCore::HTMLElementStack::ElementRecord::replaceElement):
87358        (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
87359        (WebCore::HTMLElementStack::popUntilTableScopeMarker):
87360        (WebCore::HTMLElementStack::popUntilTableBodyScopeMarker):
87361        (WebCore::HTMLElementStack::popUntilTableRowScopeMarker):
87362        (WebCore::HTMLElementStack::isMathMLTextIntegrationPoint):
87363        (WebCore::HTMLElementStack::isHTMLIntegrationPoint):
87364        (WebCore::HTMLElementStack::popUntilForeignContentScopeMarker):
87365        (WebCore::HTMLElementStack::pushRootNode):
87366        (WebCore::HTMLElementStack::oneBelowTop):
87367        (WebCore::HTMLElementStack::topmost):
87368        (WebCore):
87369        (WebCore::inScopeCommon):
87370        (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
87371        (WebCore::HTMLElementStack::inScope):
87372        * html/parser/HTMLElementStack.h:
87373        (WebCore::HTMLElementStack::topStackItem):
87374        (HTMLElementStack):
87375        (WebCore::isInHTMLNamespace):
87376        * html/parser/HTMLStackItem.h:
87377        (WebCore::HTMLStackItem::isDocumentFragmentNode):
87378        (WebCore::HTMLStackItem::isElementNode):
87379        (HTMLStackItem):
87380        (WebCore::HTMLStackItem::hasLocalName):
87381        (WebCore::HTMLStackItem::hasTagName):
87382        (WebCore::HTMLStackItem::HTMLStackItem):
87383        * html/parser/HTMLTreeBuilder.cpp:
87384        (WebCore):
87385        (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
87386        (WebCore::HTMLTreeBuilder::processFakeEndTag):
87387        (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
87388        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
87389        (WebCore::HTMLTreeBuilder::processStartTag):
87390        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
87391        (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
87392        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
87393        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
87394        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
87395        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
87396        (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
87397        (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
87398        (WebCore::HTMLTreeBuilder::processEndTag):
87399        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
87400        (WebCore::HTMLTreeBuilder::processEndOfFile):
87401        (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
87402        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
87403        * html/parser/HTMLTreeBuilder.h:
87404
874052012-07-24  Hironori Bono  <hbono@chromium.org>
87406
87407        Avoid moving child objects multiple times when vertical scrollbar are shown at the left side.
87408        https://bugs.webkit.org/show_bug.cgi?id=91756
87409
87410        Reviewed by Tony Chang.
87411
87412        My r123067 moves the top-left origin of an RTL element right when its vertical
87413        scrollbar is shown at its left side. (That is, r123067 moves all child objects
87414        in the RTL element right.) This change also increases RenderBox::clientLeft()
87415        at the same time, i.e. it also moves child objects right. Furthermore, my r109512
87416        moves positioned objects in an RTL element right at the same time. This makes
87417        WebKit move objects in an RTL element up to three times by the scrollbar width.
87418        (Moving an absolute object right increases the scrollWidth value and it causes
87419        this bug.) This change removes unnecessary code that moves objects right in my
87420        r109512 and RenderBox::clientLeft().
87421
87422        Test: scrollbars/rtl/div-absolute.html
87423              fast/block/float/026.html
87424              fast/block/float/028.html
87425              fast/overflow/unreachable-overflow-rtl-bug.html
87426
87427        * dom/Element.cpp:
87428        (WebCore::Element::clientLeft): Increase clientLeft value by the width of a vertical scrollbar as written in the CSSOM specification.
87429        * rendering/RenderBlock.cpp:
87430        (WebCore::RenderBlock::addOverflowFromPositionedObjects): Removed unnecessary code.
87431        (WebCore::RenderBlock::determineLogicalLeftPositionForChild): Removed unnecessary code.
87432        * rendering/RenderBox.h:
87433        (WebCore::RenderBox::clientLeft): Removed unnecessary code.
87434
874352012-07-24  Dan Bernstein  <mitz@apple.com>
87436
87437        RenderBlock::positionForPoint can fail when the block or its children have a vertical writing mode
87438        https://bugs.webkit.org/show_bug.cgi?id=92202
87439
87440        Reviewed by Beth Dakin.
87441
87442        Test: fast/writing-mode/positionForPoint.html
87443
87444        * rendering/RenderBlock.cpp:
87445        (WebCore::RenderBlock::positionForPoint): Fixed two issues, each of which are covered by
87446        one of the sub-tests in the new regression test: (1) changed to compare children’s logical
87447        bounds against pointInLogicalContents, i.e. compare childern’s horizontal bounds to the
87448        point’s horizontal component; and (2) changed to use logicalTopForChild and
87449        logicalHeightForChild, which account for this block’s writing mode, instead of logicalTop
87450        and logicalBottom, which are based on the child’s writing mode.
87451
874522012-07-24  MORITA Hajime  <morrita@google.com>
87453
87454        https://bugs.webkit.org/show_bug.cgi?id=89179
87455        Rendering LI having Shadow DOM seems weird
87456
87457        Reviewed by Dimitri Glazkov.
87458
87459        This incorrect rendering happend because HTMLLIElement::attach()
87460        wasn't aware of composed shadow subtree. This change makes it
87461        aware of that using ComposedShadowTreeParentWalker.
87462
87463        Test: fast/dom/shadow/shadow-and-list-elements.html
87464
87465        * html/HTMLLIElement.cpp:
87466        (WebCore::HTMLLIElement::attach):
87467
874682012-07-24  Alec Flett  <alecflett@chromium.org>
87469
87470        IndexedDB: fix #include dependencies so IDBRequest isn't an include root
87471        https://bugs.webkit.org/show_bug.cgi?id=92167
87472
87473        Reviewed by Tony Chang.
87474
87475        Remove implicit dependencies due to using IDBRequest.h, and fix all
87476        places that break as a result.
87477
87478        * Modules/indexeddb/IDBCallbacks.h:
87479        (WebCore):
87480        * Modules/indexeddb/IDBObjectStore.cpp:
87481        * Modules/indexeddb/IDBRequest.h:
87482        * inspector/InspectorIndexedDBAgent.cpp:
87483
874842012-07-24  Keishi Hattori  <keishi@webkit.org>
87485
87486        Move PagePopupClient helper functions so they can be shared
87487        https://bugs.webkit.org/show_bug.cgi?id=92096
87488
87489        Reviewed by Kent Tamura.
87490
87491        Move PagePopupClient helper functions to a separate file,
87492        so they can be shared with new PagePopupClients.
87493
87494        No new tests. Covered by fast/forms/date/calendar-picker-appearance.html
87495
87496        * WebCore.gypi: Added PagePopupClient.cpp
87497        * html/shadow/CalendarPickerElement.cpp:
87498        (WebCore::CalendarPickerElement::writeDocument): Modified to use PagePopupClient.
87499        * page/PagePopupClient.cpp: Added.
87500        (WebCore):
87501        (WebCore::PagePopupClient::addJavaScriptString):
87502        (WebCore::PagePopupClient::addProperty):
87503        * page/PagePopupClient.h:
87504        (WebCore::PagePopupClient::addString):
87505
875062012-07-24  Jer Noble  <jer.noble@apple.com>
87507
87508        setting playbackRate on a MediaController doesn't change the playbackRate for slaved media
87509        https://bugs.webkit.org/show_bug.cgi?id=92035
87510
87511        Reviewed by Darin Adler.
87512
87513        Allow updatePlaybackRate() to change the MediaPlayer rate when the media element has a 
87514        current media controller.
87515
87516        Test: media/media-controller-playbackrate.html
87517
87518        * html/HTMLMediaElement.cpp:
87519        (WebCore::HTMLMediaElement::updatePlaybackRate):
87520
875212012-07-24  Hayato Ito  <hayato@chromium.org>
87522
87523        Rename FocusScope to FocusNavigationScope.
87524        https://bugs.webkit.org/show_bug.cgi?id=92062
87525
87526        Reviewed by Dimitri Glazkov.
87527
87528        FocusNavagationScope is better name than FocusScope since the
87529        class is only used for controlling focus navigation.
87530
87531        No new tests - no functional changes.
87532
87533        * page/FocusController.cpp:
87534        (WebCore::FocusNavigationScope::FocusNavigationScope):
87535        (WebCore::FocusNavigationScope::rootNode):
87536        (WebCore::FocusNavigationScope::owner):
87537        (WebCore::FocusNavigationScope::focusNavigationScopeOf):
87538        (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost):
87539        (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByIFrame):
87540        (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocument):
87541        (WebCore::FocusController::advanceFocusInDocumentOrder):
87542        (WebCore::FocusController::findFocusableNodeAcrossFocusScope):
87543        (WebCore::FocusController::findFocusableNodeRecursively):
87544        (WebCore::FocusController::findFocusableNode):
87545        (WebCore::FocusController::nextFocusableNode):
87546        (WebCore::FocusController::previousFocusableNode):
87547        * page/FocusController.h:
87548        (FocusNavigationScope):
87549        (FocusController):
87550
875512012-07-24  Michael Saboff  <msaboff@apple.com>
87552
87553        Convert HTML parser to handle 8-bit resources without converting to UChar*
87554        https://bugs.webkit.org/show_bug.cgi?id=90321
87555
87556        Reviewed by Geoffrey Garen.
87557
87558        No new tests, no new functionality therefore covered by existing tests.
87559
87560        Changed the parsing of HTML to handle 8-bit strings without converting the 
87561        whole string to 16-bits.  Primary change was to use the appropriate 
87562        character pointer type (LChar* or UChar*) depending on the source string.
87563        This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
87564        incrementAndGetCurrentChar{8,16} methods.  In SegmentedString, the advance()
87565        and advanceAndUpdateLineNumber() methods have been refactored into a
87566        state machine managed pair of function pointers.  The possible functions
87567        have not only the 8 and 16 bitness factored out, they also have the 
87568        "exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
87569        This provides a net speed-up even with the 8/16 bit testing.
87570        Other changes involve using String methods to access and compare with the
87571        source data.
87572
87573        * html/FTPDirectoryDocument.cpp:
87574        (WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
87575        instead of SegmentedString '*' operator.
87576        * html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
87577        SegmentedString '*' operator.
87578        * html/parser/HTMLParserIdioms.cpp:
87579        (WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
87580        * html/parser/HTMLSourceTracker.cpp:
87581        (WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
87582        SegmentedString '*' operator.
87583        * loader/cache/CachedScript.cpp:
87584        (WebCore::CachedScript::script): Updated to use new String::dataSize() method.
87585        * platform/text/SegmentedString.cpp:
87586        (WebCore::SegmentedString::SegmentedString):
87587        (WebCore::SegmentedString::operator=):
87588        (WebCore::SegmentedString::clear):
87589        (WebCore::SegmentedString::append):
87590        (WebCore::SegmentedString::prepend):
87591        (WebCore::SegmentedString::advanceSubstring):
87592        (WebCore::SegmentedString::advance): Changed to be a wrapper that invokes current 
87593        advance function.
87594        (WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
87595        (WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
87596        (WebCore::SegmentedString::advanceAndUpdateLineNumber8IncludeLineNumbers): Fast
87597        path advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
87598        (WebCore::SegmentedString::advanceAndUpdateLineNumber16IncludeLineNumbers): Fast
87599        path advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
87600        (WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
87601        8 and 16 bit advance.
87602        (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
87603        advanceAndUpdateLineNumber function for both 8 and 16 bit data.
87604        (WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
87605        * platform/text/SegmentedString.h:
87606        (WebCore::SegmentedSubstring::SegmentedSubstring):
87607        (WebCore::SegmentedSubstring::clear):
87608        (SegmentedSubstring):
87609        (WebCore::SegmentedSubstring::is8Bit): New getter.
87610        (WebCore::SegmentedSubstring::appendTo):
87611        (WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
87612        (WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
87613        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
87614        that pre-increments the 8 bit pointer and returns the next character.
87615        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
87616        that pre-increments the 16 bit pointer and returns the next character.
87617        (WebCore::SegmentedSubstring::currentSubString):
87618        (WebCore::SegmentedSubstring::getCurrentChar):
87619        (WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
87620        (WebCore::SegmentedString::SegmentedString):
87621        (WebCore::SegmentedString::push):
87622        (WebCore::SegmentedString::isEmpty):
87623        (WebCore::SegmentedString::lookAhead):
87624        (WebCore::SegmentedString::lookAheadIgnoringCase):
87625        (WebCore::SegmentedString::advance):
87626        (WebCore::SegmentedString::advanceAndUpdateLineNumber):
87627        (WebCore::SegmentedString::advanceAndASSERT):
87628        (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
87629        (WebCore::SegmentedString::advancePastNonNewline):
87630        (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
87631        (WebCore::SegmentedString::currentChar):
87632        (WebCore::SegmentedString::setSlowCase): Set advance function pointers to slow case
87633        functions.
87634        (WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
87635        change to slow case functions when only one character left.
87636        (WebCore::SegmentedString::setAdvanceFunctionPointers): Select appropriate advance
87637        functions based on current substring.
87638        (WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
87639        (WebCore::SegmentedString::lookAheadSlowCase):
87640        * xml/parser/CharacterReferenceParserInlineMethods.h:
87641        (WebCore::consumeCharacterReference): Changed to use currentChar() instead of
87642        SegmentedString '*' operator.
87643        * xml/parser/MarkupTokenizerBase.h:
87644        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
87645        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
87646        currentChar() instead of SegmentedString '*' operator.
87647        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
87648
876492012-07-24  Kenneth Russell  <kbr@google.com>
87650
87651        [chromium] Hint garbage collector to run if page uses Canvas contexts
87652        https://bugs.webkit.org/show_bug.cgi?id=76225
87653
87654        Reviewed by Kentaro Hara.
87655
87656        Upon creating a canvas context, set a hint in the current isolate
87657        indicating that a full GC should be done upon the next page
87658        navigation.
87659
87660        This improves Chrome's robustness on some WebGL stress tests which
87661        simulate real-world behavior by repeatedly navigating among
87662        several samples. More general measures are being investigated, but
87663        this change makes V8 behave the same as JSC on these stress tests.
87664        JSC doesn't currently use generational garbage collection, so it
87665        has more opportunities to discover unreferenced canvas contexts.
87666
87667        Test: fast/canvas/webgl/context-creation-and-destruction.html
87668
87669        * bindings/v8/V8Binding.cpp:
87670        (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
87671            Initialize per-isolate low memory hint.
87672        * bindings/v8/V8Binding.h:
87673        (V8BindingPerIsolateData):
87674        (WebCore::V8BindingPerIsolateData::setLowMemoryNotificationHint):
87675            Set a per-isolate hint to signal a low memory condition upon the next page navigation.
87676        (WebCore::V8BindingPerIsolateData::clearLowMemoryNotificationHint):
87677            Clear the previously set hint.
87678        (WebCore::V8BindingPerIsolateData::isLowMemoryNotificationHint):
87679            Get the previously set hint.
87680        * bindings/v8/V8Proxy.cpp:
87681        (WebCore::V8Proxy::hintForGCIfNecessary):
87682            If necessary, send V8 a hint that it should GC.
87683        (WebCore):
87684        (WebCore::V8Proxy::clearForClose):
87685        (WebCore::V8Proxy::clearForNavigation):
87686            Call hintForGCIfNecessary.
87687        * bindings/v8/V8Proxy.h:
87688        (V8Proxy):
87689        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
87690        (WebCore::V8HTMLCanvasElement::getContextCallback):
87691            Set a hint that we should GC upon the next page navigation.
87692
876932012-07-24  Dave Tu  <dtu@chromium.org>
87694
87695        [chromium] Add time spent painting to GPU benchmarking renderingStats() API.
87696        https://bugs.webkit.org/show_bug.cgi?id=90019
87697
87698        Reviewed by Adrienne Walker.
87699
87700        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
87701        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
87702        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
87703        (BitmapCanvasLayerTextureUpdater):
87704        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
87705        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
87706        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
87707        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::paintContentsRect):
87708        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
87709        (Texture):
87710        (BitmapSkPictureCanvasLayerTextureUpdater):
87711        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
87712        (WebCore::CanvasLayerTextureUpdater::paintContents):
87713        * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
87714        (CanvasLayerTextureUpdater):
87715        * platform/graphics/chromium/ContentLayerChromium.cpp:
87716        (WebCore::ContentLayerChromium::update):
87717        * platform/graphics/chromium/ContentLayerChromium.h:
87718        (ContentLayerChromium):
87719        * platform/graphics/chromium/ImageLayerChromium.cpp:
87720        (WebCore::ImageLayerChromium::update):
87721        * platform/graphics/chromium/ImageLayerChromium.h:
87722        (ImageLayerChromium):
87723        * platform/graphics/chromium/LayerChromium.h:
87724        (WebCore):
87725        (WebCore::LayerChromium::update):
87726        * platform/graphics/chromium/LayerTextureUpdater.h:
87727        (WebCore):
87728        (WebCore::LayerTextureUpdater::Texture::prepareRect):
87729        (WebCore::LayerTextureUpdater::prepareToUpdate):
87730        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
87731        (WebCore::ScrollbarLayerChromium::updatePart):
87732        (WebCore::ScrollbarLayerChromium::update):
87733        * platform/graphics/chromium/ScrollbarLayerChromium.h:
87734        (ScrollbarLayerChromium):
87735        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
87736        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
87737        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
87738        (SkPictureCanvasLayerTextureUpdater):
87739        * platform/graphics/chromium/TiledLayerChromium.cpp:
87740        (WebCore::TiledLayerChromium::updateTiles):
87741        (WebCore::TiledLayerChromium::updateContentRect):
87742        * platform/graphics/chromium/TiledLayerChromium.h:
87743        (TiledLayerChromium):
87744        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
87745        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
87746        (WebCore::CCLayerTreeHost::updateAnimations):
87747        (WebCore::CCLayerTreeHost::renderingStats):
87748        (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
87749        (WebCore::CCLayerTreeHost::paintLayerContents):
87750        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
87751        (WebCore):
87752        (CCLayerTreeHost):
87753        * platform/graphics/chromium/cc/CCRenderingStats.h:
87754        (CCRenderingStats):
87755        (WebCore::CCRenderingStats::CCRenderingStats):
87756
877572012-07-24  Jian Li  <jianli@chromium.org>
87758
87759        [V8] Correct WebIDL type should be used in the testing IDL file 
87760        https://bugs.webkit.org/show_bug.cgi?id=92168
87761
87762        Reviewed by Kentaro Hara.
87763
87764        Updated bindings test.
87765
87766        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
87767        (webkit_dom_test_obj_strict_function):
87768        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
87769        * bindings/scripts/test/JS/JSTestObj.cpp:
87770        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
87771        * bindings/scripts/test/TestObj.idl:
87772        * bindings/scripts/test/V8/V8TestObj.cpp:
87773        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
87774        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
87775        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
87776        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
87777        (WebCore::TestObjV8Internal::strictFunctionCallback):
87778
877792012-07-24  Kent Tamura  <tkent@chromium.org>
87780
87781        Unreviewed, rolling out r123191.
87782        http://trac.webkit.org/changeset/123191
87783        https://bugs.webkit.org/show_bug.cgi?id=91804
87784
87785        It might cause another performance regression.
87786        http://code.google.com/p/chromium/issues/detail?id=138410
87787
87788        * html/FormController.cpp:
87789        (FormKeyGenerator):
87790        (WebCore::createKey):
87791        (WebCore::FormKeyGenerator::formKey):
87792        (WebCore::FormKeyGenerator::willDeleteForm):
87793
877942012-07-24  Vineet Chaudhary  <rgf748@motorola.com>
87795
87796        [JSBinding] Merging jsUnsignedLongArrayToVector() to toNativeArray() using traits.
87797        https://bugs.webkit.org/show_bug.cgi?id=90381
87798
87799        Reviewed by Kentaro Hara.
87800
87801        We can remove jsUnsignedLongArrayToVector() implementaion
87802        merging it to current and toNativeArray() traits.
87803
87804        Tests: TestObj.idl
87805        There should be no behavoiral changes as just refactoring.
87806
87807        * Modules/vibration/NavigatorVibration.idl: Use sequence<T> as method param than T[]
87808        * bindings/js/JSDOMBinding.cpp: Moved toJSSequence() to header file.
87809        * bindings/js/JSDOMBinding.h:
87810        (WebCore::toJSSequence): Moved toJSSequence() to header file.
87811        (WebCore::jsArray): Renamed Traits to JSValueTraits
87812        (WebCore::toNativeArray): Using traits.
87813        * bindings/js/JSDictionary.cpp:
87814        (WebCore::JSDictionary::convertValue):
87815        * bindings/js/JSMessagePortCustom.cpp:
87816        (WebCore::fillMessagePortArray):
87817        * bindings/scripts/CodeGeneratorJS.pm: Removed unsigned long[] specific binding code.
87818        (AddIncludesForType):
87819        (GenerateParametersCheckExpression):
87820        (JSValueToNative):
87821        (NativeToJSValue):
87822        * bindings/scripts/CodeGeneratorV8.pm:
87823        (GenerateParametersCheckExpression): Added check sequence<T> check for overloaded methods.
87824        * bindings/scripts/test/JS/JSTestObj.cpp: Rebased binding test.
87825        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
87826        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
87827        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
87828        * bindings/scripts/test/JS/JSTestObj.h: Rebased binding test.
87829        * bindings/scripts/test/TestObj.idl: Added test for sequence<T> as method parameter.
87830        * bindings/scripts/test/V8/V8TestObj.cpp: Rebased binding test.
87831        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
87832        (TestObjV8Internal):
87833        (WebCore::TestObjV8Internal::overloadedMethodCallback):
87834
878352012-07-24  Kwang Yul Seo  <skyul@company100.net>
87836
87837        Remove an invalid assertion introduced in r123536. Unreviewed.
87838
87839        * xml/parser/MarkupTokenBase.h:
87840        (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
87841
878422012-07-24  Sheriff Bot  <webkit.review.bot@gmail.com>
87843
87844        Unreviewed, rolling out r123504.
87845        http://trac.webkit.org/changeset/123504
87846        https://bugs.webkit.org/show_bug.cgi?id=92169
87847
87848        broke a bunch of text-related tests in chromium mac debug
87849        (Requested by zhenyao on #webkit).
87850
87851        * platform/text/cf/StringCF.cpp:
87852        (WTF::String::createCFString):
87853        * platform/text/cf/StringImplCF.cpp:
87854        (WTF::StringImpl::createCFString):
87855
878562012-07-24  Kwang Yul Seo  <skyul@company100.net>
87857
87858        Ensure Noah's ark without reading the DOM tree.
87859        https://bugs.webkit.org/show_bug.cgi?id=92065
87860
87861        Reviewed by Adam Barth.
87862
87863        Technically we shouldn't read attributes back from the DOM. If JavaScript changes
87864        the attributes values, we could get a slightly wrong output here.
87865
87866        Read attributes from tokens saved in the active formatting element list.
87867
87868        No new tests, covered by existing tests.
87869
87870        * html/parser/HTMLFormattingElementList.cpp:
87871        (WebCore::attributeCount):
87872        (WebCore::HTMLFormattingElementList::append):
87873        (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
87874        (WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):
87875        * html/parser/HTMLFormattingElementList.h:
87876        (HTMLFormattingElementList):
87877        * html/parser/HTMLStackItem.h:
87878        (WebCore::HTMLStackItem::localName):
87879        (HTMLStackItem):
87880
878812012-07-23  Kwang Yul Seo  <skyul@company100.net>
87882
87883        Clear the external characters pointer of an AtomicHTMLToken before the raw token is cleared.
87884        https://bugs.webkit.org/show_bug.cgi?id=92056
87885
87886        Reviewed by Adam Barth.
87887
87888        AtomicHTMLToken keeps a pointer to the HTMLToken's buffer instead of copying the
87889        characters for performance. Clear the external characters pointer before the raw token
87890        is cleared to make sure that we won't have a dangling pointer.
87891
87892        No new tests - no functional changes.
87893
87894        * html/parser/HTMLTreeBuilder.cpp:
87895        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
87896        * xml/parser/MarkupTokenBase.h:
87897        (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
87898        (AtomicMarkupTokenBase):
87899
879002012-07-24  Jian Li  <jianli@chromium.org>
87901
87902        Add per-context setting for html notifications
87903        https://bugs.webkit.org/show_bug.cgi?id=91295
87904
87905        Reviewed by Adam Barth.
87906
87907        Added a new per-context setting to control the enabling of html notifications.
87908        For chromium port, we're going to disable html notifications for web
87909        pages, but still keep it enabled for extensions.
87910
87911        Also enhance V8 code generator to support V8EnabledPerContext attribute
87912        for methods.
87913
87914        Updated the binding tests.
87915
87916        * Modules/notifications/NotificationCenter.cpp:
87917        (WebCore::NotificationCenter::document): Expose document for being used by installPerContextProperties.
87918        (WebCore):
87919        * Modules/notifications/NotificationCenter.h:
87920        (NotificationCenter):
87921        * Modules/notifications/NotificationCenter.idl: Add V8EnabledPerContext attribute.
87922        * bindings/scripts/CodeGeneratorV8.pm: V8EnabledPerContext now supports methods.
87923        (GenerateHeader):
87924        (IsStandardFunction):
87925        (GenerateNonStandardFunction):
87926        (GenerateImplementation):
87927        (GenerateToV8Converters):
87928        (GetContextEnableFunction):
87929        * bindings/scripts/test/TestObj.idl: Add test case for V8EnabledPerContext methods.
87930        * bindings/scripts/test/V8/V8TestObj.cpp: Update test result.
87931        (WebCore::TestObjV8Internal::enabledAtContextMethod1Callback):
87932        (TestObjV8Internal):
87933        (WebCore::TestObjV8Internal::enabledAtContextMethod2Callback):
87934        (WebCore::V8TestObj::installPerContextProperties):
87935        (WebCore::V8TestObj::wrapSlow):
87936        * dom/ContextFeatures.cpp: Add a new per-context feature.
87937        (WebCore::ContextFeatures::htmlNotificationsEnabled):
87938        (WebCore):
87939        * dom/ContextFeatures.h: Add a new per-context feature.
87940
879412012-07-24  Sheriff Bot  <webkit.review.bot@gmail.com>
87942
87943        Unreviewed, rolling out r123499.
87944        http://trac.webkit.org/changeset/123499
87945        https://bugs.webkit.org/show_bug.cgi?id=92161
87946
87947        Android fails to compile (Requested by zhenyao on #webkit).
87948
87949        * GNUmakefile.list.am:
87950        * Modules/mediastream/MediaStream.cpp:
87951        (WebCore::MediaStream::MediaStream):
87952        (WebCore::MediaStream::addTrack):
87953        * Modules/mediastream/MediaStreamTrack.cpp:
87954        (WebCore::MediaStreamTrack::create):
87955        (WebCore::MediaStreamTrack::MediaStreamTrack):
87956        (WebCore::MediaStreamTrack::~MediaStreamTrack):
87957        (WebCore::MediaStreamTrack::setEnabled):
87958        * Modules/mediastream/MediaStreamTrack.h:
87959        (MediaStreamTrack):
87960        * Modules/mediastream/MediaStreamTrack.idl:
87961        * WebCore.gypi:
87962        * dom/EventNames.h:
87963        (WebCore):
87964        * dom/EventTargetFactory.in:
87965        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
87966        (WebKit):
87967        (WebKit::WebMediaStreamDescriptor::sources):
87968        * platform/chromium/support/WebMediaStreamSource.cpp:
87969        * platform/mediastream/MediaStreamSource.cpp: Removed.
87970        * platform/mediastream/MediaStreamSource.h:
87971        (WebCore::MediaStreamSource::create):
87972        (WebCore::MediaStreamSource::muted):
87973        (WebCore::MediaStreamSource::setMuted):
87974        (WebCore::MediaStreamSource::MediaStreamSource):
87975        (MediaStreamSource):
87976        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
87977        (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
87978        (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
87979
879802012-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
87981
87982        Crash in RenderTableSection::layoutRows
87983        https://bugs.webkit.org/show_bug.cgi?id=92145
87984
87985        Reviewed by Abhishek Arya.
87986
87987        The crash came from the insertChildNode logic being confused and choosing the wrong
87988        renderer for insertion. This is because after r123159, table anonymous wrappers can
87989        be created as 'inline-table' and wouldn't pass the isAnonymousBlock() check.
87990
87991        This change also aligns the ancestor iteration with RenderBlock::addChildToAnonymousColumnBlocks.
87992
87993        Test: fast/table/crash-table-section-layoutRows.html
87994
87995        * rendering/RenderObjectChildList.cpp:
87996        (WebCore::RenderObjectChildList::insertChildNode):
87997        Changed the code to always get the right child. There is no justification to not
87998        walking up to the |owner|'s direct child in all cases.
87999
880002012-07-24  Tony Chang  <tony@chromium.org>
88001
88002        Make RenderBlock::paintChildren virtual so sub classes can change the paint order
88003        https://bugs.webkit.org/show_bug.cgi?id=92042
88004
88005        Reviewed by Ojan Vafai.
88006
88007        The flexbox spec says that the order property should change the paint order of flex children.
88008        To make that possible, make paintChildren virtual so RenderFlexibleBox can override it.
88009
88010        No new tests, this is just a refactoring.
88011
88012        * rendering/RenderBlock.cpp:
88013        (WebCore::RenderBlock::paintContents): Move some code out of paintChildren into paintContents.
88014        (WebCore::RenderBlock::paintChildren): Make virtual and just have it be a simple for loop.
88015        (WebCore::RenderBlock::paintChild): Move code out of paintChildren so subclasses can reuse.
88016        * rendering/RenderBlock.h:
88017        (RenderBlock): Make paintChildren virtual and protected so sub classes can call paintChild.
88018
880192012-07-24  Anna Cavender  <annacc@chromium.org>
88020
88021        Create SourceBuffer and SourceBufferList objects
88022        https://bugs.webkit.org/show_bug.cgi?id=91771
88023
88024        Reviewed by Eric Carlson.
88025
88026        SourceBuffer and SourceBufferList objects are needed in order to
88027        implement the new object-oriented MediaSource API:
88028        http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
88029
88030        No new tests - will be able to test after landing BUGWK91775
88031
88032        Adding new files to build files:
88033        * CMakeLists.txt:
88034        * DerivedSources.cpp:
88035        * DerivedSources.make:
88036        * DerivedSources.pri:
88037        * GNUmakefile.am:
88038        * GNUmakefile.list.am:
88039        * Target.pri:
88040        * WebCore.gyp/WebCore.gyp:
88041        * WebCore.gypi:
88042        * WebCore.vcproj/WebCore.vcproj:
88043        * WebCore.vcproj/WebCoreCommon.vsprops:
88044        * WebCore.vcproj/copyForwardingHeaders.cmd:
88045        * WebCore.xcodeproj/project.pbxproj:
88046
88047        New objects:
88048        * Modules/mediasource/SourceBuffer.cpp: Added.
88049        * Modules/mediasource/SourceBuffer.h: Added.
88050        * Modules/mediasource/SourceBuffer.idl: Added.
88051        * Modules/mediasource/SourceBufferList.cpp: Added.
88052        * Modules/mediasource/SourceBufferList.h: Added.
88053        * Modules/mediasource/SourceBufferList.idl: Added.
88054
88055        New events:
88056        * dom/EventNames.h:
88057        (WebCore):
88058        * dom/EventTarget.h:
88059        (WebCore):
88060        * dom/EventTargetFactory.in:
88061
88062        Object constructors:
88063        * page/DOMWindow.idl:
88064
880652012-07-24  Patrick Gansterer  <paroga@webkit.org>
88066
88067        Store the full year in GregorianDateTime
88068        https://bugs.webkit.org/show_bug.cgi?id=92067
88069
88070        Reviewed by Geoffrey Garen.
88071
88072        Use the full year instead of the offset from year 1900 
88073        for the year member variable of GregorianDateTime.
88074
88075        * bridge/qt/qt_runtime.cpp:
88076        (JSC::Bindings::convertValueToQVariant):
88077        (JSC::Bindings::convertQVariantToValue):
88078        * bridge/qt/qt_runtime_qt4.cpp:
88079        (JSC::Bindings::convertValueToQVariant):
88080        (JSC::Bindings::convertQVariantToValue):
88081
880822012-07-24  Benjamin Poulain  <bpoulain@apple.com>
88083
88084        Do not perform 8 to 16bits characters conversion when converting a WTFString to NSString/CFString
88085        https://bugs.webkit.org/show_bug.cgi?id=90720
88086
88087        Reviewed by Geoffrey Garen.
88088
88089        In most String to CFString conversion, we should be able to use the "NoCopy" constructor and have
88090        a relatively cheap conversion from WTF::String to CFString.
88091
88092        When the String is 8 bits, it was converted to 16 bits by getData16SlowCase() because of the call
88093        to String::characters().
88094
88095        This patch adds a path for creating a CFString from a 8bits string using CFStringCreateWithBytes.
88096
88097        This is covered by existing tests.
88098
88099        * platform/text/cf/StringCF.cpp:
88100        (WTF::String::createCFString): CFSTR() create static CFString, it is unecessary to retain it.
88101        * platform/text/cf/StringImplCF.cpp:
88102        (WTF::StringImpl::createCFString): The logic to avoid the StringWrapperCFAllocator has also been simplified.
88103        The allocator creation is now closer to where it is useful.
88104
881052012-07-24  Kentaro Hara  <haraken@chromium.org>
88106
88107        [V8] String wrappers should be marked Independent
88108        https://bugs.webkit.org/show_bug.cgi?id=91251
88109
88110        Reviewed by Adam Barth.
88111
88112        Currently V8 String wrappers are not marked Independent.
88113        By marking them Independent, they can be reclaimed by the scavenger GC.
88114        Although I couldn't find a case where this change reduces memory usage,
88115        this change would be important for upcoming changes in string conversion
88116        between V8 and WebKit (https://bugs.webkit.org/show_bug.cgi?id=91850).
88117
88118        'm_lastStringImpl = 0' in StringCache::remove() is important.
88119        Look at the following code:
88120
88121            static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
88122            {
88123                ...;
88124                stringCache()->remove(stringImpl);
88125                wrapper.Dispose();
88126            }
88127
88128            void StringCache::remove(StringImpl* stringImpl)
88129            {
88130                ...
88131                if (m_lastStringImpl.get() == stringImpl)
88132                    m_lastStringImpl = 0;
88133            }
88134
88135            v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, v8::Isolate* isolate)
88136            {
88137                if (m_lastStringImpl.get() == stringImpl) {
88138                    return v8::Local<v8::String>::New(m_lastV8String); // m_lastV8String points to a wrapper object that was accessed most recently.
88139                }
88140                return v8ExternalStringSlow(stringImpl, isolate);
88141            }
88142
88143        Without 'm_lastStringImpl = 0', already disposed m_lastV8String can be used
88144        in v8ExternalString(). This was a cause of the crashes of r122614.
88145
88146        Tests: At the initial commit of this patch (r122614),
88147               the following tests had been broken due to missing 'm_lastStringImpl = 0'.
88148               fast/workers/worker-location.html
88149               Dromaeo/cssquery-jquery.html
88150               Dromaeo/jslib-event-jquery.html
88151               Dromaeo/jslib-style-jquery.html
88152               Dromaeo/jslib-style-prototype.html
88153
88154        * bindings/v8/V8Binding.cpp:
88155        (WebCore::StringCache::remove):
88156        (WebCore::StringCache::v8ExternalStringSlow):
88157
881582012-07-24  Tommy Widenflycht  <tommyw@google.com>
88159
88160        MediaStream API: Update MediaStreamTrack to match the specification
88161        https://bugs.webkit.org/show_bug.cgi?id=90180
88162
88163        Reviewed by Adam Barth.
88164
88165        MediaStreamTracks are now required to show the status of the underlying source,
88166        and trigger events when that status changes.
88167
88168        Test: fast/mediastream/MediaStreamTrack.html
88169
88170        * GNUmakefile.list.am:
88171        * Modules/mediastream/MediaStream.cpp:
88172        (WebCore::MediaStream::MediaStream):
88173        (WebCore::MediaStream::addTrack):
88174        * Modules/mediastream/MediaStreamTrack.cpp:
88175        (WebCore::MediaStreamTrack::create):
88176        (WebCore::MediaStreamTrack::MediaStreamTrack):
88177        (WebCore::MediaStreamTrack::~MediaStreamTrack):
88178        (WebCore::MediaStreamTrack::setEnabled):
88179        (WebCore::MediaStreamTrack::readyState):
88180        (WebCore):
88181        (WebCore::MediaStreamTrack::sourceChangedState):
88182        (WebCore::MediaStreamTrack::stop):
88183        (WebCore::MediaStreamTrack::interfaceName):
88184        (WebCore::MediaStreamTrack::scriptExecutionContext):
88185        (WebCore::MediaStreamTrack::eventTargetData):
88186        (WebCore::MediaStreamTrack::ensureEventTargetData):
88187        * Modules/mediastream/MediaStreamTrack.h:
88188        * Modules/mediastream/MediaStreamTrack.idl:
88189        * WebCore.gypi:
88190        * dom/EventNames.h:
88191        (WebCore):
88192        * dom/EventTargetFactory.in:
88193        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
88194        * platform/chromium/support/WebMediaStreamSource.cpp:
88195        (WebKit::WebMediaStreamSource::setReadyState):
88196        (WebKit):
88197        (WebKit::WebMediaStreamSource::readyState):
88198        * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
88199        (WebCore):
88200        (WebCore::MediaStreamSource::create):
88201        (WebCore::MediaStreamSource::MediaStreamSource):
88202        (WebCore::MediaStreamSource::setReadyState):
88203        (WebCore::MediaStreamSource::addObserver):
88204        (WebCore::MediaStreamSource::removeObserver):
88205        * platform/mediastream/MediaStreamSource.h:
88206        (Observer):
88207        (WebCore::MediaStreamSource::Observer::~Observer):
88208        (MediaStreamSource):
88209        (WebCore::MediaStreamSource::readyState):
88210        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
88211        (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
88212        (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
88213
882142012-07-24  Scott Graham  <scottmg@chromium.org>
88215
88216        Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
88217        https://bugs.webkit.org/show_bug.cgi?id=91667
88218
88219        Reviewed by Tony Chang.
88220
88221        Using native tools instead of cygwin version improves build time
88222        performance by roughly 50% (on top of previous cl-instead-of-gcc
88223        change).
88224
88225        Also, use - instead of / for cl flags, otherwise preprocessing fails
88226        very slowly (due to retry loop). And, replace \ with / in gperf
88227        command line. Without this, gperf emits the filename literally in
88228        #line directives which causes VS to error with "unescaped \ in
88229        string". Bizarrely, building ColorData.cpp with those \ in place
88230        causes the IDE to exit with no error message, which was the cause of
88231        the previous canary failures.
88232
88233        No new tests.
88234
88235        * WebCore.gyp/WebCore.gyp:
88236        * WebCore.gyp/scripts/rule_bison.py:
88237        * bindings/scripts/preprocessor.pm:
88238        (applyPreprocessor):
88239        * make-hash-tools.pl:
88240
882412012-07-24  Daniel Cheng  <dcheng@chromium.org>
88242
88243        Files from drag and file <input> should use getMIMETypeForExtension to determine content type.
88244        https://bugs.webkit.org/show_bug.cgi?id=91702
88245
88246        Reviewed by Jian Li.
88247
88248        Awhile back, we changed File to only use getWellKnownMIMETypeForExtension to prevent web
88249        pages from being able to detect what applications a user has installed indirectly through
88250        the MIME types. However, some sites like YouTube's drag and drop uploader use MIME types
88251        that aren't in WebKit's internal list, so we relax the restriction for Files that originate
88252        from an user action.
88253
88254        * fileapi/File.cpp:
88255        (WebCore::getContentTypeFromFileName):
88256        (WebCore::createBlobDataForFile):
88257        (WebCore::createBlobDataForFileWithName):
88258        (WebCore::createBlobDataForFileWithMetadata):
88259        (WebCore::File::createWithRelativePath):
88260        (WebCore::File::File):
88261        * fileapi/File.h:
88262        (File):
88263        (WebCore::File::create):
88264        (WebCore::File::createWithName):
88265        * html/FileInputType.cpp:
88266        (WebCore::FileInputType::createFileList):
88267        * platform/chromium/ChromiumDataObject.cpp:
88268        (WebCore::ChromiumDataObject::addFilename):
88269        * platform/gtk/ClipboardGtk.cpp:
88270        (WebCore::ClipboardGtk::files):
88271        * platform/mac/ClipboardMac.mm:
88272        (WebCore::ClipboardMac::files):
88273        * platform/qt/ClipboardQt.cpp:
88274        (WebCore::ClipboardQt::files):
88275        * platform/win/ClipboardWin.cpp:
88276        (WebCore::ClipboardWin::files):
88277
882782012-07-24  Vsevolod Vlasov  <vsevik@chromium.org>
88279
88280        Web Inspector: Snippets UI polish
88281        https://bugs.webkit.org/show_bug.cgi?id=92142
88282
88283        Reviewed by Pavel Feldman.
88284
88285        Changed snippets context menu items.
88286        Added run snippet status bar button.
88287        Removed unused edit source button.
88288
88289        * English.lproj/localizedStrings.js:
88290        * inspector/front-end/Images/statusbarButtonGlyphs.png:
88291        * inspector/front-end/ScriptSnippetModel.js:
88292        (WebInspector.SnippetJavaScriptSourceFrame):
88293        (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
88294        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
88295        * inspector/front-end/ScriptsNavigator.js:
88296        (WebInspector.SnippetsNavigatorView.prototype.getOrCreateFolderTreeElement):
88297        (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
88298        * inspector/front-end/ScriptsPanel.js:
88299        (WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
88300        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
88301        * inspector/front-end/SourceFrame.js:
88302        (WebInspector.SourceFrame.prototype.statusBarItems):
88303        * inspector/front-end/inspector.css:
88304        * inspector/front-end/scriptsPanel.css:
88305        (.evaluate-snippet-status-bar-item .glyph):
88306        (.evaluate-snippet-status-bar-item.toggled .glyph):
88307
883082012-07-24  Nico Weber  <thakis@chromium.org>
88309
88310        [chromium/mac] Remove webcore_resource_files from WebCore.gypi
88311        https://bugs.webkit.org/show_bug.cgi?id=92129
88312
88313        Reviewed by Adam Barth.
88314
88315        It was added in http://trac.webkit.org/changeset/81706/trunk/Source/WebCore/WebCore.gypi .
88316        The changes in that revision were mostly reverted in http://trac.webkit.org/changeset/119921 ,
88317        but this block was forgotten. Since it just confused me for a bit, remove it.
88318
88319        * WebCore.gyp/WebCore.gyp:
88320
883212012-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
88322
88323        inline-table wrapper should be generated for display: inline element only
88324        https://bugs.webkit.org/show_bug.cgi?id=92054
88325
88326        Reviewed by Abhishek Arya.
88327
88328        CSS 2.1 only takes into account the display when determining if we should generate
88329        an inline-table. My misreading of the spec would make us generate an inline-table
88330        wrapper for any inline formatting context.
88331
88332        Test: fast/table/inline-block-generates-table-wrapper.html
88333
88334        * rendering/RenderTable.cpp:
88335        (WebCore::RenderTable::createAnonymousWithParentRenderer):
88336        Changed to use display instead of isInline to properly match the spec.
88337
883382012-07-24  Alec Flett  <alecflett@chromium.org>
88339
88340        IndexedDB: Temporarily continue generating backend keys for empty key lists
88341        https://bugs.webkit.org/show_bug.cgi?id=92012
88342
88343        Reviewed by Tony Chang.
88344
88345        Temporarily change key behavior to allow chromium in_process_webkit
88346        to call putWithIndexKeys without inadvertently preventing index
88347        key generation. Note this is temporary until frontend key generation
88348        patch lands.
88349
88350        No new tests, this is part of a refactor that doesn't change behavior.
88351
88352        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
88353        (WebCore::IDBObjectStoreBackendImpl::putInternal):
88354
883552012-07-24  Pavel Feldman  <pfeldman@chromium.org>
88356
88357        Web Inspector: introduce UISourceCodeFrame.
88358        https://bugs.webkit.org/show_bug.cgi?id=92124
88359
88360        Reviewed by Vsevolod Vlasov.
88361
88362        Generic implementation of SourceFrame over UISourceCode added.
88363
88364        * WebCore.gypi:
88365        * WebCore.vcproj/WebCore.vcproj:
88366        * inspector/compile-front-end.py:
88367        * inspector/front-end/ScriptsPanel.js:
88368        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
88369        * inspector/front-end/StylesPanel.js:
88370        * inspector/front-end/UISourceCodeFrame.js: Added.
88371        (WebInspector.UISourceCodeFrame):
88372        (WebInspector.UISourceCodeFrame.prototype.canEditSource):
88373        (WebInspector.UISourceCodeFrame.prototype.commitEditing):
88374        (WebInspector.UISourceCodeFrame.prototype.afterTextChanged):
88375        (WebInspector.UISourceCodeFrame.prototype._didEditContent):
88376        (WebInspector.UISourceCodeFrame.prototype._onContentChanged):
88377        (WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu):
88378        * inspector/front-end/WebKit.qrc:
88379        * inspector/front-end/inspector.html:
88380
883812012-07-24  Dan Bernstein  <mitz@apple.com>
88382
88383        <rdar://problem/11945102> REGRESSION (r109451): Overlay scrollbars always use the default style, regardless of background color
88384        https://bugs.webkit.org/show_bug.cgi?id=92115
88385
88386        Reviewed by Mark Rowe.
88387
88388        * platform/Scrollbar.cpp:
88389        (WebCore::Scrollbar::scrollbarOverlayStyle): Reversed an incorrect null check.
88390
883912012-07-24  Andrew Wilson  <atwilson@chromium.org>
88392
88393        Another prospective build fix for Chromium. Unreviewed.
88394
88395        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
88396
883972012-07-24  Andrew Wilson  <atwilson@chromium.org>
88398
88399        Unreviewed prospective build fix for Chromium. Changed include of hb.h in HarfBuzzNGFace.h
88400
88401        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
88402
884032012-07-24  Dominik Röttsches  <dominik.rottsches@intel.com>
88404
88405        HarfBuzzFaceNG.h forward declarations conflict with newer versions of Harfbuzz
88406        https://bugs.webkit.org/show_bug.cgi?id=92103
88407
88408        Reviewed by Philippe Normand.
88409
88410        As preparation for enabling harfbuzz-ng for EFL, I would like to include the header
88411        here since the forward declarations are conflicting with the harfbuzz version
88412        we will use for EFL.
88413
88414        No new tests, no change in behavior.
88415
88416        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
88417
884182012-07-24  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
88419
88420        Fix blend filter for autovectorizing
88421        https://bugs.webkit.org/show_bug.cgi?id=91398
88422
88423        Reviewed by Nikolas Zimmermann.
88424
88425        To support auto-vectorizing, the loop had to be unswitched, and regular arrays used that 
88426        did not do boundary-checks in the inner loop. Finally the integer division by 255
88427        was optimized not use integer division intrinsics.
88428
88429        On a X86-64 architechture using GCC -O3 on the file, this gives a speed-up of 2.9x.
88430
88431        * platform/graphics/filters/FEBlend.cpp:
88432        (WebCore::fastDivideBy255):
88433        (BlendNormal):
88434        (WebCore::BlendNormal::apply):
88435        (BlendMultiply):
88436        (WebCore::BlendMultiply::apply):
88437        (BlendScreen):
88438        (WebCore::BlendScreen::apply):
88439        (BlendDarken):
88440        (WebCore::BlendDarken::apply):
88441        (BlendLighten):
88442        (WebCore::BlendLighten::apply):
88443        (BlendUnknown):
88444        (WebCore::BlendUnknown::apply):
88445        (WebCore::platformApply):
88446        (WebCore::FEBlend::platformApplyGeneric):
88447        (WebCore::FEBlend::platformApplySoftware):
88448        * platform/graphics/filters/FEBlend.h:
88449        (FEBlend):
88450
884512012-07-23  Hans Wennborg  <hans@chromium.org>
88452
88453        Speech JavaScript API: Add the SpeechRecognitionResult.emma attribute
88454        https://bugs.webkit.org/show_bug.cgi?id=91743
88455
88456        Reviewed by Adam Barth.
88457
88458        Implement the 'emma' attribute as described in the spec draft at
88459        http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
88460
88461        Test: fast/speech/scripted/emma.html
88462
88463        * Modules/speech/SpeechRecognitionResult.cpp:
88464        (WebCore::SpeechRecognitionResult::~SpeechRecognitionResult):
88465        (WebCore):
88466        (WebCore::SpeechRecognitionResult::emma):
88467        * Modules/speech/SpeechRecognitionResult.h:
88468        (WebCore):
88469        (SpeechRecognitionResult):
88470        * Modules/speech/SpeechRecognitionResult.idl:
88471        * WebCore.gypi:
88472        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
88473        (WebCore):
88474        (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
88475          We need to add an implicit reference from the result object to the
88476          emma object to keep the latters DOM tree alive across
88477          garbage-collection.
88478
884792012-07-24  Andrei Poenaru  <poenaru@adobe.com>
88480
88481        Web Inspector: Protocol Extension: add getFlowByName command
88482        https://bugs.webkit.org/show_bug.cgi?id=91855
88483
88484        Reviewed by Pavel Feldman.
88485
88486        The "getFlowByName" command should return a NamedFlow for a given document and name.
88487
88488        Test: inspector/styles/protocol-css-regions-commands.html
88489
88490        * inspector/Inspector.json:
88491        * inspector/InspectorCSSAgent.cpp:
88492        (WebCore::InspectorCSSAgent::getFlowByName):
88493        (WebCore):
88494        * inspector/InspectorCSSAgent.h:
88495        (InspectorCSSAgent):
88496        * inspector/front-end/CSSStyleModel.js:
88497        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
88498        (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
88499        (WebInspector.NamedFlow):
88500        (WebInspector.NamedFlow.parsePayload):
88501
885022012-07-23  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
88503
88504        [Qt] Fix compilation against namespaced Qt
88505
88506        Reviewed by Simon Hausmann.
88507
88508        * platform/graphics/Font.h:
88509        * platform/network/ResourceHandleInternal.h:
88510        * platform/qt/ThirdPartyCookiesQt.h:
88511
885122012-07-24  Anthony Scian  <ascian@rim.com>
88513
88514        Web Inspector [JSC]: Enable initiator column in network panel.
88515        https://bugs.webkit.org/show_bug.cgi?id=65533
88516
88517        Reviewed by Vsevolod Vlasov.
88518
88519        With 40118 fixed for webkit, Preferences.displayInitiator should be set to true.
88520        Removed references to it since the optionality is no longer required.
88521
88522        Test: http/tests/inspector/network/network-initiator.html
88523
88524        * inspector/front-end/NetworkPanel.js:
88525        (WebInspector.NetworkLogView.prototype._createTable):
88526        (WebInspector.NetworkLogView.prototype.switchToDetailedView):
88527        (WebInspector.NetworkLogView.prototype.switchToBriefView):
88528        (WebInspector.NetworkDataGridNode.prototype.createCells):
88529        (WebInspector.NetworkDataGridNode.prototype.refreshRequest):
88530        * inspector/front-end/Settings.js:
88531
885322012-07-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
88533
88534        Missing *explicit* keyword in dom and page.
88535        https://bugs.webkit.org/show_bug.cgi?id=92074
88536
88537        Reviewed by Kentaro Hara.
88538
88539        Some constructors missed to use *explicit* keyword. They need to be added
88540        *explicit* keyword to contructor which has a parameter in order to avoid
88541        implicit type conversion.
88542
88543        Some files in dom directory can't use explicit keyword because of build breaks.
88544
88545        No new tests. Covered by existing tests.
88546
88547        * dom/BeforeLoadEvent.h:
88548        (WebCore::BeforeLoadEvent::BeforeLoadEvent):
88549        * dom/BeforeTextInsertedEvent.h:
88550        (BeforeTextInsertedEvent):
88551        * dom/ChildListMutationScope.h:
88552        (WebCore::ChildListMutationScope::ChildListMutationScope):
88553        * dom/ChildNodeList.h:
88554        (ChildNodeList):
88555        * dom/ClientRect.h:
88556        (ClientRect):
88557        * dom/ClientRectList.h:
88558        (ClientRectList):
88559        * dom/ComposedShadowTreeWalker.h:
88560        (ComposedShadowTreeParentWalker):
88561        * dom/DOMCoreException.h:
88562        (WebCore::DOMCoreException::DOMCoreException):
88563        * dom/DOMImplementation.h:
88564        (DOMImplementation):
88565        * dom/DatasetDOMStringMap.h:
88566        (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
88567        * dom/DeviceMotionController.h:
88568        (DeviceMotionController):
88569        * dom/DeviceOrientationController.h:
88570        (DeviceOrientationController):
88571        * dom/DocumentParser.h:
88572        (DocumentParser):
88573        * dom/EventException.h:
88574        (WebCore::EventException::EventException):
88575        * dom/EventListener.h:
88576        (WebCore::EventListener::EventListener):
88577        * dom/ExceptionBase.h:
88578        (ExceptionBase):
88579        * dom/GenericEventQueue.h:
88580        (GenericEventQueue):
88581        * dom/KeyboardEvent.h:
88582        (WebCore::KeypressCommand::KeypressCommand):
88583        * dom/MemoryInstrumentation.h:
88584        (WebCore::MemoryObjectInfo::MemoryObjectInfo):
88585        * dom/MessageChannel.h:
88586        (MessageChannel):
88587        * dom/MessagePort.h:
88588        (MessagePort):
88589        * dom/MessagePortChannel.h:
88590        (MessagePortChannel):
88591        * dom/MutationObserver.h:
88592        * dom/NamedNodeMap.h:
88593        (WebCore::NamedNodeMap::NamedNodeMap):
88594        * dom/NodeFilter.h:
88595        (WebCore::NodeFilter::NodeFilter):
88596        * dom/NodeWithIndex.h:
88597        (WebCore::NodeWithIndex::NodeWithIndex):
88598        * dom/Range.h:
88599        * dom/RangeException.h:
88600        (WebCore::RangeException::RangeException):
88601        * dom/RawDataDocumentParser.h:
88602        (WebCore::RawDataDocumentParser::RawDataDocumentParser):
88603        * dom/ScriptRunner.h:
88604        (ScriptRunner):
88605        * dom/SelectorQuery.h:
88606        (SelectorQuery):
88607        * dom/ShadowRoot.h:
88608        (ShadowRoot):
88609        * dom/SpaceSplitString.h:
88610        (SpaceSplitStringData):
88611        * dom/StaticHashSetNodeList.h:
88612        (StaticHashSetNodeList):
88613        * dom/StaticNodeList.h:
88614        (WebCore::StaticNodeList::StaticNodeList):
88615        * dom/TransformSource.h:
88616        (TransformSource):
88617        * dom/TreeScope.h:
88618        (TreeScope):
88619        * dom/WebKitNamedFlowCollection.h:
88620        (WebKitNamedFlowCollection):
88621        * page/EventHandler.h:
88622        (EventHandler):
88623        * page/FocusController.h:
88624        (FocusController):
88625        * page/FrameView.h:
88626        (FrameView):
88627        * page/MemoryInfo.h:
88628        (MemoryInfo):
88629        * page/Page.h:
88630        (Page):
88631        * page/PageGroup.h:
88632        (PageGroup):
88633        * page/PrintContext.h:
88634        (PrintContext):
88635        * page/Settings.h:
88636        (Settings):
88637        * page/SpeechInput.h:
88638        (SpeechInput):
88639        * page/SpeechInputResultList.h:
88640        (SpeechInputResultList):
88641        * page/WebKitAnimation.h:
88642        * page/WindowFeatures.h:
88643        (WindowFeatures):
88644        * page/WorkerNavigator.h:
88645        (WorkerNavigator):
88646
886472012-07-24  Kent Tamura  <tkent@chromium.org>
88648
88649        Replace some callsites of shadowAncestorNode() with shadowHost()
88650        https://bugs.webkit.org/show_bug.cgi?id=92060
88651
88652        Reviewed by Hajime Morita.
88653
88654        shadowAncestorNode() is deprecated.
88655
88656        No new tests. This shouldn't change behaviors.
88657
88658        * html/shadow/MediaControlElements.cpp:
88659        (WebCore::toParentMediaElement):
88660        * html/shadow/TextControlInnerElements.h:
88661        (WebCore::SpinButtonElement::isEnabledFormControl):
88662        (WebCore::SpinButtonElement::isReadOnlyFormControl):
88663        * platform/efl/RenderThemeEfl.cpp:
88664        (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
88665        (WebCore::RenderThemeEfl::paintMediaMuteButton):
88666        * platform/gtk/RenderThemeGtk.cpp:
88667        (WebCore::getMediaElementFromRenderObject):
88668        (WebCore::centerRectVerticallyInParentInputElement):
88669        * platform/qt/RenderThemeQt.cpp:
88670        (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
88671        (WebCore::RenderThemeQt::paintMediaSliderThumb):
88672        Removed an ASSERT() because nullness of o->node() is already asserted.
88673        * rendering/RenderInputSpeech.cpp:
88674        (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
88675        * rendering/RenderMediaControlsChromium.cpp:
88676        (WebCore::paintMediaSliderThumb):
88677        Passing shadowHost() to toParentMediaElement(), which accepts 0 and will return 0.
88678        (WebCore::paintMediaVolumeSliderThumb): ditto.
88679        * rendering/RenderThemeChromiumSkia.cpp:
88680        (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
88681        (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
88682        (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
88683        * rendering/RenderThemeMac.mm:
88684        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
88685        Remove an ASSERT(input) because input never be null unless o->node() is
88686        null. If o->node() is null, this function crashes.
88687        (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
88688        (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
88689        (WebCore::RenderThemeMac::paintMediaMuteButton):
88690        It's ok to ignore "node is a media element" case because this function
88691        works only if node->isMediaControlElement().
88692        (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
88693        (WebCore::RenderThemeMac::paintMediaSliderTrack): ditto.
88694        * rendering/RenderThemeSafari.cpp:
88695        (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
88696        Remove an ASSERT(input) because input never be null unless o->node() is
88697        null. If o->node() is null, this function crashes.
88698        (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): ditto.
88699        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): ditto.
88700        * rendering/RenderThemeWinCE.cpp:
88701        (WebCore::mediaElementParent):
88702
887032012-07-24  Peter Beverloo  <peter@chromium.org>
88704
88705        [Chromium] Build fix for Android after r123424
88706        https://bugs.webkit.org/show_bug.cgi?id=92082
88707
88708        Unreviewed build fix.
88709
88710        Mark removed the PlatformSupport.h header from ScrollbarThemeChromiumAndroid.cpp
88711        in r123424, while there still are two references left to another method and a
88712        constant. Re-add the include directive.
88713
88714        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
88715
887162012-07-24  Kentaro Hara  <haraken@chromium.org>
88717
88718        [JSC] REGRESSION(r122912): CodeGeneratorJS.pm generates wrong code
88719        for static attributes in supplemental IDL files
88720        https://bugs.webkit.org/show_bug.cgi?id=91925
88721
88722        Reviewed by Adam Barth.
88723
88724        r122912 implemented static attributes in CodeGeneratorJS.pm.
88725        However, it generates wrong code for static attributes in supplemental
88726        IDL files. This patch fixes it as shown in JSTestInterface.cpp.
88727        This fix aligns with the fix in CodeGeneratorV8.pm (r123308).
88728
88729        Test: bindings/scripts/test/TestSupplemental.idl
88730
88731        * bindings/scripts/CodeGeneratorJS.pm:
88732        (GenerateImplementation):
88733        * bindings/scripts/test/JS/JSTestInterface.cpp:
88734        (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
88735        (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
88736        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
88737
887382012-07-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
88739
88740        Add *explicit* keyword to constructor which has a parameter in bridge, history, loader and plugins.
88741        https://bugs.webkit.org/show_bug.cgi?id=92064
88742
88743        Reviewed by Kentaro Hara.
88744
88745        Some constructors missed to use *explicit* keyword. They need to be added
88746        *explicit* keyword to contructor which has a parameter in order to avoid
88747        implicit type conversion.
88748
88749        No new tests. Covered by existing tests.
88750
88751        * bridge/IdentifierRep.h:
88752        (WebCore::IdentifierRep::IdentifierRep):
88753        * history/BackForwardListImpl.h:
88754        (BackForwardListImpl):
88755        * history/CachedFrame.h:
88756        (CachedFrame):
88757        * history/HistoryItem.h:
88758        (HistoryItem):
88759        * loader/DocumentWriter.h:
88760        (DocumentWriter):
88761        * loader/FrameNetworkingContext.h:
88762        (WebCore::FrameNetworkingContext::FrameNetworkingContext):
88763        * loader/HistoryController.h:
88764        * loader/ImageLoader.h:
88765        (ImageLoader):
88766        * loader/LinkLoader.h:
88767        (LinkLoader):
88768        * loader/MainResourceLoader.h:
88769        (MainResourceLoader):
88770        * loader/NavigationAction.h:
88771        (NavigationAction):
88772        * loader/NavigationScheduler.h:
88773        (NavigationScheduler):
88774        * loader/PolicyChecker.h:
88775        (PolicyChecker):
88776        * loader/SubframeLoader.h:
88777        (SubframeLoader):
88778        * loader/ThreadableLoaderClientWrapper.h:
88779        (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
88780        * plugins/PluginData.h:
88781        (PluginData):
88782        * plugins/PluginViewBase.h:
88783        (WebCore::PluginViewBase::PluginViewBase):
88784
887852012-07-24  Patrick Gansterer  <paroga@webkit.org>
88786
88787        [Qt] Fix conversion from GregorianDateTime to QTime
88788        https://bugs.webkit.org/show_bug.cgi?id=92068
88789
88790        Reviewed by Simon Hausmann.
88791
88792        * bridge/qt/qt_runtime.cpp:
88793        (JSC::Bindings::convertValueToQVariant):
88794        * bridge/qt/qt_runtime_qt4.cpp:
88795        (JSC::Bindings::convertValueToQVariant):
88796
887972012-07-24  Arko Saha  <arko@motorola.com>
88798
88799        Microdata: Implement PropertyNodeList interface.
88800        https://bugs.webkit.org/show_bug.cgi?id=80269
88801
88802        Reviewed by Ryosuke Niwa.
88803
88804        Added support for PropertyNodeList interface. Currently HTMLPropertiesCollection.namedItem(name)
88805        returns NodeList object. Made changes so that it will return PropertyNodeList object.
88806
88807        Implemented propertyNodeList.getValues() method. It returns an array of various values. Its
88808        values are obtained from the "itemValue" DOM property of each of the elements represented by
88809        the object, in tree order.
88810
88811        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist
88812
88813        Tests: fast/dom/MicroData/nameditem-returns-propertynodelist.html
88814               fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
88815               fast/dom/MicroData/propertynodelist-getvalues-test.html
88816               fast/dom/MicroData/propertynodelist-test-add-remove-element.html
88817
88818        * CMakeLists.txt:
88819        * DerivedSources.cpp:
88820        * DerivedSources.make:
88821        * DerivedSources.pri:
88822        * GNUmakefile.list.am:
88823        * Target.pri:
88824        * UseJSC.cmake:
88825        * UseV8.cmake:
88826        * WebCore.gypi:
88827        * WebCore.vcproj/WebCore.vcproj:
88828        * WebCore.xcodeproj/project.pbxproj:
88829        * bindings/gobject/GNUmakefile.am:
88830        * bindings/js/JSBindingsAllInOne.cpp:
88831        * bindings/js/JSMicroDataItemValueCustom.cpp: Added.
88832        (WebCore):
88833        (WebCore::toJS): Added toJS() custom method. Returns Node if itemValue is node else returns String.
88834        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp: Added.
88835        (WebCore):
88836        (WebCore::toV8): Added toV8 custom code.
88837        * dom/DynamicNodeList.cpp:
88838        (WebCore::DynamicNodeListCacheBase::rootNode): Return document if owner node has itemref attribute specified.
88839        (WebCore):
88840        (WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute): Returns true if owner node has itemref attribute
88841        specified with root type NodeListRootedAtDocumentIfOwnerHasItemrefAttr.
88842        (WebCore::DynamicNodeListCacheBase::invalidateCache):
88843        (WebCore::DynamicNodeList::itemWithName): Update itemrefElements cache if root type is
88844        NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
88845        * dom/DynamicNodeList.h: Added m_hasItemRefElements in DynamicNodeListCacheBase to check if itemRefElmenets cache
88846        is valid.
88847        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
88848        (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
88849        (DynamicNodeListCacheBase):
88850        (WebCore::DynamicNodeListCacheBase::isItemRefElementsCacheValid):
88851        (WebCore::DynamicNodeListCacheBase::setItemRefElementsCacheValid):
88852        (WebCore::DynamicNodeListCacheBase::rootType): Returns cached root type.
88853        (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Invalidate NodeListCache on itemref
88854        attribute change.
88855        * dom/Node.cpp:
88856        (WebCore::Node::propertyNodeList):
88857        * dom/Node.h:
88858        (WebCore):
88859        (Node):
88860        * dom/PropertyNodeList.cpp: Added.
88861        (WebCore):
88862        (WebCore::PropertyNodeList::PropertyNodeList):
88863        (WebCore::PropertyNodeList::~PropertyNodeList):
88864        (WebCore::PropertyNodeList::elementIsPropertyOfRefElement): Checks if the testElement is a property of Microdata
88865        item.
88866        (WebCore::PropertyNodeList::updateRefElements):
88867        (WebCore::PropertyNodeList::nodeMatches):
88868        (WebCore::PropertyNodeList::getValues): Returns PropertyValueArray whose values are obtained from the
88869        itemValue DOM property of each of the elements represented by the object, in tree order.
88870        * dom/PropertyNodeList.h: Added.
88871        (WebCore):
88872        (PropertyNodeList):
88873        (WebCore::PropertyNodeList::create):
88874        * dom/PropertyNodeList.idl: Added.
88875        * html/HTMLCollection.cpp:
88876        (WebCore::DynamicNodeListCacheBase::itemCommon): Update itemrefElements cache if its a NodeListCollectionType with
88877        root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
88878        * html/HTMLElement.cpp:
88879        (WebCore::HTMLElement::properties):
88880        (WebCore):
88881        (WebCore::HTMLElement::getItemRefElements): Returns the ItemRefElements list of given element. Added this
88882        method to share the code between HTMLPropertiesCollection and PropertyNodeList to update itemRefElements.
88883        * html/HTMLElement.h:
88884        (HTMLElement):
88885        * html/HTMLPropertiesCollection.cpp:
88886        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
88887        (WebCore::HTMLPropertiesCollection::updateRefElements):
88888        (WebCore::HTMLPropertiesCollection::updateNameCache):
88889        (WebCore::HTMLPropertiesCollection::namedItem): Return PropertyNodeList object instead of NodeList.
88890        (WebCore::HTMLPropertiesCollection::hasNamedItem): Return true if it finds an item with given
88891        name in the properties collection.
88892        * html/HTMLPropertiesCollection.h: Removed m_hasItemRefElements member variable, now DynamicNodeListCacheBase
88893        has isItemRefElementsCacheValid. Also removed m_hasPropertyNameCache, as DynamicNodeListCacheBase already has
88894        hasNameCache() and setHasNameCache().
88895        (WebCore):
88896        (HTMLPropertiesCollection):
88897        (WebCore::HTMLPropertiesCollection::invalidateCache):
88898        (WebCore::HTMLPropertiesCollection::updatePropertyCache):
88899        * html/HTMLPropertiesCollection.idl:
88900        * html/MicroDataItemValue.idl: Added.
88901        * page/DOMWindow.idl:
88902
889032012-07-24  Kentaro Hara  <haraken@chromium.org>
88904
88905        [JSC] REGRESSION(r122912): CodeGeneratorJS.pm should not
88906        implicitly assume ScriptExecutionContext for static attributes
88907        https://bugs.webkit.org/show_bug.cgi?id=91924
88908
88909        Reviewed by Adam Barth.
88910
88911        r122912 implemented static attributes in CodeGeneratorJS.pm.
88912        However, the generated code assumes that static attributes
88913        always require ScriptExecutionContext, which is wrong.
88914        If we need a ScriptExecutionContext, we should specify
88915        [CallWith=ScriptExecutionContext].
88916
88917        This patch fixes CodeGeneratorJS.pm so that static attributes
88918        do not assume ScriptExecutionContext. This fix aligns with
88919        the fix in CodeGeneratorV8.pm in r123308.
88920
88921        Test: bindings/scripts/test/TestObj.idl
88922
88923        * bindings/scripts/CodeGeneratorJS.pm:
88924        (GenerateImplementation):
88925        * bindings/scripts/test/JS/JSTestInterface.cpp:
88926        (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
88927        (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
88928        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
88929        * bindings/scripts/test/JS/JSTestObj.cpp:
88930        (WebCore::jsTestObjConstructorStaticReadOnlyIntAttr):
88931        (WebCore::jsTestObjConstructorStaticStringAttr):
88932        (WebCore::setJSTestObjConstructorStaticStringAttr):
88933
889342012-07-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
88935
88936        Missing *explicit* keyword in editing.
88937        https://bugs.webkit.org/show_bug.cgi?id=92055
88938
88939        Reviewed by Ryosuke Niwa.
88940
88941        Some constructors missed to use *explicit* keyword. They need to be added
88942        *explicit* keyword to contructor which has a parameter in order to avoid
88943        implicit type conversion.
88944
88945        No new tests. Covered by existing tests.
88946
88947        * editing/AlternativeTextController.h:
88948        (WebCore::AlternativeTextController::UNLESS_ENABLED):
88949        * editing/BreakBlockquoteCommand.h:
88950        (BreakBlockquoteCommand):
88951        * editing/DeleteButton.h:
88952        (DeleteButton):
88953        * editing/DeleteButtonController.h:
88954        (DeleteButtonController):
88955        * editing/EditCommand.h:
88956        (EditCommand):
88957        (WebCore::SimpleEditCommand::SimpleEditCommand):
88958        * editing/EditingBehavior.h:
88959        (WebCore::EditingBehavior::EditingBehavior):
88960        * editing/EditingStyle.h:
88961        (EditingStyle):
88962        * editing/Editor.h:
88963        (Editor):
88964        * editing/FrameSelection.h:
88965        (FrameSelection):
88966        * editing/InsertLineBreakCommand.h:
88967        (InsertLineBreakCommand):
88968        * editing/ModifySelectionListLevel.h:
88969        (ModifySelectionListLevelCommand):
88970        (DecreaseSelectionListLevelCommand):
88971        * editing/RemoveFormatCommand.h:
88972        (RemoveFormatCommand):
88973        * editing/RemoveNodeCommand.h:
88974        (RemoveNodeCommand):
88975        * editing/RemoveNodePreservingChildrenCommand.h:
88976        (RemoveNodePreservingChildrenCommand):
88977        * editing/ReplaceNodeWithSpanCommand.h:
88978        (ReplaceNodeWithSpanCommand):
88979        * editing/TextInsertionBaseCommand.h:
88980        (TextInsertionBaseCommand):
88981        * editing/UndoManager.h:
88982        (UndoManager):
88983        * editing/UnlinkCommand.h:
88984        (UnlinkCommand):
88985        * editing/WrapContentsInDummySpanCommand.h:
88986        (WrapContentsInDummySpanCommand):
88987
889882012-07-23  Dominic Mazzoni  <dmazzoni@google.com>
88989
88990        AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
88991        https://bugs.webkit.org/show_bug.cgi?id=87899
88992
88993        Reviewed by Chris Fleizach.
88994
88995        Refactors AccessibilityRenderObject so that it inherits from a new class,
88996        AccessibilityNodeObject, that can be constructed from a Node without a
88997        renderer. Modifies AXObjectCache so that it automatically creates an
88998        AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
88999        A new layout test verifies that this correctly exposes an accessibility
89000        tree with appropriate roles for elements in a canvas subtree.
89001
89002        This patch does not try to complete the implementation of
89003        AccessibilityNodeObject. Most AX methods are still unimplemented and need
89004        to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
89005        in a future patch.
89006        
89007        This patch also doesn't change anything outside of WebCore/accessibility, so
89008        the rest of WebCore only calls AXObjectCache when there are changes to a
89009        RenderObject, not to a Node. Accessible notifications on nodes without
89010        renderers need to be implemented in a future patch.
89011
89012        Test: accessibility/canvas-accessibilitynodeobject.html
89013
89014        * CMakeLists.txt:
89015        * GNUmakefile.list.am:
89016        * Target.pri:
89017        * WebCore.gypi:
89018        * accessibility/AXObjectCache.cpp:
89019        (WebCore::AXObjectCache::get):
89020        (WebCore):
89021        (WebCore::createFromNode):
89022        (WebCore::AXObjectCache::getOrCreate):
89023        (WebCore::AXObjectCache::remove):
89024        * accessibility/AXObjectCache.h:
89025        (AXObjectCache):
89026        (WebCore::AXObjectCache::get):
89027        (WebCore::AXObjectCache::getOrCreate):
89028        (WebCore::AXObjectCache::remove):
89029        * accessibility/AccessibilityARIAGrid.cpp:
89030        (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
89031        (WebCore):
89032        (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
89033        (WebCore::AccessibilityARIAGrid::init):
89034        (WebCore::AccessibilityARIAGrid::create):
89035        * accessibility/AccessibilityARIAGrid.h:
89036        (AccessibilityARIAGrid):
89037        * accessibility/AccessibilityARIAGridCell.cpp:
89038        (WebCore::AccessibilityARIAGridCell::create):
89039        * accessibility/AccessibilityARIAGridRow.cpp:
89040        (WebCore::AccessibilityARIAGridRow::create):
89041        * accessibility/AccessibilityAllInOne.cpp:
89042        * accessibility/AccessibilityList.cpp:
89043        (WebCore::AccessibilityList::create):
89044        * accessibility/AccessibilityListBox.cpp:
89045        (WebCore::AccessibilityListBox::create):
89046        * accessibility/AccessibilityMediaControls.cpp:
89047        (WebCore::AccessibilityMediaControl::create):
89048        (WebCore::AccessibilityMediaControlsContainer::create):
89049        (WebCore::AccessibilityMediaTimeline::create):
89050        (WebCore::AccessibilityMediaTimeDisplay::create):
89051        * accessibility/AccessibilityMenuList.cpp:
89052        (WebCore::AccessibilityMenuList::create):
89053        (WebCore):
89054        * accessibility/AccessibilityMenuList.h:
89055        (AccessibilityMenuList):
89056        * accessibility/AccessibilityNodeObject.cpp: Added.
89057        (WebCore):
89058        (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
89059        (WebCore::AccessibilityNodeObject::~AccessibilityNodeObject):
89060        (WebCore::AccessibilityNodeObject::init):
89061        (WebCore::AccessibilityNodeObject::create):
89062        (WebCore::AccessibilityNodeObject::detach):
89063        (WebCore::AccessibilityNodeObject::childrenChanged):
89064        (WebCore::AccessibilityNodeObject::updateAccessibilityRole):
89065        (WebCore::AccessibilityNodeObject::firstChild):
89066        (WebCore::AccessibilityNodeObject::lastChild):
89067        (WebCore::AccessibilityNodeObject::previousSibling):
89068        (WebCore::AccessibilityNodeObject::nextSibling):
89069        (WebCore::AccessibilityNodeObject::parentObjectIfExists):
89070        (WebCore::AccessibilityNodeObject::parentObject):
89071        (WebCore::AccessibilityNodeObject::elementRect):
89072        (WebCore::AccessibilityNodeObject::setNode):
89073        (WebCore::AccessibilityNodeObject::document):
89074        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
89075        (WebCore::AccessibilityNodeObject::addChildren):
89076        (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
89077        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
89078        (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
89079        (WebCore::AccessibilityNodeObject::ariaRoleAttribute):
89080        (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):
89081        * accessibility/AccessibilityNodeObject.h: Added.
89082        (WebCore):
89083        (AccessibilityNodeObject):
89084        (WebCore::AccessibilityNodeObject::isAccessibilityNodeObject):
89085        (WebCore::AccessibilityNodeObject::node):
89086        (WebCore::AccessibilityNodeObject::isDetached):
89087        (WebCore::toAccessibilityNodeObject):
89088        * accessibility/AccessibilityObject.h:
89089        (WebCore::AccessibilityObject::isAccessibilityNodeObject):
89090        * accessibility/AccessibilityProgressIndicator.cpp:
89091        (WebCore::AccessibilityProgressIndicator::create):
89092        * accessibility/AccessibilityRenderObject.cpp:
89093        (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
89094        (WebCore::AccessibilityRenderObject::init):
89095        (WebCore):
89096        (WebCore::AccessibilityRenderObject::create):
89097        (WebCore::AccessibilityRenderObject::detach):
89098        (WebCore::AccessibilityRenderObject::setRenderer):
89099        (WebCore::AccessibilityRenderObject::canHaveChildren):
89100        (WebCore::AccessibilityRenderObject::addCanvasChildren):
89101        (WebCore::AccessibilityRenderObject::addChildren):
89102        * accessibility/AccessibilityRenderObject.h:
89103        (AccessibilityRenderObject):
89104        * accessibility/AccessibilitySlider.cpp:
89105        (WebCore::AccessibilitySlider::create):
89106        * accessibility/AccessibilityTable.cpp:
89107        (WebCore::AccessibilityTable::AccessibilityTable):
89108        (WebCore):
89109        (WebCore::AccessibilityTable::~AccessibilityTable):
89110        (WebCore::AccessibilityTable::init):
89111        (WebCore::AccessibilityTable::create):
89112        * accessibility/AccessibilityTable.h:
89113        (AccessibilityTable):
89114        * accessibility/AccessibilityTableCell.cpp:
89115        (WebCore::AccessibilityTableCell::create):
89116        * accessibility/AccessibilityTableRow.cpp:
89117        (WebCore::AccessibilityTableRow::create):
89118
891192012-07-23  David Barr  <davidbarr@chromium.org>
89120
89121        Fix ENABLE_CSS_IMAGE_ORIENTATION compile flag
89122        https://bugs.webkit.org/show_bug.cgi?id=91961
89123
89124        Reviewed by Tony Chang.
89125
89126        https://bugs.webkit.org/show_bug.cgi?id=89055
89127        A rule was missed implementing the ENABLE_CSS_IMAGE_ORIENTATION compile flag.
89128
89129        https://bugs.webkit.org/show_bug.cgi?id=90046
89130        Half of the missing rule was inadvertently added together with ENABLE_CSS_STICKY_POSITION.
89131
89132        No new tests; build configuration fix.
89133
89134        * Configurations/FeatureDefines.xcconfig:
89135
891362012-07-23  Douglas Stockwell  <dstockwell@chromium.org>
89137
89138        Null-pointer crash when a derived color like -webkit-activelink is set in a gradient stop
89139        https://bugs.webkit.org/show_bug.cgi?id=89148
89140
89141        Reviewed by Simon Fraser.
89142
89143        CSSGradientValue attempted to resolve colors during paint, this crashed
89144        when a derived color like -webkit-activelink was encountered because the
89145        corresponding element was no longer available in the StyleResolver.
89146        Instead, by adding a field to CSSGradientColorStop we can resolve and
89147        then cache the resolved colors at the correct time. To avoid sharing
89148        cached derived colors between elements we clone the gradient values when
89149        needed.
89150
89151        Test: fast/css/crash-on-gradient-with-derived-color.html
89152
89153        * css/CSSGradientValue.cpp:
89154        (WebCore::CSSGradientValue::gradientWithStylesResolved): Added. Resolve and cache
89155        resolved colors, clone if colors are derived from the element.
89156        (WebCore):
89157        (WebCore::CSSGradientValue::addStops):
89158        (WebCore::CSSGradientValue::isCacheable): Defer to new logic in
89159        StyleResolver.
89160        * css/CSSGradientValue.h:
89161        (CSSGradientColorStop): Added cache of resolved color.
89162        (CSSGradientValue):
89163        (CSSLinearGradientValue):
89164        (CSSRadialGradientValue):
89165        * css/CSSImageGeneratorValue.h:
89166        (WebCore):
89167        * css/CSSValue.h:
89168        (WebCore::CSSValue::isGradientValue):
89169        * css/StyleResolver.cpp:
89170        (WebCore::StyleResolver::collectMatchingRulesForList):
89171        * css/StyleResolver.h:
89172        (StyleResolver):
89173        * rendering/style/StyleGeneratedImage.cpp:
89174        (WebCore::StyleGeneratedImage::image): Revert change from r96449. This
89175        is no longer necessary as the gradient colors are now resolved at a
89176        time when the style is set on StyleResolver.
89177
891782012-07-23  Patrick Gansterer  <paroga@webkit.org>
89179
89180        Move GregorianDateTime from JSC to WTF namespace
89181        https://bugs.webkit.org/show_bug.cgi?id=91948
89182
89183        Reviewed by Geoffrey Garen.
89184
89185        Moving GregorianDateTime into the WTF namespace allows us to us to
89186        use it in WebCore too. The new class has the same behaviour as the
89187        old struct. Only the unused timeZone member has been removed.
89188
89189        * bridge/qt/qt_runtime.cpp:
89190        (JSC::Bindings::convertValueToQVariant):
89191        (JSC::Bindings::convertQVariantToValue):
89192        * bridge/qt/qt_runtime_qt4.cpp:
89193        (JSC::Bindings::convertValueToQVariant):
89194        (JSC::Bindings::convertQVariantToValue):
89195
891962012-07-23  Mark Pilgrim  <pilgrim@chromium.org>
89197
89198        [Chromium] Move layoutTestMode to WebCore
89199        https://bugs.webkit.org/show_bug.cgi?id=92010
89200
89201        Reviewed by Adam Barth.
89202
89203        Part of a refactoring series. See tracking bug 82948.
89204
89205        * CMakeLists.txt:
89206        * GNUmakefile.list.am:
89207        * Target.pri:
89208        * WebCore.gypi:
89209        * WebCore.vcproj/WebCore.vcproj:
89210        * WebCore.xcodeproj/project.pbxproj:
89211        * bindings/generic/RuntimeEnabledFeatures.h:
89212        (RuntimeEnabledFeatures):
89213        * platform/LayoutTestSupport.cpp: Added.
89214        (WebCore):
89215        (WebCore::isRunningLayoutTest):
89216        (WebCore::setIsRunningLayoutTest):
89217        * platform/LayoutTestSupport.h: Added.
89218        (WebCore):
89219        * platform/chromium/PlatformSupport.h:
89220        (PlatformSupport):
89221        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
89222        (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
89223        (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
89224        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
89225        (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
89226        (WebCore::ScrollbarThemeChromiumWin::buttonSize):
89227        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
89228        (WebCore):
89229        (WebCore::LookupAltName):
89230        (WebCore::fontContainsCharacter):
89231        (WebCore::FillLogFont):
89232        (WebCore::FontCache::getFontDataForCharacters):
89233        (WebCore::FontCache::createFontPlatformData):
89234        * platform/graphics/skia/FontCustomPlatformData.cpp:
89235        (WebCore::FontCustomPlatformData::fontPlatformData):
89236        * platform/graphics/skia/FontSkia.cpp:
89237        (WebCore::Font::drawGlyphs):
89238        * rendering/RenderThemeChromiumAndroid.cpp:
89239        (WebCore::RenderThemeChromiumAndroid::systemColor):
89240        (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
89241        * rendering/RenderThemeChromiumMac.mm:
89242        (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
89243        * rendering/RenderThemeChromiumSkia.cpp:
89244        (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
89245        * rendering/RenderThemeChromiumWin.cpp:
89246        (WebCore):
89247        (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
89248        (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
89249        (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
89250        (WebCore::RenderThemeChromiumWin::systemColor):
89251        (WebCore::menuListButtonWidth):
89252        (WebCore::RenderThemeChromiumWin::determineClassicState):
89253
892542012-07-23  Dave Tu  <dtu@chromium.org>
89255
89256        [chromium] Add droppedFrameCount to renderingStats.
89257        https://bugs.webkit.org/show_bug.cgi?id=91694
89258
89259        Reviewed by Adrienne Walker.
89260
89261        * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
89262        (WebCore):
89263        (WebCore::CCFrameRateCounter::frameInterval):
89264        (WebCore::CCFrameRateCounter::frameIndex):
89265        (WebCore::CCFrameRateCounter::CCFrameRateCounter):
89266        (WebCore::CCFrameRateCounter::markBeginningOfFrame):
89267        (WebCore::CCFrameRateCounter::isBadFrame):
89268        * platform/graphics/chromium/cc/CCFrameRateCounter.h:
89269        (WebCore::CCFrameRateCounter::droppedFrameCount):
89270        (CCFrameRateCounter):
89271        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
89272        (WebCore::CCLayerTreeHost::renderingStats):
89273        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
89274        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
89275        (WebCore::CCLayerTreeHostImpl::drawLayers):
89276        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
89277        (CCLayerTreeHostImpl):
89278        * platform/graphics/chromium/cc/CCRenderingStats.h:
89279        (CCRenderingStats):
89280        (WebCore::CCRenderingStats::CCRenderingStats):
89281        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
89282        (WebCore::CCSingleThreadProxy::implSideRenderingStats):
89283        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
89284        (WebCore::CCThreadProxy::implSideRenderingStatsOnImplThread):
89285
892862012-07-23  Dan Bernstein  <mitz@apple.com>
89287
89288        Fixed the build after r123418.
89289
89290        * WebCore.exp.in: Added DocumentMarkerController::addTextMatchMarker.
89291
892922012-07-23  Mike Lawther  <mikelawther@chromium.org>
89293
89294        CSS3 calc: optimise blending expression
89295        https://bugs.webkit.org/show_bug.cgi?id=90037
89296
89297        Reviewed by Tony Chang.
89298
89299        Introduce a new calc expression node - a BlendLength node. Given two Lengths and a progress
89300        this blends them together when evaluated.
89301
89302        An alternative and more general approach of being able to blend two CalcExpressionNodes was
89303        tested, but involves more memory allocations, was measurably slower, and nothing currently
89304        would make use of the generality. 
89305
89306        No functional change. Covered by existing tests.
89307
89308        * platform/CalculationValue.h:
89309        (CalcExpressionBlendLength):
89310        (WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
89311        (WebCore::CalcExpressionBlendLength::operator==):
89312        (WebCore::CalcExpressionBlendLength::evaluate):
89313        (WebCore):
89314        * platform/Length.cpp:
89315        (WebCore::Length::blendCalculation):
89316
893172012-07-23  Nico Weber  <thakis@chromium.org>
89318
89319        [chromium] Show search tickmarks on css-styled scrollbars
89320        https://bugs.webkit.org/show_bug.cgi?id=91949
89321
89322        Reviewed by Adrienne Walker.
89323
89324        This is done by letting RenderScrollbarTheme::paintTickmarks()
89325        delegate to the native ScrollbarTheme. To make this possible,
89326        move paintTickmarks() from ScrollbarThemeComposite to the
89327        superclass ScrollbarTheme.
89328
89329        For testing, add internals.addTextMatchMarker() and add a pixel test.
89330
89331        * platform/ScrollbarTheme.h:
89332        (WebCore::ScrollbarTheme::paintTickmarks):
89333        Moved paintTickmarks() from ScrollbarThemeComposite to here.
89334        * platform/ScrollbarThemeComposite.h:
89335        Remove paintTickmarks().
89336        * platform/chromium/ScrollbarThemeChromium.cpp:
89337        (WebCore::ScrollbarThemeChromium::paintTickmarks):
89338        Switch to drawing tickmarks as vectors, so they can be arbitrarily wide.
89339        * platform/chromium/ScrollbarThemeChromiumMac.h:
89340        (ScrollbarThemeChromiumMac):
89341        Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
89342        * platform/chromium/ScrollbarThemeChromiumMac.mm:
89343        (WebCore::ScrollbarThemeChromiumMac::paint):
89344        (WebCore::ScrollbarThemeChromiumMac::paintTickmarks):
89345        Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
89346        * rendering/RenderScrollbarTheme.cpp:
89347        (WebCore::RenderScrollbarTheme::paintTickmarks):
89348        Delegate to the native ScrollbarTheme for tickmark drawing.
89349        (WebCore):
89350        * rendering/RenderScrollbarTheme.h:
89351        (RenderScrollbarTheme):
89352        Override paintTickmarks().
89353
893542012-07-23  Brian Anderson  <brianderson@chromium.org>
89355
89356        [chromium] Use shallow flushes that don't glFlush
89357        https://bugs.webkit.org/show_bug.cgi?id=90325
89358
89359        Reviewed by Kenneth Russell.
89360
89361        Adds plumbing for the shallowFlushCHROMIUM extension and uses
89362        shallow flushes instead of normal flushes when uploading textures.
89363        Shallow flushes allow us to initiate command buffer flushes to
89364        the GPU thread/process without the overhead of a true glFlush.
89365
89366        CCTextureUpdaterTest updated to recognize shallow flushes.
89367
89368        * platform/chromium/support/Extensions3DChromium.cpp:
89369        (WebCore::Extensions3DChromium::shallowFlushCHROMIUM):
89370        (WebCore):
89371        * platform/graphics/chromium/Extensions3DChromium.h:
89372        (Extensions3DChromium):
89373        * platform/graphics/chromium/cc/CCGraphicsContext.h:
89374        * platform/graphics/chromium/cc/CCResourceProvider.cpp:
89375        (WebCore::CCResourceProvider::shallowFlushIfSupported):
89376        (WebCore):
89377        (WebCore::CCResourceProvider::CCResourceProvider):
89378        (WebCore::CCResourceProvider::initialize):
89379        * platform/graphics/chromium/cc/CCResourceProvider.h:
89380        (CCResourceProvider):
89381        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
89382        (WebCore::CCTextureUpdater::update):
89383
893842012-07-23  Hanyee Kim  <choco@company100.net>
89385
89386        When using TextureMapper, WebKit does not retain final value of opacity in animations, unless it is specified on the last key frame.
89387        https://bugs.webkit.org/show_bug.cgi?id=91322
89388
89389        Reviewed by Noam Rosenthal.
89390
89391        When -webkit-fill-mode is forwards, GraphicsLayerAnimation::apply does not apply
89392        the property values defined in the last executing keyframe after the final iteration of animation.
89393
89394        This patch does not return right after the end of animation, but it keeps applying
89395        the property values defined in the last executing keyframe.
89396        Add normalizedAnimationValueForFillsForwards function that returns a normalized value of the
89397        last executing keyframe.
89398
89399        Link to CSS Animations spec: http://www.w3.org/TR/css3-animations/#animation-fill-mode-property
89400
89401        Test: animations/fill-mode-forwards2.html
89402
89403        * platform/graphics/GraphicsLayerAnimation.cpp:
89404        (WebCore::normalizedAnimationValueForFillsForwards):
89405        (WebCore):
89406        (WebCore::GraphicsLayerAnimation::apply):
89407
894082012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
89409
89410        Unreviewed, rolling out r123184, r123195, and r123197.
89411        http://trac.webkit.org/changeset/123184
89412        http://trac.webkit.org/changeset/123195
89413        http://trac.webkit.org/changeset/123197
89414        https://bugs.webkit.org/show_bug.cgi?id=92049
89415
89416        pagecycler regression (Requested by morrita on #webkit).
89417
89418        * WebCore.exp.in:
89419        * dom/Document.cpp:
89420        (WebCore::Document::Document):
89421        (WebCore::Document::~Document):
89422        (WebCore::Document::suggestedMIMEType):
89423        * dom/Document.h:
89424        (WebCore):
89425        (WebCore::Node::isDocumentNode):
89426        (WebCore::Node::Node):
89427        * dom/Node.cpp:
89428        (WebCore::Node::~Node):
89429        (WebCore::Node::setDocument):
89430        (WebCore):
89431        (WebCore::Node::setTreeScope):
89432        (WebCore::Node::treeScope):
89433        (WebCore::Node::isInShadowTree):
89434        (WebCore::Node::reportMemoryUsage):
89435        * dom/Node.h:
89436        (Node):
89437        (WebCore::Node::document):
89438        (WebCore::Node::inDocument):
89439        * dom/NodeRareData.h:
89440        (WebCore::NodeRareData::NodeRareData):
89441        (WebCore::NodeRareData::treeScope):
89442        (WebCore::NodeRareData::setTreeScope):
89443        (NodeRareData):
89444        * dom/ShadowRoot.cpp:
89445        (WebCore::ShadowRoot::ShadowRoot):
89446        * dom/TreeScope.cpp:
89447        (WebCore::TreeScope::TreeScope):
89448        (WebCore::TreeScope::setParentTreeScope):
89449        * dom/TreeScope.h:
89450        (WebCore):
89451        (WebCore::TreeScope::idTargetObserverRegistry):
89452        (TreeScope):
89453        * dom/TreeScopeAdopter.cpp:
89454        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
89455        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
89456        * editing/MoveSelectionCommand.cpp:
89457        * editing/RemoveNodeCommand.cpp:
89458        * editing/RemoveNodePreservingChildrenCommand.cpp:
89459        * inspector/PageConsoleAgent.cpp:
89460
894612012-07-23  Roger Fong  <roger_fong@apple.com>
89462
89463        On Windows, if select element is off screen horizontally, 
89464        menu is either inappropriately resized or positioned offscreen.
89465        https://bugs.webkit.org/show_bug.cgi?id=91913
89466        <rdar://problem/7611229>
89467
89468        Reviewed by Tim Horton.
89469
89470        If the select element is positioned off the edge of the screen to the left, 
89471        the menu is resized. It should not be resized, just shifted to remain on the screen.
89472        If the select element is positioned off the edge of the screen to the right, 
89473        the menu goes off screen instead of being shifted over to appear on screen.
89474        This problem only occurs on Windows.
89475        
89476        Test: ManualTests/win/select-menu-off-screen.html
89477
89478        * platform/win/PopupMenuWin.cpp:
89479        (WebCore::PopupMenuWin::calculatePositionAndSize):
89480        Modified final horizontal position calculation code to position
89481        popup menu on screen if it would otherwise go off.
89482        
894832012-07-23  David Dorwin  <ddorwin@chromium.org>
89484
89485        Fixed crash in webkitAddKey() when key parameter is null.
89486        https://bugs.webkit.org/show_bug.cgi?id=85444
89487
89488        Reviewed by Kentaro Hara.
89489
89490        Reference: Step 1 of http://dvcs.w3.org/hg/html-media/raw-file/5f76a0b43836/encrypted-media/encrypted-media.html#dom-addkey
89491
89492        Tests: media/encrypted-media/encrypted-media-syntax.html 
89493
89494        * html/HTMLMediaElement.cpp:
89495        (WebCore::HTMLMediaElement::webkitAddKey):
89496
894972012-07-23  Hayato Ito  <hayato@chromium.org>
89498
89499        A FocusScope for a distributed node should not be its TreeScope.
89500        https://bugs.webkit.org/show_bug.cgi?id=91829
89501
89502        Reviewed by Dimitri Glazkov.
89503
89504        Current implementation of FocusScope::focusScopeOf(Node*) returns
89505        the given node's treeScope().  That does not apply if the node is
89506        a distributed node.  We should calculate a FocusScope for a
89507        distributed node by traversing ancestor nodes in Composed Shadow
89508        Tree.
89509
89510        Test: fast/dom/shadow/focus-navigation-with-distributed-nodes.html
89511
89512        * page/FocusController.cpp:
89513        (WebCore::FocusScope::focusScopeOf):
89514
895152012-07-23  Douglas Stockwell  <dstockwell@google.com>
89516
89517        Null-pointer crash when parsing border-image
89518        https://bugs.webkit.org/show_bug.cgi?id=91963
89519
89520        Reviewed by Darin Adler.
89521
89522        Test: fast/css/border-image-fill-crash.html
89523
89524        * css/CSSParser.cpp:
89525        (WebCore::CSSParser::parseBorderImageRepeat): Handle the case where
89526        parseBorderImageRepeat is called when the value list is empty.
89527
895282012-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>
89529
89530        [CSS Exclusions] SVG shape errors should invalidate exclusion shapes
89531        https://bugs.webkit.org/show_bug.cgi?id=91761
89532
89533        Reviewed by Andreas Kling.
89534
89535        CSS exclusion shapes that are specified with negative radiuses or
89536        height/width are now considered invalid and ignored.
89537
89538        Tests added to
89539        LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
89540
89541        * css/CSSParser.cpp:
89542        (WebCore::CSSParser::parseExclusionShapeRectangle):
89543        (WebCore::CSSParser::parseExclusionShapeCircle):
89544        (WebCore::CSSParser::parseExclusionShapeEllipse):
89545
895462012-07-23  Tien-Ren Chen  <trchen@chromium.org>
89547
89548        [chromium] Implement scrollbar theme for Android
89549        https://bugs.webkit.org/show_bug.cgi?id=91674
89550
89551        Reviewed by Adam Barth.
89552
89553        Previously the scrollbar for Android was implemented as an extra
89554        drawing pass in the compositor. Now we switch to use the standard
89555        ScrollbarTheme mechanism.
89556
89557        No new tests. We use mock scrollbars during layout test to share
89558        pixel results with Linux.
89559
89560        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
89561        (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
89562        (WebCore::ScrollbarThemeChromiumAndroid::thumbPosition):
89563        (WebCore::ScrollbarThemeChromiumAndroid::thumbLength):
89564        (WebCore::ScrollbarThemeChromiumAndroid::backButtonRect):
89565        (WebCore::ScrollbarThemeChromiumAndroid::forwardButtonRect):
89566        (WebCore::ScrollbarThemeChromiumAndroid::trackRect):
89567        (WebCore):
89568        (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
89569        (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
89570        * platform/chromium/ScrollbarThemeChromiumAndroid.h:
89571        (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
89572        (ScrollbarThemeChromiumAndroid):
89573        (WebCore::ScrollbarThemeChromiumAndroid::hasButtons):
89574        (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
89575
895762012-07-23  Kwang Yul Seo  <skyul@company100.net>
89577
89578        Use the original token to create an element in "reconstruct the active formatting elements" and "call the adoption agency"
89579        https://bugs.webkit.org/show_bug.cgi?id=91703
89580
89581        Reviewed by Adam Barth.
89582
89583        The current WebKit HTML5 parser implementation does not hold the original token
89584        in the stack of open elements and the active formatting elements. This is
89585        problematic because the original token is used to create an element in
89586        "reconstruct the active formatting elements" and "call the adoption agency".
89587
89588        As a workaround, WebKit uses the saved element instead of the original token
89589        to create an element. But this causes us to fail examples like this:
89590        <b id="1"><p><script>document.getElementById("1").id = "2"</script></p>TEXT</b>
89591        reconstructTheActiveFormattingElements calls this method to open a second <b>
89592        tag to wrap TEXT, it will have id "2", even though the HTML5 spec implies it
89593        should be "1".
89594
89595        Created a ref-counted container class, HTMLStackItem to hold the original token
89596        and the namespace URI as well as the element. Changed HTMLElementStack and
89597        HTMLFormattingElementList to use HTMLStackItem.
89598        Changed HTMLConstructionSite::reconstructTheActiveFormattingElements and
89599        HTMLTreeBuilder::callTheAdoptionAgency to create an element from the saved token
89600        instead of the saved element.
89601
89602        Updated test expectation for html5lib/runner-expected.txt
89603        because now resources/scripted/adoption01.dat passes.
89604
89605        * html/parser/HTMLConstructionSite.cpp:
89606        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
89607        (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
89608        (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
89609        (WebCore::HTMLConstructionSite::insertHTMLFormElement):
89610        (WebCore::HTMLConstructionSite::insertHTMLElement):
89611        (WebCore::HTMLConstructionSite::insertFormattingElement):
89612        (WebCore::HTMLConstructionSite::insertScriptElement):
89613        (WebCore::HTMLConstructionSite::insertForeignElement):
89614        (WebCore::HTMLConstructionSite::createElementFromSavedToken):
89615        (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
89616        * html/parser/HTMLConstructionSite.h:
89617        (HTMLConstructionSite):
89618        (WebCore::HTMLConstructionSite::currentElementRecord):
89619        * html/parser/HTMLElementStack.cpp:
89620        (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
89621        (WebCore::HTMLElementStack::ElementRecord::replaceElement):
89622        (WebCore::HTMLElementStack::pushRootNode):
89623        (WebCore::HTMLElementStack::pushHTMLHtmlElement):
89624        (WebCore::HTMLElementStack::pushRootNodeCommon):
89625        (WebCore::HTMLElementStack::pushHTMLHeadElement):
89626        (WebCore::HTMLElementStack::pushHTMLBodyElement):
89627        (WebCore::HTMLElementStack::push):
89628        (WebCore::HTMLElementStack::insertAbove):
89629        (WebCore::HTMLElementStack::pushCommon):
89630        * html/parser/HTMLElementStack.h:
89631        (WebCore::HTMLElementStack::ElementRecord::element):
89632        (WebCore::HTMLElementStack::ElementRecord::node):
89633        (WebCore::HTMLElementStack::ElementRecord::stackItem):
89634        (ElementRecord):
89635        (HTMLElementStack):
89636        * html/parser/HTMLFormattingElementList.cpp:
89637        (WebCore::HTMLFormattingElementList::swapTo):
89638        (WebCore::HTMLFormattingElementList::append):
89639        * html/parser/HTMLFormattingElementList.h:
89640        (WebCore::HTMLFormattingElementList::Entry::Entry):
89641        (WebCore::HTMLFormattingElementList::Entry::isMarker):
89642        (WebCore::HTMLFormattingElementList::Entry::stackItem):
89643        (WebCore::HTMLFormattingElementList::Entry::element):
89644        (WebCore::HTMLFormattingElementList::Entry::replaceElement):
89645        (WebCore::HTMLFormattingElementList::Entry::operator==):
89646        (WebCore::HTMLFormattingElementList::Entry::operator!=):
89647        (Entry):
89648        (HTMLFormattingElementList):
89649        * html/parser/HTMLStackItem.h: Added.
89650        (WebCore):
89651        (HTMLStackItem):
89652        (WebCore::HTMLStackItem::create):
89653        (WebCore::HTMLStackItem::element):
89654        (WebCore::HTMLStackItem::node):
89655        (WebCore::HTMLStackItem::token):
89656        (WebCore::HTMLStackItem::namespaceURI):
89657        (WebCore::HTMLStackItem::HTMLStackItem):
89658        * html/parser/HTMLTreeBuilder.cpp:
89659        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
89660        (WebCore::HTMLTreeBuilder::processStartTag):
89661        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
89662
896632012-07-23  Andreas Kling  <kling@webkit.org>
89664
89665        Report the extra memory used by immutable StylePropertySet objects.
89666        <http://webkit.org/b/92032>
89667
89668        Reviewed by Anders Carlsson.
89669
89670        Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
89671        size on top of sizeof(T).
89672
89673        Use this in StylePropertySet::reportMemoryUsage() to properly account for the CSSProperty array
89674        tacked onto the end of the object when m_isMutable == false.
89675
89676        * css/StylePropertySet.h:
89677        (WebCore::StylePropertySet::reportMemoryUsage):
89678        * dom/MemoryInstrumentation.h:
89679        (WebCore::MemoryObjectInfo::reportObjectInfo):
89680        (WebCore::MemoryClassInfo::MemoryClassInfo):
89681
896822012-07-23  Gregg Tavares  <gman@google.com>
89683
89684        Fix WebGL texSubImage2D for cube maps
89685        https://bugs.webkit.org/show_bug.cgi?id=91927
89686
89687        Reviewed by Kenneth Russell.
89688
89689        Fixes texSubImage2D so any size rectangle can be passed in
89690        for cube maps.
89691
89692        Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
89693
89694        * html/canvas/WebGLRenderingContext.cpp:
89695        (WebCore):
89696        (WebCore::WebGLRenderingContext::copyTexImage2D):
89697        (WebCore::WebGLRenderingContext::texImage2DBase):
89698        (WebCore::WebGLRenderingContext::texSubImage2DBase):
89699        (WebCore::WebGLRenderingContext::validateTexFuncParameters):
89700        * html/canvas/WebGLRenderingContext.h:
89701        (WebGLRenderingContext):
89702
897032012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
89704
89705        Unreviewed, rolling out r123387.
89706        http://trac.webkit.org/changeset/123387
89707        https://bugs.webkit.org/show_bug.cgi?id=92036
89708
89709        Broke chromium win build (Requested by tony^work on #webkit).
89710
89711        * WebCore.gyp/WebCore.gyp:
89712        * WebCore.gyp/scripts/rule_bison.py:
89713        * bindings/scripts/preprocessor.pm:
89714        (applyPreprocessor):
89715        * make-hash-tools.pl:
89716
897172012-07-23  Kwang Yul Seo  <skyul@company100.net>
89718
89719        Ref-count AtomicHTMLToken
89720        https://bugs.webkit.org/show_bug.cgi?id=91981
89721
89722        Reviewed by Adam Barth.
89723
89724        Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
89725
89726        No new tests - no functional changes.
89727
89728        * html/parser/HTMLConstructionSite.cpp:
89729        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
89730        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
89731        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
89732        (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
89733        (WebCore::HTMLConstructionSite::insertDoctype):
89734        (WebCore::HTMLConstructionSite::insertComment):
89735        (WebCore::HTMLConstructionSite::insertCommentOnDocument):
89736        (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
89737        (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
89738        (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
89739        (WebCore::HTMLConstructionSite::insertHTMLFormElement):
89740        (WebCore::HTMLConstructionSite::insertHTMLElement):
89741        (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
89742        (WebCore::HTMLConstructionSite::insertFormattingElement):
89743        (WebCore::HTMLConstructionSite::insertScriptElement):
89744        (WebCore::HTMLConstructionSite::insertForeignElement):
89745        (WebCore::HTMLConstructionSite::createElement):
89746        (WebCore::HTMLConstructionSite::createHTMLElement):
89747        (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
89748        * html/parser/HTMLConstructionSite.h:
89749        (HTMLConstructionSite):
89750        * html/parser/HTMLToken.h:
89751        (WebCore::AtomicHTMLToken::create):
89752        (AtomicHTMLToken):
89753        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
89754        * html/parser/HTMLTreeBuilder.cpp:
89755        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
89756        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
89757        (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
89758        (WebCore::HTMLTreeBuilder::processToken):
89759        (WebCore::HTMLTreeBuilder::processDoctypeToken):
89760        (WebCore::HTMLTreeBuilder::processFakeStartTag):
89761        (WebCore::HTMLTreeBuilder::processFakeEndTag):
89762        (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
89763        (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
89764        (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
89765        (WebCore):
89766        (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
89767        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
89768        (WebCore::HTMLTreeBuilder::processStartTagForInTable):
89769        (WebCore::HTMLTreeBuilder::processStartTag):
89770        (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
89771        (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
89772        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
89773        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
89774        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
89775        (WebCore::HTMLTreeBuilder::processEndTagForInRow):
89776        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
89777        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
89778        (WebCore::HTMLTreeBuilder::processEndTagForInTable):
89779        (WebCore::HTMLTreeBuilder::processEndTag):
89780        (WebCore::HTMLTreeBuilder::processComment):
89781        (WebCore::HTMLTreeBuilder::processCharacter):
89782        (WebCore::HTMLTreeBuilder::processEndOfFile):
89783        (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
89784        (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
89785        (WebCore::HTMLTreeBuilder::defaultForInHead):
89786        (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
89787        (WebCore::HTMLTreeBuilder::defaultForAfterHead):
89788        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
89789        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
89790        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
89791        (WebCore::HTMLTreeBuilder::processScriptStartTag):
89792        (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
89793        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
89794        (WebCore::HTMLTreeBuilder::parseError):
89795        * html/parser/HTMLTreeBuilder.h:
89796        (HTMLTreeBuilder):
89797        * html/parser/TextDocumentParser.cpp:
89798        (WebCore::TextDocumentParser::insertFakePreElement):
89799
898002012-07-23  Scott Graham  <scottmg@google.com>
89801
89802        Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
89803        https://bugs.webkit.org/show_bug.cgi?id=91667
89804
89805        Reviewed by Tony Chang.
89806
89807        Using native tools instead of cygwin version improves build time
89808        performance by roughly 50% (on top of previous cl-instead-of-gcc
89809        change).
89810
89811        Also, use - instead of / for cl flags because a layer of project
89812        generator converts them to \ otherwise, which causes the preprocessing
89813        to fail (very slowly because of the cygwin-loop with a sleep 1).
89814
89815        No new tests.
89816
89817        * WebCore.gyp/WebCore.gyp:
89818        * WebCore.gyp/scripts/rule_bison.py:
89819        * bindings/scripts/preprocessor.pm:
89820        (applyPreprocessor):
89821        * make-hash-tools.pl:
89822
898232012-06-12  Jer Noble  <jer.noble@apple.com>
89824
89825        MediaController.currentTime should be kept stable during script execution.
89826        https://bugs.webkit.org/show_bug.cgi?id=88555
89827
89828        Reviewed by Eric Carlson.
89829
89830        Test: media/media-controller-time-constant.html
89831
89832        To keep MediaController.currentTime stable, add a new m_position variable and 
89833        a new m_clearPositionTimer timer.  Both must be mutable variables as they will
89834        be updated from within const functions.  Calls to currentTime() will result in
89835        stable values until the next runloop iteration.
89836
89837        * html/MediaController.cpp:
89838        (MediaController::MediaController):
89839        (MediaController::currentTime):
89840        (MediaController::setCurrentTime):
89841        (MediaController::clearPositionTimerFired):
89842        * html/MediaController.h:
89843
898442012-07-23  Huang Dongsung  <luxtella@company100.net>
89845
89846        Destroy CSS decoded data more eagerly once they become dead caches.
89847        https://bugs.webkit.org/show_bug.cgi?id=91733
89848
89849        Reviewed by Geoffrey Garen.
89850
89851        Internal review by Kwang Yul Seo.
89852
89853        There are three CachedResources with decoded data: CachedImage, CachedScript
89854        and CachedCSSStyleSheet. In the cases of CachedImage and CachedScript, we
89855        eagerly destroy the decoded data using Timer in CacehdResource::allClientsRemoved().
89856        We must apply the same policy here in CachedCSSStyleSheet because priority
89857        inversion can occur. For example, we can't destroy the decoded data of CachedImages
89858        when they are referenced by CachedCSSStyleSheet as background, mask or border
89859        images.
89860
89861        No new tests - no new testable functionality.
89862
89863        * loader/cache/CachedCSSStyleSheet.cpp:
89864        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
89865        (WebCore::CachedCSSStyleSheet::didAddClient):
89866        (WebCore::CachedCSSStyleSheet::allClientsRemoved):
89867        (WebCore::CachedCSSStyleSheet::destroyDecodedData):
89868        (WebCore):
89869        (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
89870        * loader/cache/CachedCSSStyleSheet.h:
89871        (CachedCSSStyleSheet):
89872
898732012-07-23  Simon Fraser  <simon.fraser@apple.com>
89874
89875        Part 2 of: Implement sticky positioning
89876        https://bugs.webkit.org/show_bug.cgi?id=90046
89877
89878        Reviewed by Ojan Vafai.
89879
89880        Turn on ENABLE_CSS_STICKY_POSITION. Add support for parsing the new '-webkit-sticky'
89881        value for position, returning it from getComputedStyle(), and storing it in RenderStyle.
89882
89883        Test: fast/css/sticky/parsing-position-sticky.html
89884
89885        * Configurations/FeatureDefines.xcconfig:
89886        * css/CSSComputedStyleDeclaration.cpp:
89887        (WebCore::getPositionOffsetValue):
89888        * css/CSSParser.cpp:
89889        (WebCore::isValidKeywordPropertyAndValue):
89890        * css/CSSPrimitiveValueMappings.h:
89891        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
89892        (WebCore::CSSPrimitiveValue::operator EPosition):
89893        * css/CSSValueKeywords.in:
89894        * rendering/style/RenderStyle.h:
89895        * rendering/style/RenderStyleConstants.h:
89896
898972012-07-23  Stephen Chenney  <schenney@chromium.org>
89898
89899        Crash when setting empty class name on a new element
89900        https://bugs.webkit.org/show_bug.cgi?id=92024
89901
89902        Reviewed by Andreas Kling.
89903
89904        Add a check for null attributeData() when setting the className to an
89905        empty string on a newly created element. New SVG elements have null
89906        attributeData() on baseVal upon creation.
89907
89908        Test: svg/custom/empty-className-baseVal-crash.html
89909
89910        * dom/StyledElement.cpp:
89911        (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
89912
899132012-07-23  Shawn Singh  <shawnsingh@chromium.org>
89914
89915        [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
89916        https://bugs.webkit.org/show_bug.cgi?id=80622
89917
89918        Reviewed by Adrienne Walker.
89919
89920        clipRect(), usesLayerClipping(), and drawableContentRect() have been
89921        very confusing in CCLayerTreeHostCommon for a while. This patch
89922        refactors it so that (1) clipping is only done locally in
89923        calcDrawTransforms, and (2) the layer's drawableContentRect value
89924        is now meaningful value outside of calcDrawTransforms.
89925        Additionally, the layer is now always clipped to the root
89926        surface's contentBounds (which are set to the viewport bounds).
89927        This refactor not only makes calcDrawTransforms far more readable and intuitive, but
89928        this patch enables more upcoming beneficial refactors, including
89929        the pending refactor in https://bugs.webkit.org/show_bug.cgi?id=88953.
89930
89931        Tests are also significantly updated to keep up with this refactoring change.
89932
89933        * platform/graphics/chromium/LayerChromium.cpp:
89934        (WebCore::LayerChromium::LayerChromium):
89935        * platform/graphics/chromium/LayerChromium.h:
89936        (LayerChromium):
89937        Removed m_usesLayerClipping and m_clipRect and associated accessors.
89938
89939        * platform/graphics/chromium/RenderSurfaceChromium.h:
89940        (RenderSurfaceChromium):
89941        Updated comment
89942
89943        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
89944        (WebCore::CCLayerImpl::CCLayerImpl):
89945        * platform/graphics/chromium/cc/CCLayerImpl.h:
89946        (CCLayerImpl):
89947        Removed m_usesLayerClipping and m_clipRect and associated accessors.
89948
89949        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
89950        (WebCore::CCLayerTreeHost::updateLayers):
89951        removed setClipRect code that no longer applies
89952
89953        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
89954        (WebCore::calculateLayerScissorRect):
89955        scissor rect is now a little bit tighter, the intersection between damage and layer's new drawableContentRect.
89956
89957        (WebCore::calculateSurfaceScissorRect):
89958        scissor rect is now a little bit tighter, except when filters are involved.
89959
89960        (WebCore::layerClipsSubtree):
89961        new helper function
89962
89963        (WebCore):
89964        (WebCore::calculateVisibleContentRect):
89965        (WebCore::subtreeShouldRenderToSeparateSurface):
89966        (WebCore::calculateDrawTransformsInternal):
89967           - added drawableContentRectOfSubtree to the function args, it is valid only after recursion returns,
89968           - added clipRectFromAncestor and bool ancestorClipsSubtree to function args, this replaces the layer's clipRect and usesLayerClipping.
89969           - removed the boolean return value, which was redundant with drawableContentRectOfSubtree.
89970           - replaced all the "setDrawableContentRect" logic with more intuitive, clear logic.
89971           - now, layer's drawableContentRect represents the clipped bounds of the layer expressed in the target surface space.
89972
89973        (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
89974        (WebCore::pointIsClippedBySurfaceOrClipRect):
89975        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
89976        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
89977        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
89978        (WebCore::::layerScissorRectInTargetSurface):
89979        Updated this accessor.  It could be removed in the future, but not appropriate for this patch.
89980
89981        * platform/graphics/chromium/cc/CCRenderSurface.h:
89982
899832012-07-23  Patrick Gansterer  <paroga@webkit.org>
89984
89985        [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
89986
89987        * CMakeLists.txt:
89988
899892012-07-23  Ryosuke Niwa  <rniwa@webkit.org>
89990
89991        REGRESSION(r123281): childNodes sometimes returns wrong nodes
89992        https://bugs.webkit.org/show_bug.cgi?id=92014
89993
89994        Reviewed by Anders Carlsson.
89995
89996        The bug was caused by a typo in itemBeforeOrAfter. Namely, it should have been calling firstNode as
89997        firstNode(forward, rootNode(), shouldOnlyIncludeDirectChildren()),
89998        NOT firstNode(forward, rootNode(), previous)
89999        as evident from the argument list of the function.
90000
90001        Test: fast/dom/NodeList/childNodes-reverse-iteration.html
90002
90003        * html/HTMLCollection.cpp:
90004        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
90005
900062012-07-23  Steve VanDeBogart  <vandebo@chromium.org>
90007
90008        Chrome/Skia: PDF print output does not have clickable links.
90009        https://bugs.webkit.org/show_bug.cgi?id=91171
90010
90011        Reviewed by Stephen White.
90012
90013        Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
90014
90015        Printing is not generally testable.
90016
90017        * platform/graphics/skia/GraphicsContextSkia.cpp:
90018        (WebCore::GraphicsContext::setURLForRect):
90019
900202012-07-23  Pierre Rossi  <pierre.rossi@gmail.com>
90021
90022        Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
90023        https://bugs.webkit.org/show_bug.cgi?id=91006
90024
90025        Reviewed by Ryosuke Niwa.
90026
90027        The rationale here is that the client doesn't need to know about the touch
90028        event handler count. needTouchEvents was already used for that purpose.
90029
90030        Test: fast/events/touch/touch-handler-count.html
90031
90032        * dom/Document.cpp:
90033        (WebCore::Document::Document):
90034        (WebCore::Document::didAddTouchEventHandler): Only notify the client if needed.
90035        (WebCore::Document::didRemoveTouchEventHandler): Ditto. Also unset the TOUCH_LISTENER
90036        flag for the document if we reach a count of zero. The rationale being that
90037        hasListenerType() is relied upon in other places in combination with TOUCH_LISTENER for
90038        the same purpose.
90039        * dom/Document.h:
90040        (Document):
90041        (WebCore::Document::touchEventHandlerCount):
90042        * loader/EmptyClients.h:
90043        * page/ChromeClient.h:
90044        (ChromeClient):
90045        * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
90046        (WebCore::Frame::setDocument): call needsTouchEvents directly.
90047        * page/Frame.h: Ditto.
90048        (Frame):
90049        * testing/Internals.cpp:
90050        (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
90051        for additional testing.
90052        (WebCore):
90053        * testing/Internals.h:
90054        (Internals):
90055        * testing/Internals.idl:
90056
900572012-07-23  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
90058
90059        [Qt] RenderThemeQtMobile highlight colors are not being used
90060        https://bugs.webkit.org/show_bug.cgi?id=92004
90061
90062        Reviewed by Noam Rosenthal.
90063
90064        The issue here is that setPaletteFromPageClientIfExists() is being used as a
90065        virtual function, but it isn't, so when platformActiveSelectionBackgroundColor()
90066        runs, it doesn't pick the right palette.
90067
90068        Besides fixing this virtual behavior, the patch changes the structure a bit,
90069        because setPaletteFromPageClientIfExists() was being "overriden" in mobile theme
90070        to set the palette, which isn't exactly what the function name says.
90071
90072        * platform/qt/RenderThemeQt.cpp:
90073        (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
90074        (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
90075        (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
90076        (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
90077        (WebCore::RenderThemeQt::platformFocusRingColor):
90078        (WebCore::RenderThemeQt::systemColor):
90079        (WebCore::RenderThemeQt::getMediaControlForegroundColor):
90080        (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
90081        Use the virtual colorPalette() to get the palette.
90082
90083        (WebCore::RenderThemeQt::colorPalette):
90084        (WebCore): Removed the code for getting the page client from here since it is
90085        used only by the QStyle variant.
90086
90087        * platform/qt/RenderThemeQt.h:
90088        (RenderThemeQt):
90089        * platform/qt/RenderThemeQtMobile.cpp:
90090        (WebCore::RenderThemeQtMobile::colorPalette):
90091        (WebCore):
90092        * platform/qt/RenderThemeQtMobile.h:
90093        (RenderThemeQtMobile):
90094
900952012-07-23  Simon Fraser  <simon.fraser@apple.com>
90096
90097        Part 1 of: Implement sticky positioning
90098        https://bugs.webkit.org/show_bug.cgi?id=90046
90099
90100        Reviewed by Ojan Vafai.
90101
90102        Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
90103        
90104        Sort the ENABLE_CSS lines in the file. Make sure all the flags
90105        are in FEATURE_DEFINES.
90106
90107        * Configurations/FeatureDefines.xcconfig:
90108
901092012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
90110
90111        Unreviewed, rolling out r123339.
90112        http://trac.webkit.org/changeset/123339
90113        https://bugs.webkit.org/show_bug.cgi?id=92006
90114
90115        massive media tests failure (Requested by philn on #webkit).
90116
90117        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
90118        (WTF::adoptGRef):
90119        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
90120        (setGstElementClassMetadata):
90121        * platform/graphics/gstreamer/GStreamerVersioning.h:
90122
901232012-07-21  Vincent Scheib  <scheib@chromium.org>
90124
90125        webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
90126        https://bugs.webkit.org/show_bug.cgi?id=91892
90127
90128        Reviewed by Adam Barth.
90129
90130        PointerLockElement only returned when requested from the document that owns it.
90131
90132        Tests: http/tests/fullscreen/fullscreenelement-different-origin.html
90133               http/tests/fullscreen/fullscreenelement-same-origin.html
90134               http/tests/pointer-lock/pointerlockelement-different-origin.html
90135               http/tests/pointer-lock/pointerlockelement-same-origin.html
90136
90137        * dom/Document.cpp:
90138        (WebCore::Document::webkitPointerLockElement):
90139
901402012-07-23  Philippe Normand  <pnormand@igalia.com>
90141
90142        [GTK][jhbuild] Switch to GStreamer 0.11 build
90143        https://bugs.webkit.org/show_bug.cgi?id=91727
90144
90145        Reviewed by Gustavo Noronha Silva.
90146
90147        Add a new function to encapsulate the GStreamer API removal of
90148        GST_OBJECT_IS_FLOATING in the upcoming 1.0 release. Use of this
90149        macro can now be replaced by calling the g_object_is_floating
90150        function.
90151
90152        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
90153        (WTF::adoptGRef):
90154        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
90155        (gstObjectIsFloating):
90156        * platform/graphics/gstreamer/GStreamerVersioning.h:
90157
901582012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
90159
90160        [EFL] media/controls-styling.html is failing
90161        https://bugs.webkit.org/show_bug.cgi?id=91984
90162
90163        Reviewed by Eric Carlson.
90164
90165        Make sure that the CSS properties letter-spacing, word-spacing,
90166        line-height, text-transform, text-indent, text-shadow,
90167        text-decoration and color do not affect the media element controls,
90168        that display text.
90169
90170        No new tests. Already tested by media/controls-styling.html and
90171        media/controls-styling-strict.html
90172
90173        * css/mediaControlsEfl.css:
90174        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
90175
901762012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
90177
90178        Unreviewed. Fix make distcheck.
90179
90180        * GNUmakefile.list.am: Add missing header files.
90181
901822012-07-23  Kent Tamura  <tkent@chromium.org>
90183
90184        Replace some instances of shadowAncestorNode() with shadowHost()
90185        https://bugs.webkit.org/show_bug.cgi?id=91966
90186
90187        Reviewed by Hajime Morita.
90188
90189        shadowAncestorNode() is deprecated. We should use shadowHost().
90190        No new tests. This doesn't change any behavior.
90191
90192        * css/SelectorChecker.cpp:
90193        (WebCore::SelectorChecker::checkSelector):
90194        * dom/TreeScope.cpp:
90195        (WebCore::listTreeScopes):
90196        * html/HTMLSummaryElement.cpp:
90197        (WebCore::isClickableControl):
90198        * html/shadow/DetailsMarkerControl.cpp:
90199        (WebCore::DetailsMarkerControl::summaryElement):
90200        * html/shadow/MeterShadowElement.cpp:
90201        (WebCore::MeterShadowElement::meterElement):
90202        * html/shadow/ProgressShadowElement.cpp:
90203        (WebCore::ProgressShadowElement::progressElement):
90204        * html/shadow/SliderThumbElement.cpp:
90205        (WebCore::RenderSliderThumb::layout):
90206        (WebCore::RenderSliderContainer::layout):
90207        (WebCore::SliderThumbElement::hostInput):
90208        (WebCore::TrackLimiterElement::shadowPseudoId):
90209        (WebCore::SliderContainerElement::shadowPseudoId):
90210        * html/shadow/TextControlInnerElements.cpp:
90211        (WebCore::TextControlInnerElement::customStyleForRenderer):
90212        (WebCore::TextControlInnerTextElement::defaultEventHandler):
90213        (WebCore::TextControlInnerTextElement::createRenderer):
90214        (WebCore::TextControlInnerTextElement::customStyleForRenderer):
90215        (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
90216        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
90217        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
90218        (WebCore::SpinButtonElement::defaultEventHandler):
90219        (WebCore::SpinButtonElement::step):
90220        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
90221        (WebCore::InputFieldSpeechButtonElement::setState):
90222        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
90223        (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
90224        * rendering/RenderTextControlSingleLine.cpp:
90225        (WebCore::RenderTextControlInnerBlock::positionForPoint):
90226
902272012-07-23  Pavel Feldman  <pfeldman@chromium.org>
90228
90229        [WK2] REGRESSION r122966: Crash when closing tab with Web Inspector open in WebKit::PageOverlay
90230        https://bugs.webkit.org/show_bug.cgi?id=91782
90231
90232        Reviewed by Yury Semikhatsky.
90233
90234        hideHighlight was never called once user hovered over a node.
90235
90236        * inspector/DOMNodeHighlighter.cpp:
90237        (WebCore::InspectorOverlay::update):
90238
902392012-07-23  Peter Beverloo  <peter@chromium.org>
90240
90241        [Chromium] Build fix for the Windows builder following r123311
90242        https://bugs.webkit.org/show_bug.cgi?id=91979
90243
90244        Unreviewed build fix.
90245
90246        Changeset r123311 moved the TextCodecWinCE.{cpp,h} files to the Windows
90247        directory. Update Chromium's references to these files to fix the build.
90248
90249        * WebCore.gypi:
90250
902512012-07-23  Patrick Gansterer  <paroga@webkit.org>
90252
90253        [WIN] Remove ICU dependencies from UniscribeController
90254        https://bugs.webkit.org/show_bug.cgi?id=91921
90255
90256        Reviewed by Ryosuke Niwa.
90257
90258        Replace ICU specific functions and macros with the corresponding code from WTF::Unicode.
90259        This allows us to use UniscribeController with an other Unicode implementation too.
90260
90261        * platform/graphics/win/UniscribeController.cpp:
90262        (WebCore::UniscribeController::advance):
90263
902642012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
90265
90266        [EFL] media/controls-styling-strict.html is failing
90267        https://bugs.webkit.org/show_bug.cgi?id=91960
90268
90269        Reviewed by Kenneth Rohde Christiansen.
90270
90271        Use "display: -webkit-box;" instead of inline-block
90272        for current-time control. This is needed because
90273        inline-block behaves differently in strict mode.
90274
90275        No new test, already tested by media/controls-styling-strict.html
90276
90277        * css/mediaControlsEfl.css:
90278        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
90279
902802012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
90281
90282        Unreviewed. Fix GTK+ build with ENABLE_DATALIST_ELEMENT.
90283
90284        Add an implementation for virtual pure methods sliderTickSize()
90285        and sliderTickOffsetFromTrackCenter() when HTML5 datalist element
90286        is enabled.
90287
90288        * platform/gtk/RenderThemeGtk.cpp:
90289        (WebCore):
90290        (WebCore::RenderThemeGtk::sliderTickSize):
90291        (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
90292        * platform/gtk/RenderThemeGtk.h:
90293
902942012-07-23  Patrick Gansterer  <paroga@webkit.org>
90295
90296        Replace getCurrentLocalTime() with GetLocalTime() in LocaleWin.cpp
90297        https://bugs.webkit.org/show_bug.cgi?id=91937
90298
90299        Reviewed by Ryosuke Niwa.
90300
90301        The windows function returns the required year directly and
90302        removes one additonal dependecy on getCurrentLocalTime().
90303
90304        * platform/text/LocaleWin.cpp:
90305        (WebCore::LocaleWin::LocaleWin):
90306
903072012-07-23  Vsevolod Vlasov  <vsevik@chromium.org>
90308
90309        Web Inspector: Drag and drop should not be started on right mouse click.
90310        https://bugs.webkit.org/show_bug.cgi?id=91728
90311
90312        Reviewed by Pavel Feldman.
90313
90314        Introduced WebInspector.installDragHandle method to control drag and drop support, checking whichg mouse button is pressed.
90315        Simplified WebInspector._elementDragStart, removed "element" parameter.
90316        Simplified tab moving support in TabbedPane, removed "mousemove" handler.
90317        Removed while loop determining which element was dragged in TimelineOverviewPane, each drag support is now installed independently.
90318        Drive-by: fixed TimelineOverviewPane window moving on resources-dividers-label-bar drang-and-drop.
90319        Drive-by: fixed CSSStyleModel compilation.
90320
90321        * inspector/front-end/CSSStyleModel.js:
90322        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
90323        * inspector/front-end/DataGrid.js:
90324        (WebInspector.DataGrid.prototype._positionResizers):
90325        (WebInspector.DataGrid.prototype._startResizerDragging):
90326        (WebInspector.DataGrid.prototype._endResizerDragging):
90327        * inspector/front-end/Drawer.js:
90328        (WebInspector.Drawer):
90329        (WebInspector.Drawer.prototype._animationDuration):
90330        (WebInspector.Drawer.prototype._startStatusBarDragging):
90331        (WebInspector.Drawer.prototype._endStatusBarDragging):
90332        * inspector/front-end/HeapSnapshotView.js:
90333        (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
90334        (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
90335        * inspector/front-end/SidebarOverlay.js:
90336        (WebInspector.SidebarOverlay.prototype.set _startResizerDragging):
90337        (WebInspector.SidebarOverlay.prototype._endResizerDragging):
90338        (WebInspector.SidebarOverlay.prototype._installResizer):
90339        * inspector/front-end/Spectrum.js:
90340        * inspector/front-end/SplitView.js:
90341        (WebInspector.SplitView.prototype._startResizerDragging):
90342        (WebInspector.SplitView.prototype._endResizerDragging):
90343        (WebInspector.SplitView.prototype.installResizer):
90344        * inspector/front-end/TabbedPane.js:
90345        (WebInspector.TabbedPaneTab.prototype._createTabElement):
90346        (WebInspector.TabbedPaneTab.prototype._tabMouseDown):
90347        (WebInspector.TabbedPaneTab.prototype._startTabDragging):
90348        (WebInspector.TabbedPaneTab.prototype._endTabDragging):
90349        * inspector/front-end/TimelineOverviewPane.js:
90350        (WebInspector.TimelineOverviewPane):
90351        (WebInspector.TimelineOverviewWindow):
90352        (WebInspector.TimelineOverviewWindow.prototype._leftResizeElementDragging):
90353        (WebInspector.TimelineOverviewWindow.prototype._rightResizeElementDragging):
90354        (WebInspector.TimelineOverviewWindow.prototype._startWindowSelectorDragging):
90355        (WebInspector.TimelineOverviewWindow.prototype._endWindowSelectorDragging):
90356        (WebInspector.TimelineOverviewWindow.prototype._startWindowDragging):
90357        (WebInspector.TimelineOverviewWindow.prototype._windowDragging):
90358        (WebInspector.TimelineOverviewWindow.prototype._endWindowDragging):
90359        (WebInspector.TimelineOverviewWindow.prototype._moveWindow):
90360        (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
90361        * inspector/front-end/TimelinePanel.js:
90362        (WebInspector.TimelinePanel):
90363        (WebInspector.TimelinePanel.prototype._startSplitterDragging):
90364        (WebInspector.TimelinePanel.prototype._endSplitterDragging):
90365        * inspector/front-end/Toolbar.js:
90366        (WebInspector.Toolbar):
90367        (WebInspector.Toolbar.prototype._toolbarDragStart):
90368        (WebInspector.Toolbar.prototype._toolbarDragEnd):
90369        * inspector/front-end/UIUtils.js:
90370        (WebInspector.installDragHandle):
90371        (WebInspector._elementDragStart):
90372        (WebInspector._elementDragEnd):
90373        * inspector/front-end/timelinePanel.css:
90374        (#timeline-overview-grid .resources-dividers-label-bar):
90375
903762012-07-23  Hayato Ito  <hayato@chromium.org>
90377
90378        ComposedShadowTreeWalker should skip an empty insertion points.
90379        https://bugs.webkit.org/show_bug.cgi?id=91826
90380
90381        Reviewed by Hajime Morita.
90382
90383        ComposedShadowTreeWalker wrongly returns 'null' if it encounters
90384        an insertion point into where no nodes are distributed.  We should
90385        skip such an insertion point and continue walking using the next
90386        possible node, which might be a next sibling or a next distributed
90387        node, and resolve the next node recursively.
90388
90389        Test: fast/dom/shadow/composed-shadow-tree-walker.html
90390
90391        * dom/ComposedShadowTreeWalker.cpp:
90392        (WebCore::ComposedShadowTreeWalker::traverseLightChildren):
90393        (WebCore):
90394        (WebCore::ComposedShadowTreeWalker::traverseSiblings):
90395        (WebCore::ComposedShadowTreeWalker::traverseNode):
90396        (WebCore::ComposedShadowTreeWalker::traverseDistributedeNodes):
90397        (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
90398        (WebCore::ComposedShadowTreeWalker::traverseSiblingInCurrentTree):
90399        (WebCore::ComposedShadowTreeWalker::traverseBackToYoungerShadowRoot):
90400        * dom/ComposedShadowTreeWalker.h:
90401        (ComposedShadowTreeWalker):
90402
904032012-07-23  Patrick Gansterer  <paroga@webkit.org>
90404
90405        Rename TextCodecWinCE to TextCodecWin
90406        https://bugs.webkit.org/show_bug.cgi?id=91947
90407
90408        Reviewed by Ryosuke Niwa.
90409
90410        Since TextCodecWinCE is used by other (non-upstreamed) windows ports too,
90411        TextCodecWin is a better name for the implementation.
90412        Also remove the dependency on WinCE FontCache to make it more usable.
90413
90414        * PlatformWinCE.cmake:
90415        * platform/text/TextEncodingRegistry.cpp:
90416        (WebCore::extendTextCodecMaps):
90417        * platform/text/win/TextCodecWin.cpp: Renamed from Source/WebCore/platform/text/wince/TextCodecWinCE.cpp.
90418        * platform/text/win/TextCodecWin.h: Renamed from Source/WebCore/platform/text/wince/TextCodecWinCE.h.
90419
904202012-07-22  Kentaro Hara  <haraken@chromium.org>
90421
90422        [V8] CodeGeneratorV8.pm should support static attributes
90423        https://bugs.webkit.org/show_bug.cgi?id=91764
90424
90425        Reviewed by Adam Barth.
90426
90427        CodeGeneratorJS.pm already supports static attributes.
90428        CodeGeneratorV8.pm should also support them.
90429
90430        Tests: bindings/scripts/test/TestObj.idl
90431               bindings/scripts/test/TestSupplemental.idl
90432
90433        * bindings/scripts/CodeGeneratorV8.pm:
90434        (GenerateNormalAttrGetter):
90435        (GenerateNormalAttrSetter):
90436
90437        * bindings/scripts/test/TestObj.idl: Added defined(TESTING_V8).
90438        * bindings/scripts/test/TestSupplemental.idl: Added test cases for static attributes in supplemental IDL files.
90439
90440        * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results.
90441        (WebCore):
90442        (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
90443        The generated code is wrong since CodeGeneratorJS.pm does not support static attributes for
90444        supplemental IDL files. I will fix it in a follow-up patch.
90445        (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
90446        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
90447        * bindings/scripts/test/JS/JSTestInterface.h:
90448        (WebCore):
90449        * bindings/scripts/test/V8/V8TestInterface.cpp: Updated run-bindings-tests results.
90450        (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetter):
90451        (TestInterfaceV8Internal):
90452        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
90453        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
90454        (WebCore):
90455        * bindings/scripts/test/V8/V8TestObj.cpp:
90456        (WebCore::TestObjV8Internal::staticReadOnlyIntAttrAttrGetter):
90457        (TestObjV8Internal):
90458        (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
90459        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
90460        (WebCore):
90461
904622012-07-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
90463
90464        Missing *explicit* keyword in storage and workers.
90465        https://bugs.webkit.org/show_bug.cgi?id=91934
90466
90467        Reviewed by Kentaro Hara.
90468
90469        Some constructors missed to use *explicit* keyword. They need to be added
90470        *explicit* keyword to contructor which has a parameter in order to avoid
90471        implicit type conversion.
90472
90473        No new tests. Convered by existing tests.
90474
90475        * storage/StorageAreaImpl.h:
90476        (StorageAreaImpl):
90477        * storage/StorageMap.h:
90478        (StorageMap):
90479        * storage/StorageSyncManager.h:
90480        (StorageSyncManager):
90481        * storage/StorageTask.h:
90482        (StorageTask):
90483        * storage/StorageTracker.h:
90484        (StorageTracker):
90485        * workers/SharedWorker.h:
90486        (SharedWorker):
90487        * workers/Worker.h:
90488        (Worker):
90489        * workers/WorkerLocation.h:
90490        (WebCore::WorkerLocation::WorkerLocation):
90491        * workers/WorkerMessagingProxy.h:
90492        (WorkerMessagingProxy):
90493
904942012-07-23  Kent Tamura  <tkent@chromium.org>
90495
90496        Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
90497        https://bugs.webkit.org/show_bug.cgi?id=91941
90498
90499        Reviewed by Kentaro Hara.
90500
90501        A flag name for an elmement should be ENABLE_*_ELEMENT.
90502
90503        * Configurations/FeatureDefines.xcconfig:
90504        * DerivedSources.make:
90505        * GNUmakefile.am:
90506        * accessibility/AXObjectCache.cpp:
90507        (WebCore::createFromRenderer):
90508        * accessibility/AccessibilityProgressIndicator.cpp:
90509        * accessibility/AccessibilityProgressIndicator.h:
90510        * css/CSSPrimitiveValueMappings.h:
90511        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
90512        * css/SelectorChecker.cpp:
90513        (WebCore::SelectorChecker::checkOneSelector):
90514        * css/StyleResolver.cpp:
90515        (WebCore::StyleResolver::collectMatchingRulesForList):
90516        * css/html.css:
90517        * html/HTMLMeterElement.cpp:
90518        * html/HTMLMeterElement.h:
90519        * html/HTMLMeterElement.idl:
90520        * html/HTMLProgressElement.cpp:
90521        * html/HTMLProgressElement.h:
90522        * html/HTMLProgressElement.idl:
90523        * html/HTMLTagNames.in:
90524        * html/shadow/MeterShadowElement.cpp:
90525        * html/shadow/MeterShadowElement.h: Wrap with #if ENABLE(METER_ELEMENT).
90526        * html/shadow/ProgressShadowElement.cpp:
90527        * html/shadow/ProgressShadowElement.h: Wrap with #if ENABLE(PROGRESS_ELEMENT).
90528        * page/DOMWindow.idl:
90529        * platform/efl/RenderThemeEfl.cpp:
90530        (WebCore::RenderThemeEfl::paintThemePart):
90531        (WebCore::RenderThemeEfl::edjeGroupFromFormType):
90532        (WebCore):
90533        * platform/efl/RenderThemeEfl.h:
90534        (RenderThemeEfl):
90535        * platform/gtk/RenderThemeGtk.cpp:
90536        (WebCore):
90537        * platform/gtk/RenderThemeGtk.h:
90538        (RenderThemeGtk):
90539        * platform/gtk/RenderThemeGtk2.cpp:
90540        (WebCore):
90541        * platform/gtk/RenderThemeGtk3.cpp:
90542        (WebCore):
90543        * platform/qt/RenderThemeQt.cpp:
90544        (WebCore):
90545        * platform/qt/RenderThemeQt.h:
90546        (WebCore):
90547        (RenderThemeQt):
90548        * platform/qt/RenderThemeQtMobile.cpp:
90549        (WebCore):
90550        * platform/qt/RenderThemeQtMobile.h:
90551        (RenderThemeQtMobile):
90552        * rendering/RenderMeter.cpp:
90553        * rendering/RenderMeter.h:
90554        * rendering/RenderObject.h:
90555        (RenderObject):
90556        * rendering/RenderProgress.cpp:
90557        * rendering/RenderProgress.h:
90558        * rendering/RenderTheme.cpp:
90559        (WebCore::RenderTheme::adjustStyle):
90560        (WebCore::RenderTheme::paint):
90561        (WebCore::RenderTheme::paintBorderOnly):
90562        (WebCore::RenderTheme::paintDecorations):
90563        (WebCore):
90564        * rendering/RenderTheme.h:
90565        (WebCore):
90566        (RenderTheme):
90567        * rendering/RenderThemeChromiumLinux.cpp:
90568        (WebCore):
90569        * rendering/RenderThemeChromiumLinux.h:
90570        * rendering/RenderThemeChromiumSkia.cpp:
90571        (WebCore):
90572        * rendering/RenderThemeChromiumSkia.h:
90573        (RenderThemeChromiumSkia):
90574        * rendering/RenderThemeChromiumWin.cpp:
90575        (WebCore):
90576        * rendering/RenderThemeChromiumWin.h:
90577        (RenderThemeChromiumWin):
90578        * rendering/RenderThemeMac.h:
90579        (RenderThemeMac):
90580        * rendering/RenderThemeMac.mm:
90581        (WebCore):
90582
905832012-07-22  Kent Tamura  <tkent@chromium.org>
90584
90585        Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
90586        https://bugs.webkit.org/show_bug.cgi?id=91928
90587
90588        Reviewed by Kentaro Hara.
90589
90590        A flag name for an elmement should be ENABLE_*_ELEMENT.
90591
90592        * Configurations/FeatureDefines.xcconfig:
90593        * DerivedSources.make:
90594        * GNUmakefile.am:
90595        * html/HTMLDetailsElement.cpp:
90596        * html/HTMLDetailsElement.idl:
90597        * html/HTMLSummaryElement.cpp:
90598        * html/HTMLTagNames.in:
90599        * html/shadow/DetailsMarkerControl.cpp:
90600        * rendering/RenderDetailsMarker.cpp:
90601        * rendering/RenderDetailsMarker.h:
90602        * rendering/RenderObject.h:
90603        (RenderObject):
90604        * rendering/RenderTreeAsText.cpp:
90605        (WebCore::RenderTreeAsText::writeRenderObject):
90606
906072012-07-21  Dan Bernstein  <mitz@apple.com>
90608
90609        <rdar://problem/11928576> SVG-as-image (constrained) intrinsic size calculation is wrong in vertical writing modes
90610        https://bugs.webkit.org/show_bug.cgi?id=91918
90611
90612        Reviewed by Anders Carlsson.
90613
90614        Test: svg/as-image/svg-intrinsic-size-rectangular-vertical.html
90615
90616        * rendering/RenderReplaced.cpp:
90617        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox): When there is a content
90618        renderer, it returns a physical intrinsic size and aspect ratio. The code was already
90619        accounting for this by taking the reciprocal of the aspect ratio in the vertical case. Made
90620        it also transpose the size itself, turning it from physical to logical. Moved this code
90621        after setting m_intrinsicSize, since that member variable is always physical.
90622
906232012-07-21  Patrick Gansterer  <paroga@webkit.org>
90624
90625        Cleanup TextEncoding USE(XXX_UNICODE) macros
90626        https://bugs.webkit.org/show_bug.cgi?id=91923
90627
90628        Reviewed by Andreas Kling.
90629
90630        Replace PLATFORM(QT) with USE(QT4_UNICODE) and OS(WINCE) with USE(WINCE_UNICODE).
90631        This gives us more flexibility in choosing the unicode backend for a port.
90632
90633        * platform/text/TextEncoding.cpp:
90634        (WebCore::TextEncoding::encode):
90635        * platform/text/TextEncodingRegistry.cpp:
90636        (WebCore::extendTextCodecMaps):
90637
906382012-07-21  Patrick Gansterer  <paroga@webkit.org>
90639
90640        Remove unnecessary ICU header includes from SimpleFontDataWin.cpp
90641        https://bugs.webkit.org/show_bug.cgi?id=91922
90642
90643        Reviewed by Kentaro Hara.
90644
90645        This allows us to use SimpleFontDataWin with an other Unicode implementation too.
90646
90647        * platform/graphics/win/SimpleFontDataWin.cpp:
90648
906492012-07-21  Kwang Yul Seo  <skyul@company100.net>
90650
90651        A start tag whose tag name is "html" in the "in body" insertion mode is a parse error
90652        https://bugs.webkit.org/show_bug.cgi?id=91916
90653
90654        Reviewed by Eric Seidel.
90655
90656        According to the HTML5 spec, a start tag whose tag name is "html" in the "in body"
90657        insertion mode is a parse error.
90658
90659        Added HTMLTreeBuilder::processHtmlStartTagForInBody(AtomicHTMLToken&) to call parseError(token).
90660        Removed "FIXME: parse error" from HTMLConstructionSite::insertHTMLHtmlStartTagInBody and
90661        HTMLConstructionSite::insertHTMLBodyStartTagInBody because we already marked the call sites
90662        of these two methods with parseError(token).
90663
90664        No behavior change because parseError(token) is just a marker.
90665
90666        * html/parser/HTMLConstructionSite.cpp:
90667        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
90668        (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
90669        * html/parser/HTMLTreeBuilder.cpp:
90670        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
90671        (WebCore::HTMLTreeBuilder::processStartTag):
90672        (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
90673        (WebCore):
90674        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
90675        * html/parser/HTMLTreeBuilder.h:
90676
906772012-07-20  Czene Tamás  <tczene@inf.u-szeged.hu>
90678
90679        double data type shoud be changed to float in ColorMatrix
90680        https://bugs.webkit.org/show_bug.cgi?id=91499
90681
90682        Reviewed by Nikolas Zimmermann.
90683
90684        * platform/graphics/filters/FEColorMatrix.cpp:
90685        (WebCore::matrix):
90686        (WebCore::saturate):
90687        (WebCore::huerotate):
90688        (WebCore::luminance):
90689        (WebCore::effectType):
90690
906912012-07-20  Stephen White  <senorblanco@chromium.org>
90692
90693        [chromium] Take current transformation matrix into account when
90694        deciding on resize algorithm for drawPattern.
90695        https://bugs.webkit.org/show_bug.cgi?id=90624
90696
90697        Reviewed by Adrienne Walker.
90698
90699        Since the pattern shader uses both the current transformation matrix
90700        and the pattern matrix when transforming pixels, we need to
90701        do the same when computing the resampling mode.  Also removed the
90702        resampling hint code, added in r60658, since it appears to be dead
90703        (caller was removed in r76379).
90704
90705        Covered by existing tests, such as
90706        fast/borders/border-image-scale-transform.html.
90707
90708        * platform/graphics/skia/ImageSkia.cpp:
90709        (WebCore::computeResamplingMode):
90710        Pass in the matrix to be used for computing the destination width and
90711        height (for awesome resampling).  Remove the image resampling hint code.
90712        (WebCore::paintSkBitmap):
90713        Pass in the CTM to computeResamplingMode().
90714        (WebCore::Image::drawPattern):
90715        Concatenate the CTM and the pattern matrix, and pass that to 
90716        computeResamplingMode() and TransformDimensions().  Invert the
90717        CTM's scale and apply it to the pattern transform, so their
90718        concatenation gives identity scale.
90719        * platform/graphics/skia/PlatformContextSkia.cpp:
90720        * platform/graphics/skia/PlatformContextSkia.h:
90721        Remove the image resampling hint (dead code).
90722
907232012-07-20  Kwang Yul Seo  <skyul@company100.net>
90724
90725        Anything else in the "in table" insertion mode is a parse error
90726        https://bugs.webkit.org/show_bug.cgi?id=91915
90727
90728        Reviewed by Adam Barth.
90729
90730        According to the HTML5 spec, anything else in the "in table" insertion mode is a parse error.
90731
90732        No behavior change because parseError(token) is just a marker.
90733
90734        * html/parser/HTMLTreeBuilder.cpp:
90735        (WebCore::HTMLTreeBuilder::processEndTagForInTable):
90736
907372012-07-20  Kent Tamura  <tkent@chromium.org>
90738
90739        Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
90740        https://bugs.webkit.org/show_bug.cgi?id=91846
90741
90742        Reviewed by Kentaro Hara.
90743
90744        A flag name for an elmement should be ENABLE_*_ELEMENT.
90745
90746        * Configurations/FeatureDefines.xcconfig:
90747        * DerivedSources.make:
90748        * GNUmakefile.am:
90749        * css/html.css:
90750        * html/HTMLDataListElement.cpp:
90751        * html/HTMLDataListElement.h:
90752        * html/HTMLDataListElement.idl:
90753        * html/HTMLInputElement.cpp:
90754        (WebCore):
90755        (WebCore::HTMLInputElement::parseAttribute):
90756        (WebCore::HTMLInputElement::insertedInto):
90757        (WebCore::HTMLInputElement::removedFrom):
90758        * html/HTMLInputElement.h:
90759        (HTMLInputElement):
90760        * html/HTMLInputElement.idl:
90761        * html/HTMLOptionElement.cpp:
90762        (WebCore::HTMLOptionElement::parseAttribute):
90763        (WebCore::HTMLOptionElement::childrenChanged):
90764        (WebCore):
90765        * html/HTMLOptionElement.h:
90766        (HTMLOptionElement):
90767        * html/HTMLTagNames.in:
90768        * html/InputType.cpp:
90769        (WebCore):
90770        * html/InputType.h:
90771        (InputType):
90772        * html/RangeInputType.cpp:
90773        (WebCore):
90774        * html/RangeInputType.h:
90775        (RangeInputType):
90776        * html/shadow/SliderThumbElement.cpp:
90777        (WebCore::RenderSliderContainer::layout):
90778        * page/DOMWindow.idl:
90779        * platform/efl/RenderThemeEfl.cpp:
90780        (WebCore):
90781        * platform/efl/RenderThemeEfl.h:
90782        (RenderThemeEfl):
90783        * platform/qt/RenderThemeQt.cpp:
90784        (WebCore):
90785        * platform/qt/RenderThemeQt.h:
90786        (RenderThemeQt):
90787        * rendering/RenderTheme.cpp:
90788        (WebCore):
90789        * rendering/RenderTheme.h:
90790        (RenderTheme):
90791        * rendering/RenderThemeChromiumLinux.cpp:
90792        (WebCore):
90793        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
90794        * rendering/RenderThemeChromiumLinux.h:
90795        (RenderThemeChromiumLinux):
90796        * rendering/RenderThemeChromiumWin.cpp:
90797        (WebCore):
90798        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
90799        * rendering/RenderThemeChromiumWin.h:
90800        (RenderThemeChromiumWin):
90801        * rendering/RenderThemeMac.h:
90802        (RenderThemeMac):
90803        * rendering/RenderThemeMac.mm:
90804        (WebCore::RenderThemeMac::paintSliderTrack):
90805        (WebCore):
90806
908072012-07-18  Ryosuke Niwa  <rniwa@webkit.org>
90808
90809        Unify HTMLCollection and DynamicNodeList
90810        https://bugs.webkit.org/show_bug.cgi?id=91335
90811
90812        Reviewed by Anders Carlsson.
90813
90814        This is the grand unification of HTMLCollection and DynamicNodeList.
90815
90816        It merges implementations of item() and length() in ChildNodeList, DynamicNodeList,
90817        and HTMLCollection. The unified implementation is based on the one used for HTMLCollection,
90818        that has been improved over the last few days; see r122660 and r122672 for examples.
90819
90820        There are five key changes:
90821        1. Made itemBeforeOrAfter aware of DynamicNodeList.
90822        2. itemBeforeOrAfter and related functions take and return Node* to support ChildNodeList.
90823        3. Renamed InvalidCollectionType to NodeListCollectionType since DynamicNodeLists need to be
90824        identified itemBeforeOrAfter.
90825        4. Renamed itemAfter to virtualItemAfter in subclasses of HTMLCollection, and devirtualized
90826        itemAfter used in common cases to avoid performance regressions. To make this intent clear,
90827        SupportItemBefore and DoNotSupportItemBefore have been renamed to DoesNotOverrideItemAfter
90828        and OverridesItemAfter. This change also help us detect a subclass of HTMLCollection that
90829        passes in a wrong value to ItemBeforeSupportType by making forward iterations fail (hit an
90830        assertion or doesn't iterate at all) as well as backward iterations.
90831        5. Restricted the use of elementsArrayOffset to subclasses that provide virtualItemAfter.
90832
90833        This patch completes my effort to share code between HTMLCollection and DynamicNodeList.
90834
90835        * dom/ChildNodeList.cpp:
90836        (WebCore::ChildNodeList::ChildNodeList):
90837        (WebCore): Removed length() and item().
90838        (WebCore::ChildNodeList::nodeMatches):
90839        * dom/ChildNodeList.h:
90840        (ChildNodeList):
90841        * dom/ClassNodeList.cpp:
90842        (WebCore::ClassNodeList::ClassNodeList):
90843        * dom/Document.cpp:
90844        (WebCore::Document::registerNodeListCache):
90845        (WebCore::Document::unregisterNodeListCache):
90846        * dom/DynamicNodeList.cpp:
90847        (WebCore::DynamicNodeListCacheBase::invalidateCache):
90848        (WebCore::DynamicNodeList::length):
90849        (WebCore::DynamicNodeList::item):
90850        * dom/DynamicNodeList.h:
90851        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Takes new boolean argument
90852        shouldOnlyIncludeDirectChildren indicating whether the non-child descendents should be
90853        included or not. This is necessary to identify ChildNodeList in itemBeforeOrAfter.
90854        (WebCore::DynamicNodeListCacheBase::ownerNode): Moved from DynamicNodeListCacheBase and
90855        HTMLCollectionCacheBase.
90856        (WebCore::DynamicNodeListCacheBase::document): Moved from DynamicNodeListCacheBase.
90857        (WebCore::DynamicNodeListCacheBase::rootNode): Ditto.
90858        (WebCore::DynamicNodeListCacheBase::overridesItemAfter): Renamed from supportsItemBefore
90859        and the return value has been negated.
90860        (WebCore::DynamicNodeListCacheBase::shouldOnlyIncludeDirectChildren): Added.
90861        (WebCore::DynamicNodeListCacheBase):
90862        (WebCore::DynamicNodeList::DynamicNodeList): Takes NodeListType to determine the value of
90863        shouldOnlyIncludeDirectChildren.
90864        (DynamicNodeList):
90865        (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
90866        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
90867        * dom/MicroDataItemList.cpp:
90868        (WebCore::MicroDataItemList::MicroDataItemList):
90869        * dom/NameNodeList.cpp:
90870        (WebCore::NameNodeList::NameNodeList):
90871        * dom/TagNodeList.cpp:
90872        (WebCore::TagNodeList::TagNodeList):
90873        * html/CollectionType.h:
90874        * html/HTMLAllCollection.cpp:
90875        (WebCore::HTMLAllCollection::HTMLAllCollection):
90876        * html/HTMLCollection.cpp:
90877        (WebCore::shouldOnlyIncludeDirectChildren):
90878        (WebCore::rootTypeFromCollectionType):
90879        (WebCore::invalidationTypeExcludingIdAndNameAttributes):
90880        (WebCore::HTMLCollection::HTMLCollection):
90881        (WebCore::HTMLCollection::create):
90882        (WebCore::HTMLCollection::~HTMLCollection):
90883        (WebCore::isAcceptableElement):
90884        (WebCore::firstNode): Extracted from itemBeforeOrAfter.
90885        (WebCore::DynamicNodeListCacheBase::iterateForNextNode): Ditto.
90886        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter): Takes and returns Node*.
90887        Special case ChildNodeList since there is no need to skip any node. When "this" is a
90888        node list, call nodeMatches instead of isAcceptableElement.
90889        (WebCore::DynamicNodeListCacheBase::itemBefore): No longer takes offsetInArray since
90890        the use of elementsArrayOffset has been restricted to HTMLCollections that provides
90891        virtualItemAfter.
90892        (WebCore::DynamicNodeListCacheBase::itemAfter): Calls virtualItemAfter if necessary.
90893        Otherwise assert offsetInArray is zero since we should never be using this variable
90894        when virtualItemAfter is not provided.
90895        (WebCore::DynamicNodeListCacheBase::isLastItemCloserThanLastOrCachedItem):
90896        (WebCore::DynamicNodeListCacheBase::isFirstItemCloserThanCachedItem):
90897        (WebCore::DynamicNodeListCacheBase::setItemCache): Updates m_cachedElementsArrayOffset
90898        in HTMLCollection if and only if virtualItemAfter is provided. This is safe because
90899        node lists never provide virtualItemAfter.
90900        (WebCore::DynamicNodeListCacheBase::cachedElementsArrayOffset): Similarly, returns
90901        m_cachedElementsArrayOffset if virtualItemAfter is provided.
90902        (WebCore::DynamicNodeListCacheBase::lengthCommon):
90903        (WebCore::DynamicNodeListCacheBase::itemCommon): Note that supportsItemBefore() is
90904        equivalent to !overridesItemAfter() here.
90905        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfterCachedItem): Uses Node* through
90906        out the function. Since itemBefore never uses offsetInArray, always sets 0 for that.
90907        Note that we never call itemBefore and virtualItemAfter on the same object.
90908        (WebCore::HTMLCollection::virtualItemAfter): Added only to make the class "concrete".
90909        (WebCore::HTMLCollection::namedItem):
90910        (WebCore::HTMLCollection::updateNameCache):
90911        (WebCore::HTMLCollection::tags):
90912        * html/HTMLCollection.h:
90913        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
90914        (HTMLCollectionCacheBase):
90915        (WebCore::HTMLCollection::length):
90916        (WebCore::HTMLCollection::item):
90917        (WebCore::HTMLCollection::base):
90918        (HTMLCollection):
90919        * html/HTMLFormCollection.cpp:
90920        (WebCore::HTMLFormCollection::HTMLFormCollection):
90921        (WebCore::HTMLFormCollection::virtualItemAfter):
90922        * html/HTMLFormCollection.h:
90923        (HTMLFormCollection):
90924        * html/HTMLNameCollection.cpp:
90925        (WebCore::HTMLNameCollection::HTMLNameCollection):
90926        (WebCore::HTMLNameCollection::virtualItemAfter):
90927        * html/HTMLNameCollection.h:
90928        (HTMLNameCollection):
90929        * html/HTMLOptionsCollection.cpp:
90930        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
90931        * html/HTMLPropertiesCollection.cpp:
90932        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
90933        (WebCore::HTMLPropertiesCollection::virtualItemAfter):
90934        (WebCore::HTMLPropertiesCollection::updateNameCache):
90935        * html/HTMLPropertiesCollection.h:
90936        (HTMLPropertiesCollection):
90937        * html/HTMLTableRowsCollection.cpp:
90938        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
90939        (WebCore::HTMLTableRowsCollection::virtualItemAfter):
90940        * html/HTMLTableRowsCollection.h:
90941        (HTMLTableRowsCollection):
90942        * html/LabelsNodeList.cpp:
90943        (WebCore::LabelsNodeList::LabelsNodeList):
90944        * html/RadioNodeList.cpp:
90945        (WebCore::RadioNodeList::RadioNodeList):
90946
909472012-07-20  Joshua Bell  <jsbell@chromium.org>
90948
90949        IndexedDB: Simplify backend interface classes
90950        https://bugs.webkit.org/show_bug.cgi?id=91901
90951
90952        Reviewed by Tony Chang.
90953
90954        The IDBTransactionBackendInterface included several methods only used by the
90955        real implementation objects, not via the interfaces. Expose a static Impl::from(Interface)
90956        method for transaction, and migrate all of the backend-internal uses from Interface to Impl.
90957
90958        No new tests - no functional changes.
90959
90960        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
90961        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
90962        * Modules/indexeddb/IDBCursorBackendImpl.h:
90963        (WebCore):
90964        (WebCore::IDBCursorBackendImpl::create):
90965        (IDBCursorBackendImpl):
90966        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
90967        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
90968        (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
90969        (WebCore::IDBDatabaseBackendImpl::objectStore):
90970        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
90971        (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
90972        (WebCore::IDBDatabaseBackendImpl::setVersion):
90973        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
90974        (WebCore::IDBDatabaseBackendImpl::transactionStarted):
90975        (WebCore::IDBDatabaseBackendImpl::transactionFinished):
90976        (WebCore::IDBDatabaseBackendImpl::transaction):
90977        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
90978        (WebCore):
90979        (IDBDatabaseBackendImpl):
90980        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
90981        (WebCore::IDBIndexBackendImpl::openCursorInternal):
90982        (WebCore::IDBIndexBackendImpl::openCursor):
90983        (WebCore::IDBIndexBackendImpl::openKeyCursor):
90984        (WebCore::IDBIndexBackendImpl::countInternal): Drop unused transaction argument.
90985        (WebCore::IDBIndexBackendImpl::count):
90986        (WebCore::IDBIndexBackendImpl::get):
90987        (WebCore::IDBIndexBackendImpl::getKey):
90988        * Modules/indexeddb/IDBIndexBackendImpl.h:
90989        (IDBIndexBackendImpl):
90990        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
90991        (WebCore::IDBObjectStoreBackendImpl::get):
90992        (WebCore::IDBObjectStoreBackendImpl::put):
90993        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
90994        (WebCore):
90995        (WebCore::IDBObjectStoreBackendImpl::putInternal):
90996        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
90997        (WebCore::IDBObjectStoreBackendImpl::clear):
90998        (WebCore::IDBObjectStoreBackendImpl::createIndex):
90999        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
91000        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
91001        (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
91002        (WebCore::IDBObjectStoreBackendImpl::openCursor):
91003        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
91004        (WebCore::IDBObjectStoreBackendImpl::count):
91005        (WebCore::IDBObjectStoreBackendImpl::countInternal): Drop unused transaction argument.
91006        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
91007        (WebCore):
91008        (IDBObjectStoreBackendImpl):
91009        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
91010        (WebCore::IDBTransactionBackendImpl::objectStore):
91011        * Modules/indexeddb/IDBTransactionBackendImpl.h:
91012        (WebCore::IDBTransactionBackendImpl::from):
91013        (IDBTransactionBackendImpl):
91014        (WebCore::IDBTransactionBackendImpl::mode):
91015        * Modules/indexeddb/IDBTransactionBackendInterface.h:
91016        (IDBTransactionBackendInterface):
91017
910182012-07-20  Joshua Bell  <jsbell@chromium.org>
91019
91020        IndexedDB: "ASSERTION FAILED: !m_requestFinished" hit in IDBRequest::dispatchEvent
91021        https://bugs.webkit.org/show_bug.cgi?id=86911
91022
91023        Reviewed by Tony Chang.
91024
91025        Clean up the IDBRequest/IDBCursor relationship and the IDBRequest lifecycle.
91026
91027        The IDBRequest's m_cursor/setCursor() calls are renamed to m_pendingCursor/setPendingCursor() to
91028        clarify that the request will move between two states - either there's a cursor request in-flight
91029        c/o a continue() or advance() call, or the result has come in (cursor, null-for-done, or error).
91030        Since they were only ever used together, resetReadyState() is merged into setResultCursor(). The
91031        m_requestFinished flag becomes redundant and is dropped - the ASSERT reported in the bug
91032        becomes an ASSERT(m_readyState == PENDING) and m_readyState tracking is already correct.
91033
91034        Test: storage/indexeddb/request-continue-abort.html
91035
91036        * Modules/indexeddb/IDBCursor.cpp:
91037        (WebCore::IDBCursor::advance): Unreachable code path now dead and gone.
91038        (WebCore::IDBCursor::continueFunction): Ditto.
91039        * Modules/indexeddb/IDBRequest.cpp: Most functions just add state assertions.
91040        (WebCore::IDBRequest::IDBRequest):
91041        (WebCore::IDBRequest::abort):
91042        (WebCore::IDBRequest::setCursorDetails):
91043        (WebCore::IDBRequest::setPendingCursor): Merge with old resetReadyState().
91044        (WebCore):
91045        (WebCore::IDBRequest::getResultCursor): Helper, since digging cursor out of IDBAny is pesky.
91046        (WebCore::IDBRequest::setResultCursor): Just moved in the file to be with its friends.
91047        (WebCore::IDBRequest::finishCursor):
91048        (WebCore::IDBRequest::onError): Just assertions, re-ordering, re-naming.
91049        (WebCore::IDBRequest::onSuccess):
91050        (WebCore::IDBRequest::onSuccessWithContinuation):
91051        (WebCore::IDBRequest::hasPendingActivity):
91052        (WebCore::IDBRequest::dispatchEvent): Simplify!
91053        (WebCore::IDBRequest::enqueueEvent):
91054        * Modules/indexeddb/IDBRequest.h:
91055        (IDBRequest):
91056
910572012-07-20  Andrew Scherkus  <scherkus@chromium.org>
91058
91059        [chromium] Don't display fullscreen button for video elements not containing video
91060        https://bugs.webkit.org/show_bug.cgi?id=91811
91061
91062        Reviewed by Eric Carlson.
91063
91064        Covered by media/media-document-audio-repaint.html
91065
91066        * html/shadow/MediaControlRootElementChromium.cpp:
91067        (WebCore::MediaControlRootElementChromium::reset):
91068
910692012-07-20  Dmitry Titov  <dimich@chromium.org>
91070
91071        [Chromium] Out of Memory is observed when a large object is passed to a Web Worker.
91072        https://bugs.webkit.org/show_bug.cgi?id=91535.
91073
91074        Reviewed by David Levin.
91075
91076        No new tests because of no new behavior and lack of mechanism to monitor used memory.
91077
91078        * bindings/v8/SerializedScriptValue.cpp:
91079        (WebCore::SerializedScriptValue::SerializedScriptValue):
91080        (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
91081        (WebCore):
91082        (WebCore::SerializedScriptValue::~SerializedScriptValue):
91083        * bindings/v8/SerializedScriptValue.h:
91084        (SerializedScriptValue):
91085        Added a method to SerializedScriptValue to add memory pressure on GC proportional to the size of memory allocated in serialized data.
91086        
91087        * dom/MessageEvent.cpp:
91088        (WebCore::MessageEvent::MessageEvent):
91089        (WebCore::MessageEvent::initMessageEvent):
91090        Call the new method of SerializedScriptValue during creation of MessageEvent (presumably in the thread which contains the right V8 context).
91091
910922012-07-20  David Grogan  <dgrogan@chromium.org>
91093
91094        IndexedDB: Include intVersion when converting between WebCore and WebKit IDBMetadata types
91095        https://bugs.webkit.org/show_bug.cgi?id=91414
91096
91097        Reviewed by Adam Barth.
91098
91099        No new tests because no new behavior.
91100
91101        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
91102        (WebCore::IDBDatabaseBackendImpl::metadata):
91103        No behavior change, this just needs a dummy parameter to match the
91104        modified API.
91105
91106        * Modules/indexeddb/IDBMetadata.h:
91107        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
91108        (IDBDatabaseMetadata):
91109
911102012-07-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
91111
91112        [Soup] Unnecessary RefPtr usage and null check
91113        https://bugs.webkit.org/show_bug.cgi?id=91636
91114
91115        Reviewed by Martin Robinson.
91116
91117        Small clean up of code that is not necessary; no change in functionality.
91118
91119        * platform/network/soup/SocketStreamHandleSoup.cpp:
91120        (WebCore::SocketStreamHandle::connected):
91121
911222012-07-20  Mark Salisbury  <mark.salisbury@hp.com>
91123
91124        Typo in FontCacheWin.cpp causes return value from getCachedFontData() in getLastResortFallbackFont() to be ignored
91125        https://bugs.webkit.org/show_bug.cgi?id=91506
91126
91127        Reviewed by Joseph Pecoraro.
91128
91129        No new test.  The "fallback fallback" code ends up creating a font, so you always
91130        get a fallback font even with this code bug.  A test would be buggy, being highly
91131        platform dependent on what the "fallback fallback" font is on the particular
91132        windows machine the test runs on.
91133
91134        * platform/graphics/win/FontCacheWin.cpp:
91135        (WebCore::FontCache::getLastResortFallbackFont):
91136
911372012-07-20  Stephen White  <senorblanco@chromium.org>
91138
91139        [chromium] Clean up scratch texture usage in Chromium's implementation
91140        of GPU-accelerated filters.
91141        https://bugs.webkit.org/show_bug.cgi?id=83370
91142
91143        Reviewed by Adrienne Walker.
91144
91145        There didn't used to be a safe way to allocate a scratch texture, and
91146        hold into it beyond the lifetime of GrAutoScratchTexture.  Now there is:
91147        detach().
91148
91149        Covered by existing tests in css3/filters.
91150
91151        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
91152        (WebCore::CCRenderSurfaceFilters::apply):
91153        Use a GrAutoScratchTexture to allocate the destination texture, and 
91154        detach() to detach it from the cache before placing it in an
91155        SkGrTexturePixelRef.  This means we no longer need to do any lock/
91156        unlock trickery with the TextureCacheEntry, since the refcount is
91157        enough to keep the texture away from the cache's prying hands.
91158
911592012-07-20  Stephen White  <senorblanco@chromium.org>
91160
91161        [chromium] Clean up scratch texture usage in Chromium's implementation
91162        of GPU-accelerated filters.
91163        https://bugs.webkit.org/show_bug.cgi?id=83370
91164
91165        Reviewed by Adrienne Walker.
91166
91167        There didn't used to be a safe way to allocate a scratch texture, and
91168        hold into it beyond the lifetime of GrAutoScratchTexture.  Now there is:
91169        detach().
91170
91171        Covered by existing tests in css3/filters.
91172
91173        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
91174        (WebCore::CCRenderSurfaceFilters::apply):
91175        Use a GrAutoScratchTexture to allocate the destination texture, and 
91176        detach() to detach it from the cache before placing it in an
91177        SkGrTexturePixelRef.  This means we no longer need to do any lock/
91178        unlock trickery with the TextureCacheEntry, since the refcount is
91179        enough to keep the texture away from the cache's prying hands.
91180
911812012-07-19  Andrew Scherkus  <scherkus@chromium.org>
91182
91183        [chromium] CSS tweaks to media controls to prevent styles from being overridden
91184        https://bugs.webkit.org/show_bug.cgi?id=91802
91185
91186        Reviewed by Eric Carlson.
91187
91188        Having the buttons declared as inline caused them to not be included in the box layout,
91189        resulting in styles set outside the media element to affect the position of the buttons.
91190
91191        In a similar vein, it was also possible to override the font-style attribute for the time
91192        display.
91193
91194        Test: media/controls-styling-strict.html
91195
91196        * css/mediaControlsChromium.css:
91197        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
91198        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
91199        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
91200        (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
91201
912022012-07-20  Han Shen  <shenhan@google.com>
91203
91204        [Chromium] Compilation fails under gcc 4.7
91205        https://bugs.webkit.org/show_bug.cgi?id=90227
91206
91207        Reviewed by Tony Chang.
91208
91209        Disable warnings about c++0x compatibility in gcc newer than 4.6.
91210
91211        * WebCore.gyp/WebCore.gyp:
91212
912132012-07-20  Vincent Scheib  <scheib@chromium.org>
91214
91215        Unreviewed compile fix, r123247 included unintended changes to Document.cpp.
91216
91217        See http://trac.webkit.org/changeset/123247.
91218
91219        * dom/Document.cpp:
91220        (WebCore::Document::webkitExitPointerLock):
91221
912222012-07-20  Ryosuke Niwa  <rniwa@webkit.org>
91223
91224        REGRESSION(r122873): 15% regression on Dromaeo/dom-attr
91225        https://bugs.webkit.org/show_bug.cgi?id=91827
91226
91227        Reviewed by Anders Carlsson.
91228
91229        Move shouldInvalidateNodeListCaches from Document.cpp to Node.cpp since it's only called
91230        in Node::invalidateNodeListCachesInAncestors.
91231
91232        Test: PerformanceTests/Dromaeo/dom-attr.html.
91233
91234        * dom/Document.cpp:
91235        (WebCore):
91236        * dom/Node.cpp:
91237        (WebCore::shouldInvalidateNodeListCachesForAttr): Extracted from shouldInvalidateNodeListCaches
91238        to unroll the loop in shouldInvalidateNodeListCaches. Apparently gcc wasn't doing the right thing.
91239        (WebCore::Document::shouldInvalidateNodeListCaches):
91240        (WebCore::Document::invalidateNodeListCaches):
91241        (WebCore::Node::invalidateNodeListCachesInAncestors):
91242
912432012-07-20  Nico Weber  <thakis@chromium.org>
91244
91245        Fix more -Wunused-private-field violations
91246        https://bugs.webkit.org/show_bug.cgi?id=91876
91247
91248        Reviewed by Adam Barth.
91249
91250        As of http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120716/061102.html
91251        the warning finds more bugs. Fix them.
91252
91253        * html/FTPDirectoryDocument.cpp:
91254        (FTPDirectoryDocumentParser):
91255        (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
91256        * html/parser/HTMLTreeBuilder.cpp:
91257        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
91258        * html/parser/HTMLTreeBuilder.h:
91259        (HTMLTreeBuilder):
91260        * html/shadow/MediaControlRootElementChromium.cpp:
91261        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
91262        * html/shadow/MediaControlRootElementChromium.h:
91263        (MediaControlRootElementChromium):
91264        * inspector/InspectorDOMStorageResource.cpp:
91265        (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
91266        * inspector/InspectorDOMStorageResource.h:
91267        (InspectorDOMStorageResource):
91268        * page/Settings.cpp:
91269        (WebCore::Settings::Settings):
91270        * page/Settings.h:
91271        (Settings):
91272        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
91273        (WebCore::CCThreadProxy::CCThreadProxy):
91274        * platform/graphics/chromium/cc/CCThreadProxy.h:
91275        (CCThreadProxy):
91276        * rendering/svg/RenderSVGTextPath.cpp:
91277        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
91278        * rendering/svg/RenderSVGTextPath.h:
91279
912802012-07-20  Adam Klein  <adamk@chromium.org>
91281
91282        CodeGeneratorInspector.py is unnecessarily chatty
91283        https://bugs.webkit.org/show_bug.cgi?id=91758
91284
91285        Reviewed by Vsevolod Vlasov.
91286
91287        The code aded in r123091 included a "print" statement for each written
91288        file. This makes for noisy build output, especially noticeable in the
91289        Chromium ninja build (where build output takes up a single line of the
91290        console).
91291
91292        If this print statement is generally useful, it should be
91293        hidden behind a --verbose commandline option, as we do for the binding
91294        generators.
91295
91296        * inspector/CodeGeneratorInspector.py:
91297        (SmartOutput.close): Remove print statement.
91298
912992012-07-20  Stephen White  <senorblanco@chromium.org>
91300
91301        [chromium] Enable GPU-accelerated skia implementation of
91302        feDiffuseLighting, feSpecularLighting.
91303        https://bugs.webkit.org/show_bug.cgi?id=91865
91304
91305        Reviewed by Dirk Schulze.
91306
91307        Translate the light parameters into the appropriate
91308        SkLightingImageFilter calls.  This path is only enabled when
91309        the filters are created with the Accelerated flag set.
91310
91311        This will be covered by tests in svg/filters/* when they are
91312        added to the virtual GPU tests.
91313
91314        * WebCore.gypi:
91315        * platform/graphics/filters/FELighting.h:
91316        (FELighting):
91317        * platform/graphics/filters/skia/FELightingSkia.cpp: Added.
91318        (WebCore):
91319        (WebCore::FELighting::platformApplySkia):
91320
913212012-07-20  Pavel Feldman  <pfeldman@chromium.org>
91322
91323        Web Inspector: disable fake workers inspection.
91324        https://bugs.webkit.org/show_bug.cgi?id=91867
91325
91326        Reviewed by Vsevolod Vlasov.
91327
91328        'Fake workers' is unreliable error-prone way to debug workers. There are a
91329        lot of frameworks supporting it. Inspector should not do that since it has a more
91330        powerful native worker inspection capabilities. Port owners should enable it
91331        in case they want to provide workers debugging.
91332
91333        * English.lproj/localizedStrings.js:
91334        * WebCore.gypi:
91335        * WebCore.order:
91336        * WebCore.vcproj/WebCore.vcproj:
91337        * inspector/InjectedScriptHost.cpp:
91338        (WebCore::InjectedScriptHost::InjectedScriptHost):
91339        * inspector/InjectedScriptHost.h:
91340        (InjectedScriptHost):
91341        * inspector/InjectedScriptHost.idl:
91342        * inspector/Inspector.json:
91343        * inspector/InspectorAgent.cpp:
91344        (WebCore::InspectorAgent::didCommitLoad):
91345        (WebCore::InspectorAgent::enable):
91346        * inspector/InspectorAgent.h:
91347        (WebCore):
91348        (InspectorAgent):
91349        * inspector/InspectorInstrumentation.cpp:
91350        * inspector/InspectorInstrumentation.h:
91351        (InspectorInstrumentation):
91352        * inspector/front-end/InjectedFakeWorker.js: Removed.
91353        * inspector/front-end/ScriptsPanel.js:
91354        * inspector/front-end/WebKit.qrc:
91355        * inspector/front-end/WorkersSidebarPane.js:
91356        (WebInspector.WorkersSidebarPane):
91357        * inspector/front-end/externs.js:
91358        * inspector/front-end/inspector.html:
91359        * inspector/front-end/inspector.js:
91360        * workers/AbstractWorker.cpp:
91361        (WebCore::AbstractWorker::contextDestroyed):
91362        * workers/AbstractWorker.h:
91363        (AbstractWorker):
91364        * workers/SharedWorker.cpp:
91365        (WebCore::SharedWorker::create):
91366        * workers/Worker.cpp:
91367        (WebCore::Worker::create):
91368
913692012-07-20  Sheriff Bot  <webkit.review.bot@gmail.com>
91370
91371        Unreviewed, rolling out r123182.
91372        http://trac.webkit.org/changeset/123182
91373        https://bugs.webkit.org/show_bug.cgi?id=91863
91374
91375        Causing ASSERT crashes in tests accessibility/canvas.html and
91376        accessibility/canvas-accessibilitynodeobject.html (Requested
91377        by jernoble on #webkit).
91378
91379        * CMakeLists.txt:
91380        * GNUmakefile.list.am:
91381        * Target.pri:
91382        * WebCore.gypi:
91383        * accessibility/AXObjectCache.cpp:
91384        (WebCore):
91385        * accessibility/AXObjectCache.h:
91386        (AXObjectCache):
91387        * accessibility/AccessibilityARIAGrid.cpp:
91388        (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
91389        (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
91390        (WebCore):
91391        (WebCore::AccessibilityARIAGrid::create):
91392        * accessibility/AccessibilityARIAGrid.h:
91393        (AccessibilityARIAGrid):
91394        * accessibility/AccessibilityARIAGridCell.cpp:
91395        (WebCore::AccessibilityARIAGridCell::create):
91396        * accessibility/AccessibilityARIAGridRow.cpp:
91397        (WebCore::AccessibilityARIAGridRow::create):
91398        * accessibility/AccessibilityAllInOne.cpp:
91399        * accessibility/AccessibilityList.cpp:
91400        (WebCore::AccessibilityList::create):
91401        * accessibility/AccessibilityListBox.cpp:
91402        (WebCore::AccessibilityListBox::create):
91403        * accessibility/AccessibilityMediaControls.cpp:
91404        (WebCore::AccessibilityMediaControl::create):
91405        (WebCore::AccessibilityMediaControlsContainer::create):
91406        (WebCore::AccessibilityMediaTimeline::create):
91407        (WebCore::AccessibilityMediaTimeDisplay::create):
91408        * accessibility/AccessibilityMenuList.cpp:
91409        * accessibility/AccessibilityMenuList.h:
91410        (WebCore::AccessibilityMenuList::create):
91411        * accessibility/AccessibilityNodeObject.cpp: Removed.
91412        * accessibility/AccessibilityNodeObject.h: Removed.
91413        * accessibility/AccessibilityObject.h:
91414        (AccessibilityObject):
91415        * accessibility/AccessibilityProgressIndicator.cpp:
91416        (WebCore::AccessibilityProgressIndicator::create):
91417        * accessibility/AccessibilityRenderObject.cpp:
91418        (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
91419        (WebCore::AccessibilityRenderObject::create):
91420        (WebCore::AccessibilityRenderObject::detach):
91421        (WebCore::AccessibilityRenderObject::remapAriaRoleDueToParent):
91422        (WebCore):
91423        (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
91424        (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
91425        (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
91426        (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
91427        (WebCore::AccessibilityRenderObject::childrenChanged):
91428        (WebCore::AccessibilityRenderObject::canHaveChildren):
91429        (WebCore::AccessibilityRenderObject::addChildren):
91430        * accessibility/AccessibilityRenderObject.h:
91431        (AccessibilityRenderObject):
91432        (WebCore::AccessibilityRenderObject::setRenderer):
91433        * accessibility/AccessibilitySlider.cpp:
91434        (WebCore::AccessibilitySlider::create):
91435        * accessibility/AccessibilityTable.cpp:
91436        (WebCore::AccessibilityTable::AccessibilityTable):
91437        (WebCore::AccessibilityTable::~AccessibilityTable):
91438        (WebCore):
91439        (WebCore::AccessibilityTable::create):
91440        * accessibility/AccessibilityTable.h:
91441        (AccessibilityTable):
91442        * accessibility/AccessibilityTableCell.cpp:
91443        (WebCore::AccessibilityTableCell::create):
91444        * accessibility/AccessibilityTableRow.cpp:
91445        (WebCore::AccessibilityTableRow::create):
91446
914472012-07-20  Christophe Dumez  <christophe.dumez@intel.com>
91448
91449        [EFL] Proxy configuration should honor the no_proxy environment variable
91450        https://bugs.webkit.org/show_bug.cgi?id=91747
91451
91452        Reviewed by Kenneth Rohde Christiansen.
91453
91454        Implement a custom Proxy URI Resolver for libsoup
91455        so that we can use it in EFL port. This custom
91456        proxy resolver brings support for setting
91457        exceptions so that the proxy is not used for the
91458        specified hosts.
91459
91460        By default, the proxy is not used for localhost and
91461        127.0.0.1.
91462
91463        No new tests, no behavior change for layout tests.
91464
91465        * PlatformEfl.cmake:
91466        * platform/network/soup/ProxyResolverSoup.cpp: Added.
91467        (soup_proxy_resolver_wk_init):
91468        (soupProxyResolverWkFinalize):
91469        (soupProxyResolverWkSetProperty):
91470        (soupProxyResolverWkGetProperty):
91471        (shouldBypassProxy):
91472        (idle_return_proxy_uri):
91473        (soupProxyResolverWkGetProxyURIAsync):
91474        (soupProxyResolverWkGetProxyURISync):
91475        (soup_proxy_resolver_wk_class_init):
91476        (soup_proxy_resolver_wk_interface_init):
91477        (soupProxyResolverWkNew):
91478        * platform/network/soup/ProxyResolverSoup.h: Added.
91479
914802012-07-20  Pierre Rossi  <pierre.rossi@gmail.com>
91481
91482        ColorChooserClient should expose the element's location
91483        https://bugs.webkit.org/show_bug.cgi?id=91767
91484
91485        Reviewed by Kent Tamura.
91486
91487        The rationale is that the chrome client could have an interest in placing the picker next to
91488        the element for usability reasons.
91489
91490        No new tests as there is not much logic here: Just exposing a geometry information to WebKit.
91491
91492        * html/ColorInputType.cpp:
91493        (WebCore::ColorInputType::elementRectRelativeToWindow):
91494        (WebCore):
91495        * html/ColorInputType.h:
91496        (ColorInputType):
91497        * platform/ColorChooserClient.h:
91498        (ColorChooserClient):
91499
915002012-07-20  Thiago Marcos P. Santos  <thiago.santos@intel.com>
91501
91502        [WK2] WebIntents doesn't build if mutation observers is disabled
91503        https://bugs.webkit.org/show_bug.cgi?id=91839
91504
91505        Reviewed by Kenneth Rohde Christiansen.
91506
91507        WebIntents was depending on a code protected by ENABLE(MUTATION_OBSERVERS).
91508        Now the code is also enabled by ENABLE(WEB_INTENTS).
91509
91510        * bindings/js/JSDictionary.cpp:
91511        (WebCore):
91512        * bindings/js/JSDictionary.h:
91513
915142012-07-20  Mihnea Ovidenie  <mihnea@adobe.com>
91515
91516        [CSSRegions]Assert failure when layout positioned objects in regions
91517        https://bugs.webkit.org/show_bug.cgi?id=90792
91518
91519        Reviewed by Andreas Kling.
91520
91521        Before clamping the containing block (for an out-of-flow positioned element
91522        inside a named flow) to the region, we have to test whether the region is not
91523        null, which can happen when the named flow does not have attached regions.
91524
91525        Tests: fast/regions/positioned-vrl-in-named-flow.html
91526               fast/regions/positioned-vrl-in-parent-named-flow.html
91527               fast/regions/positioned-with-vrl-parent-in-named-flow.html
91528
91529        * rendering/RenderBox.cpp:
91530        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
91531        (WebCore::RenderBox::computePositionedLogicalWidth):
91532        (WebCore::RenderBox::computePositionedLogicalHeight):
91533
915342012-07-20  Stephen Chenney  <schenney@chromium.org>
91535
91536        SVG Filter Effect sub-region not applied for some filters
91537        https://bugs.webkit.org/show_bug.cgi?id=89767
91538
91539        Reviewed by Dirk Schulze.
91540
91541        The filter effect region for SVG feGaussian and feDropShadow filters
91542        was incorrectly set, failing to account for the radius of the blur.
91543        This patch fixes the problem and removes an unneccessary clip
91544        operation when the filter result is blitted into the target. That clip
91545        was clipping the shadow from webkit-shadow.
91546
91547        Tests: svg/filters/feDropShadow-subregion.svg
91548               svg/filters/feGaussianBlur-subregion.svg
91549
91550        * platform/graphics/filters/FEDropShadow.cpp:
91551        (WebCore::FEDropShadow::determineAbsolutePaintRect): Moved the code
91552        that clips the paint rect by the filter effect subregion to come after
91553        the paint is modified by the filter radius.
91554        * platform/graphics/filters/FEGaussianBlur.cpp:
91555        (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
91556        Moved the code that clips the paint rect by the filter effect subregion to
91557        come after the paint is modified by the filter radius.
91558        * rendering/svg/RenderSVGResourceFilter.cpp:
91559        (WebCore::RenderSVGResourceFilter::postApplyResource):
91560        Removed a clip that is unnecessary and that was incorrectly clipping drop shadows.
91561
915622012-07-19  Pavel Feldman  <pfeldman@chromium.org>
91563
91564        Web Inspector: Status bar icons are misaligned by 1px to the right
91565        https://bugs.webkit.org/show_bug.cgi?id=91757
91566
91567        Reviewed by Vsevolod Vlasov.
91568
91569        * inspector/front-end/inspector.css:
91570        (.glyph):
91571        (.glyph.shadow):
91572
915732012-07-20  Andrei Poenaru  <poenaru@adobe.com>
91574
91575        Web Inspector: Protocol Extension: add getNamedFlowCollection command
91576        https://bugs.webkit.org/show_bug.cgi?id=91607
91577
91578        Reviewed by Pavel Feldman.
91579
91580        Extended the protocol with "getNamedFlowCollection" command.
91581        This command returns the CSS Named Flows from the document.
91582
91583        Test: inspector/styles/protocol-getNamedFlowCollection-command.html
91584
91585        * dom/WebKitNamedFlowCollection.cpp:
91586        (WebCore::WebKitNamedFlowCollection::namedFlowsNames):
91587        (WebCore):
91588        * dom/WebKitNamedFlowCollection.h:
91589        (WebKitNamedFlowCollection):
91590        * inspector/Inspector.json:
91591        * inspector/InspectorCSSAgent.cpp:
91592        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
91593        (WebCore):
91594        * inspector/InspectorCSSAgent.h:
91595        (InspectorCSSAgent):
91596        * inspector/InspectorDOMAgent.cpp:
91597        (WebCore::InspectorDOMAgent::assertDocument):
91598        (WebCore):
91599        * inspector/InspectorDOMAgent.h:
91600        (InspectorDOMAgent):
91601        * inspector/front-end/CSSStyleModel.js:
91602        (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
91603
916042012-07-20  Eugene Klyuchnikov  <eustas.big@gmail.com>
91605
91606        Web Inspector: Timeline: forward compatibility for load.
91607        https://bugs.webkit.org/show_bug.cgi?id=91714
91608
91609        Reviewed by Pavel Feldman.
91610
91611        Accept records of unrecognized types and render them as "unknown".
91612
91613        Test: inspector/timeline/timeline-load-incompatible.html
91614
91615        * English.lproj/localizedStrings.js: Added UI string.
91616        * inspector/front-end/TimelinePresentationModel.js:
91617        (WebInspector.TimelinePresentationModel.recordStyle): Add missing record
91618        styles at runtime.
91619        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
91620        Add some common information for default case.
91621
916222012-07-20  MORITA Hajime  <morrita@google.com>
91623
91624        Another unreviewed Mac build fix against r123184.
91625
91626        * WebCore.exp.in:
91627
916282012-07-20  Mihnea Ovidenie  <mihnea@adobe.com>
91629
91630        [CSSRegions]Crash when flowing a region into itself
91631        https://bugs.webkit.org/show_bug.cgi?id=90289
91632
91633        Reviewed by Andreas Kling.
91634
91635        If a region is designed to receive itself as content through a named flow, we avoid
91636        a circular dependency by not attaching the region to the desired named flow.
91637        In such occasions, the region's attached flow thread object is null and
91638        we have to check this pointer before using it in RenderRegion::styleDidChange.
91639
91640        Test: fast/regions/flow-region-into-itself-crash.html
91641
91642        * rendering/RenderRegion.cpp:
91643        (WebCore::RenderRegion::styleDidChange):
91644
916452012-07-20  MORITA Hajime  <morrita@google.com>
91646
91647        Unreviewed Mac build fix against r123184.
91648
91649        * WebCore.exp.in:
91650
916512012-07-17  Kinuko Yasuda  <kinuko@chromium.org>
91652
91653        If value for responseType defined as type that not supported, it should not throw an exception in XHR 2
91654        https://bugs.webkit.org/show_bug.cgi?id=90976
91655
91656        Reviewed by Alexey Proskuryakov.
91657
91658        http://www.w3.org/TR/XMLHttpRequest2/#the-responsetype-attribute
91659        The spec does not say it should throw an exception when a non-supported
91660        type is set, and other browsers do not throw it either.
91661
91662        Test: fast/xmlhttprequest/xmlhttprequest-responsetype-set-type.html
91663
91664        * xml/XMLHttpRequest.cpp:
91665        (WebCore::XMLHttpRequest::setResponseType): Stop throwing an exception when non-supported type is given.
91666
916672012-07-20  Matt Falkenhagen  <falken@chromium.org>
91668
91669        Show or hide <dialog> depending on the open attribute
91670        https://bugs.webkit.org/show_bug.cgi?id=90931
91671
91672        Reviewed by Kent Tamura.
91673
91674        Test: fast/dom/HTMLDialogElement/dialog-open.html
91675
91676        * css/html.css: Add CSS for dialog. This is copied verbatim from the HTML5 spec: http://www.whatwg.org/specs/web-apps/current-work/#flow-content-1
91677        (dialog:not([open])):
91678        (dialog):
91679        * html/HTMLDialogElement.cpp:
91680        (WebCore::HTMLDialogElement::close): Set open to false, to hide the dialog.
91681        (WebCore::HTMLDialogElement::show): Set open to true, to show the dialog.
91682        (WebCore):
91683        (WebCore::HTMLDialogElement::isPresentationAttribute): Make openAttr a presentation attribute, to work around bug 91058
91684        * html/HTMLDialogElement.h:
91685        (HTMLDialogElement):
91686        * html/HTMLDialogElement.idl:
91687
916882012-07-20  Shinya Kawanaka  <shinyak@chromium.org>
91689
91690        Needs pseudo id to point the inner element of an img elemnet for styling
91691        https://bugs.webkit.org/show_bug.cgi?id=91590
91692
91693        Reviewed by Hajime Morita.
91694
91695        We introduce pseudo id to point the element in UserAgentShadowDOM.
91696        This enables us to style the inner element of an img element shadow.
91697        Please see also http://trac.webkit.org/wiki/ShadowDOMForReplacedElements
91698
91699        Test: fast/dom/shadow/shadowdom-for-image-with-pseudo-id.html
91700
91701        * html/shadow/ImageInnerElement.cpp:
91702        (WebCore::ImageInnerElement::shadowPseudoId):
91703        (WebCore):
91704        * html/shadow/ImageInnerElement.h:
91705        (ImageInnerElement):
91706
917072012-07-20  Kent Tamura  <tkent@chromium.org>
91708
91709        REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
91710        https://bugs.webkit.org/show_bug.cgi?id=91804
91711
91712        Reviewed by Hajime Morita.
91713
91714        The complexity of FormKeyGenerator::formKey() was O(N) where N is the
91715        number of form elements with an identical action URL, and formKey() is
91716        called for every form. So, it's O(N^2). A page in www.reddit.com
91717        contains hundreds of form elements with action="#". So FormController::
91718        formElementsState() took a few seconds on a slow machine.
91719
91720        In order to avoid O(N^2) operation, storing a map from form signatures
91721        to next index numbers, instead of storing existing formKey strings.
91722
91723        No new tests. Just a performance improvement.
91724
91725        * html/FormController.cpp:
91726        (FormKeyGenerator): Remove m_existingKeys. Add a map from a form
91727        signature string to the next index number.
91728        (WebCore::formSignature): Returns a signature string for a form, without
91729        an index number. This is like "actionURL [name1 name2 ]"
91730        (WebCore::FormKeyGenerator::formKey):
91731        Creates a formKey string by concatenating a formSignature and #n. N is
91732        obtained from m_formSignatureToNextIndexMap in O(1).
91733        (WebCore::FormKeyGenerator::willDeleteForm):
91734        Remove the code for m_existingKeys.
91735
917362012-07-20  Keishi Hattori  <keishi@webkit.org>
91737
91738        Fix crash in WebCore::HTMLInputElement::dataList
91739        https://bugs.webkit.org/show_bug.cgi?id=91818
91740
91741        Reviewed by Kent Tamura.
91742
91743        Fix crash that occurs when setting slider appearance on a regular node.
91744
91745        Test: fast/forms/range/slider-appearance-crash.html
91746
91747        * rendering/RenderTheme.cpp:
91748        (WebCore::RenderTheme::paintSliderTicks): Check if node is an input element.
91749
917502012-07-20  Kent Tamura  <tkent@chromium.org>
91751
91752        [Chromium] Fix an assertion failure in TextFieldDecorationElement::hostInput()
91753        https://bugs.webkit.org/show_bug.cgi?id=91824
91754
91755        Reviewed by Hajime Morita.
91756
91757        No new tests. This code is used only in Chromium browser.
91758
91759        * html/shadow/TextFieldDecorationElement.cpp:
91760        (WebCore::TextFieldDecorationElement::hostInput):
91761        Use shadowHost(), and allow to return 0.
91762        (WebCore::TextFieldDecorationElement::defaultEventHandler):
91763        Check 0.
91764
917652012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
91766
91767        [Qt] Compile WebCore without QtWidgets
91768        https://bugs.webkit.org/show_bug.cgi?id=91819
91769
91770        Reviewed by Kenneth Rohde Christiansen.
91771
91772        * WebCore.pri: QT += opengl is not needed for Qt 5, given that QtGui has OpenGL
91773        support built in with the QOpenGL* classes.
91774
917752012-07-19  MORITA Hajime  <morrita@google.com>
91776
91777        [Refactoring] Replace Node's Document pointer with a TreeScope pointer
91778        https://bugs.webkit.org/show_bug.cgi?id=59816
91779
91780        Reviewed by Ryosuke Niwa.
91781
91782        Before this change, Node::treeScope() fetches the TreeScope object
91783        from ElementRareData. This approach has several shortcomings:
91784
91785        - rareData() call is slow due to a hashtable lookup.
91786        - In shadow tree, each node has its tree scope in ElementRareData,
91787          that means the rare-data is no longer rare in that case.
91788
91789        This change gets rid of ElementRareData::m_treeScope by replacing
91790        Node::m_document with Node::m_treeScope. And retrieves the
91791        document of Node through m_treeScope.
91792
91793        Note that Node::document() is a hot function and naive
91794        replacemennt of m_document with m_treeScope can hurt the
91795        speed. This change employs some tricks to address it.
91796
91797        - This change introduces Node::InShadowTree flag, if the flag is off,
91798          that means m_treeScope is actually a document an can be returned as the result.
91799          this eliminates an extract dereference.
91800        - Node::m_treeScope can be null. But we don't want to issue any extra
91801          conditional statement. So this change represents a null
91802          TreeScope as TreeScope::nullInstance(), which saves one conditional
91803          statement.
91804
91805        With these changes, the Node::document() slowdown is minimized to
91806        unnoticeable size.
91807
91808        No new tests. Covered by existing tests.
91809
91810        * dom/Document.cpp: Took care of connectio betwen TreeScope.
91811        (WebCore::Document::Document):
91812        (WebCore::Document::~Document):
91813        (WebCore::Document::suggestedMIMEType):
91814        * dom/Document.h:
91815        (WebCore::Node::treeScope): Now just return m_treeScope, taking care of nullInstance() case.
91816        (WebCore):
91817        (WebCore::Node::setTreeScope): Now just sets m_treeScope.
91818        (WebCore::Node::documentInternal): Extracted from document() to have ASSERT-free version.
91819        (WebCore::Node::document): Re-implemented over treeScope() and the flag.
91820        (WebCore::Node::isDocumentNode): Re-implemented using treeScope()
91821        (WebCore::Node::Node):
91822        * dom/Node.cpp:
91823        (WebCore::Node::~Node):
91824        (WebCore::Node::reportMemoryUsage):
91825        * dom/Node.h:
91826        (Node):
91827        (WebCore::Node::inDocument):
91828        (WebCore::Node::isInShadowTree): Rewrote to use InShadowTree flag.
91829        * dom/NodeRareData.h:
91830        (WebCore::NodeRareData::NodeRareData): Eliminated m_treeScope.
91831        (NodeRareData):
91832        * dom/ShadowRoot.cpp:
91833        (WebCore::ShadowRoot::ShadowRoot):
91834        * dom/TreeScope.cpp:
91835        (WebCore::TreeScope::TreeScope):
91836        (WebCore):
91837        (WebCore::TreeScope::setParentTreeScope): Added.
91838        (WebCore::TreeScope::isDocumentScope): Added.
91839        (WebCore::TreeScope::nullInstance): Added.
91840        * dom/TreeScope.h: Added m_parentTreeScope.
91841        (WebCore):
91842        (WebCore::TreeScope::rootDocument): Added.
91843        (TreeScope):
91844        * dom/TreeScopeAdopter.cpp: No longer calls setDocument()
91845        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
91846        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
91847        * editing/MoveSelectionCommand.cpp: Includes Document.h to find inlined Node functions
91848        * editing/RemoveNodeCommand.cpp: Includes Document.h to find inlined Node functions
91849        * editing/RemoveNodePreservingChildrenCommand.cpp: Includes Document.h to find inlined Node functions
91850        * inspector/PageConsoleAgent.cpp: Includes Document.h to find inlined Node functions
91851
918522012-07-19  David Hyatt  <hyatt@apple.com>
91853
91854        SVG not properly respecting max-width.
91855        https://bugs.webkit.org/show_bug.cgi?id=91474
91856
91857        My previous checkin for 91474 accidentally inverted width and height in the division case for
91858        the computation of height. When I fixed this inversion, I discovered that <object> elements
91859        are in fact also broken with max-width handling, and that furthermore, trying to apply the same
91860        max-width fix by calling RenderBox::computeReplacedLogicalWidth/Height failed because those methods
91861        call intrinsicLogicalWidth()/Height(). Becuase m_intrinsicSize is out-of-date and does not reflect
91862        the values we just obtained from the contentRenderer, we use the default 300x150 values for object
91863        and fail to render.
91864        
91865        In order to both fix SVG/<object> with max-width constraints and to keep <object> rendering correctly
91866        even when there are no max-width constraints, I was forced to update the m_intrinsicSize immediately
91867        in order to make sure that the RenderBox methods returned the right values when computing the width/height
91868        constrained to max/min-width/height values.
91869
91870        Reviewed by Dan Bernstein.
91871
91872        Added two new tests in svg/as-image. One test covers non-rectangular images to test for the inversion
91873        mistake I made. The second test applies a max-width to <object> and shows that we have never gotten
91874        this right before. An existing test in svg/as-image/ already covers basic <object> use (and tests that
91875        the intrinsic size of 300x150 is not used when an explicit non-percentage size is specified on the SVG
91876        itself).
91877
91878        * rendering/RenderReplaced.cpp:
91879        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
91880        Add a check to update m_intrinsicSize when we know it should apply, so that the calls to check against
91881        min/max-width fetch this correct size.
91882        
91883        * rendering/RenderReplaced.h:
91884        (RenderReplaced):
91885        Make m_intrinsicSize mutable because of the mutation that occurs during the method above. It may be
91886        that we should re-evaluate whether all of these methods should be const, but this would impact RenderBox
91887        methods as well, so I chose to hold off going down that rabbit hole.
91888
918892012-07-19  Dominic Mazzoni  <dmazzoni@google.com>
91890
91891        AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
91892        https://bugs.webkit.org/show_bug.cgi?id=87899
91893
91894        Reviewed by Chris Fleizach.
91895
91896        Refactors AccessibilityRenderObject so that it inherits from a new class,
91897        AccessibilityNodeObject, that can be constructed from a Node without a
91898        renderer. Modifies AXObjectCache so that it automatically creates an
91899        AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
91900        A new layout test verifies that this correctly exposes an accessibility
91901        tree with appropriate roles for elements in a canvas subtree.
91902
91903        This patch does not try to complete the implementation of
91904        AccessibilityNodeObject. Most AX methods are still unimplemented and need
91905        to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
91906        in a future patch.
91907        
91908        This patch also doesn't change anything outside of WebCore/accessibility, so
91909        the rest of WebCore only calls AXObjectCache when there are changes to a
91910        RenderObject, not to a Node. Accessible notifications on nodes without
91911        renderers need to be implemented in a future patch.
91912
91913        Test: accessibility/canvas-accessibilitynodeobject.html
91914
91915        * CMakeLists.txt:
91916        * GNUmakefile.list.am:
91917        * Target.pri:
91918        * WebCore.gypi:
91919        * accessibility/AXObjectCache.cpp:
91920        (WebCore::AXObjectCache::get):
91921        (WebCore):
91922        (WebCore::createFromNode):
91923        (WebCore::AXObjectCache::getOrCreate):
91924        (WebCore::AXObjectCache::remove):
91925        * accessibility/AXObjectCache.h:
91926        (AXObjectCache):
91927        (WebCore::AXObjectCache::get):
91928        (WebCore::AXObjectCache::getOrCreate):
91929        (WebCore::AXObjectCache::remove):
91930        * accessibility/AccessibilityARIAGrid.cpp:
91931        (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
91932        (WebCore):
91933        (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
91934        (WebCore::AccessibilityARIAGrid::init):
91935        (WebCore::AccessibilityARIAGrid::create):
91936        * accessibility/AccessibilityARIAGrid.h:
91937        (AccessibilityARIAGrid):
91938        * accessibility/AccessibilityARIAGridCell.cpp:
91939        (WebCore::AccessibilityARIAGridCell::create):
91940        * accessibility/AccessibilityARIAGridRow.cpp:
91941        (WebCore::AccessibilityARIAGridRow::create):
91942        * accessibility/AccessibilityAllInOne.cpp:
91943        * accessibility/AccessibilityList.cpp:
91944        (WebCore::AccessibilityList::create):
91945        * accessibility/AccessibilityListBox.cpp:
91946        (WebCore::AccessibilityListBox::create):
91947        * accessibility/AccessibilityMediaControls.cpp:
91948        (WebCore::AccessibilityMediaControl::create):
91949        (WebCore::AccessibilityMediaControlsContainer::create):
91950        (WebCore::AccessibilityMediaTimeline::create):
91951        (WebCore::AccessibilityMediaTimeDisplay::create):
91952        * accessibility/AccessibilityMenuList.cpp:
91953        (WebCore::AccessibilityMenuList::create):
91954        (WebCore):
91955        * accessibility/AccessibilityMenuList.h:
91956        (AccessibilityMenuList):
91957        * accessibility/AccessibilityNodeObject.cpp: Added.
91958        (WebCore):
91959        (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
91960        (WebCore::AccessibilityNodeObject::~AccessibilityNodeObject):
91961        (WebCore::AccessibilityNodeObject::init):
91962        (WebCore::AccessibilityNodeObject::create):
91963        (WebCore::AccessibilityNodeObject::detach):
91964        (WebCore::AccessibilityNodeObject::childrenChanged):
91965        (WebCore::AccessibilityNodeObject::updateAccessibilityRole):
91966        (WebCore::AccessibilityNodeObject::firstChild):
91967        (WebCore::AccessibilityNodeObject::lastChild):
91968        (WebCore::AccessibilityNodeObject::previousSibling):
91969        (WebCore::AccessibilityNodeObject::nextSibling):
91970        (WebCore::AccessibilityNodeObject::parentObjectIfExists):
91971        (WebCore::AccessibilityNodeObject::parentObject):
91972        (WebCore::AccessibilityNodeObject::elementRect):
91973        (WebCore::AccessibilityNodeObject::setNode):
91974        (WebCore::AccessibilityNodeObject::document):
91975        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
91976        (WebCore::AccessibilityNodeObject::addChildren):
91977        (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
91978        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
91979        (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
91980        (WebCore::AccessibilityNodeObject::ariaRoleAttribute):
91981        (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):
91982        * accessibility/AccessibilityNodeObject.h: Added.
91983        (WebCore):
91984        (AccessibilityNodeObject):
91985        (WebCore::AccessibilityNodeObject::isAccessibilityNodeObject):
91986        (WebCore::AccessibilityNodeObject::node):
91987        (WebCore::AccessibilityNodeObject::isDetached):
91988        (WebCore::toAccessibilityNodeObject):
91989        * accessibility/AccessibilityObject.h:
91990        (WebCore::AccessibilityObject::isAccessibilityNodeObject):
91991        * accessibility/AccessibilityProgressIndicator.cpp:
91992        (WebCore::AccessibilityProgressIndicator::create):
91993        * accessibility/AccessibilityRenderObject.cpp:
91994        (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
91995        (WebCore::AccessibilityRenderObject::init):
91996        (WebCore):
91997        (WebCore::AccessibilityRenderObject::create):
91998        (WebCore::AccessibilityRenderObject::detach):
91999        (WebCore::AccessibilityRenderObject::setRenderer):
92000        (WebCore::AccessibilityRenderObject::canHaveChildren):
92001        (WebCore::AccessibilityRenderObject::addCanvasChildren):
92002        (WebCore::AccessibilityRenderObject::addChildren):
92003        * accessibility/AccessibilityRenderObject.h:
92004        (AccessibilityRenderObject):
92005        * accessibility/AccessibilitySlider.cpp:
92006        (WebCore::AccessibilitySlider::create):
92007        * accessibility/AccessibilityTable.cpp:
92008        (WebCore::AccessibilityTable::AccessibilityTable):
92009        (WebCore):
92010        (WebCore::AccessibilityTable::~AccessibilityTable):
92011        (WebCore::AccessibilityTable::init):
92012        (WebCore::AccessibilityTable::create):
92013        * accessibility/AccessibilityTable.h:
92014        (AccessibilityTable):
92015        * accessibility/AccessibilityTableCell.cpp:
92016        (WebCore::AccessibilityTableCell::create):
92017        * accessibility/AccessibilityTableRow.cpp:
92018        (WebCore::AccessibilityTableRow::create):
92019
920202012-07-19  Dan Bernstein  <mitz@apple.com>
92021
92022        The ATSUI-based complex text code is unused
92023        https://bugs.webkit.org/show_bug.cgi?id=91816
92024
92025        Reviewed by Sam Weinig.
92026
92027        * WebCore.gypi: Removed references to the files deleted in this change.
92028        * WebCore.xcodeproj/project.pbxproj: Ditto.
92029        * platform/graphics/FontCache.h:
92030        (FontCache): Replaced USE(CORE_TEXT) with PLATFORM(MAC) || PLATFORM(CHROMIUM) && OS(DARWIN).
92031        * platform/graphics/SimpleFontData.h:
92032        (SimpleFontData): Removed USE(ATSUI)-only code, replaced USE(CORE_TEXT) with
92033        (PLATFORM(CHROMIUM) && OS(DARWIN)).
92034        * platform/graphics/mac/ComplexTextController.cpp: Removed USE(ATSUI)-only code. Moved
92035        collectComplexTextRunsForCharacters() and the ComplexTextRun constructor out of this file.
92036        * platform/graphics/mac/ComplexTextController.h: Removed USE(ATSUI)-only code and removed
92037        #if USE(CORE_TEXT) because anyone including this header is using Core Text.
92038        * platform/graphics/mac/ComplexTextControllerATSUI.cpp: Removed.
92039        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
92040        (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moved from
92041        ComplexTextController.cpp into this file and merged with createTextRunFromFontDataCoreText().
92042        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Moved from
92043        ComplexTextController.cpp into this file and merged with
92044        collectComplexTextRunsForCharactersCoreText().
92045        * platform/graphics/mac/SimpleFontDataATSUI.mm: Removed.
92046        * platform/graphics/mac/SimpleFontDataMac.mm:
92047        (WebCore::SimpleFontData::platformInit): Remove USE(ATSUI)-only code.
92048        (WebCore::SimpleFontData::platformDestroy): Ditto.
92049        * platform/text/mac/ShapeArabic.c: Removed.
92050        * platform/text/mac/ShapeArabic.h: Removed.
92051
920522012-07-19  Kent Tamura  <tkent@chromium.org>
92053
92054        Introduce Node::shadowHost()
92055        https://bugs.webkit.org/show_bug.cgi?id=91814
92056
92057        Reviewed by Hajime Morita.
92058
92059        Introduce Node::shadowHost(), which return the host element, or 0.
92060        Node::shadowAncestorNode() is used to obtain a shadow host. However it
92061        is confusing because it returns 'this' if this is not in a shadow tree.
92062
92063        Replaces one callsite of shadowAncestorNode() with shadowHost().
92064
92065        No behavior change.
92066
92067        * dom/Node.cpp:
92068        (WebCore::Node::shadowHost): Added.
92069        * dom/Node.h:
92070        (Node): Declare shadowHost(), and add a comment to shadowAncestorNode().
92071        * html/shadow/CalendarPickerElement.cpp:
92072        (WebCore::CalendarPickerElement::hostInput):
92073        Replace shadowAncestorNode() with shaodwHost().
92074
920752012-07-19  Kent Tamura  <tkent@chromium.org>
92076
92077        Form state restore: Need to identify a form by its content
92078        https://bugs.webkit.org/show_bug.cgi?id=91209
92079
92080        Reviewed by Hajime Morita.
92081
92082        Add names of the first two controls of a form to its formKey
92083        string. By this change, we can correctly restore states to
92084        reordered forms like webkit.org/b/91209#c0.
92085
92086        Tests: Added test cases to fast/forms/state-restore-per-form.html.
92087
92088        * html/FormController.cpp:
92089        (WebCore::recordFormStructure):
92090        Append at most two name attribute values.
92091        (WebCore::createKey): Insert a string built by recordFromStructure().
92092        (WebCore::formStateSignature): Bump the version.
92093
920942012-07-19  Wei James  <james.wei@intel.com>
92095
92096        enable Web Audio for chromium android port
92097        https://bugs.webkit.org/show_bug.cgi?id=89428
92098
92099        Reviewed by Kenneth Russell.
92100
92101        * WebCore.gyp/WebCore.gyp:
92102        * platform/audio/FFTFrameStub.cpp:
92103        (WebCore::FFTFrame::doFFT):
92104
921052012-07-19  David Hyatt  <hyatt@apple.com>
92106
92107        SVG images broken when max-width specified.
92108        https://bugs.webkit.org/show_bug.cgi?id=91474
92109
92110        SVG images were computing intrinsic dimensions when width and height were auto that did not
92111        respect min-max width/height. Normal images had code that applied these constraints properly.
92112        Looking at the code before the check-in that broke things, these constraints used to be
92113        applied to all images regardless of type via calcAspectRatioLogicalWidth/Height.
92114        
92115        This patch leaves the new function structure in place but converts the code to be more like
92116        it was prior to the introduction of the regression. Instead of raw intrinsic sizes being
92117        used in the SVG case, now all image types get the intrinsic sizes constrained when doing
92118        width/height computations.
92119
92120        Reviewed by Dan Bernstein.
92121
92122        Test: svg/as-image/svg-intrinsic-size.html
92123
92124        * rendering/RenderReplaced.cpp:
92125        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
92126        Rename computeIntrinsicRatioInformationForRenderBox to computeAspectRatioInformationForRenderBox.
92127        Also rename the intrinsicSize reference to constrainedSize to reflect the fact that the size
92128        is not necessarily the intrinsic size any longer but instead a size where both axes have been
92129        constrained based off the max-min values of the opposite axes.
92130        
92131        Move the constraining code out of RenderReplaced::computeIntrinsicRatioInformation into this
92132        function so that the SVG code path appies the constraints as well. The movement of this code
92133        is what fixes the bug.
92134
92135        (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
92136        Changed to remove the code that constrains the returned size, since it is shifting to
92137        computeAspectRatioInformationForRenderBox instead.
92138
92139        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
92140        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
92141        * rendering/RenderReplaced.h:
92142        (RenderReplaced):
92143        Patch the name of the reference passed in to computeReplacedLogicalWidth/Height to be
92144        constrainedSize instead of intrinsicSize, so that it is more obvious that the returned
92145        result is not just the intrinsic size of the image.
92146
921472012-07-19  Dmitry Titov  <dimich@chromium.org>
92148
92149        Unreviewed, reverting http://trac.webkit.org/changeset/123149.
92150        It broke an IDB test on Chromium page cycler.
92151
92152        * bindings/v8/SerializedScriptValue.cpp:
92153        (WebCore::SerializedScriptValue::SerializedScriptValue):
92154        (WebCore):
92155        * bindings/v8/SerializedScriptValue.h:
92156        * dom/MessageEvent.cpp:
92157        (WebCore::MessageEvent::MessageEvent):
92158        (WebCore::MessageEvent::initMessageEvent):
92159
921602012-07-19  Julien Chaffraix  <jchaffraix@webkit.org>
92161
92162        [CSS2.1] Anonymous tables should be inline/block-level based off their parent
92163        https://bugs.webkit.org/show_bug.cgi?id=15365
92164
92165        Reviewed by Abhishek Arya.
92166
92167        This change makes us match bullet 3 "Generate missing parents" of section 17.2.1 http://www.w3.org/TR/CSS2/tables.html#anonymous-boxes":
92168        "If a table is contained by an inline element, then the anonymous tables should be inline-tables."
92169
92170        Patch based on an earlier change by Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.
92171
92172        Tests: css2.1/20110323/inline-table-002b.html
92173               fast/dynamic/insert-before-table-part-in-continuation.html
92174               fast/table/inline-table-in-continuation.html
92175               fast/table/inline-table-with-caption.html
92176
92177        * rendering/RenderTable.cpp:
92178        (WebCore::RenderTable::createAnonymousWithParentRenderer):
92179        Added a check to determine if we should be inline or block based on our parent to match CSS 2.1.
92180
92181        * rendering/RenderInline.cpp:
92182        (WebCore::RenderInline::addChildIgnoringContinuation):
92183        Changed the child addition logic to not wrap a table part in an inline context. This change works
92184        as intended as we will call RenderObject::addChild which will create an anonymous inline table that
92185        will be added under |this| instead of the table part. As the table is inline, it doesn't need to be
92186        wrapped when we recursively call RenderInline::addChild.
92187
921882012-07-19  Chris Fleizach  <cfleizach@apple.com>
92189
92190        WebKit should pass <title> element value as the default description for web views
92191        https://bugs.webkit.org/show_bug.cgi?id=91763
92192
92193        Reviewed by Anders Carlsson.
92194
92195        Update the logic for determining the description for the AXWebArea to include the document's title.
92196
92197        Test: platform/mac/accessibility/document-title-used-for-description.html
92198
92199        * accessibility/AccessibilityRenderObject.cpp:
92200        (WebCore::AccessibilityRenderObject::webAreaAccessibilityDescription):
92201           Move web area description handling into a separate method.
92202        (WebCore::AccessibilityRenderObject::accessibilityDescription):
92203        * accessibility/AccessibilityRenderObject.h:
92204        (AccessibilityRenderObject):
92205
922062012-07-19  Zeev Lieber  <zlieber@chromium.org>
92207
92208        [Chromium] Textures drawn during occlusion are incorrectly re-used when unoccluded.
92209        https://bugs.webkit.org/show_bug.cgi?id=91537
92210
92211        Reviewed by Adrienne Walker.
92212
92213        Detecting if any external occlusion occurs when drawing a
92214        texture. If external occlusion happens, the texture is marked as
92215        "incomplete" in LayerRendererChromium, and is not being considered
92216        for re-use.
92217
92218        Minor refactoring of CCQuadCuller - extracted interface
92219        (CCQuadSink) and united append() and appendSurface() methods.
92220
92221        Added unit tests to verify this fix; also added test to try
92222        clipping instead of occlusion.
92223
92224        * platform/graphics/chromium/LayerRendererChromium.cpp:
92225        (LayerRendererChromium::CachedTexture):
92226        (WebCore::LayerRendererChromium::CachedTexture::create):
92227        (WebCore::LayerRendererChromium::CachedTexture::~CachedTexture):
92228        (WebCore::LayerRendererChromium::CachedTexture::isComplete):
92229        (WebCore::LayerRendererChromium::CachedTexture::setIsComplete):
92230        (WebCore::LayerRendererChromium::CachedTexture::CachedTexture):
92231        (WebCore):
92232        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
92233        (WebCore::LayerRendererChromium::haveCachedResourcesForRenderPassId):
92234        (WebCore::LayerRendererChromium::drawRenderPassQuad):
92235        * platform/graphics/chromium/LayerRendererChromium.h:
92236        (LayerRendererChromium):
92237        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
92238        (WebCore::CCIOSurfaceLayerImpl::appendQuads):
92239        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
92240        (CCIOSurfaceLayerImpl):
92241        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
92242        (WebCore::CCLayerImpl::appendDebugBorderQuad):
92243        * platform/graphics/chromium/cc/CCLayerImpl.h:
92244        (WebCore):
92245        (WebCore::CCLayerImpl::appendQuads):
92246        (CCLayerImpl):
92247        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
92248        (WebCore::::unoccludedContentRect):
92249        (WebCore::::unoccludedContributingSurfaceContentRect):
92250        (WebCore):
92251        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
92252        (CCOcclusionTrackerBase):
92253        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
92254        (WebCore::CCQuadCuller::CCQuadCuller):
92255        (WebCore::CCQuadCuller::append):
92256        * platform/graphics/chromium/cc/CCQuadCuller.h:
92257        (WebCore):
92258        (CCQuadCuller):
92259        (WebCore::CCQuadCuller::~CCQuadCuller):
92260        (WebCore::CCQuadCuller::hasExternalOcclusion):
92261        * platform/graphics/chromium/cc/CCQuadSink.h:
92262        (WebKit):
92263        (WebCore):
92264        (CCQuadSink):
92265        (WebCore::CCQuadSink::~CCQuadSink):
92266        * platform/graphics/chromium/cc/CCRenderPass.cpp:
92267        (WebCore::CCRenderPass::CCRenderPass):
92268        (WebCore::CCRenderPass::appendQuadsForLayer):
92269        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
92270        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
92271        (WebCore::CCRenderPassDrawQuad::create):
92272        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
92273        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
92274        (CCRenderPassDrawQuad):
92275        (WebCore::CCRenderPassDrawQuad::hasExternalOcclusion):
92276        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
92277        (WebCore::CCRenderSurface::CCRenderSurface):
92278        (WebCore::CCRenderSurface::appendQuads):
92279        * platform/graphics/chromium/cc/CCRenderSurface.h:
92280        (WebCore):
92281        (WebCore::CCRenderSurface::setHasExternalOcclusion):
92282        (WebCore::CCRenderSurface::hasExternalOcclusion):
92283        (CCRenderSurface):
92284        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
92285        (WebCore::CCScrollbarLayerImpl::appendQuads):
92286        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
92287        (CCScrollbarLayerImpl):
92288        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
92289        (WebCore::CCSolidColorLayerImpl::appendQuads):
92290        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
92291        (CCSolidColorLayerImpl):
92292        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
92293        (WebCore::CCTextureLayerImpl::appendQuads):
92294        * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
92295        (CCTextureLayerImpl):
92296        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
92297        (WebCore::CCTiledLayerImpl::appendQuads):
92298        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
92299        (CCTiledLayerImpl):
92300        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
92301        (WebCore::CCVideoLayerImpl::appendQuads):
92302        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
92303        (CCVideoLayerImpl):
92304
923052012-07-19  Simon Fraser  <simon.fraser@apple.com>
92306
92307        Keep overlap testing on for descendants of an animating element
92308        https://bugs.webkit.org/show_bug.cgi?id=91787
92309
92310        Reviewed by Beth Dakin.
92311
92312        RenderLayerCompositor::computeCompositingRequirements() would turn off
92313        overlap testing for descendants of a layer that has a 3D transform,
92314        or has an animating transform. This could cause compositing changes
92315        inside an animating element when transitions start and stop, which
92316        is undesirable.
92317        
92318        Instead, we can keep overlap testing on for descendants of that
92319        animating element, but we have to turn it off for layers later
92320        in z-order.
92321        
92322        Also enhance the "IndirectCompositingReason" flags so that in
92323        the compositing log output, we can distinguish between layers that
92324        were composited as a result of overlap testing from those compositing
92325        for stacking reasons.
92326
92327        Test: compositing/layer-creation/animation-overlap-with-children.html
92328
92329        * rendering/RenderLayer.h: New IndirectCompositingReason value to
92330        distinguish overlap from stacking.
92331        * rendering/RenderLayerCompositor.cpp:
92332        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
92333        Use an IndirectCompositingReason enum rather than a bool to track whether
92334        the layer starts as composited.
92335        Remove the if (layer->has3DTransform() || isRunningAcceleratedTransformAnimation(layer->renderer()))
92336        check that turned off overlap testing for descendants of this layer.
92337        Use IndirectCompositingForStacking (somewhat arbitrarily) for reflection layers.
92338        Turn overlap testing off for layers later in the z-order.
92339        (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Take IndirectCompositingForStacking into
92340        account.
92341        (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
92342
923432012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
92344
92345        [Qt] Enable CSS shaders in Qt (software mode)
92346        https://bugs.webkit.org/show_bug.cgi?id=85140
92347
92348        Reviewed by Simon Hausmann.
92349
92350        Added missing files to the Qt build.
92351
92352        No new tests, WebGL is still disabled by default in the bots.
92353
92354        * Target.pri:
92355
923562012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
92357
92358        [Qt] Enable CSS shaders in Qt (software mode)
92359        https://bugs.webkit.org/show_bug.cgi?id=85140
92360
92361        Reviewed by Simon Hausmann.
92362
92363        Added missing files to the Qt build.
92364
92365        No new tests, WebGL is still disabled by default in the bots.
92366
92367        * Target.pri:
92368
923692012-07-19  Simon Fraser  <simon.fraser@apple.com>
92370
92371        Keep overlap testing on for descendants of an animating element
92372        https://bugs.webkit.org/show_bug.cgi?id=91787
92373
92374        Reviewed by Beth Dakin.
92375
92376        RenderLayerCompositor::computeCompositingRequirements() would turn off
92377        overlap testing for descendants of a layer that has a 3D transform,
92378        or has an animating transform. This could cause compositing changes
92379        inside an animating element when transitions start and stop, which
92380        is undesirable.
92381        
92382        Instead, we can keep overlap testing on for descendants of that
92383        animating element, but we have to turn it off for layers later
92384        in z-order.
92385        
92386        Also enhance the "IndirectCompositingReason" flags so that in
92387        the compositing log output, we can distinguish between layers that
92388        were composited as a result of overlap testing from those compositing
92389        for stacking reasons.
92390
92391        Test: compositing/layer-creation/animation-overlap-with-children.html
92392
92393        * rendering/RenderLayer.h: New IndirectCompositingReason value to
92394        distinguish overlap from stacking.
92395        * rendering/RenderLayerCompositor.cpp:
92396        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
92397        Use an IndirectCompositingReason enum rather than a bool to track whether
92398        the layer starts as composited.
92399        Remove the if (layer->has3DTransform() || isRunningAcceleratedTransformAnimation(layer->renderer()))
92400        check that turned off overlap testing for descendants of this layer.
92401        Use IndirectCompositingForStacking (somewhat arbitrarily) for reflection layers.
92402        Turn overlap testing off for layers later in the z-order.
92403        (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Take IndirectCompositingForStacking into
92404        account.
92405        (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
92406
924072012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
92408
92409        [Qt] Enable CSS shaders in Qt (software mode)
92410        https://bugs.webkit.org/show_bug.cgi?id=85140
92411
92412        Reviewed by Simon Hausmann.
92413
92414        Added missing files to the Qt build.
92415
92416        No new tests, WebGL is still disabled by default in the bots.
92417
92418        * Target.pri:
92419
924202012-07-17  Dmitry Titov  <dimich@chromium.org>
92421
92422        [Chromium] Out of Memory is observed when a large object is passed to a Web Worker.
92423        https://bugs.webkit.org/show_bug.cgi?id=91535.
92424
92425        Reviewed by Dave Levin.
92426
92427        No new tests because of no new behavior and lack of mechanism to monitor used memory.
92428
92429        * bindings/v8/SerializedScriptValue.cpp:
92430        (WebCore::SerializedScriptValue::SerializedScriptValue):
92431        (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
92432        (WebCore):
92433        (WebCore::SerializedScriptValue::~SerializedScriptValue):
92434        * bindings/v8/SerializedScriptValue.h:
92435        (SerializedScriptValue):
92436        Added a method to SerializedScriptValue to add memory pressure on GC proportional to the size of memory allocated in serialized data.
92437        
92438        * dom/MessageEvent.cpp:
92439        (WebCore::MessageEvent::MessageEvent):
92440        (WebCore::MessageEvent::initMessageEvent):
92441        Call the new method of SerializedScriptValue during creation of MessageEvent (presumably in the thread which contains the right V8 context).
92442
924432012-07-19  Dan Bernstein  <mitz@apple.com>
92444
92445        In flipped blocks writing modes, no flipping occurs when mapping RenderText’s local coordinates to absolute
92446        https://bugs.webkit.org/show_bug.cgi?id=91780
92447
92448        Reviewed by Anders Carlsson.
92449
92450        Test: fast/writing-mode/flipped-blocks-text-map-local-to-container.html
92451
92452        When RenderObject::mapLocalToContainer() was called on a RenderText with ApplyContainerFlip,
92453        it would not flip (if the container was not a box) but it would always pass
92454        DoNotApplyContainerFlip when recurring to the parent. This meant that no one applied the flip.
92455
92456        * rendering/RenderInline.cpp:
92457        (WebCore::RenderInline::mapLocalToContainer): Made the setting of applyContainerFlip to
92458        false unconditional on the container actually being flipped.
92459        * rendering/RenderObject.cpp:
92460        (WebCore::RenderObject::mapLocalToContainer): Rather than always passing
92461        DoNotApplyContainerFlip when recurring to the parent, changed this function to pass through
92462        the value of applyContainerFlip it was called with, unless it applied the flip itself.
92463
924642012-07-19  Erik Arvidsson  <arv@chromium.org>
92465
92466        Window top should not be replaceable
92467        https://bugs.webkit.org/show_bug.cgi?id=91755
92468
92469        Reviewed by Adam Barth.
92470
92471        Window top is readonly and unforgable and should not be replaceable.
92472
92473        http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#the-window-object
92474
92475        This change brings JSC inline with all other browsers.
92476
92477        No new tests. Modified existing tests.
92478
92479        * page/DOMWindow.idl:
92480
924812012-07-19  Max Feil  <mfeil@rim.com>
92482
92483        [BlackBerry] Only maintain the hole punch rect while html5 video is being renderered
92484        https://bugs.webkit.org/show_bug.cgi?id=91689
92485
92486        Reviewed by Antonio Gomes.
92487
92488        The hole punch rectangle needs to be present if and only if html5
92489        video content is being rendered. Otherwise unwanted content may
92490        show through from behind the browser tab's window.
92491
92492        I am not adding any new tests because the difficulty of testing
92493        for this case outweighs the benefit.
92494
92495        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
92496        (WebCore::MediaPlayerPrivate::updateStates):
92497
924982012-07-19  Bem Jones-Bey  <bjonesbe@adobe.com>
92499
92500        [CSS Exclusions] - Code cleanup: make shape parsing use isComma() instead of manual checks
92501        https://bugs.webkit.org/show_bug.cgi?id=91760
92502
92503        Reviewed by Eric Seidel.
92504
92505        Remove code duplication by making the rectangle, circle, and ellipse
92506        methods use isComma() to detect a comma.
92507
92508        No new tests needed: no new functionality added.
92509
92510        * css/CSSParser.cpp:
92511        (WebCore::CSSParser::parseExclusionShapeRectangle):
92512        (WebCore::CSSParser::parseExclusionShapeCircle):
92513        (WebCore::CSSParser::parseExclusionShapeEllipse):
92514
925152012-07-19  Raymond Toy  <rtoy@google.com>
92516
92517        Limit maximum delay of DelayNode.
92518        https://bugs.webkit.org/show_bug.cgi?id=91675
92519
92520        Reviewed by Kenneth Russell.
92521
92522        Clip the maximum delay of a DelayNode to a reasonable maximum.
92523        
92524        Test: webaudio/delaynode-maxdelaylimit.html
92525
92526        * Modules/webaudio/DelayNode.cpp:
92527        (WebCore): Add maximumAllowedDelayTime.
92528        (WebCore::DelayNode::DelayNode): Clip max delay.
92529
925302012-07-14  Robert Hogan  <robert@webkit.org>
92531
92532        CSS 2.1 failure: text-indent-intrinsic-003 fails
92533        https://bugs.webkit.org/show_bug.cgi?id=80576
92534
92535        Reviewed by Eric Seidel.
92536
92537        Negative values of text-indent should be distributed across inline children until used up.
92538        This fixes text-indent-intrinsic-003 and text-indent-intrinsic-004.
92539
92540        Tests: css2.1/20110323/text-indent-intrinsic-001.htm
92541               css2.1/20110323/text-indent-intrinsic-002.htm
92542               css2.1/20110323/text-indent-intrinsic-003.htm
92543               css2.1/20110323/text-indent-intrinsic-004.htm
92544
92545        * rendering/RenderBlock.cpp:
92546        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): If text-indent is negative, keep
92547         applying it to inline children in the first formatted line until it's reduced to zero. This isn't
92548         a consideration when text-indent is a positive value.
92549
925502012-07-19  Douglas Stockwell  <dstockwell@google.com>
92551
92552        Crash in WebCore::StyleResolver::collectMatchingRulesForList
92553        https://bugs.webkit.org/show_bug.cgi?id=90803
92554
92555        Reviewed by Andreas Kling.
92556
92557        When a ProcessingInstruction was removed from the document the owner
92558        was removed, but the style resolver was not guaranteed to be updated.
92559        It was then possible for an inconsistent version of the stylesheet to
92560        remain visible in the DOM. Fixed by removing an invalid condition and
92561        mirroring the logic from StyleElement.
92562
92563        Test: fast/css/xml-stylesheet-removed.xhtml
92564
92565        * dom/ProcessingInstruction.cpp:
92566        (WebCore::ProcessingInstruction::removedFrom): Mirror the logic from
92567        StyleElement -- always update the style resolver.
92568
925692012-07-19  Bem Jones-Bey  <bjonesbe@adobe.com>
92570
92571        Shape-inside / shape-outside should support percent-based measurements
92572        https://bugs.webkit.org/show_bug.cgi?id=90311
92573
92574        Reviewed by Andreas Kling.
92575
92576        Update the CSS Parser to accept percentage length values for exclusion
92577        shapes.
92578
92579        Testing added to LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
92580
92581        * css/CSSParser.cpp:
92582        (WebCore::CSSParser::parseExclusionShapeRectangle):
92583        (WebCore::CSSParser::parseExclusionShapeCircle):
92584        (WebCore::CSSParser::parseExclusionShapeEllipse):
92585        (WebCore::CSSParser::parseExclusionShapePolygon):
92586
925872012-07-19  Tony Chang  <tony@chromium.org>
92588
92589        Unreviewed, rolling out r123117.
92590        http://trac.webkit.org/changeset/123117
92591        https://bugs.webkit.org/show_bug.cgi?id=91667
92592
92593        Breaks chromium-win compile.
92594
92595        * WebCore.gyp/WebCore.gyp:
92596        * WebCore.gyp/scripts/rule_bison.py:
92597        * bindings/scripts/preprocessor.pm:
92598        (applyPreprocessor):
92599        * make-hash-tools.pl:
92600
926012012-07-19  James Simonsen  <simonjam@chromium.org>
92602
92603        Regression(120096): Protect the element used by ImageLoader until the end of notifyFinished().
92604        https://bugs.webkit.org/show_bug.cgi?id=90471
92605
92606        Reviewed by Brady Eidson.
92607
92608        Test: http/tests/security/video-poster-cross-origin-crash.html
92609
92610        * html/HTMLImageLoader.cpp:
92611        (WebCore::HTMLImageLoader::notifyFinished): Hang on to the element until we're done.
92612        * loader/ImageLoader.cpp:
92613        (WebCore::ImageLoader::setImage): No behavior change.
92614        (WebCore):
92615        (WebCore::ImageLoader::setImageWithoutConsideringPendingLoadEvent): Split off from old setImage, minus calling updatedHasPendingLoadEvent().
92616        (WebCore::ImageLoader::notifyFinished): Invoke updatedHasPendingLoadEvent when done with cross origin errors.
92617        * loader/ImageLoader.h:
92618        (ImageLoader):
92619
926202012-07-19  Scott Graham  <scottmg@chromium.org>
92621
92622        Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
92623        https://bugs.webkit.org/show_bug.cgi?id=91667
92624
92625        Reviewed by Kentaro Hara.
92626
92627        Using native tools instead of cygwin version improves build time
92628        performance by roughly 50% (on top of previous cl-instead-of-gcc
92629        change).
92630
92631        No new tests.
92632
92633        * WebCore.gyp/WebCore.gyp:
92634        * WebCore.gyp/scripts/rule_bison.py:
92635        * bindings/scripts/preprocessor.pm:
92636        (applyPreprocessor):
92637        * make-hash-tools.pl:
92638
926392012-07-19  Andrey Kosyakov  <caseq@chromium.org>
92640
92641        Web Inspector: CPU bars are not cleared along with the rest of the timeline panel
92642        https://bugs.webkit.org/show_bug.cgi?id=91753
92643
92644        Reviewed by Pavel Feldman.
92645
92646        - remove early bail-outs in  refreshMainThreadBars; let it run to clear bars for the non-existent / invisible events;
92647
92648        * inspector/front-end/TimelinePanel.js:
92649        (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
92650
926512012-07-19  Joshua Bell  <jsbell@chromium.org>
92652
92653        IndexedDB: Throw native TypeErrors per spec
92654        https://bugs.webkit.org/show_bug.cgi?id=91679
92655
92656        Reviewed by Kentaro Hara.
92657
92658        Per the IDB spec, the advance(), openCursor(), openKeyCursor() and transaction()
92659        methods supposed to throw true native JavaScript TypeError objects as exceptions
92660        rather than DOMException objects. Implement this by adding a special DOMException
92661        code that is tested for in the binding layer.
92662
92663        Tests: storage/indexeddb/cursor-advance.html
92664               storage/indexeddb/index-basics.html
92665               storage/indexeddb/index-basics-workers.html
92666               storage/indexeddb/objectstore-cursor.html
92667               storage/indexeddb/transaction-basics.html
92668
92669        * Modules/indexeddb/IDBCursor.cpp: Use the new DOMException code.
92670        (WebCore::IDBCursor::advance):
92671        (WebCore::IDBCursor::stringToDirection):
92672        (WebCore::IDBCursor::directionToString):
92673        * Modules/indexeddb/IDBDatabase.cpp: Ditto.
92674        (WebCore::IDBDatabase::setVersion):
92675        * Modules/indexeddb/IDBDatabaseException.cpp: Remove temporary cruft/mark as legacy.
92676        (WebCore):
92677        * Modules/indexeddb/IDBDatabaseException.h: Ditto.
92678        * Modules/indexeddb/IDBDatabaseException.idl: Ditto.
92679        * Modules/indexeddb/IDBFactory.cpp: Use the new DOMException code.
92680        (WebCore::IDBFactory::open):
92681        (WebCore::IDBFactory::deleteDatabase):
92682        * Modules/indexeddb/IDBObjectStore.cpp:
92683        (WebCore::IDBObjectStore::createIndex): Use the new DOMException code.
92684        * Modules/indexeddb/IDBTransaction.cpp: Use the new DOMException code.
92685        (WebCore::IDBTransaction::stringToMode):
92686        (WebCore::IDBTransaction::modeToString):
92687        * bindings/js/JSDOMBinding.cpp:
92688        (WebCore::setDOMException): Intercept new DOMException code, throw native TypeError.
92689        * bindings/v8/V8Proxy.cpp:
92690        (WebCore::V8Proxy::setDOMException): Ditto.
92691        * dom/ExceptionCode.h: Add new DOMException code.
92692
926932012-07-19  Joshua Bell  <jsbell@chromium.org>
92694
92695        Roll out r121610 and r122487 which may have been causing flaky crashes
92696        https://bugs.webkit.org/show_bug.cgi?id=91637
92697
92698        Reviewed by Kentaro Hara.
92699
92700        Flaky crashes started in random tests following r121610. It's not clear
92701        that r121610 is to blame, but we'd like to prove or disprove it.
92702        If this doesn't resolve the crashes, this patch should be rolled out.
92703
92704        * WebCore.gypi:
92705        * bindings/v8/NPObjectWrapper.cpp: Added.
92706        (WebCore):
92707        (NPProxyObject):
92708        (WebCore::NPObjectWrapper::NPObjectWrapper):
92709        (WebCore::NPObjectWrapper::create):
92710        (WebCore::NPObjectWrapper::clear):
92711        (WebCore::NPObjectWrapper::getWrapper):
92712        (WebCore::NPObjectWrapper::getUnderlyingNPObject):
92713        (WebCore::NPObjectWrapper::getObjectForCall):
92714        (WebCore::NPObjectWrapper::NPAllocate):
92715        (WebCore::NPObjectWrapper::NPDeallocate):
92716        (WebCore::NPObjectWrapper::NPPInvalidate):
92717        (WebCore::NPObjectWrapper::NPHasMethod):
92718        (WebCore::NPObjectWrapper::NPInvoke):
92719        (WebCore::NPObjectWrapper::NPInvokeDefault):
92720        (WebCore::NPObjectWrapper::NPHasProperty):
92721        (WebCore::NPObjectWrapper::NPGetProperty):
92722        (WebCore::NPObjectWrapper::NPSetProperty):
92723        (WebCore::NPObjectWrapper::NPRemoveProperty):
92724        (WebCore::NPObjectWrapper::NPNEnumerate):
92725        (WebCore::NPObjectWrapper::NPNConstruct):
92726        (WebCore::NPObjectWrapper::NPInvokePrivate):
92727        * bindings/v8/NPObjectWrapper.h: Added.
92728        (WebCore):
92729        (NPObjectWrapper):
92730        * bindings/v8/NPV8Object.cpp:
92731        (WebCore::freeV8NPObject):
92732        (_NPN_Invoke):
92733        (_NPN_InvokeDefault):
92734        (_NPN_EvaluateHelper):
92735        (_NPN_GetProperty):
92736        (_NPN_SetProperty):
92737        (_NPN_RemoveProperty):
92738        (_NPN_HasProperty):
92739        (_NPN_HasMethod):
92740        (_NPN_Enumerate):
92741        (_NPN_Construct):
92742        * bindings/v8/NPV8Object.h:
92743        (WebCore):
92744        * bindings/v8/ScriptController.cpp:
92745        (WebCore::ScriptController::ScriptController):
92746        (WebCore::ScriptController::clearScriptObjects):
92747        (WebCore::ScriptController::windowScriptNPObject):
92748        * bindings/v8/ScriptController.h:
92749        (ScriptController):
92750
927512012-07-19  Andrey Kosyakov  <caseq@chromium.org>
92752
92753        Web Inspector: minimize number of properties on WebInspector.TimelinePresentationModel.Record
92754        https://bugs.webkit.org/show_bug.cgi?id=91744
92755
92756        Reviewed by Pavel Feldman.
92757
92758        - replace most properties on TimelinePresentationModel.Record with getters;
92759
92760        This reduces the amount of memory we use for timeline presentation model records almost by 2x.
92761
92762        * inspector/front-end/TimelinePresentationModel.js:
92763        (WebInspector.TimelinePresentationModel.Record):
92764        (WebInspector.TimelinePresentationModel.Record.prototype.get children):
92765        (WebInspector.TimelinePresentationModel.Record.prototype.get category):
92766        (WebInspector.TimelinePresentationModel.Record.prototype.get title):
92767        (WebInspector.TimelinePresentationModel.Record.prototype.get startTime):
92768        (WebInspector.TimelinePresentationModel.Record.prototype.get data):
92769        (WebInspector.TimelinePresentationModel.Record.prototype.get type):
92770        (WebInspector.TimelinePresentationModel.Record.prototype.get frameId):
92771        (WebInspector.TimelinePresentationModel.Record.prototype.get endTime):
92772        (WebInspector.TimelinePresentationModel.Record.prototype.get totalHeapSize):
92773        (WebInspector.TimelinePresentationModel.Record.prototype.get usedHeapSize):
92774        (WebInspector.TimelinePresentationModel.Record.prototype.get _selfTime):
92775        (WebInspector.TimelinePresentationModel.Record.prototype.get stackTrace):
92776        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
92777        (WebInspector.TimelinePresentationModel.Record.prototype.calculateAggregatedStats):
92778
927792012-07-19  Dongwoo Im  <dw.im@samsung.com>
92780
92781        [EFL] Fix build break when WEB_AUDIO is enabled.
92782        https://bugs.webkit.org/show_bug.cgi?id=91735
92783
92784        Unreviewed build fix.
92785
92786        New files are added for the Web Audio fearure.
92787        These files should be included into the CMakeLists.txt file.
92788
92789        * CMakeLists.txt: Add the newly created files into the CMakeLists.txt
92790
927912012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
92792
92793        [Qt] Remove support for Qt versions before 4.8.0
92794        https://bugs.webkit.org/show_bug.cgi?id=91730
92795
92796        Reviewed by Kenneth Rohde Christiansen.
92797
92798        Remove Qt version check #ifdefs for Qt versions before 4.8.0.
92799
92800        * platform/graphics/qt/GraphicsContextQt.cpp:
92801        (WebCore::GraphicsContextPlatformPrivate::clipBoundingRect):
92802        * platform/qt/ThirdPartyCookiesQt.cpp:
92803        (WebCore::urlsShareSameDomain):
92804        (WebCore::thirdPartyCookiePolicyPermits):
92805
928062012-07-19  Peter Rybin  <peter.rybin@gmail.com>
92807
92808        Web Inspector: CodeGeneratorInspector.py: fix output write logic to support incremental build
92809        https://bugs.webkit.org/show_bug.cgi?id=90642
92810
92811        Reviewed by Yury Semikhatsky.
92812
92813        A small intermediate writer is added. It handles comparing old and new source before actual writing.
92814
92815        * inspector/CodeGeneratorInspector.py:
92816        (flatten_list):
92817        (SmartOutput):
92818        (SmartOutput.__init__):
92819        (SmartOutput.write):
92820        (SmartOutput.close):
92821
928222012-07-19  Mario Sanchez Prada  <msanchez@igalia.com>
92823
92824        [GTK] MHTML files not being loaded due to reported mime type not supported
92825        https://bugs.webkit.org/show_bug.cgi?id=89978
92826
92827        Reviewed by Carlos Garcia Campos.
92828
92829        Make 'message/rfc822' a supported MIME type for MHTML files in GTK.
92830
92831        * loader/MainResourceLoader.cpp:
92832        (WebCore::MainResourceLoader::continueAfterContentPolicy): Add
92833        'message/rfc822' to the list of MIME types to be considered to
92834        avoid them bypasing cross-domain security checks, only for GTK.
92835        * loader/archive/ArchiveFactory.cpp:
92836        (WebCore::archiveMIMETypes): Add 'message/rfc822' to the list of
92837        supported MIME types when MHTML support is enabled in GTK.
92838
928392012-07-19  Jan Keromnes  <janx@linux.com>
92840
92841        Web Inspector: Factor ExtensionView into separate file
92842        https://bugs.webkit.org/show_bug.cgi?id=91699
92843
92844        Reviewed by Vsevolod Vlasov.
92845
92846        The class ExtensionView was defined in ExtensionPanel.js but needed to
92847        be in a separate file since it is going to be reused somewhere else.
92848
92849        Current test coverage is enough since no behavior was changed.
92850
92851        * WebCore.gypi:
92852        * WebCore.vcproj/WebCore.vcproj:
92853        * inspector/compile-front-end.py:
92854        * inspector/front-end/ExtensionPanel.js:
92855        * inspector/front-end/WebKit.qrc:
92856        * inspector/front-end/inspector.html:
92857
928582012-07-19  Shinya Kawanaka  <shinyak@chromium.org>
92859
92860        [Refactoring] Use userAgentShadowRoot() to take user agent shadow root.
92861        https://bugs.webkit.org/show_bug.cgi?id=91716
92862
92863        Reviewed by Hajime Morita.
92864
92865        We have introduced Element::userAgentShadowRoot in r123071 to take user agent shadow root.
92866        We have used shadow()->oldestShadowRoot() to take the user agent shadow root, however its code intention was
92867        not so clear. Using userAgentShadowRoot() will make it clearer.
92868
92869        No new tests, simple refactoring.
92870
92871        * html/ColorInputType.cpp:
92872        (WebCore::ColorInputType::createShadowSubtree):
92873        (WebCore::ColorInputType::shadowColorSwatch):
92874        * html/FileInputType.cpp:
92875        (WebCore::FileInputType::createShadowSubtree):
92876        (WebCore::FileInputType::multipleAttributeChanged):
92877        * html/HTMLDetailsElement.cpp:
92878        (WebCore::HTMLDetailsElement::findMainSummary):
92879        * html/HTMLImageElement.cpp:
92880        (WebCore::HTMLImageElement::willAddAuthorShadowRoot):
92881        (WebCore::HTMLImageElement::imageElement):
92882        (WebCore::HTMLImageElement::innerElement):
92883        * html/HTMLKeygenElement.cpp:
92884        (WebCore::HTMLKeygenElement::shadowSelect):
92885        * html/HTMLTextAreaElement.cpp:
92886        (WebCore::HTMLTextAreaElement::innerTextElement):
92887        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
92888        * html/InputType.cpp:
92889        (WebCore::InputType::destroyShadowSubtree):
92890        * html/RangeInputType.cpp:
92891        (WebCore::RangeInputType::handleMouseDownEvent):
92892        (WebCore::RangeInputType::createShadowSubtree):
92893        * html/TextFieldInputType.cpp:
92894        (WebCore::TextFieldInputType::createShadowSubtree):
92895        (WebCore::TextFieldInputType::updatePlaceholderText):
92896        * html/ValidationMessage.cpp:
92897        (WebCore::ValidationMessage::deleteBubbleTree):
92898        * html/shadow/SliderThumbElement.cpp:
92899        (WebCore::sliderThumbElementOf):
92900        (WebCore::trackLimiterElementOf):
92901
929022012-07-19  Keishi Hattori  <keishi@webkit.org>
92903
92904        Redraw slider tick marks when datalist changes.
92905        https://bugs.webkit.org/show_bug.cgi?id=89544
92906
92907        Reviewed by Kent Tamura.
92908
92909        Updating the datalist should redraw the slider tick marks. This patch monitors
92910        the id target element of the list attribute using ListAttributeTargetObserver
92911        and notifies changes to the option element inside of a datalist element.
92912
92913        Test: fast/forms/datalist/update-range-with-datalist.html
92914
92915        * html/HTMLDataListElement.cpp:
92916        (WebCore::HTMLDataListElement::optionElementChildrenChanged): Called when a child option element's value might have changed.
92917        (WebCore):
92918        * html/HTMLDataListElement.h:
92919        (HTMLDataListElement):
92920        * html/HTMLInputElement.cpp:
92921        (ListAttributeTargetObserver): Inherits IdTargetObserver.
92922        (WebCore):
92923        (WebCore::HTMLInputElement::parseAttribute): Observe the form attribute target.
92924        (WebCore::HTMLInputElement::insertedInto): Observe the form attribute id target.
92925        (WebCore::HTMLInputElement::removedFrom): Remove the observer.
92926        (WebCore::HTMLInputElement::resetListAttributeTargetObserver):
92927        (WebCore::HTMLInputElement::listAttributeTargetChanged):
92928        (WebCore::ListAttributeTargetObserver::create):
92929        (WebCore::ListAttributeTargetObserver::ListAttributeTargetObserver):
92930        (WebCore::ListAttributeTargetObserver::idTargetChanged):
92931        * html/HTMLInputElement.h:
92932        (WebCore):
92933        (HTMLInputElement):
92934        * html/HTMLOptionElement.cpp:
92935        (WebCore::HTMLOptionElement::parseAttribute): If the value attribute changed, notify the owner datalist element.
92936        (WebCore::HTMLOptionElement::childrenChanged): If the children changed, notify the owner datalist element.
92937        (WebCore):
92938        (WebCore::HTMLOptionElement::ownerDataListElement): The datalist that the option element is inside of.
92939        * html/HTMLOptionElement.h:
92940        (WebCore):
92941        (HTMLOptionElement):
92942        * html/InputType.cpp:
92943        (WebCore):
92944        (WebCore::InputType::listAttributeTargetChanged):
92945        * html/InputType.h:
92946        (InputType):
92947        * html/RangeInputType.cpp:
92948        (WebCore):
92949        (WebCore::RangeInputType::listAttributeTargetChanged):
92950        * html/RangeInputType.h:
92951        (RangeInputType):
92952
929532012-07-19  Dongwoo Im  <dw.im@samsung.com>
92954
92955        CodeGeneratorV8.pm : @enabledAtRuntime is not used in GenerateHeader.
92956        https://bugs.webkit.org/show_bug.cgi?id=91715
92957
92958        Reviewed by Kentaro Hara.
92959
92960        @enabledAtRuntime is not used in GenerateHeader.
92961        We can remove it from GenerateHeader.
92962
92963        No new tests as this has no functional changes.
92964
92965        * bindings/scripts/CodeGeneratorV8.pm: Remove @enabledAtRuntime from GenerateHeader.
92966        (GenerateHeader):
92967
929682012-07-19  Abhishek Arya  <inferno@chromium.org>
92969
92970        Crash in FontCache::releaseFontData.
92971        https://bugs.webkit.org/show_bug.cgi?id=91710
92972
92973        Reviewed by Tim Horton.
92974
92975        Revert back change made to StyleResolver in r122896. The
92976        maximum font size clamp is required there since transformed
92977        sizes use that code path.
92978
92979        * css/StyleResolver.cpp:
92980        (WebCore::StyleResolver::collectMatchingRulesForList):
92981
929822012-07-18  Ryosuke Niwa  <rniwa@webkit.org>
92983
92984        Another build fix after r123065. Don't list deleted file in gypi.
92985
92986        * WebCore.gypi:
92987
929882012-07-18  Keishi Hattori  <keishi@webkit.org>
92989
92990        Implement painting slider tick marks
92991        https://bugs.webkit.org/show_bug.cgi?id=87844
92992
92993        Reviewed by Kent Tamura.
92994
92995        This implements painting slider tick marks for <datalist> support for input type=range.
92996        This does not support automatic update when list target changes, and it will be fixed
92997        in a follow up patch (Bug 89544).
92998
92999        Tests: fast/forms/datalist/input-appearance-range-with-datalist-rtl.html
93000               fast/forms/datalist/input-appearance-range-with-datalist-zoomed.html
93001               fast/forms/datalist/input-appearance-range-with-datalist.html
93002
93003        * html/HTMLInputElement.cpp:
93004        (WebCore::HTMLInputElement::sliderThumbElement):
93005        (WebCore):
93006        * html/HTMLInputElement.h:
93007        (HTMLInputElement):
93008        * html/InputType.h:
93009        (WebCore::InputType::sliderThumbElement):
93010        * html/RangeInputType.cpp:
93011        (WebCore::RangeInputType::typeMismatchFor): We need HTMLInputElement::isValidValue("foo") to return false.
93012        (WebCore):
93013        (WebCore::RangeInputType::sliderThumbElement):
93014        * html/RangeInputType.h:
93015        (RangeInputType):
93016        * html/shadow/SliderThumbElement.cpp:
93017        (WebCore::RenderSliderContainer::layout): Slider height needs to be increased for the tick marks.
93018        * platform/efl/RenderThemeEfl.cpp:
93019        (WebCore):
93020        (WebCore::RenderThemeEfl::sliderTickSize):
93021        (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
93022        * platform/efl/RenderThemeEfl.h:
93023        (RenderThemeEfl):
93024        * platform/qt/RenderThemeQt.cpp:
93025        (WebCore::RenderThemeQt::sliderTickSize):
93026        (WebCore):
93027        (WebCore::RenderThemeQt::sliderTickOffsetFromTrackCenter):
93028        * platform/qt/RenderThemeQt.h:
93029        (RenderThemeQt):
93030        * rendering/RenderTheme.cpp:
93031        (WebCore):
93032        (WebCore::RenderTheme::paintSliderTicks):
93033        * rendering/RenderTheme.h:
93034        (RenderTheme):
93035        * rendering/RenderThemeChromiumCommon.cpp:
93036        (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
93037        * rendering/RenderThemeChromiumLinux.cpp:
93038        (WebCore):
93039        (WebCore::RenderThemeChromiumLinux::sliderTickSize): Tick size for horizontal slider. i.e. Width is length along the track.
93040        (WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter): Offset from
93041        middle of draw rect to draw the ticks. Minus value means above the track.
93042        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
93043        * rendering/RenderThemeChromiumLinux.h:
93044        (RenderThemeChromiumLinux):
93045        * rendering/RenderThemeChromiumWin.cpp:
93046        (WebCore):
93047        (WebCore::RenderThemeChromiumWin::sliderTickSize):
93048        (WebCore::RenderThemeChromiumWin::sliderTickOffsetFromTrackCenter):
93049        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
93050        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
93051        * rendering/RenderThemeChromiumWin.h:
93052        (RenderThemeChromiumWin):
93053        * rendering/RenderThemeMac.h:
93054        (RenderThemeMac):
93055        * rendering/RenderThemeMac.mm:
93056        (WebCore::RenderThemeMac::paintSliderTrack):
93057        (WebCore):
93058        (WebCore::RenderThemeMac::sliderTickSize):
93059        (WebCore::RenderThemeMac::sliderTickOffsetFromTrackCenter):
93060
930612012-07-18  Shinya Kawanaka  <shinyak@chromium.org>
93062
93063        Element wants to have userAgentShadowRoot()
93064        https://bugs.webkit.org/show_bug.cgi?id=91564
93065
93066        Reviewed by Eric Carlson.
93067
93068        We introduce Element::userAgentShadowRoot() to return a UserAgentShadowRoot.
93069        It returns the oldest shadow root if any, and checks the type of ShadowRoot in debug build.
93070
93071        Previously, we have used elementShadow()->oldestShadowRoot() to get UserAgentShadowRoot.
93072        The class implementor will know the oldest shadow root is UserAgentShadowRoot, but it is not
93073        clear for the other people. This method will make the code intention clearer.
93074
93075        We will introduce userAgentShadowRoot to the other elements (e.g. HTMLInputElement) after this patch.
93076
93077        No new tests, simple refactoring.
93078
93079        * dom/Element.cpp:
93080        (WebCore::Element::userAgentShadowRoot):
93081        (WebCore):
93082        * dom/Element.h:
93083        (Element):
93084        * html/HTMLMediaElement.cpp:
93085        (WebCore::HTMLMediaElement::createShadowSubtree):
93086        (WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
93087        (WebCore::HTMLMediaElement::mediaControls):
93088        (WebCore::HTMLMediaElement::hasMediaControls):
93089        (WebCore::HTMLMediaElement::createMediaControls):
93090
930912012-07-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
93092
93093        [CMAKE] Remove duplicated #ifdef guard in CMakeLists.txt
93094        https://bugs.webkit.org/show_bug.cgi?id=91575
93095
93096        Reviewed by Dirk Pranke.
93097
93098        CMake files have used ENABLE_XXX macro. However, almost source and idl files are already protected by #ifdef.
93099        So, we don't need to guard them in CMake files again.
93100
93101        In SVG idl files case, blackberry port doesn't support it yet. So, SVG idl files are handled by WebCore_SVG_IDL_FILES macro.
93102
93103        No new tests. This patch isn't for functionality.
93104
93105        * CMakeLists.txt:
93106        * PlatformBlackBerry.cmake: Change SVG_IDL_FILES with WebCore_SVG_IDL_FILES.
93107
931082012-07-18  Hironori Bono  <hbono@chromium.org>
93109
93110        Move contents right when a vertical scrollbar is shown at the left side of an RTL element.
93111        https://bugs.webkit.org/show_bug.cgi?id=85856
93112
93113        Reviewed by Hajime Morita.
93114
93115        This change prevents the scrollWidth value from being cropped by the width of a
93116        scrollbar when a vertical scrollbar is shown at the left side of an RTL element.
93117        This change also increases the clientLeft value by this scrollbar width and move
93118        contents right to improve compliance with CSSOM <http://www.w3.org/TR/cssom-view>.
93119
93120        Tests: scrollbars/rtl/div-horizontal.html
93121               scrollbars/rtl/div-vertical.html
93122
93123        * rendering/RenderBlock.cpp:
93124        (WebCore::RenderBlock::paintObject): Move contents to the right.
93125        * rendering/RenderBox.cpp:
93126        (WebCore::RenderBox::topLeftLocationOffset): Move the top-left corner to the right to prevent WebKit from cropping scrollWidth.
93127        * rendering/RenderBox.h:
93128        (WebCore::RenderBox::clientLeft): Increase clientLeft by the width of a scrollbar.
93129
931302012-07-18  Kent Tamura  <tkent@chromium.org>
93131
93132        Form state restore: Classify form control sates by owners in internal and serialized representations
93133        https://bugs.webkit.org/show_bug.cgi?id=91594
93134
93135        Reviewed by Hajime Morita.
93136
93137        Before this change, the internal representation of form control states
93138        was a map like:
93139
93140            {name, type, formKey} -> [FormControlState, FormControlState, ...]
93141
93142        Also, the serialized representation was:
93143
93144            [name, type, formKey, FormControlState,
93145             name, type, formKey, formControlState,
93146             ...]
93147
93148        This changes these represenations. The internal representation is
93149
93150            A map owned by FormController:
93151                formKey -> SavedFormState
93152            SavedFormState owns a map like:
93153                {name, type} -> [FormControlState, FormControlState, ...]
93154
93155        The serialized representation is:
93156
93157            [formKey, count,
93158             name, type, FormControlState,
93159             name, type, FormControlState,
93160             name, type, FormControlState,
93161             ....
93162             formKey, count,
93163             name, type, FormControlState,
93164             name, type, FormControlState,
93165             name, type, FormControlState,
93166             ....]
93167
93168        The serialized representation would be smaller in many cases because
93169        each of items doesn't have formKey.
93170
93171        Tests: Covered by fast/forms/state-restore-broken-state.html,
93172        state-restore-per-form.html, and state-restore-skip-stateless.html.
93173
93174        * html/FormController.cpp:
93175        (FormElementKey): Remove formKey argument and m_formKey.
93176        (WebCore::FormElementKey::FormElementKey):
93177        (WebCore::FormElementKey::operator=):
93178        (WebCore::FormElementKey::ref):
93179        (WebCore::FormElementKey::deref):
93180        (WebCore::operator==):
93181
93182        (SavedFormState):
93183         - The role of SavedFromState was changed. It represented all of control
93184          states. Now it represent control states owned by a signle form.
93185         - Make this non-copyable and fast-allocated.
93186         - Add m_controlStateCount, a counter of FormControlState
93187        (WebCore::SavedFormState::SavedFormState):
93188         Initialize m_controlStateCount.
93189        (WebCore::isNotFormControlTypeCharacter):
93190        Moved from another place in this file.
93191        (WebCore::SavedFormState::deserialize):
93192        Added. Build a SavedFromState with the specified stateVector.
93193        (WebCore::SavedFormState::serializeTo):
93194        Added. m_controlStateCount is needed here.
93195        (WebCore::SavedFormState::appendControlState):
93196         - Remove formKey arguement.
93197         - Update m_controlStateCount.
93198        (WebCore::SavedFormState::takeControlState): ditto.
93199
93200        (WebCore::formStateSignature): Bump the version.
93201        (WebCore::FormController::createSavedFormStateMap):
93202        Added. Build a SavedFormStateMap from the form control list. This is a
93203        helper for formElementsState, and classifies controls in the document.
93204        (WebCore::FormController::formElementsState):
93205        Build a SavedFormStateMap with createSavedFormStateMap(),
93206        then serializes it.
93207        (WebCore::FormController::setStateForNewFormElements):
93208        Deserialize SavedFormState, and build SavedFormStateMap.
93209        (WebCore::FormController::takeStateForFormElement):
93210        Finds the corresponding SavedFormState with a formKey, and uses it.
93211        * html/FormController.h:
93212        Declare createSavedFormStateMap(), and moved typedefs for it.
93213
932142012-07-18  Antoine Labour  <piman@chromium.org>
93215
93216        [chromium] Introduce CCResourceProvider, replacing TextureAllocator and hiding textures from clients to allow transport
93217        https://bugs.webkit.org/show_bug.cgi?id=91044
93218
93219        Reviewed by Adrienne Walker.
93220
93221        This does several things:
93222        - Add a CCResourceProvider class, that hides textures and the 3D context
93223        from layers (except those that need it). Instead layers manage
93224        "resources". In the future, resources are expected to be transportable
93225        to a "parent" CCResourceProvider to allow flattening of nested
93226        compositors.
93227        - Replace texture ids by resource ids in DrawQuads (allowing them to be
93228        serializable).
93229        - Replace TextureAllocator uses by the CCResourceProvider class.
93230        - Upload of data is done through the CCResourceProvider instead of
93231        explicit GL calls.
93232        - External textures are wrapped into a resource at draw time (see
93233        caveat/FIXME in CCTextureLayerImpl).
93234        - Rendering with the resources is done through an explicit
93235        beginRenderFrom/endRenderFrom that exposes the texture only between that
93236        pair.
93237        - Merge all the LayerTextureSubImage instances (one per layer), into a
93238        single instance on the CCResourceProvider.
93239
93240        Added CCResourceProviderTest, the refactoring is covered by existing tests.
93241
93242        * WebCore.gypi:
93243        * platform/chromium/support/WebCompositorTextureQuad.cpp:
93244        (WebKit::WebCompositorTextureQuad::create):
93245        (WebKit::WebCompositorTextureQuad::WebCompositorTextureQuad):
93246        * platform/chromium/support/WebCompositorTileQuad.cpp:
93247        (WebKit::WebCompositorTileQuad::create):
93248        (WebKit::WebCompositorTileQuad::WebCompositorTileQuad):
93249        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
93250        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::updateRect):
93251        (WebCore::BitmapCanvasLayerTextureUpdater::create):
93252        (WebCore::BitmapCanvasLayerTextureUpdater::BitmapCanvasLayerTextureUpdater):
93253        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
93254        (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
93255        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
93256        (WebCore):
93257        (Texture):
93258        (BitmapCanvasLayerTextureUpdater):
93259        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
93260        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
93261        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::create):
93262        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::BitmapSkPictureCanvasLayerTextureUpdater):
93263        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
93264        (Texture):
93265        (BitmapSkPictureCanvasLayerTextureUpdater):
93266        * platform/graphics/chromium/ContentLayerChromium.cpp:
93267        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
93268        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
93269        (WebCore::createAcceleratedCanvas):
93270        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
93271        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
93272        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
93273        (Texture):
93274        (FrameBufferSkPictureCanvasLayerTextureUpdater):
93275        * platform/graphics/chromium/ImageLayerChromium.cpp:
93276        (WebCore::ImageLayerTextureUpdater::create):
93277        (WebCore::ImageLayerTextureUpdater::updateTextureRect):
93278        (WebCore::ImageLayerTextureUpdater::ImageLayerTextureUpdater):
93279        (ImageLayerTextureUpdater):
93280        (WebCore::ImageLayerChromium::createTextureUpdaterIfNeeded):
93281        * platform/graphics/chromium/LayerRendererChromium.cpp:
93282        (WebCore::LayerRendererChromium::create):
93283        (WebCore::LayerRendererChromium::LayerRendererChromium):
93284        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
93285        (WebCore::applyFilters):
93286        (WebCore::LayerRendererChromium::drawBackgroundFilters):
93287        (WebCore::LayerRendererChromium::drawRenderPassQuad):
93288        (WebCore::LayerRendererChromium::drawTileQuad):
93289        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
93290        (WebCore::LayerRendererChromium::drawTextureQuad):
93291        (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
93292        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
93293        (WebCore::LayerRendererChromium::finishDrawingFrame):
93294        (WebCore::LayerRendererChromium::getFramebufferTexture):
93295        (WebCore::LayerRendererChromium::useRenderPass):
93296        (WebCore::LayerRendererChromium::useScopedTexture):
93297        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
93298        (WebCore::LayerRendererChromium::finishCurrentFramebuffer):
93299        (WebCore):
93300        (WebCore::LayerRendererChromium::initializeSharedObjects):
93301        * platform/graphics/chromium/LayerRendererChromium.h:
93302        (LayerRendererChromium):
93303        (WebCore::LayerRendererChromium::resourceProvider):
93304        * platform/graphics/chromium/LayerTextureSubImage.cpp:
93305        (WebCore::LayerTextureSubImage::LayerTextureSubImage):
93306        (WebCore::LayerTextureSubImage::upload):
93307        (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
93308        (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
93309        * platform/graphics/chromium/LayerTextureSubImage.h:
93310        (WebKit):
93311        (LayerTextureSubImage):
93312        * platform/graphics/chromium/LayerTextureUpdater.h:
93313        (WebCore):
93314        (Texture):
93315        * platform/graphics/chromium/ManagedTexture.cpp:
93316        (WebCore::ManagedTexture::ManagedTexture):
93317        (WebCore::ManagedTexture::reserve):
93318        (WebCore::ManagedTexture::allocate):
93319        (WebCore::ManagedTexture::steal):
93320        (WebCore::ManagedTexture::clear):
93321        * platform/graphics/chromium/ManagedTexture.h:
93322        (WebCore::ManagedTexture::resourceId):
93323        (ManagedTexture):
93324        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
93325        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
93326        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
93327        * platform/graphics/chromium/TextureCopier.cpp:
93328        (WebCore::AcceleratedTextureCopier::copyTexture):
93329        (WebCore):
93330        (WebCore::AcceleratedTextureCopier::flush):
93331        * platform/graphics/chromium/TextureCopier.h:
93332        (TextureCopier):
93333        (AcceleratedTextureCopier):
93334        * platform/graphics/chromium/TextureManager.cpp:
93335        (WebCore::TextureManager::TextureManager):
93336        (WebCore::TextureManager::deleteEvictedTextures):
93337        (WebCore::TextureManager::removeTexture):
93338        (WebCore::TextureManager::allocateTexture):
93339        (WebCore::TextureManager::requestTexture):
93340        * platform/graphics/chromium/TextureManager.h:
93341        (WebCore):
93342        (WebCore::TextureManager::create):
93343        (TextureManager):
93344        (TextureInfo):
93345        (EvictionEntry):
93346        * platform/graphics/chromium/TextureUploader.h:
93347        (TextureUploader):
93348        * platform/graphics/chromium/ThrottledTextureUploader.cpp:
93349        (WebCore::ThrottledTextureUploader::uploadTexture):
93350        * platform/graphics/chromium/ThrottledTextureUploader.h:
93351        (ThrottledTextureUploader):
93352        * platform/graphics/chromium/TiledLayerChromium.cpp:
93353        (WebCore::TiledLayerChromium::pushPropertiesTo):
93354        * platform/graphics/chromium/TrackingTextureAllocator.cpp: Removed.
93355        * platform/graphics/chromium/TrackingTextureAllocator.h: Removed.
93356        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
93357        (WebCore::CCHeadsUpDisplay::draw):
93358        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
93359        (WebCore::CCIOSurfaceLayerImpl::willDraw):
93360        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
93361        (CCIOSurfaceLayerImpl):
93362        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
93363        (WebCore::CCLayerImpl::willDraw):
93364        (WebCore::CCLayerImpl::didDraw):
93365        (WebCore::CCLayerImpl::contentsResourceId):
93366        * platform/graphics/chromium/cc/CCLayerImpl.h:
93367        (CCLayerImpl):
93368        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
93369        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
93370        (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
93371        (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
93372        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
93373        (WebCore):
93374        (CCLayerTreeHost):
93375        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
93376        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
93377        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
93378        (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
93379        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
93380        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
93381        (WebCore):
93382        (WebCore::CCLayerTreeHostImpl::resourceProvider):
93383        (CCLayerTreeHostImpl):
93384        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
93385        (WebCore::CCPrioritizedTexture::acquireBackingTexture):
93386        (WebCore::CCPrioritizedTexture::resourceId):
93387        (WebCore::CCPrioritizedTexture::upload):
93388        (WebCore::CCPrioritizedTexture::beginRenderTo):
93389        (WebCore::CCPrioritizedTexture::endRenderTo):
93390        (WebCore):
93391        * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
93392        (WebCore):
93393        (CCPrioritizedTexture):
93394        (WebCore::CCPrioritizedTexture::Backing::resourceId):
93395        (WebCore::CCPrioritizedTexture::Backing::Backing):
93396        (Backing):
93397        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
93398        (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
93399        (WebCore::CCPrioritizedTextureManager::~CCPrioritizedTextureManager):
93400        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
93401        (WebCore::CCPrioritizedTextureManager::reduceMemory):
93402        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
93403        (WebCore::CCPrioritizedTextureManager::allBackingTexturesWereDeleted):
93404        (WebCore::CCPrioritizedTextureManager::createBacking):
93405        (WebCore::CCPrioritizedTextureManager::destroyBacking):
93406        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
93407        (WebCore::CCPrioritizedTextureManager::create):
93408        (CCPrioritizedTextureManager):
93409        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
93410        (WebCore::CCRenderPassDrawQuad::create):
93411        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
93412        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
93413        (CCRenderPassDrawQuad):
93414        (WebCore::CCRenderPassDrawQuad::maskResourceId):
93415        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
93416        (WebCore::CCRenderSurface::appendQuads):
93417        * platform/graphics/chromium/cc/CCRenderer.h:
93418        (WebCore):
93419        (CCRenderer):
93420        * platform/graphics/chromium/cc/CCResourceProvider.cpp: Added.
93421        (WebCore):
93422        (WebCore::textureToStorageFormat):
93423        (WebCore::isTextureFormatSupportedForStorage):
93424        (WebCore::CCResourceProvider::create):
93425        (WebCore::CCResourceProvider::~CCResourceProvider):
93426        (WebCore::CCResourceProvider::graphicsContext3D):
93427        (WebCore::CCResourceProvider::inUseByConsumer):
93428        (WebCore::CCResourceProvider::createResource):
93429        (WebCore::CCResourceProvider::createResourceFromExternalTexture):
93430        (WebCore::CCResourceProvider::deleteResource):
93431        (WebCore::CCResourceProvider::deleteOwnedResources):
93432        (WebCore::CCResourceProvider::upload):
93433        (WebCore::CCResourceProvider::beginRenderTo):
93434        (WebCore::CCResourceProvider::endRenderTo):
93435        (WebCore::CCResourceProvider::beginRenderFrom):
93436        (WebCore::CCResourceProvider::endRenderFrom):
93437        (WebCore::CCResourceProvider::CCResourceProvider):
93438        (WebCore::CCResourceProvider::initialize):
93439        * platform/graphics/chromium/cc/CCResourceProvider.h: Added.
93440        (WebKit):
93441        (WebCore):
93442        (CCResourceProvider):
93443        (WebCore::CCResourceProvider::maxTextureSize):
93444        (WebCore::CCResourceProvider::numResources):
93445        (Resource):
93446        * platform/graphics/chromium/cc/CCScopedTexture.cpp:
93447        (WebCore::CCScopedTexture::CCScopedTexture):
93448        (WebCore::CCScopedTexture::allocate):
93449        (WebCore::CCScopedTexture::free):
93450        * platform/graphics/chromium/cc/CCScopedTexture.h:
93451        (WebCore::CCScopedTexture::create):
93452        (CCScopedTexture):
93453        (WebCore::CCScopedTexture::beginRenderTo):
93454        (WebCore::CCScopedTexture::endRenderTo):
93455        (WebCore::CCScopedTexture::beginRenderFrom):
93456        (WebCore::CCScopedTexture::endRenderFrom):
93457        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
93458        (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
93459        (WebCore):
93460        (WebCore::CCScrollbarLayerImpl::appendQuads):
93461        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
93462        (WebCore::CCScrollbarLayerImpl::setBackTrackResourceId):
93463        (WebCore::CCScrollbarLayerImpl::setForeTrackResourceId):
93464        (WebCore::CCScrollbarLayerImpl::setThumbResourceId):
93465        (CCScrollbarLayerImpl):
93466        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
93467        (WebCore::CCSingleThreadProxy::recreateContext):
93468        (WebCore::CCSingleThreadProxy::doCommit):
93469        (WebCore::CCSingleThreadProxy::stop):
93470        * platform/graphics/chromium/cc/CCTexture.h:
93471        (WebCore::CCTexture::id):
93472        (WebCore::CCTexture::setId):
93473        (CCTexture):
93474        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
93475        (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
93476        (WebCore::CCTextureLayerImpl::willDraw):
93477        (WebCore):
93478        (WebCore::CCTextureLayerImpl::appendQuads):
93479        (WebCore::CCTextureLayerImpl::didDraw):
93480        * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
93481        (CCTextureLayerImpl):
93482        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
93483        (WebCore::CCTextureUpdater::update):
93484        * platform/graphics/chromium/cc/CCTextureUpdater.h:
93485        (WebCore):
93486        (CCTextureUpdater):
93487        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
93488        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
93489        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
93490        (WebCore::CCThreadProxy::recreateContextOnImplThread):
93491        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
93492        (WebCore::DrawableTile::resourceId):
93493        (WebCore::DrawableTile::setResourceId):
93494        (WebCore::DrawableTile::DrawableTile):
93495        (DrawableTile):
93496        (WebCore::CCTiledLayerImpl::contentsResourceId):
93497        (WebCore::CCTiledLayerImpl::hasTextureIdForTileAt):
93498        (WebCore::CCTiledLayerImpl::appendQuads):
93499        (WebCore::CCTiledLayerImpl::pushTileProperties):
93500        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
93501        (CCTiledLayerImpl):
93502        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
93503        (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
93504        (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
93505        (WebCore::CCVideoLayerImpl::willDraw):
93506        (WebCore::CCVideoLayerImpl::willDrawInternal):
93507        (WebCore::CCVideoLayerImpl::appendQuads):
93508        (WebCore::CCVideoLayerImpl::didDraw):
93509        (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
93510        (WebCore::CCVideoLayerImpl::FramePlane::freeData):
93511        (WebCore::CCVideoLayerImpl::allocatePlaneData):
93512        (WebCore::CCVideoLayerImpl::copyPlaneData):
93513        (WebCore::CCVideoLayerImpl::freePlaneData):
93514        (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
93515        (WebCore::CCVideoLayerImpl::didLoseContext):
93516        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
93517        (CCVideoLayerImpl):
93518        (FramePlane):
93519        (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
93520
935212012-07-18  Hayato Ito  <hayato@chromium.org>
93522
93523        [Shadow] A 'selectstart' event fired on distributed nodes should not be stopped at shadow boundary of the parent shadow host.
93524        https://bugs.webkit.org/show_bug.cgi?id=90508
93525
93526        Reviewed by Dimitri Glazkov.
93527
93528        We should not stop some kinds of events at the shadow boundary of a shadow host if the
93529        event is fired on distributed nodes.
93530
93531        See the spec for such kinds of events.
93532        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
93533
93534        Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
93535
93536        * dom/EventDispatcher.cpp:
93537        (WebCore::EventDispatcher::ensureEventAncestors):
93538        (WebCore::inTheSameScope):
93539        (WebCore):
93540        (WebCore::EventDispatcher::determineDispatchBehavior):
93541        * dom/EventDispatcher.h:
93542        (EventDispatcher):
93543
935442012-07-18  Julien Chaffraix  <jchaffraix@webkit.org>
93545
93546        Crash in RenderTableSection::addCell.
93547        http://webkit.org/b/89496
93548
93549        Reviewed by Abhishek Arya.
93550
93551        The issue comes from RenderBox::splitAnonymousBoxesAroundChild that would move sections
93552        across tables but didn't force the table to do a synchronous section recalc. This opened
93553        the way for race conditions where we would query the table column structure while it's dirty
93554        (this is not uncommon but as usually the table's column representation is always bigger or
93555        more split than a section's, it's usually harmless).
93556
93557        The fix is to force a synchronous section recalc.
93558
93559        Test: fast/table/split-table-no-section-update-crash.html
93560
93561        * rendering/RenderBox.cpp:
93562        (WebCore::markBoxForRelayoutAfterSplit):
93563        Changed to call forceSectionsRecalc ie force a section recalc.
93564
93565        * rendering/RenderTable.cpp:
93566        (WebCore::RenderTable::recalcSections):
93567        Added missing ASSERT for unneeded calls.
93568
93569        * rendering/RenderTable.h:
93570        (WebCore::RenderTable::forceSectionsRecalc):
93571        Added this helper function.
93572
935732012-07-18  Julien Chaffraix  <jchaffraix@webkit.org>
93574
93575        Avoid calling GraphicsContext drawing primitives for 0px borders
93576        https://bugs.webkit.org/show_bug.cgi?id=90039
93577
93578        Reviewed by Eric Seidel.
93579
93580        The current code would happily call GraphicsContext to draw empty (0px) borders.
93581        There is no good use case for going all the way to GraphicsContext in this case as
93582        0px borders, regardless of the border-style, will not be painted. Thus this is a waste
93583        of time on all platforms. On Chromium, this trigger some issues with pdf rendering as
93584        Skia interprets 0px lines as very thin lines.
93585
93586        This change adds 0-checks in the border painting code as well as ASSERTs for
93587        performance and to catch future bad use.
93588
93589        Test: fast/borders/0px-borders.html
93590
93591        * platform/graphics/cairo/GraphicsContextCairo.cpp:
93592        (WebCore::GraphicsContext::drawRect):
93593        * platform/graphics/cg/GraphicsContextCG.cpp:
93594        (WebCore::GraphicsContext::drawRect):
93595        * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
93596        (WebCore::GraphicsContext::drawRect):
93597        * platform/graphics/qt/GraphicsContextQt.cpp:
93598        (WebCore::GraphicsContext::drawRect):
93599        * platform/graphics/skia/GraphicsContextSkia.cpp:
93600        (WebCore::GraphicsContext::drawRect):
93601        * platform/graphics/wx/GraphicsContextWx.cpp:
93602        (WebCore::GraphicsContext::drawRect):
93603        Added an ASSERT on all platforms to catch incorrect use.
93604
93605        * rendering/RenderBoxModelObject.cpp:
93606        (WebCore::BorderEdge::shouldRender):
93607        Changed to not render 0px borders, which should avoid unneeded work
93608        in the patining code (context saving / restoring or transparency layer
93609        push).
93610
93611        (WebCore::RenderBoxModelObject::paintOneBorderSide):
93612        Added an ASSERT here that the border side is not empty.
93613
93614        * rendering/RenderObject.cpp:
93615        (WebCore::RenderObject::drawLineForBoxSide):
93616        Added an early return with a comment as to why it's not feasible to
93617        ASSERT as would be best.
93618
936192012-07-18  Elliott Sprehn  <esprehn@gmail.com>
93620
93621        REGRESSION (r89900): Assertion failure on null view() when destroying the document
93622        https://bugs.webkit.org/show_bug.cgi?id=91547
93623
93624        Reviewed by Abhishek Arya.
93625
93626        Check for document destruction during insertion to avoid crash on null RenderView when trying
93627        to count the number of RenderQuote and RenderCounter objects.
93628
93629        Test: fast/css-generated-content/bug91547.html
93630
93631        * rendering/RenderObjectChildList.cpp:
93632        (WebCore::RenderObjectChildList::appendChildNode):
93633        (WebCore::RenderObjectChildList::insertChildNode):
93634
936352012-07-18  Nat Duca  <nduca@chromium.org>
93636
93637        [chromium] Add histogram for tracking compositor-thread frame rate
93638        https://bugs.webkit.org/show_bug.cgi?id=91692
93639
93640        Reviewed by Adrienne Walker.
93641
93642        This patch tracks the interval between compositor thread frames
93643        and pushes it into a platform histogram. This allows us to track
93644        compositor-thread frame rate in the wild.
93645
93646        * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
93647        (WebCore::CCFrameRateCounter::markBeginningOfFrame):
93648
936492012-07-18  Dan Bernstein  <mitz@apple.com>
93650
93651        Hit testing in the gap between pages returns incorrect results
93652        https://bugs.webkit.org/show_bug.cgi?id=91695
93653
93654        Reviewed by Dave Hyatt.
93655
93656        Test: fast/multicol/hit-test-gap-between-pages.html
93657
93658        * rendering/RenderBlock.h:
93659        (RenderBlock): Promoted adjustPointToColumnContents from private to protected.
93660        * rendering/RenderView.cpp:
93661        (WebCore::RenderView::updateHitTestResult): If we get here, and we make the document element
93662        the inner node, adjust the local point for columns.
93663
936642012-07-18  Joshua Bell  <jsbell@chromium.org>
93665
93666        IndexedDB: Direction parameter ignored by some openCursor() overloads
93667        https://bugs.webkit.org/show_bug.cgi?id=91687
93668
93669        Reviewed by Tony Chang.
93670
93671        A few of the openCursor() and openKeyCursor() overloads were not passing along the
93672        direction parameter, resulting in the default direction being used. Trivial fixes.
93673        Also, added a whitespace fix to a relevant console warning.
93674
93675        Test: storage/indexeddb/cursor-overloads.html
93676
93677        * Modules/indexeddb/IDBIndex.cpp:
93678        (WebCore::IDBIndex::openCursor):
93679        (WebCore::IDBIndex::openKeyCursor):
93680        * Modules/indexeddb/IDBObjectStore.cpp:
93681        (WebCore::IDBObjectStore::openCursor):
93682
936832012-07-18  Erik Arvidsson  <arv@chromium.org>
93684
93685        [V8] Improve Replaceable extended attribute
93686        https://bugs.webkit.org/show_bug.cgi?id=91668
93687
93688        Reviewed by Adam Barth.
93689
93690        Replaceable is working by chance in the V8 bindings because V8 does not correctly handle
93691        read only properties on the prototype chain. With this change we generate a setter that
93692        uses ForceSet to replace the existing property when set.
93693
93694        Test: fast/dom/Window/replaceable.html
93695
93696        * bindings/scripts/CodeGeneratorV8.pm:
93697        (GenerateReplaceableAttrSetter):
93698        (GenerateFunctionCallback):
93699        (GenerateSingleBatchedAttribute):
93700        (GenerateImplementation):
93701        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
93702        (WebDOMTestObj::replaceableAttribute):
93703        * bindings/scripts/test/CPP/WebDOMTestObj.h:
93704        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
93705        (webkit_dom_test_obj_get_property):
93706        (webkit_dom_test_obj_class_init):
93707        (webkit_dom_test_obj_get_replaceable_attribute):
93708        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
93709        * bindings/scripts/test/JS/JSTestObj.cpp:
93710        (WebCore):
93711        (WebCore::jsTestObjReplaceableAttribute):
93712        (WebCore::setJSTestObjReplaceableAttribute):
93713        * bindings/scripts/test/JS/JSTestObj.h:
93714        (WebCore):
93715        * bindings/scripts/test/ObjC/DOMTestObj.h:
93716        * bindings/scripts/test/ObjC/DOMTestObj.mm:
93717        (-[DOMTestObj replaceableAttribute]):
93718        (-[DOMTestObj setReplaceableAttribute:]):
93719        * bindings/scripts/test/TestObj.idl:
93720        * bindings/scripts/test/V8/V8TestObj.cpp:
93721        (WebCore::TestObjV8Internal::replaceableAttributeAttrGetter):
93722        (TestObjV8Internal):
93723        (WebCore::TestObjV8Internal::TestObjReplaceableAttrSetter):
93724        (WebCore):
93725
937262012-07-18  Erik Arvidsson  <arv@chromium.org>
93727
93728        [V8] Remove temporary flag override for es52_globals
93729        https://bugs.webkit.org/show_bug.cgi?id=91681
93730
93731        Reviewed by Adam Barth.
93732
93733        V8 has now changed their default value for the es52_globals so we no longer needs this override.
93734
93735        No new tests. No change in functionality.
93736
93737        * bindings/v8/V8DOMWindowShell.cpp:
93738        (WebCore::V8DOMWindowShell::initContextIfNeeded):
93739        * bindings/v8/WorkerContextExecutionProxy.cpp:
93740        (WebCore::WorkerContextExecutionProxy::initIsolate):
93741
937422012-07-18  Alexandre Elias  <aelias@google.com>
93743
93744        [chromium] Ubercomp: add id to SharedQuadState
93745        https://bugs.webkit.org/show_bug.cgi?id=91670
93746
93747        Reviewed by Adrienne Walker.
93748
93749        This assigns an integer ID to SharedQuadState objects and a
93750        corresponding ID to quads.  This ID is unique only within a
93751        RenderPass and currently is just set to the index in the shared quad
93752        state list.  This is redundant with the pointer and exists to
93753        simplify serialization.
93754
93755        I found out that pointer rewriting within a pickler is blocked by
93756        pointers to memory being const there, so the reassignment will have to
93757        be performed in the application layer anyway.  In that case, it's
93758        simplest to add some ID integers.
93759
93760        No new tests (will introduce them when making use of the ID).
93761
93762        * platform/chromium/support/WebCompositorQuad.cpp:
93763        (WebKit::WebCompositorQuad::WebCompositorQuad):
93764        (WebKit::WebCompositorQuad::setSharedQuadState):
93765        (WebKit):
93766        * platform/chromium/support/WebCompositorSharedQuadState.cpp:
93767        (WebKit::WebCompositorSharedQuadState::WebCompositorSharedQuadState):
93768        (WebKit::WebCompositorSharedQuadState::create):
93769        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
93770        (WebCore::CCLayerImpl::createSharedQuadState):
93771        * platform/graphics/chromium/cc/CCLayerImpl.h:
93772        (CCLayerImpl):
93773        * platform/graphics/chromium/cc/CCRenderPass.cpp:
93774        (WebCore::CCRenderPass::appendQuadsForLayer):
93775        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
93776        (WebCore::CCRenderPass::appendQuadsToFillScreen):
93777        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
93778        (WebCore::CCRenderSurface::createSharedQuadState):
93779        (WebCore::CCRenderSurface::createReplicaSharedQuadState):
93780        * platform/graphics/chromium/cc/CCRenderSurface.h:
93781        (CCRenderSurface):
93782
937832012-07-18  Alexandre Elias  <aelias@google.com>
93784
93785        [chromium] Ubercomp: clean up CCRenderer interface
93786        https://bugs.webkit.org/show_bug.cgi?id=91555
93787
93788        Reviewed by Adrienne Walker.
93789
93790        I replaced the one-by-one RenderPass calls with a new drawFrame()
93791        method that directly takes a CCRenderPassList, and moved a small
93792        amount of code from CCLayerTreeHostImpl to implement it.  In ubercomp
93793        mode, we will produce a frame bundle rather than a command-stream, so
93794        the full list is easier to work with.
93795
93796        Also, give empty default implementations for the methods that don't
93797        need to do anything in a non-GL context, and make private
93798        setScissorToRect.
93799
93800        No new tests (no-op refactoring).
93801
93802        * platform/graphics/chromium/LayerRendererChromium.cpp:
93803        (WebCore::LayerRendererChromium::drawFrame):
93804        (WebCore):
93805        * platform/graphics/chromium/LayerRendererChromium.h:
93806        (LayerRendererChromium):
93807        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
93808        (WebCore::CCLayerTreeHostImpl::drawLayers):
93809        * platform/graphics/chromium/cc/CCRenderer.h:
93810        (WebCore::CCRenderer::viewportChanged):
93811        (WebCore::CCRenderer::decideRenderPassAllocationsForFrame):
93812        (WebCore::CCRenderer::haveCachedResourcesForRenderPassId):
93813        (CCRenderer):
93814        (WebCore::CCRenderer::finishDrawingFrame):
93815        (WebCore::CCRenderer::doNoOp):
93816        (WebCore::CCRenderer::isContextLost):
93817
938182012-07-18  Pravin D  <pravind.2k4@gmail.com>
93819
93820        Content size of child having percent height inside a fixed height container having overflow:auto is wrongly calculated
93821        https://bugs.webkit.org/show_bug.cgi?id=11355
93822
93823        Reviewed by Julien Chaffraix.
93824
93825        The content height of a child must be container height minus padding, border width and height of horizontal scrollbar(if any).
93826
93827        Tests: fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto.html
93828               fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto.html
93829
93830        * rendering/RenderBox.cpp:
93831        (WebCore::RenderBox::computePercentageLogicalHeight):
93832        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
93833        Subtracting the height of the scrollbar from the client height when the client has percentage height.
93834
938352012-07-18  Pravin D  <pravind.2k4@gmail.com>
93836
93837        Content size of child having percent height inside a fixed height container having overflow:auto is wrongly calculated
93838        https://bugs.webkit.org/show_bug.cgi?id=11355
93839
93840        Reviewed by Julien Chaffraix.
93841
93842        The content height of a child must be container height minus padding, border width and height of horizontal scrollbar(if any).
93843
93844        Tests: fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto.html
93845               fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto.html
93846
93847        * rendering/RenderBox.cpp:
93848        (WebCore::RenderBox::computePercentageLogicalHeight):
93849        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
93850        Subtracting the height of the scrollbar from the client height when the client has percentage height.
93851
938522012-07-18  Anantanarayanan G Iyengar  <ananta@chromium.org>
93853
93854        [chromium] Ensure that the compositor code which is aware of flipped status of video-textures
93855        per platform sets the flipped bit to false on Windows.
93856        https://bugs.webkit.org/show_bug.cgi?id=91562
93857        
93858        Reviewed by Adrienne Walker.
93859
93860        No new tests. (HW video decode is still only being tested manually for orientation)
93861
93862        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
93863        (WebCore::CCVideoLayerImpl::appendQuads):
93864
938652012-07-18  Emil A Eklund  <eae@chromium.org>
93866
93867        Replace uses of RenderBox::x(), y() in rendering code with with point and size methods
93868        https://bugs.webkit.org/show_bug.cgi?id=91549
93869
93870        Reviewed by Eric Seidel.
93871
93872        Replaces uses of RenderBox::x() and RenderBox::y() with
93873        RenderBox::location(), RenderBox::locationOffset() and
93874        RenderBox::frameRect().
93875
93876        No new tests, no change in functionality.
93877
93878        * rendering/RenderBlock.cpp:
93879        (WebCore::RenderBlock::layoutBlockChild):
93880        (WebCore::RenderBlock::positionNewFloats):
93881        Use child->frameRect() and child->location() instead of constructing a
93882        rect and size from the x, y, width and height values.       
93883        
93884        * rendering/RenderBox.cpp:
93885        (WebCore::RenderBox::repaintDuringLayoutIfMoved):
93886        Compare and copy m_frameRect directly instead of comparing and copying
93887        the individual values.
93888        
93889        (WebCore::RenderBox::localCaretRect):
93890        Use location() instead of x() and y().
93891        
93892        * rendering/RenderBoxModelObject.cpp:
93893        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
93894        Use pixelSnappedIntSize and RenderBox::size() instead of computing and
93895        snapping the width and height separately.
93896        
93897        * rendering/RenderImage.cpp:
93898        (WebCore::RenderImage::nodeAtPoint):
93899        USe locationOffset() instead of creating a new LayoutSize object from the
93900        x() and y() values.
93901        
93902        * rendering/RenderInline.cpp:
93903        (WebCore::RenderInline::updateHitTestResult):
93904        Move by Size instead of x and y value.
93905        
93906        (WebCore::RenderInline::addFocusRingRects):
93907        Move by Size instead of x and y value.
93908        
93909        * rendering/RenderTableCell.cpp:
93910        (WebCore::RenderTableCell::offsetFromContainer):
93911        Shrink offset by size instead of using x and y values.
93912        
93913        * rendering/RenderTableSection.cpp:
93914        (WebCore::RenderTableSection::layoutRows):
93915        (WebCore::RenderTableSection::setLogicalPositionForCell):
93916        Use child->frameRect() and child->location() instead of constructing a
93917        rect and size from the x, y, width and height values.       
93918
93919        * rendering/svg/SVGRenderTreeAsText.cpp:
93920        (WebCore::writeRenderSVGTextBox):
93921        Use location() instead of x() and y().
93922
939232012-07-18  Tony Chang  <tony@chromium.org>
93924
93925        [chromium] Unreviewed, try to fix the chromium-win build after r123014.
93926
93927        * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
93928
939292012-07-18  Joshua Bell  <jsbell@chromium.org>
93930
93931        IndexedDB: Fix some coding style violations
93932        https://bugs.webkit.org/show_bug.cgi?id=91565
93933
93934        Reviewed by Tony Chang.
93935
93936        In declarations, put the * next to the type not the identifier.
93937        Remove k as a prefix for various constants.
93938
93939        No new tests - no functional changes.
93940
93941        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
93942        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
93943        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
93944        (WebCore::computeFileIdentifier):
93945        * Modules/indexeddb/IDBKey.h:
93946        (WebCore::IDBKey::IDBKey):
93947        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
93948        (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
93949        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
93950        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
93951        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
93952        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
93953        (WebCore::IDBLevelDBBackingStore::getObjectStores):
93954        (WebCore::getNewObjectStoreId):
93955        (WebCore::IDBLevelDBBackingStore::createObjectStore):
93956        (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
93957        (WebCore::getNewVersionNumber):
93958        (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
93959        (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
93960        (WebCore::IDBLevelDBBackingStore::getIndexes):
93961        (WebCore::getNewIndexId):
93962        (WebCore::IDBLevelDBBackingStore::createIndex):
93963        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
93964        (WebCore):
93965        * Modules/indexeddb/IDBLevelDBCoding.cpp:
93966        (IDBLevelDBCoding):
93967        (WebCore::IDBLevelDBCoding::maxIDBKey):
93968        (WebCore::IDBLevelDBCoding::minIDBKey):
93969        (WebCore::IDBLevelDBCoding::decodeVarInt):
93970        (WebCore::IDBLevelDBCoding::encodeIDBKey):
93971        (WebCore::IDBLevelDBCoding::decodeIDBKey):
93972        (WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
93973        (WebCore::IDBLevelDBCoding::keyTypeByteToKeyType):
93974        (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
93975        (WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
93976        (WebCore::IDBLevelDBCoding::decodeIDBKeyPath):
93977        (WebCore::IDBLevelDBCoding::compare):
93978        (WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
93979        (WebCore::IDBLevelDBCoding::KeyPrefix::encode):
93980        (WebCore::IDBLevelDBCoding::KeyPrefix::compare):
93981        (WebCore::IDBLevelDBCoding::KeyPrefix::type):
93982        (WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
93983        (WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
93984        (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::decode):
93985        (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
93986        (WebCore::IDBLevelDBCoding::DatabaseNameKey::decode):
93987        (WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
93988        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::decode):
93989        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
93990        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encodeMaxKey):
93991        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::decode):
93992        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
93993        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::encodeMaxKey):
93994        (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::decode):
93995        (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
93996        (WebCore::IDBLevelDBCoding::IndexFreeListKey::decode):
93997        (WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
93998        (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::decode):
93999        (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
94000        (WebCore::IDBLevelDBCoding::IndexNamesKey::decode):
94001        (WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
94002        (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::decode):
94003        (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
94004        (WebCore::IDBLevelDBCoding::ExistsEntryKey::decode):
94005        (WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
94006        (WebCore::IDBLevelDBCoding::IndexDataKey::decode):
94007        * Modules/indexeddb/IDBLevelDBCoding.h:
94008        (IDBLevelDBCoding):
94009        (ObjectStoreDataKey):
94010        (ExistsEntryKey):
94011
940122012-07-18  Mark Pilgrim  <pilgrim@chromium.org>
94013
94014        [Chromium] Call SQLiteFileSystem-related functions directly
94015        https://bugs.webkit.org/show_bug.cgi?id=91631
94016
94017        Reviewed by Adam Barth.
94018
94019        Part of a refactoring series. See tracking bug 82948.
94020
94021        * Modules/webdatabase/chromium/QuotaTracker.cpp:
94022        (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
94023        * platform/chromium/PlatformSupport.h:
94024        (PlatformSupport):
94025        * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
94026        (WebCore::SQLiteFileSystem::deleteDatabaseFile):
94027        (WebCore::SQLiteFileSystem::getDatabaseFileSize):
94028        * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
94029        * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
94030
940312012-07-18  Oliver Hunt  <oliver@apple.com>
94032
94033        WebKit provides APIs that make it possible for JSC to attempt to initialise the heap without initialising threading
94034        https://bugs.webkit.org/show_bug.cgi?id=91663
94035
94036        Reviewed by Filip Pizlo.
94037
94038        Initialising a JSGlobalData now requires us to have initialised JSC's threading
94039        logic, as that also initialises the JSC VM runtime options.  WebKit provides a
94040        number of routines that make use of commonJSGlobalData() that can be used before
94041        webcore has called the appropriate initialisation routine.  This patch makes the
94042        minimal change of ensuring that commonJSGlobalData initialises threading before
94043        attempting to create the common heap.
94044
94045        * bindings/js/JSDOMWindowBase.cpp:
94046        (WebCore::JSDOMWindowBase::commonJSGlobalData):
94047
940482012-07-18  Michael Saboff  <msaboff@apple.com>
94049
94050        Make TextCodecUTF8 handle 8 bit data without converting to UChar's
94051        https://bugs.webkit.org/show_bug.cgi?id=90320
94052
94053        Reviewed by Oliver Hunt.
94054
94055        Change UTF8 Codec to produce 8-bit strings when data fits in 8-bit range.
94056        First we try decoding the string as all 8-bit and then fall back to 16 bit
94057        when we find the first character that doesn't fit in 8 bits.  Then we take
94058        the already decoded data and copy / convert it to a 16-bit buffer and then
94059        continue process the rest of the stream as 16-bits.
94060
94061        No new tests, no change in functionality.
94062
94063        * platform/text/TextCodecUTF8.cpp:
94064        (WebCore::TextCodecUTF8::handleError):
94065        (WebCore::TextCodecUTF8::decode):
94066        * platform/text/TextCodecUTF8.h:
94067        (TextCodecUTF8):
94068
940692012-07-18  Sailesh Agrawal  <sail@chromium.org>
94070
94071        Chromium Mac: Add TEXTURE_RECTANGLE_ARB support to CCVideoLayerImpl
94072        https://bugs.webkit.org/show_bug.cgi?id=91169
94073
94074        Reviewed by Adrienne Walker.
94075
94076        This extends CCVideoLayerImpl to support TEXTURE_RECTANGLE_ARB. This texture target is used by the Mac hardware accelerated video decoder.
94077
94078        No new tests (HW video decode on Mac is being tested manually.).
94079
94080        * platform/chromium/support/WebCompositorIOSurfaceQuad.cpp:
94081        (WebKit::WebCompositorIOSurfaceQuad::create): Added an orientation argument.
94082        (WebKit::WebCompositorIOSurfaceQuad::WebCompositorIOSurfaceQuad): Added an orientation argument.
94083        * platform/graphics/chromium/LayerRendererChromium.cpp:
94084        (WebCore::LayerRendererChromium::drawIOSurfaceQuad): Added support for non-flipped IOSurface textures.
94085        * platform/graphics/chromium/LayerRendererChromium.h:
94086        (LayerRendererChromium): Changed TextureIOSurfaceProgram to be non-flipped. To draw flipped textures drawIOSurfaceQuad sets a different value for texTransformLocation.
94087        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
94088        (WebCore::CCIOSurfaceLayerImpl::appendQuads): Updated call to CCIOSurfaceDrawQuad constructor.
94089        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
94090        (WebCore::CCVideoLayerImpl::appendQuads): Added support for drawing TEXTURE_RECTANGLE_ARB textures.
94091
940922012-07-18  Michael Saboff  <msaboff@apple.com>
94093
94094        Make TextCodecLatin1 handle 8 bit data without converting to UChar's
94095        https://bugs.webkit.org/show_bug.cgi?id=90319
94096
94097        Reviewed by Oliver Hunt.
94098
94099        Updated codec to create 8 bit strings where possible.
94100        We assume that the incoming stream can all be decoded as 8-bit values.
94101        If we find a 16-bit value, we take the already decoded data and
94102        copy / convert it to a 16-bit buffer and then continue process the rest
94103        of the stream as 16-bits.
94104
94105        No new tests, functionality covered with existing tests.
94106
94107        * platform/text/TextCodecASCIIFastPath.h:
94108        (WebCore::copyASCIIMachineWord):
94109        * platform/text/TextCodecLatin1.cpp:
94110        (WebCore::TextCodecLatin1::decode):
94111
941122012-07-18  Dimitri Glazkov  <dglazkov@chromium.org>
94113
94114        Fix up old name in RuleSet::addRulesFromSheet
94115        https://bugs.webkit.org/show_bug.cgi?id=91646
94116
94117        Reviewed by Andreas Kling.
94118
94119        Simple parameter rename, no change in functionality.
94120
94121        * css/StyleResolver.cpp:
94122        (WebCore::StyleResolver::collectMatchingRulesForList): Renamed styleSelector to resolver to reflect recent rename of the parameter type.
94123
941242012-07-18  Vincent Scheib  <scheib@chromium.org>
94125
94126        Unify allowfullscreen logic in Document::webkitFullScreenEnabled and fullScreenIsAllowedForElement.
94127        https://bugs.webkit.org/show_bug.cgi?id=91448
94128
94129        Reviewed by Adrienne Walker.
94130
94131        Unifies redundant traversal logic and static cast previously used
94132        to determine if an element or document can be made fullscreen.
94133        This clean up prepares for pointer lock, which will use the same logic.
94134
94135        Added a test to detect an edge case of an owning document with
94136        fullscreen permision moving an iframe to fullscreen, while that iframe
94137        does not have permision for its contents to be made fullscreen.
94138
94139        Test: fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent.html
94140
94141        * dom/Document.cpp:
94142        (WebCore::isAttributeOnAllOwners):
94143        (WebCore::Document::fullScreenIsAllowedForElement):
94144        (WebCore::Document::webkitFullscreenEnabled):
94145
941462012-07-18  Christophe Dumez  <christophe.dumez@intel.com>
94147
94148        [EFL] Add central error management to EFL port
94149        https://bugs.webkit.org/show_bug.cgi?id=91598
94150
94151        Reviewed by Kenneth Rohde Christiansen.
94152
94153        Define possible error types in ErrorsEfl so
94154        that we can reuse the header in both WebKit1
94155        and WebKit2. This is inspired from the GTK
94156        port.
94157
94158        No new tests, no behavior change.
94159
94160        * PlatformEfl.cmake:
94161        * platform/efl/ErrorsEfl.cpp: Added.
94162        (WebCore):
94163        (WebCore::cancelledError):
94164        (WebCore::blockedError):
94165        (WebCore::cannotShowURLError):
94166        (WebCore::interruptedForPolicyChangeError):
94167        (WebCore::cannotShowMIMETypeError):
94168        (WebCore::fileDoesNotExistError):
94169        (WebCore::pluginWillHandleLoadError):
94170        (WebCore::downloadNetworkError):
94171        (WebCore::downloadCancelledByUserError):
94172        (WebCore::downloadDestinationError):
94173        (WebCore::printError):
94174        (WebCore::printerNotFoundError):
94175        (WebCore::invalidPageRangeToPrint):
94176        * platform/efl/ErrorsEfl.h: Added.
94177        (WebCore):
94178
941792012-07-18  Varun Jain  <varunjain@chromium.org>
94180
94181        [chromium] Fix crash in DragImageTest caused by r122996
94182        https://bugs.webkit.org/show_bug.cgi?id=91653
94183
94184        Reviewed by Tony Chang.
94185
94186        Covered by existing DragImageTest.
94187
94188        * platform/chromium/DragImageChromiumSkia.cpp:
94189        (WebCore::deleteDragImage):
94190
941912012-07-18  Varun Jain  <varunjain@chromium.org>
94192
94193        [chromium] Drag image for image elements should be scaled with device scale factor.
94194        https://bugs.webkit.org/show_bug.cgi?id=89688
94195
94196        Reviewed by Adam Barth.
94197
94198        Modified ManualTest: ManualTests/chromium/drag-image-accounts-for-device-scale.html
94199
94200        * page/Frame.cpp:
94201        (WebCore::Frame::nodeImage):
94202        (WebCore::Frame::dragImageForSelection):
94203        * platform/chromium/DragImageChromiumSkia.cpp:
94204        (WebCore::dragImageSize):
94205        (WebCore::deleteDragImage):
94206        (WebCore::scaleDragImage):
94207        (WebCore::dissolveDragImageToFraction):
94208        (WebCore::createDragImageFromImage):
94209        * platform/chromium/DragImageRef.h:
94210        (DragImageChromium):
94211        (WebCore):
94212        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
94213        (BitmapImageSingleFrameSkia):
94214        * platform/graphics/skia/ImageBufferSkia.cpp:
94215        (WebCore::ImageBuffer::ImageBuffer):
94216        (WebCore::ImageBuffer::copyImage):
94217        * platform/graphics/skia/ImageSkia.cpp:
94218        (WebCore::BitmapImageSingleFrameSkia::BitmapImageSingleFrameSkia):
94219        (WebCore::BitmapImageSingleFrameSkia::create):
94220        * platform/graphics/skia/NativeImageSkia.cpp:
94221        (WebCore::NativeImageSkia::NativeImageSkia):
94222        * platform/graphics/skia/NativeImageSkia.h:
94223        (NativeImageSkia):
94224        (WebCore::NativeImageSkia::resolutionScale):
94225
942262012-07-18  Yong Li  <yoli@rim.com>
94227
94228        [BlackBerry] Move about: URL handling out of WebCore
94229        https://bugs.webkit.org/show_bug.cgi?id=91541
94230
94231        Reviewed by Rob Buis.
94232
94233        Remove about URL handling from our NetworkJob.
94234
94235        * platform/network/blackberry/NetworkJob.cpp:
94236        (WebCore::NetworkJob::NetworkJob):
94237        (WebCore::NetworkJob::initialize):
94238        (WebCore::NetworkJob::cancelJob):
94239        (WebCore::NetworkJob::sendResponseIfNeeded):
94240        * platform/network/blackberry/NetworkJob.h:
94241        (NetworkJob):
94242        * platform/network/blackberry/NetworkManager.cpp:
94243        (WebCore::NetworkManager::startJob):
94244
942452012-07-18  Tony Chang  <tony@chromium.org>
94246
94247        Unreviewed, rolling out r122984.
94248        http://trac.webkit.org/changeset/122984
94249        https://bugs.webkit.org/show_bug.cgi?id=91171
94250
94251        Broken the shared build, need to export a SkData in skia
94252
94253        * platform/graphics/skia/GraphicsContextSkia.cpp:
94254        (WebCore::GraphicsContext::setURLForRect):
94255
942562012-07-18  Rob Buis  <rbuis@rim.com>
94257
94258        Alignment crash in MIMESniffer
94259        https://bugs.webkit.org/show_bug.cgi?id=89787
94260
94261        Reviewed by Yong Li.
94262
94263        PR 169064
94264
94265        Prevent ASSERT on unaligned data. Special-case handling of unaligned data
94266        to maskedCompareSlowCase.
94267
94268        No test, too hard to reproduce.
94269
94270        * platform/network/MIMESniffing.cpp:
94271        (std::maskedCompareSlowCase):
94272        (std):
94273        (std::maskedCompare):
94274
942752012-07-18  Steve VanDeBogart  <vandebo@chromium.org>
94276
94277        Chrome/Skia: PDF print output does not have clickable links.
94278        https://bugs.webkit.org/show_bug.cgi?id=91171
94279
94280        Reviewed by Stephen White.
94281
94282        Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
94283
94284        Printing is not generally testable.
94285
94286        * platform/graphics/skia/GraphicsContextSkia.cpp:
94287        (WebCore::GraphicsContext::setURLForRect):
94288
942892012-07-18  Philippe Normand  <pnormand@igalia.com>
94290
94291        [GStreamer] 0.11 build broken
94292        https://bugs.webkit.org/show_bug.cgi?id=91629
94293
94294        Reviewed by Alexis Menard.
94295
94296        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
94297        (webkitVideoSinkProposeAllocation): Pass null GstStructure to
94298        gst_query_add_allocation_meta(). Our propose-allocation method
94299        is simple enough to not need to set it.
94300
943012012-07-18  Chris Fleizach  <cfleizach@apple.com>
94302
94303        AX: <input type="submit"> unlabelled.
94304        https://bugs.webkit.org/show_bug.cgi?id=91563
94305
94306        Reviewed by Adele Peterson.
94307
94308        Make sure the default value is returned if there is no other value specified.
94309
94310        Test: platform/mac/accessibility/submit-button-default-value.html
94311
94312        * accessibility/AccessibilityRenderObject.cpp:
94313        (WebCore::AccessibilityRenderObject::title):
94314
943152012-07-17  Shawn Singh  <shawnsingh@chromium.org>
94316
94317        [chromium] Remove awkward anchorPoint usage that implicity affects layer position
94318        https://bugs.webkit.org/show_bug.cgi?id=91472
94319
94320        Reviewed by Adrienne Walker.
94321
94322        Covered by existing layout tests and unit tests, several existing unit tests updated.
94323
94324        In GraphicsLayerChromium, anchorPoint() implicity affects
94325        position(). Therefore, unit tests needed to remember to set
94326        anchorPoint correctly when trying to position layers for
94327        testing. However, it's easy to forget that initialization, and
94328        probably shouldn't be necessary anyway since conceptually
94329        anchorPoint does not affect layer position.
94330
94331        This patch removes the "actualPosition + anchorPoint" quirk in
94332        GraphicsLayerChromium, so that this problem is avoided.
94333
94334        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
94335        (WebCore::GraphicsLayerChromium::updateLayerPosition): No longer computes position + anchorPoint. Instead this is done in calcDrawTransformsInternal.
94336        (WebCore::GraphicsLayerChromium::updateLayerSize): No longer affects computation of position.
94337        (WebCore::GraphicsLayerChromium::updateAnchorPoint): No longer affects computation of position
94338        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): Position is initialized to zero instead of relative to anchorPoint
94339        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
94340        (WebCore::calculateDrawTransformsInternal): explicitly use position + anchorPoint in this code, for both layer and replica.
94341            Note that replicaLayer now uses its own anchorPoint, which seems to be more consistent with Safari behavior.
94342
943432012-07-18  Pavel Feldman  <pfeldman@chromium.org>
94344
94345        Web Inspector: [Regression] Save as file is missing in Network panel preview/response tabs.
94346        https://bugs.webkit.org/show_bug.cgi?id=91625
94347
94348        Reviewed by Vsevolod Vlasov.
94349
94350        * inspector/front-end/HandlerRegistry.js:
94351        * inspector/front-end/NetworkPanel.js:
94352
943532012-07-18  Dirk Schulze  <krit@webkit.org>
94354
94355        SVG CSS property types with <number> don't support exponents
94356        https://bugs.webkit.org/show_bug.cgi?id=52542
94357
94358        Reviewed by Nikolas Zimmermann.
94359
94360        Parse numbers in SVG presentation attributes with SVG parser to support scientific notations.
94361        The SVG parser is already well tested and has some extra checks for edge like protection from
94362        overflow.
94363        
94364        The patch is based upon a patch of Bear Travis.
94365
94366        Test: svg/css/scientific-numbers.html
94367
94368        * css/CSSParser.cpp:
94369        (WebCore::CSSParser::lex): Use SVG parser to parse numbers of SVG attributes.
94370        * svg/SVGParserUtilities.cpp:
94371        (WebCore::parseSVGNumber): Added accessor to call from CSSParser with double value.
94372        (WebCore):
94373        * svg/SVGParserUtilities.h:
94374        (WebCore):
94375
94376
943772012-07-18  Pavel Feldman  <pfeldman@chromium.org>
94378
94379        Web Inspector: beautify the paused in debugger message, make it configurable from the front-end.
94380        https://bugs.webkit.org/show_bug.cgi?id=91628
94381
94382        Reviewed by Vsevolod Vlasov.
94383
94384        Made message smaller, using consistent font;
94385        Made message configurable from the front-end.
94386
94387        * English.lproj/localizedStrings.js:
94388        * inspector/DOMNodeHighlighter.cpp:
94389        (WebCore::InspectorOverlay::InspectorOverlay):
94390        (WebCore::InspectorOverlay::setPausedInDebuggerMessage):
94391        (WebCore::InspectorOverlay::update):
94392        (WebCore::InspectorOverlay::drawPausedInDebugger):
94393        * inspector/DOMNodeHighlighter.h:
94394        (InspectorOverlay):
94395        * inspector/Inspector.json:
94396        * inspector/InspectorDebuggerAgent.cpp:
94397        (WebCore::InspectorDebuggerAgent::setOverlayMessage):
94398        (WebCore):
94399        (WebCore::InspectorDebuggerAgent::clear):
94400        * inspector/InspectorDebuggerAgent.h:
94401        (InspectorDebuggerAgent):
94402        * inspector/PageDebuggerAgent.cpp:
94403        (WebCore::PageDebuggerAgent::setOverlayMessage):
94404        * inspector/PageDebuggerAgent.h:
94405        (PageDebuggerAgent):
94406        * inspector/front-end/DebuggerModel.js:
94407        (WebInspector.DebuggerModel.prototype._setDebuggerPausedDetails):
94408
944092012-07-18  Douglas Stockwell  <dstockwell@chromium.org>
94410
94411        WebCore::StylePropertySet::addParsedProperties - crash
94412        https://bugs.webkit.org/show_bug.cgi?id=91153
94413
94414        Reviewed by Andreas Kling.
94415
94416        WebKitCSSKeyframeRule::style exposed an immutable StylePropertySet.
94417        Modified to create a mutable copy on demand.
94418
94419        Test: fast/css/css-keyframe-style-mutate-crash.html
94420
94421        * css/StyleResolver.cpp:
94422        (WebCore::StyleResolver::collectMatchingRulesForList):
94423        * css/WebKitCSSKeyframeRule.cpp:
94424        (WebCore::StyleKeyframe::mutableProperties): Added, creates a mutable copy of properties as required.
94425        (WebCore::WebKitCSSKeyframeRule::style):
94426        * css/WebKitCSSKeyframeRule.h:
94427        (WebCore::StyleKeyframe::properties): Made const, use mutableProperties to mutate.
94428
944292012-07-18  Huang Dongsung  <luxtella@company100.net>
94430
94431        [Texmap] Make TextureMapperLayer clip m_state.needsDisplayRect with the layerRect.
94432        https://bugs.webkit.org/show_bug.cgi?id=91595
94433
94434        Reviewed by Noam Rosenthal.
94435
94436        Internal review by Kwang Yul Seo.
94437
94438        Currently, TextureMapperLayer creates an ImageBuffer as big as
94439        m_state.needsDisplayRect if m_state.needsDispaly is false. The size of
94440        m_state.needsDisplayRect can be bigger than the size of the layerRect, so we may
94441        consume more memory than the size of the layerRect. It even can cause crash if
94442        m_state.needsDisplayRect is too big.
94443
94444        No new tests, covered by existing tests.
94445
94446        * platform/graphics/texmap/TextureMapperLayer.cpp:
94447        (WebCore::TextureMapperLayer::updateBackingStore):
94448
944492012-07-18  Jason Liu  <jason.liu@torchmobile.com.cn>
94450
94451        [BlackBerry] We should update the status in NetworkJob if there is a new one from libcurl.
94452        https://bugs.webkit.org/show_bug.cgi?id=91475
94453
94454        Reviewed by Yong Li.
94455
94456        Libcurl sometimes sends multiple status messages, we need to keep the last 
94457        one in NetworkJob.
94458        We originally had the m_statusReceived check, then we found out that libcurl 
94459        sometimes sent additional 401 codes and added the 401 exception to the check, 
94460        and now we're removing the whole check(so we don't need the exception either).
94461
94462        RIM PR# 163172
94463        Reviewed internally by Joe Mason.
94464
94465        No new tests. This is caused by libcurl's multiple status messages.
94466        So we don't need to write a test case for webkit.
94467
94468        * platform/network/blackberry/NetworkJob.cpp:
94469        (WebCore::NetworkJob::handleNotifyStatusReceived):
94470
944712012-07-18  Kevin Ellis  <kevers@chromium.org>
94472
94473        TOUCH_ADJUSTMENT is too aggressive when snapping to large elements.
94474        https://bugs.webkit.org/show_bug.cgi?id=91262
94475
94476        Reviewed by Antonio Gomes.
94477
94478        Constrains the extent to which the touch point can be adjusted when
94479        generating synthetic mouse events when TOUCH_ADJUSTEMNT is enabled.
94480        Previously, the target position snapped to the center of the target
94481        element, which can be far removed from the touch position when tapping
94482        on or near a large element.  The refined strategy is to leave the
94483        adjusted position unchanged if tapping within the element or to snap
94484        to the center of the overlap region if the touch point lies outside the
94485        bounds of the element, but the touch area and element bounds overlap.
94486        For non-rectilineary bounds, a point lying outside the element boundary
94487        is pulled towards the center of the element, by an amount limited by
94488        the radius of the touch area.
94489
94490        Tests: touchadjustment/big-div.html
94491               touchadjustment/rotated-node.html
94492
94493        * page/TouchAdjustment.cpp:
94494        (WebCore::TouchAdjustment::contentsToWindow):
94495        (TouchAdjustment):
94496        (WebCore::TouchAdjustment::snapTo):
94497        (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
94498
944992012-07-18  Sergey Rogulenko  <rogulenko@google.com>
94500
94501        Web Inspector: adding pause icon for JavaScript debugging
94502        https://bugs.webkit.org/show_bug.cgi?id=90880
94503
94504        Reviewed by Pavel Feldman.
94505
94506        Refactored DOMNodeHighlighter into InspectorOverlay class and added a feature to show a "pause" screen when
94507        the Javascript debugger is paused.
94508
94509        * inspector/DOMNodeHighlighter.cpp:
94510        (WebCore::InspectorOverlay::InspectorOverlay):
94511        (WebCore::InspectorOverlay::paint):
94512        (WebCore::InspectorOverlay::drawOutline):
94513        (WebCore::InspectorOverlay::getHighlight):
94514        (WebCore::InspectorOverlay::setPausedInDebugger):
94515        (WebCore::InspectorOverlay::hideHighlight):
94516        (WebCore):
94517        (WebCore::InspectorOverlay::highlightNode):
94518        (WebCore::InspectorOverlay::setHighlightData):
94519        (WebCore::InspectorOverlay::clearHighlightData):
94520        (WebCore::InspectorOverlay::highlightedNode):
94521        (WebCore::InspectorOverlay::update):
94522        (WebCore::InspectorOverlay::drawHighlight):
94523        (WebCore::InspectorOverlay::drawPausedInDebugger):
94524        * inspector/DOMNodeHighlighter.h:
94525        (WebCore):
94526        (InspectorOverlay):
94527        (WebCore::InspectorOverlay::create):
94528        * inspector/InspectorController.cpp:
94529        (WebCore::InspectorController::InspectorController):
94530        (WebCore::InspectorController::drawHighlight):
94531        (WebCore::InspectorController::getHighlight):
94532        (WebCore::InspectorController::highlightedNode):
94533        * inspector/InspectorController.h:
94534        (WebCore):
94535        (InspectorController):
94536        * inspector/InspectorDOMAgent.cpp:
94537        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
94538        (WebCore::InspectorDOMAgent::~InspectorDOMAgent):
94539        (WebCore::InspectorDOMAgent::handleMousePress):
94540        (WebCore::InspectorDOMAgent::mouseDidMoveOverElement):
94541        (WebCore::InspectorDOMAgent::setSearchingForNode):
94542        (WebCore::InspectorDOMAgent::setHighlightDataFromConfig):
94543        (WebCore::InspectorDOMAgent::setInspectModeEnabled):
94544        (WebCore::InspectorDOMAgent::highlightRect):
94545        (WebCore::InspectorDOMAgent::highlightNode):
94546        (WebCore::InspectorDOMAgent::highlightFrame):
94547        (WebCore::InspectorDOMAgent::hideHighlight):
94548        * inspector/InspectorDOMAgent.h:
94549        (WebCore):
94550        (WebCore::InspectorDOMAgent::create):
94551        (InspectorDOMAgent):
94552        * inspector/InspectorDebuggerAgent.h:
94553        (InspectorDebuggerAgent):
94554        * inspector/InspectorPageAgent.cpp:
94555        (WebCore::InspectorPageAgent::create):
94556        (WebCore::InspectorPageAgent::InspectorPageAgent):
94557        (WebCore::InspectorPageAgent::didPaint):
94558        * inspector/InspectorPageAgent.h:
94559        (WebCore):
94560        * inspector/PageDebuggerAgent.cpp:
94561        (WebCore::PageDebuggerAgent::create):
94562        (WebCore::PageDebuggerAgent::PageDebuggerAgent):
94563        (WebCore::PageDebuggerAgent::disable):
94564        (WebCore):
94565        (WebCore::PageDebuggerAgent::didPause):
94566        (WebCore::PageDebuggerAgent::didContinue):
94567        * inspector/PageDebuggerAgent.h:
94568        (WebCore):
94569        (PageDebuggerAgent):
94570
945712012-07-17  Andrey Kosyakov  <caseq@chromium.org>
94572
94573        Web Inspector: intern strings when processing timeline records
94574        https://bugs.webkit.org/show_bug.cgi?id=91531
94575
94576        Reviewed by Pavel Feldman.
94577
94578        - added StringPool that is capable of interning strings;
94579        - used it in TimelineModel to process all incoming records;
94580
94581        * inspector/front-end/TimelineModel.js:
94582        (WebInspector.TimelineModel):
94583        (WebInspector.TimelineModel.prototype._addRecord):
94584        (WebInspector.TimelineModel.prototype.reset):
94585        * inspector/front-end/utilities.js:
94586
945872012-07-18  Scott Graham  <scottmg@chromium.org>
94588
94589        Use cl to preprocess IDL for Chromium Windows generate_supplemental_dependency
94590        https://bugs.webkit.org/show_bug.cgi?id=91548
94591
94592        Reviewed by Kentaro Hara.
94593
94594        Use cl.exe as preprocessor for IDL files rather than cygwin gcc. Cuts
94595        two minute execution time on Windows by a bit better than 50%.
94596
94597        No new tests.
94598
94599        * WebCore.gyp/WebCore.gyp:
94600        * bindings/scripts/preprocessor.pm:
94601        (applyPreprocessor):
94602
946032012-07-18  Pavel Feldman  <pfeldman@chromium.org>
94604
94605        Web Inspector: remove search replace from behind experiment, polish the behavior
94606        https://bugs.webkit.org/show_bug.cgi?id=91519
94607
94608        Reviewed by Vsevolod Vlasov.
94609
94610        - This change makes replace loop with no boundary, removes the loop parameter
94611          from jumpToNext/Previous;
94612        - Lays out replace as a second row
94613        - Fixes replace all with no search matches
94614        - Splits Search and Search and Replace
94615        - Introduces explicit Next / Previous buttons in the search mode
94616        - Introduces editRange on the TextEditor so that it was preserving the undo stack
94617          (we'll need to fix editor so that it does not require it).
94618
94619        * English.lproj/localizedStrings.js:
94620        * inspector/front-end/ConsolePanel.js:
94621        (WebInspector.ConsolePanel.prototype.performSearch):
94622        (WebInspector.ConsolePanel.prototype.jumpToNextSearchResult):
94623        (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
94624        * inspector/front-end/ElementsPanel.js:
94625        (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult):
94626        (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
94627        * inspector/front-end/ExtensionPanel.js:
94628        (WebInspector.ExtensionPanel.prototype.performSearch):
94629        (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
94630        (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
94631        * inspector/front-end/JavaScriptSourceFrame.js:
94632        (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
94633        * inspector/front-end/NetworkPanel.js:
94634        (WebInspector.NetworkLogView.prototype.jumpToPreviousSearchResult):
94635        (WebInspector.NetworkLogView.prototype.jumpToNextSearchResult):
94636        (WebInspector.NetworkPanel.prototype.jumpToPreviousSearchResult):
94637        (WebInspector.NetworkPanel.prototype.jumpToNextSearchResult):
94638        * inspector/front-end/Panel.js:
94639        (WebInspector.Panel.prototype.performSearch):
94640        (WebInspector.Panel.prototype.jumpToNextSearchResult):
94641        (WebInspector.Panel.prototype.jumpToPreviousSearchResult):
94642        * inspector/front-end/ProfilesPanel.js:
94643        (WebInspector.ProfilesPanel.prototype.jumpToNextSearchResult):
94644        (WebInspector.ProfilesPanel.prototype.jumpToPreviousSearchResult):
94645        * inspector/front-end/ResourcesPanel.js:
94646        (WebInspector.ResourcesPanel.prototype.jumpToNextSearchResult):
94647        (WebInspector.ResourcesPanel.prototype.jumpToPreviousSearchResult):
94648        * inspector/front-end/ScriptsPanel.js:
94649        (WebInspector.ScriptsPanel.prototype._editorClosed):
94650        (WebInspector.ScriptsPanel.prototype._editorSelected):
94651        (WebInspector.ScriptsPanel.prototype.performSearch.finishedCallback):
94652        (WebInspector.ScriptsPanel.prototype.performSearch):
94653        (WebInspector.ScriptsPanel.prototype.jumpToNextSearchResult):
94654        (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
94655        (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
94656        (WebInspector.ScriptsPanel.prototype.replaceAllWith):
94657        * inspector/front-end/SearchController.js:
94658        (WebInspector.SearchController):
94659        (WebInspector.SearchController.prototype.cancelSearch):
94660        (WebInspector.SearchController.prototype.resetSearch):
94661        (WebInspector.SearchController.prototype.handleShortcut):
94662        (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
94663        (WebInspector.SearchController.prototype._updateReplaceVisibility):
94664        (WebInspector.SearchController.prototype._onKeyDown):
94665        (WebInspector.SearchController.prototype._onNextButtonSearch):
94666        (WebInspector.SearchController.prototype._onPrevButtonSearch):
94667        (WebInspector.SearchController.prototype._performSearch):
94668        (WebInspector.SearchController.prototype._updateReplaceDetailsVisibility):
94669        (WebInspector.SearchController.prototype._replace):
94670        (WebInspector.SearchController.prototype._replaceAll):
94671        * inspector/front-end/Settings.js:
94672        (WebInspector.ExperimentsSettings):
94673        * inspector/front-end/SourceFrame.js:
94674        (WebInspector.SourceFrame.prototype.beforeTextChanged):
94675        (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches):
94676        (WebInspector.SourceFrame.prototype.performSearch):
94677        (WebInspector.SourceFrame.prototype.replaceSearchMatchWith):
94678        (WebInspector.SourceFrame.prototype.replaceAllWith):
94679        (WebInspector.TextEditorDelegateForSourceFrame.prototype.beforeTextChanged):
94680        * inspector/front-end/TextEditor.js:
94681        (WebInspector.TextEditor.prototype.editRange):
94682        * inspector/front-end/inspector.css:
94683        (.toolbar-search-replace .search-replace):
94684        (.toolbar-search):
94685        (.toolbar-search-replace):
94686        (.toolbar-search-close-button):
94687        (.toolbar-search-close-button:hover):
94688        (.toolbar-search-close-button:active):
94689        (.toolbar-search input[type="checkbox"]):
94690        (.toolbar-search-replace .toolbar-replace-control):
94691
946922012-07-18  YoungTaeck Song  <youngtaeck.song@samsung.com>
94693
94694        [WK2][EFL] Divide ENABLE(WEBGL) into ENABLE(WEBGL) and USE(3D_GRAPHICS) in CMakeLists.txt
94695        https://bugs.webkit.org/show_bug.cgi?id=91584
94696
94697        Reviewed by Noam Rosenthal.
94698
94699        This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
94700        Modified CMakeLists.txt so that the basic 3D-graphics sources can be compiled even when WebGL is disabled.
94701
94702        * CMakeLists.txt:
94703        * PlatformEfl.cmake:
94704        * platform/graphics/GraphicsContext3D.h:
94705        (GraphicsContext3D):
94706        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
94707        (WebCore::GraphicsContext3D::platformGraphicsContext3D):
94708
947092012-07-18  Zoltan Horvath  <zoltan@webkit.org>
94710
94711        [Qt] Modify the using of the QImage::Format enum to the appropriate functions from NativeImageQt
94712        https://bugs.webkit.org/show_bug.cgi?id=91600
94713
94714        Reviewed by Andreas Kling.
94715
94716        Use NativeImageQt::defaultFormatForAlphaEnabledImages() and NativeImageQt::defaultFormatForOpaqueImages()
94717        instead of the direct imagetypes at the appropriate places.
94718
94719        Covered by existing tests.
94720
94721        * platform/graphics/qt/GraphicsContext3DQt.cpp:
94722        (WebCore::GraphicsContext3D::paintToCanvas):
94723        * platform/graphics/qt/PathQt.cpp:
94724        (WebCore::scratchContext):
94725        * platform/graphics/texmap/TextureMapperGL.cpp:
94726        (WebCore::TextureMapperGL::drawRepaintCounter):
94727        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
94728        (WebCore::BitmapTextureImageBuffer::updateContents):
94729
947302012-07-18  Andrey Kosyakov  <caseq@chromium.org>
94731
94732        Web Inspector: create timeline detail records lazily
94733        https://bugs.webkit.org/show_bug.cgi?id=91513
94734
94735        Reviewed by Pavel Feldman.
94736
94737        - only create timeline record details when these are used;
94738
94739        * inspector/front-end/TimelinePanel.js:
94740        (WebInspector.TimelineRecordListRow.prototype.update):
94741        * inspector/front-end/TimelinePresentationModel.js:
94742        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
94743        (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
94744        (WebInspector.TimelinePresentationModel.Record.prototype.details):
94745
947462012-07-18  Simon Hausmann  <simon.hausmann@nokia.com>
94747
94748        [ANGLE] On QT, use Bison and Flex during ANGLE build
94749        https://bugs.webkit.org/show_bug.cgi?id=91108
94750
94751        Reviewed by Kenneth Rohde Christiansen.
94752
94753        Add derived source generators for the two angle bison parsers and flex based lexers.
94754
94755        * DerivedSources.pri:
94756        * Target.pri:
94757
947582012-07-18  Dominik Röttsches  <dominik.rottsches@intel.com>
94759
94760        [EFL][WK2] Too early assertion failure if default theme is not available
94761        https://bugs.webkit.org/show_bug.cgi?id=91608
94762
94763        Reviewed by Kenneth Rohde Christiansen.
94764
94765        After bug 90107 we're setting a default theme path, which leads to a
94766        themeChanged() call initializing edje in createEdje() - if that theme
94767        path is not available we run into a premature assertion failure.
94768        We need to give the embedder a chance to override the default theme path
94769        before failing - so only the usages of m_edje should be guarded with assertions.
94770
94771        No new tests, no change in rendering behavior.
94772
94773        * platform/efl/RenderThemeEfl.cpp:
94774        (WebCore::RenderThemeEfl::themePartCacheEntryReset): Adding an assertion to ensure m_edje is present - so that all usages of m_edje are now guarded.
94775        (WebCore::RenderThemeEfl::createEdje): Not hitting assertion if theme path doesn't contain the theme object file, allowing the embedder to override with a new path.
94776
947772012-07-18  Vsevolod Vlasov  <vsevik@chromium.org>
94778
94779        IndexedDB: IDBLevelDBBackingStore compilation fails because of unused variable.
94780        https://bugs.webkit.org/show_bug.cgi?id=91612
94781
94782        Reviewed by Pavel Feldman.
94783
94784        Replaced ASSERT with ASSERT_UNUSED.
94785
94786        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
94787        (WebCore::IDBLevelDBBackingStore::getObjectStores):
94788
947892012-07-18  Yoshifumi Inoue  <yosin@chromium.org>
94790
94791        REGRESSION(r117738) [Forms] Default step base should be 0 (=1970-01) for input type month
94792        https://bugs.webkit.org/show_bug.cgi?id=91603
94793
94794        Reviewed by Kent Tamura.
94795
94796        This patch restores default step base value to 0 (=1970-01) as before
94797        r117738.
94798
94799        No new tests. Existing test(fast/forms/month/month-stepup-stepdown-from-renderer.html)
94800        covers this case, although it is disabled.
94801
94802        * html/MonthInputType.cpp:
94803        (WebCore::MonthInputType::createStepRange): Changed default value of
94804        step base to defaultMonthStepBase instead of DateComponents::minimumMonth().
94805
948062012-07-18  Ryuan Choi  <ryuan.choi@samsung.com>
94807
94808        [EFL] Cursor is not drawn when opengl_x11 backend is choosen.
94809        https://bugs.webkit.org/show_bug.cgi?id=89142
94810
94811        Reviewed by Simon Hausmann.
94812
94813        If theme based cursor is not given, WebKit/Efl only uses Ecore_X based
94814        cursor as a fallback after checked whether current engine is using EcoreX.
94815        This patch adds opengl_x11 which is one of Ecore_X based engine in check
94816        lists to draw fallback cursor.
94817
94818        * platform/efl/EflScreenUtilities.cpp:
94819        (WebCore::isUsingEcoreX):
94820
948212012-07-18  Ryosuke Niwa  <rniwa@webkit.org>
94822
94823        REGRESSION(r122345): HTMLCollection::length() sometimes returns a wrong value
94824        https://bugs.webkit.org/show_bug.cgi?id=91587
94825
94826        Reviewed by Benjamin Poulain.
94827
94828        The bug was caused by my douchey code that set the length cache to be the *offset*
94829        of the last item in a HTMLCollection. Clearly, the length of a collection that contains
94830        the last item at offset n is n + 1. Fixed that.
94831
94832        Also removed the call to setLengthCache in HTMLCollection::length since it must have set
94833        by previous calls to itemBeforeOrAfterCachedItem already. This will allow us to catch
94834        regressions like this in ports that use JSC bindings as well.
94835
94836        Test: fast/dom/htmlcollection-length-after-item.html
94837
94838        * html/HTMLCollection.cpp:
94839        (WebCore::HTMLCollection::length):
94840        (WebCore::HTMLCollection::itemBeforeOrAfterCachedItem):
94841
948422012-07-18  Yoshifumi Inoue  <yosin@chromium.org>
94843
94844        Decimal::toString should not round integer value.
94845        https://bugs.webkit.org/show_bug.cgi?id=91481
94846
94847        Reviewed by Kent Tamura.
94848
94849        This patch makes Decimal::toString not to round an integer value
94850        before converting string.
94851
94852        Tests: WebKit/chromium/tests/DecimalTest.cpp: DecimalTest.toString
94853
94854        * platform/Decimal.cpp:
94855        (WebCore::Decimal::toString): When the value is an integer, we don't
94856        round coefficient to be DBL_DIG(15) digits because double can
94857        represent an integer without rounding error.
94858
948592012-07-18  Luke Macpherson   <macpherson@chromium.org>
94860
94861        Fix null pointer dereference introduced by Changeset 121874.
94862        https://bugs.webkit.org/show_bug.cgi?id=91578
94863
94864        Reviewed by Pavel Feldman.
94865
94866        In http://trac.webkit.org/changeset/121874/trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp I introduced code that
94867        dereferences the return value of ownerDocument() without doing a null check. This was a bad idea.
94868
94869        No new tests. I don't have a repro case, but it is clear from reading the code for ownerDocument() that it can return null.
94870
94871        * inspector/InspectorStyleSheet.cpp:
94872        (WebCore::InspectorStyleSheet::ensureSourceData):
94873
948742012-07-17  Yoshifumi Inoue  <yosin@chromium.org>
94875
94876        Decimal constructor with 99999999999999999 loses last digit
94877        https://bugs.webkit.org/show_bug.cgi?id=91579
94878
94879        Reviewed by Kent Tamura.
94880
94881        This patch changes maximum coefficient value handling in Decimal::EncodedData
94882        constructor not to lose the last digit. It was used ">=" operator for
94883        comparison instead of ">" operator.
94884
94885        Tests: WebKit/chromium/tests/DecimalTest.cpp
94886
94887        * platform/Decimal.cpp:
94888        (WebCore::Decimal::EncodedData::EncodedData): Replace ">=" to ">" for
94889        not getting rid of the last digit for maximum coefficient value.
94890
948912012-07-17  Ilya Tikhonovsky  <loislo@chromium.org>
94892
94893        Unreviewed Web Inspector: followup fix for r122920.
94894
94895        Add collected Loaders size to InspectorMemoryBlock
94896
94897        * inspector/InspectorMemoryAgent.cpp:
94898        (MemoryBlockName):
94899        (WebCore):
94900
949012012-07-17  Ilya Tikhonovsky  <loislo@chromium.org>
94902
94903        Web Inspector: show loaders memory consumption on the memory chart.
94904        https://bugs.webkit.org/show_bug.cgi?id=90686
94905
94906        Reviewed by Pavel Feldman.
94907
94908        Size of FrameLoader, DocumentLoader, ResourceLoader and their resources should be shown on the memory pie chart.
94909
94910        It is covered by existing WebInspector performance tests infrastructure.
94911
94912        * WebCore.exp.in:
94913        * dom/MemoryInstrumentation.h:
94914        (MemoryInstrumentation):
94915        (WebCore::MemoryInstrumentation::addRawBuffer):
94916        (WebCore::MemoryInstrumentation::addInstrumentedMemberImpl):
94917        (WebCore):
94918        (WebCore::MemoryClassInfo::addInstrumentedHashSet):
94919        (WebCore::MemoryClassInfo::addRawBuffer):
94920        (WebCore::MemoryInstrumentation::addInstrumentedHashSet):
94921        (WebCore::MemoryInstrumentation::addVector):
94922        * inspector/InspectorMemoryAgent.cpp:
94923        (WebCore):
94924        (WebCore::domTreeInfo):
94925        * loader/DocumentLoader.cpp:
94926        (WebCore::DocumentLoader::reportMemoryUsage):
94927        (WebCore):
94928        * loader/DocumentLoader.h:
94929        (WebCore):
94930        (DocumentLoader):
94931        * loader/FrameLoader.cpp:
94932        (WebCore::FrameLoader::reportMemoryUsage):
94933        (WebCore):
94934        * loader/FrameLoader.h:
94935        (WebCore):
94936        (FrameLoader):
94937        * loader/ResourceLoader.cpp:
94938        (WebCore::ResourceLoader::reportMemoryUsage):
94939        (WebCore):
94940        * loader/ResourceLoader.h:
94941        (WebCore):
94942        (ResourceLoader):
94943        * page/Frame.cpp:
94944        (WebCore::Frame::reportMemoryUsage):
94945        (WebCore):
94946        * page/Frame.h:
94947        (WebCore):
94948        (Frame):
94949        * platform/SharedBuffer.cpp:
94950        (WebCore::SharedBuffer::reportMemoryUsage):
94951        (WebCore):
94952        * platform/SharedBuffer.h:
94953        (WebCore):
94954        (SharedBuffer):
94955
949562012-07-17  Kent Tamura  <tkent@chromium.org>
94957
94958        Fix an assertion failure in CalendarPickerElement::hostInput().
94959        https://bugs.webkit.org/show_bug.cgi?id=91568
94960
94961        Reviewed by Hajime Morita.
94962
94963        Test: fast/forms/date/calendar-picker-type-change-onclick.html
94964
94965        * html/shadow/CalendarPickerElement.cpp:
94966        (WebCore::CalendarPickerElement::defaultEventHandler):
94967        It's possible that this function is called when the element is detached
94968        from the document tree.
94969
949702012-07-17  Kent Tamura  <tkent@chromium.org>
94971
94972        Form state: Make a new class handling HashMap<FormElementKey, Deque<>>
94973        https://bugs.webkit.org/show_bug.cgi?id=91480
94974
94975        Reviewed by Hajime Morita.
94976
94977        This is a preparation of Bug 91209, "Form state restore: Need to
94978        identify a from by its content."
94979
94980        Make a new class which is responsible to handle "HashMap<FormElementKey,
94981        Deque<FormControlState>, FormElementKeyHash, FormElementKeyHashTraits>."
94982        Also, move the FormElementKey class declaration and related structs from
94983        FormController.h to FormController.cpp because FormElementKey is used
94984        only in FormController.cpp.
94985
94986        No new tests. Just a refactoring.
94987
94988        * html/FormController.cpp:
94989        (WebCore::FormElementKey): Moeved from FormController.h.
94990        (WebCore::FormElementKey::FormElementKey):
94991        Moved from the bottom of FormController.cpp
94992        (WebCore::FormElementKey::~FormElementKey): ditto.
94993        (WebCore::FormElementKey::operator=): ditto.
94994        (WebCore::FormElementKey::ref): ditto.
94995        (WebCore::FormElementKey::deref): ditto.
94996        (WebCore::operator==): Moved from FormController.h
94997        (FormElementKeyHash): ditto.
94998        (WebCore::FormElementKeyHash::equal): ditto.
94999        (WebCore::FormElementKeyHash::hash):
95000        Moved from the bottom of FormController.cpp
95001        (WebCore::FormElementKeyHashTraits::constructDeletedValue):
95002        Moved from FormController.h
95003        (WebCore::FormElementKeyHashTraits::isDeletedValue): ditto.
95004
95005        (WebCore::SavedFormState): Added.
95006        (WebCore::SavedFormState::isEmpty):
95007        (WebCore::SavedFormState::SavedFormState): Added. The constructor.
95008        (WebCore::SavedFormState::create): Added. A factory function.
95009        (WebCore::SavedFormState::appendControlState):
95010        Moved some code from FormController::setStateForNewFormElements.
95011        (WebCore::SavedFormState::takeControlState):
95012        Moved some code from FormController::takeStateForFormElement.
95013
95014        (WebCore::FormController::setStateForNewFormElements):
95015        - Creates SavedFormState if needed.
95016        - Uses SavedFormState::appendControlState.
95017        (WebCore::FormController::takeStateForFormElement):
95018        Uses SavedFormState.
95019        * html/FormController.h:
95020        (FormController):
95021
950222012-07-17  MORITA Hajime <morrita@google.com>
95023
95024        [Shadow DOM] Some distribution invalidation can drop necessary reattachment.
95025        https://bugs.webkit.org/show_bug.cgi?id=88843
95026
95027        Reviewed by Dimitri Glazkov.
95028
95029        Following scenario caused this problem:
95030
95031        - Inserting a Text node as a shadow child triggers invalidateDistribution(),
95032          which doen't reattach the shadow's host element.
95033        - Then inserting a <content> element after that triggers another invalidateDistribution(),
95034          which should reattach its host because <content> can affect not only distribution of new nodes,
95035          but also existing distribution.
95036        - Since the first invalidateDistribution() has marked the distribution as invalidated,
95037          the second invalidateDistribution() call returns early without any reattachment,
95038          even though it needs one.
95039
95040        This change adds InvalidationType parameter to invalidateDistribution(), which asks ElementShadow to
95041        reattach the host regardless of its validity state. InsertionPoint::insertedInto() uses
95042        this flag to ensure that its insertion always results a reattachment.
95043
95044        Test: fast/dom/shadow/content-after-style.html
95045
95046        * dom/ElementShadow.cpp:
95047        (WebCore::ElementShadow::addShadowRoot): Passes InvalidationType.
95048        (WebCore::ElementShadow::removeAllShadowRoots): Passes InvalidationType.
95049        (WebCore::ElementShadow::invalidateDistribution): Added a InvalidationType parameter.
95050        * dom/ElementShadow.h:
95051        * html/shadow/InsertionPoint.cpp:
95052        (WebCore::InsertionPoint::insertedInto): Passes InvalidationType.
95053
950542012-07-17  Jon Lee  <jonlee@apple.com>
95055
95056        Teach CodeGenerator to support for static, readonly, attributes
95057        https://bugs.webkit.org/show_bug.cgi?id=88920
95058        <rdar://problem/11650330>
95059
95060        Reviewed by Oliver Hunt.
95061
95062        Update the parser to be able to accept the static keyword for attribute. We will treat static attributes
95063        like custom static functions. They call the implementing class directly, and pass in the ExecState as a script context.
95064
95065        * bindings/scripts/CodeGeneratorJS.pm:
95066        (GetAttributeGetterName): Factor out the construction of the attribute getter function name.
95067        (GetAttributeSetterName): Factor out the construction of the attribute setter function name.
95068        (GenerateHeader): Determine that a class has read-write properties only if there is a read-write attribute that
95069        is not static.
95070        (GenerateAttributesHashTable): Skip static attributes in the object hash table. They will be added to the constructor
95071        hash table.
95072        (GenerateImplementation): Look for static attributes to add to the constructor hash table. Make a call to the static
95073        function in the class.
95074        * bindings/scripts/IDLParser.pm:
95075        (ParseInterface): Update the processing because of the regex change.
95076        * bindings/scripts/IDLStructure.pm: Update the attribute regex.
95077        * bindings/scripts/test/JS/JSTestObj.cpp: Update test results.
95078        * bindings/scripts/test/JS/JSTestObj.h: Update test results.
95079        * bindings/scripts/test/TestObj.idl: Add test cases.
95080
950812012-07-17  Kenichi Ishibashi  <bashi@chromium.org>
95082
95083        [Chromium] Rename HarfBuzzFace to HarfBuzzNGFace
95084        https://bugs.webkit.org/show_bug.cgi?id=91458
95085
95086        Reviewed by Tony Chang.
95087
95088        There are HarfbuzzFace class (for old-harfbuzz) and HarfBuzzFace (for harfbuzz-ng) class. The difference is too subtle. Make them more distinct.
95089
95090        No new tests. No changes in behavior.
95091
95092        * WebCore.gyp/WebCore.gyp: Rename HarfBuzzFace to HarfBuzzNGFace.
95093        * WebCore.gypi: Ditto.
95094        * platform/graphics/FontPlatformData.h: Ditto.
95095        (FontPlatformData):
95096        * platform/graphics/cocoa/FontPlatformDataCocoa.mm: Ditto.
95097        (WebCore::FontPlatformData::harfbuzzFace):
95098        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Ditto.
95099        (WebCore::FontPlatformData::harfbuzzFace):
95100        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Ditto.
95101        (FontPlatformData):
95102        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp.
95103        (WebCore):
95104        (WebCore::floatToHarfBuzzPosition):
95105        (WebCore::getGlyph):
95106        (WebCore::getGlyphHorizontalAdvance):
95107        (WebCore::getGlyphHorizontalOrigin):
95108        (WebCore::getGlyphExtents):
95109        (WebCore::harfbuzzCoreTextGetFontFuncs):
95110        (WebCore::releaseTableData):
95111        (WebCore::harfbuzzCoreTextGetTable):
95112        (WebCore::HarfBuzzNGFace::createFace):
95113        (WebCore::HarfBuzzNGFace::createFont):
95114        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
95115        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFaceSkia.cpp.
95116        (WebCore):
95117        (WebCore::SkiaScalarToHarfbuzzPosition):
95118        (WebCore::SkiaGetGlyphWidthAndExtents):
95119        (WebCore::harfbuzzGetGlyph):
95120        (WebCore::harfbuzzGetGlyphHorizontalAdvance):
95121        (WebCore::harfbuzzGetGlyphHorizontalOrigin):
95122        (WebCore::harfbuzzGetGlyphExtents):
95123        (WebCore::harfbuzzSkiaGetFontFuncs):
95124        (WebCore::harfbuzzSkiaGetTable):
95125        (WebCore::destroyPaint):
95126        (WebCore::HarfBuzzNGFace::createFace):
95127        (WebCore::HarfBuzzNGFace::createFont):
95128        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
95129        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp.
95130        (WebCore):
95131        (WebCore::harfbuzzFaceCache):
95132        (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
95133        (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
95134        * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFace.h.
95135        (WebCore):
95136        (HarfBuzzNGFace):
95137        (WebCore::HarfBuzzNGFace::create):
95138        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
95139        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
95140
951412012-07-17  Kinuko Yasuda  <kinuko@chromium.org>
95142
95143        Record metrics to measure the usage of Blob([ArrayBuffer]) to eventually deprecate it
95144        https://bugs.webkit.org/show_bug.cgi?id=90534
95145
95146        Reviewed by Jian Li.
95147
95148        We are removing ArrayBuffer support in Blob constructor (in favor of
95149        ArrayBufferView) but before doing that we should record its use relative to ArrayBufferView.
95150        http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
95151
95152        No new tests as this has no functional changes.
95153
95154        * fileapi/WebKitBlobBuilder.cpp:
95155        (WebCore::WebKitBlobBuilder::append):
95156
951572012-07-17  Joshua Bell  <jsbell@chromium.org>
95158
95159        IndexedDB: Key generator state not maintained across connections
95160        https://bugs.webkit.org/show_bug.cgi?id=91456
95161
95162        Reviewed by Tony Chang.
95163
95164        Explicitly store key generator state for each object store in the backing store,
95165        rather than deriving it from the maximum key in the data (which violates the spec
95166        if data is deleted).
95167
95168        This change eliminates a (fragile) per-store cache of the value to simplify the
95169        code. A cache could be re-introduced, requiring an "onbeforecommit" hook for
95170        object stores, but it seems cleaner to save that for a follow-up patch.
95171
95172        Test: storage/indexeddb/key-generator.html
95173
95174        * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states.
95175        (IDBBackingStore):
95176        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
95177        (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored).
95178        (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state.
95179        (WebCore):
95180        (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
95181        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally
95182        checking to see if the new value is greater than the old. (If caller got the value via
95183        getKeyGeneratorCurrentNumber it is safe to skip the check.)
95184        * Modules/indexeddb/IDBLevelDBBackingStore.h:
95185        (IDBLevelDBBackingStore):
95186        * Modules/indexeddb/IDBLevelDBCoding.cpp:
95187        * Modules/indexeddb/IDBLevelDBCoding.h:
95188        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
95189        (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache.
95190        (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task.
95191        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto.
95192        (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below.
95193        (WebCore::IDBObjectStoreBackendImpl::generateKey):
95194        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
95195        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
95196        (IDBObjectStoreBackendImpl):
95197
951982012-07-17  Joshua Bell  <jsbell@chromium.org>
95199
95200        IndexedDB: Key generator state not maintained across connections
95201        https://bugs.webkit.org/show_bug.cgi?id=91456
95202
95203        Reviewed by Tony Chang.
95204
95205        Explicitly store key generator state for each object store in the backing store,
95206        rather than deriving it from the maximum key in the data (which violates the spec
95207        if data is deleted).
95208
95209        This change eliminates a (fragile) per-store cache of the value to simplify the
95210        code. A cache could be re-introduced, requiring an "onbeforecommit" hook for
95211        object stores, but it seems cleaner to save that for a follow-up patch.
95212
95213        Test: storage/indexeddb/key-generator.html
95214
95215        * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states.
95216        (IDBBackingStore):
95217        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
95218        (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored).
95219        (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state.
95220        (WebCore):
95221        (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
95222        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally
95223        checking to see if the new value is greater than the old. (If caller got the value via
95224        getKeyGeneratorCurrentNumber it is safe to skip the check.)
95225        * Modules/indexeddb/IDBLevelDBBackingStore.h:
95226        (IDBLevelDBBackingStore):
95227        * Modules/indexeddb/IDBLevelDBCoding.cpp:
95228        * Modules/indexeddb/IDBLevelDBCoding.h:
95229        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
95230        (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache.
95231        (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task.
95232        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto.
95233        (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below.
95234        (WebCore::IDBObjectStoreBackendImpl::generateKey):
95235        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
95236        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
95237        (IDBObjectStoreBackendImpl):
95238
952392012-07-17  Alec Flett  <alecflett@chromium.org>
95240
95241        IndexedDB: createIndex should throw INVALID_ACCESS_ERR instead of NOT_SUPPORTED_ERR
95242        https://bugs.webkit.org/show_bug.cgi?id=91553
95243
95244        Reviewed by Tony Chang.
95245
95246        Update createIndex to throw an INVALID_ACCESS_ERR
95247        as per the IndexedDB spec.
95248
95249        No new tests: existing tests have been updated
95250
95251        * Modules/indexeddb/IDBDatabaseException.cpp:
95252        (WebCore):
95253        * Modules/indexeddb/IDBDatabaseException.h:
95254        * Modules/indexeddb/IDBObjectStore.cpp:
95255        (WebCore::IDBObjectStore::createIndex):
95256
952572012-07-17  Adam Barth  <abarth@webkit.org>
95258
95259        DragImageChromiumMac.cpp is never compiled and can be removed
95260        https://bugs.webkit.org/show_bug.cgi?id=91545
95261
95262        Reviewed by Tony Chang.
95263
95264        This file would only be compiled on chromium-mac, but it's excluded
95265        from that build. This is likely left over from the CG configuration.
95266
95267        * WebCore.gyp/WebCore.gyp:
95268        * WebCore.gypi:
95269        * platform/chromium/DragImageChromiumMac.cpp: Removed.
95270
952712012-07-17  Roger Fong  <roger_fong@apple.com>
95272
95273        Assertion failure/crash on Windows when using a font in an SVG 
95274        element with an unresaonbly large font size
95275        https://bugs.webkit.org/show_bug.cgi?id=91273
95276        Radar: <rdar://problem/8355401>
95277
95278        Reviewed by Tim Horton.
95279
95280        When using a font in an SVG element with an unreasonably large 
95281        font size in Windows, WebKit crashes. The problem has to do with 
95282        font sizes overflowing into negative values in the Windows specific code.
95283        The fix is to cap the font sizes to something reasonable when the font style is getting processed. 
95284        The fix will apply to both CSS and SVG so that behaviour is consistent.
95285
95286        Test: svg/text/font-size-too-large-crash.svg
95287
95288        * css/StyleBuilder.cpp:
95289        (WebCore::ApplyPropertyFontSize::applyValue):
95290        This is where the font size capping now occurs. Caps size to 1000000.
95291        Both CSS and SVG reach the font size capping code here.
95292        
95293        * css/StyleResolver.cpp:
95294        (WebCore::StyleResolver::collectMatchingRulesForList):
95295        Capping here removed, moved to StyleBuilder.cpp.
95296
952972012-07-17  David Barr  <davidbarr@chromium.org>
95298
95299        Add parsing and style application for css3-images image-orientation
95300        https://bugs.webkit.org/show_bug.cgi?id=89624
95301
95302        Reviewed by Tony Chang.
95303
95304        The css3-images module is at candidate recommendation.
95305        http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation
95306
95307        Test: fast/css/image-orientation/image-orientation.html
95308
95309        * css/CSSComputedStyleDeclaration.cpp: Add computed style for image-orientation.
95310        (WebCore): Add CSSPropertyImageOrientation to computedProperties.
95311        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Map CSSPropertyImageOrientation using cast operator from PrimitiveValueMappings.
95312        * css/CSSParser.cpp: Add parsing rule for image-orientation.
95313        (WebCore::CSSParser::parseValue): Parse the value of CSSPropertyImageOrientation as an angle.
95314        * css/CSSPrimitiveValueMappings.h: Add mappings between CSSPrimitiveValue and ImageOrientationEnum.
95315        (WebCore): Add conditional include for ImageOrientation.h.
95316        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Map the natural orientations to angles.
95317        (WebCore::CSSPrimitiveValue::operator ImageOrientationEnum): Round angles away from zero to quarter turns and map to the natural orientations.
95318        * css/CSSProperty.cpp: Add CSSPropertyImageOrientation.
95319        (WebCore::CSSProperty::isInheritedProperty): Map CSSPropertyImageOrientation inherited.
95320        * css/CSSPropertyNames.in: Add image-orientation.
95321        * css/StyleBuilder.cpp: Add style application logic for CSSPropertyImageOrientation.
95322        (WebCore::StyleBuilder::StyleBuilder): Map CSSPropertyImageOrientation to RenderStyle::imageOrientation with type ImageOrientationEnum.
95323        * css/StyleResolver.cpp: Handle CSSPropertyImageOrientation.
95324        (WebCore::StyleResolver::applyProperty): Expect CSSPropertyImageOrientation to be handled by StyleBuilder.
95325        * rendering/style/RenderStyle.h: Add imageOrientation, setImageOrientation and initialImageOrientation.
95326        * rendering/style/StyleRareInheritedData.cpp: Add m_imageOrientation.
95327        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageOrientation to default and copy contructors.
95328        (WebCore::StyleRareInheritedData::operator==): Include m_imageOrientation in comparison.
95329        * rendering/style/StyleRareInheritedData.h: Add m_imageOrientation.
95330        (StyleRareInheritedData): Add 4-bit field m_imageOrientation, mapping to ImageOrientationEnum.
95331
953322012-07-17  Adrienne Walker  <enne@google.com>
95333
95334        REGRESSION(r122215) - RenderObject::willRenderImage crashes on null view()
95335        https://bugs.webkit.org/show_bug.cgi?id=91525
95336
95337        Reviewed by Julien Chaffraix.
95338
95339        Fix by doing an early out check.  This is intended to fix the crash in
95340        http://crbug.com/137161.
95341
95342        No new test, because unfortunately a layout test is ill-suited to
95343        reproing this kind of Document creation/destruction bug.
95344
95345        * rendering/RenderObject.cpp:
95346        (WebCore::RenderObject::willRenderImage):
95347
953482012-07-17  Emil A Eklund  <eae@chromium.org>
95349
95350        vertical-align: middle causes overflow with subpixel layout
95351        https://bugs.webkit.org/show_bug.cgi?id=91464
95352
95353        Reviewed by Eric Seidel.
95354
95355        Using vertical-align: middle in combination with an overflow value other
95356        than visible can cause the overflow height to be computed incorrectly.
95357
95358        Test: fast/sub-pixel/vertical-align-middle-overflow.html
95359
95360        * rendering/RootInlineBox.cpp:
95361        (WebCore::RootInlineBox::verticalPositionForBox):
95362        Round verticalPosition after calculation instead of flooring the result
95363        of the xHeight calculation. By flooring it the resulting value is in
95364        effect rounded up which can cause the height of the box to grow by one.
95365        By rounding the resulting value thevertical position is more accurate and
95366        the off by one error is avoided.
95367
953682012-07-17  Philip Rogers  <pdr@google.com>
95369
95370        Move zero-length-subpaths from RenderSVGShape to RenderSVGPath
95371        https://bugs.webkit.org/show_bug.cgi?id=90716
95372
95373        Reviewed by Nikolas Zimmermann.
95374
95375        Previously zero-length-subpath code was present in RenderSVGShape but it is
95376        only needed in RenderSVGPath. This patch moves the zero-length-subpath code
95377        to RenderSVGPath.
95378
95379        In this change, we gain:
95380        1) Ellipses, Circles, and Rects will no longer carry an empty Vector nor
95381           checks for zero-length subpaths which (per the spec) they cannot have.
95382        2) RenderSVGShape, the superclass of all shape rendering, has been
95383           drastically simplified by removing 70 lines of code that only applies
95384           to Path rendering. This generally aids in code understandability.
95385
95386        The patch is primarily a straightforward code move but useStrokeStyleToFill
95387        needs further explanation:
95388        Zero-length-subpaths are drawn using rectangular and circular paths which
95389        are filled.
95390        Previously in RenderSVGShape::fillAndStrokePath, strokePath was called for
95391        the main path with ApplyToStrokeMode and then strokePath was called for
95392        each zero-length-subpath with ApplyToFillMode.
95393        ApplyToFillMode had the effect of setting the context's stroke style to
95394        the fill style so zero-length-subpaths were "filled" with the stroke style.
95395        After this patch, the context is only setup once (which is faster!) using
95396        ApplyToStrokeMode so we manually set the stroke style to the fill style
95397        using useStrokeStyleToFill.
95398
95399        No new tests, just a refactoring.
95400
95401        * rendering/svg/RenderSVGPath.cpp:
95402        (WebCore::RenderSVGPath::updateShapeFromElement):
95403        (WebCore):
95404        (WebCore::RenderSVGPath::calculateUpdatedStrokeBoundingBox):
95405        (WebCore::useStrokeStyleToFill):
95406        (WebCore::RenderSVGPath::strokeShape):
95407        (WebCore::RenderSVGPath::shapeDependentStrokeContains):
95408        (WebCore::RenderSVGPath::shouldStrokeZeroLengthSubpath):
95409        (WebCore::RenderSVGPath::zeroLengthLinecapPath):
95410        (WebCore::RenderSVGPath::zeroLengthSubpathRect):
95411        (WebCore::RenderSVGPath::updateZeroLengthSubpaths):
95412        * rendering/svg/RenderSVGPath.h:
95413        (RenderSVGPath):
95414        * rendering/svg/RenderSVGShape.cpp:
95415        (WebCore::RenderSVGShape::updateShapeFromElement):
95416        (WebCore::RenderSVGShape::strokeShape):
95417        (WebCore::RenderSVGShape::strokeContains):
95418        (WebCore):
95419        (WebCore::RenderSVGShape::fillShape):
95420        (WebCore::RenderSVGShape::fillAndStrokeShape):
95421        (WebCore::RenderSVGShape::paint):
95422        (WebCore::RenderSVGShape::calculateStrokeBoundingBox):
95423        * rendering/svg/RenderSVGShape.h:
95424        (WebCore::RenderSVGShape::hasPath):
95425        (WebCore::RenderSVGShape::hasNonScalingStroke):
95426        (RenderSVGShape):
95427        (WebCore::RenderSVGShape::strokeBoundingBox):
95428
954292012-07-17  Ryosuke Niwa  <rniwa@webkit.org>
95430
95431        invalidateNodeListCachesInAncestors walks up ancestors even when an attribute that doesn't invalidate node lists changes
95432        https://bugs.webkit.org/show_bug.cgi?id=91530
95433
95434        Reviewed by Ojan Vafai.
95435
95436        The bug was caused by invalidateNodeListCachesInAncestors not calling Document::shouldInvalidateNodeListCaches with
95437        attrName. Done that.
95438        
95439        This chance revealed a bug in shouldInvalidateTypeOnAttributeChange that we weren't checking form attribute changes for
95440        RadioNodeList and HTMLCollection, so fixed the bug.
95441
95442        Also renamed Document::clearNodeListCaches to invalidateNodeListCaches to match the name convention used elsewhere,
95443        and added a new version of DynamicNodeListCacheBase::invalidateCache that takes attrName to reduce the code duplication.
95444
95445        Test: fast/forms/elements-invalidate-on-form-attribute-invalidation.html
95446
95447        * dom/Document.cpp:
95448        (WebCore::Document::invalidateNodeListCaches):
95449        * dom/Document.h:
95450        (Document):
95451        * dom/DynamicNodeList.h:
95452        (WebCore::DynamicNodeListCacheBase::invalidateCache):
95453        (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange):
95454        * dom/Node.cpp:
95455        (WebCore::Node::invalidateNodeListCachesInAncestors):
95456        (WebCore::NodeListsNodeData::invalidateCaches):
95457
954582012-07-17  Max Vujovic  <mvujovic@adobe.com>
95459
95460        Update ANGLE in WebKit
95461        https://bugs.webkit.org/show_bug.cgi?id=89039
95462
95463        Reviewed by Dean Jackson and Mark Rowe.
95464
95465        Update ANGLE to r1170, with the following modifications:
95466
95467        (1) Use Bison 2.3 instead of Bison 2.4.2 to generate ExpressionParser.cpp and
95468        glslang_tab.cpp. I had to modify ExpressionParser.y to make it compatible with Bison
95469        2.3. The changes have been contributed back to ANGLE in r1224.
95470
95471        (2) Continue to recognize QNX as POSIX in ANGLE. This has been contributed back to ANGLE
95472        in r1223.
95473
95474        (3) Rename ANGLE/src/compiler/preprocessor/new/Diagnostic.cpp to DiagnosticBase.cpp.
95475        Rename ANGLE/src/compiler/preprocessor/new/DirectiveHandler.cpp to DirectiveHandlerBase.cpp.
95476
95477        With the introduction of ANGLE's new preprocessor, there were two files named Diagnostic.cpp
95478        in ANGLE under different folders. This caused problems on the QT build when their object
95479        files, both named Diagnostic.o, tried to go in the same folder. Renaming one of them to
95480        DiagnosticBase.cpp avoids this conflict. The same situation occurred with
95481        DirectiveHandler.cpp. I will work on contributing this change back to ANGLE for future
95482        updates.
95483
95484        (4) Add the following lines to glslang.y and ExpressionParser.y:
95485        #define YYENABLE_NLS 0
95486        #define YYLTYPE_IS_TRIVIAL 1
95487
95488        Bison 2.3 doesn't first check that these macros are defined before reading their value,
95489        which causes the QT build to fail.
95490
95491        We work around this issue in the same way in CSSGrammar.y.
95492
95493        I will work on contributing this change back to ANGLE.
95494
95495        No new tests. No change in behavior.
95496
95497        * CMakeLists.txt:
95498        * GNUmakefile.list.am:
95499        * Target.pri:
95500
955012012-07-17  Stephen Chenney  <schenney@chromium.org>
95502
95503        Crash in SVGStopElement::stopColorIncludingOpacity
95504        https://bugs.webkit.org/show_bug.cgi?id=90814
95505
95506        Reviewed by Dirk Schulze.
95507
95508        No new tests as there should be no change in functionality.
95509
95510        * svg/SVGStopElement.cpp:
95511        (WebCore::SVGStopElement::stopColorIncludingOpacity): Added a check for null
95512        renderer and style. It is hard to see how this is happening because
95513        the code is only invoked if the parent gradient has a renderer, and it seems
95514        the stop element should always have a renderer when the parent has a renderer.
95515        Still, it obviously can happen and does so frequently enough to generate multiple
95516        Chromium crash reports per day. The fix is marked with a FIXME, as we expect to
95517        remove this code entirely soon.
95518
955192012-07-17  Emil A Eklund  <eae@chromium.org>
95520
95521        Incorrect offset used for scrollWidth/Height calculation
95522        https://bugs.webkit.org/show_bug.cgi?id=91461
95523
95524        Reviewed by Eric Seidel.
95525
95526        Due to a different offset being used to calculate the scrollWidth/Height
95527        and pixelSnappedClientWidth/Height the scroll value can be off by one in
95528        same cases. This can causes scrollbars to appear even when there is no
95529        overflow.
95530
95531        Test: fast/sub-pixel/block-with-margin-overflow.html
95532
95533        * rendering/RenderBox.cpp:
95534        (WebCore::RenderBox::scrollWidth):
95535        Change location offset passed to snapSizeToPixel to include x() to match
95536        offset used by pixelSnappedClientWidth.
95537        
95538        (WebCore::RenderBox::scrollHeight):
95539        Change location offset passed to snapSizeToPixel to include y() to match
95540        offset used by pixelSnappedClientHeight.
95541
95542        * rendering/RenderLayer.cpp:
95543        (WebCore::RenderLayer::clampScrollOffset):
95544        Change calculation to use pixelSnappedClientWidth/Height as it is
95545        subtracted from the pixel snapped scrollWidth/Height values.
95546        
95547        (WebCore::RenderLayer::scrollWidth):
95548        (WebCore::RenderLayer::scrollHeight):
95549        Change RenderLayer versions of scrollWidth/Height to include x()/y() as
95550        per the RenderBox versions.
95551
955522012-07-17  Hans Muller  <hmuller@adobe.com>
95553
95554        Rename CSS Exclusions CSSWrapShape class properties to match Exclusion shape function parameters
95555        https://bugs.webkit.org/show_bug.cgi?id=89669
95556
95557        Reviewed by Dirk Schulze.
95558
95559        Renamed left,top properties in the exclusion shape types to better match the specification
95560        http://dev.w3.org/csswg/css3-exclusions/#shapes-from-svg-syntax:
95561
95562        WrapShapeRectangle, CSSWrapShapeRectangle - left,top should be x, y
95563        WrapShapeCircle, CSSWrapShapeCircle - left,top should be centerX, centerY
95564        WrapShapeEllipse, CSSWrapShapeEllipse - left,top should be centerX, centerY
95565
95566        No new tests or tests revisions were needed, the existing tests cover these APIs.
95567
95568        * css/CSSParser.cpp:
95569        (WebCore::CSSParser::parseExclusionShapeRectangle):
95570        (WebCore::CSSParser::parseExclusionShapeCircle):
95571        (WebCore::CSSParser::parseExclusionShapeEllipse):
95572        * css/CSSWrapShapes.cpp:
95573        (WebCore::CSSWrapShapeRectangle::cssText):
95574        (WebCore::CSSWrapShapeCircle::cssText):
95575        (WebCore::CSSWrapShapeEllipse::cssText):
95576        * css/CSSWrapShapes.h:
95577        (WebCore::CSSWrapShapeRectangle::x):
95578        (WebCore::CSSWrapShapeRectangle::y):
95579        (WebCore::CSSWrapShapeRectangle::setX):
95580        (WebCore::CSSWrapShapeRectangle::setY):
95581        (CSSWrapShapeRectangle):
95582        (WebCore::CSSWrapShapeCircle::centerX):
95583        (WebCore::CSSWrapShapeCircle::centerY):
95584        (WebCore::CSSWrapShapeCircle::setCenterX):
95585        (WebCore::CSSWrapShapeCircle::setCenterY):
95586        (CSSWrapShapeCircle):
95587        (WebCore::CSSWrapShapeEllipse::centerX):
95588        (WebCore::CSSWrapShapeEllipse::centerY):
95589        (WebCore::CSSWrapShapeEllipse::setCenterX):
95590        (WebCore::CSSWrapShapeEllipse::setCenterY):
95591        (CSSWrapShapeEllipse):
95592        * css/WrapShapeFunctions.cpp:
95593        (WebCore::valueForWrapShape):
95594        (WebCore::wrapShapeForValue):
95595        * rendering/style/WrapShapes.h:
95596        (WebCore::WrapShapeRectangle::x):
95597        (WebCore::WrapShapeRectangle::y):
95598        (WebCore::WrapShapeRectangle::setX):
95599        (WebCore::WrapShapeRectangle::setY):
95600        (WrapShapeRectangle):
95601        (WebCore::WrapShapeCircle::centerX):
95602        (WebCore::WrapShapeCircle::centerY):
95603        (WebCore::WrapShapeCircle::setCenterX):
95604        (WebCore::WrapShapeCircle::setCenterY):
95605        (WrapShapeCircle):
95606        (WebCore::WrapShapeEllipse::centerX):
95607        (WebCore::WrapShapeEllipse::centerY):
95608        (WebCore::WrapShapeEllipse::setCenterX):
95609        (WebCore::WrapShapeEllipse::setCenterY):
95610        (WrapShapeEllipse):
95611
956122012-07-16  Pavel Feldman  <pfeldman@chromium.org>
95613
95614        Web Inspector: implement search / replace in source files (behind experiment flag)
95615        https://bugs.webkit.org/show_bug.cgi?id=91394
95616
95617        Reviewed by Vsevolod Vlasov.
95618
95619        This change adds "loop" parameter to the go to next / previous search + adds a UI component
95620        for search / replace of text in the sources panel. New UI component is behind the experiment.
95621
95622        * English.lproj/localizedStrings.js:
95623        * inspector/front-end/ConsolePanel.js:
95624        (WebInspector.ConsolePanel.prototype.performSearch):
95625        (WebInspector.ConsolePanel.prototype.jumpToNextSearchResult):
95626        (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
95627        * inspector/front-end/ElementsPanel.js:
95628        (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult):
95629        (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
95630        * inspector/front-end/ExtensionPanel.js:
95631        (WebInspector.ExtensionPanel.prototype.performSearch):
95632        (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
95633        (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
95634        * inspector/front-end/JavaScriptSourceFrame.js:
95635        (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
95636        (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
95637        * inspector/front-end/NetworkPanel.js:
95638        (WebInspector.NetworkLogView.prototype._sortItems):
95639        (WebInspector.NetworkLogView.prototype._updateFilter):
95640        (WebInspector.NetworkLogView.prototype.performSearch):
95641        (WebInspector.NetworkLogView.prototype.jumpToPreviousSearchResult):
95642        (WebInspector.NetworkLogView.prototype.jumpToNextSearchResult):
95643        (WebInspector.NetworkPanel.prototype.performSearch):
95644        * inspector/front-end/Panel.js:
95645        (WebInspector.Panel.prototype.performSearch):
95646        (WebInspector.Panel.prototype.jumpToNextSearchResult):
95647        (WebInspector.Panel.prototype.jumpToPreviousSearchResult):
95648        (WebInspector.Panel.prototype.canSearchAndReplace):
95649        (WebInspector.Panel.prototype.replaceSelectionWith):
95650        (WebInspector.Panel.prototype.replaceAllWith):
95651        * inspector/front-end/ProfilesPanel.js:
95652        (WebInspector.ProfilesPanel.prototype.jumpToNextSearchResult):
95653        (WebInspector.ProfilesPanel.prototype.jumpToPreviousSearchResult):
95654        * inspector/front-end/ResourcesPanel.js:
95655        (WebInspector.ResourcesPanel.prototype.jumpToNextSearchResult):
95656        (WebInspector.ResourcesPanel.prototype.jumpToPreviousSearchResult):
95657        * inspector/front-end/ScriptsPanel.js:
95658        (WebInspector.ScriptsPanel.prototype.performSearch.finishedCallback):
95659        (WebInspector.ScriptsPanel.prototype.performSearch):
95660        (WebInspector.ScriptsPanel.prototype.jumpToNextSearchResult):
95661        (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
95662        (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
95663        (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
95664        (WebInspector.ScriptsPanel.prototype.replaceAllWith):
95665        * inspector/front-end/SearchController.js:
95666        (WebInspector.SearchController):
95667        (WebInspector.SearchController.prototype.cancelSearch):
95668        (WebInspector.SearchController.prototype.disableSearchUntilExplicitAction):
95669        (WebInspector.SearchController.prototype.handleShortcut):
95670        (WebInspector.SearchController.prototype.activePanelChanged.performPanelSearch):
95671        (WebInspector.SearchController.prototype.activePanelChanged):
95672        (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
95673        (WebInspector.SearchController.prototype.showSearchField):
95674        (WebInspector.SearchController.prototype._onKeyDown):
95675        (WebInspector.SearchController.prototype._onInput):
95676        (WebInspector.SearchController.prototype._onNextButtonSearch):
95677        (WebInspector.SearchController.prototype._onPrevButtonSearch):
95678        (WebInspector.SearchController.prototype._performSearch):
95679        (WebInspector.SearchController.prototype._toggleReplaceVisibility):
95680        (WebInspector.SearchController.prototype._replace):
95681        (WebInspector.SearchController.prototype._replaceAll):
95682        * inspector/front-end/Settings.js:
95683        (WebInspector.ExperimentsSettings):
95684        * inspector/front-end/SourceFrame.js:
95685        (WebInspector.SourceFrame.createSearchRegex):
95686        (WebInspector.SourceFrame.prototype.beforeTextChanged):
95687        (WebInspector.SourceFrame.prototype.replaceSearchMatchWith):
95688        (WebInspector.SourceFrame.prototype.replaceAllWith):
95689        (WebInspector.TextEditorDelegateForSourceFrame.prototype.beforeTextChanged):
95690        (WebInspector.TextEditorDelegateForSourceFrame.prototype.commitEditing):
95691        * inspector/front-end/StylesPanel.js:
95692        (WebInspector.StyleSourceFrame.prototype.afterTextChanged):
95693        * inspector/front-end/TextEditor.js:
95694        (WebInspector.TextEditor.prototype._commitEditing):
95695        * inspector/front-end/TextEditorModel.js:
95696        (WebInspector.TextEditorModel.endsWithBracketRegex.):
95697        * inspector/front-end/inspector.css:
95698        (.search-replace):
95699        (.search-replace:focus):
95700        (.toolbar-search-navigation-controls):
95701        (.toolbar-search-navigation.enabled):
95702        (.toolbar-search):
95703        (.toolbar-search input[type="checkbox"]):
95704        (.toolbar-search button):
95705        (.toolbar-search button:active):
95706        (.toolbar-search-control):
95707        (.toolbar-replace-control):
95708        (.toolbar-search-navigation.enabled:active):
95709        (.toolbar-search-navigation.toolbar-search-navigation-prev):
95710        (.toolbar-search-navigation.toolbar-search-navigation-prev.enabled:active):
95711        (.toolbar-search-navigation.toolbar-search-navigation-next):
95712        (.toolbar-search-navigation.toolbar-search-navigation-next.enabled:active):
95713        (.drawer-header-close-button):
95714        (.inspector-footer):
95715
957162012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
95717
95718        [Qt][V8] Remove the V8 related codepaths and configuration
95719        https://bugs.webkit.org/show_bug.cgi?id=90863
95720
95721        Reviewed by Simon Hausmann.
95722
95723        No new tests because no new functionality.
95724
95725        * DerivedSources.pri:
95726        * Target.pri:
95727        * WebCore.gypi:
95728        * WebCore.pri:
95729        * bindings/v8/ScriptCachedFrameData.cpp:
95730        * bindings/v8/ScriptCachedFrameData.h:
95731        * bindings/v8/ScriptController.cpp:
95732        * bindings/v8/ScriptController.h:
95733        (ScriptController):
95734        * bindings/v8/ScriptControllerQt.cpp: Removed.
95735        * bindings/v8/V8GCController.cpp:
95736        (WebCore::V8GCController::checkMemoryUsage):
95737        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
95738        (WebCore::histogramEnumeration):
95739        (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
95740        (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
95741        (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
95742        * config.h:
95743
957442012-07-17  Zoltan Horvath  <zoltan@webkit.org>
95745
95746        [QT] REGRESSION (r122720): svg/filters/feSpecularLight-premultiplied.svg
95747        https://bugs.webkit.org/show_bug.cgi?id=91390
95748
95749        Reviewed by Zoltan Herczeg.
95750
95751        Fix the regression by using the proper imagetype conversion in ImageBuffer::platformTransformColorSpace.
95752
95753        The test is unskipped.
95754
95755        * platform/graphics/qt/ImageBufferQt.cpp:
95756        (WebCore::ImageBuffer::platformTransformColorSpace):
95757
957582012-07-17  Vivek Galatage  <vivekgalatage@gmail.com>
95759
95760        Web Inspector: refactor InspectorController::connectFrontend() to accept InspectorFrontendChannel.
95761        https://bugs.webkit.org/show_bug.cgi?id=91196
95762
95763        Reviewed by Pavel Feldman.
95764
95765        Refactoring InspectorClients. InspectorClient::openInspectorFrontend
95766        now returning the InspectorFrontendChannel. Also refactored
95767        InspectorController::connectFrontend() to receive
95768        InspectorFrontendChannel.
95769
95770        No new test as code refactoring done.
95771
95772        * inspector/InspectorClient.h:
95773        (WebCore):
95774        (InspectorClient):
95775        * inspector/InspectorController.cpp:
95776        (WebCore::InspectorController::InspectorController):
95777        (WebCore::InspectorController::connectFrontend):
95778        (WebCore::InspectorController::show):
95779        (WebCore::InspectorController::reconnectFrontend):
95780        * inspector/InspectorController.h:
95781        (WebCore):
95782        (InspectorController):
95783        * loader/EmptyClients.h:
95784        (WebCore::EmptyInspectorClient::openInspectorFrontend):
95785        (WebCore::EmptyInspectorClient::hideHighlight):
95786
957872012-07-17  Sheriff Bot  <webkit.review.bot@gmail.com>
95788
95789        Unreviewed, rolling out r122834.
95790        http://trac.webkit.org/changeset/122834
95791        https://bugs.webkit.org/show_bug.cgi?id=91492
95792
95793        it broke the chromium (Requested by kkristof on #webkit).
95794
95795        * DerivedSources.pri:
95796        * Target.pri:
95797        * WebCore.pri:
95798        * bindings/v8/ScriptCachedFrameData.cpp:
95799        (WebCore):
95800        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
95801        (WebCore::ScriptCachedFrameData::domWindow):
95802        (WebCore::ScriptCachedFrameData::restore):
95803        (WebCore::ScriptCachedFrameData::clear):
95804        * bindings/v8/ScriptCachedFrameData.h:
95805        (WebCore):
95806        (ScriptCachedFrameData):
95807        (WebCore::ScriptCachedFrameData::~ScriptCachedFrameData):
95808        * bindings/v8/ScriptController.cpp:
95809        * bindings/v8/ScriptController.h:
95810        (ScriptController):
95811        * bindings/v8/ScriptControllerQt.cpp: Copied from Source/WebCore/bindings/v8/ScriptCachedFrameData.cpp.
95812        (WebCore):
95813        (WebCore::ScriptController::qtScriptEngine):
95814        * bindings/v8/V8GCController.cpp:
95815        (WebCore::V8GCController::checkMemoryUsage):
95816        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
95817        (WebCore):
95818        (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
95819        (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
95820        (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
95821        * config.h:
95822
958232012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
95824
95825        [Qt][V8] Remove the V8 related codepaths and configuration
95826        https://bugs.webkit.org/show_bug.cgi?id=90863
95827
95828        Reviewed by Simon Hausmann.
95829
95830        No new tests, because there is no new functionality.
95831
95832        * DerivedSources.pri:
95833        * Target.pri:
95834        * WebCore.pri:
95835        * bindings/v8/ScriptCachedFrameData.cpp:
95836        * bindings/v8/ScriptCachedFrameData.h:
95837        * bindings/v8/ScriptController.cpp:
95838        * bindings/v8/ScriptController.h:
95839        (ScriptController):
95840        * bindings/v8/ScriptControllerQt.cpp: Removed.
95841        * bindings/v8/V8GCController.cpp:
95842        (WebCore::V8GCController::checkMemoryUsage):
95843        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
95844        (WebCore::histogramEnumeration):
95845        (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
95846        (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
95847        (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
95848        * config.h:
95849
958502012-07-17  Kwang Yul Seo  <skyul@company100.net>
95851
95852        "in body" insertion mode, "any other end tag" step 2.1 is updated
95853        https://bugs.webkit.org/show_bug.cgi?id=91473
95854
95855        Reviewed by Eric Seidel.
95856
95857        The HTML5 spec is updated to change the 'end tag' processing to not imply
95858        its own end tag, since that makes no sense. Step 2.1 now says
95859        "Generate implied end tags, except for elements with the same tag name as the token."
95860        Modified to follow the updated spec. Also removed the first FIXME because now
95861        ElementRecord can't be deleted by the preceeding call.
95862
95863        This patch does not actually change the behavior because of the previous
95864        check (aborts if generateImpliedEndTags has already popped the node for the token),
95865        so no new tests.
95866
95867        * html/parser/HTMLTreeBuilder.cpp:
95868        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
95869
958702012-07-17  Shinya Kawanaka  <shinyak@chromium.org> 
95871
95872        [Regression] Infinite loop in document.elementFromPoint
95873        https://bugs.webkit.org/show_bug.cgi?id=90820
95874
95875        Reviewed by Nikolas Zimmermann.
95876
95877        Node::shadowAncestorNode returns the caller node itself for SVGElement. However,
95878        since we have already implemented event retargeting algorithm in Shadow DOM, we don't have to
95879        take a special care of SVGElement for Node.shadowAncestorNode() now.
95880
95881        This patch will removes the special care code and fixes infinite loop in document.elementFromPoint().
95882
95883        Test: svg/hittest/svg-use-element-from-point.html
95884
95885        * dom/Node.cpp:
95886        (WebCore::Node::shadowAncestorNode):
95887
958882012-07-17  Shinya Kawanaka  <shinyak@chromium.org>
95889
95890        Shadow DOM for img element
95891        https://bugs.webkit.org/show_bug.cgi?id=90532
95892
95893        Reviewed by Hajime Morita.
95894
95895        This patch adds Shadow DOM support for img element.
95896
95897        According to the Shadow DOM spec, img element should behave like having a user agent Shadow DOM.
95898        However, if we add Shadow DOM to img by default, it will cause performance regression and memory bloat.
95899
95900        So, we would like to postpone adding a Shadow DOM to img until when we really need it. In other words,
95901        we add our User Agent Shadow DOM to img just before a user adds Author Shadow DOM.
95902
95903        The User Agent Shadow DOM for img has only one element, which displays an image. If img has
95904        a Shadow DOM, img will behave like <span style="display: inline-block"> by default. The display style can
95905        be chagned using CSS though.
95906
95907        This patch also adds ImageLoaderClient. The element we render an image and the element we take an argument
95908        from were the same, however not they might be different. We would like to encapsulate the fact into
95909        ImageLoaderClient.
95910
95911        Tests: fast/dom/shadow/shadowdom-for-image-alt-update.html
95912               fast/dom/shadow/shadowdom-for-image-alt.html
95913               fast/dom/shadow/shadowdom-for-image-content.html
95914               fast/dom/shadow/shadowdom-for-image-dynamic.html
95915               fast/dom/shadow/shadowdom-for-image-event-click.html
95916               fast/dom/shadow/shadowdom-for-image-in-shadowdom.html
95917               fast/dom/shadow/shadowdom-for-image-map.html
95918               fast/dom/shadow/shadowdom-for-image-style.html
95919               fast/dom/shadow/shadowdom-for-image-with-multiple-shadow.html
95920               fast/dom/shadow/shadowdom-for-image-with-width-and-height.html
95921               fast/dom/shadow/shadowdom-for-image.html
95922
95923        * CMakeLists.txt:
95924        * GNUmakefile.list.am:
95925        * Target.pri:
95926        * WebCore.gypi:
95927        * WebCore.vcproj/WebCore.vcproj:
95928        * WebCore.xcodeproj/project.pbxproj:
95929        * css/html.css:
95930        (img):
95931        * html/HTMLImageElement.cpp:
95932        (WebCore::ImageElement::setImageIfNecessary):
95933        (WebCore):
95934        (WebCore::ImageElement::createRendererForImage):
95935        (WebCore::HTMLImageElement::willAddAuthorShadowRoot): When we don't have a user agent Shadow DOM yet
95936        we add it.
95937        (WebCore::HTMLImageElement::createShadowSubtree):
95938        (WebCore::HTMLImageElement::imageElement):
95939        (WebCore::HTMLImageElement::parseAttribute):
95940        (WebCore::HTMLImageElement::createRenderer): If a user agent Shadow DOM is attached, we create
95941        Renderer from style, instead of creating RenderImage.
95942        (WebCore::HTMLImageElement::attach):
95943        (WebCore::HTMLImageElement::innerElement):
95944        * html/HTMLImageElement.h:
95945        (WebCore):
95946        (ImageElement):
95947        (HTMLImageElement):
95948        (WebCore::HTMLImageElement::sourceElement):
95949        (WebCore::HTMLImageElement::refSourceElement):
95950        (WebCore::HTMLImageElement::derefSourceElement):
95951        (WebCore::HTMLImageElement::imageRenderer):
95952        (WebCore::HTMLImageElement::imageLoader):
95953        (WebCore::isHTMLImageElement):
95954        (WebCore::toHTMLImageElement):
95955        * html/HTMLImageLoader.cpp:
95956        (WebCore::HTMLImageLoader::HTMLImageLoader):
95957        (WebCore::HTMLImageLoader::dispatchLoadEvent):
95958        (WebCore::HTMLImageLoader::sourceURI):
95959        (WebCore::HTMLImageLoader::notifyFinished):
95960        * html/HTMLImageLoader.h:
95961        (HTMLImageLoader):
95962        * html/HTMLInputElement.h:
95963        * html/HTMLObjectElement.h:
95964        * html/HTMLPlugInElement.h:
95965        * html/HTMLTagNames.in:
95966        * html/HTMLVideoElement.h:
95967        * html/shadow/ImageInnerElement.cpp: Added.
95968        (WebCore):
95969        (WebCore::ImageInnerElement::ImageInnerElement):
95970        (WebCore::ImageInnerElement::hostImage):
95971        (WebCore::ImageInnerElement::imageLoader):
95972        (WebCore::ImageInnerElement::attach):
95973        (WebCore::ImageInnerElement::createRenderer):
95974        * html/shadow/ImageInnerElement.h: Added.
95975        (WebCore):
95976        (ImageInnerElement):
95977        (WebCore::ImageInnerElement::imageRenderer):
95978        (WebCore::ImageInnerElement::create):
95979        (WebCore::isImageInnerElement):
95980        (WebCore::toImageInnerElement):
95981        * loader/ImageLoader.cpp:
95982        (WebCore::ImageLoader::ImageLoader):
95983        (WebCore::ImageLoader::~ImageLoader):
95984        (WebCore):
95985        (WebCore::ImageLoader::document):
95986        (WebCore::ImageLoader::updateFromElement):
95987        (WebCore::ImageLoader::notifyFinished):
95988        (WebCore::ImageLoader::renderImageResource):
95989        (WebCore::ImageLoader::updatedHasPendingLoadEvent):
95990        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
95991        (WebCore::ImageLoader::dispatchPendingLoadEvent):
95992        (WebCore::ImageLoader::dispatchPendingErrorEvent):
95993        * loader/ImageLoader.h:
95994        (WebCore):
95995        (ImageLoader):
95996        (WebCore::ImageLoader::client):
95997        * loader/ImageLoaderClient.h: Added.
95998        (WebCore):
95999        (ImageLoaderClient): Provides the necessary interfaces to ImageLoader.
96000        (WebCore::ImageLoaderClient::~ImageLoaderClient):
96001        (ImageLoaderClientBase):
96002        (WebCore::ImageLoaderClientBase::sourceElement):
96003        (WebCore::ImageLoaderClientBase::imageElement):
96004        (WebCore::ImageLoaderClientBase::refSourceElement):
96005        (WebCore::ImageLoaderClientBase::derefSourceElement):
96006        * rendering/RenderImage.cpp:
96007        (WebCore::RenderImage::paintIntoRect):
96008        (WebCore::RenderImage::imageMap):
96009        (WebCore::RenderImage::updateAltText):
96010        (WebCore::RenderImage::hostImageElement):
96011        (WebCore):
96012        * rendering/RenderImage.h:
96013        (WebCore):
96014        (RenderImage):
96015        * rendering/RenderObject.cpp:
96016        (WebCore::RenderObject::shouldRespectImageOrientation):
96017        * svg/SVGImageElement.h:
96018        (SVGImageElement):
96019        * svg/SVGImageLoader.cpp:
96020        (WebCore::SVGImageLoader::SVGImageLoader):
96021        (WebCore::SVGImageLoader::dispatchLoadEvent):
96022        (WebCore::SVGImageLoader::sourceURI):
96023        * svg/SVGImageLoader.h:
96024        (SVGImageLoader):
96025
960262012-07-17  Kent Tamura  <tkent@chromium.org>
96027
96028        Internals: Remove injectPagePopupController()
96029        https://bugs.webkit.org/show_bug.cgi?id=91471
96030
96031        Reviewed by Hajime Morita.
96032
96033        r122558 introduced injectPagePopupController(), however we'd like to
96034        avoid adding such JavaScript binding code. We can avoid it by exposing a
96035        PagePopupController for a mock and injecting the following code to the
96036        popup document:
96037
96038        <script>window.pagePopupController = window.internals.pagePopupController</script>
96039
96040        No new tests. This is a kind of refactoring.
96041
96042        * testing/InternalSettings.cpp:
96043        (WebCore::InternalSettings::pagePopupController):
96044        Added. Accessor for PagePopupControler owned by the MockPagePopupDriver.
96045        * testing/InternalSettings.h:
96046        (InternalSettings): Declare pagePopupController() for Internals::pagePopupController().
96047        * testing/Internals.cpp:
96048        (WebCore::Internals::pagePopupController):
96049        Added. This uses InternalSettings::pagePopupController().
96050        * testing/Internals.h:
96051        (Internals): Declare pagePopupController() for Internals.idl.
96052        * testing/Internals.idl: Declare pagePopupController.
96053
96054        * testing/MockPagePopupDriver.cpp:
96055        Moved m_pagePopupController from MockPagePopup to MockPagePopupDriver.
96056        (WebCore::MockPagePopup::MockPagePopup):
96057        Added a script element to prepare window.pagePopupController.
96058        Removed a callsite of injectPagePopupController().
96059        (WebCore::MockPagePopupDriver::openPagePopup):
96060        (WebCore::MockPagePopupDriver::closePagePopup):
96061        * testing/MockPagePopupDriver.h:
96062        (WebCore::MockPagePopupDriver::pagePopupController):
96063        Accessor for a PagePopupController object.
96064        (MockPagePopupDriver): Add RefPtr<PagePopupController> data member.
96065
96066        * testing/v8/WebCoreTestSupport.cpp: Remove injectPagePopupController().
96067        * testing/v8/WebCoreTestSupport.h: ditto.
96068
960692012-07-17  Ryuan Choi  <ryuan.choi@samsung.com>
96070
96071        [EFL] Move codes related to theme setting from Widget to RenderTheme
96072        https://bugs.webkit.org/show_bug.cgi?id=89842
96073
96074        Reviewed by Kenneth Rohde Christiansen.
96075
96076        WebKit/Efl uses custom theme for Scrollbar, RenderTheme and Cursor.
96077        However, theme information itself is in WidgetEfl so it is accessed by
96078        calling recursive function.
96079        Because theme is managed by each page, this patch moves codes related to
96080        theme from WidgetEfl to RenderThemeEfl which is contained by page.
96081
96082        * platform/Widget.h: Removed functions related to theme.
96083        * platform/efl/RenderThemeEfl.cpp:
96084        (WebCore::RenderThemeEfl::setThemePath): Added to set theme path.
96085        (WebCore::RenderThemeEfl::createEdje): Updated method to use RenderThemeEfl's theme.
96086        (WebCore::RenderThemeEfl::RenderThemeEfl):
96087        * platform/efl/RenderThemeEfl.h:
96088        (WebCore::RenderThemeEfl::themePath): Added to get theme path
96089        * platform/efl/ScrollbarEfl.cpp: Updated method to use RenderThemeEfl's theme.
96090        (ScrollbarEfl::setParent):
96091        * platform/efl/WidgetEfl.cpp: Removed codes related theme.
96092        (WidgetPrivate):
96093
960942012-07-17  Shinya Kawanaka  <shinyak@chromium.org>
96095
96096        HTMLMediaElement should not use Element::ensureShadowRoot()
96097        https://bugs.webkit.org/show_bug.cgi?id=77936
96098
96099        Reviewed by Hajime Morita.
96100
96101        a video element and an audio element add UserAgentShadowRoot dynamically, and they assume that it's the oldest ShadowRoot.
96102        However an AuthorShadowRoot could be added by a user before a video element and an audio element add UserAgentShadowRoot.
96103        It breaks the assumption that the UserAgentShadowRoot is the oldest.
96104
96105        If the UserAgentShadowRoot is not the oldest, the AuthorShadowRoot a page author added might be ignored.
96106        Since the timing to add UserAgentShadowRoot is not known by a user, the fact that UserAgentShadorRoot is
96107        not the oldest will cause inconsistent behavior.
96108
96109        Adding AuthorShadowRoot to a video element and an audio element is allowed by this patch.
96110
96111        Test: fast/dom/shadow/shadowdom-for-media.html
96112
96113        * dom/ShadowRoot.cpp:
96114        (WebCore::allowsAuthorShadowRoot):
96115        * html/HTMLMediaElement.cpp:
96116        (WebCore::HTMLMediaElement::createShadowSubtree):
96117        (WebCore):
96118        (WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
96119        (WebCore::HTMLMediaElement::createMediaControls):
96120        * html/HTMLMediaElement.h:
96121        (HTMLMediaElement):
96122
961232012-07-16  Daniel Bates  <dbates@webkit.org>
96124
96125        Attempt to fix the Chromium Mac build after <http://trac.webkit.org/changeset/122802>
96126        (https://bugs.webkit.org/show_bug.cgi?id=91451)
96127 
96128        Remove unused private instance variable AbsoluteQuadsGeneratorContext::m_wasFixed.
96129        This instance variable has remained unused since it was added in
96130        <http://trac.webkit.org/changeset/116718> (https://bugs.webkit.org/show_bug.cgi?id=85725).
96131
96132        I'm unclear as to why the Chromium Mac build began to complain about this
96133        unused instance variable following <http://trac.webkit.org/changeset/122802>, since this
96134        code has been in the tree for a while and we previously instantiated AbsoluteQuadsGeneratorContext
96135        with wasFixed (even though it wasn't used). Regardless, we should remove the unused
96136        instance variable AbsoluteQuadsGeneratorContext::m_wasFixed.
96137
96138        * rendering/RenderInline.cpp:
96139        (WebCore): Remove AbsoluteQuadsGeneratorContext::m_wasFixed.
96140        (WebCore::RenderInline::absoluteQuads):
96141
961422012-07-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
96143
96144        Add RegisterProtocolHandlerClient to the Modules/protocolhandler
96145        https://bugs.webkit.org/show_bug.cgi?id=90940
96146
96147        Reviewed by Hajime Morita.
96148
96149        As a step to let protocol handler be moved to the modules, RegisterProtocolHandlerClient needs
96150        to be added to the Modules/protocolhandler. Because ChromeClient has some virtual functions for
96151        protocol handlers, virtual functions should be moved to RegisterProtocolHandlerClient.
96152
96153        In addition, NavigatorRegisterProtocolHandler should be supplementable.
96154
96155        No new tests. Covered by existing tests.
96156
96157        * GNUmakefile.list.am:
96158        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.cpp:
96159        (WebCore::NavigatorRegisterProtocolHandler::from):
96160        (WebCore::NavigatorRegisterProtocolHandler::create):
96161        (WebCore):
96162        (WebCore::NavigatorRegisterProtocolHandler::registerProtocolHandler):
96163        (WebCore::customHandlersStateString):
96164        (WebCore::NavigatorRegisterProtocolHandler::isProtocolHandlerRegistered):
96165        (WebCore::NavigatorRegisterProtocolHandler::unregisterProtocolHandler):
96166        (WebCore::NavigatorRegisterProtocolHandler::supplementName):
96167        (WebCore::provideRegisterProtocolHandlerTo):
96168        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.h:
96169        (WebCore):
96170        (NavigatorRegisterProtocolHandler):
96171        (WebCore::NavigatorRegisterProtocolHandler::NavigatorRegisterProtocolHandler):
96172        (WebCore::NavigatorRegisterProtocolHandler::client):
96173        * Modules/protocolhandler/RegisterProtocolHandlerClient.h: Added.
96174        (WebCore):
96175        (RegisterProtocolHandlerClient):
96176        * WebCore.gypi:
96177        * loader/EmptyClients.h:
96178        * page/ChromeClient.h:
96179        (ChromeClient):
96180        * platform/network/soup/CookieJarSoup.cpp:
96181        (WebCore::setCookies):
96182        (WebCore::getRawCookies):
96183
961842012-07-16  Pete Williamson  <petewil@google.com>
96185
96186        Changed the behavior of iconURLs to always recalculate the list.
96187        https://bugs.webkit.org/show_bug.cgi?id=88665
96188
96189        Reviewed by Kent Tamura.
96190
96191        As it turns out, it can contain stale URLs in the case that some script
96192        manipulates the DOM, which breaks scripts trying to reset the favicon
96193        URL. Also added a method in Internals to allow tests to get the list of
96194        icon
96195
96196        Tests: fast/dom/icon-url-change.html
96197               fast/dom/icon-url-list.html
96198
96199        * WebCore.exp.in: export Document::iconURLs on the mac for the Internals class
96200        * dom/Document.cpp:
96201        (WebCore::Document::iconURLs): Changed the method to recalculate the iconURL list every time
96202        (WebCore::Document::addIconURL): we no longer need to add to the internal list since we recalculate it
96203        (WebCore::Document::setUseSecureKeyboardEntryWhenActive): removed extra whitespace
96204        * dom/Document.h:
96205        (Document): removed the addIconURL method which is no longer used
96206        * html/HTMLLinkElement.cpp:
96207        (WebCore::HTMLLinkElement::iconType): exposed the icon type with an accessor
96208        (WebCore):
96209        (WebCore::HTMLLinkElement::iconSizes): exposed the icon sizes with an accessor
96210        * html/HTMLLinkElement.h:
96211        (HTMLLinkElement): declared the icon type and size accessors
96212        * testing/Internals.cpp:
96213        (WebCore::Internals::iconURLs): made a method to be used by unit tests for inspecting the icon URL list
96214        (WebCore):
96215        * testing/Internals.h:
96216        (Internals): declared the method for unit testing the icon URL list
96217        * testing/Internals.idl: exported the Document::iconURLs function
96218
962192012-07-16  Hajime Morrita  <morrita@chromium.org>
96220
96221        WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
96222        https://bugs.webkit.org/show_bug.cgi?id=90764
96223
96224        Reviewed by Adam Barth.
96225
96226        Defined WEBCORE_TESTING based on USE(EXPORT_MACROS_FOR_TESTING) and
96227        applied it to FrameDestructionObserver.
96228
96229        * bindings/js/JSDOMGlobalObject.h: Removed conflicting symbols
96230        * page/FrameDestructionObserver.h: Added WEBKIT_TESTING
96231        (FrameDestructionObserver):
96232        * platform/PlatformExportMacros.h:
96233
962342012-07-16  Kiran Muppala  <cmuppala@apple.com>
96235
96236        REGRESSION: RenderInline::absoluteQuads produces incorrect results for fixed position.
96237        https://bugs.webkit.org/show_bug.cgi?id=91451
96238
96239        Reviewed by Simon Fraser.
96240
96241        RenderInline::absoluteQuads relies on copies of RenderGeometryMap,
96242        created indirectly by passing AbsoluteQuadsGeneratorContext object by
96243        value.  These copies are unsafe because the individual transform steps
96244        within the geometry map include a owned poitner to their respective
96245        transform.
96246
96247        Modify the callee methods to take context by reference and disable
96248        copy constructor for RenderGeometryMap.
96249
96250        Test: fast/inline/inline-fixed-position-boundingbox.html
96251
96252        * rendering/RenderGeometryMap.h:
96253        (WebCore::RenderGeometryMapStep::RenderGeometryMapStep): Add missing
96254        m_offset to copy constructor initialization list.
96255        (RenderGeometryMap): Disable copy constructor.
96256        * rendering/RenderInline.cpp: Pass context object by reference.
96257        (WebCore::RenderInline::generateLineBoxRects): 
96258        (WebCore::RenderInline::generateCulledLineBoxRects):
96259        (WebCore::RenderInline::absoluteRects):
96260        (WebCore::RenderInline::absoluteQuads):
96261        (WebCore::RenderInline::linesBoundingBox):
96262        (WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
96263        (WebCore::RenderInline::addFocusRingRects):
96264        * rendering/RenderInline.h:
96265        (RenderInline::generateLineBoxRects): Update method declarations to
96266        show pass by reference context parameter.
96267        (RenderInline::generateCulledLineBoxRects): Ditto.
96268
962692012-07-16  Hayato Ito  <hayato@chromium.org>
96270
96271        Some events should be always stopped at shadow boundary.
96272        https://bugs.webkit.org/show_bug.cgi?id=90436
96273
96274        Reviewed by Ryosuke Niwa.
96275
96276        The spec is here:
96277        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
96278
96279        Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
96280
96281        * dom/EventDispatcher.cpp:
96282        (WebCore::EventDispatcher::determineDispatchBehavior):
96283
962842012-07-16  Yoshifumi Inoue  <yosin@chromium.org>
96285
96286        REGRESSION(r119948): [Form] HTMLInputElement.valueAsNumber for input type "month" should return number of month since January 1970
96287        https://bugs.webkit.org/show_bug.cgi?id=91211
96288
96289        Reviewed by Kent Tamura.
96290
96291        This patch changes BaseDateAndTimeInputType::valueAsDouble() to call
96292        virtual function parseToNumber() which "month" input type overrides
96293        instead of non-virtual function parseToDouble() which returns number
96294        of milliseconds.
96295
96296        No new tests. Existing test (fast/form/month/input-valueasnumber-month.html) coverts this, although it is disabled.
96297
96298        * html/BaseDateAndTimeInputType.cpp:
96299        (WebCore::BaseDateAndTimeInputType::valueAsDouble): Changed to call parseToNumber().
96300        (WebCore::BaseDateAndTimeInputType::parseToNumber): Changed to what parseToDouble() did.
96301        * html/BaseDateAndTimeInputType.h:
96302        (BaseDateAndTimeInputType): Remove parseToDouble().
96303
963042012-07-16  Adrienne Walker  <enne@google.com>
96305
96306        [chromium] Turn off ScrollbarLayerChromium for Windows due to bad alpha values
96307        https://bugs.webkit.org/show_bug.cgi?id=91438
96308
96309        Reviewed by Kenneth Russell.
96310
96311        r120509 turned on blending for scrollbar thumbs. Unfortunately for
96312        Windows XP scrollbar thumbs, their alpha channel is bogus and so the
96313        thumb ends up being completely transparent. This should ultimately be
96314        fixed in Chromium theme code, but in the meantime this patch turns
96315        off the use of ScrollbarLayerChromium.
96316
96317        This change makes Windows scrollbars fall back to using normal
96318        ContentLayerChromiums and being painted all in one layer on the main
96319        thread rather than being painted separately and composited on the
96320        compositor thread.
96321
96322        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
96323        (WebCore::createScrollbarLayer):
96324
963252012-07-16  Koji Ishii  <kojiishi@gmail.com>
96326
96327        Vertical alternate glyph (GSUB) support for OpenTypeVerticalData
96328        https://bugs.webkit.org/show_bug.cgi?id=81389
96329
96330        Reviewed by Tony Chang.
96331
96332        This patch adds support for reading 'GSUB' OpenType table to get
96333        vertical alternate glyphs.
96334        http://www.microsoft.com/typography/otspec/gsub.htm
96335
96336        Like bug 81326, this code isn't on any code path yet.
96337
96338        Tests: WebKit/chromium/tests/OpenTypeVerticalDataTest.cpp
96339
96340        * platform/graphics/opentype/OpenTypeTypes.h:
96341        (WebCore::OpenType::validateTable): Moved from OpenTypeVerticalData.cpp for unit tests.
96342        (OpenType):
96343        (TableBase): Ditto.
96344        (WebCore::OpenType::TableBase::isValidEnd):
96345        (WebCore::OpenType::TableBase::validatePtr):
96346        (WebCore::OpenType::TableBase::validateOffset):
96347        * platform/graphics/opentype/OpenTypeVerticalData.cpp:
96348        (OpenType): Added several OpenType tables used by 'GSUB' table.
96349        (CoverageTable):
96350        (Coverage1Table):
96351        (Coverage2Table):
96352        (RangeRecord):
96353        (SubstitutionSubTable):
96354        (WebCore::OpenType::SubstitutionSubTable::coverage):
96355        (SingleSubstitution2SubTable):
96356        (LookupTable):
96357        (WebCore::OpenType::LookupTable::getSubstitutions):
96358        (LookupList):
96359        (WebCore::OpenType::LookupList::lookup):
96360        (FeatureTable):
96361        (WebCore::OpenType::FeatureTable::getGlyphSubstitutions):
96362        (FeatureList):
96363        (FeatureRecord):
96364        (WebCore::OpenType::FeatureList::feature):
96365        (LangSysTable):
96366        (WebCore::OpenType::LangSysTable::feature):
96367        (ScriptTable):
96368        (LangSysRecord):
96369        (WebCore::OpenType::ScriptTable::defaultLangSys):
96370        (ScriptList):
96371        (ScriptRecord):
96372        (WebCore::OpenType::ScriptList::script):
96373        (WebCore::OpenType::ScriptList::defaultScript):
96374        (WebCore::OpenType::ScriptList::defaultLangSys):
96375        (GSUBTable):
96376        (WebCore::OpenType::GSUBTable::scriptList):
96377        (WebCore::OpenType::GSUBTable::featureList):
96378        (WebCore::OpenType::GSUBTable::lookupList):
96379        (WebCore::OpenType::GSUBTable::defaultLangSys):
96380        (WebCore::OpenType::GSUBTable::feature):
96381        (WebCore::OpenType::GSUBTable::getVerticalGlyphSubstitutions):
96382        (WebCore::OpenTypeVerticalData::OpenTypeVerticalData):
96383        (WebCore::OpenTypeVerticalData::loadMetrics): Split code to load metrics from ctor.
96384        (WebCore::OpenTypeVerticalData::loadVerticalGlyphSubstitutions): Load the vertical alternate Glyph substitution table.
96385        (WebCore):
96386        (WebCore::OpenTypeVerticalData::substituteWithVerticalGlyphs): Substitute Glyph IDs with vertical alternate Glyph IDs.
96387        * platform/graphics/opentype/OpenTypeVerticalData.h:
96388        (OpenTypeVerticalData): Added m_verticalGlyphMap.
96389
963902012-07-16  Vincent Scheib  <scheib@chromium.org>
96391
96392        Fix spelling of EnforceIFrameAllowFullScreenRequirement and ExemptIFrameAllowFullScreenRequirement.
96393        https://bugs.webkit.org/show_bug.cgi?id=91437
96394
96395        Reviewed by Adrienne Walker.
96396
96397        Document contained spelling errors of 'FulScreen' instead of 'FullScreen'
96398        for the FullScreenCheckType enumeration.
96399
96400        No test changes needed.
96401
96402        * dom/Document.cpp:
96403        (WebCore::Document::requestFullScreenForElement):
96404        * dom/Document.h:
96405        * dom/Element.cpp:
96406        (WebCore::Element::webkitRequestFullscreen):
96407        (WebCore::Element::webkitRequestFullScreen):
96408        * html/HTMLMediaElement.cpp:
96409        (WebCore::HTMLMediaElement::enterFullscreen):
96410        * html/shadow/MediaControlElements.cpp:
96411        (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
96412
964132012-07-16  MORITA Hajime  <morrita@google.com>
96414
96415        Comment on WebCore::HTMLMediaElement::childShouldCreateRenderer() should explain why
96416        https://bugs.webkit.org/show_bug.cgi?id=91174
96417
96418        Reviewed by Kent Tamura.
96419
96420        Clarified the explanation.
96421
96422        * html/HTMLMediaElement.cpp:
96423        (WebCore::HTMLMediaElement::childShouldCreateRenderer):
96424
964252012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
96426
96427        Unreviewed, rolling out r120033.
96428        http://trac.webkit.org/changeset/120033
96429        https://bugs.webkit.org/show_bug.cgi?id=91454
96430
96431        Broke background gradients (Requested by smfr on #webkit).
96432
96433        * platform/graphics/GeneratorGeneratedImage.cpp:
96434        (WebCore::GeneratorGeneratedImage::draw):
96435
964362012-07-16  Joshua Bell  <jsbell@chromium.org>
96437
96438        IndexedDB: Implement spec updates to IDBTransaction.error
96439        https://bugs.webkit.org/show_bug.cgi?id=91409
96440
96441        Reviewed by Tony Chang.
96442
96443        The Indexed DB spec was updated to resolve some edge cases around the
96444        IDBTransaction.error attribute. It was agreed that accessing error should
96445        never throw, error should be null if the transaction is not finished or
96446        abort() was explicitly called, an appropriate error should be returned if
96447        a commit failed, and a generic AbortError should be used if a request
96448        callback throws. These cases are now handled per spec, except that a reason
96449        is not provided for the commit failure (it's always UnknownError).
96450
96451        Test: storage/indexeddb/transaction-error.html
96452              storage/indexeddb/transaction-abort.html
96453
96454        * Modules/indexeddb/IDBRequest.cpp:
96455        (WebCore::IDBRequest::dispatchEvent): Refactor some nested if() blocks; don't
96456        re-abort the transaction if dispatching in response to an abort.
96457        (WebCore::IDBRequest::uncaughtExceptionInEventHandler): Abort transaction
96458        only if not already aborting, and set it's error to AbortError.
96459        * Modules/indexeddb/IDBTransaction.cpp:
96460        (WebCore::IDBTransaction::onAbort): Set error if abort triggered by back end.
96461        * Modules/indexeddb/IDBTransaction.h:
96462        (WebCore::IDBTransaction::db): Move impl to header file.
96463        (WebCore::IDBTransaction::error): Move impl to header file, simplify.
96464        (IDBTransaction):
96465        * Modules/indexeddb/IDBTransaction.idl: The error attribute no longer throws.
96466
964672012-07-16  Joshua Bell  <jsbell@chromium.org>
96468
96469        IndexedDB: Implement spec updates to IDBTransaction.error
96470        https://bugs.webkit.org/show_bug.cgi?id=91409
96471
96472        Reviewed by Tony Chang.
96473
96474        The Indexed DB spec was updated to resolve some edge cases around the
96475        IDBTransaction.error attribute. It was agreed that accessing error should
96476        never throw, error should be null if the transaction is not finished or
96477        abort() was explicitly called, an appropriate error should be returned if
96478        a commit failed, and a generic AbortError should be used if a request
96479        callback throws. These cases are now handled per spec, except that a reason
96480        is not provided for the commit failure (it's always UnknownError).
96481
96482        Test: storage/indexeddb/transaction-error.html
96483              storage/indexeddb/transaction-abort.html
96484
96485        * Modules/indexeddb/IDBRequest.cpp:
96486        (WebCore::IDBRequest::dispatchEvent): Refactor some nested if() blocks; don't
96487        re-abort the transaction if dispatching in response to an abort.
96488        (WebCore::IDBRequest::uncaughtExceptionInEventHandler): Abort transaction
96489        only if not already aborting, and set it's error to AbortError.
96490        * Modules/indexeddb/IDBTransaction.cpp:
96491        (WebCore::IDBTransaction::onAbort): Set error if abort triggered by back end.
96492        * Modules/indexeddb/IDBTransaction.h:
96493        (WebCore::IDBTransaction::db): Move impl to header file.
96494        (WebCore::IDBTransaction::error): Move impl to header file, simplify.
96495        (IDBTransaction):
96496        * Modules/indexeddb/IDBTransaction.idl: The error attribute no longer throws.
96497
964982012-07-16  Alec Flett  <alecflett@chromium.org>
96499
96500        IndexedDB: Introduce putWithIndexKeys and calculate them in the renderer
96501        https://bugs.webkit.org/show_bug.cgi?id=90923
96502
96503        Reviewed by Darin Fisher.
96504
96505        Refactor IndexWriter to depend only on IDBIndexMetadata and on
96506        (databaseId, objectStoreId, indexId) so that it can talk directly
96507        to the backing store, and also eventually be moved into the renderer.
96508
96509        This also introduces IDBObjectStoreBackendInterface::putWithIndexKeys
96510        as a replacement for IDBObjectStoreBackendInterface::put, already
96511        stubbed out in the chromium port. It will fully replace put()
96512        after both chromium and webkit sides have reached alignment.
96513
96514        No new tests as this is just a refactor and existing tests cover
96515        correctness.
96516
96517        * Modules/indexeddb/IDBCursor.cpp:
96518        (WebCore::IDBCursor::setValueReady):
96519        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
96520        * Modules/indexeddb/IDBIndexBackendImpl.h:
96521        * Modules/indexeddb/IDBObjectStore.h:
96522        (IDBObjectStore):
96523        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
96524        (WebCore::IDBObjectStoreBackendImpl::put):
96525        (WebCore):
96526        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
96527        (WebCore::IDBObjectStoreBackendImpl::putInternal):
96528        (WebCore::IDBObjectStoreBackendImpl::populateIndex):
96529        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
96530        (IDBObjectStoreBackendImpl):
96531        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
96532        * Modules/indexeddb/IDBRequest.cpp:
96533        (WebCore::IDBRequest::onSuccess):
96534
965352012-07-16  Adrienne Walker  <enne@google.com>
96536
96537        [chromium] Unify compositor quad transforms into content space
96538        https://bugs.webkit.org/show_bug.cgi?id=91350
96539
96540        Reviewed by Kenneth Russell.
96541
96542        For the purpose of simplification and as a first step towards removing
96543        any transform that takes a centered rect, remove the ability of layers
96544        to override the quad transform. All quads and quad transforms operate
96545        on content space with the origin in the top left.
96546
96547        The gutter quads used to use the root layer (that doesn't draw
96548        content) as the layer to create the shared quad state from. This is
96549        now created manually as a layer without bounds should never in general
96550        need a shared quad state created for it.
96551
96552        No change in functionality; tested by existing layout and unit tests.
96553
96554        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
96555        (WebCore::CCIOSurfaceLayerImpl::appendQuads):
96556        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
96557        (WebCore::CCLayerImpl::createSharedQuadState):
96558        * platform/graphics/chromium/cc/CCLayerImpl.h:
96559        (CCLayerImpl):
96560        * platform/graphics/chromium/cc/CCRenderPass.cpp:
96561        (WebCore::CCRenderPass::appendQuadsToFillScreen):
96562        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
96563        (WebCore::CCSolidColorLayerImpl::appendQuads):
96564        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
96565        (CCSolidColorLayerImpl):
96566        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
96567        (WebCore::CCTextureLayerImpl::appendQuads):
96568        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
96569        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
96570        (CCTiledLayerImpl):
96571        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
96572        (WebCore::CCVideoLayerImpl::appendQuads):
96573
965742012-07-16  Adrienne Walker  <enne@google.com>
96575
96576        [chromium] Unify compositor quad transforms into content space
96577        https://bugs.webkit.org/show_bug.cgi?id=91350
96578
96579        Reviewed by Kenneth Russell.
96580
96581        For the purpose of simplification and as a first step towards removing
96582        any transform that takes a centered rect, remove the ability of layers
96583        to override the quad transform. All quads and quad transforms operate
96584        on content space with the origin in the top left.
96585
96586        The gutter quads used to use the root layer (that doesn't draw
96587        content) as the layer to create the shared quad state from. This is
96588        now created manually as a layer without bounds should never in general
96589        need a shared quad state created for it.
96590
96591        No change in functionality; tested by existing layout and unit tests.
96592
96593        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
96594        (WebCore::CCIOSurfaceLayerImpl::appendQuads):
96595        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
96596        (WebCore::CCLayerImpl::createSharedQuadState):
96597        * platform/graphics/chromium/cc/CCLayerImpl.h:
96598        (CCLayerImpl):
96599        * platform/graphics/chromium/cc/CCRenderPass.cpp:
96600        (WebCore::CCRenderPass::appendQuadsToFillScreen):
96601        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
96602        (WebCore::CCSolidColorLayerImpl::appendQuads):
96603        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
96604        (CCSolidColorLayerImpl):
96605        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
96606        (WebCore::CCTextureLayerImpl::appendQuads):
96607        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
96608        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
96609        (CCTiledLayerImpl):
96610        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
96611        (WebCore::CCVideoLayerImpl::appendQuads):
96612
966132012-07-16  Joshua Bell  <jsbell@chromium.org>
96614
96615        IndexedDB: Resolve test and IDL FIXMEs for a handful of landed patches
96616        https://bugs.webkit.org/show_bug.cgi?id=91423
96617
96618        Reviewed by Tony Chang.
96619
96620        IDBObjectStore.createIndex() had a hack to handle a null keyPath argument for the
96621        DOMString[] overload and treat it as the string "null". Now that IDL arrays are not
96622        nullable by default following r121817 this hack can be removed and the binding layer
96623        will automagically coerce to DOMString.
96624
96625        Test: storage/indexeddb/keypath-basics.html
96626
96627        * Modules/indexeddb/IDBObjectStore.cpp:
96628        (WebCore::IDBObjectStore::createIndex): Remove special case for null in DOMString[] overload.
96629        * Modules/indexeddb/IDBObjectStore.idl: Remove Nullable suffix from DOMString[] overload
96630        so that the DOMString overload will match null.
96631
966322012-07-16  Bear Travis  <betravis@adobe.com>
96633
96634        Resolve CSS Exclusions shapeInside, shapeOutside properties to Length based WrapShape classes
96635        https://bugs.webkit.org/show_bug.cgi?id=89670
96636
96637        Reviewed by Dirk Schulze.
96638
96639        Layout of CSS Exclusions requires length based WrapShape classes,
96640        rather than the existing CSSValue based CSSWrapShape classes. This
96641        patch adds length based WrapShape analogs to the CSSWrapShapes, and
96642        modifies RenderStyle to use a WrapShape instead of a CSSWrapShape.
96643        The translation between WrapShape and CSSWrapShape classes
96644        is handled by helper functions in the new WrapShapeFunctions files.
96645        StyleBuilder resolves CSSWrapShapes to WrapShapes for layout use.
96646        CSSComputedStyleDeclaration translates WrapShapes to CSSWrapShapes
96647        for style use.
96648
96649        There are existing tests that cover the style serialization / resolution
96650        in fast/exclusions/parsing-wrap-shape-inside.html and
96651        fast/exclusions/parsing/wrap-shape-outside.html
96652
96653        Test: fast/exclusions/parsing-wrap-shape-lengths.html
96654
96655        * CMakeLists.txt: Build system changes for adding new files
96656        * GNUmakefile.list.am: Ditto
96657        * Target.pri: Ditto
96658        * WebCore.gypi: Ditto
96659        * WebCore.vcproj/WebCore.vcproj: Ditto
96660        * WebCore.xcodeproj/project.pbxproj: Ditto
96661        * css/CSSComputedStyleDeclaration.cpp: Translate WrapShapes back to CSSWrapShapes
96662        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
96663        * css/CSSWrapShapes.h: Mostly changing functions to be const
96664        (WebCore::CSSWrapShapeRectangle::type):
96665        (WebCore::CSSWrapShapeCircle::type):
96666        (WebCore::CSSWrapShapeEllipse::type):
96667        (WebCore::CSSWrapShapePolygon::getXAt):
96668        (WebCore::CSSWrapShapePolygon::getYAt):
96669        (WebCore::CSSWrapShapePolygon::values):
96670        (WebCore::CSSWrapShapePolygon::type):
96671        * css/StyleBuilder.cpp: Resolve CSSWrapShapes to WrapShapes
96672        (WebCore):
96673        (WebCore::ApplyPropertyWrapShape::setValue):
96674        (WebCore::ApplyPropertyWrapShape::applyValue):
96675        (WebCore::ApplyPropertyWrapShape::createHandler):
96676        * css/WrapShapeFunctions.cpp: Added.
96677        (WebCore):
96678        (WebCore::valueForWrapShape):
96679        (WebCore::convertToLength):
96680        (WebCore::wrapShapeForValue):
96681        * css/WrapShapeFunctions.h: Added.
96682        (WebCore):
96683        * rendering/style/RenderStyle.h:
96684        * rendering/style/StyleRareNonInheritedData.h:
96685        (StyleRareNonInheritedData):
96686        * rendering/style/WrapShapes.h: Added.
96687        (WebCore):
96688        (WrapShape):
96689        (WebCore::WrapShape::~WrapShape):
96690        (WebCore::WrapShape::WrapShape):
96691        (WrapShapeRectangle):
96692        (WebCore::WrapShapeRectangle::create):
96693        (WebCore::WrapShapeRectangle::left):
96694        (WebCore::WrapShapeRectangle::top):
96695        (WebCore::WrapShapeRectangle::width):
96696        (WebCore::WrapShapeRectangle::height):
96697        (WebCore::WrapShapeRectangle::cornerRadiusX):
96698        (WebCore::WrapShapeRectangle::cornerRadiusY):
96699        (WebCore::WrapShapeRectangle::setLeft):
96700        (WebCore::WrapShapeRectangle::setTop):
96701        (WebCore::WrapShapeRectangle::setWidth):
96702        (WebCore::WrapShapeRectangle::setHeight):
96703        (WebCore::WrapShapeRectangle::setCornerRadiusX):
96704        (WebCore::WrapShapeRectangle::setCornerRadiusY):
96705        (WebCore::WrapShapeRectangle::type):
96706        (WebCore::WrapShapeRectangle::WrapShapeRectangle):
96707        (WrapShapeCircle):
96708        (WebCore::WrapShapeCircle::create):
96709        (WebCore::WrapShapeCircle::left):
96710        (WebCore::WrapShapeCircle::top):
96711        (WebCore::WrapShapeCircle::radius):
96712        (WebCore::WrapShapeCircle::setLeft):
96713        (WebCore::WrapShapeCircle::setTop):
96714        (WebCore::WrapShapeCircle::setRadius):
96715        (WebCore::WrapShapeCircle::type):
96716        (WebCore::WrapShapeCircle::WrapShapeCircle):
96717        (WrapShapeEllipse):
96718        (WebCore::WrapShapeEllipse::create):
96719        (WebCore::WrapShapeEllipse::top):
96720        (WebCore::WrapShapeEllipse::left):
96721        (WebCore::WrapShapeEllipse::radiusX):
96722        (WebCore::WrapShapeEllipse::radiusY):
96723        (WebCore::WrapShapeEllipse::setTop):
96724        (WebCore::WrapShapeEllipse::setLeft):
96725        (WebCore::WrapShapeEllipse::setRadiusX):
96726        (WebCore::WrapShapeEllipse::setRadiusY):
96727        (WebCore::WrapShapeEllipse::type):
96728        (WebCore::WrapShapeEllipse::WrapShapeEllipse):
96729        (WrapShapePolygon):
96730        (WebCore::WrapShapePolygon::create):
96731        (WebCore::WrapShapePolygon::windRule):
96732        (WebCore::WrapShapePolygon::values):
96733        (WebCore::WrapShapePolygon::getXAt):
96734        (WebCore::WrapShapePolygon::getYAt):
96735        (WebCore::WrapShapePolygon::setWindRule):
96736        (WebCore::WrapShapePolygon::appendPoint):
96737        (WebCore::WrapShapePolygon::type):
96738        (WebCore::WrapShapePolygon::WrapShapePolygon):
96739
967402012-07-16  Simon Fraser  <simon.fraser@apple.com>
96741
96742        Fix compositing layers in columns when in paginated mode
96743        https://bugs.webkit.org/show_bug.cgi?id=91425
96744
96745        Reviewed by Dave Hyatt.
96746
96747        Enhance a hack that was added to allow composited layers to
96748        display in columns to work for paginated mode, where the
96749        RenderView is renderer with columns.
96750
96751        Test: compositing/columns/composited-in-paginated.html
96752
96753        * rendering/RenderLayer.cpp:
96754        (WebCore::RenderLayer::updateLayerPosition):
96755
967562012-07-16  Emil A Eklund  <eae@chromium.org>
96757
96758        Inconsistent rounding in table layout causes background color to bleed through
96759        https://bugs.webkit.org/show_bug.cgi?id=91410
96760
96761        Reviewed by Eric Seidel.
96762
96763        At certain zoom levels a rounding error in the table layout code cases
96764        the table background color to bleed through between cells. Tables layout
96765        happens on pixel bounds however the paint offset wasn't correctly rounded.
96766
96767        Test: fast/sub-pixel/table-rows-no-gaps.html
96768
96769        * rendering/RenderTable.cpp:
96770        (WebCore::RenderTable::paintObject):
96771        Round paintOffset before passing it to the paint method of the children.
96772
967732012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
96774
96775        Unreviewed, rolling out r122739.
96776        http://trac.webkit.org/changeset/122739
96777        https://bugs.webkit.org/show_bug.cgi?id=91424
96778
96779        Broke mac builds (Requested by rniwa on #webkit).
96780
96781        * inspector/CodeGeneratorInspector.py:
96782        (flatten_list):
96783
967842012-07-16  Dana Jansens  <danakj@chromium.org>
96785
96786        [chromium] Remove non-ephemeral data from RenderSurface as it duplicates data from the owning layer
96787        https://bugs.webkit.org/show_bug.cgi?id=91418
96788
96789        Reviewed by Adrienne Walker.
96790
96791        This removes the filters and masks from render surfaces, and makes them
96792        used directly from the owning layer. Also removes skipsDraw from
96793        surfaces as it was just not used at all.
96794
96795        Covered by existing tests.
96796
96797        * platform/graphics/chromium/LayerChromium.h:
96798        (WebCore::LayerChromium::filters):
96799        (WebCore::LayerChromium::backgroundFilters):
96800        (WebCore::LayerChromium::hasMask):
96801        (WebCore::LayerChromium::hasReplica):
96802        (WebCore::LayerChromium::replicaHasMask):
96803        (LayerChromium):
96804        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
96805        (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
96806        * platform/graphics/chromium/RenderSurfaceChromium.h:
96807        (RenderSurfaceChromium):
96808        * platform/graphics/chromium/cc/CCLayerImpl.h:
96809        (WebCore::CCLayerImpl::hasMask):
96810        (WebCore::CCLayerImpl::hasReplica):
96811        (WebCore::CCLayerImpl::replicaHasMask):
96812        (CCLayerImpl):
96813        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
96814        (WebCore::CCLayerTreeHost::calculateMemoryForRenderSurfaces):
96815        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
96816        (WebCore::calculateDrawTransformsInternal):
96817        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
96818        (WebCore::::finishedRenderTarget):
96819        (WebCore::reduceOcclusionBelowSurface):
96820        (WebCore::::leaveToRenderTarget):
96821        * platform/graphics/chromium/cc/CCRenderPass.cpp:
96822        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
96823        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
96824        (WebCore::CCRenderSurface::drawableContentRect):
96825        (WebCore::CCRenderSurface::appendQuads):
96826        * platform/graphics/chromium/cc/CCRenderSurface.h:
96827        (CCRenderSurface):
96828
968292012-07-16  Beth Dakin  <bdakin@apple.com>
96830
96831        https://bugs.webkit.org/show_bug.cgi?id=91299
96832        Paginated views should restrict available height to column height
96833        -and corresponding-
96834        <rdar://problem/11152108>
96835
96836        Reviewed by Dan Bernstein.
96837
96838        Now that RenderViews can have columns, availableLogicalHeight needs to consider 
96839        that column height, much like how availableLogicalWidth already considers column 
96840        width.
96841
96842        availableLogicalHeight is newly virtual, like the already-virtual 
96843        availableLogicalWidth.
96844        * rendering/RenderBox.h:
96845        (RenderBox):
96846
96847        Check with the columnHeight.
96848        * rendering/RenderView.cpp:
96849        (WebCore):
96850        (WebCore::RenderView::availableLogicalHeight):
96851        * rendering/RenderView.h:
96852
96853        setPagination now takes pageLength as an optional parameter. 
96854        * testing/InternalSettings.cpp:
96855        (WebCore::InternalSettings::setPagination):
96856        * testing/InternalSettings.h:
96857        (WebCore::InternalSettings::setPagination):
96858        (InternalSettings):
96859        * testing/InternalSettings.idl:
96860        * testing/Internals.cpp:
96861        (WebCore::Internals::setPagination):
96862        * testing/Internals.h:
96863        (WebCore::Internals::setPagination):
96864        (Internals):
96865        * testing/Internals.idl:
96866
968672012-07-16  Dana Jansens  <danakj@chromium.org>
96868
96869        [chromium] Remove targetRenderSurface concept, give layers a renderTarget which is the layer whose coordinate space they draw into
96870        https://bugs.webkit.org/show_bug.cgi?id=91288
96871
96872        Reviewed by Adrienne Walker.
96873
96874        Always use pointers to layers when discussing render targets instead of
96875        pointing directly to a RenderSurface.
96876
96877        Covered by existing tests.
96878
96879        * platform/graphics/chromium/LayerChromium.cpp:
96880        (WebCore::LayerChromium::LayerChromium):
96881        (WebCore::LayerChromium::createRenderSurface):
96882        * platform/graphics/chromium/LayerChromium.h:
96883        (WebCore::LayerChromium::renderTarget):
96884        (WebCore::LayerChromium::setRenderTarget):
96885        (LayerChromium):
96886        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
96887        * platform/graphics/chromium/RenderSurfaceChromium.h:
96888        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
96889        (WebCore::ScrollbarLayerChromium::setTexturePriorities):
96890        * platform/graphics/chromium/TiledLayerChromium.cpp:
96891        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
96892        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
96893        (WebCore::CCLayerImpl::CCLayerImpl):
96894        (WebCore::CCLayerImpl::createRenderSurface):
96895        (WebCore::CCLayerImpl::dumpLayerProperties):
96896        * platform/graphics/chromium/cc/CCLayerImpl.h:
96897        (WebCore::CCLayerImpl::renderTarget):
96898        (WebCore::CCLayerImpl::setRenderTarget):
96899        (CCLayerImpl):
96900        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
96901        (WebCore::calculateLayerScissorRect):
96902        (WebCore::calculateSurfaceScissorRect):
96903        (WebCore::calculateVisibleContentRect):
96904        (WebCore::computeScrollCompensationForThisLayer):
96905        (WebCore::calculateDrawTransformsInternal):
96906        (WebCore::pointIsClippedBySurfaceOrClipRect):
96907        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
96908        (WebCore::::enterLayer):
96909        (WebCore::::leaveLayer):
96910        (WebCore::::enterRenderTarget):
96911        (WebCore::::finishedRenderTarget):
96912        (WebCore):
96913        (WebCore::reduceOcclusionBelowSurface):
96914        (WebCore::::leaveToRenderTarget):
96915        (WebCore::::markOccludedBehindLayer):
96916        (WebCore::::occluded):
96917        (WebCore::::unoccludedContentRect):
96918        (WebCore::::unoccludedContributingSurfaceContentRect):
96919        (WebCore::::layerScissorRectInTargetSurface):
96920        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
96921        (CCOcclusionTrackerBase):
96922        (WebCore::CCOcclusionTrackerBase::StackObject::StackObject):
96923        (StackObject):
96924        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
96925        (WebCore::CCQuadCuller::appendSurface):
96926        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
96927        * platform/graphics/chromium/cc/CCRenderSurface.h:
96928        (CCRenderSurface):
96929
969302012-07-16  Florin Malita  <fmalita@chromium.org>
96931
96932        SVGAnimationElement::currentValuesForValuesAnimation crash
96933        https://bugs.webkit.org/show_bug.cgi?id=91326
96934
96935        Reviewed by Simon Fraser.
96936
96937        SVGSMILElement::progress() assumes that seekToIntervalCorrespondingToTime() always
96938        lands inside a defined interval, but one can force arbitrary time offsets using
96939        setCurrentTime(). This patch adds logic for handling non-interval time offsets
96940        gracefully.
96941
96942        Test: svg/animations/smil-setcurrenttime-crash.svg
96943
96944        * svg/animation/SVGSMILElement.cpp:
96945        (WebCore::SVGSMILElement::progress):
96946
969472012-07-16  Joshua Netterfield  <jnetterfield@rim.com>
96948
96949        [BlackBerry] Upstream WebGL Code
96950        https://bugs.webkit.org/show_bug.cgi?id=91143
96951
96952        Reviewed by Rob Buis.
96953
96954        This patch includes BlackBerry-specific fixes for anti-aliasing, logging, and shader compilation.
96955
96956        No new tests, because there is no new functionality.
96957
96958        * platform/graphics/GraphicsContext3D.h: Add a value for TI Imagination chipsets on BlackBerry platforms
96959        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp: Multiple downstream changes
96960        (WebCore::GraphicsContext3D::GraphicsContext3D):
96961        (WebCore::GraphicsContext3D::reshapeFBOs):
96962        (WebCore):
96963        (WebCore::GraphicsContext3D::logFrameBufferStatus):
96964        (WebCore::GraphicsContext3D::readPixelsIMG): BlackBerry-specific fix for Imagination hardware.
96965        (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer):
96966        (WebCore::GraphicsContext3D::platformTexture):
96967        (WebCore::GraphicsContext3D::platformGraphicsContext3D):
96968        (WebCore::GraphicsContext3D::paintToCanvas):
96969        * platform/graphics/opengl/Extensions3DOpenGL.h: Remove unnecessary whitespace.
96970        (Extensions3DOpenGL):
96971        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
96972        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Hack to fix ANGLE-generated code on BlackBerry platforms.
96973        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
96974        (Extensions3DOpenGLCommon):
96975        * platform/graphics/opengl/Extensions3DOpenGLES.cpp: I am not in a position to change system headers from correct to incorrect.
96976        (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisample):
96977        (WebCore::Extensions3DOpenGLES::supportsExtension):
96978        * platform/graphics/opengl/Extensions3DOpenGLES.h: I am not in a position to change system headers from correct to incorrect.
96979        (Extensions3DOpenGLES):
96980        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Add a BlackBerry-specific anti-aliasing fix.
96981        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
96982        (WebCore::GraphicsContext3D::prepareTexture):
96983        (WebCore::GraphicsContext3D::bindFramebuffer):
96984        (WebCore::GraphicsContext3D::compileShader):
96985        (WebCore::GraphicsContext3D::copyTexImage2D):
96986        (WebCore::GraphicsContext3D::copyTexSubImage2D):
96987        (WebCore):
96988        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
96989        (WebCore):
96990
969912012-07-16  Tony Chang  <tony@chromium.org>
96992
96993        Position grid items by row/column index
96994        https://bugs.webkit.org/show_bug.cgi?id=91293
96995
96996        Reviewed by Ojan Vafai.
96997
96998        Do some initial grid positioning. Only handle the simple case where tracks are
96999        fixed values and don't properly size the grid items. This gives us something to
97000        work with and starts implementing the "Grid Track Sizing Algorithm":
97001        http://dev.w3.org/csswg/css3-grid-layout/#grid-track-sizing-algorithm0
97002
97003        Test: fast/css-grid-layout/place-cell-by-index.html
97004
97005        * rendering/RenderGrid.cpp:
97006        (RenderGrid::GridTrack): Data structure for holding the track size. UsedBreadth matches the terminology
97007        used in the spec.
97008        (WebCore::RenderGrid::layoutBlock): Pull in some boiler plate code and put the
97009        grid specific code in layoutGridItems.
97010        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Implement part of the grid track sizing algorithm.
97011        (WebCore::RenderGrid::layoutGridItems): Compute the size of grid tracks, layout and position children.
97012        (WebCore::RenderGrid::findChildLogicalPosition): Map track sizes to the actual position of the child.
97013        * rendering/RenderGrid.h:
97014        * rendering/style/RenderStyle.h: Just return a copy of Length rather than a reference to Length. This seems
97015        more consistent with other getters that return a Length.
97016
970172012-07-16  Sami Kyostila  <skyostil@chromium.org>
97018
97019        [chromium] Only apply page scale delta to root scroll layer
97020        https://bugs.webkit.org/show_bug.cgi?id=91374
97021
97022        Reviewed by Adrienne Walker.
97023
97024        When the user pinch-zooms the web page though the Chromium compositor, the
97025        per-layer page scale delta is used to keep track of the difference between the
97026        page scale on the compositor thread versus the main thread. On the next
97027        commit to the main thread these values are reset to 1.
97028
97029        When calculating layer positions, the compositor applies a layer's page scale
97030        delta both to the layer itself as well as all of its children. Since we are
97031        currently updating the page scale delta on all scrollable layers, this results
97032        in scrollable child layers getting scaled multiple times.
97033
97034        This patch changes the compositor to only apply the page scale delta on the
97035        root scroll layer.
97036
97037        New unit test: CCLayerTreeHostImplTest.pageScaleDeltaAppliedToRootScrollLayerOnly
97038
97039        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
97040        (WebCore::CCLayerTreeHostImpl::setPageScaleFactorAndLimits):
97041        (WebCore::CCLayerTreeHostImpl::setPageScaleDelta):
97042
970432012-07-16  Kihong Kwon  <kihong.kwon@samsung.com>
97044
97045        Remove setController from BatteryClient
97046        https://bugs.webkit.org/show_bug.cgi?id=90944
97047
97048        Reviewed by Adam Barth.
97049
97050        BatteryClient doesn't need to keep m_controller,
97051        because BatteryController can be accessed using BatteryController::from().
97052        Remove BatteryClient::setController function.
97053
97054        No new tests. Covered by existing tests.
97055
97056        * Modules/battery/BatteryClient.h:
97057        * Modules/battery/BatteryController.cpp:
97058        (WebCore::BatteryController::BatteryController):
97059
970602012-07-16  Mike West  <mkwst@chromium.org>
97061
97062        Invalid `script-nonce` directives should block script execution.
97063        https://bugs.webkit.org/show_bug.cgi?id=91353
97064
97065        Reviewed by Adam Barth.
97066
97067        If the `script-nonce` Content Security Policy directive contains an
97068        invalid value, we should fail loudly, throwing a warning to the console
97069        and denying execution of script on the page. The is in line with the
97070        current state of the experimental CSP 1.1 Editors Draft[1].
97071
97072        [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-nonce--experimental
97073
97074        Test: http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html
97075
97076        * page/ContentSecurityPolicy.cpp:
97077        (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
97078            Check against null rather than empty for early exit, otherwise
97079            only compare nonces if the stored nonce isn't empty.
97080        (WebCore::CSPDirectiveList::parseScriptNonce):
97081            Assign the empty string if nonce is invalid.
97082
970832012-07-16  Min Qin  <qinmin@chromium.org>
97084
97085        [Android] remove RenderThemeChromiumAndroid::paintMediaFullscreenButton()
97086        https://bugs.webkit.org/show_bug.cgi?id=91291
97087
97088        Reviewed by Adam Barth.
97089
97090        The recent media control refactoring added paintMediaFullscreenButton() in RenderThemeChromiumSkia.
97091        Since RenderThemeChromiumAndroid inherits from that class, we don't need to redefine this function.
97092        No test needed as this change just removes an unnecessary override.
97093
97094        * rendering/RenderThemeChromiumAndroid.cpp:
97095        * rendering/RenderThemeChromiumAndroid.h:
97096
970972012-07-16  Peter Rybin  <peter.rybin@gmail.com>
97098
97099        Web Inspector: CodeGeneratorInspector.py: fix output write logic to support incremental build
97100        https://bugs.webkit.org/show_bug.cgi?id=90642
97101
97102        Reviewed by Yury Semikhatsky.
97103
97104        A small intermediate writer is added. It handles comparing old and new source before actual writing.
97105
97106        * inspector/CodeGeneratorInspector.py:
97107        (flatten_list):
97108        (SmartOutput):
97109        (SmartOutput.__init__):
97110        (SmartOutput.write):
97111        (SmartOutput.close):
97112
971132012-07-16  Dana Jansens  <danakj@chromium.org>
97114
97115        [chromium] Incorrect assertion: Replicas will cause a RenderPass to be removed twice
97116        https://bugs.webkit.org/show_bug.cgi?id=91328
97117
97118        Reviewed by Adrienne Walker.
97119
97120        We asserted that we would never attempt to remove a render pass that had
97121        already been removed. This was incorrect as a surface with a replica has
97122        two quads and both may cause us to attempt its removal. We must handle
97123        this case gracefully.
97124
97125        Test: CCLayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit
97126
97127        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
97128        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass):
97129
971302012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
97131
97132        Web Inspector: native memory: fix instrumentation for string members
97133        https://bugs.webkit.org/show_bug.cgi?id=91384
97134
97135        Reviewed by Pavel Feldman.
97136
97137        It was possible to report a string member via addMember instead of addString.
97138        This patch is fixing the problem and adding a link time guard.
97139
97140        Covered by existing inspector performance tests infrastructure.
97141
97142        * dom/ElementAttributeData.h:
97143        (WebCore::ElementAttributeData::reportMemoryUsage):
97144        * dom/MemoryInstrumentation.h:
97145        (WebCore):
97146        (WebCore::MemoryClassInfo::addString):
97147        * dom/QualifiedName.h:
97148        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
97149
971502012-07-16  Zoltan Horvath  <zoltan@webkit.org>
97151
97152        Unreviewed. Remove unnecessary executable bits after r122720.
97153
97154        * platform/graphics/ImageSource.h:
97155        * platform/graphics/qt/ImageBufferQt.cpp:
97156        * platform/graphics/qt/ImageDecoderQt.cpp:
97157        * platform/graphics/qt/ImageQt.cpp:
97158        * platform/graphics/qt/StillImageQt.h:
97159        * platform/graphics/qt/TransparencyLayer.h:
97160
971612012-07-16  Zoltan Horvath  <zoltan@webkit.org>
97162
97163        [Qt] Change NativeImagePtr from QPixmap* to QImage*
97164        https://bugs.webkit.org/show_bug.cgi?id=88785
97165
97166        Reviewed by Simon Hausmann.
97167
97168        Since we use raster engine there is no difference between QPixmap and QImage, so we are going
97169        to use QImage everywhere where it is possible. This refactoring contains the change of the
97170        NativeImagePtr typedef from QPixmap* to QImage* and covers the related modifications.
97171
97172        Part of the change is similar to Viatcheslav Ostapenko's internal work.
97173
97174        Covered by existing tests.
97175
97176        * bridge/qt/qt_pixmapruntime.cpp:
97177        (JSC::Bindings::QtPixmapAssignToElementMethod::invoke):
97178        (JSC::Bindings::QtPixmapInstance::variantFromObject):
97179        * platform/DragImage.h:
97180        (WebCore):
97181        * platform/graphics/GraphicsContext.h:
97182        (GraphicsContext):
97183        * platform/graphics/Image.h:
97184        (Image):
97185        * platform/graphics/ImageSource.h:
97186        (WebCore):
97187        * platform/graphics/gstreamer/ImageGStreamer.h:
97188        * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
97189        (ImageGStreamer::ImageGStreamer):
97190        * platform/graphics/qt/GraphicsContext3DQt.cpp:
97191        (WebCore::GraphicsContext3D::getImageData):
97192        * platform/graphics/qt/GraphicsContextQt.cpp:
97193        (WebCore::GraphicsContext::pushTransparencyLayerInternal):
97194        (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
97195        (WebCore::GraphicsContext::endPlatformTransparencyLayer):
97196        * platform/graphics/qt/ImageBufferDataQt.h:
97197        (ImageBufferData):
97198        * platform/graphics/qt/ImageBufferQt.cpp:
97199        (WebCore::ImageBufferData::ImageBufferData):
97200        (WebCore::ImageBuffer::copyImage):
97201        (WebCore::ImageBuffer::clip):
97202        (WebCore::ImageBuffer::platformTransformColorSpace):
97203        (WebCore::getImageData):
97204        (WebCore::ImageBuffer::putByteArray):
97205        (WebCore::encodeImage):
97206        (WebCore::ImageBuffer::toDataURL):
97207        * platform/graphics/qt/ImageDecoderQt.cpp:
97208        (WebCore::ImageFrame::asNewNativeImage):
97209        * platform/graphics/qt/ImageQt.cpp:
97210        (graphics):
97211        (loadResourceImage):
97212        (WebCore::Image::loadPlatformResource):
97213        (WebCore::Image::setPlatformResource):
97214        (WebCore::Image::drawPattern):
97215        (WebCore::BitmapImage::BitmapImage):
97216        (WebCore::BitmapImage::draw):
97217        (WebCore::BitmapImage::checkForSolidColor):
97218        (WebCore::BitmapImage::create):
97219        * platform/graphics/qt/NativeImageQt.h: Added.
97220        (WebCore):
97221        (NativeImageQt):
97222        (WebCore::NativeImageQt::defaultFormatForAlphaEnabledImages):
97223        (WebCore::NativeImageQt::defaultFormatForOpaqueImages):
97224         * platform/graphics/qt/PatternQt.cpp:
97225        (WebCore::Pattern::createPlatformPattern):
97226        * platform/graphics/qt/StillImageQt.cpp:
97227        (WebCore::StillImage::StillImage):
97228        (WebCore::StillImage::~StillImage):
97229        (WebCore::StillImage::currentFrameHasAlpha):
97230        (WebCore::StillImage::size):
97231        (WebCore::StillImage::nativeImageForCurrentFrame):
97232        (WebCore::StillImage::draw):
97233        * platform/graphics/qt/StillImageQt.h:
97234        (WebCore::StillImage::create):
97235        (WebCore::StillImage::createForRendering):
97236        (StillImage):
97237        * platform/graphics/qt/TransparencyLayer.h:
97238        (WebCore::TransparencyLayer::TransparencyLayer):
97239        (TransparencyLayer):
97240        * platform/graphics/texmap/TextureMapperGL.cpp:
97241        * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
97242        (WebCore::GraphicsSurface::createReadOnlyImage):
97243         * platform/qt/ClipboardQt.cpp:
97244        (WebCore::ClipboardQt::createDragImage):
97245        (WebCore::ClipboardQt::declareAndWriteDragImage):
97246        * platform/qt/CursorQt.cpp:
97247        (WebCore::createCustomCursor):
97248        * platform/qt/DragImageQt.cpp:
97249        (WebCore::createDragImageFromImage):
97250        * platform/qt/PasteboardQt.cpp:
97251        (WebCore::Pasteboard::writeImage):
97252
972532012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
97254
97255        Web Inspector: moving forward to the better memory instrumentation API
97256        https://bugs.webkit.org/show_bug.cgi?id=91259
97257
97258        Reviewed by Pavel Feldman.
97259
97260        I'm trying to remove unnecessary complexity of the API
97261        reportInstrumentedObject and reportInstrumentedPointer will be replaced with addInstrumentedMember
97262        The same will happen with reportPointer, reportObject pair.
97263        Also info.report* will be replaced with info.add*
97264
97265        * bindings/js/ScriptWrappable.h:
97266        (WebCore::ScriptWrappable::reportMemoryUsage):
97267        * bindings/v8/DOMDataStore.cpp:
97268        (WebCore::DOMDataStore::reportMemoryUsage):
97269        * bindings/v8/IntrusiveDOMWrapperMap.h:
97270        (WebCore::ChunkedTable::reportMemoryUsage):
97271        * bindings/v8/ScriptProfiler.cpp:
97272        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
97273        * bindings/v8/ScriptWrappable.h:
97274        (WebCore::ScriptWrappable::reportMemoryUsage):
97275        * bindings/v8/V8Binding.cpp:
97276        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
97277        (WebCore::StringCache::reportMemoryUsage):
97278        * bindings/v8/V8DOMMap.h:
97279        * css/StylePropertySet.h:
97280        (WebCore::StylePropertySet::reportMemoryUsage):
97281        * dom/CharacterData.cpp:
97282        (WebCore::CharacterData::reportMemoryUsage):
97283        * dom/ContainerNode.h:
97284        (WebCore::ContainerNode::reportMemoryUsage):
97285        * dom/Document.cpp:
97286        (WebCore::Document::reportMemoryUsage):
97287        * dom/Element.h:
97288        (WebCore::Element::reportMemoryUsage):
97289        * dom/ElementAttributeData.h:
97290        (WebCore::ElementAttributeData::reportMemoryUsage):
97291        * dom/MemoryInstrumentation.h:
97292        (WebCore::MemoryInstrumentation::addInstrumentedMember):
97293        (MemoryInstrumentation):
97294        (WebCore::MemoryInstrumentation::addMember):
97295        (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedMember):
97296        (WebCore::MemoryInstrumentation::OwningTraits::addMember):
97297        (WebCore::MemoryInstrumentation::addInstrumentedMemberImpl):
97298        (WebCore::MemoryInstrumentation::addMemberImpl):
97299        (WebCore::MemoryClassInfo::addInstrumentedMember):
97300        (WebCore::MemoryClassInfo::addMember):
97301        (WebCore::MemoryClassInfo::addHashMap):
97302        (WebCore::MemoryClassInfo::addHashSet):
97303        (WebCore::MemoryClassInfo::addListHashSet):
97304        (WebCore::MemoryClassInfo::addVector):
97305        (WebCore::MemoryClassInfo::addString):
97306        (WebCore::MemoryInstrumentation::addHashMap):
97307        (WebCore::MemoryInstrumentation::addHashSet):
97308        (WebCore::MemoryInstrumentation::addListHashSet):
97309        (WebCore::MemoryInstrumentation::addVector):
97310        * dom/Node.cpp:
97311        (WebCore::Node::reportMemoryUsage):
97312        * dom/QualifiedName.h:
97313        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
97314        (WebCore::QualifiedName::reportMemoryUsage):
97315        * inspector/InspectorMemoryAgent.cpp:
97316        (WebCore):
97317        * platform/TreeShared.h:
97318        (WebCore::TreeShared::reportMemoryUsage):
97319
973202012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
97321
97322        Unreviewed, rolling out r122714.
97323        http://trac.webkit.org/changeset/122714
97324        https://bugs.webkit.org/show_bug.cgi?id=91380
97325
97326        It broke mac compilation (Requested by loislo on #webkit).
97327
97328        * bindings/js/ScriptWrappable.h:
97329        (WebCore::ScriptWrappable::reportMemoryUsage):
97330        * bindings/v8/DOMDataStore.cpp:
97331        (WebCore::DOMDataStore::reportMemoryUsage):
97332        * bindings/v8/IntrusiveDOMWrapperMap.h:
97333        (WebCore::ChunkedTable::reportMemoryUsage):
97334        * bindings/v8/ScriptProfiler.cpp:
97335        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
97336        * bindings/v8/ScriptWrappable.h:
97337        (WebCore::ScriptWrappable::reportMemoryUsage):
97338        * bindings/v8/V8Binding.cpp:
97339        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
97340        (WebCore::StringCache::reportMemoryUsage):
97341        * bindings/v8/V8DOMMap.h:
97342        * css/StylePropertySet.h:
97343        (WebCore::StylePropertySet::reportMemoryUsage):
97344        * dom/CharacterData.cpp:
97345        (WebCore::CharacterData::reportMemoryUsage):
97346        * dom/ContainerNode.h:
97347        (WebCore::ContainerNode::reportMemoryUsage):
97348        * dom/Document.cpp:
97349        (WebCore::Document::reportMemoryUsage):
97350        * dom/Element.h:
97351        (WebCore::Element::reportMemoryUsage):
97352        * dom/ElementAttributeData.h:
97353        (WebCore::ElementAttributeData::reportMemoryUsage):
97354        * dom/MemoryInstrumentation.h:
97355        (WebCore::MemoryInstrumentation::reportObject):
97356        (MemoryInstrumentation):
97357        (WebCore::MemoryInstrumentation::reportPointer):
97358        (WebCore::MemoryClassInfo::reportInstrumentedPointer):
97359        (WebCore::MemoryClassInfo::reportInstrumentedObject):
97360        (WebCore::MemoryClassInfo::reportPointer):
97361        (WebCore::MemoryClassInfo::reportObject):
97362        (WebCore::MemoryClassInfo::reportHashMap):
97363        (WebCore::MemoryClassInfo::reportHashSet):
97364        (WebCore::MemoryClassInfo::reportListHashSet):
97365        (WebCore::MemoryClassInfo::reportVector):
97366        (MemoryClassInfo):
97367        (WebCore::MemoryClassInfo::reportString):
97368        (WebCore):
97369        (WebCore::MemoryInstrumentation::reportInstrumentedPointer):
97370        (WebCore::MemoryInstrumentation::reportInstrumentedObject):
97371        (WebCore::MemoryInstrumentation::reportHashMap):
97372        (WebCore::MemoryInstrumentation::reportHashSet):
97373        (WebCore::MemoryInstrumentation::reportListHashSet):
97374        (WebCore::MemoryInstrumentation::reportVector):
97375        * dom/Node.cpp:
97376        (WebCore::Node::reportMemoryUsage):
97377        * dom/QualifiedName.h:
97378        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
97379        (WebCore::QualifiedName::reportMemoryUsage):
97380        * inspector/InspectorMemoryAgent.cpp:
97381        (WebCore):
97382        * platform/TreeShared.h:
97383        (WebCore::TreeShared::reportMemoryUsage):
97384
973852012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
97386
97387        Web Inspector: moving forward to the better memory instrumentation API
97388        https://bugs.webkit.org/show_bug.cgi?id=91259
97389
97390        Reviewed by Pavel Feldman.
97391
97392        I'm trying to remove unnecessary complexity of the API
97393        reportInstrumentedObject and reportInstrumentedPointer will be replaced with addInstrumentedMember
97394        The same will happen with reportPointer, reportObject pair.
97395        Also info.report* will be replaced with info.add*
97396
97397        * bindings/js/ScriptWrappable.h:
97398        (WebCore::ScriptWrappable::reportMemoryUsage):
97399        * bindings/v8/DOMDataStore.cpp:
97400        (WebCore::DOMDataStore::reportMemoryUsage):
97401        * bindings/v8/IntrusiveDOMWrapperMap.h:
97402        (WebCore::ChunkedTable::reportMemoryUsage):
97403        * bindings/v8/ScriptProfiler.cpp:
97404        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
97405        * bindings/v8/ScriptWrappable.h:
97406        (WebCore::ScriptWrappable::reportMemoryUsage):
97407        * bindings/v8/V8Binding.cpp:
97408        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
97409        (WebCore::StringCache::reportMemoryUsage):
97410        * bindings/v8/V8DOMMap.h:
97411        * css/StylePropertySet.h:
97412        (WebCore::StylePropertySet::reportMemoryUsage):
97413        * dom/CharacterData.cpp:
97414        (WebCore::CharacterData::reportMemoryUsage):
97415        * dom/ContainerNode.h:
97416        (WebCore::ContainerNode::reportMemoryUsage):
97417        * dom/Document.cpp:
97418        (WebCore::Document::reportMemoryUsage):
97419        * dom/Element.h:
97420        (WebCore::Element::reportMemoryUsage):
97421        * dom/ElementAttributeData.h:
97422        (WebCore::ElementAttributeData::reportMemoryUsage):
97423        * dom/MemoryInstrumentation.h:
97424        (WebCore::MemoryInstrumentation::addInstrumentedMember):
97425        (MemoryInstrumentation):
97426        (WebCore::MemoryInstrumentation::addMember):
97427        (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedMember):
97428        (WebCore::MemoryInstrumentation::OwningTraits::addMember):
97429        (WebCore::MemoryInstrumentation::addInstrumentedMemberImpl):
97430        (WebCore::MemoryInstrumentation::addMemberImpl):
97431        (WebCore::MemoryClassInfo::addInstrumentedMember):
97432        (WebCore::MemoryClassInfo::addMember):
97433        (WebCore::MemoryClassInfo::addHashMap):
97434        (WebCore::MemoryClassInfo::addHashSet):
97435        (WebCore::MemoryClassInfo::addListHashSet):
97436        (WebCore::MemoryClassInfo::addVector):
97437        (WebCore::MemoryClassInfo::addString):
97438        (WebCore::MemoryInstrumentation::addHashMap):
97439        (WebCore::MemoryInstrumentation::addHashSet):
97440        (WebCore::MemoryInstrumentation::addListHashSet):
97441        (WebCore::MemoryInstrumentation::addVector):
97442        * dom/Node.cpp:
97443        (WebCore::Node::reportMemoryUsage):
97444        * dom/QualifiedName.h:
97445        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
97446        (WebCore::QualifiedName::reportMemoryUsage):
97447        * inspector/InspectorMemoryAgent.cpp:
97448        (WebCore):
97449        * platform/TreeShared.h:
97450        (WebCore::TreeShared::reportMemoryUsage):
97451
974522012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
97453
97454        Web Inspector: native memory instrumentation: extract instrumentation methods into MemoryClassInfo
97455        https://bugs.webkit.org/show_bug.cgi?id=91227
97456
97457        Reviewed by Pavel Feldman.
97458
97459        void Node::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
97460        {
97461            MemoryClassInfo<Node> info(memoryObjectInfo, this, MemoryInstrumentation::DOM);
97462            info.visitBaseClass<ScriptWrappable>(this);
97463
97464            info.addMember(m_notInstrumentedPointer); // automatically detects poniter/reference
97465            info.addInstrumentedMember(m_next);
97466            info.addHashSet<MemoryInstrumentation::NonClass>(m_aHash);                // NonClass value_type (report only size of internal template structures)
97467            info.addHashSet<MemoryInstrumentation::NotInstrumentedClass>(m_aHashSet); // not instrumented value_type (use sizeof)
97468            info.addHashSet<MemoryInstrumentation::InstrumentedClass>(m_aHashSet);    // instrumented value_type (call visit)
97469        }
97470
97471        The change is covered by existing tests for native memory snapshot.
97472
97473        * bindings/v8/DOMDataStore.cpp:
97474        (WebCore::DOMDataStore::reportMemoryUsage):
97475        * bindings/v8/IntrusiveDOMWrapperMap.h:
97476        (WebCore::ChunkedTable::reportMemoryUsage):
97477        * bindings/v8/ScriptWrappable.h:
97478        (WebCore::ScriptWrappable::reportMemoryUsage):
97479        * bindings/v8/V8Binding.cpp:
97480        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
97481        (WebCore::StringCache::reportMemoryUsage):
97482        * bindings/v8/V8DOMMap.h:
97483        * css/StylePropertySet.h:
97484        (WebCore::StylePropertySet::reportMemoryUsage):
97485        * dom/CharacterData.cpp:
97486        (WebCore::CharacterData::reportMemoryUsage):
97487        * dom/ContainerNode.h:
97488        (WebCore::ContainerNode::reportMemoryUsage):
97489        * dom/Document.cpp:
97490        (WebCore::Document::reportMemoryUsage):
97491        * dom/Element.h:
97492        (WebCore::Element::reportMemoryUsage):
97493        * dom/ElementAttributeData.h:
97494        (WebCore::ElementAttributeData::reportMemoryUsage):
97495        * dom/MemoryInstrumentation.h:
97496        (MemoryInstrumentation):
97497        (WebCore::MemoryObjectInfo::objectType):
97498        (WebCore::MemoryObjectInfo::objectSize):
97499        (WebCore::MemoryObjectInfo::memoryInstrumentation):
97500        (MemoryObjectInfo):
97501        (WebCore::MemoryObjectInfo::reportObjectInfo):
97502        (WebCore):
97503        (MemoryClassInfo):
97504        (WebCore::MemoryClassInfo::MemoryClassInfo):
97505        (WebCore::MemoryClassInfo::visitBaseClass):
97506        (WebCore::MemoryClassInfo::reportInstrumentedPointer):
97507        (WebCore::MemoryClassInfo::reportInstrumentedObject):
97508        (WebCore::MemoryClassInfo::reportPointer):
97509        (WebCore::MemoryClassInfo::reportObject):
97510        (WebCore::MemoryClassInfo::reportHashMap):
97511        (WebCore::MemoryClassInfo::reportHashSet):
97512        (WebCore::MemoryClassInfo::reportListHashSet):
97513        (WebCore::MemoryClassInfo::reportVector):
97514        (WebCore::MemoryClassInfo::reportString):
97515        * dom/Node.cpp:
97516        (WebCore::Node::reportMemoryUsage):
97517        * dom/QualifiedName.h:
97518        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
97519        (WebCore::QualifiedName::reportMemoryUsage):
97520        * platform/TreeShared.h:
97521        (WebCore::TreeShared::reportMemoryUsage):
97522
975232012-07-15  Carlos Garcia Campos  <cgarcia@igalia.com>
97524
97525        Unreviewed. Fix make distcheck.
97526
97527        * GNUmakefile.am: Add missing idl directory.
97528        * GNUmakefile.list.am: Add missing files to compilation.
97529
975302012-07-16  Eugene Klyuchnikov  <eustas.big@gmail.com>
97531
97532        Web Inspector: Implement message loop instrumentation for timeline
97533        https://bugs.webkit.org/show_bug.cgi?id=88325
97534
97535        Reviewed by Pavel Feldman.
97536
97537        Message loop instrumentation will show when the render thread is busy.
97538
97539        * inspector/front-end/Settings.js:
97540        (WebInspector.ExperimentsSettings):
97541        Added new experiment.
97542        * inspector/front-end/TimelineGrid.js:
97543        (WebInspector.TimelineGrid.prototype.get dividersLabelBarElement):
97544        Exposed label bar element.
97545        * inspector/front-end/TimelinePanel.js:
97546        (WebInspector.TimelinePanel):
97547        (WebInspector.TimelinePanel.prototype._resetPanel):
97548        Cleanups recorded tasks.
97549        (WebInspector.TimelinePanel.prototype._refresh):
97550        Updates CPU bar.
97551        (WebInspector.TimelinePanel.prototype._refreshRecords):
97552        Ditto.
97553        (WebInspector.TimelinePanel.prototype._refreshCpuBars.compareEndTime):
97554        Ditto.
97555        (WebInspector.TimelinePanel.prototype._refreshCpuBars):
97556        Ditto.
97557        (WebInspector.TimelinePanel.prototype._enableMainThreadMonitoringExperiment):
97558        Adds CPU bar to UI.
97559        (WebInspector.TimelinePanel.prototype._showPopover):
97560        Fix NPE.
97561        (WebInspector.TimelineCalculator.prototype.computeTime):
97562        Utility for position to time conversion.
97563        (WebInspector.TimelineCalculator.prototype.setDisplayWindow):
97564        Remenbers clientWidth.
97565        * inspector/front-end/TimelinePresentationModel.js:
97566        (WebInspector.TimelinePresentationModel.categories):
97567        Define CPU bar colors.
97568        * inspector/front-end/timelinePanel.css:
97569        (.timeline-cpu-bars):
97570        CPU bar styles.
97571        (.timeline-cpu-bars-label):
97572        Ditto.
97573
975742012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
97575
97576        Unreviewed, rolling out r122681.
97577        http://trac.webkit.org/changeset/122681
97578        https://bugs.webkit.org/show_bug.cgi?id=91363
97579
97580        Patch introduces crashes in debug builds for GTK and EFL ports
97581        (Requested by zdobersek on #webkit).
97582
97583        * platform/ScrollableArea.cpp:
97584        (WebCore::ScrollableArea::scrollPositionChanged):
97585
975862012-07-16  Luke Macpherson  <macpherson@chromium.org>
97587
97588        Compilation failure in StyleResolver.cpp (clang)
97589        https://bugs.webkit.org/show_bug.cgi?id=89892
97590
97591        Reviewed by Ryosuke Niwa.
97592
97593        Patch adds assertions that unreachable code is in fact not reached.
97594
97595        Covered by fast/css/variables tests.
97596
97597        * css/CSSParser.cpp:
97598        (WebCore::CSSParser::parseValue):
97599        * css/StyleResolver.cpp:
97600        (WebCore::StyleResolver::collectMatchingRulesForList):
97601
976022012-07-15  Mike Lawther  <mikelawther@chromium.org>
97603
97604        Fix calculation of rgba's alpha in CSS custom text
97605        https://bugs.webkit.org/show_bug.cgi?id=91355
97606
97607        Reviewed by Ryosuke Niwa.
97608
97609        Alpha values are stored as an 8 bit value. To convert this to a float in the
97610        range [0,1], we need to divide by 255, not 256. 
97611
97612        Test: fast/css/rgba-custom-text.html
97613
97614        * css/CSSPrimitiveValue.cpp:
97615        (WebCore::CSSPrimitiveValue::customCssText):
97616
976172012-07-15  Jason Liu  <jason.liu@torchmobile.com.cn>
97618
97619        [BlackBerry] We shouldn't call didFinishLoading for the old request when a new request has been sent by notifyAuthReceived.
97620        https://bugs.webkit.org/show_bug.cgi?id=90962
97621
97622        Reviewed by Rob Buis.
97623
97624        We start a new NetworkJob with credentials after receiving 401/407 status.
97625        We should not release resources in webcore when the old job is closed because
97626        they are needed by the new one.
97627        We should do as 3XX.
97628
97629        No new tests. No change in behaviour.
97630
97631        * platform/network/blackberry/NetworkJob.cpp:
97632        (WebCore::NetworkJob::NetworkJob):
97633        (WebCore::NetworkJob::notifyAuthReceived):
97634        (WebCore::NetworkJob::shouldReleaseClientResource):
97635        (WebCore::NetworkJob::handleRedirect):
97636        * platform/network/blackberry/NetworkJob.h:
97637        (NetworkJob):
97638
976392012-07-15  Ryosuke Niwa  <rniwa@webkit.org>
97640
97641        REGRESSION(r122660): Cannot iterate over HTMLCollection that contains non-child descendent nodes in some conditions
97642        https://bugs.webkit.org/show_bug.cgi?id=91334
97643
97644        Reviewed by Ojan Vafai.
97645
97646        The bug was caused by using lastChild() as the starting node for traversePreviousNode. Since it's the inverse of
97647        Node::traverseNextNode(), which visits nodes in pre order, we must start our search from the last descendent node,
97648        which is visited traverseNextNode immediately before reaching the root node.
97649
97650        Test: fast/dom/htmlcollection-backwards-subtree-iteration.html
97651
97652        * html/HTMLCollection.cpp:
97653        (WebCore::lastDescendent):
97654        (WebCore):
97655        (WebCore::itemBeforeOrAfter):
97656
976572012-07-15  Joseph Pecoraro  <pecoraro@apple.com>
97658
97659        Windowless WebView not firing JavaScript load event if there is a media element
97660        https://bugs.webkit.org/show_bug.cgi?id=91331
97661
97662        Reviewed by Eric Carlson.
97663
97664        In prepareForLoad we start deferring the load event. If we fall into this
97665        clause where the page can not start loading media we bail, potentially
97666        indefinitely waiting until we can start loading media. Since we can not
97667        be certain this will ever happen, we should stop deferring the page's
97668        load event.
97669
97670        Test: WebKit1.WindowlessWebViewWithMedia TestWebKitAPI test. The only
97671        way this path was reachable right now is on the mac port.
97672
97673        * html/HTMLMediaElement.cpp:
97674        (WebCore::HTMLMediaElement::loadInternal):
97675
976762012-07-15  Dan Bernstein  <mitz@apple.com>
97677
97678        <rdar://problem/11875795> REGRESSION (tiled drawing): Page’s scroll bars flash with each character you type in a textarea (affects Wikipedia and YouTube)
97679        https://bugs.webkit.org/show_bug.cgi?id=91348
97680
97681        Reviewed by Anders Carlsson.
97682
97683        * platform/ScrollableArea.cpp:
97684        (WebCore::ScrollableArea::scrollPositionChanged): Added an early return if the scroll position
97685        did not, in fact, change. This avoids the call to ScrollAnimator::notifyContentAreaScrolled,
97686        which is what causes the scroll bars to flash.
97687
976882012-07-14  Eric Carlson  <eric.carlson@apple.com>
97689
97690        Enable AVCF hardware video decoding
97691        https://bugs.webkit.org/show_bug.cgi?id=90015
97692        <rdar://problem/10770317>
97693
97694        Reviewed by Anders Carlsson.
97695
97696        * html/HTMLMediaElement.cpp:
97697        (WebCore):
97698        (WebCore::HTMLMediaElement::mediaPlayerGraphicsDeviceAdapter): New, return the client's graphics 
97699            device adapter.
97700        * html/HTMLMediaElement.h:
97701
97702        * page/ChromeClient.h:
97703        (WebCore::ChromeClient::graphicsDeviceAdapter): New.
97704
97705        * platform/graphics/MediaPlayer.cpp:
97706        (WebCore::MediaPlayer::graphicsDeviceAdapter): New, ask the media element for the graphics
97707            device adapter.
97708        * platform/graphics/MediaPlayer.h:
97709
97710        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Soft-link AVCFPlayerSetDirect3DDevice
97711            and AVCFPlayerEnableHardwareAcceleratedVideoDecoderKey.
97712
97713        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: 
97714        (WebCore::MediaPlayerPrivateAVFoundationCF::createAVAssetForURL): Pass the current d3d9
97715            device interface to the AVFWrapper.
97716        (WebCore::AVFWrapper::createAssetForURL): If the d3d9 device implements IDirect3DDevice9Ex,
97717            tell the AVAsset to enable hardware video decoding.
97718        (WebCore::AVFWrapper::createPlayer): Pass the d3d9 device to the player if it implements IDirect3DDevice9Ex.
97719
97720        * platform/graphics/ca/win/CACFLayerTreeHost.h:
97721        (WebCore::CACFLayerTreeHost::graphicsDeviceAdapter): New, default implementation.
97722
97723        * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
97724        (WebCore::LegacyCACFLayerTreeHost::graphicsDeviceAdapter): New, default implementation.
97725        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
97726        (WebCore::WKCACFViewLayerTreeHost::graphicsDeviceAdapter): New.
97727        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
97728
97729        * platform/win/SoftLinking.h: Define SOFT_LINK_DLL_IMPORT_OPTIONAL, SOFT_LINK_LOADED_LIBRARY,
97730            and SOFT_LINK_VARIABLE_DLL_IMPORT_OPTIONAL.
97731
977322012-07-14  Ryosuke Niwa  <rniwa@webkit.org>
97733
97734        Fix Chromium Mac build failure after r122670.
97735
97736        * platform/graphics/mac/ComplexTextController.cpp:
97737
977382012-07-14  Mark Rowe  <mrowe@apple.com>
97739
97740        Fix the Snow Leopard build.
97741
97742        * platform/LocalizedStrings.cpp:
97743        (WebCore::contextMenuItemTagLookUpInDictionary): Fix a typo in the condition so that Snow Leopard
97744        continues to take the expected path.
97745
977462012-07-14  Ryosuke Niwa  <rniwa@webkit.org>
97747
97748        Accessing the last item in children should be a constant time operation
97749        https://bugs.webkit.org/show_bug.cgi?id=91320
97750
97751        Reviewed by Ojan Vafai.
97752
97753        Traverse nodes from the last item when the target offset we're looking for is closer to the last item
97754        than to the cached item. e.g. if the cached item was at offset 0 in the collection and length was 100,
97755        we should not be looking for the item at offset 95 from the cached item.
97756
97757        Note that this trick can be only used in HTML collection that supports itemBefore and when the length
97758        cache is available.
97759
97760        Also broke shouldSearchFromFirstItem into smaller logical pieces to clarify the intents.
97761
97762        Test: perf/htmlcollection-last-item.html
97763
97764        * html/HTMLCollection.cpp:
97765        (WebCore):
97766        (WebCore::HTMLCollection::isLastItemCloserThanLastOrCachedItem):
97767        (WebCore::HTMLCollection::isFirstItemCloserThanCachedItem):
97768        (WebCore::HTMLCollection::item):
97769        * html/HTMLCollection.h:
97770        (HTMLCollection):
97771
977722012-07-14  Mark Rowe  <mrowe@apple.com>
97773
97774        Fix the Windows build.
97775
97776        * platform/network/cf/DNSCFNet.cpp: Fix the condition to take Windows in to account.
97777
977782012-07-14  Mark Rowe  <mrowe@apple.com>
97779
97780        Make it explicit which code paths iOS should use when doing checks based on OS X versions.
97781
97782        Rubber-stamped by David Kilzer.
97783
97784        * WebCore.exp.in:
97785        * accessibility/AccessibilityList.h:
97786        * accessibility/AccessibilityTable.h:
97787        * accessibility/mac/AXObjectCacheMac.mm:
97788        * editing/mac/EditorMac.mm:
97789        * loader/MainResourceLoader.cpp:
97790        * loader/MainResourceLoader.h:
97791        * page/AlternativeTextClient.h:
97792        * page/mac/SettingsMac.mm:
97793        * platform/LocalizedStrings.cpp:
97794        * platform/MemoryPressureHandler.cpp:
97795        * platform/audio/mac/AudioBusMac.mm:
97796        * platform/graphics/Gradient.h:
97797        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
97798        * platform/graphics/ca/GraphicsLayerCA.cpp:
97799        * platform/graphics/ca/PlatformCALayer.h:
97800        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
97801        * platform/graphics/ca/mac/TileCache.mm:
97802        * platform/graphics/cg/GraphicsContextCG.cpp:
97803        * platform/graphics/cg/ImageBufferCG.cpp:
97804        * platform/graphics/cg/ImageBufferDataCG.h:
97805        * platform/graphics/cg/ImageCG.cpp:
97806        * platform/graphics/cg/ImageSourceCG.cpp:
97807        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
97808        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
97809        * platform/graphics/mac/ComplexTextController.cpp:
97810        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
97811        * platform/graphics/mac/FontCacheMac.mm:
97812        * platform/graphics/mac/FontCustomPlatformData.cpp:
97813        * platform/graphics/mac/FontMac.mm:
97814        * platform/graphics/mac/GraphicsContextMac.mm:
97815        * platform/graphics/mac/SimpleFontDataMac.mm:
97816        * platform/graphics/mac/WebLayer.h:
97817        * platform/graphics/mac/WebLayer.mm:
97818        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
97819        * platform/mac/DisplaySleepDisabler.cpp:
97820        * platform/mac/DisplaySleepDisabler.h:
97821        * platform/mac/HTMLConverter.h:
97822        * platform/mac/HTMLConverter.mm:
97823        * platform/mac/MemoryPressureHandlerMac.mm:
97824        * platform/mac/SharedTimerMac.mm:
97825        * platform/mac/SuddenTermination.mm:
97826        * platform/mac/WebFontCache.mm:
97827        * platform/network/Credential.h:
97828        * platform/network/ResourceHandle.h:
97829        * platform/network/cf/DNSCFNet.cpp:
97830        * platform/network/cf/ProxyServerCFNet.cpp:
97831        * platform/network/cf/ResourceRequest.h:
97832        * platform/network/cf/SocketStreamHandleCFNet.cpp:
97833        * platform/network/mac/AuthenticationMac.mm:
97834        * platform/network/mac/CookieStorageMac.mm:
97835        * platform/network/mac/ResourceHandleMac.mm:
97836        * platform/network/mac/ResourceRequestMac.mm:
97837        * platform/network/mac/WebCoreURLResponse.mm:
97838        * platform/text/TextChecking.h:
97839        * platform/text/cf/HyphenationCF.cpp:
97840        * platform/text/mac/HyphenationMac.mm:
97841        * rendering/RenderLayerBacking.cpp:
97842        * rendering/RenderLayerCompositor.cpp:
97843
978442012-07-14  Sheriff Bot  <webkit.review.bot@gmail.com>
97845
97846        Unreviewed, rolling out r122614.
97847        http://trac.webkit.org/changeset/122614
97848        https://bugs.webkit.org/show_bug.cgi?id=91317
97849
97850        Broke performance tests (Requested by rniwa on #webkit).
97851
97852        * bindings/v8/V8Binding.cpp:
97853        (WebCore::StringCache::v8ExternalStringSlow):
97854
978552012-07-05  Robert Hogan  <robert@webkit.org>
97856
97857        CSS 2.1 failure: vertical-align-boxes-001 fails
97858        https://bugs.webkit.org/show_bug.cgi?id=90626
97859
97860        Reviewed by Eric Seidel.
97861
97862        Tests: css2.1/20110323/vertical-align-boxes-001.htm
97863
97864        A percentage value vertical-align is always a percentage of the actual line-height rather than
97865        the margin box per http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align: 'Percentages: 
97866        refer to the 'line-height' of the element itself'.  Confusingly, RenderBox::lineheight() is a
97867        shorthand into the dimensions of the margin box for replaced elements in the other vertical-align
97868        cases, i.e. where it's the margin box that's relevant rather than the 'line-height'. So rather than patch RenderBox's
97869        lineHeight() to somehow consider the percentage cases, just give percentage vertical-align the full computedLineHeight()
97870        rather than lineHeight()'s margin box.
97871
97872        * rendering/RootInlineBox.cpp:
97873        (WebCore::RootInlineBox::verticalPositionForBox):
97874
978752012-07-13  Ryosuke Niwa  <rniwa@webkit.org>
97876
97877        Iterating backwards over HTMLCollection is O(n^2)
97878        https://bugs.webkit.org/show_bug.cgi?id=91306
97879
97880        Reviewed by Anders Carlsson.
97881
97882        Fixed the bug by introducing itemBefore that iterates nodes backwards to complement itemAfter.
97883        Unfortunately, some HTML collections such as HTMLFormCollection and HTMLTableRowsCollection have
97884        its own itemAfter function and writing an equivalent itemBefore is somewhat tricky. For now,
97885        added a new boolean flag indicating whether a given HTML collection supports itemBefore or not,
97886        and left those HTML collections that override itemAfter alone.
97887
97888        This also paves our way to share more code between DynamicNodeList and HTMLCollection.
97889
97890        Test: perf/htmlcollection-backwards-iteration.html
97891
97892        * dom/DynamicNodeList.h:
97893        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Takes ItemBeforeSupportType.
97894        (WebCore::DynamicNodeListCacheBase::supportsItemBefore): Added.
97895        (DynamicNodeListCacheBase):
97896        (WebCore::DynamicNodeListCacheBase::setItemCache): Replaced a FIXME by an assertion now that
97897        we can.
97898        * html/HTMLAllCollection.cpp:
97899        (WebCore::HTMLAllCollection::HTMLAllCollection): Supports itemBefore since it doesn't override
97900        itemAfter.
97901        * html/HTMLCollection.cpp:
97902        (WebCore::HTMLCollection::HTMLCollection):
97903        (WebCore::HTMLCollection::create):
97904        (WebCore::isAcceptableElement): Made it a static local function instead of a static member.
97905        (WebCore::nextNode): Templatized.
97906        (WebCore::itemBeforeOrAfter): Extracted from itemAfter and templatized.
97907        (WebCore::HTMLCollection::itemBefore): Added.
97908        (WebCore::HTMLCollection::itemAfter):
97909        (WebCore::HTMLCollection::shouldSearchFromFirstItem): Added. Determines whether we should reset
97910        the item cache to the first item. We obviously do if the cache is invalid. If the target offset
97911        is after the cached offset, then we shouldn't go back regardless of availability of itemBefore.
97912        Otherwise, we go back to the first item iff itemBefore is not available or the distance from
97913        the cached offset to the target offset is greater than the target offset itself.
97914        (WebCore::HTMLCollection::length):
97915        (WebCore::HTMLCollection::item): Use the term "offset" to match the terminology elsewhere.
97916        (WebCore::HTMLCollection::itemBeforeOrAfterCachedItem): Ditto. Also added the logic to iterate
97917        nodes backwards using itemBefore. Once we're in this branch, we should always find a matching
97918        item since the target offset was less than the cached offset, and offsets are non-negative.
97919        If we had ever reached the end of the loop without finding an item, it indicates that the cache
97920        has been invalid and we have some serious bug elsewhere.
97921        * html/HTMLCollection.h:
97922        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
97923        (HTMLCollection):
97924        * html/HTMLOptionsCollection.cpp:
97925        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Supports itemBefore since it doesn't
97926        override itemAfter.
97927        * html/HTMLFormCollection.cpp:
97928        (WebCore::HTMLFormCollection::HTMLFormCollection): Doesn't support itemBefore as it overrides
97929        itemAfter.
97930        * html/HTMLNameCollection.cpp:
97931        (WebCore::HTMLNameCollection::HTMLNameCollection): Ditto.
97932        * html/HTMLPropertiesCollection.cpp:
97933        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
97934        * html/HTMLTableRowsCollection.cpp:
97935        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
97936
979372012-07-13  Eric Penner  <epenner@google.com>
97938
97939        [chromium] Add 'self-managed' option to CCPrioritizedTexture to enable render-surface and canvas use cases.
97940        https://bugs.webkit.org/show_bug.cgi?id=91177
97941
97942        Reviewed by Adrienne Walker.
97943
97944        This makes the render-surface memory use case generic as 'self-managed' textures,
97945        as this use case is popping up in other places (eg. canvases). It's exactly the
97946        same idea except we can have as many place-holders as we want at arbitrary
97947        priorities.
97948
97949        This already tested by the render surface unit tests which now also use the 
97950        generic placeholder.
97951
97952        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
97953        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
97954        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
97955        (WebCore::CCLayerTreeHost::updateLayers):
97956        (WebCore::CCLayerTreeHost::setPrioritiesForSurfaces):
97957        (WebCore):
97958        (WebCore::CCLayerTreeHost::setPrioritiesForLayers):
97959        (WebCore::CCLayerTreeHost::prioritizeTextures):
97960        (WebCore::CCLayerTreeHost::calculateMemoryForRenderSurfaces):
97961        (WebCore::CCLayerTreeHost::paintLayerContents):
97962        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
97963        (CCLayerTreeHost):
97964        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
97965        (WebCore::CCPrioritizedTexture::CCPrioritizedTexture):
97966        (WebCore::CCPrioritizedTexture::setToSelfManagedMemoryPlaceholder):
97967        * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
97968        (CCPrioritizedTexture):
97969        (WebCore::CCPrioritizedTexture::setIsSelfManaged):
97970        (WebCore::CCPrioritizedTexture::isSelfManaged):
97971        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
97972        (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
97973        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
97974        (WebCore::CCPrioritizedTextureManager::destroyBacking):
97975        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
97976        (CCPrioritizedTextureManager):
97977        (WebCore::CCPrioritizedTextureManager::memoryForSelfManagedTextures):
97978
979792012-07-13  Kent Tamura  <tkent@chromium.org>
97980
97981        Internals: Clean up the mock PagePopupDriver correctly.
97982        https://bugs.webkit.org/show_bug.cgi?id=91250
97983
97984        Unreviewed, a trivial testing code fix.
97985
97986        * testing/InternalSettings.cpp:
97987        (WebCore::InternalSettings::Backup::restoreTo):
97988        (WebCore::InternalSettings::reset):
97989        Resetting PaePopupDriver here instead of Backup::restoreTo.
97990        Also, close the mock popup before resetting PagePopupDriver by clearing m_pagePopupDriver.
97991        * testing/MockPagePopupDriver.cpp:
97992        (WebCore::MockPagePopupDriver::~MockPagePopupDriver):
97993        Close the popup.
97994
979952012-07-13  Tony Payne  <tpayne@chromium.org>
97996
97997        Remove Widget from screenColorProfile
97998        https://bugs.webkit.org/show_bug.cgi?id=91300
97999
98000        Reviewed by Adam Barth.
98001
98002        Chromium, the only platform implementing screenColorProfile, does not
98003        need the Widget, so removing for simplicity.
98004
98005        Covered by existing tests.
98006
98007        * platform/PlatformScreen.h:
98008        (WebCore): Updated comment to remove reference to type param that no
98009        longer exists and removed Widget param.
98010        * platform/blackberry/PlatformScreenBlackBerry.cpp:
98011        (WebCore::screenColorProfile): Removed widget param.
98012        * platform/chromium/PlatformScreenChromium.cpp:
98013        (WebCore::screenColorProfile): Removed widget param.
98014        * platform/efl/PlatformScreenEfl.cpp:
98015        (WebCore::screenColorProfile): Removed widget param.
98016        * platform/gtk/PlatformScreenGtk.cpp:
98017        (WebCore::screenColorProfile): Removed widget param.
98018        * platform/image-decoders/ImageDecoder.h:
98019        (WebCore::ImageDecoder::qcmsOutputDeviceProfile): removed param to
98020        match screenColorProfile()'s new spec.
98021        * platform/mac/PlatformScreenMac.mm:
98022        (WebCore::screenColorProfile): Removed widget param.
98023        * platform/qt/PlatformScreenQt.cpp:
98024        (WebCore::screenColorProfile): Removed widget param.
98025        * platform/win/PlatformScreenWin.cpp:
98026        (WebCore::screenColorProfile): Removed widget param.
98027
980282012-07-13  Brian Anderson  <brianderson@chromium.org>
98029
98030        [chromium] Add flushes to CCTextureUpdater::update
98031        https://bugs.webkit.org/show_bug.cgi?id=89035
98032
98033        Reviewed by Adrienne Walker.
98034
98035        Automatic flushes are being removed from the command buffer, so
98036        this moves the flushes into the CCTextureUpdater itself.
98037
98038        CCTextureUpdaterTest added to verify texture upload/flushing patterns.
98039
98040        * platform/graphics/chromium/cc/CCGraphicsContext.h:
98041        (WebCore::CCGraphicsContext::flush):
98042        (CCGraphicsContext):
98043        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
98044        (WebCore):
98045        (WebCore::CCTextureUpdater::update): Manual flushes added here.
98046
980472012-07-13  Kiran Muppala  <cmuppala@apple.com>
98048
98049        REGRESSION: RenderInline boundingBox ignores relative position offset
98050        https://bugs.webkit.org/show_bug.cgi?id=91168
98051
98052        Reviewed by Simon Fraser.
98053
98054        RenderGeometryMap, used for caching the transform to the view,
98055        expects the first mapping pushed, to be that of the view itself.
98056        RenderInline was instead pushing it's own offset first.  Besides
98057        the offset of the view itself was not being pushed.
98058
98059        Relaxed the RenderGeometryMap restriction that the first pushed
98060        step should be of the view.  It is sufficient that the view's mapping
98061        is pushed in the first call to pushMappingsToAncestor.  Modified
98062        RenderInline to push the offset of the view also to the geometry map.
98063
98064        Test: fast/inline/inline-relative-offset-boundingbox.html
98065
98066        * rendering/RenderGeometryMap.cpp:
98067        (WebCore::RenderGeometryMap::pushMappingsToAncestor): Add assertion to
98068        check if mapping to view was pushed in first invocation.
98069        (WebCore::RenderGeometryMap::pushView): Correct assertion that checks
98070        if the view's mapping is the first one to be applied.
98071        (WebCore::RenderGeometryMap::stepInserted): Use isRenderView to check if
98072        a mapping step belongs to a view instead of using mapping size.
98073        (WebCore::RenderGeometryMap::stepRemoved): Ditto.
98074        * rendering/RenderInline.cpp:
98075        (WebCore::(anonymous namespace)::AbsoluteQuadsGeneratorContext::AbsoluteQuadsGeneratorContext):
98076        Push mappings all the way up to and including the view.
98077
980782012-07-13  Xianzhu Wang  <wangxianzhu@chromium.org>
98079
98080        Move WebCore/platform/text/Base64 to WTF/wtf/text
98081        https://bugs.webkit.org/show_bug.cgi?id=91162
98082
98083        Reviewed by Adam Barth.
98084
98085        No new tests. Files moving only.
98086
98087        * CMakeLists.txt:
98088        * GNUmakefile.list.am:
98089        * Modules/websockets/WebSocketHandshake.cpp:
98090        (WebCore::generateSecWebSocketKey):
98091        (WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
98092        * Target.pri:
98093        * WebCore.gypi:
98094        * WebCore.order:
98095        * WebCore.vcproj/WebCore.vcproj:
98096        * WebCore.xcodeproj/project.pbxproj:
98097        * fileapi/FileReaderLoader.cpp:
98098        (WebCore::FileReaderLoader::convertToDataURL):
98099        * inspector/DOMPatchSupport.cpp:
98100        (WebCore::DOMPatchSupport::createDigest):
98101        * inspector/InspectorFileSystemAgent.cpp:
98102        (WebCore):
98103        * inspector/InspectorPageAgent.cpp:
98104        (WebCore::InspectorPageAgent::cachedResourceContent):
98105        (WebCore::InspectorPageAgent::sharedBufferContent):
98106        * loader/archive/mhtml/MHTMLArchive.cpp:
98107        (WebCore::MHTMLArchive::generateMHTMLData):
98108        * loader/archive/mhtml/MHTMLParser.cpp:
98109        (WebCore::MHTMLParser::parseNextPart):
98110        * page/DOMWindow.cpp:
98111        (WebCore::DOMWindow::btoa):
98112        (WebCore::DOMWindow::atob):
98113        * page/Page.cpp:
98114        (WebCore::Page::userStyleSheetLocationChanged):
98115        * platform/graphics/cairo/ImageBufferCairo.cpp:
98116        (WebCore::ImageBuffer::toDataURL):
98117        * platform/graphics/cg/ImageBufferCG.cpp:
98118        (WebCore::CGImageToDataURL):
98119        * platform/graphics/gtk/ImageBufferGtk.cpp:
98120        (WebCore::ImageBuffer::toDataURL):
98121        * platform/graphics/skia/FontCustomPlatformData.cpp:
98122        (WebCore::createUniqueFontName):
98123        * platform/graphics/skia/ImageBufferSkia.cpp:
98124        (WebCore::ImageBuffer::toDataURL):
98125        (WebCore::ImageDataToDataURL):
98126        * platform/graphics/win/FontCustomPlatformData.cpp:
98127        (WebCore::createUniqueFontName):
98128        * platform/graphics/wince/FontCustomPlatformData.cpp:
98129        (WebCore::createUniqueFontName):
98130        * platform/graphics/wince/ImageBufferWinCE.cpp:
98131        * platform/graphics/wx/ImageBufferWx.cpp:
98132        * platform/network/DataURL.cpp:
98133        (WebCore::handleDataURL):
98134        * platform/network/cf/ResourceHandleCFNet.cpp:
98135        (WebCore::applyBasicAuthorizationHeader):
98136        * platform/network/mac/ResourceHandleMac.mm:
98137        (WebCore::applyBasicAuthorizationHeader):
98138        * platform/network/soup/ResourceHandleSoup.cpp:
98139        * platform/win/SSLKeyGeneratorWin.cpp:
98140        (WebCore::WebCore::signedPublicKeyAndChallengeString):
98141
981422012-07-13  Xianzhu Wang  <wangxianzhu@chromium.org>
98143
98144        [Chromium] Sometimes bottom of text is truncated when page has a fractional scale
98145        https://bugs.webkit.org/show_bug.cgi?id=88684
98146
98147        Reviewed by Tony Chang.
98148
98149        When the page has a fractional scale, the ascent and descent part of the fonts might be fractional.
98150        If the descent part is rounded down, the bottom of the text might be truncated when displayed
98151        when subpixel text positioning is enabled.
98152        To avoid that, borrow one unit from the ascent when possible.
98153
98154        Test: fast/text/descent-clip-in-scaled-page.html
98155
98156        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
98157        (WebCore::FontPlatformData::setupPaint): Moved NoPreference handling into querySystemForRenderStyle so that fontRenderStyle() can have actual styles without NoPreference.
98158        (WebCore::FontPlatformData::querySystemForRenderStyle): Added NoPreference handling (moved from setupPaint)
98159        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
98160        (FontPlatformData):
98161        (WebCore::FontPlatformData::fontRenderStyle): Added to let SimpleFontDataSkia access the font render styles.
98162        * platform/graphics/skia/SimpleFontDataSkia.cpp:
98163        (WebCore::SimpleFontData::platformInit):
98164
981652012-07-13  Ryosuke Niwa  <rniwa@webkit.org>
98166
98167        Remove an assertion after r122637.
98168
98169        * dom/DynamicNodeList.h:
98170        (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange):
98171
981722012-07-13  Pierre Rossi  <pierre.rossi@gmail.com>
98173
98174        [Qt] Improve the mobile theme slightly
98175        https://bugs.webkit.org/show_bug.cgi?id=90806
98176
98177        Reviewed by Kenneth Rohde Christiansen.
98178
98179        Improve drawing of the mobile theme's controls' background.
98180
98181        Ensure the focus ring never appears with the mobile theme, since it
98182        looks bad in combination with the highlights.
98183
98184        No new tests. The painting code from the mobile theme is still
98185        not covered specifically (it will when we revive pixel tests).
98186
98187        * platform/qt/RenderThemeQtMobile.cpp:
98188        (WebCore):
98189        (WebCore::addPointToOctants): Added. This is simply a helper to avoid
98190            doing too much duplicate work in drawControlBackground.
98191        (WebCore::drawControlBackground): Rely on the octant logic added above
98192            and take the opportunity to increase the granularity.
98193        (WebCore::borderPen):
98194        (WebCore::StylePainterMobile::findLineEdit):
98195        (WebCore::RenderThemeQtMobile::adjustTextFieldStyle):
98196        * platform/qt/RenderThemeQtMobile.h:
98197        (RenderThemeQtMobile):
98198        (WebCore::RenderThemeQtMobile::supportsFocusRing):
98199
982002012-07-13  Julien Chaffraix  <jchaffraix@webkit.org>
98201
98202        Remove an always-failing table-wrapping check in RenderObject::addChild
98203        https://bugs.webkit.org/show_bug.cgi?id=91286
98204
98205        Reviewed by Eric Seidel.
98206
98207        Due to the structure of the code, this test is always failing (newChild->isTableCell()
98208        is true to get in the branch).
98209
98210        The changeset adding the code didn't add testing so I poundered adding the mentioned test,
98211        which is passing. However the test would need to be blindly changed to be included in our
98212        test harness. I would also expect this code to be exercised by other table tests anyway.
98213
98214        * rendering/RenderObject.cpp:
98215        (WebCore::RenderObject::addChild):
98216        Removed never-reached branch. While at it, removed a 'what' comment in the same file.
98217
982182012-07-13  Emil A Eklund  <eae@chromium.org>
98219
98220        Use LayoutBoxExtent for image outsets
98221        https://bugs.webkit.org/show_bug.cgi?id=91166
98222
98223        Reviewed by Tony Chang.
98224
98225        Change RenderStyle and calling code to use LayoutBoxExtent for image
98226        outsets and remove text direction and writing mode versions of the
98227        outline getters from RenderStyle as LayoutBoxExtent provides the same
98228        functionality.
98229
98230        No new tests, no change in functionality.
98231
98232        * platform/graphics/FractionalLayoutBoxExtent.h:
98233        * platform/graphics/FractionalLayoutBoxExtent.cpp:
98234        (WebCore::FractionalLayoutBoxExtent::logicalTop):
98235        (WebCore::FractionalLayoutBoxExtent::logicalBottom):
98236        Add logicalTop and logicalBottom methods to go with the existing
98237        logicalLeft and logicalRight ones.
98238
98239        * platform/graphics/FractionalLayoutRect.h:
98240        (WebCore::FractionalLayoutRect::expand):
98241        Add FractionalLayoutBoxExtent version of expand method.
98242
98243        * rendering/InlineFlowBox.cpp:
98244        (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
98245        Change implementation to use the new FractionalLayoutBoxExtent version of
98246        borderImageOutsets and the logicalTop/Bottom/Left/Right methods.
98247        
98248        (WebCore::clipRectForNinePieceImageStrip):
98249        Change implementation to use the new FractionalLayoutBoxExtent version of
98250        borderImageOutsets.
98251        
98252        * rendering/RenderBox.cpp:
98253        (WebCore::RenderBox::maskClipRect):
98254        Change implementation to use the new FractionalLayoutBoxExtent version of
98255        borderImageOutsets and the new FractionalLayoutRect::expand method.
98256        
98257        (WebCore::RenderBox::addVisualEffectOverflow):
98258        Change implementation to use the new FractionalLayoutBoxExtent version of
98259        borderImageOutsets.
98260        
98261        * rendering/RenderBoxModelObject.cpp:
98262        (WebCore::RenderBoxModelObject::paintNinePieceImage):
98263        Change implementation to use the new FractionalLayoutBoxExtent version of
98264        borderImageOutsets and the new FractionalLayoutRect::expand method.
98265
98266        * rendering/style/RenderStyle.h:
98267        * rendering/style/RenderStyle.cpp:
98268        (WebCore::RenderStyle::imageOutsets):
98269        Change getImageOutsets to return a FractionalLayoutBoxExtent object and
98270        rename to imageOutsets to match the webkit naming convention for getters.
98271
98272        Remove getBorderImageHorizontalOutsets, getBorderImageVerticalOutsets,
98273        getBorderImageInlineDirectionOutsets, getImageHorizontalOutsets,
98274        getImageVerticalOutsets and getBorderImageBlockDirectionOutsets methods
98275        as the same functionality is provided by FractionalLayoutBoxExtent.
98276
982772012-07-13  David Hyatt  <hyatt@apple.com>
98278
98279        https://bugs.webkit.org/show_bug.cgi?id=91278
98280        Improve block margin estimation function to account for not having a layout and for quirks mode
98281        
98282        Reviewed by Simon Fraser.
98283
98284        * rendering/RenderBlock.cpp:
98285        (WebCore::RenderBlock::marginBeforeEstimateForChild):
98286        Revise marginBeforeEstimateForChild so that it computes block margins for the grandchild before
98287        recurring. This includes the quirks margin information as well. This ensures that the margins are
98288        up-to-date when checked, even before the object has had its first layout.
98289        
98290        * rendering/RenderBlock.h:
98291        (WebCore::RenderBlock::setMarginStartForChild):
98292        (WebCore::RenderBlock::setMarginEndForChild):
98293        (WebCore::RenderBlock::setMarginBeforeForChild):
98294        (WebCore::RenderBlock::setMarginAfterForChild):
98295        * rendering/RenderBox.cpp:
98296        (WebCore::RenderBox::computeBlockDirectionMargins):
98297        * rendering/RenderBox.h:
98298        (RenderBox):
98299        Add consts in order to compile.
98300
983012012-07-13  Ryosuke Niwa  <rniwa@webkit.org>
98302
98303        NodeLists should not invalidate on irreleavnt attribute changes
98304        https://bugs.webkit.org/show_bug.cgi?id=91277
98305
98306        Reviewed by Ojan Vafai.
98307
98308        Explicitely check the invalidation type and the changed attribute in NodeListNodeData::invalidateCaches
98309        and ElementRareData::clearHTMLCollectionCaches to only invalidate node lists affected by the change.
98310
98311        Also merged invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged
98312        as invalidateNodeListCachesInAncestors since they're almost identical after r122498.
98313
98314        In addition, moved shouldInvalidateNodeListForType from Document.cpp to DynamicNodeList.h and renamed it to
98315        shouldInvalidateTypeOnAttributeChange since it needs to called in Node.cpp and ElementRareData.h.
98316
98317        * dom/Attr.cpp:
98318        (WebCore::Attr::setValue):
98319        (WebCore::Attr::childrenChanged):
98320        * dom/ContainerNode.cpp:
98321        (WebCore::ContainerNode::childrenChanged):
98322        * dom/Document.cpp:
98323        (WebCore::Document::registerNodeListCache): Calls isRootedAtDocument() instead of directly comparing
98324        the value of NodeListRootType in order to prepare for the bug 80269.
98325        (WebCore::Document::unregisterNodeListCache): Ditto.
98326        (WebCore): shouldInvalidateNodeListForType is moved to DynamicNodeList.h
98327        (WebCore::Document::shouldInvalidateNodeListCaches):
98328        * dom/DynamicNodeList.h:
98329        (DynamicNodeListCacheBase):
98330        (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Moved from Document.cpp.
98331        * dom/Element.cpp: 
98332        (WebCore::Element::attributeChanged):
98333        * dom/ElementRareData.h:
98334        (WebCore::ElementRareData::clearHTMLCollectionCaches): Takes const QualifiedName* to compare against
98335        the invalidation type of HTML collections via shouldInvalidateTypeOnAttributeChange.
98336        * dom/Node.cpp:
98337        (WebCore::Node::invalidateNodeListCachesInAncestors): Merged invalidateNodeListCachesInAncestors and
98338        invalidateNodeListsCacheAfterChildrenChanged. Also pass attrName to clearHTMLCollectionCaches.
98339        (WebCore::NodeListsNodeData::invalidateCaches): Compares attrName against the invalidation type of
98340        node lists via shouldInvalidateTypeOnAttributeChange.
98341        (WebCore):
98342        * dom/Node.h:
98343        (Node):
98344        * dom/NodeRareData.h:
98345        (WebCore::NodeRareData::ensureNodeLists): Merged NodeRareData::createNodeLists.
98346        (WebCore::NodeRareData::clearChildNodeListCache): Moved from Node.cpp.
98347        (NodeRareData):
98348        * html/HTMLCollection.h:
98349        (HTMLCollectionCacheBase):
98350
983512012-07-13  Arpita Bahuguna  <arpitabahuguna@gmail.com>
98352
98353        Refactor RenderTable to use the section's iteration functions.
98354        https://bugs.webkit.org/show_bug.cgi?id=89751
98355
98356        Reviewed by Julien Chaffraix.
98357
98358        Removing anti-pattern wherever possible from RenderTable code. Also, modifying
98359        RenderTable sections' iterations to use helper functions.
98360
98361        No new tests required for this change since no change in behavior is expected.
98362
98363        * rendering/RenderTable.cpp:
98364        (WebCore::RenderTable::addOverflowFromChildren):
98365        (WebCore::RenderTable::setCellLogicalWidths):
98366        (WebCore::RenderTable::outerBorderStart):
98367        (WebCore::RenderTable::outerBorderEnd):
98368        Removed anti-patterns involving iterations over RenderObjects.
98369
98370        (WebCore::RenderTable::outerBorderAfter):
98371        Modified RenderTable sections' iteration to use helper functions.
98372
983732012-07-13  Enrica Casucci  <enrica@apple.com>
98374
98375        Threadsafety issues in WebScriptObject
98376        https://bugs.webkit.org/show_bug.cgi?id=90849
98377
98378        Reviewed by Geoff Garen.
98379
98380        Updated fix for this bug. The JSC API lock needs to be acquired also in JSObject.
98381
98382        * bindings/objc/WebScriptObject.mm:
98383        (-[WebScriptObject JSObject]):
98384
983852012-07-13  Raymond Toy  <rtoy@google.com>
98386
98387        DelayNode doesn't work if delayTime.value == delayTime.maxValue
98388        https://bugs.webkit.org/show_bug.cgi?id=90357
98389
98390        Reviewed by Kenneth Russell.
98391
98392        Increase delay buffer size slightly so that the read and write
98393        pointers don't become equal when the delay and the max delay are
98394        the same.
98395        
98396        Tests: webaudio/delaynode-max-default-delay.html
98397               webaudio/delaynode-max-nondefault-delay.html
98398
98399        * Modules/webaudio/DelayDSPKernel.cpp:
98400        (WebCore): Moved SmoothingTimeConstant to WebCore namespace.
98401        (WebCore::DelayDSPKernel::DelayDSPKernel): Add some additional checks to prevent crashes; use bufferLengthForDelay to compute buffer length.
98402        (WebCore::DelayDSPKernel::bufferLengthForDelay): New function to compute buffer length.
98403        * Modules/webaudio/DelayDSPKernel.h:
98404        (DelayDSPKernel): Declare bufferLengthForDelay. 
98405
984062012-07-13  Benjamin Poulain  <bpoulain@apple.com>
98407
98408        Always aggressively preload on iOS
98409        https://bugs.webkit.org/show_bug.cgi?id=91276
98410
98411        Reviewed by Simon Fraser.
98412
98413        * loader/cache/CachedResourceLoader.cpp:
98414        (WebCore::CachedResourceLoader::preload):
98415
984162012-07-13  Vineet Chaudhary  <rgf748@motorola.com>
98417
98418        Restructure V8Utilities::extractTransferables() with help of toV8Sequence()
98419        https://bugs.webkit.org/show_bug.cgi?id=91208
98420
98421        Reviewed by Kentaro Hara.
98422
98423        We can remove the specialised check for MessagePort from V8Utilities::extractTransferables()
98424        using toV8Sequence() as it validates the passed object for sequence type per WebIDL spec.
98425
98426        No new test as just refactoring.
98427        Existing tests under fast/dom/Window/window-* fast/dom/events/*
98428        covers tests.
98429
98430        * bindings/v8/V8Utilities.cpp:
98431        (WebCore::extractTransferables):
98432
984332012-07-13  Vincent Scheib  <scheib@chromium.org>
98434
98435        Pointer Lock handles disconnected DOM elements
98436        https://bugs.webkit.org/show_bug.cgi?id=77029
98437
98438        Reviewed by Adrienne Walker.
98439
98440        Pointer Lock Controller now checks when elements or documents are
98441        removed, and unlocks if the target element is being removed.
98442
98443        Tests: pointer-lock/locked-element-iframe-removed-from-dom.html
98444               pointer-lock/locked-element-removed-from-dom.html
98445
98446        * dom/Document.cpp:
98447        (WebCore::Document::detach):
98448        * dom/Element.cpp:
98449        (WebCore::Element::removedFrom):
98450        (WebCore::Element::webkitRequestPointerLock):
98451        * page/PointerLockController.cpp:
98452        (WebCore::PointerLockController::requestPointerLock):
98453        (WebCore::PointerLockController::elementRemoved):
98454        (WebCore):
98455        (WebCore::PointerLockController::documentDetached):
98456        (WebCore::PointerLockController::didLosePointerLock):
98457        (WebCore::PointerLockController::enqueueEvent):
98458        * page/PointerLockController.h:
98459        (WebCore):
98460        (PointerLockController):
98461
984622012-07-13  Ryosuke Niwa  <rniwa@webkit.org>
98463
98464        HTMLCollection should use DynamicNodeList's invalidation model
98465        https://bugs.webkit.org/show_bug.cgi?id=90326
98466
98467        Reviewed by Anders Carlsson.
98468
98469        Make HTMLCollection invalidated upon attribute and children changes instead of invalidating it on demand
98470        by comparing DOM tree versions. Node that HTMLCollections owned by Document are invalidated with other
98471        document-rooted node lists in m_listsInvalidatedAtDocument for simplicity although this mechanism is
98472        normally used for node lists owned by a non-Document node that contains nodes outside of its subtree.
98473        ItemProperties and FormControls are more "traditional" users of the mechanism.
98474
98475        Also, merged DynamicNodeList::invalidateCache and HTMLCollection::invalidateCache.
98476
98477        * dom/Document.cpp:
98478        (WebCore::Document::registerNodeListCache): Renamed. No longer takes NodeListInvalidationType or
98479        NodeListRootType since they can be obtained from the cache base. Increment the node list counter for
98480        InvalidateOnIdNameAttrChange when a HTMLCollection is passed in since all HTMLCollections need to be
98481        invalidated on id or name content attribute changes due to named getters.
98482        (WebCore::Document::unregisterNodeListCache): Ditto.
98483        (WebCore::shouldInvalidateNodeListForType):
98484        (WebCore::Document::shouldInvalidateNodeListCaches):
98485        (WebCore::Document::clearNodeListCaches):
98486        * dom/Document.h:
98487        (WebCore): Added InvalidateOnIdNameAttrChange, InvalidateOnHRefAttrChange, and InvalidateOnAnyAttrChange.
98488        (Document):
98489        * dom/DynamicNodeList.cpp:
98490        (WebCore::DynamicNodeListCacheBase::invalidateCache): Added. Invalidates caches of both DynamicNodeList
98491        and HTMLCollection. We can't afford to use virtual function calls here because this function is called on
98492        all node lists and HTML collections owned by ancestors of an element under which a node is added, removed,
98493        or its attributes are changed.
98494        (WebCore):
98495        * dom/DynamicNodeList.h:
98496        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Initializes member variables directly
98497        instead of calling clearCache now that DynamicNodeListCacheBase::invalidateCache has become polymorphic.
98498        (DynamicNodeListCacheBase): Increased the number of bits for m_invalidationType since we now have 9
98499        invalidation types.
98500        (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
98501        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
98502        * dom/ElementRareData.h:
98503        (ElementRareData):
98504        (WebCore::ElementRareData::clearHTMLCollectionCaches): Added.
98505        (WebCore::ElementRareData::adoptTreeScope): Added; similar to NodeRareData::adoptTreeScope.
98506        * dom/Node.cpp:
98507        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Clears HTML collection caches as well as
98508        node list caches.
98509        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Ditto.
98510        * dom/NodeRareData.h:
98511        (WebCore::NodeListsNodeData::adoptTreeScope):
98512        * dom/TreeScopeAdopter.cpp:
98513        (WebCore::TreeScopeAdopter::moveTreeToNewScope): Calls ElementRareData's adoptTreeScope as well as
98514        NodeRareData's.
98515        * html/HTMLAllCollection.cpp:
98516        (WebCore::HTMLAllCollection::namedItemWithIndex):
98517        * html/HTMLCollection.cpp:
98518        (WebCore::rootTypeFromCollectionType): Added. As mentioned above, treat all Document-owned HTML collection
98519        as if rooted at document for convenience.
98520        (WebCore::invalidationTypeExcludingIdAndNameAttributes): Added. Since all HTML collection requires
98521        invalidation on id and name content attribute changes, which is taken care by the special logic in
98522        Document::registerNodeListCache, exclude those two attributes from consideration.
98523        (WebCore::HTMLCollection::HTMLCollection): Calls Document::registerNodeListCache.
98524        (WebCore::HTMLCollection::~HTMLCollection): Calls Document::unregisterNodeListCache.
98525        (WebCore::HTMLCollection::length):
98526        (WebCore::HTMLCollection::item):
98527        (WebCore::HTMLCollection::namedItem):
98528        (WebCore::HTMLCollection::updateNameCache):
98529        * html/HTMLCollection.h:
98530        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
98531        (HTMLCollectionCacheBase): Removed m_cacheTreeVersion and clearCache since they're no longer used.
98532        (HTMLCollection):
98533        * html/HTMLFormCollection.cpp:
98534        (WebCore::HTMLFormCollection::namedItem):
98535        (WebCore::HTMLFormCollection::updateNameCache):
98536        * html/HTMLOptionsCollection.h:
98537        (HTMLOptionsCollection):
98538        * html/HTMLPropertiesCollection.cpp:
98539        (WebCore::HTMLPropertiesCollection::updateNameCache):
98540        * html/HTMLPropertiesCollection.h:
98541        (WebCore::HTMLPropertiesCollection::invalidateCache):
98542
985432012-07-13  Shawn Singh  <shawnsingh@chromium.org>
98544
98545        [chromium] Remove incorrect debug assertion in LayerRendererChromium.cpp
98546        https://bugs.webkit.org/show_bug.cgi?id=91260
98547
98548        Reviewed by Adrienne Walker.
98549
98550        ASSERT(!clipped) was being triggered after skinny almost-degenerate
98551        quads went through anti-aliasing inflation, and then were being
98552        transformed back from device space to local space. It turns out
98553        this assertion is too aggressive, and we don't yet have an obvious
98554        need to change the behavior on the clipped==true case.
98555
98556        No new tests needed, this patch fixes only comments and debug code.
98557
98558        * platform/graphics/chromium/LayerRendererChromium.cpp:
98559        (WebCore::LayerRendererChromium::drawRenderPassQuad):
98560           fixed a comment.
98561
98562        (WebCore::LayerRendererChromium::drawTileQuad):
98563           fixed a similar comment, removed unnecessary assertion.
98564
985652012-07-13  Philip Rogers  <pdr@google.com>
98566
98567        Remove assert in localCoordinateSpaceTransform()
98568        https://bugs.webkit.org/show_bug.cgi?id=91189
98569
98570        Reviewed by Nikolas Zimmermann.
98571
98572        The assert in localCoordinateSpaceTransform was added to catch subclasses forgetting
98573        to override the method but it is better to simply return the identity matrix.
98574
98575        This scenario can occur when we break the SVG content model, such as asking for
98576        the CTM of a <g> element inside a <tspan>. This is undefined in the spec because
98577        tspan is not a subclass of SVGLocatable but both Firefox and Opera
98578        implement this by returning the identity matrix.
98579
98580        Test: svg/custom/invalid-ctm.svg
98581
98582        * svg/SVGStyledElement.cpp:
98583        (WebCore::SVGStyledElement::localCoordinateSpaceTransform):
98584
985852012-07-13  Kentaro Hara  <haraken@chromium.org>
98586
98587        [V8] String wrappers should be marked Independent
98588        https://bugs.webkit.org/show_bug.cgi?id=91251
98589
98590        Reviewed by Adam Barth.
98591
98592        Currently V8 String wrappers are not marked Independent.
98593        By marking them Independent, they can be reclaimed by the scavenger GC.
98594
98595        I tried to find some cases where this change reduces memory usage,
98596        but couldn't due to sensitive behavior of GC.
98597
98598        No tests. No change in behavior.
98599
98600        * bindings/v8/V8Binding.cpp:
98601        (WebCore::StringCache::v8ExternalStringSlow):
98602
986032012-07-13  Peter Beverloo  <peter@chromium.org>
98604
98605        [Chromium] Make the v8 i18n API dependency conditional for Android, disable strict aliasing
98606        https://bugs.webkit.org/show_bug.cgi?id=91240
98607
98608        Reviewed by Adam Barth.
98609
98610        Disable the v8 internationalization API for Chromium Android, as it's
98611        disabled and not always available in checkouts. Furthermore, disable
98612        strict aliasing for the webkit_remaining target, similar to what
98613        x11-based builds are doing (see the webcore_prerequisites target).
98614
98615        * WebCore.gyp/WebCore.gyp:
98616
986172012-07-13  Kentaro Hara  <haraken@chromium.org>
98618
98619        [CallWith=XXX] arguments should be placed at the head of method arguments
98620        https://bugs.webkit.org/show_bug.cgi?id=91217
98621
98622        Reviewed by Adam Barth.
98623
98624        The EFL build with the ENABLE_FILE_SYSTEM flag caused a build error,
98625        because CodeGeneratorJS.pm assumes webkitEntries(ScriptExecutionContext*, HTMLInputElement*)
98626        but the actual signature is webkitEntries(HTMLInputElement*, ScriptExecutionContext*) (bug 91185).
98627
98628        Per https://trac.webkit.org/wiki/WebKitIDL#CallWith, [CallWith=XXX] arguments should be placed
98629        at the head of the arguments. (i.e. the behavior of CodeGeneratorJS.pm is correct.)
98630
98631        Thus the correct fix is (1) to change the signature of webkitEntries() and webkitGetAsEntry()
98632        so that ScriptExecutionContext* comes first and (2) to modify CodeGeneratorV8.pm to support the order.
98633
98634        Test: bindings/scripts/test/TestObj.idl
98635
98636        * Modules/filesystem/DataTransferItemFileSystem.h: Placed ScriptExecutionContext* at the head of arguments.
98637        (DataTransferItemFileSystem):
98638        * Modules/filesystem/HTMLInputElementFileSystem.cpp: Ditto.
98639        (WebCore::HTMLInputElementFileSystem::webkitEntries):
98640        * Modules/filesystem/HTMLInputElementFileSystem.h: Ditto.
98641        (HTMLInputElementFileSystem):
98642        * Modules/filesystem/chromium/DataTransferItemFileSystemChromium.cpp: Ditto.
98643        (WebCore::DataTransferItemFileSystem::webkitGetAsEntry):
98644
98645        * bindings/scripts/CodeGeneratorV8.pm: Modified to support the correct order.
98646        (GenerateNormalAttrGetter):
98647        (GenerateNormalAttrSetter):
98648        (GenerateFunctionCallString):
98649
98650        * bindings/scripts/test/V8/V8TestInterface.cpp: Updated run-bindings-tests results.
98651        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
98652
986532012-07-13  Mary Wu  <mary.wu@torchmobile.com.cn>
98654
98655        [BlackBerry] Some small changes in network code
98656        https://bugs.webkit.org/show_bug.cgi?id=90974
98657
98658        Reviewed by Rob Buis.
98659
98660        1. Set status in NetworkJob/SocketStreamHandleBlackBerry so that
98661        its wrapped stream can also query the stream result.
98662        2. pass download attribute to NetworkRequest.
98663
98664        RIM PR# 171555
98665        Reviewed internally by Lyon Chen and Joe Mason.
98666
98667        * platform/network/blackberry/NetworkJob.cpp:
98668        (WebCore::NetworkJob::handleNotifyClose):
98669        * platform/network/blackberry/NetworkJob.h:
98670        (WebCore::NetworkJob::status):
98671        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
98672        (WebCore::platformTargetTypeForRequest):
98673        * platform/network/blackberry/SocketStreamHandle.h:
98674        (WebCore::SocketStreamHandle::status):
98675        (SocketStreamHandle):
98676        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
98677        (WebCore::SocketStreamHandle::notifyStatusReceived):
98678        (WebCore::SocketStreamHandle::notifyClose):
98679
986802012-07-13  Vsevolod Vlasov  <vsevik@chromium.org>
98681
98682        Web Inspector: Remove uiSourceCode from Resource.
98683        https://bugs.webkit.org/show_bug.cgi?id=91201
98684
98685        Reviewed by Pavel Feldman.
98686
98687        Removed Resource._uiSourceCode field as it is not used anymore.
98688
98689        * inspector/front-end/Resource.js:
98690        (WebInspector.Resource.prototype.isHidden):
98691        * inspector/front-end/UISourceCode.js:
98692        (WebInspector.UISourceCode):
98693
986942012-07-13  Sheriff Bot  <webkit.review.bot@gmail.com>
98695
98696        Unreviewed, rolling out r122450 and r122580.
98697        http://trac.webkit.org/changeset/122450
98698        http://trac.webkit.org/changeset/122580
98699        https://bugs.webkit.org/show_bug.cgi?id=91263
98700
98701        Caused multiple regressions on ClusterFuzz (Requested by
98702        inferno-sec on #webkit).
98703
98704        * bindings/js/ScriptWrappable.h:
98705        (WebCore::ScriptWrappable::reportMemoryUsage):
98706        * bindings/v8/DOMDataStore.cpp:
98707        (WebCore::DOMDataStore::reportMemoryUsage):
98708        * bindings/v8/IntrusiveDOMWrapperMap.h:
98709        (WebCore::ChunkedTable::reportMemoryUsage):
98710        * bindings/v8/ScriptWrappable.h:
98711        (WebCore::ScriptWrappable::reportMemoryUsage):
98712        * bindings/v8/V8Binding.cpp:
98713        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
98714        (WebCore::StringCache::reportMemoryUsage):
98715        * bindings/v8/V8DOMMap.h:
98716        * css/PropertySetCSSStyleDeclaration.cpp:
98717        (WebCore::InlineCSSStyleDeclaration::ensureMutablePropertySet):
98718        * css/StylePropertySet.cpp:
98719        * css/StylePropertySet.h:
98720        (WebCore::StylePropertySet::reportMemoryUsage):
98721        * dom/CharacterData.cpp:
98722        (WebCore::CharacterData::reportMemoryUsage):
98723        * dom/ContainerNode.h:
98724        (WebCore::ContainerNode::reportMemoryUsage):
98725        * dom/Document.cpp:
98726        (WebCore::Document::reportMemoryUsage):
98727        * dom/Element.cpp:
98728        (WebCore::Element::detachAttribute):
98729        (WebCore::Element::removeAttribute):
98730        (WebCore::Element::attributes):
98731        (WebCore::Element::setAttributeInternal):
98732        (WebCore::Element::parserSetAttributes):
98733        (WebCore::Element::hasEquivalentAttributes):
98734        (WebCore::Element::createAttributeData):
98735        (WebCore):
98736        (WebCore::Element::setAttributeNode):
98737        (WebCore::Element::removeAttributeNode):
98738        (WebCore::Element::getAttributeNode):
98739        (WebCore::Element::getAttributeNodeNS):
98740        (WebCore::Element::hasAttribute):
98741        (WebCore::Element::hasAttributeNS):
98742        (WebCore::Element::normalizeAttributes):
98743        (WebCore::Element::cloneAttributesFromElement):
98744        * dom/Element.h:
98745        (WebCore::Element::attributeData):
98746        (Element):
98747        (WebCore::Element::reportMemoryUsage):
98748        (WebCore::Element::ensureAttributeData):
98749        (WebCore::Element::updatedAttributeData):
98750        (WebCore::Element::ensureUpdatedAttributeData):
98751        * dom/ElementAttributeData.cpp:
98752        (WebCore::ElementAttributeData::attrIfExists):
98753        (WebCore::ElementAttributeData::ensureAttr):
98754        (WebCore::ElementAttributeData::setAttr):
98755        (WebCore::ElementAttributeData::removeAttr):
98756        (WebCore::ElementAttributeData::setClass):
98757        (WebCore):
98758        (WebCore::ElementAttributeData::ensureInlineStyle):
98759        (WebCore::ElementAttributeData::ensureMutableInlineStyle):
98760        (WebCore::ElementAttributeData::destroyInlineStyle):
98761        (WebCore::ElementAttributeData::addAttribute):
98762        (WebCore::ElementAttributeData::removeAttribute):
98763        (WebCore::ElementAttributeData::isEquivalent):
98764        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
98765        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
98766        (WebCore::ElementAttributeData::cloneDataFrom):
98767        (WebCore::ElementAttributeData::clearAttributes):
98768        (WebCore::ElementAttributeData::replaceAttribute):
98769        (WebCore::ElementAttributeData::getAttributeNode):
98770        * dom/ElementAttributeData.h:
98771        (WebCore::ElementAttributeData::create):
98772        (ElementAttributeData):
98773        (WebCore::ElementAttributeData::setIdForStyleResolution):
98774        (WebCore::ElementAttributeData::setAttributeStyle):
98775        (WebCore::ElementAttributeData::length):
98776        (WebCore::ElementAttributeData::isEmpty):
98777        (WebCore::ElementAttributeData::attributeItem):
98778        (WebCore::ElementAttributeData::getAttributeItem):
98779        (WebCore::ElementAttributeData::reportMemoryUsage):
98780        (WebCore::ElementAttributeData::ElementAttributeData):
98781        (WebCore::ElementAttributeData::attributeVector):
98782        (WebCore::ElementAttributeData::clonedAttributeVector):
98783        (WebCore::ElementAttributeData::removeAttribute):
98784        (WebCore::ElementAttributeData::getAttributeItemIndex):
98785        * dom/MemoryInstrumentation.h:
98786        (MemoryInstrumentation):
98787        (MemoryObjectInfo):
98788        (WebCore::MemoryObjectInfo::reportInstrumentedPointer):
98789        (WebCore::MemoryObjectInfo::reportPointer):
98790        (WebCore::MemoryObjectInfo::reportInstrumentedObject):
98791        (WebCore::MemoryObjectInfo::reportObject):
98792        (WebCore::MemoryObjectInfo::reportObjectInfo):
98793        (WebCore::MemoryObjectInfo::reportHashMap):
98794        (WebCore::MemoryObjectInfo::reportHashSet):
98795        (WebCore::MemoryObjectInfo::reportListHashSet):
98796        (WebCore::MemoryObjectInfo::reportVector):
98797        (WebCore::MemoryObjectInfo::reportString):
98798        (WebCore::MemoryObjectInfo::objectType):
98799        (WebCore::MemoryObjectInfo::objectSize):
98800        (WebCore::MemoryObjectInfo::memoryInstrumentation):
98801        * dom/Node.cpp:
98802        (WebCore::Node::reportMemoryUsage):
98803        * dom/QualifiedName.h:
98804        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
98805        (WebCore::QualifiedName::reportMemoryUsage):
98806        * dom/StyledElement.cpp:
98807        (WebCore::StyledElement::style):
98808        (WebCore::StyledElement::classAttributeChanged):
98809        (WebCore::StyledElement::setInlineStyleProperty):
98810        (WebCore::StyledElement::removeInlineStyleProperty):
98811        (WebCore::StyledElement::addSubresourceAttributeURLs):
98812        * dom/StyledElement.h:
98813        (WebCore::StyledElement::ensureInlineStyle):
98814        * html/parser/HTMLConstructionSite.cpp:
98815        (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
98816        * platform/TreeShared.h:
98817        (WebCore::TreeShared::reportMemoryUsage):
98818        * xml/parser/XMLDocumentParserQt.cpp:
98819        (WebCore::XMLDocumentParser::XMLDocumentParser):
98820
988212012-07-13  Huang Dongsung  <luxtella@company100.net>
98822
98823        Remove down-casting to BitmapImage in GraphicsContext::drawImage.
98824        https://bugs.webkit.org/show_bug.cgi?id=90755
98825
98826        Reviewed by Simon Fraser.
98827
98828        Add a BitmapImage draw method which takes RespectImageOrientationEnum enum as
98829        the last argument for CG. Then we can remove the conditional down-casting in
98830        GraphicsContext::drawImage.
98831
98832        This change is needed for parallel image decoders. Because parallel image
98833        decoders use a Bitmap image wrapper class which extends Image (not Bitmap), the
98834        down-casting above causes the loss of RespectImageOrientationEnum which must be
98835        passed to BitmapImage.
98836
98837        No new tests, no behavior change.
98838
98839        * platform/graphics/BitmapImage.cpp:
98840        * platform/graphics/BitmapImage.h:
98841        * platform/graphics/GraphicsContext.cpp:
98842        (WebCore::GraphicsContext::drawImage):
98843        * platform/graphics/Image.cpp:
98844        (WebCore::Image::draw):
98845        (WebCore):
98846        * platform/graphics/Image.h:
98847        (Image):
98848
988492012-07-13  Lauro Neto  <lauro.neto@openbossa.org>
98850
98851        Fix QtWebKit build with OpenGLES after GC3D/E3D refactor
98852        https://bugs.webkit.org/show_bug.cgi?id=91156
98853
98854        Reviewed by Noam Rosenthal.
98855
98856        Adds several build fixes.
98857
98858        * platform/graphics/GraphicsContext3D.h:
98859            Use E3DOpenGLES instead of previously removed E3DQt.
98860
98861        * platform/graphics/OpenGLESShims.h:
98862            Enable defines for Qt.
98863
98864        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
98865        (WebCore::Extensions3DOpenGLES::blitFramebuffer):
98866        (WebCore):
98867        (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisample):
98868        (WebCore::Extensions3DOpenGLES::copyTextureCHROMIUM):
98869            Added pure virtual stubs.
98870
98871        (WebCore::Extensions3DOpenGLES::supportsExtension):
98872            Remove PROC suffix. See bug #91130.
98873
98874        * platform/graphics/opengl/Extensions3DOpenGLES.h:
98875        (Extensions3DOpenGLES):
98876            Added pure virtual stubs.
98877
98878        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
98879        (WebCore::GraphicsContext3D::reshapeFBOs):
98880            Readded missing function after removed in r122250.
98881
98882        (WebCore):
98883            Use PLATFORM(BLACKBERRY) guard around port-specific include.
98884
98885        * platform/graphics/qt/GraphicsContext3DQt.cpp:
98886            Added USE(OPENGL_ES_2) guard instead of always loading the OpenGL extensions.
98887
98888
988892012-07-13  Keishi Hattori  <keishi@webkit.org>
98890
98891        Form of FormAssociatedElement is not updated when id target changes.
98892        https://bugs.webkit.org/show_bug.cgi?id=91042
98893
98894        Reviewed by Kent Tamura.
98895
98896        Test: fast/forms/update-form-attribute-element.html
98897
98898        This patch introduces the IdTargetObserver and IdTargetObserverRegistry class.
98899        They can be used to be notified when the element that an id is pointing to (the id target)
98900        changes.
98901
98902        * CMakeLists.txt: Added IdTargetObserverRegistry.{h,cpp} and IdTargetObserver.{h,cpp}
98903        * GNUmakefile.list.am: Ditto.
98904        * Target.pri: Ditto.
98905        * WebCore.gypi: Ditto.
98906        * WebCore.vcproj/WebCore.vcproj: Ditto.
98907        * WebCore.xcodeproj/project.pbxproj: Ditto.
98908        * dom/DOMAllInOne.cpp:
98909        * dom/IdTargetObserver.cpp: Added. When you want notified of changes to an id target, you should create a new class that inherits this.
98910        (WebCore):
98911        (WebCore::IdTargetObserver::IdTargetObserver):
98912        (WebCore::IdTargetObserver::~IdTargetObserver):
98913        * dom/IdTargetObserver.h: Added.
98914        (WebCore):
98915        (IdTargetObserver):
98916        * dom/IdTargetObserverRegistry.cpp: Added.
98917        (WebCore):
98918        (WebCore::IdTargetObserverRegistry::create):
98919        (WebCore::IdTargetObserverRegistry::addObserver): Register an IdTargetObserver to observe an id target.
98920        (WebCore::IdTargetObserverRegistry::removeObserver): Unregisters an IdTargetObserver from observing.
98921        (WebCore::IdTargetObserverRegistry::notifyObserversInternal):
98922        * dom/IdTargetObserverRegistry.h: Added.
98923        (WebCore):
98924        (IdTargetObserverRegistry):
98925        (WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
98926        (WebCore::IdTargetObserverRegistry::notifyObservers): Calls idTargetChanged on all observers for an id. Inlining first part of function for performance.
98927        * dom/TreeScope.cpp:
98928        (WebCore::TreeScope::TreeScope):
98929        (WebCore::TreeScope::addElementById): Calls IdTargetObserverRegistry::notifyObservers because the id target might have changed.
98930        (WebCore::TreeScope::removeElementById): Ditto.
98931        * dom/TreeScope.h:
98932        (WebCore):
98933        (WebCore::TreeScope::idTargetObserverRegistry):
98934        (TreeScope):
98935        * html/FormAssociatedElement.cpp: Observer for id targets defined by the form attribute.
98936        (WebCore::FormAssociatedElement::didMoveToNewDocument):
98937        (WebCore::FormAssociatedElement::insertedInto):
98938        (WebCore::FormAssociatedElement::removedFrom):
98939        (WebCore::FormAssociatedElement::formAttributeChanged):
98940        (WebCore::FormAssociatedElement::resetFormAttributeTargetObserver): Creates and sets up a new FormAttributeTargetObserver.
98941        (WebCore):
98942        (WebCore::FormAssociatedElement::formAttributeTargetChanged):
98943        (WebCore::FormAttributeTargetObserver::create):
98944        (WebCore::FormAttributeTargetObserver::FormAttributeTargetObserver):
98945        (WebCore::FormAttributeTargetObserver::idTargetChanged):
98946        * html/FormAssociatedElement.h:
98947        (FormAssociatedElement):
98948        * html/FormController.cpp:
98949        * html/FormController.h:
98950        (FormController):
98951        * html/HTMLFormElement.cpp:
98952        (WebCore::HTMLFormElement::removedFrom):
98953        (WebCore::HTMLFormElement::formElementIndexWithFormAttribute): Modified to take a range. It
98954        scans the range and returns the index to insert the element in m_associatedElement.
98955        (WebCore::HTMLFormElement::formElementIndex): Modified to only scan the elements in
98956        m_associatedElement that precede and follow the form element.
98957        * html/HTMLFormElement.h:
98958        (HTMLFormElement):
98959
989602012-07-13  Gabor Rapcsanyi  <rgabor@webkit.org>
98961
98962        Optimizing blend filter to ARM-NEON with intrinsics
98963        https://bugs.webkit.org/show_bug.cgi?id=90949
98964
98965        Reviewed by Zoltan Herczeg.
98966
98967        The feBlend SVG filter modes can be greatly fasten up with ARM-NEON since
98968        we are able to calculate with 2 pixels (8 channels) at the same time.
98969        The code is written with NEON intrinsics and it doesn't affect the
98970        general - it has the same behaviour as the original algorithm.
98971        With this NEON optimization the calculation is ~4.5 times faster for each mode.
98972
98973        Existing tests cover this issue.
98974
98975        * CMakeLists.txt:
98976        * GNUmakefile.list.am:
98977        * Target.pri:
98978        * WebCore.gypi:
98979        * WebCore.vcproj/WebCore.vcproj:
98980        * WebCore.xcodeproj/project.pbxproj:
98981        * platform/graphics/filters/FEBlend.cpp:
98982        (WebCore::FEBlend::platformApplyGeneric):
98983        (WebCore):
98984        (WebCore::FEBlend::platformApplySoftware):
98985        * platform/graphics/filters/FEBlend.h:
98986        (FEBlend):
98987        * platform/graphics/filters/arm/FEBlendNEON.h: Added.
98988        (WebCore):
98989        (FEBlendUtilitiesNEON):
98990        (WebCore::FEBlendUtilitiesNEON::div255): integer divison with 255
98991        (WebCore::FEBlendUtilitiesNEON::normal): calculate normal mode blending for two pixels
98992        (WebCore::FEBlendUtilitiesNEON::multiply): calculate multiply mode blending for two pixels
98993        (WebCore::FEBlendUtilitiesNEON::screen): calculate screen mode blending for two pixels
98994        (WebCore::FEBlendUtilitiesNEON::darken): calculate darken mode blending for two pixels
98995        (WebCore::FEBlendUtilitiesNEON::lighten): calculate lighten mode blending for two pixels
98996        (WebCore::FEBlend::platformApplyNEON):
98997
989982012-07-13  Ilya Tikhonovsky  <loislo@chromium.org>
98999
99000        Web Inspector: native memory instrumentation: extract instrumentation methods into MemoryClassInfo
99001        https://bugs.webkit.org/show_bug.cgi?id=91227
99002
99003        Reviewed by Pavel Feldman.
99004
99005        void Node::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
99006        {
99007            MemoryClassInfo<Node> info(memoryObjectInfo, this, MemoryInstrumentation::DOM);
99008            info.visitBaseClass<ScriptWrappable>(this);
99009
99010            info.addMember(m_notInstrumentedPointer); // automatically detects poniter/reference
99011            info.addInstrumentedMember(m_next);
99012            info.addHashSet<MemoryInstrumentation::NonClass>(m_aHash);                // NonClass value_type (report only size of internal template structures)
99013            info.addHashSet<MemoryInstrumentation::NotInstrumentedClass>(m_aHashSet); // not instrumented value_type (use sizeof)
99014            info.addHashSet<MemoryInstrumentation::InstrumentedClass>(m_aHashSet);    // instrumented value_type (call visit)
99015        }
99016
99017        The change is covered by existing tests for native memory snapshot.
99018
99019        * bindings/v8/DOMDataStore.cpp:
99020        (WebCore::DOMDataStore::reportMemoryUsage):
99021        * bindings/v8/IntrusiveDOMWrapperMap.h:
99022        (WebCore::ChunkedTable::reportMemoryUsage):
99023        * bindings/v8/ScriptWrappable.h:
99024        (WebCore::ScriptWrappable::reportMemoryUsage):
99025        * bindings/v8/V8Binding.cpp:
99026        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
99027        (WebCore::StringCache::reportMemoryUsage):
99028        * bindings/v8/V8DOMMap.h:
99029        * css/StylePropertySet.h:
99030        (WebCore::StylePropertySet::reportMemoryUsage):
99031        * dom/CharacterData.cpp:
99032        (WebCore::CharacterData::reportMemoryUsage):
99033        * dom/ContainerNode.h:
99034        (WebCore::ContainerNode::reportMemoryUsage):
99035        * dom/Document.cpp:
99036        (WebCore::Document::reportMemoryUsage):
99037        * dom/Element.h:
99038        (WebCore::Element::reportMemoryUsage):
99039        * dom/ElementAttributeData.h:
99040        (WebCore::ElementAttributeData::reportMemoryUsage):
99041        * dom/MemoryInstrumentation.h:
99042        (MemoryInstrumentation):
99043        (WebCore::MemoryObjectInfo::objectType):
99044        (WebCore::MemoryObjectInfo::objectSize):
99045        (WebCore::MemoryObjectInfo::memoryInstrumentation):
99046        (MemoryObjectInfo):
99047        (WebCore::MemoryObjectInfo::reportObjectInfo):
99048        (WebCore):
99049        (MemoryClassInfo):
99050        (WebCore::MemoryClassInfo::MemoryClassInfo):
99051        (WebCore::MemoryClassInfo::visitBaseClass):
99052        (WebCore::MemoryClassInfo::reportInstrumentedPointer):
99053        (WebCore::MemoryClassInfo::reportInstrumentedObject):
99054        (WebCore::MemoryClassInfo::reportPointer):
99055        (WebCore::MemoryClassInfo::reportObject):
99056        (WebCore::MemoryClassInfo::reportHashMap):
99057        (WebCore::MemoryClassInfo::reportHashSet):
99058        (WebCore::MemoryClassInfo::reportListHashSet):
99059        (WebCore::MemoryClassInfo::reportVector):
99060        (WebCore::MemoryClassInfo::reportString):
99061        * dom/Node.cpp:
99062        (WebCore::Node::reportMemoryUsage):
99063        * dom/QualifiedName.h:
99064        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
99065        (WebCore::QualifiedName::reportMemoryUsage):
99066        * platform/TreeShared.h:
99067        (WebCore::TreeShared::reportMemoryUsage):
99068
990692012-07-13  Pavel Feldman  <pfeldman@chromium.org>
99070
99071        Web Inspector: align scope filters
99072        https://bugs.webkit.org/show_bug.cgi?id=91213
99073
99074        Reviewed by Vsevolod Vlasov.
99075
99076        * inspector/front-end/elementsPanel.css:
99077        (.crumbs):
99078        * inspector/front-end/inspector.css:
99079        (.status-bar > div):
99080        (.scope-bar):
99081        (.scope-bar li):
99082        (.scope-bar li.all):
99083        * inspector/front-end/networkLogView.css:
99084
990852012-07-13  Peter Rybin  <peter.rybin@gmail.com>
99086
99087        Web Inspector: too many hardcoded strings in InspectorBackendDispatcher.
99088        https://bugs.webkit.org/show_bug.cgi?id=89198
99089
99090        Reviewed by Yury Semikhatsky.
99091
99092        Instead of generating error message string on every call (mostly for nothing),
99093        error message is generated deeper inside the handler and only command name
99094        is passed every time.
99095
99096        * inspector/CodeGeneratorInspector.py:
99097        (Generator.process_command):
99098
990992012-07-13  Joshua Netterfield  <jnetterfield@rim.com>
99100
99101        [BlackBerry] Update about:* pages
99102        https://bugs.webkit.org/show_bug.cgi?id=91121
99103
99104        Reviewed by Yong Li.
99105
99106        Update the about:config pages, and improve the aesthetics of the about:build, about:version, about:credits, about:memory, about:config, and similar pages.
99107
99108        No new tests, because there is no new funtionality.
99109
99110        * platform/network/blackberry/NetworkJob.cpp: Update the aesthetics of about:* pages
99111
991122012-07-13  Olivier Blin  <olivier.blin@softathome.com>
99113
99114        Fix checking for optional DeviceOrientationEvent.absolute in JSC bindings
99115        https://bugs.webkit.org/show_bug.cgi?id=91225
99116
99117        Reviewed by Steve Block.
99118
99119        This issue comes from r105036
99120
99121        * bindings/js/JSDeviceOrientationEventCustom.cpp:
99122        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
99123
991242012-07-13  Andrei Bucur  <abucur@adobe.com>
99125        [CSS Regions] Fix build for bug 89000
99126        https://bugs.webkit.org/show_bug.cgi?id=91215
99127
99128        Reviewed by Kentaro Hara.
99129
99130        Remove the unused variable m_state that was a leftover from a previous version of the patch.
99131
99132        Tests: No new tests, build fix.
99133
99134        * dom/WebKitNamedFlow.cpp:
99135        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
99136        * dom/WebKitNamedFlow.h:
99137        (WebKitNamedFlow):
99138
991392012-07-13  Kenichi Ishibashi  <bashi@chromium.org>
99140
99141        [Chromium] Fix bugs in HarfBuzzShaper
99142        https://bugs.webkit.org/show_bug.cgi?id=90951
99143
99144        Reviewed by Tony Chang.
99145
99146        The current implementation has following problems:
99147        - Cannot render RTL text if the TextRun is divided into more than two
99148          HarfBuzzRun.
99149        - Script handling in TextRun partitioning is incorrect.
99150        - Inaccurate calculation of selection rect.
99151        - Wrong rendering position when the first glyph of the TextRun have
99152          non-zero offsets in terms of HarfBuzz.
99153
99154        To fix these problems I rewrote HarfBuzzShaper class. Here is the summary:
99155        - Divide the whole range of TextRun first, then shape them in visual
99156          order.
99157        - Divide TextRun in the same way of old-harfbuzz's
99158          hb_utf16_script_run_next().
99159        - Prefer float than int when calculating selection.
99160        - Adjust the drawing point after shaping.
99161
99162        Added tests covers the fix except for the last problem. The last problem will be covered
99163        by fast/text/international/complex-joining-using-gpos.html after chromium linux port switches
99164        to use HarfBuzzShaper.
99165
99166        Tests: fast/text/shaping/shaping-script-order.html
99167               fast/text/shaping/shaping-selection-rect.html
99168
99169        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
99170        (WebCore::Font::drawComplexText): Adjusts point after shaping.
99171        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
99172        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
99173        (WebCore):
99174        (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Added.
99175        (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndAdvance): Offsets are no longer needed.
99176        (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset): Calculates character offset based on advance.
99177        (WebCore::normalizeCharacters): Added.
99178        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
99179        (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
99180        (WebCore::HarfBuzzShaper::shape): Divides TextRun first, then shapes them.
99181        (WebCore::HarfBuzzShaper::adjustStartPoint): Added.
99182        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns): Added.
99183        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Added.
99184        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Followed other changes.
99185        (WebCore::HarfBuzzShaper::selectionRect): Use float for calculating selection.
99186        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
99187        (HarfBuzzShaper): Holds the start index of character. Removed unnecessary variables.
99188        (WebCore::HarfBuzzShaper::HarfBuzzRun::create): Ditto.
99189        (HarfBuzzRun):
99190        (WebCore::HarfBuzzShaper::HarfBuzzRun::fontData): Added.
99191        (WebCore::HarfBuzzShaper::HarfBuzzRun::startIndex): Ditto.
99192        (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphs): Ditto.
99193        (WebCore::HarfBuzzShaper::HarfBuzzRun::advances): Ditto.
99194
991952012-07-13  Kentaro Hara  <haraken@chromium.org>
99196
99197        Unreviewed, rolling out r122545.
99198        http://trac.webkit.org/changeset/122545
99199        https://bugs.webkit.org/show_bug.cgi?id=91185
99200
99201        We found that this was a wrong fix
99202
99203        * bindings/scripts/CodeGeneratorJS.pm:
99204        (GenerateImplementation):
99205
992062012-07-13  Kentaro Hara  <haraken@chromium.org>
99207
99208        Unreviewed, rolling out r122553.
99209        http://trac.webkit.org/changeset/122553
99210        https://bugs.webkit.org/show_bug.cgi?id=91198
99211
99212        We found that this was a wrong fix
99213
99214        * bindings/scripts/CodeGeneratorJS.pm:
99215        (GenerateImplementation):
99216
992172012-07-13  Kent Tamura  <tkent@chromium.org>
99218
99219        Change the timing of form state restore
99220        https://bugs.webkit.org/show_bug.cgi?id=89962
99221
99222        Reviewed by Hajime Morita.
99223
99224        For a preparation to fix a form identification problem (Bug 91209),
99225        restore controls states when the parsing of their owner forms is
99226        completed. For controls without owners, their states are restored when
99227        their parsing is completed as ever.
99228
99229        No new tests. This doesn't change observable behavior.
99230
99231        * html/FormController.cpp:
99232        (WebCore::ownerFormForState):
99233        Added. This code was used in formKey(), and restoreControlState*() use it.
99234        (WebCore::FormKeyGenerator::formKey): Use ownerFormForState(). No behavior change.
99235        (WebCore::FormController::restoreControlStateFor):
99236        Moved some code from HTMLFormControlElementWithState::finishParsingChildren().
99237        The difference is we don't resotre state if this control is owned by a form.
99238        (WebCore::FormController::restoreControlStateIn):
99239        Restore states of associated controls. This is called from
99240        finishParsingChildren() for <form>.
99241        * html/FormController.h:
99242        (FormController):
99243        - Declare restoreControlStateFor() and restoreControlStateIn().
99244        - Make takeStateForFormElement() private.
99245
99246        * html/FormAssociatedElement.cpp:
99247        (WebCore::FormAssociatedElement::isFormControlElementWithState):
99248        Added. The default implementation returns false.
99249        * html/FormAssociatedElement.h:
99250        (FormAssociatedElement):
99251        Added isFormControlElementWithState() for FormController::restoreControlStateIn().
99252        * html/HTMLFormControlElementWithState.cpp:
99253        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
99254        Some code was moved to FormController:restoreControlStateFor().
99255        (WebCore::HTMLFormControlElementWithState::isFormControlElementWithState):
99256        Added. Returns true.
99257        * html/HTMLFormControlElementWithState.h:
99258        (HTMLFormControlElementWithState): Declare isFormControlElementWithState().
99259        * html/HTMLFormElement.cpp:
99260        (WebCore::HTMLFormElement::finishParsingChildren):
99261        Added. Calls FormController::restoreControlStateIn().
99262        * html/HTMLFormElement.h:
99263        (HTMLFormElement): Declare finishParsingChildren().
99264
992652012-07-13  Kent Tamura  <tkent@chromium.org>
99266
99267        Make calendar pickers testable
99268        https://bugs.webkit.org/show_bug.cgi?id=84827
99269
99270        Reviewed by Hajime Morita.
99271
99272        WebCore:
99273        - Add PagePopupDriver, an interface to open/close a PagePopup.
99274        - Add setPagePopupDriver() to ChromeClient in order to inject a
99275        PagePopupDriver for testing.
99276
99277        Internals:
99278        Add MockPagePopupDriver, which creates a MockPagePopup, which creates a
99279        normal <iframe> in the top-level document, and load the popup content on
99280        it. MockPagePopupDriver is enabled by
99281        internals.settings.setEnableMockPagePopup(true).
99282
99283        Test: fast/forms/date/calendar-picker-appearance.html
99284
99285        * WebCore.gypi: Add new files.
99286        * WebCore.xcodeproj/project.pbxproj: Add files to make this buildable.
99287        * page/ChromeClient.h:
99288        (ChromeClient): Add function for PagePopupDriver.
99289        * loader/EmptyClients.h: Add empty implementations for PagePopupDriver functions.
99290        * page/PagePopupDriver.h: Added.
99291        (PagePopupDriver):
99292        (WebCore::PagePopupDriver::~PagePopupDriver):
99293
99294        * testing/InternalSettings.cpp:
99295        (WebCore::InternalSettings::Backup::restoreTo): Reset the mock PagePopupDriver.
99296        (WebCore::InternalSettings::setEnableMockPagePopup):
99297        Register MockPagePopupDriver to ChromeClient.
99298        * testing/InternalSettings.h:
99299        (InternalSettings): Declare setEnableMockPagePopup().
99300        * testing/InternalSettings.idl: ditto.
99301        * testing/MockPagePopupDriver.cpp: Added.
99302        (MockPagePopup): Pseudo PagePopup implementation with the standard <iframe>.
99303        (WebCore::MockPagePopupDriver::MockPagePopupDriver): Added.
99304        (WebCore::MockPagePopupDriver::create): Added.
99305        (WebCore::MockPagePopupDriver::~MockPagePopupDriver): Added.
99306        (WebCore::MockPagePopupDriver::openPagePopup):
99307        Added. An override of PagePopupDriver function. This creates a MockPagePopup.
99308        (WebCore::MockPagePopupDriver::closePagePopup):
99309        Added. An override of PagePopupDriver function. This deletes the MockPagePopup.
99310        * testing/MockPagePopupDriver.h:
99311        (MockPagePopupDriver): Added.
99312
99313        * testing/v8/WebCoreTestSupport.cpp:
99314        (WebCoreTestSupport::injectPagePopupController):
99315        Added. Production code uses per-Page context feature framework. However
99316        MockPagePopup uses the same page as the host page. So we can't use the
99317        framework and need to inject window.pagePopupController manually.
99318        * testing/v8/WebCoreTestSupport.h:
99319        (WebCoreTestSupport): Add injectPagePopupController().
99320
993212012-07-12  Pavel Feldman  <pfeldman@chromium.org>
99322
99323        Web Inspector: mute the native looks of the selects in the console.
99324        https://bugs.webkit.org/show_bug.cgi?id=91120
99325
99326        Reviewed by Vsevolod Vlasov.
99327
99328        This is necessary for Mac now that we don't use border images for select.
99329
99330        * inspector/front-end/ConsoleView.js:
99331        (WebInspector.ConsoleView.prototype.get statusBarItems):
99332        (WebInspector.ConsoleView.prototype.addContext):
99333        (WebInspector.ConsoleView.prototype.removeContext):
99334        (WebInspector.ConsoleView.prototype._updateIsolatedWorldSelector):
99335        (WebInspector.ConsoleView.prototype._appendIsolatedContextOption):
99336        (WebInspector.ConsoleView.prototype._currentEvaluationContext):
99337        (WebInspector.ConsoleView.prototype._currentIsolatedContextId):
99338        * inspector/front-end/StatusBarButton.js:
99339        (WebInspector.StatusBarComboBox):
99340        (WebInspector.StatusBarComboBox.prototype.addOption):
99341        (WebInspector.StatusBarComboBox.prototype.removeOption):
99342        (WebInspector.StatusBarComboBox.prototype.removeOptions):
99343        (WebInspector.StatusBarComboBox.prototype.selectedOption):
99344        * inspector/front-end/inspector.css:
99345        (.status-bar-select-container):
99346        (select.status-bar-item):
99347        (.console-context):
99348
993492012-07-13  Andrei Bucur  <abucur@adobe.com>
99350
99351        [CSS Regions] Fix the lifecycle for the flow objects and their renderers
99352        https://bugs.webkit.org/show_bug.cgi?id=89000
99353
99354        Reviewed by Eric Seidel.
99355
99356        This patch adds the concept of a NamedFlowCollection, owned by the document, that keeps track of
99357        all the named flows that exist in the Document. This collection contains a ListHashSet of weak references to
99358        all the existing NamedFlows in the document. This is not a managed set because the CREATED flows are referenced from the renderer and
99359        the NULL flows are only cached, they should be destructible.
99360        Two named flows are considered to be equal if they have the same name.
99361        I've changed the NamedFlow state to depend on the existence of its renderer. A flow thread that has a renderer will also have a NamedFlow object.
99362        A flow thread without a renderer can have a NamedFlow object, but only in the NULL state. It's possible for a NamedFlow object to jump from the
99363        NULL state to the CREATED state if it was not destroyed (e.g. it was referenced from JS). Keeping track of the NULL state flows that have listeners will be important
99364        so when they go back to the CREATED state, the listeners would still be there.
99365
99366        Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/
99367
99368        Tests: The old tests have been modified to take into account the new behavior
99369
99370        * CMakeLists.txt:
99371        * GNUmakefile.list.am:
99372        * Target.pri:
99373        * WebCore.gypi:
99374        * WebCore.vcproj/WebCore.vcproj:
99375        * WebCore.xcodeproj/project.pbxproj:
99376        * dom/DOMAllInOne.cpp:
99377        * dom/Document.cpp:
99378        (WebCore::Document::~Document):
99379        (WebCore):
99380        (WebCore::Document::webkitGetFlowByName):
99381        (WebCore::Document::namedFlows):
99382        * dom/Document.h:
99383        (WebCore):
99384        (Document):
99385        * dom/WebKitNamedFlow.cpp:
99386        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
99387        (WebCore::WebKitNamedFlow::~WebKitNamedFlow):
99388        (WebCore::WebKitNamedFlow::create):
99389        (WebCore):
99390        (WebCore::WebKitNamedFlow::name):
99391        (WebCore::WebKitNamedFlow::overset):
99392        (WebCore::nodeInFlowThread):
99393        (WebCore::WebKitNamedFlow::getRegionsByContentNode):
99394        (WebCore::WebKitNamedFlow::getContent):
99395        (WebCore::WebKitNamedFlow::setRenderer):
99396        * dom/WebKitNamedFlow.h:
99397        (WebCore):
99398        (WebKitNamedFlow):
99399        (WebCore::WebKitNamedFlow::getFlowState):
99400        (WebCore::WebKitNamedFlow::switchFlowState):
99401        * dom/WebKitNamedFlowCollection.cpp: Added.
99402        (WebCore):
99403        (WebCore::WebKitNamedFlowCollection::WebKitNamedFlowCollection):
99404        (WebCore::WebKitNamedFlowCollection::length): An O(1) operation
99405        (WebCore::WebKitNamedFlowCollection::item): An O(N) operation
99406        (WebCore::WebKitNamedFlowCollection::flowByName): An O(1) operation
99407        (WebCore::WebKitNamedFlowCollection::ensureNamedFlowInCreatedState): An O(1) operation
99408        (WebCore::WebKitNamedFlowCollection::moveNamedFlowToNullState): An O(1) operation
99409        (WebCore::WebKitNamedFlowCollection::discardNamedFlow): An O(1) operation
99410        (WebCore::WebKitNamedFlowCollection::documentDestroyed):
99411        (WebCore::WebKitNamedFlowCollection::NamedFlowHashFunctions::hash):
99412        (WebCore::WebKitNamedFlowCollection::NamedFlowHashFunctions::equal):
99413        (WebKitNamedFlowCollection::NamedFlowHashFunctions):
99414        (WebCore::WebKitNamedFlowCollection::NamedFlowHashTranslator::hash):
99415        (WebCore::WebKitNamedFlowCollection::NamedFlowHashTranslator::equal):
99416        * dom/WebKitNamedFlowCollection.h: Copied from Source/WebCore/dom/WebKitNamedFlow.h.
99417        (WebCore):
99418        (WebKitNamedFlowCollection):
99419        (WebCore::WebKitNamedFlowCollection::create):
99420        (WebCore::WebKitNamedFlowCollection::document):
99421        * rendering/FlowThreadController.cpp:
99422        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
99423        (WebCore::FlowThreadController::removeFlowThread):
99424        (WebCore):
99425        * rendering/FlowThreadController.h:
99426        (FlowThreadController):
99427        * rendering/RenderNamedFlowThread.cpp:
99428        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
99429        (WebCore):
99430        (WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
99431        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
99432        (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
99433        (WebCore::RenderNamedFlowThread::flowThreadName):
99434        (WebCore::RenderNamedFlowThread::willBeDestroyed):
99435        * rendering/RenderNamedFlowThread.h:
99436        (RenderNamedFlowThread):
99437        (WebCore::RenderNamedFlowThread::contentNodes):
99438        (WebCore::RenderNamedFlowThread::canBeDestroyed):
99439
994402012-07-13  Vineet Chaudhary  <rgf748@motorola.com>
99441
99442        [V8Bindings] Implement generalised method to validates that the passed object is a sequence type.
99443        https://bugs.webkit.org/show_bug.cgi?id=91056
99444
99445        Reviewed by Kentaro Hara.
99446
99447        Currently the V8 implementation validates that the passed object is a sequence type only
99448        for MessagePort in V8Utilities::extractTransferables().
99449        There should be generalised method for other types too.
99450        Spec URL: http://www.w3.org/TR/2012/WD-WebIDL-20120207/#es-sequence
99451
99452        No new test, Just refactoring. There should be no behavioral changes.
99453
99454        * bindings/v8/V8Binding.h:
99455        (WebCore::toV8Sequence): Added implementation of toV8Sequence().
99456
994572012-07-13  Zeno Albisser  <zeno@webkit.org>
99458
99459        [Qt][WK2] Implement GraphicsSurface for Linux/GLX.
99460        https://bugs.webkit.org/show_bug.cgi?id=90881
99461
99462        Add a GLX based GraphicsSurface implementation for Linux.
99463        Native X windows are being used for exchanging textures
99464        with the UIProcess.
99465
99466        Reviewed by Noam Rosenthal.
99467
99468        * Target.pri:
99469        * WebCore.pri:
99470        * platform/graphics/surfaces/GraphicsSurface.cpp:
99471        (WebCore::GraphicsSurface::create):
99472            Move creating GraphicsSurface instance into
99473            platformCreate/platformImport functions to allow
99474            platform specific creation based on the provided flags.
99475        (WebCore::GraphicsSurface::GraphicsSurface):
99476        (WebCore::GraphicsSurface::~GraphicsSurface):
99477            Call platformDestroy when destroying a GraphicsSurface.
99478        (WebCore):
99479        * platform/graphics/surfaces/GraphicsSurface.h:
99480            Make platformCreate/platformImport functions static
99481            to be able to call these from the static create function.
99482            Add Destructor prototype and add GraphicsSurfacePrivate member.
99483        (WebCore):
99484        (GraphicsSurface):
99485        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
99486        (WebCore):
99487        (WebCore::GraphicsSurface::platformCreate):
99488        (WebCore::GraphicsSurface::platformImport):
99489            Insert creation of GraphicsSurface instance.
99490            This allows having a platform specific creation mechanism
99491            for GLX.
99492        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: Added.
99493        (WebCore):
99494        (OffScreenRootWindow):
99495        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
99496        (WebCore::OffScreenRootWindow::get):
99497        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
99498            Add an OffScreenRootWindow singelton that is being used
99499            as a parent for all native offscreen windows.
99500        (GraphicsSurfacePrivate):
99501            This class is used to manage all the X related resources
99502            such as opening a display or creating XPixmaps etc.
99503        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
99504            Open a connection to the X server and create a
99505            QOpenGLContext that can be used to resolve GL functions.
99506        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
99507            Properly cleanup and release all the X resources again.
99508        (WebCore::GraphicsSurfacePrivate::createSurface):
99509            Create a surface that is placed off screen and can be
99510            used as a rendering target by the WebProcess.
99511        (WebCore::GraphicsSurfacePrivate::createPixmap):
99512            Create a GLXPixmap from the XWindow that was previously
99513            redirected by the WebProcess. This GLXPixmap can then be
99514            bound to a texture and being painted on screen by the
99515            UIProcess.
99516        (WebCore::GraphicsSurfacePrivate::makeCurrent):
99517        (WebCore::GraphicsSurfacePrivate::swapBuffers):
99518        (WebCore::GraphicsSurfacePrivate::display):
99519        (WebCore::GraphicsSurfacePrivate::glxPixmap):
99520        (WebCore::GraphicsSurfacePrivate::size):
99521        (WebCore::GraphicsSurfacePrivate::glContext):
99522        (WebCore::resolveGLMethods):
99523            Initialize all the function pointers for the GL functions used.
99524        (WebCore::GraphicsSurface::platformExport):
99525        (WebCore::GraphicsSurface::platformGetTextureID):
99526            Bind the GLXPixmap to a texture.
99527        (WebCore::GraphicsSurface::platformCopyToGLTexture):
99528            Not beeing implemented for GLX.
99529        (WebCore::GraphicsSurface::platformCopyFromFramebuffer):
99530            Blit origin fbo onto the GraphicsSurface's backing.
99531        (WebCore::GraphicsSurface::platformCreate):
99532        (WebCore::GraphicsSurface::platformImport):
99533        (WebCore::GraphicsSurface::platformLock):
99534        (WebCore::GraphicsSurface::platformUnlock):
99535        (WebCore::GraphicsSurface::platformDestroy):
99536
995372012-07-13  Dongwoo Im  <dw.im@samsung.com>
99538
99539        CodeGeneratorJS.pm : SetterExpression should use 'push' rather than 'unshift'
99540        https://bugs.webkit.org/show_bug.cgi?id=91198
99541
99542        Reviewed by Kentaro Hara.
99543
99544        'SetterExpression' should use 'push' to make arguments, rather than 'unshift'.
99545
99546        No new tests. Covered by existing tests.
99547
99548        * bindings/scripts/CodeGeneratorJS.pm:
99549        (GenerateImplementation):
99550
995512012-07-13  Yoshifumi Inoue  <yosin@chromium.org>
99552
99553        REGRESSION(r119948): [Forms] Spin button Up/Down actions make value to zero for input type "number" when step mismatched
99554        https://bugs.webkit.org/show_bug.cgi?id=91197
99555
99556        Reviewed by Kent Tamura.
99557
99558        This patch fixes implementation of Decimal::ceiling() and floor().
99559        They return wrong value for small fractional numbers.
99560
99561        The bug is occurred when:
99562          - Step-able input type, e.g. number, date, datetime, and so on.
99563          - Current value is step mismatched
99564          - Current value is smaller than step
99565          - Step up/down by spin button
99566        because spin button up/down actions are implemented in InputType::setpUpFromRenderer
99567        which calls Decimal::ceiling() and floor() for step mismatched case.
99568
99569        Tests: fast/forms/number/number-stepup-stepdown-from-renderer.html: Added test cases
99570               WebKit/chromium/tests/DecimalTest.cpp: Added test cases
99571
99572        * platform/Decimal.cpp:
99573        (WebCore::Decimal::ceiling): Changed to return 1 for positive small fractional number.
99574        (WebCore::Decimal::floor): Changed to return -1 for negative small fractional number.
99575
995762012-07-13  Dominic Mazzoni  <dmazzoni@google.com>
99577
99578        Should be possible to focus elements within canvas fallback content
99579        https://bugs.webkit.org/show_bug.cgi?id=87898
99580
99581        Reviewed by Chris Fleizach.
99582
99583        Patches isFocusable in dom/Node.cpp and html/HTMLFormControlElement.cpp
99584        to make elements focusable if they're a descendent of a canvas element
99585        if they would otherwise have been focusable but just didn't have
99586        a renderer. Adds a bit to ElementRareData to efficiently keep track
99587        of elements in a canvas subtree.
99588
99589        Test: fast/canvas/fallback-content.html
99590
99591        * dom/Element.cpp:
99592        (WebCore::Element::attach):
99593        (WebCore::Element::detach):
99594        (WebCore::Element::setIsInCanvasSubtree):
99595        (WebCore):
99596        (WebCore::Element::isInCanvasSubtree):
99597        * dom/Element.h:
99598        (Element):
99599        * dom/ElementRareData.h:
99600        (ElementRareData):
99601        (WebCore::ElementRareData::ElementRareData):
99602        * dom/Node.cpp:
99603        (WebCore::Node::isFocusable):
99604        * html/HTMLCanvasElement.cpp:
99605        (WebCore::HTMLCanvasElement::attach):
99606        (WebCore):
99607        * html/HTMLCanvasElement.h:
99608        (HTMLCanvasElement):
99609        * html/HTMLFormControlElement.cpp:
99610        (WebCore::HTMLFormControlElement::isFocusable):
99611
996122012-07-12  Carlos Garcia Campos  <cgarcia@igalia.com>
99613
99614        [GTK] Add API to get HTTPS status to WebKit2 GTK+
99615        https://bugs.webkit.org/show_bug.cgi?id=91100
99616
99617        Reviewed by Martin Robinson.
99618
99619        * platform/network/soup/ResourceResponse.h:
99620        (WebCore::ResourceResponse::soupMessageCertificate): Return the
99621        certificate.
99622        (WebCore::ResourceResponse::setSoupMessageCertificate): Set a
99623        certificate.
99624        (WebCore::ResourceResponse::soupMessageTLSErrors): Return the TLS
99625        errors.
99626        (WebCore::ResourceResponse::setSoupMessageTLSErrors): Set TLS
99627        errors.
99628        * platform/network/soup/ResourceResponseSoup.cpp:
99629        (WebCore::ResourceResponse::toSoupMessage): Set the certificate
99630        and TLS errors to the newly created SoupMessage.
99631        (WebCore::ResourceResponse::updateFromSoupMessage): Get the
99632        certificate and TLS errors from the SoupMessage.
99633
996342012-07-13  Ryosuke Niwa  <rniwa@webkit.org>
99635
99636        RadioNodeList is not updated upon input type change
99637        https://bugs.webkit.org/show_bug.cgi?id=91178
99638
99639        Reviewed by Alexey Proskuryakov.
99640
99641        Invalidate the radio node lists when type content attribute changes since it excludes
99642        image type input elements.
99643
99644        Test: fast/forms/radionodelist-image-type.html
99645
99646        * dom/Document.cpp:
99647        (WebCore::shouldInvalidateNodeListForType):
99648        * dom/Document.h: Renamed InvalidateOnIdNameForAttrChange to InvalidateOnFormAttrChange
99649        since listing all attribute name isn't useful at this point.
99650        * html/RadioNodeList.cpp:
99651        (WebCore::RadioNodeList::RadioNodeList):
99652
996532012-07-12  Dongwoo Im  <dw.im@samsung.com>
99654
99655        CodeGeneratorJS.pm need to handle the attribute which has "CallWith=ScriptExecutionContext" option.
99656        https://bugs.webkit.org/show_bug.cgi?id=91185
99657
99658        Reviewed by Kentaro Hara.
99659
99660        When an attribute has "CallWith=ScriptExecutionContext" option, 'ScriptExecutionContext*' parameter should be the last parameter.
99661
99662        No new tests. Covered by existing tests.
99663
99664        * bindings/scripts/CodeGeneratorJS.pm:
99665        (GenerateImplementation):
99666
996672012-07-12  Yoshifumi Inoue  <yosin@chromium.org>
99668
99669        REGRESSION(r117738): [Forms] stepMismatch for input type "time" with large step value always return false.
99670        https://bugs.webkit.org/show_bug.cgi?id=91062
99671
99672        Reviewed by Kent Tamura.
99673
99674        This patch changes value of StepRange::acceptableError to zero for
99675        integer restricted step value.
99676
99677        No new tests, existing test covers (fast/forms/time/ValidityState-stepMismatch-time.html) this change although they are listed in TestExpectation file.
99678
99679        * html/StepRange.cpp:
99680        (WebCore::StepRange::acceptableError): Changed to return 0 if step value is restricted to be an integer.
99681
996822012-07-12  Dan Bernstein  <mitz@apple.com>
99683
99684        Pass an option flag to CFStringGetHyphenationLocationBeforeIndex() that tells it to not
99685        terminate the search at the last word boundary before the given index.
99686
99687        Reviewed by Adele Peterson.
99688
99689        No test, because the current version of Core Foundation ignores the options parameter.
99690
99691        * platform/text/cf/HyphenationCF.cpp:
99692        (WebCore::lastHyphenLocation): Changed the options parameter from 0 to 1.
99693
996942012-07-12  Eric Seidel  <eric@webkit.org>
99695
99696        Incorrect behaviour calling Range setStart or setEnd with boundary in different document
99697        https://bugs.webkit.org/show_bug.cgi?id=42517
99698
99699        Reviewed by Ojan Vafai.
99700
99701        Added a new static inline "checkForDifferentRootContainer" to share some code
99702        and made setStart/setEnd do the right thing in the x-document case.  I removed
99703        the bogus checks in set*After/set*Before functions, and since they just call
99704        through to setStart/setEnd, they also now do the right thing.
99705
99706        Test: fast/dom/Range/set-wrong-document-err.html
99707
99708        * dom/Range.cpp:
99709        (WebCore::checkForDifferentRootContainer):
99710        (WebCore):
99711        (WebCore::Range::setStart):
99712        (WebCore::Range::setEnd):
99713        (WebCore::Range::setStartAfter):
99714        (WebCore::Range::setEndBefore):
99715        (WebCore::Range::setEndAfter):
99716        (WebCore::Range::setStartBefore):
99717
997182012-07-12  Erik Arvidsson  <arv@chromium.org>
99719
99720        [V8] Simplify CodeGeneratorV8 since V8OnProto is only true for DOMWindow
99721        https://bugs.webkit.org/show_bug.cgi?id=91165
99722
99723        Reviewed by Nate Chapin.
99724
99725        The old code was dead code since V8OnProto only ever gets set to 1 for DOMWindow.
99726
99727        No new tests. No change in functionality.
99728
99729        * bindings/scripts/CodeGeneratorV8.pm:
99730        (GenerateNormalAttrSetter):
99731
997322012-07-12  Ryosuke Niwa  <rniwa@webkit.org>
99733
99734        Build fix. Initialize unused const member variables to make compilers happy.
99735
99736        * dom/DynamicNodeList.h:
99737        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
99738
997392012-07-12  Konrad Piascik  <kpiascik@rim.com>
99740
99741        Web Inspector: Geolocation override
99742        https://bugs.webkit.org/show_bug.cgi?id=89365
99743
99744        Reviewed by Pavel Feldman.
99745
99746        Reverted original patch.
99747        Change has not been reviewed by the right people. It declares
99748        public protocol methods and is wrong in several ways.
99749
99750        * Modules/geolocation/GeolocationController.cpp:
99751        (WebCore::GeolocationController::GeolocationController):
99752        (WebCore::GeolocationController::positionChanged):
99753        * Modules/geolocation/GeolocationController.h:
99754        (GeolocationController):
99755        * inspector/Inspector.json:
99756        * inspector/InspectorInstrumentation.cpp:
99757        (WebCore):
99758        * inspector/InspectorInstrumentation.h:
99759        (WebCore):
99760        (InspectorInstrumentation):
99761        * inspector/InspectorPageAgent.cpp:
99762        (WebCore::InspectorPageAgent::InspectorPageAgent):
99763        * inspector/InspectorPageAgent.h:
99764        * inspector/front-end/Settings.js:
99765        * inspector/front-end/SettingsScreen.js:
99766        (WebInspector.UserAgentSettingsTab):
99767        (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
99768        * inspector/front-end/UserAgentSupport.js:
99769
997702012-07-12  Ryosuke Niwa  <rniwa@webkit.org>
99771
99772        Move m_type and m_hasNameCache from HTMLCollectionCacheBase to DynamicNodeListCacheBase for better bit packing
99773        https://bugs.webkit.org/show_bug.cgi?id=91164
99774
99775        Reviewed by Anders Carlsson.
99776
99777        Moved m_type and m_hasNameCache from HTMLCollection and renamed them to m_collectionType and m_isNameCacheValid.
99778
99779        Also renamed shouldIncludeChildren to shouldOnlyIncludeDirectChildren and negated the return value since
99780        all HTMLCollection include children in the collection and the function was meant to tell us whether the collection
99781        should include descendents that are not direct children of base().
99782
99783        In addition, renamed nextNodeOrSibling to nextNode since "or sibling" doesn't seem to add any semantic clarity.
99784
99785        * dom/DynamicNodeList.h:
99786        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
99787        (DynamicNodeListCacheBase):
99788        (WebCore::DynamicNodeListCacheBase::type):
99789        (WebCore::DynamicNodeListCacheBase::hasNameCache):
99790        (WebCore::DynamicNodeListCacheBase::setHasNameCache):
99791        (WebCore::DynamicNodeListCacheBase::clearCache):
99792        * html/HTMLCollection.cpp:
99793        (WebCore::shouldOnlyIncludeDirectChildren):
99794        (WebCore::HTMLCollection::HTMLCollection):
99795        (WebCore::HTMLCollection::isAcceptableElement):
99796        (WebCore::nextNode):
99797        (WebCore::HTMLCollection::itemAfter):
99798        * html/HTMLCollection.h:
99799        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
99800        (HTMLCollectionCacheBase):
99801        (WebCore::HTMLCollectionCacheBase::clearCache):
99802
998032012-07-12  Shinya Kawanaka  <shinyak@chromium.org>
99804
99805        Needs callback before AuthorShadowRoot is added.
99806        https://bugs.webkit.org/show_bug.cgi?id=91167
99807
99808        Reviewed by Hajime Morita.
99809
99810        This is a preliminary patch for adding multiple Shadow DOM support for media elements and form elements.
99811        They assume that UserAgentShadowRoot is the oldest, however currently a page author may try to add
99812        AuthorShadowRoot before adding UserAgentShadowRoot.
99813
99814        This patch adds a callback before AuthorShadowRoot is being added, and allow us to add UserAgentShadowRoot
99815        for those elements. See also Bug 77936, Bug 77937, Bug 90532.
99816
99817        * dom/Element.h:
99818        (WebCore::Element::willAddAuthorShadowRoot):
99819        * dom/ElementShadow.cpp:
99820        (WebCore::ElementShadow::addShadowRoot):
99821        * dom/ElementShadow.h:
99822        (ElementShadow):
99823        * dom/ShadowRoot.cpp:
99824        (WebCore::ShadowRoot::create):
99825
998262012-07-12  Dana Jansens  <danakj@chromium.org>
99827
99828        [chromium] Remove the RenderPass pointer from RenderPassDrawQuad
99829        https://bugs.webkit.org/show_bug.cgi?id=91023
99830
99831        Reviewed by Adrienne Walker.
99832
99833        Removes the RenderPass pointer and keeps only an integer id in the
99834        quad to refer back to the RenderPass the quad reads from.
99835
99836        Covered by existing tests.
99837
99838        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
99839        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
99840        (WebCore::findRenderPassById):
99841        (WebCore):
99842        (WebCore::removeRenderPassesRecursive):
99843        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::shouldRemoveRenderPass):
99844        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass):
99845        (WebCore::CCLayerTreeHostImpl::removeRenderPasses):
99846        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
99847        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
99848        (FrameData):
99849        (CullRenderPassesWithCachedTextures):
99850        (CullRenderPassesWithNoQuads):
99851        (CCLayerTreeHostImpl):
99852        * platform/graphics/chromium/cc/CCRenderPass.cpp:
99853        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
99854        * platform/graphics/chromium/cc/CCRenderPass.h:
99855        (WebCore):
99856        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
99857        (WebCore::CCRenderPassDrawQuad::create):
99858        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
99859        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
99860        (CCRenderPassDrawQuad):
99861        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
99862        (WebCore::CCRenderSurface::appendQuads):
99863        * platform/graphics/chromium/cc/CCRenderSurface.h:
99864        (CCRenderSurface):
99865
998662012-07-12  Elliott Sprehn  <esprehn@gmail.com>
99867
99868        Unneeded tree walking when adding or removing children due to RenderCounter / RenderQuote logic
99869        https://bugs.webkit.org/show_bug.cgi?id=89900
99870
99871        Reviewed by Eric Seidel and Abhishek Arya.
99872
99873        Previously we would walk the all children a renderer whenever adding
99874        or removing a child renderer from its RenderObjectChildList to look for 
99875        RenderQuote and RenderCounter instances to update. This patch introduces 
99876        a counter in RenderView for the number of RenderQuote and RenderCounter 
99877        instances in that document so we can avoid these traversals.
99878
99879        No tests needed since this is just a short circuiting of logic and the existing
99880        tests should cover it.
99881
99882        * rendering/RenderCounter.cpp:
99883        (WebCore::RenderCounter::RenderCounter): Increment instance counter.
99884        (WebCore::RenderCounter::willBeDestroyed): Decrement instance counter.
99885        (WebCore):
99886        (WebCore::RenderCounter::rendererRemovedFromTree): Short circuit when counter is zero.
99887        (WebCore::RenderCounter::rendererSubtreeAttached): Short circuit when counter is zero.
99888        * rendering/RenderCounter.h:
99889        (RenderCounter):
99890        * rendering/RenderObjectChildList.cpp:
99891        (WebCore::RenderObjectChildList::removeChildNode): Short circuit calling into Counter and Quote code when the document is being destroyed.
99892        * rendering/RenderQuote.cpp:
99893        (WebCore::RenderQuote::RenderQuote):
99894        (WebCore::RenderQuote::willBeDestroyed):
99895        (WebCore):
99896        (WebCore::RenderQuote::rendererSubtreeAttached): Increment instance counter.
99897        (WebCore::RenderQuote::rendererRemovedFromTree): Decrement instance counter.
99898        * rendering/RenderQuote.h:
99899        (RenderQuote):
99900        * rendering/RenderView.cpp:
99901        (WebCore::RenderView::RenderView):
99902        * rendering/RenderView.h: Methods for managing the RenderQuote and RenderCounter counts.
99903        (RenderView):
99904        (WebCore::RenderView::addRenderQuote):
99905        (WebCore::RenderView::removeRenderQuote):
99906        (WebCore::RenderView::hasRenderQuotes):
99907        (WebCore::RenderView::addRenderCounter):
99908        (WebCore::RenderView::removeRenderCounter):
99909        (WebCore::RenderView::hasRenderCounters):
99910
999112012-07-12  Ryosuke Niwa  <rniwa@webkit.org>
99912
99913        Merge HTMLCollectionWithArrayStorage into HTMLCollection
99914        https://bugs.webkit.org/show_bug.cgi?id=91144
99915
99916        Reviewed by Anders Carlsson.
99917
99918        Merged HTMLCollectionWithArrayStorage::item into HTMLCollection::item and got rid of
99919        HTMLCollectionWithArrayStorage. Also de-virtualized HTMLCollection::item and HTMLCollection::length
99920        and merged itemInArrayAfter and itemAfter.
99921
99922        In addition, improved the algorithm in HTMLCollection::length to take advantage of item cache.
99923        Instead of always computing the length from the beginning, we start the search from the cached item
99924        so that if we're near end of the collection, we avoid significant portion of the node traversal.
99925
99926        Furthermore, made HTMLCollection always call setItemCache with a non-null item and HTMLCollection::item
99927        set the length cache when it reaches the end of the collection to avoid redundant length calculations.
99928
99929        * dom/DynamicNodeList.h:
99930        (WebCore::DynamicNodeListCacheBase::setItemCache): Add a FIXME.
99931        * html/HTMLCollection.cpp:
99932        (WebCore::HTMLCollection::itemAfter): Regular HTMLCollection doesn't have uses elements array so
99933        assert that offsetInArray is always 0.
99934        (WebCore): Removed calcLength.
99935        (WebCore::HTMLCollection::length): Rewritten. The algorithm is as follows:
99936        When there is no item cache, we look for the first item by calling item(0). If item(0) returns null,
99937        then it must have set the length cache so bail out. If the previous step didn't bail out, then
99938        the item cache is valid and not null (see above), so count the number of remaining items in collection
99939        starting at the cached item's offset + 1.
99940        (WebCore::HTMLCollection::item): Avoid calling setItemCache with null. When the first item is null,
99941        set the length cache instead.
99942        (WebCore::HTMLCollection::itemAfterCachedItem): Extracted from HTMLCollectionWithArrayStorage::item.
99943        (WebCore::HTMLCollection::namedItem): Pass in arrayOffset to itemAfter. Note this variable is never
99944        used since only HTMLFormCollection and HTMLPropertiesCollection use array offsets but they override
99945        this function.
99946        (WebCore::HTMLCollection::updateNameCache): Ditto.
99947        * html/HTMLCollection.h:
99948        (HTMLCollection):
99949        (WebCore):
99950        * html/HTMLFormCollection.cpp: Removed calcLength(). Even though this function didn't iterate over
99951        the collection directly, HTMLFormElement::length and HTMLFieldSetElement::length did so we're not
99952        regressing any performance here.
99953        (WebCore::HTMLFormCollection::HTMLFormCollection):
99954        (WebCore::HTMLFormCollection::itemAfter):
99955        * html/HTMLFormCollection.h:
99956        (HTMLFormCollection):
99957        * html/HTMLNameCollection.cpp:
99958        (WebCore::HTMLNameCollection::itemAfter):
99959        * html/HTMLNameCollection.h:
99960        (HTMLNameCollection):
99961        * html/HTMLPropertiesCollection.cpp: Removed calcLength().
99962        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
99963        (WebCore::HTMLPropertiesCollection::itemAfter):
99964        (WebCore):
99965        * html/HTMLPropertiesCollection.h:
99966        (HTMLPropertiesCollection):
99967        * html/HTMLTableRowsCollection.cpp:
99968        (WebCore::HTMLTableRowsCollection::itemAfter):
99969        * html/HTMLTableRowsCollection.h:
99970        (HTMLTableRowsCollection):
99971
999722012-07-12  Pravin D  <pravind.2k4@gmail.com>
99973
99974        Row size/position is wrongly calculated when table having overlapping rowspan cell and colspan cell
99975        https://bugs.webkit.org/show_bug.cgi?id=16811
99976
99977        Reviewed by Julien Chaffraix.
99978
99979        The height of a row is calculated by taking the max height of the cells contained in it. When a row contains
99980        a rowSpan cell and if this row is not the last row of the cell, then its height is max height of other non
99981        rowSpan cells. If the row is the last row of the rowSpan cell, then using the contraint laid by CSS2.1 spec
99982        "For a rowSpan cell, the sum of the row heights involved must be great enough to encompass the cell spanning the rows",
99983        the last remaining height of the rowSpan(cell height minus heights of other involved rows) is taken into consideration
99984        while calculating the height of this row.
99985        Currently when calculating the height of the row we are only using the height of the primary cell at position (row, col).
99986        However when a row has colSpan cell and rowSpan, they might overlap. In such a sitution as only the primary cells height
99987        is considered, the height of the row will be calculated worngly if the other overlapping cell has greater height.
99988        Thus all the overlapping cell at position (row, col) must be considered while calculating the height of a row. 
99989
99990        Test: fast/table/last-cell-of-rowspan-overlapping-colspan-cell.html
99991
99992        * rendering/RenderTableSection.cpp:
99993        (WebCore::RenderTableSection::calcRowLogicalHeight):
99994        Fixed function to use all the overlapping cells at position(row, col) to calculate the height/position of rows.
99995
999962012-07-12  Joshua Bell  <jsbell@chromium.org>
99997
99998        IndexedDB: Enable IDBFactory.deleteDatabase() and webkitGetDatabaseNames() in Workers
99999        https://bugs.webkit.org/show_bug.cgi?id=90310
100000
100001        Reviewed by Tony Chang.
100002
100003        Simplify Document vs. Worker logic for IDBFactory::open() and hook up the
100004        other two IDBFactory methods for use by workers as well.
100005
100006        Test: storage/indexeddb/factory-basics-workers.html
100007
100008        * Modules/indexeddb/IDBFactory.cpp:
100009        (isContextValid): Helper function consolidating checks that context is usable.
100010        (getIndexedDBDatabasePath): Helper function for accessing group settings.
100011        (WebCore::IDBFactory::getDatabaseNames): Simplify - just pass context through to back end.
100012        (WebCore::IDBFactory::open): Ditto.
100013        (WebCore::IDBFactory::deleteDatabase): Ditto.
100014        (WebCore::IDBFactory::cmp): Whitespace.
100015        * Modules/indexeddb/IDBFactoryBackendImpl.cpp: Obsolete openFromWorker() removed.
100016        (WebCore::IDBFactoryBackendImpl::getDatabaseNames): Signature updated.
100017        (WebCore::IDBFactoryBackendImpl::deleteDatabase): Signature updated.
100018        (WebCore::IDBFactoryBackendImpl::open): Signature updated.
100019        * Modules/indexeddb/IDBFactoryBackendImpl.h:
100020        (IDBFactoryBackendImpl):
100021        * Modules/indexeddb/IDBFactoryBackendInterface.h: Interface methods now take both SecurityOrigin
100022        and ScriptExecutionContext, but not Frame. In the proxy, SecurityOrigin is redundant (can be
100023        accessed from context) but on the real back end the context is null (as Frame was previously).
100024        (IDBFactoryBackendInterface):
100025        * inspector/InspectorIndexedDBAgent.cpp:
100026        (WebCore):
100027        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
100028        (WebCore::InspectorIndexedDBAgent::requestDatabase):
100029        (WebCore::InspectorIndexedDBAgent::requestData):
100030
1000312012-07-12  Dana Jansens  <danakj@chromium.org>
100032
100033        [chromium] The root layer should not try create a second RenderSurface for itself
100034        https://bugs.webkit.org/show_bug.cgi?id=91124
100035
100036        Reviewed by Adrienne Walker.
100037
100038        Tests: CCLayerTreeHostImplTest.rootLayerDoesntCreateExtraSurface
100039
100040        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
100041        (WebCore::subtreeShouldRenderToSeparateSurface):
100042
1000432012-07-12  Adam Barth  <abarth@webkit.org>
100044
100045        Regression (r122359) Layout Test html5lib/runner.html is failing
100046        https://bugs.webkit.org/show_bug.cgi?id=91047
100047
100048        Reviewed by Tony Chang.
100049
100050        This ASSERT is bogus because doctypes can be removed from the DOM and
100051        then re-added.
100052
100053        Test: fast/viewport/viewport-legacy-xhtmlmp-remove-and-add.html
100054
100055        * dom/Document.cpp:
100056        (WebCore::Document::setDocType):
100057
1000582012-07-12  Ojan Vafai  <ojan@chromium.org>
100059
100060        Implied minimum size of flex items is min-content
100061        https://bugs.webkit.org/show_bug.cgi?id=87546
100062
100063        Reviewed by Tony Chang.
100064
100065        http://dev.w3.org/csswg/css3-flexbox/#min-size-auto
100066        In the main axis direction, min-size of auto means min-content.
100067
100068        Test: css3/flexbox/flex-item-min-size.html
100069
100070        * rendering/RenderBox.cpp:
100071        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
100072        (WebCore::RenderBox::computeContentLogicalHeightUsing):
100073        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
100074        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
100075        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
100076        (WebCore::RenderBox::computePositionedLogicalHeightUsing):
100077        It turned out that these FIXMEs are all unnecessary with the changes to RenderFlexibleBox.
100078
100079        * rendering/RenderFlexibleBox.cpp:
100080        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
100081        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
100082
1000832012-07-12  Eric Penner  <epenner@google.com>
100084
100085        [chromium] Use CCTexture/TextureAllocator and remove TextureManager
100086        https://bugs.webkit.org/show_bug.cgi?id=91001
100087
100088        Reviewed by Adrienne Walker.
100089
100090        Use CCTexture to clean up CCPrioritizedTexture::Backing.
100091        Add TextureAllocator.h and remove remainder of TextureManager.h/cpp.
100092        Minor move/refactoring of link/unlink in CCPrioritizedTexture.
100093        Remove double initialization of the default memory limit.
100094
100095        Covered by existing tests (refactoring).
100096
100097        * WebCore.gypi:
100098        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
100099        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
100100        (WebCore):
100101        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
100102        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
100103        (WebCore):
100104        * platform/graphics/chromium/ImageLayerChromium.cpp:
100105        * platform/graphics/chromium/LayerRendererChromium.cpp:
100106        (WebCore::LayerRendererChromium::initialize):
100107        * platform/graphics/chromium/ManagedTexture.cpp: Removed.
100108        * platform/graphics/chromium/ManagedTexture.h: Removed.
100109        * platform/graphics/chromium/RenderSurfaceChromium.h:
100110        (WebCore):
100111        * platform/graphics/chromium/TextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCPriorityCalculator.h.
100112        (WebCore):
100113        (TextureAllocator):
100114        (WebCore::TextureAllocator::~TextureAllocator):
100115        * platform/graphics/chromium/TextureManager.cpp: Removed.
100116        * platform/graphics/chromium/TextureManager.h: Removed.
100117        * platform/graphics/chromium/TiledLayerChromium.cpp:
100118        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
100119        (WebCore::TrackingTextureAllocator::createTexture):
100120        (WebCore::TrackingTextureAllocator::deleteTexture):
100121        * platform/graphics/chromium/TrackingTextureAllocator.h:
100122        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
100123        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
100124        (WebCore::CCLayerTreeHost::prioritizeTextures):
100125        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
100126        (WebCore):
100127        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
100128        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
100129        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
100130        (WebCore::CCPrioritizedTexture::CCPrioritizedTexture):
100131        (WebCore::CCPrioritizedTexture::setDimensions):
100132        (WebCore::CCPrioritizedTexture::textureId):
100133        (WebCore::CCPrioritizedTexture::bindTexture):
100134        (WebCore::CCPrioritizedTexture::framebufferTexture2D):
100135        (WebCore::CCPrioritizedTexture::link):
100136        (WebCore):
100137        (WebCore::CCPrioritizedTexture::unlink):
100138        * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
100139        (WebCore):
100140        (WebCore::CCPrioritizedTexture::bytes):
100141        (CCPrioritizedTexture):
100142        (WebCore::CCPrioritizedTexture::haveBackingTexture):
100143        (WebCore::CCPrioritizedTexture::Backing::Backing):
100144        (WebCore::CCPrioritizedTexture::Backing::~Backing):
100145        (WebCore::CCPrioritizedTexture::Backing::owner):
100146        (Backing):
100147        (WebCore::CCPrioritizedTexture::backing):
100148        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
100149        (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
100150        (WebCore::CCPrioritizedTextureManager::requestLate):
100151        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
100152        (WebCore::CCPrioritizedTextureManager::reduceMemory):
100153        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
100154        (WebCore::CCPrioritizedTextureManager::registerTexture):
100155        (WebCore::CCPrioritizedTextureManager::returnBackingTexture):
100156        (WebCore::CCPrioritizedTextureManager::createBacking):
100157        (WebCore::CCPrioritizedTextureManager::destroyBacking):
100158        (WebCore::CCPrioritizedTextureManager::assertInvariants):
100159        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
100160        (CCPrioritizedTextureManager):
100161        (WebCore::CCPrioritizedTextureManager::defaultMemoryAllocationLimit):
100162        (WebCore::CCPrioritizedTextureManager::compareBackings):
100163        * platform/graphics/chromium/cc/CCPriorityCalculator.h:
100164        * platform/graphics/chromium/cc/CCScopedTexture.cpp:
100165        * platform/graphics/chromium/cc/CCScopedTexture.h:
100166        * platform/graphics/chromium/cc/CCTexture.h:
100167        (WebCore::CCTexture::CCTexture):
100168        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
100169        (WebCore):
100170        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
100171
1001722012-07-12  Ryosuke Niwa  <rniwa@webkit.org>
100173
100174        Let Xcode have its own way.
100175
100176        * WebCore.xcodeproj/project.pbxproj:
100177
1001782012-07-12  Julien Chaffraix  <jchaffraix@webkit.org>
100179
100180        ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content
100181        https://bugs.webkit.org/show_bug.cgi?id=91003
100182
100183        Reviewed by Abhishek Arya.
100184
100185        Tests: fast/flexbox/assert-generated-deprecated-flexbox.html
100186               fast/flexbox/assert-generated-new-flexbox.html
100187
100188        The issue was that findBeforeAfterParent didn't return the right parent for the flex-box case. This would
100189        make us update the wrong children (and not propagate the style updates properly).
100190
100191        * rendering/RenderObjectChildList.cpp:
100192        (WebCore::findBeforeAfterParent):
100193        Added a check for flex boxes (both deprecated and new).
100194
1001952012-07-12  Pravin D  <pravind.2k4@gmail.com>
100196
100197        Percentage width replaced element in zero percent/fixed width container block incorrectly rendered.
100198        https://bugs.webkit.org/show_bug.cgi?id=9493
100199
100200        Reviewed by Andy Estes.
100201
100202        When the width of the container is zero percent/fixed value then the width of the replaced element must also be zero.
100203
100204        Test: fast/css/percent-width-img-inside-zero-percent-and-fixed-container.html
100205
100206        * rendering/RenderBox.cpp:
100207        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
100208          When the containing block's available width is zero there can be two cases.
100209          The containing block is floated/positioned in which case the width of the replaced child element must be its instrinsic width.
100210          On the other hand if the width of the container is specified to be either zero percent or fixed value then the width of the
100211          replaced elment must be zero.
100212
1002132012-07-11  Ryosuke Niwa  <rniwa@webkit.org>
100214
100215        invalidateNodeListsCacheAfterAttributeChanged should dynamically figure out which attribute needs invalidation
100216        https://bugs.webkit.org/show_bug.cgi?id=91046
100217
100218        Reviewed by Anders Carlsson.
100219
100220        Added an array of counters (m_nodeListCounts) for each set of attributes (NodeListInvalidationType) node lists care about
100221        to Document, and made DynamicSubtreeNodeList's constructor and destructor increment and decrement these counters via
100222        registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList respectively. shouldInvalidateDynamicSubtreeNodeList,
100223        which is called by invalidateNodeListsCacheAfterAttributeChanged, then use these counters to determine whether a given
100224        attribute change should result in node list invalidations.
100225
100226        Also removed m_numNodeListCaches from TreeScope because this counter has now become redundant with m_nodeListCounts.
100227
100228        * dom/ChildNodeList.cpp:
100229        (WebCore::ChildNodeList::ChildNodeList): Do not invalidate on attribute changes.
100230        * dom/ClassNodeList.cpp:
100231        (WebCore::ClassNodeList::ClassNodeList): Invalidate on class attribute changes.
100232        * dom/Document.cpp:
100233        (WebCore::Document::Document): Initialize m_nodeListCounts.
100234        (WebCore::Document::~Document): Add assertions to make sure m_listsInvalidatedAtDocument, m_nodeListCounts, and
100235        m_collections are all empty.
100236        (WebCore::Document::registerDynamicSubtreeNodeList): This function is now called for all DynamicSubtreeNodeLists supposed
100237        to just ones rooted at the document in order to increment the counter for each invalidation type.
100238        (WebCore::Document::unregisterDynamicSubtreeNodeList): Ditto.
100239        (WebCore::shouldInvalidateDynamicSubtreeNodeListForType): Checks the attribute name against NodeListInvalidationType.
100240        (WebCore::Document::shouldInvalidateDynamicSubtreeNodeList): Returns true if the given attribute name matches the invalidation
100241        type of the existing DynamicSubtreeNodeLists in the document. If the attribute name is not given (used when children change),
100242        then it checks for the existence of any DynamicSubtreeNodeLists. Conceptually, this function can be written as a list of
100243        "if" statements that checks values in m_nodeListCounts and the attribute name. We use "for" loop and switch statement instead
100244        to share logic and detect future addition of values to NodeListInvalidationType.
100245        * dom/Document.h:
100246        (Document): Moved RootType and InvalidationType from DynamicNodeListCacheBase and renamed them to NodeListRootType and
100247        NodeListInvalidationType respectively in order to reduce the possibility of future name collisions. Also the invalidation type
100248        now contains 6 values instead of 2.
100249        * dom/DynamicNodeList.cpp:
100250        (WebCore):
100251        * dom/DynamicNodeList.h:
100252        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): 
100253        (WebCore::DynamicNodeListCacheBase::shouldInvalidateOnAttributeChange):
100254        (WebCore::DynamicNodeListCacheBase::rootType): Added.
100255        (WebCore::DynamicNodeListCacheBase::invalidationType): Added.
100256        (DynamicNodeListCacheBase): Uses 3 bits to store invalidation type now that the number of values have increased from 2 to 6.
100257        (WebCore::DynamicNodeList::DynamicNodeList):
100258        (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Call unregisterDynamicSubtreeNodeList.
100259        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Call registerDynamicSubtreeNodeList.
100260        * dom/MicroDataItemList.cpp:
100261        (WebCore::MicroDataItemList::MicroDataItemList): Invalidate on itemscope, itemprop, and itemtype content attribute changes.
100262        * dom/NameNodeList.cpp:
100263        (WebCore::NameNodeList::NameNodeList): Invalidate on name attribute changes.
100264        * dom/Node.cpp:
100265        (WebCore::Node::clearRareData):
100266        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Replaced the hard coded check list of attributes, by a call
100267        to shouldInvalidateDynamicSubtreeNodeList.
100268        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Calls shouldInvalidateDynamicSubtreeNodeList.
100269        (WebCore::Node::getElementsByTagName):
100270        (WebCore::Node::getElementsByTagNameNS):
100271        (WebCore::Node::getElementsByName):
100272        (WebCore::Node::getElementsByClassName):
100273        (WebCore::Node::radioNodeList):
100274        (WebCore::NodeRareData::createNodeLists):
100275        * dom/NodeRareData.h:
100276        (WebCore::NodeListsNodeData::adoptTreeScope): Unregister and register node lists in m_tagNodeListCacheNS since all node lists
100277        need to be accounted in m_nodeListCounts.
100278        (WebCore::NodeRareData::ensureNodeLists):
100279        (NodeRareData):
100280        * dom/TagNodeList.cpp:
100281        (WebCore::TagNodeList::TagNodeList): Do not invalidate on any attribute changes.
100282        * dom/TreeScope.cpp:
100283        (WebCore::TreeScope::TreeScope): No longer initializes m_numNodeListCaches since it has been removed.
100284        * dom/TreeScope.h:
100285        (TreeScope): Removed m_numNodeListCaches.
100286        * dom/TreeScopeAdopter.cpp:
100287        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
100288        * html/HTMLCollection.h:
100289        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase): Just pass in DoNotInvalidateOnAttributeChanges for now since
100290        it's never used in HTMLCollections.
100291        * html/LabelableElement.cpp:
100292        (WebCore::LabelableElement::labels):
100293        * html/LabelsNodeList.cpp:
100294        (WebCore::LabelsNodeList::LabelsNodeList): Invalidate on for content attribute changes.
100295        (WebCore::LabelsNodeList::~LabelsNodeList):
100296        * html/RadioNodeList.cpp:
100297        (WebCore::RadioNodeList::RadioNodeList): Invalidate on id, name, and for content attribute changes.
100298        (WebCore::RadioNodeList::~RadioNodeList):
100299
1003002012-07-12  Gavin Barraclough  <barraclough@apple.com>
100301
100302        Threadsafety issues in WebScriptObject
100303        https://bugs.webkit.org/show_bug.cgi?id=90849
100304
100305        Reviewed by Filip Pizlo & Oliver Hunt.
100306
100307        Updated fix for this bug. Taking the JSC API lock from WebScriptObject::release
100308        may not be safe; better to just guard the JSWrapperCache with its own spinlock.
100309
100310        * bindings/objc/WebScriptObject.mm:
100311        (WebCore::getJSWrapper):
100312            - Added spinlock; also retain/autorelease the returned wrapper - it is unsafe
100313              to wait for the caller to do so, due to a race condition vs release removing
100314              the wrapper from the map.
100315        (WebCore::addJSWrapper):
100316            - Take the spinlock guarding the cache.
100317        (WebCore::removeJSWrapper):
100318            - Take the spinlock guarding the cache.
100319        (WebCore::removeJSWrapperIfRetainCountOne):
100320            - Take the spinlock guarding the cache, remove the wrapper if retainCount is one.
100321        (WebCore::createJSWrapper):
100322            - Remove the API lock; this method no longer needs to retain/autorelease (this is
100323              done by getJSWrapper).
100324        (-[WebScriptObject _setImp:originRootObject:rootObject:]):
100325            - Remove the API lock.
100326        (-[WebScriptObject release]):
100327            - Remove the API lock, retainCount check moved into removeJSWrapperIfRetainCountOne.
100328
1003292012-07-11  David Hyatt  <hyatt@apple.com>
100330
100331        https://bugs.webkit.org/show_bug.cgi?id=91000
100332        REGRESSION (r122244): Overflow elements don't shrink as much as they should.
100333
100334        Reviewed by Simon Fraser.
100335
100336        This is a fix for a a regression from https://bugs.webkit.org/show_bug.cgi?id=90646.
100337
100338        I incorrectly analyzed the issue with Robert Hogan's negative margin patch and fooled myself into putting back
100339        in an incorrect minimum width check from long ago.
100340        
100341        What should have happened in the test case I patched is that the overflow element should shrink to 0. The issue 
100342        with improving the logical top estimate in the previous patch is it made the clear delta become 0. This in turn
100343        exposed a bug in our clearing algorithm with Robert's changes where you could need a relayout even if you didn't
100344        actually move. This issue only occurs because the floats list is getting changed mid-layout because of negative margins.
100345
100346        The patch changes getClearDelta to call setChildNeedsLayout(true) on children whose widths change even when their
100347        positions do not. In effect this dynamic addition of new floats after you have done a layout on the child already means
100348        that you can need to lay out again despite not actually having to move.
100349        
100350        To handle this, the code that does the relayout is now called if the child needs a relayout. This is done even if
100351        the logical top estimate matches the final position.
100352        
100353        No new tests required, since the test in fast/block/float is now correctly covering the issue.
100354
100355        * rendering/RenderBlock.cpp:
100356        (WebCore::RenderBlock::layoutBlockChild):
100357        (WebCore::RenderBlock::getClearDelta):
100358        * rendering/RenderBox.cpp:
100359        (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
100360
1003612012-07-12  James Weatherall  <wez@chromium.org>
100362
100363        storage tests are flaky (crashing) on windows
100364        https://bugs.webkit.org/show_bug.cgi?id=90469
100365
100366        Reviewed by Kentaro Hara.
100367
100368        Add a missing check that the underlying V8 object reference in a V8 NPObject is valid, and zero the NPObject's rootObject member when disposing it, to ensure that it won't be mistakenly touched after that point.
100369
100370        This patch is intended to resolve flakiness in the storage tests including:
100371          storage/indexeddb/mozilla/indexes.html
100372          storage/indexeddb/mozilla/key-requirements-inline-and-passed.html
100373          storage/websql/multiple-databases-garbage-collection.html
100374
100375        * bindings/v8/NPV8Object.cpp:
100376        (WebCore::disposeUnderlyingV8Object):
100377        Zero the NPObject's underlying rootObject.
100378        (_NPN_EvaluateHelper):
100379        Add check that the underlying V8 object reference is valid.
100380
1003812012-07-12  No'am Rosenthal  <noam.rosenthal@nokia.com>
100382
100383        Move TextureMapperAnimation and texmap/LayerTransform to platform/graphics
100384        https://bugs.webkit.org/show_bug.cgi?id=91111
100385
100386        Reviewed by Kenneth Rohde Christiansen.
100387
100388        TextureMapperAnimation and LayerTransform are not specific to TextureMapper, and we want
100389        to use them for other purposes as well. Moving them to platform/graphics would make that
100390        more explicit.
100391
100392        No new tests, moving files around.
100393
100394        * GNUmakefile.list.am:
100395        * Target.pri:
100396        * WebCore.gypi:
100397        * platform/graphics/GraphicsLayerAnimation.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp.
100398        * platform/graphics/GraphicsLayerAnimation.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.h.
100399        * platform/graphics/GraphicsLayerTransform.cpp: Renamed from Source/WebCore/platform/graphics/texmap/LayerTransform.cpp.
100400        * platform/graphics/GraphicsLayerTransform.h: Renamed from Source/WebCore/platform/graphics/texmap/LayerTransform.h.
100401        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
100402        (WebCore::GraphicsLayerTextureMapper::addAnimation):
100403        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
100404        (GraphicsLayerTextureMapper):
100405        * platform/graphics/texmap/TextureMapperLayer.h:
100406        (TextureMapperLayer):
100407        (WebCore::TextureMapperLayer::setAnimatedTransform):
100408        (WebCore::TextureMapperLayer::setAnimatedOpacity):
100409
1004102012-07-12  Vsevolod Vlasov  <vsevik@chromium.org>
100411
100412        Web Inspector: Simplify UISourceCode code after moving revisions support inside it.
100413        https://bugs.webkit.org/show_bug.cgi?id=91118
100414
100415        Reviewed by Pavel Feldman.
100416
100417        * inspector/front-end/UISourceCode.js:
100418        (WebInspector.UISourceCode.prototype._setContent):
100419        (WebInspector.UISourceCode.prototype.revertToOriginal):
100420        (WebInspector.UISourceCode.prototype.revertAndClearHistory):
100421        (WebInspector.UISourceCode.prototype.contentChanged):
100422        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
100423        (WebInspector.Revision.prototype.revertToThis):
100424
1004252012-07-12  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
100426
100427        Unreviewed. Build fix for r122462.
100428
100429        * platform/qt/MemoryUsageSupportQt.cpp:
100430
1004312012-07-12  Vsevolod Vlasov  <vsevik@chromium.org>
100432
100433        Web Inspector: Remove resources panel edited resources search support.
100434        https://bugs.webkit.org/show_bug.cgi?id=91101
100435
100436        Reviewed by Pavel Feldman.
100437
100438        * inspector/front-end/ResourcesPanel.js:
100439        (WebInspector.ResourcesPanel.prototype.performSearch.callback):
100440        (WebInspector.ResourcesPanel.prototype.performSearch):
100441
1004422012-07-12  Vsevolod Vlasov  <vsevik@chromium.org>
100443
100444        Unreviewed r122460 inspector closure compilation fix follow up.
100445
100446        * inspector/front-end/RevisionHistoryView.js:
100447        (WebInspector.RevisionHistoryView):
100448
1004492012-07-12  Ilya Tikhonovsky  <loislo@chromium.org>
100450
100451        Web Inspector: fix native memory instrumentation code for the bindings instrumentation.
100452        https://bugs.webkit.org/show_bug.cgi?id=91096
100453
100454        The instrumented class has to have instrumentation method which reports class size and type and
100455        the member objects and pointers.
100456
100457        Sample:
100458        void Node::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
100459        {
100460            memoryObjectInfo->reportObjectInfo(this, MemoryInstrumentation::DOM); // report object size and type.
100461            TreeShared<Node, ContainerNode>::reportMemoryUsage(memoryObjectInfo); // call base class instrumentation.
100462            ScriptWrappable::reportMemoryUsage(memoryObjectInfo); // call base class instrumentation.
100463            memoryObjectInfo->reportPointer(m_document, MemoryInstrumentation::DOM); // report uninstrumented pointer.
100464            memoryObjectInfo->reportInstrumentedPointer(m_next); // report instrumented pointer.
100465            memoryObjectInfo->reportInstrumentedObject(m_anObject); // report instrumented object.
100466        }
100467
100468        Reviewed by Pavel Feldman.
100469
100470        Existing tests for native memory instrumentation.
100471
100472        * bindings/v8/DOMDataStore.cpp:
100473        (WebCore::DOMDataStore::reportMemoryUsage):
100474        * bindings/v8/DOMDataStore.h:
100475        (WebCore):
100476        (DOMDataStore):
100477        * bindings/v8/IntrusiveDOMWrapperMap.h:
100478        (WebCore::ChunkedTable::reportMemoryUsage):
100479        * bindings/v8/ScriptProfiler.cpp:
100480        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
100481        * bindings/v8/V8Binding.cpp:
100482        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
100483        (WebCore::StringCache::reportMemoryUsage):
100484        * bindings/v8/V8Binding.h:
100485        (WebCore):
100486        (StringCache):
100487        (V8BindingPerIsolateData):
100488        * bindings/v8/V8DOMMap.h:
100489        (WebCore):
100490        (AbstractWeakReferenceMap):
100491        * inspector/InspectorMemoryAgent.cpp:
100492        (WebCore):
100493
1004942012-07-12  Pavel Feldman  <pfeldman@chromium.org>
100495
100496        Web Inspector: beautify find bar looks, simplify search update routines.
100497        https://bugs.webkit.org/show_bug.cgi?id=91087
100498
100499        Reviewed by Vsevolod Vlasov.
100500
100501        This change updates the looks to the one on the screenshots and simplifies match count update routines.
100502
100503        * inspector/front-end/SearchController.js:
100504        (WebInspector.SearchController.onMatchesMouseDown):
100505        (WebInspector.SearchController):
100506        (WebInspector.SearchController.prototype.activePanelChanged.performPanelSearch):
100507        (WebInspector.SearchController.prototype.activePanelChanged):
100508        (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
100509        (WebInspector.SearchController.prototype._updateSearchMatchesCountAndCurrentMatchIndex):
100510        (WebInspector.SearchController.prototype._onKeyDown):
100511        (WebInspector.SearchController.prototype._onInput):
100512        (WebInspector.SearchController.prototype._onNextButtonSearch):
100513        (WebInspector.SearchController.prototype._onPrevButtonSearch):
100514        (WebInspector.SearchController.prototype._performSearch):
100515        * inspector/front-end/inspector.css:
100516        (#search):
100517        (#search:focus):
100518        (.toolbar-search-navigation-controls):
100519        (.toolbar-search-navigation):
100520        (.toolbar-search-navigation.enabled:hover):
100521        (.toolbar-search-navigation.enabled, .toolbar-search-navigation.enabled:active):
100522        (.toolbar-search):
100523        (.toolbar-search-control):
100524        (.search-results-matches):
100525        (.inspector-footer):
100526
1005272012-07-12  Joshua Bell  <jsbell@chromium.org>
100528
100529        IndexedDB: ASSERT hit calling open from callback in Worker
100530        https://bugs.webkit.org/show_bug.cgi?id=90832
100531
100532        Reviewed by Kentaro Hara.
100533
100534        GroupSettings are used to provide the backing store path in some
100535        ports. Accessing those settings from a Worker was added, but the
100536        access referenced thread startup data that is cleared before the
100537        run loop, so an IDBFactory.open() call executed asynchronously
100538        would dereference a null pointer. Plumb the settings startup
100539        data into the context itself, like all of the other properties.
100540
100541        Test: storage/indexeddb/open-twice-workers.html
100542
100543        * Modules/indexeddb/IDBFactory.cpp:
100544        (WebCore::IDBFactory::open):
100545        * workers/DedicatedWorkerContext.cpp:
100546        (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
100547        * workers/DedicatedWorkerContext.h:
100548        (WebCore::DedicatedWorkerContext::create):
100549        (DedicatedWorkerContext):
100550        * workers/DedicatedWorkerThread.cpp:
100551        (WebCore::DedicatedWorkerThread::createWorkerContext):
100552        * workers/DedicatedWorkerThread.h:
100553        (DedicatedWorkerThread):
100554        * workers/SharedWorkerContext.cpp:
100555        (WebCore::SharedWorkerContext::SharedWorkerContext):
100556        * workers/SharedWorkerContext.h:
100557        (WebCore::SharedWorkerContext::create):
100558        (SharedWorkerContext):
100559        * workers/SharedWorkerThread.cpp:
100560        (WebCore::SharedWorkerThread::createWorkerContext):
100561        * workers/SharedWorkerThread.h:
100562        (SharedWorkerThread):
100563        * workers/WorkerContext.cpp:
100564        (WebCore::WorkerContext::WorkerContext):
100565        * workers/WorkerContext.h:
100566        (WebCore::WorkerContext::groupSettings):
100567        (WorkerContext):
100568        * workers/WorkerThread.cpp:
100569        (WebCore::WorkerThread::workerThread):
100570        * workers/WorkerThread.h:
100571        (WorkerThread):
100572
1005732012-07-12  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
100574
100575        [Qt] Implement MemoryUsageSupport
100576        https://bugs.webkit.org/show_bug.cgi?id=91094
100577
100578        Reviewed by Adam Barth.
100579
100580        Implements Qt versions of the memory-usage functions using the information we have available
100581        from the various memory systems used in WebKit.
100582
100583        Also gets rid of a redundant indirection in V8GCController.
100584
100585        * Target.pri:
100586        * bindings/v8/V8GCController.cpp:
100587        (WebCore::V8GCController::gcEpilogue):
100588        (WebCore::V8GCController::checkMemoryUsage):
100589        * platform/qt/MemoryUsageSupportQt.cpp: Added.
100590        (WebCore::mallocMemoryUsage):
100591        (WebCore::memoryUsageKB):
100592        (WebCore::actualMemoryUsageKB):
100593        (WebCore::MemoryUsageSupport::memoryUsageMB):
100594        (WebCore::MemoryUsageSupport::actualMemoryUsageMB):
100595        (WebCore::MemoryUsageSupport::lowMemoryUsageMB):
100596        (WebCore::MemoryUsageSupport::highMemoryUsageMB):
100597        (WebCore::MemoryUsageSupport::highUsageDeltaMB):
100598        (WebCore::MemoryUsageSupport::processMemorySizesInBytes):
100599        * platform/qt/PlatformSupport.h:
100600        (PlatformSupport):
100601
1006022012-07-12  Vsevolod Vlasov  <vsevik@chromium.org>
100603
100604        Web Inspector: Revision history view should be updated when uiSourceCodes are removed or replaced.
100605        https://bugs.webkit.org/show_bug.cgi?id=91095
100606
100607        Reviewed by Pavel Feldman.
100608
100609        RevisionHistoryView is now reset in WorkspaceReset event handler.
100610        UISourceCodes are now removed from RevisionHistoryView when uiSourceCode is removed or replace.
100611
100612        * inspector/front-end/RevisionHistoryView.js:
100613        (WebInspector.RevisionHistoryView):
100614        (WebInspector.RevisionHistoryView.prototype._clearHistory):
100615        (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
100616        (WebInspector.RevisionHistoryView.prototype._uiSourceCodeReplaced):
100617        * inspector/front-end/ScriptsPanel.js:
100618        (WebInspector.ScriptsPanel.prototype._reset):
100619
1006202012-07-12  Dongwoo Im  <dw.im@samsung.com>
100621
100622        InspectorFileSystemAgent.cpp have to include File.h explicitly
100623        https://bugs.webkit.org/show_bug.cgi?id=91078
100624
100625        Reviewed by Vsevolod Vlasov.
100626
100627        Make sure the InspectorFileSystemAgent.cpp include the File.h by including explicitly.
100628
100629        No new tests. Covered by existing tests.
100630
100631        * inspector/InspectorFileSystemAgent.cpp: Include File.h
100632
1006332012-07-12  Vsevolod Vlasov  <vsevik@chromium.org>
100634
100635        Web Inspector: [Regression] Stale revisions should be removed on navigation.
100636        https://bugs.webkit.org/show_bug.cgi?id=91080
100637
100638        Reviewed by Pavel Feldman.
100639
100640        Moved all the code responsible for script mapping resetting to Workspace.
100641        Stale revisions are removed in Workspace._reset now.
100642
100643        * inspector/front-end/ScriptSnippetModel.js:
100644        (WebInspector.ScriptSnippetModel):
100645        * inspector/front-end/StylesPanel.js:
100646        (WebInspector.StylesUISourceCodeProvider):
100647        (WebInspector.StylesUISourceCodeProvider.prototype._populate):
100648        (WebInspector.StylesUISourceCodeProvider.prototype.reset):
100649        * inspector/front-end/UISourceCode.js:
100650        (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
100651        * inspector/front-end/Workspace.js:
100652        (WebInspector.Workspace):
100653        (WebInspector.Workspace.prototype._reset):
100654
1006552012-07-12  Andreas Kling  <kling@webkit.org>
100656
100657        Make ElementAttributeData a variable-sized object to reduce memory use.
100658        <http://webkit.org/b/88240>
100659
100660        Reviewed by Antti "Obi-Wan" Koivisto.
100661
100662        Take advantage of the fact that we know at ElementAttributeData construction time how many attributes
100663        it needs to accomodate and allocate exactly as much space as needed instead of using a Vector.
100664        For elements that never have their attribute list mutated (the vast majority), this saves a lot of
100665        memory and removes the indirection to Vector<Attribute>'s heap-allocated storage.
100666
100667        Introduced a mutability flag to ElementAttributeData and sprinkled assertions all over to make sure
100668        that nothing tries to mutate an element with a raw attribute array.
100669
100670        When an Element's attribute(s) are mutated, we reconstruct the ElementAttributeData, this time using
100671        a Vector as backing instead. This is triggered when calling Element::mutableAttributeData().
100672
100673        This reduces memory consumption by 3.2MB when viewing the full HTML5 spec at <http://whatwg.org/c/>.
100674        That is a ~35% reduction in DOM attribute memory use.
100675
100676        Furthermore, that page ends up promoting 27% of the elements to mutable attribute storage due to dynamic
100677        adding of "class" attributes. For more static pages, savings are even greater.
100678
100679        Also did away with ElementAttributeData::removeAttribute(name) and do separate index lookup where
100680        needed. Not a big deal but avoids double lookup of attributes when removing them.
100681
100682        * css/PropertySetCSSStyleDeclaration.cpp:
100683        (WebCore::InlineCSSStyleDeclaration::ensureMutablePropertySet):
100684
100685            Call ensureInlineStyle() on the element so we know we have a StylePropertySet to work with.
100686            May cause the creation (and replacement) of a new underlying StylePropertySet on the Element's
100687            attribute data.
100688
100689        * css/StylePropertySet.cpp:
100690        (WebCore::StylePropertySet::adoptCSSOMWrapperFrom):
100691
100692            Added. Allows switching the underlying StylePropertySet object while retaining CSSOM wrapper
100693            identity (web facing behavior.)
100694
100695        * dom/Element.cpp:
100696        (WebCore::Element::detachAttribute):
100697        (WebCore::Element::removeAttribute):
100698        (WebCore::Element::attributes):
100699        (WebCore::Element::setAttributeInternal):
100700        (WebCore::Element::parserSetAttributes):
100701        (WebCore::Element::hasEquivalentAttributes):
100702        (WebCore::Element::setAttributeNode):
100703        (WebCore::Element::removeAttributeNode):
100704        (WebCore::Element::getAttributeNode):
100705        (WebCore::Element::getAttributeNodeNS):
100706        (WebCore::Element::hasAttribute):
100707        (WebCore::Element::hasAttributeNS):
100708        (WebCore::Element::normalizeAttributes):
100709        (WebCore::Element::cloneAttributesFromElement):
100710        (WebCore::Element::createMutableAttributeData):
100711        * dom/Element.h:
100712        (WebCore::Element::attributeData):
100713        (Element):
100714        (WebCore::Element::updatedAttributeData):
100715        (WebCore::Element::ensureAttributeData):
100716        (WebCore::Element::ensureUpdatedAttributeData):
100717        (WebCore::Element::mutableAttributeData):
100718        (WebCore):
100719        * dom/ElementAttributeData.cpp:
100720        (WebCore::ElementAttributeData::createImmutable):
100721        (WebCore):
100722        (WebCore::ElementAttributeData::ElementAttributeData):
100723        (WebCore::ElementAttributeData::~ElementAttributeData):
100724        (WebCore::ElementAttributeData::attrIfExists):
100725        (WebCore::ElementAttributeData::ensureAttr):
100726        (WebCore::ElementAttributeData::setAttr):
100727        (WebCore::ElementAttributeData::removeAttr):
100728        (WebCore::ElementAttributeData::ensureInlineStyle):
100729        (WebCore::ElementAttributeData::ensureMutableInlineStyle):
100730        (WebCore::ElementAttributeData::destroyInlineStyle):
100731        (WebCore::ElementAttributeData::addAttribute):
100732        (WebCore::ElementAttributeData::removeAttribute):
100733        (WebCore::ElementAttributeData::isEquivalent):
100734        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
100735        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
100736        (WebCore::ElementAttributeData::cloneDataFrom):
100737        (WebCore::ElementAttributeData::clearAttributes):
100738        (WebCore::ElementAttributeData::replaceAttribute):
100739        (WebCore::ElementAttributeData::getAttributeNode):
100740        * dom/ElementAttributeData.h:
100741        (WebCore::ElementAttributeData::create):
100742        (ElementAttributeData):
100743        (WebCore::ElementAttributeData::setClass):
100744        (WebCore::ElementAttributeData::setIdForStyleResolution):
100745        (WebCore::ElementAttributeData::inlineStyle):
100746        (WebCore::ElementAttributeData::setAttributeStyle):
100747        (WebCore::ElementAttributeData::reportMemoryUsage):
100748        (WebCore::ElementAttributeData::isMutable):
100749        (WebCore::ElementAttributeData::makeMutable):
100750        (WebCore::ElementAttributeData::length):
100751        (WebCore):
100752        (WebCore::ElementAttributeData::isEmpty):
100753        (WebCore::ElementAttributeData::array):
100754        (WebCore::ElementAttributeData::removeAttribute):
100755        (WebCore::ElementAttributeData::getAttributeItem):
100756        (WebCore::ElementAttributeData::getAttributeItemIndex):
100757        (WebCore::ElementAttributeData::attributeItem):
100758        * dom/StyledElement.cpp:
100759        (WebCore::StyledElement::style):
100760        (WebCore::StyledElement::classAttributeChanged):
100761        (WebCore::StyledElement::setInlineStyleProperty):
100762        (WebCore::StyledElement::removeInlineStyleProperty):
100763        (WebCore::StyledElement::addSubresourceAttributeURLs):
100764        * dom/StyledElement.h:
100765        (WebCore::StyledElement::ensureInlineStyle):
100766        * html/parser/HTMLConstructionSite.cpp:
100767        (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
100768        * xml/parser/XMLDocumentParserQt.cpp:
100769        (WebCore::XMLDocumentParser::XMLDocumentParser):
100770
1007712012-07-12  Florin Malita  <fmalita@chromium.org>
100772
100773        Incorrect handling of chained pending resources in SVGUseElement
100774        https://bugs.webkit.org/show_bug.cgi?id=89686
100775
100776        Reviewed by Nikolas Zimmermann.
100777
100778        Currently SVGUseElement builds the shadow tree when the target first
100779        becomes available. This is normally OK, but if the target itself (or
100780        one of its children) is a <use> element with pending resources, then
100781        the shadow expansion only captures the current state of the tree and
100782        never gets updated when the pending resource becomes available.
100783
100784        In order to support arbitrary <use>-on-<use> constructs, this patch
100785        tracks nested <use> dependencies and rebuilds the dependent trees
100786        whenever the target gets updated.
100787
100788
100789        Tests: svg/custom/use-nested-expected.svg
100790               svg/custom/use-nested.svg
100791
100792        * svg/SVGElement.cpp:
100793        (WebCore::SVGElement::removedFrom): removedFrom needs to be called up the inheritance chain
100794        before invoking removeAllElementReferencesForTarget. Otherwise we could end up finding the
100795        element being removed as a valid target in SVGUseElement::buildInstanceTree because its
100796        InDocument flag is not cleared yet.
100797        * svg/SVGUseElement.cpp:
100798        (WebCore::SVGUseElement::~SVGUseElement):
100799        (WebCore::SVGUseElement::clearResourceReferences):
100800        (WebCore::SVGUseElement::buildPendingResource):
100801        (WebCore::SVGUseElement::buildShadowAndInstanceTree):
100802        (WebCore::SVGUseElement::buildInstanceTree):
100803        * svg/SVGUseElement.h:
100804        (SVGUseElement):
100805        Track <use> -> <use> dependencies using SVGDocumentExtensions'
100806        m_elementDependencies framework and ensure dependent trees are rebuilt
100807        when the target itself gets rebuilt.
100808
1008092012-07-12  MORITA Hajime  <morrita@google.com>
100810
100811        Typo: ParentTranversalDetails should be ParentTraversalDetails
100812        https://bugs.webkit.org/show_bug.cgi?id=91059
100813
100814        Reviewed by Andreas Kling.
100815
100816        Did a bare rename from ParentTranversalDetails to ParentTraversalDetails
100817
100818        No new tests, just a rename.
100819
100820        * dom/ComposedShadowTreeWalker.cpp:
100821        (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didTraverseInsertionPoint):
100822        (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didTraverseShadowRoot):
100823        (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didFindNode):
100824        (WebCore::ComposedShadowTreeWalker::findParent):
100825        (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
100826        (WebCore::ComposedShadowTreeWalker::traverseParent):
100827        (WebCore::ComposedShadowTreeWalker::traverseParentInCurrentTree):
100828        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
100829        * dom/ComposedShadowTreeWalker.h:
100830        (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::ParentTraversalDetails):
100831        (ComposedShadowTreeWalker):
100832        * dom/NodeRenderingContext.h:
100833        (NodeRenderingContext):
100834
1008352012-07-11  Antti Koivisto  <antti@apple.com>
100836
100837        Failure to dispatch didFinishLoadForFrame if font load fails synchronously 
100838        https://bugs.webkit.org/show_bug.cgi?id=91018
100839
100840        Reviewed by Enrica Casucci.
100841
100842        New font loads may be triggered by layout after the document load is complete but before we have dispatched
100843        didFinishLoading for the frame. If the load fails synchronously we might fail to ever invoke 
100844        FrameLoader::checkLoadComplete and so fail to dispatch didFinishLoading.
100845        
100846        Make sure this doesn't happen by calling FrameLoader::checkLoadComplete explicitly after triggering font loads.
100847
100848        * css/CSSFontSelector.cpp:
100849        (WebCore::CSSFontSelector::beginLoadTimerFired):
100850
1008512012-07-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
100852
100853        Register protocol handler files should be in Modules/protocolhandler
100854        https://bugs.webkit.org/show_bug.cgi?id=90766
100855
100856        Reviewed by Hajime Morita.
100857
100858        The register protocol handler files are now self-contained. This patch is moved to the Modules.
100859
100860        No new tests. Covered by existing tests.
100861
100862        * CMakeLists.txt:
100863        * GNUmakefile.am:
100864        * GNUmakefile.list.am:
100865        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.cpp: Renamed from Source/WebCore/page/NavigatorRegisterProtocolHandler.cpp.
100866        (WebCore):
100867        (WebCore::initProtocolHandlerWhitelist):
100868        (WebCore::verifyCustomHandlerURL):
100869        (WebCore::isProtocolWhitelisted):
100870        (WebCore::verifyProtocolHandlerScheme):
100871        (WebCore::NavigatorRegisterProtocolHandler::NavigatorRegisterProtocolHandler):
100872        (WebCore::NavigatorRegisterProtocolHandler::~NavigatorRegisterProtocolHandler):
100873        (WebCore::NavigatorRegisterProtocolHandler::registerProtocolHandler):
100874        (WebCore::customHandlersStateString):
100875        (WebCore::NavigatorRegisterProtocolHandler::isProtocolHandlerRegistered):
100876        (WebCore::NavigatorRegisterProtocolHandler::unregisterProtocolHandler):
100877        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.h: Renamed from Source/WebCore/page/NavigatorRegisterProtocolHandler.h.
100878        (WebCore):
100879        (NavigatorRegisterProtocolHandler):
100880        * Modules/protocolhandler/NavigatorRegisterProtocolHandler.idl: Renamed from Source/WebCore/page/NavigatorRegisterProtocolHandler.idl.
100881        * Target.pri:
100882        * WebCore.gyp/WebCore.gyp:
100883        * WebCore.gypi:
100884        * WebCore.pri:
100885        * WebCore.vcproj/WebCore.vcproj:
100886        * WebCore.vcproj/WebCoreCommon.vsprops:
100887        * WebCore.vcproj/copyForwardingHeaders.cmd:
100888        * WebCore.xcodeproj/project.pbxproj:
100889
1008902012-07-12  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
100891
100892        [BlackBerry] Cannot use digest proxy auth and NTLM auth at the same time
100893        https://bugs.webkit.org/show_bug.cgi?id=91054
100894
100895        Reviewed by George Staikos.
100896
100897        Added an interface function syncProxyCredential() in class
100898        PageClientBlackBerry, which is responsible to notify WebPageClient
100899        to synchronize proxy credential to the chrome process.
100900
100901        Internally reviewed by Jason Liu <jason.liu@torchmobile.com.cn>
100902
100903        No new tests since there's no functional change.
100904
100905        * platform/blackberry/PageClientBlackBerry.h:
100906        * platform/network/blackberry/NetworkJob.cpp:
100907        (WebCore::NetworkJob::storeCredentials): Remember the accepted proxy
100908        credential and notify webpage client to synchronize it.
100909
1009102012-07-12  Xingnan Wang  <xingnan.wang@intel.com>
100911
100912        [IndexedDB] upperOpen set to true in lowerBound()/lowerOpen set to true in upperBound()
100913        https://bugs.webkit.org/show_bug.cgi?id=90867
100914
100915        Reviewed by Tony Chang.
100916
100917        In the latest W3C spec upperOpen/lowerOpen are set to true in lowerBound()/upperBound(), which
100918        we should keep aligned with.
100919
100920        No new tests - updated storage/indexeddb/keyrange.html to match new behavior.
100921
100922        * Modules/indexeddb/IDBKeyRange.cpp:
100923        (WebCore::IDBKeyRange::lowerBound):
100924        (WebCore::IDBKeyRange::upperBound):
100925
1009262012-07-12  MORITA Hajime  <morrita@google.com>
100927
100928        [Shadow DOM] <video> with <shadow> crashes
100929        https://bugs.webkit.org/show_bug.cgi?id=91055
100930
100931        Reviewed by Kent Tamura.
100932
100933        This is similar to Bug 90480, where an undesired renderer is created by
100934        locating an insertion point on the shadow boundary.
100935
100936        This change adds a guard for such case by cheking whether the
100937        source node of each to-be-created renderer comes from the UA shadow
100938        tree, which is allowed to have a renderer.
100939
100940        Test: fast/dom/shadow/insertion-point-video-crash.html
100941
100942        * html/HTMLMediaElement.cpp:
100943        (WebCore::HTMLMediaElement::childShouldCreateRenderer): Added a check.
100944        (WebCore::HTMLMediaElement::mediaControls): Added const.
100945        (WebCore::HTMLMediaElement::hasMediaControls): Added const.
100946        * html/HTMLMediaElement.h:
100947        (HTMLMediaElement):
100948
1009492012-07-12  Yoshifumi Inoue  <yosin@chromium.org>
100950
100951        REGRESSION(r122184): LocaleMac::currentLocale should use current locale rather than newly create locale object. 
100952        https://bugs.webkit.org/show_bug.cgi?id=91057
100953
100954        Reviewed by Kent Tamura.
100955
100956        This patch changes NSLocale object of LocaleMac::m_locale variable to
100957        current NSLocale object rather than newly created NSLocale object from
100958        locale identifier.
100959
100960        No new tests. We don't have way to change system preferences from
100961        test scripts and restoring them. To test this patch, we need to do so.
100962
100963        * platform/text/mac/LocaleMac.h:
100964        (LocaleMac): Added a constructor which takes NSLocale object.
100965        * platform/text/mac/LocaleMac.mm:
100966        (WebCore::LocaleMac::LocaleMac): Added a constructor which takes NSLocale object.
100967        (WebCore::LocaleMac::currentLocale): Changed to construct LocaleMac object from NSLocale object rather than locale identifier.
100968
1009692012-07-11  Carlos Garcia Campos  <cgarcia@igalia.com>
100970
100971        [GTK] Add webkit_cookie_manager_set_persistent_storage() to WebKit2 GTK+ API
100972        https://bugs.webkit.org/show_bug.cgi?id=83016
100973
100974        Reviewed by Martin Robinson.
100975
100976        * platform/network/soup/CookieStorageSoup.cpp:
100977        (WebCore::soupCookiesChanged): Do not notify about changes in
100978        other cookie jars than the current one.
100979
1009802012-07-12  Philip Rogers  <pdr@google.com>
100981
100982        Refactor RenderSVGShape bounding box code
100983        https://bugs.webkit.org/show_bug.cgi?id=90655
100984
100985        Reviewed by Nikolas Zimmermann.
100986
100987        RenderSVGShape::objectBoundingBox worked differently than RenderSVGShape::strokeBoundingBox by
100988        not caching the object bounding box and instead computing it on each call. For consistency and
100989        performance objectBoundingBox has been refactored to return a cached value.
100990
100991        createShape has been renamed updateShapeFromElement for understandability. updateShapeFromElement
100992        now updates the internal state of the shape (bounding boxes, etc) from the associated element.
100993        RenderSVGShape::inflateWithStrokeAndMarkerBounds has been merged into
100994        RenderSVGShape::calculateStrokeBoundingBox which is called from updateShapeFromElement.
100995
100996        After this change all bounding box computation is now handled in updateShapeFromElement. Because
100997        subclasses override updateShapeFromElement it will be easy for them to have custom bounding box
100998        code there (as will happen for RenderSVGPath in a followup patch).
100999
101000        strokeBoundingBox and objectBoundingBox are now able to return their cached values immediately
101001        in RenderSVGRect and RenderSVGEllipse instead of checking their fallback state on each call.
101002
101003        Additionally, to save space RenderSVGEllipse and RenderSVGRect now use the m_fillBoundingBox and
101004        m_strokeBoundingBox of RenderSVGShape instead of having their own.
101005
101006        This patch also removes setStrokeAndMarkerBoundingBox that was previously dead code.
101007
101008        No new tests, just a refactoring.
101009
101010        * rendering/svg/RenderSVGEllipse.cpp:
101011        (WebCore::RenderSVGEllipse::updateShapeFromElement):
101012        (WebCore):
101013        (WebCore::RenderSVGEllipse::fillShape):
101014        (WebCore::RenderSVGEllipse::strokeShape):
101015        (WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
101016        * rendering/svg/RenderSVGEllipse.h:
101017        (RenderSVGEllipse):
101018        (WebCore::RenderSVGEllipse::isEmpty):
101019        * rendering/svg/RenderSVGRect.cpp:
101020        (WebCore::RenderSVGRect::updateShapeFromElement):
101021        (WebCore):
101022        (WebCore::RenderSVGRect::fillShape):
101023        (WebCore::RenderSVGRect::strokeShape):
101024        (WebCore::RenderSVGRect::shapeDependentStrokeContains):
101025        (WebCore::RenderSVGRect::shapeDependentFillContains):
101026        * rendering/svg/RenderSVGRect.h:
101027        (RenderSVGRect):
101028        (WebCore::RenderSVGRect::isEmpty):
101029        * rendering/svg/RenderSVGShape.cpp:
101030        (WebCore::RenderSVGShape::updateShapeFromElement):
101031        (WebCore):
101032        (WebCore::RenderSVGShape::layout):
101033        (WebCore::RenderSVGShape::calculateObjectBoundingBox):
101034        (WebCore::RenderSVGShape::calculateStrokeBoundingBox):
101035        (WebCore::RenderSVGShape::updateRepaintBoundingBox):
101036        * rendering/svg/RenderSVGShape.h:
101037        (RenderSVGShape):
101038        (WebCore::RenderSVGShape::objectBoundingBox):
101039        (WebCore::RenderSVGShape::strokeBoundingBox):
101040
1010412012-07-12  Kent Tamura  <tkent@chromium.org>
101042
101043        Do not save the form state signature if nothing is saved
101044        https://bugs.webkit.org/show_bug.cgi?id=91050
101045
101046        Reviewed by Hajime Morita.
101047
101048        This change will reduce the size of HistoyItem.
101049
101050        Test: fast/forms/state-restore-empty-state.html
101051
101052        * html/FormController.cpp:
101053        (WebCore::FormController::formElementsState):
101054        If stateVector has only the signature string, clear it.
101055
1010562012-07-11  Mark Rowe  <mrowe@apple.com>
101057
101058        <http://webkit.org/b/91051> Fix the Qt Mac build after r122400.
101059
101060        Qt on Mac builds with a deployment target of OS X 10.5. However, it was not been setting
101061        BUILDING_ON_LEOPARD / TARGETING_LEOPARD and thus was falling down code paths in DisplaySleepDisabler.cpp
101062        that were specific to Snow Leopard and newer. After the removal of BUILDING_ON_LEOPARD
101063        and TARGETING_LEOPARD it ended up falling down the correct Leopard-compatible code path,
101064        which revealed that the code made assumptions about which headers had already been included.
101065
101066        * platform/mac/DisplaySleepDisabler.cpp: Include CoreServices/CoreServices.h to pull in
101067        a declaration of UpdateSystemActivity when targeting Leopard.
101068
1010692012-07-11  Matt Falkenhagen  <falken@chromium.org>
101070
101071        Add dialog element feature toggle to InternalSettings
101072        https://bugs.webkit.org/show_bug.cgi?id=90934
101073
101074        Reviewed by Hajime Morita.
101075
101076        This enables layout tests to be written for dialog although the feature is disabled by default.
101077
101078        Tests: fast/dom/HTMLDialogElement/dialog-disabled.html
101079               fast/dom/HTMLDialogElement/dialog-enabled.html
101080
101081        * WebCore.exp.in: Added newly exported symbol.
101082        * testing/InternalSettings.cpp:
101083        (WebCore::InternalSettings::Backup::Backup): Backup dialog feature flag.
101084        (WebCore::InternalSettings::Backup::restoreTo): Restore dialog feature flag.
101085        (WebCore::InternalSettings::setDialogElementEnabled): Added.
101086        (WebCore):
101087        * testing/InternalSettings.h: Added support for dialog.
101088        (Backup):
101089        (InternalSettings):
101090        * testing/InternalSettings.idl: Added support for dialog.
101091
1010922012-07-11  Kent Tamura  <tkent@chromium.org>
101093
101094        Accessing width or height of a detached image input element causes crash
101095        https://bugs.webkit.org/show_bug.cgi?id=90885
101096
101097        Reviewed by Kentaro Hara.
101098
101099        Test: fast/forms/image/width-and-height-of-detached-input.html
101100
101101        * html/ImageInputType.cpp:
101102        (WebCore::ImageInputType::height): Add null check for m_imageLoader.
101103        (WebCore::ImageInputType::width): ditto.
101104
1011052012-07-11  Kent Tamura  <tkent@chromium.org>
101106
101107        Do not save state of stateless form controls
101108        https://bugs.webkit.org/show_bug.cgi?id=90964
101109
101110        Reviewed by Hajime Morita.
101111
101112        By Bug 89409, we started to store unmodified form control
101113        state. However we don't need to make such state for the following
101114        types.
101115        - password
101116        - submit
101117        - reset
101118        - button
101119        - keygen
101120
101121        Test: fast/forms/state-restore-skip-stateless.html
101122
101123        * html/BaseButtonInputType.cpp:
101124        (WebCore::BaseButtonInputType::shouldSaveAndRestoreFormControlState):
101125        Added. Disable saving state for submit, reset, and button types.
101126        * html/BaseButtonInputType.h:
101127        (BaseButtonInputType): Add shouldSaveAndRestoreFormControlState.
101128        * html/HTMLFormControlElementWithState.h:
101129        (HTMLFormControlElementWithState): Make shouldSaveAndRestoreFormControlState virtual.
101130        * html/HTMLInputElement.cpp:
101131        (WebCore::HTMLInputElement::shouldSaveAndRestoreFormControlState):
101132        Added. Checks InputType::shouldSaveAndRestoreFormControlState first.
101133        * html/HTMLInputElement.h:
101134        (HTMLInputElement): Override shouldSaveAndRestoreFormControlState.
101135        * html/HTMLKeygenElement.cpp:
101136        (WebCore::HTMLKeygenElement::shouldSaveAndRestoreFormControlState)
101137        Added. Disable saving state for <keygen>.:
101138        * html/HTMLKeygenElement.h: Override shouldSaveAndRestoreFormControlState.
101139        * html/InputType.cpp:
101140        (WebCore::InputType::shouldSaveAndRestoreFormControlState):
101141        Added. Enable saving state for all types by default.
101142        * html/InputType.h:
101143        (InputType): Add shouldSaveAndRestoreFormControlState.
101144        * html/PasswordInputType.cpp:
101145        (WebCore::PasswordInputType::shouldSaveAndRestoreFormControlState):
101146        Added. Disabled saving state.
101147        (WebCore::PasswordInputType::saveFormControlState):
101148        Because shouldSaveAndRestoreFormControlState() returns false,
101149        saveFormControlState should be never called.
101150        * html/PasswordInputType.h:
101151        (PasswordInputType): Override shouldSaveAndRestoreFormControlState.
101152
1011532012-07-11  No'am Rosenthal  <noam.rosenthal@nokia.com>
101154
101155        Compilation error with GLES2 when using gl2ext.h from ANGLE.
101156        https://bugs.webkit.org/show_bug.cgi?id=91030
101157
101158        Reviewed by Kenneth Russell.
101159
101160        gl2ext.h defines PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG and not
101161        PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC. This is a bug in the original Khronos header,
101162        but we should work around it until fixed headers are integrated.
101163
101164
101165        * platform/graphics/opengl/Extensions3DOpenGLES.h:
101166        (Extensions3DOpenGLES):
101167            Removed the "PROC" suffix to work around the header bug.
101168
1011692012-07-11  Mark Rowe  <mrowe@apple.com>
101170
101171        Attempt to fix the Chromium Mac build after r122400.
101172
101173        * platform/text/cf/HyphenationCF.cpp: Ensure that Chromium only compiles the body of this file if
101174        building for a new enough version of OS X.
101175
1011762012-07-11  Kent Tamura  <tkent@chromium.org>
101177
101178        [Mac] Sort project.pbxproj
101179
101180        * WebCore.xcodeproj/project.pbxproj: Apply Tools/Scripts/sort-Xcode-project-file
101181
1011822012-07-11  Dan Bernstein  <mitz@apple.com>
101183
101184        When a table row height grows because of pagination, not all cells’ heights are adjusted
101185        https://bugs.webkit.org/show_bug.cgi?id=91043
101186
101187        Reviewed by Sam Weinig.
101188
101189        The fix for in bug <http://webkit.org/b/83595> in <http://trac.webkit.org/r113738> made table
101190        rows grow as necessary to fit cells that grow as a result of pagination. But it had two bad
101191        side effects: earlier cells on the row would not grow by the same amount, and later cells on
101192        the row would factor the existing growth into their intrinsic padding.
101193
101194        Test: fast/multicol/table-row-height-increase.html
101195
101196        * rendering/RenderTableSection.cpp:
101197        (WebCore::RenderTableSection::layoutRows): Now when a cell becomes taller than the row height,
101198        the additional height needed is recorded, and the cell is shrunk back to row height. Then
101199        after finishing the row, all cells occurring on the row (including cells spanning it but not
101200        starting on it) are grown by the same amount.
101201
1012022012-07-11  Mark Rowe  <mrowe@apple.com>
101203
101204        <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions.
101205
101206        Reviewed by Dan Bernstein.
101207
101208        The deployment target is already set to the version that we're targeting, and it's that setting
101209        which determines which functionality from the SDK is available to us.
101210
101211        * Configurations/Base.xcconfig:
101212
1012132012-07-11  Mark Rowe  <mrowe@apple.com>
101214
101215        Switch a few cases that care about the SDK over to checking __MAC_OS_X_VERSION_MAX_ALLOWED so that things build.
101216
101217        Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
101218
101219        Reviewed by Filip Pizlo.
101220
101221        * platform/graphics/cg/GraphicsContextCG.cpp: The SDK we're building against determines whether the constant is available.
101222        * platform/mac/EmptyProtocolDefinitions.h:  The SDK we're building against determines whether the protocols are declared.
101223        * platform/mac/NSScrollerImpDetails.h: The SDK we're building against determines whether the constants and method are
101224        available.
101225        * platform/mac/SharedTimerMac.mm: The SDK we're building against determines whether the function has already been declared.
101226
1012272012-07-11  Mark Rowe  <mrowe@apple.com>
101228
101229        <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
101230
101231        This removal was handled by a script that translates the relevant macros in to the equivalent checks
101232        using the system availability macros.
101233
101234        Reviewed by Filip Pizlo.
101235
101236        * WebCore.exp.in:
101237        * accessibility/AccessibilityList.h:
101238        * accessibility/AccessibilityTable.h:
101239        * accessibility/mac/AXObjectCacheMac.mm:
101240        * editing/mac/EditorMac.mm:
101241        * loader/MainResourceLoader.cpp:
101242        * loader/MainResourceLoader.h:
101243        * page/AlternativeTextClient.h:
101244        * page/ContextMenuController.cpp:
101245        * page/mac/SettingsMac.mm:
101246        * platform/LocalizedStrings.cpp:
101247        * platform/MemoryPressureHandler.cpp:
101248        * platform/audio/mac/AudioBusMac.mm:
101249        * platform/graphics/Gradient.h:
101250        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
101251        * platform/graphics/ca/GraphicsLayerCA.cpp:
101252        * platform/graphics/ca/PlatformCALayer.h:
101253        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
101254        * platform/graphics/ca/mac/TileCache.mm:
101255        * platform/graphics/cg/GraphicsContextCG.cpp:
101256        * platform/graphics/cg/ImageBufferCG.cpp:
101257        * platform/graphics/cg/ImageBufferDataCG.cpp:
101258        * platform/graphics/cg/ImageBufferDataCG.h:
101259        * platform/graphics/cg/ImageCG.cpp:
101260        * platform/graphics/cg/ImageSourceCG.cpp:
101261        * platform/graphics/cg/PathCG.cpp:
101262        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
101263        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
101264        * platform/graphics/mac/ComplexTextController.cpp:
101265        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
101266        * platform/graphics/mac/FontCacheMac.mm:
101267        * platform/graphics/mac/FontCustomPlatformData.cpp:
101268        * platform/graphics/mac/FontMac.mm:
101269        * platform/graphics/mac/GraphicsContextMac.mm:
101270        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
101271        * platform/graphics/mac/SimpleFontDataMac.mm:
101272        * platform/graphics/mac/WebLayer.h:
101273        * platform/graphics/mac/WebLayer.mm:
101274        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
101275        * platform/mac/CursorMac.mm:
101276        * platform/mac/DisplaySleepDisabler.cpp:
101277        * platform/mac/DisplaySleepDisabler.h:
101278        * platform/mac/EmptyProtocolDefinitions.h:
101279        * platform/mac/HTMLConverter.h:
101280        * platform/mac/HTMLConverter.mm:
101281        * platform/mac/MemoryPressureHandlerMac.mm:
101282        * platform/mac/NSScrollerImpDetails.h:
101283        * platform/mac/PlatformEventFactoryMac.mm:
101284        * platform/mac/PopupMenuMac.mm:
101285        * platform/mac/ScrollAnimatorMac.mm:
101286        * platform/mac/ScrollElasticityController.mm:
101287        * platform/mac/SharedTimerMac.mm:
101288        * platform/mac/SuddenTermination.mm:
101289        * platform/mac/WebCoreFullScreenWindow.mm:
101290        * platform/mac/WebCoreNSCellExtras.h:
101291        * platform/mac/WebCoreSystemInterface.h:
101292        * platform/mac/WebCoreSystemInterface.mm:
101293        * platform/mac/WebFontCache.mm:
101294        * platform/mac/WebVideoFullscreenController.mm:
101295        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
101296        * platform/network/Credential.h:
101297        * platform/network/ResourceHandle.h:
101298        * platform/network/cf/DNSCFNet.cpp:
101299        * platform/network/cf/ProxyServerCFNet.cpp:
101300        * platform/network/cf/ResourceRequest.h:
101301        * platform/network/cf/ResourceRequestCFNet.cpp:
101302        * platform/network/cf/SocketStreamHandleCFNet.cpp:
101303        * platform/network/mac/AuthenticationMac.mm:
101304        * platform/network/mac/CookieStorageMac.mm:
101305        * platform/network/mac/ResourceHandleMac.mm:
101306        * platform/network/mac/ResourceRequestMac.mm:
101307        * platform/network/mac/WebCoreURLResponse.mm:
101308        * platform/text/TextChecking.h:
101309        * platform/text/cf/HyphenationCF.cpp:
101310        * platform/text/mac/HyphenationMac.mm:
101311        * rendering/RenderLayerBacking.cpp:
101312        * rendering/RenderLayerCompositor.cpp:
101313        * rendering/RenderThemeMac.mm:
101314
1013152012-07-11  Robert Kroeger  <rjkroege@chromium.org>
101316
101317        Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true
101318        https://bugs.webkit.org/show_bug.cgi?id=89580
101319
101320        WebKit GTK and Chromium Linux force vertical wheel events to
101321        scroll horizontally when over horizontal scroll bars.  This is
101322        undesirable for touchpad scrolling with
101323        hasPreciseScrollingDeltas() == true. Modified shouldTurnVerticalTicksIntoHorizontal
101324        to not perform this conversion for PlatformWheelEvents with preciseScrollingDeltas.
101325
101326        Reviewed by Adam Barth.
101327
101328        Tests: fast/events/touch/gesture/touch-gesture-scroll-sideways.html
101329
101330        * page/EventHandler.cpp:
101331        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal): 
101332        (WebCore::EventHandler::handleWheelEvent):
101333        * page/EventHandler.h:
101334        (EventHandler):
101335        * page/chromium/EventHandlerChromium.cpp:
101336        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
101337        * page/gtk/EventHandlerGtk.cpp:
101338        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
101339
1013402012-07-11  Hayato Ito  <hayato@chromium.org>
101341
101342        Unreviewed gardening.
101343        Build fix for r122373.
101344
101345        * platform/chromium/support/WebCompositorSharedQuadState.cpp:
101346        (WebKit::WebCompositorSharedQuadState::WebCompositorSharedQuadState):
101347
1013482012-07-11  Shinya Kawanaka  <shinyak@chromium.org> 
101349
101350        SVGUseElement should not use Element::ensureShadowRoot().
101351        https://bugs.webkit.org/show_bug.cgi?id=90938
101352
101353        Reviewed by Hajime Morita.
101354
101355        We would like to remove Element::ensureShadowRoot() because we would like to stabilize the lifecycle of Shadow DOM.
101356        This patch rewrites SVGUseElement::create() not to use Element::ensureShadowRoot(). Since our convention to create
101357        a shadow subtree is to create a method createShadowSubtree(), I obeyed it.
101358
101359        No new tests. Simple refactoring.
101360
101361        * svg/SVGUseElement.cpp:
101362        (WebCore::SVGUseElement::create):
101363        (WebCore::SVGUseElement::createShadowSubtree):
101364        (WebCore):
101365        * svg/SVGUseElement.h:
101366        (SVGUseElement):
101367
1013682012-07-11  Alexandre Elias  <aelias@google.com>
101369
101370        [chromium] Move compositor quads to Platform/chromium/public
101371        https://bugs.webkit.org/show_bug.cgi?id=90582
101372
101373        Reviewed by Adrienne Walker.
101374
101375        This moves CCSharedQuadState, CCDrawQuad, and all but two CC*DrawQuad
101376        classes to the WebKit namespace, as a first step to pushing them
101377        across the process boundary for the ubercompositor.
101378
101379        - The intent is to serialize the class hierarchy using the same
101380        mechanism as WebInputEvent.  In order to do this, there are three
101381        requirements: pure POD data, a method returning size, and a packing
101382        pragma.
101383
101384        - Private data members are fine with this kind of serializer, and a
101385        default constructor is not needed.  Because of that, we can maintain
101386        the same encapsulation and convenient APIs (behind
101387        WEBKIT_IMPLEMENTATION) as the original classes.  To ease the
101388        transition, the original WebCore headers still exist and typedef to
101389        the new classes.
101390
101391        - However, SharedQuadState will be serialized using the normal
101392        IPC_STRUCT_TRAITS macro, so I made its members public.  A custom
101393        serializer (on quad lists) will maintain the pointers from quads to
101394        SharedQuadStates.
101395
101396        - I converted the Material casting mechanism to materialCast() methods
101397        living in the derived classes.  That way, the WebCompositorQuad header
101398        doesn't need to know about all its derived classes.
101399
101400        - Quad classes not yet transitioned can still be used in
101401        non-ubercompositor mode.  CCRenderPassDrawQuad and CCYUVVideoDrawQuad
101402        are currently non-POD and I left them in their original files.
101403
101404        This approach is the best I've found so far, since it preserves all
101405        WebCore-facing APIs and avoids unnecessary code duplication (new quad
101406        types or members can be added by modifying only one place).  There
101407        also should not be an unreasonable amount of custom serializer code
101408        required.
101409
101410        No new tests. (No-op refactoring.)
101411
101412        * WebCore.gypi:
101413        * platform/chromium/support/WebCompositorQuad.cpp: Added.
101414        (WebKit):
101415        (WebKit::WebCompositorQuad::WebCompositorQuad):
101416        (WebKit::WebCompositorQuad::opaqueRect):
101417        (WebKit::WebCompositorQuad::setQuadVisibleRect):
101418        (WebKit::WebCompositorQuad::size):
101419        * platform/chromium/support/WebCompositorSharedQuadState.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp.
101420        (WebKit):
101421        (WebKit::WebCompositorSharedQuadState::WebCompositorSharedQuadState):
101422        (WebKit::WebCompositorSharedQuadState::create):
101423        (WebKit::WebCompositorSharedQuadState::isLayerAxisAlignedIntRect):
101424        * platform/chromium/support/WebCompositorSolidColorQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp.
101425        (WebKit):
101426        (WebKit::WebCompositorSolidColorQuad::create):
101427        (WebKit::WebCompositorSolidColorQuad::WebCompositorSolidColorQuad):
101428        (WebKit::WebCompositorSolidColorQuad::materialCast):
101429        * platform/chromium/support/WebCompositorTextureQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp.
101430        (WebKit):
101431        (WebKit::WebCompositorTextureQuad::create):
101432        (WebKit::WebCompositorTextureQuad::WebCompositorTextureQuad):
101433        (WebKit::WebCompositorTextureQuad::setNeedsBlending):
101434        (WebKit::WebCompositorTextureQuad::materialCast):
101435        * platform/graphics/chromium/LayerRendererChromium.cpp:
101436        (WebCore::LayerRendererChromium::drawQuad):
101437        * platform/graphics/chromium/LayerRendererChromium.h:
101438        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp:
101439        (WebCore::CCCheckerboardDrawQuad::create):
101440        (WebCore::CCCheckerboardDrawQuad::CCCheckerboardDrawQuad):
101441        (WebCore::CCCheckerboardDrawQuad::materialCast):
101442        (WebCore):
101443        * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h:
101444        (CCCheckerboardDrawQuad):
101445        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
101446        (WebCore::CCDebugBorderDrawQuad::create):
101447        (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
101448        (WebCore::CCDebugBorderDrawQuad::materialCast):
101449        (WebCore):
101450        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
101451        (CCDebugBorderDrawQuad):
101452        * platform/graphics/chromium/cc/CCDrawQuad.cpp: Removed.
101453        * platform/graphics/chromium/cc/CCDrawQuad.h:
101454        (WebCore):
101455        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
101456        (WebCore::CCIOSurfaceDrawQuad::create):
101457        (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
101458        (WebCore::CCIOSurfaceDrawQuad::materialCast):
101459        (WebCore):
101460        * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
101461        (CCIOSurfaceDrawQuad):
101462        * platform/graphics/chromium/cc/CCLayerImpl.h:
101463        (WebCore):
101464        * platform/graphics/chromium/cc/CCRenderPass.h:
101465        (WebCore):
101466        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
101467        (WebCore::CCRenderPassDrawQuad::create):
101468        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
101469        (WebCore::CCRenderPassDrawQuad::materialCast):
101470        (WebCore):
101471        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
101472        (CCRenderPassDrawQuad):
101473        * platform/graphics/chromium/cc/CCRenderSurface.h:
101474        (WebCore):
101475        * platform/graphics/chromium/cc/CCSharedQuadState.h:
101476        (WebCore):
101477        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
101478        (WebCore):
101479        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp:
101480        (WebCore::CCStreamVideoDrawQuad::create):
101481        (WebCore::CCStreamVideoDrawQuad::CCStreamVideoDrawQuad):
101482        (WebCore::CCStreamVideoDrawQuad::materialCast):
101483        (WebCore):
101484        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h:
101485        (CCStreamVideoDrawQuad):
101486        * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
101487        (WebCore):
101488        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
101489        (WebCore::CCTileDrawQuad::create):
101490        (WebCore::CCTileDrawQuad::CCTileDrawQuad):
101491        (WebCore::CCTileDrawQuad::materialCast):
101492        (WebCore):
101493        * platform/graphics/chromium/cc/CCTileDrawQuad.h:
101494        (CCTileDrawQuad):
101495        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp:
101496        (WebCore::CCYUVVideoDrawQuad::create):
101497        (WebCore::CCYUVVideoDrawQuad::CCYUVVideoDrawQuad):
101498        (WebCore::CCYUVVideoDrawQuad::materialCast):
101499        (WebCore):
101500        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h:
101501        (CCYUVVideoDrawQuad):
101502
1015032012-07-11  Robert Kroeger  <rjkroege@chromium.org>
101504
101505        [chromium] [regression] Don't use ScrollByPrecisePixels on Chromium Mac.
101506        https://bugs.webkit.org/show_bug.cgi?id=91020
101507
101508        Reviewed by Adam Barth.
101509
101510        A change in https://bugs.webkit.org/show_bug.cgi?id=87535 to
101511        improve the operation of smooth scrolling incorrectly caused
101512        Chromium Mac to use the wrong scroll granularity on
101513        hasPreciseScrollingDeltas() == true wheelevent scrolls.
101514        Exclude the change on the Chromium Mac platform.
101515
101516        * platform/ScrollAnimator.cpp:
101517        (WebCore::ScrollAnimator::handleWheelEvent): Adjusted #ifdef to exclude Chromium
101518        Mac from ScrollByPrecisePixels change.
101519
1015202012-07-11  Jia Pu  <jpu@apple.com>
101521
101522        On Mac, autocorrection sometimes fails to take place in Safari.
101523        https://bugs.webkit.org/show_bug.cgi?id=89982
101524
101525        Reviewed by Ryosuke Niwa.
101526
101527        We should check the value of shouldCheckForCorrection, not shouldShowCorrectionPanel, to determine if we should
101528        early return in markAndReplaceFor(). Also, since we don't want autocorrection to happen when we only change selection,
101529        not the content, so we shouldn't set TextCheckingTypeCorrection flag in markMisspellingsAndBadGrammar() as this function
101530        is triggered only by selection change.
101531
101532        * editing/Editor.cpp:
101533        (WebCore::Editor::markAndReplaceFor):
101534        (WebCore::Editor::markMisspellingsAndBadGrammar):
101535
1015362012-07-11  Sheriff Bot  <webkit.review.bot@gmail.com>
101537
101538        Unreviewed, rolling out r122361.
101539        http://trac.webkit.org/changeset/122361
101540        https://bugs.webkit.org/show_bug.cgi?id=91027
101541
101542        Broke Windows build and fast/forms/state-restore-broken-
101543        state.html (Requested by rniwa on #webkit).
101544
101545        * testing/Internals.idl:
101546
1015472012-07-10  Simon Fraser  <simon.fraser@apple.com>
101548
101549        Assertion ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) when compositing in paginated mode
101550        https://bugs.webkit.org/show_bug.cgi?id=90919
101551
101552        Reviewed by Antti Koivisto.
101553
101554        r121124 added a fast path for geometry mapping that goes via layers
101555        when possible. However, this broke paginated pages, which put
101556        the root (RenderView) layer into column mode, because it failed
101557        to check for columns on the ancestor layer.
101558        
101559        Rather than make a risky change to convertToLayerCoords(), add a local
101560        function canMapViaLayer(), which is like RenderLayer::canUseConvertToLayerCoords(),
101561        but doesn't check for compositing (compositing itself is not a reason
101562        to avoid convertToLayerCoords). Call canMapViaLayer() with the ancestorLayer
101563        to check whether the ancestor has columns, which fixes the bug.
101564
101565        Test: compositing/columns/geometry-map-paginated-assert.html
101566
101567        * rendering/RenderGeometryMap.cpp:
101568        (WebCore::canMapViaLayer):
101569        (WebCore::RenderGeometryMap::pushMappingsToAncestor):
101570
1015712012-07-11  Dana Jansens  <danakj@chromium.org>
101572
101573        [chromium] Rename layerRect to contentRect for rects that live in content space
101574        https://bugs.webkit.org/show_bug.cgi?id=90843
101575
101576        Reviewed by Adrienne Walker.
101577
101578        Dropped the layerTransform() from CCSharedQuadState, as nothing should be
101579        using it to draw with. RenderPasses need a weird drawTransform right now
101580        which was stored in layerTransform, so moved this to the RenderPass quad.
101581
101582        No new tests. No change in behaviour.
101583
101584        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
101585        (WebCore::CanvasLayerTextureUpdater::paintContents):
101586        * platform/graphics/chromium/ContentLayerChromium.cpp:
101587        (WebCore::ContentLayerChromium::update):
101588        (WebCore::ContentLayerChromium::needMoreUpdates):
101589        * platform/graphics/chromium/ImageLayerChromium.cpp:
101590        (WebCore::ImageLayerChromium::update):
101591        * platform/graphics/chromium/LayerChromium.cpp:
101592        (WebCore::LayerChromium::visibleContentOpaqueRegion):
101593        * platform/graphics/chromium/LayerChromium.h:
101594        (WebCore::LayerChromium::visibleContentRect):
101595        (WebCore::LayerChromium::setVisibleContentRect):
101596        (LayerChromium):
101597        * platform/graphics/chromium/LayerRendererChromium.cpp:
101598        (WebCore::LayerRendererChromium::drawRenderPassQuad):
101599        (WebCore::LayerRendererChromium::drawTileQuad):
101600        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
101601        (WebCore::LayerRendererChromium::drawStreamVideoQuad):
101602        (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
101603        * platform/graphics/chromium/TiledLayerChromium.cpp:
101604        (WebCore::TiledLayerChromium::updateBounds):
101605        (WebCore::TiledLayerChromium::setNeedsDisplayRect):
101606        (WebCore::TiledLayerChromium::invalidateContentRect):
101607        (WebCore::TiledLayerChromium::updateTiles):
101608        (WebCore::TiledLayerChromium::setTexturePriorities):
101609        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
101610        (WebCore::TiledLayerChromium::visibleContentOpaqueRegion):
101611        (WebCore::TiledLayerChromium::updateContentRect):
101612        (WebCore::TiledLayerChromium::needsIdlePaint):
101613        (WebCore::TiledLayerChromium::idlePaintRect):
101614        * platform/graphics/chromium/TiledLayerChromium.h:
101615        (TiledLayerChromium):
101616        * platform/graphics/chromium/cc/CCDrawQuad.h:
101617        (WebCore::CCDrawQuad::visibleContentRect):
101618        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
101619        (WebCore::CCLayerImpl::createSharedQuadState):
101620        (WebCore::CCLayerImpl::appendDebugBorderQuad):
101621        (WebCore::CCLayerImpl::visibleContentOpaqueRegion):
101622        * platform/graphics/chromium/cc/CCLayerImpl.h:
101623        (WebCore::CCLayerImpl::visibleContentRect):
101624        (WebCore::CCLayerImpl::setVisibleContentRect):
101625        (CCLayerImpl):
101626        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
101627        (WebCore::CCLayerTilingData::contentRectToTileIndices):
101628        (WebCore::CCLayerTilingData::opaqueRegionInContentRect):
101629        (WebCore::CCLayerTilingData::setBounds):
101630        * platform/graphics/chromium/cc/CCLayerTilingData.h:
101631        (CCLayerTilingData):
101632        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
101633        (WebCore::calculateVisibleContentRect):
101634        (WebCore::layerShouldBeSkipped):
101635        (WebCore):
101636        (WebCore::calculateVisibleAndScissorRectsInternal):
101637        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
101638        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
101639        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
101640        (WebCore::addOcclusionBehindLayer):
101641        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
101642        (WebCore::CCRenderPassDrawQuad::create):
101643        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
101644        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
101645        (CCRenderPassDrawQuad):
101646        (WebCore::CCRenderPassDrawQuad::drawTransform):
101647        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
101648        (WebCore::CCRenderSurface::createSharedQuadState):
101649        (WebCore::CCRenderSurface::createReplicaSharedQuadState):
101650        (WebCore::CCRenderSurface::appendQuads):
101651        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
101652        (WebCore::CCSharedQuadState::create):
101653        (WebCore::CCSharedQuadState::CCSharedQuadState):
101654        (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
101655        * platform/graphics/chromium/cc/CCSharedQuadState.h:
101656        (CCSharedQuadState):
101657        (WebCore::CCSharedQuadState::visibleContentRect):
101658        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
101659        (WebCore::CCTiledLayerImpl::appendQuads):
101660        (WebCore::CCTiledLayerImpl::visibleContentOpaqueRegion):
101661
1016622012-07-11  Chris Fleizach  <cfleizach@apple.com>
101663
101664        ARIA spinbutton role incorrectly mapped to ProgressIndicatorRole
101665        https://bugs.webkit.org/show_bug.cgi?id=77298
101666
101667        Reviewed by Anders Carlsson.
101668
101669        * accessibility/AccessibilityObject.cpp:
101670        (WebCore::createARIARoleMap):
101671
1016722012-07-11  Huang Dongsung  <luxtella@company100.net>
101673
101674        BitmapImage::frameIsCompleteAtIndex() must return false if ImageDecoder is not initialized.
101675        https://bugs.webkit.org/show_bug.cgi?id=90757
101676
101677        Reviewed by Simon Fraser.
101678
101679        The current code fortunately has worked so far because only
101680        BitmapImage::startAnimation calls frameIsCompleteAtIndex, and startAnimation
101681        cannot call frameIsCompleteAtIndex if ImageDecoder is not yet initialized.
101682        startAnimation returns at the first line becase shouldAnimate() always return
101683        false in this case.
101684
101685            if (m_frameTimer || !shouldAnimate() || frameCount() <= 1)
101686                return;
101687
101688        This change is needed because parallel image decoders call
101689        BitmapImage::frameIsCompleteAtIndex in other places too.
101690
101691        No new tests, manually tested whether the caller exists or not that
101692        calls BitmapImage::frameIsCompleteAtIndex() before ImageDecoder is
101693        initialized.
101694
101695        * platform/graphics/BitmapImage.cpp:
101696        (WebCore::BitmapImage::frameIsCompleteAtIndex):
101697
1016982012-07-11  Kevin Ollivier  <kevino@theolliviers.com>
101699
101700        [wx] Unreviewed build fix. Update code to use the new constant name.
101701        
101702        * platform/wx/PasteboardWx.cpp:
101703        (WebCore::Pasteboard::documentFragment):
101704
1017052012-07-11  Kevin Ollivier  <kevino@theolliviers.com>
101706
101707        [wx] Unreviewed build fix. Ignore array and sequence types for attributes as well
101708        as functions since the CPP bindings do not yet support them.
101709
101710        * bindings/scripts/CodeGeneratorCPP.pm:
101711        (SkipAttribute):
101712
1017132012-07-11  Kevin Ollivier  <kevino@theolliviers.com>
101714
101715        [wx] Unreviewed build fix. Use DOMStringList instead of DOMString[] for in / out type.
101716
101717        * testing/Internals.idl:
101718
1017192012-07-11  Dana Jansens  <danakj@chromium.org>
101720
101721        [chromium] Minimum size used for occlusion tracking should be a setting on CCLayerTreeHost
101722        https://bugs.webkit.org/show_bug.cgi?id=90993
101723
101724        Reviewed by Adrienne Walker.
101725
101726        Move the default minimum size used for occlusion tracking from the
101727        CCOcclusionTracker class into CCLayerTreeSettings. This value is then
101728        used on both threads as the lower limit for any occlusion to be
101729        remembered.
101730
101731        This allows us to use (0, 0) as the minimum size for tests, allowing all
101732        occlusion to be tracked.
101733
101734        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
101735        (WebCore::CCLayerTreeHost::paintLayerContents):
101736        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
101737        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
101738        (CCLayerTreeSettings):
101739        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
101740        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
101741        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
101742
1017432012-07-11  Anders Carlsson  <andersca@apple.com>
101744
101745        Add -Wtautological-compare and -Wsign-compare warning flags
101746        https://bugs.webkit.org/show_bug.cgi?id=90994
101747
101748        Reviewed by Mark Rowe.
101749
101750        * Configurations/Base.xcconfig:
101751
1017522012-07-11  Dean Jackson  <dino@apple.com>
101753
101754        TileCache layers have wrong border debug color
101755        https://bugs.webkit.org/show_bug.cgi?id=90922
101756
101757        Reviewed by Simon Fraser.
101758
101759        Commit r122152 updated the layer hierarchy when a tile
101760        cache is being used by the view. As part of that, GraphicsLayerClient::shouldUseTileCache()
101761        was changed to return false in some situations (the idea was that it
101762        should only be called from the createGraphicsLayer method). However
101763        there were two other call points: one that sets the debug colors on
101764        borders, the other was a call that keeps the document background in sync.
101765
101766        Add a new method usingTileCache() that returns the current state. Also fix
101767        a FIXME where the debug code always called into the client rather than
101768        caching the value on the GraphicsLayer.
101769
101770        Test: compositing/document-background-color.html
101771
101772        * platform/graphics/GraphicsLayer.cpp:
101773        (WebCore::GraphicsLayer::GraphicsLayer):
101774        (WebCore::GraphicsLayer::updateDebugIndicators): check the local variable when
101775        setting the debug colors.
101776        * platform/graphics/GraphicsLayer.h:
101777        (GraphicsLayer): new bool member variable m_usingTileCache.
101778        * platform/graphics/GraphicsLayerClient.h:
101779        (WebCore::GraphicsLayerClient::usingTileCache): new virtual method to query if
101780        this client is actually using the tile cache.
101781        * platform/graphics/ca/GraphicsLayerCA.cpp:
101782        (WebCore::GraphicsLayerCA::GraphicsLayerCA): set the member variable m_usingTileCache
101783        if the GraphicsLayerClient says we are.
101784        * rendering/RenderLayerBacking.h:
101785        (WebCore::RenderLayerBacking::usingTileCache):
101786        * rendering/RenderLayerCompositor.cpp:
101787        (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): call usingTileCache()
101788        rather than shouldUseTileCache(), because the latter's value might not always reflect
101789        the existence of a cache.
101790
1017912012-07-11  Ryosuke Niwa  <rniwa@webkit.org>
101792
101793        Clang build fix after r122345.
101794        Also let Xcode do its own thing.
101795
101796        * WebCore.xcodeproj/project.pbxproj:
101797        * html/HTMLCollection.cpp:
101798        (WebCore::HTMLCollectionWithArrayStorage::item):
101799        * html/HTMLCollection.h:
101800        (HTMLCollectionWithArrayStorage):
101801        * html/HTMLFormCollection.cpp:
101802        (WebCore::HTMLFormCollection::itemInArrayAfter):
101803        * html/HTMLFormCollection.h:
101804        (HTMLFormCollection):
101805        * html/HTMLPropertiesCollection.cpp:
101806        (WebCore::HTMLPropertiesCollection::itemInArrayAfter):
101807        * html/HTMLPropertiesCollection.h:
101808        (HTMLPropertiesCollection):
101809
1018102012-07-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
101811
101812        [Gtk] allow building with css-filters
101813        https://bugs.webkit.org/show_bug.cgi?id=90908
101814
101815        Reviewed by Eric Seidel.
101816
101817        Add support for css-filters in Source/WebCore/GNUmakefile.am
101818        configure.ac
101819
101820        No functional change, so no new tests.
101821
101822        * GNUmakefile.am:
101823
1018242012-07-10  Ryosuke Niwa  <rniwa@webkit.org>
101825
101826        HTMLFormCollection::item and HTMLPropertiesCollection::item should share code
101827        https://bugs.webkit.org/show_bug.cgi?id=90932
101828
101829        Reviewed by Anders Carlsson.
101830
101831        Merged HTMLFormCollection::item and HTMLPropertiesCollection::item as HTMLCollectionWithArrayStorage::item,
101832        which can be merged into HTMLCollection::item in a follow up patch.
101833
101834        Also moved the call to invalidateCacheIfNeeded into HTMLCollection::updateNameCache() as done in
101835        HTMLPropertiesCollection.
101836
101837        In addition, moved the early bail out for when the base element doesn't have itemscope attribute from individual
101838        functions to updateRefElements so that HTMLCollectionWithArrayStorage::item doesn't need to have this check.
101839
101840        * html/HTMLCollection.cpp:
101841        (WebCore::HTMLCollectionWithArrayStorage::item): Added. It's based on HTMLPropertiesCollection::item but it only
101842        has the single loop (as supposed to nested loops) as HTMLFormCollection doesn't have multiple items per element
101843        in the array unlike HTMLPropertiesCollection. In addition, offsetInArray (was i in HTMLPropertiesCollection::item) is
101844        incremented in each itemAfter due to this semantic difference in each itemAfter.
101845        (WebCore::HTMLCollection::updateNameCache):
101846        (WebCore::HTMLCollection::hasNamedItem):
101847        (WebCore::HTMLCollection::namedItems):
101848        * html/HTMLCollection.h:
101849        (HTMLCollectionWithArrayStorage):
101850        (WebCore::HTMLCollectionWithArrayStorage::HTMLCollectionWithArrayStorage):
101851        * html/HTMLFormCollection.cpp:
101852        (WebCore::HTMLFormCollection::HTMLFormCollection):
101853        (WebCore::HTMLFormCollection::calcLength): Merged numberOfFormControlElements since it was only called here.
101854        (WebCore::HTMLFormCollection::itemAfter): Added. HTMLFormCollection has exactly one item per element in the array
101855        so we increment the offset in each iteration. Note that when we're continuing a search, we need to increment
101856        the offset in order to avoid returning the same item.
101857        (WebCore::HTMLFormCollection::updateNameCache):
101858        * html/HTMLFormCollection.h:
101859        (HTMLFormCollection):
101860        * html/HTMLPropertiesCollection.cpp:
101861        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
101862        (WebCore::HTMLPropertiesCollection::updateRefElements): Set m_hasItemRefElements true upfront since we never fail to
101863        update ref elements. Bail out as soon as we cleared the m_itemRefElements when the base element doesn't have itemscope
101864        content attribute.
101865        (WebCore::HTMLPropertiesCollection::itemAfter): Added. We reset previousItem to null because the existing itemAfter
101866        requires previousItem be null when we're moving to a new entry in m_itemRefElements.
101867        (WebCore::HTMLPropertiesCollection::calcLength):
101868        (WebCore::HTMLPropertiesCollection::cacheFirstItem):
101869        (WebCore::HTMLPropertiesCollection::updateNameCache): Merged findProperties since this was the only caller.
101870        (WebCore::HTMLPropertiesCollection::names):
101871        (WebCore::HTMLPropertiesCollection::namedItem):
101872        (WebCore::HTMLPropertiesCollection::hasNamedItem):
101873        * html/HTMLPropertiesCollection.h:
101874        (HTMLPropertiesCollection): Made updateRefElements public as it's called in HTMLCollectionWithArrayStorage::item.
101875
1018762012-07-11  Sami Kyostila  <skyostil@chromium.org>
101877
101878        RenderView layer is marked as fixed position container in the scrolling tree if page scale != 1
101879        https://bugs.webkit.org/show_bug.cgi?id=89216
101880
101881        Reviewed by Simon Fraser.
101882
101883        Render layers with CSS transforms should become containers for any fixed
101884        positioned descendants. However, because this check is done with
101885        RenderLayer::hasTransform(), we also end up marking the RenderLayer for the
101886        RenderView as fixed position container if a non-identity page scale factor is
101887        used. This is because page scale is applied as a transform for that layer.
101888
101889        This breaks fixed position layers, because they become fixed relative to the
101890        RenderView layer instead of outer scroll clip layer.
101891
101892        The fix is to avoid marking any root layers as fixed position containers.
101893
101894        No new test because the scrolling tree isn't currently testable.
101895
101896        * rendering/RenderLayerBacking.cpp:
101897        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
101898
1018992012-07-11  Julien Chaffraix  <jchaffraix@webkit.org>
101900
101901        REGRESSION (r116203): overflow sections don't have scrollbars
101902        https://bugs.webkit.org/show_bug.cgi?id=90052
101903
101904        Reviewed by Simon Fraser.
101905
101906        This issue stems from RenderLayers with overlay scrollbars not being considered
101907        self-painting.
101908
101909        After r120395 (follow-up of r116203), we ignore subtrees that have no self-painting layer for
101910        painting. Normal scrollbars are painted by their renderer so they were properly painted. However
101911        overlay scrollbars need to be painted by their RenderLayer as a separate phase (see bug 57057) so
101912        they were not painted anymore. The fix is simple: make RenderLayer with overlay scrollbars
101913        self-painting as they should have been in the first place.
101914
101915        Unfortunately no tests as I don't think we have a good way of testing overlay
101916        scrollbars. Tested manually though on the super simple test case from the bug.
101917
101918        * rendering/RenderLayer.cpp:
101919        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
101920        Overlay scrollbars make the layer self-painting.
101921
101922        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
101923        Added a call to updateSelfPaintingLayer.
101924
101925        (WebCore::RenderLayer::styleChanged):
101926        Moved the call to updateSelfPaintingLayer after recomputing the scrollbars to ensure proper behavior.
101927        Added a comment underlining the reason.
101928
101929        (WebCore::RenderLayer::updateSelfPaintingLayer):
101930        Renamed as it is now called during layout too.
101931
101932        * rendering/RenderLayer.h:
101933        (RenderLayer): Updated after updateSelfPaintingLayer rename.
101934
1019352012-07-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
101936
101937        NodesFromRect doesn't work on SVG root elements.
101938        https://bugs.webkit.org/show_bug.cgi?id=89990
101939
101940        Reviewed by Antonio Gomes.
101941
101942        Adds support for rect-based hit-testing on the SVG root element.
101943        This means that while rect-based hit-testing is still not supported
101944        within SVG elements, that at least it works on SVG root elements as
101945        it would on any other replaced element.
101946
101947        Test: fast/dom/nodesFromRect-svg.html
101948
101949        * rendering/svg/RenderSVGRoot.cpp:
101950        (WebCore::RenderSVGRoot::nodeAtPoint):
101951
1019522012-07-11  Joshua Netterfield  <jnetterfield@rim.com>
101953
101954        [Qt] REGRESSION(r122250): It broke USE(3D_GRAPHICS)=1 and ENABLE(WEBGL)=0 builds
101955        https://bugs.webkit.org/show_bug.cgi?id=90943
101956
101957        Reviewed by Csaba Osztrogonác.
101958
101959        Uses proper guarding in Extensions3DOpenGLCommon and Extensions3DOpenGLES as per https://bugs.webkit.org/show_bug.cgi?id=90506.
101960
101961        No new tests, becasue there is no new functionality.
101962
101963        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Use proper guarding.
101964        * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Use proper guarding.
101965
1019662012-07-10  Pavel Feldman  <pfeldman@chromium.org>
101967
101968        Web Inspector: migrate from background images to CSS for statusbar rendering.
101969        https://bugs.webkit.org/show_bug.cgi?id=90902
101970
101971        Reviewed by Vsevolod Vlasov.
101972
101973        This change removes statusbar* images and uses gradients and borders to re-create original inspector look.
101974
101975        * WebCore.gypi:
101976        * inspector/front-end/Images/statusbarBackground.png: Removed.
101977        * inspector/front-end/Images/statusbarBottomBackground.png: Removed.
101978        * inspector/front-end/Images/statusbarButtons.png: Removed.
101979        * inspector/front-end/Images/statusbarMenuButton.png: Removed.
101980        * inspector/front-end/Images/statusbarMenuButtonSelected.png: Removed.
101981        * inspector/front-end/StatusBarButton.js:
101982        * inspector/front-end/WebKit.qrc:
101983        * inspector/front-end/inspector.css:
101984        (body.drawer-visible #main-status-bar):
101985        (body.drawer-visible #main-status-bar::after):
101986        (.status-bar-background):
101987        (.status-bar > div):
101988        (.glyph):
101989        (button.status-bar-item):
101990        (.status-bar button.status-bar-item:active):
101991        (select.status-bar-item):
101992        (select.status-bar-item, select.status-bar-item:hover):
101993        (body.detached .alternate-status-bar-buttons-bar):
101994        (.alternate-status-bar-buttons-bar):
101995        (.alternate-status-bar-buttons-bar .status-bar-item):
101996        (.alternate-status-bar-buttons-bar .status-bar-item.emulate-active):
101997        (#drawer):
101998        (body.drawer-visible #drawer-contents):
101999        (#drawer-status-bar):
102000        * inspector/front-end/inspector.html:
102001        * inspector/front-end/scriptsPanel.css:
102002        (button.status-bar-item.scripts-navigator-show-hide-button):
102003        (button.status-bar-item.scripts-navigator-show-hide-button:active):
102004        (button.status-bar-item.scripts-debugger-show-hide-button):
102005        (button.status-bar-item.scripts-debugger-show-hide-button:active):
102006
1020072012-07-11  Jason Liu  <jason.liu@torchmobile.com.cn>
102008
102009        [BlackBerry] crash in CookieDatabaseBackingStore.
102010        https://bugs.webkit.org/show_bug.cgi?id=90270
102011
102012        Reviewed by George Staikos.
102013
102014        There is one case for this crash.
102015        1. A browser crashes and locks cookies' database for a while.
102016        2. Open a new browser when the old one doesn't finish crashing.
102017        3. The new one writes the cookies' database and receives a SQLITE_BUSY error
102018           in CookieDatabaseBackingStore's invokeOpen. So this database isn't opened.
102019        4. invokeGetCookiesWithLimit returns 0.
102020        5. Crash happens when using a null pointer.
102021
102022        Add function setBusyTimeout(1000) and a guard for cookies' pointer.
102023        setBusyTimeout will call sqlite3_busy_timeout.
102024
102025        When the SQLite database is accessed for reading it is locked for writing
102026        until the reading access is finished. Another process cannot access the database
102027        while it is locked. The timeout time sets a limit while this process tries to access
102028        the locked database. If the database is unlocked within the timeout time it can be
102029        accessed, otherwise an access fails.
102030
102031        No new tests. This crash is hard to reproduce, and it happens only on our platform.
102032
102033        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
102034        (WebCore::CookieDatabaseBackingStore::getCookiesFromDatabase):
102035
1020362012-07-11  Vsevolod Vlasov  <vsevik@chromium.org>
102037
102038        Web Inspector: Move revisions support to UISourceCode.
102039        https://bugs.webkit.org/show_bug.cgi?id=90888
102040
102041        Reviewed by Pavel Feldman.
102042
102043        Moved revisions support to UISourceCode.
102044        Revision management code is moved unchanged where possible and should be refactored later.
102045
102046        * inspector/front-end/CSSStyleModel.js:
102047        (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged): revision is now added to uiSourceCode, not resource.
102048        * inspector/front-end/ExtensionServer.js:
102049        (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
102050        Extension server is now listening for Workspace.UISourceCodeContentCommitted event instead of ResourceTreeModel.ResourceContentCommitted.
102051        * inspector/front-end/Resource.js:
102052        * inspector/front-end/ResourceTreeModel.js: ResourceTreeModel.ResourceContentCommitted renamed to Workspace.UISourceCodeContentCommitted.
102053        * inspector/front-end/ResourceView.js:
102054        (WebInspector.ResourceSourceFrame): ResourceSourceFrame is not update when revisions are added anymore as resource conenten is considered immutable now
102055        * inspector/front-end/RevisionHistoryView.js:
102056        (WebInspector.RevisionHistoryView.populateRevisions):
102057        (WebInspector.RevisionHistoryView):
102058        (WebInspector.RevisionHistoryView.showHistory):
102059        (WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
102060        (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
102061        (WebInspector.RevisionHistoryView.prototype._revisionAdded):
102062        (WebInspector.RevisionHistoryView.prototype._revealUISourceCode.get if):
102063        (WebInspector.RevisionHistoryView.prototype._revealUISourceCode):
102064        (WebInspector.RevisionHistoryView.prototype._reset):
102065        * inspector/front-end/ScriptSnippetModel.js: Snippets are not loaded before ResourceTreeModel.mainFrame is available anymore.
102066        (WebInspector.ScriptSnippetModel):
102067        (WebInspector.ScriptSnippetModel.prototype._setScriptSnippetContent):
102068        * inspector/front-end/UISourceCode.js:
102069        (WebInspector.UISourceCode):
102070        (WebInspector.UISourceCode.prototype.requestOriginalContent):
102071        (WebInspector.UISourceCode.prototype._setContent):
102072        (WebInspector.UISourceCode.prototype.addRevision):
102073        (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
102074        (WebInspector.UISourceCode.prototype._clearRevisionHistory):
102075        (WebInspector.UISourceCode.prototype.revertToOriginal):
102076        (WebInspector.UISourceCode.prototype.revertAndClearHistory):
102077        (WebInspector.UISourceCode.prototype.revertAndClearHistory.clearHistory):
102078        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
102079        (WebInspector.UISourceCode.prototype.canonicalMimeType):
102080        (WebInspector.Revision):
102081        (WebInspector.Revision._revisionHistoryRegistry):
102082        (WebInspector.Revision._ensureStaleRevisionsFileteredOut.persist):
102083        (WebInspector.Revision._ensureStaleRevisionsFileteredOut):
102084        (WebInspector.Revision.prototype.get uiSourceCode):
102085        (WebInspector.Revision.prototype.get timestamp):
102086        (WebInspector.Revision.prototype.get content):
102087        (WebInspector.Revision.prototype.revertToThis):
102088        (WebInspector.Revision.prototype.contentURL):
102089        (WebInspector.Revision.prototype.contentType):
102090        (WebInspector.Revision.prototype.requestContent):
102091        (WebInspector.Revision.prototype.searchInContent):
102092        (WebInspector.Revision.prototype._persist):
102093        * inspector/front-end/UserAgentSupport.js: Drive-by closure compilation fix.
102094        * inspector/front-end/Workspace.js:
102095        * inspector/front-end/inspector.js: ScriptSnippetModel is now created after ResourceTreeModel.
102096
1020972012-07-11  MORITA Hajime  <morrita@google.com>
102098
102099        WebCoreSupport needs objects each of which follows major WebCore objects
102100        https://bugs.webkit.org/show_bug.cgi?id=88499
102101
102102        Reviewed by Alexey Proskuryakov.
102103
102104        This change
102105
102106        - Makes Internals rough lifetime to follow Document.
102107          Note that Internals can survive longer than Document in same case.
102108          Internals::m_document is cleared when the document destruction is notified.
102109        - Makes InternalSettings rough lifetime to follow the Page.
102110          This is done by making InternalSettings a supplement of the page.
102111          Now InternalSettings object is created per Page instead of per Frame.
102112
102113        Per-test setting clearance is done by newly introduced InternalSettings::Backup,
102114        which recovers the modified settings and refreshes it for each time a test starts.
102115
102116        * WebCore.exp.in:
102117        * testing/InternalSettings.cpp:
102118        (WebCore::InternalSettings::Backup::Backup):
102119        (WebCore):
102120        (WebCore::InternalSettings::Backup::restoreTo):
102121        (WebCore::InternalSettings::from):
102122        (WebCore::InternalSettings::~InternalSettings):
102123        (WebCore::InternalSettings::InternalSettings):
102124        (WebCore::InternalSettings::reset):
102125        (WebCore::InternalSettings::settings):
102126        (WebCore::InternalSettings::setFixedElementsLayoutRelativeToFrame):
102127        (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
102128        (WebCore::InternalSettings::allowRoundingHacks):
102129        (WebCore::InternalSettings::userPreferredLanguages):
102130        (WebCore::InternalSettings::setUserPreferredLanguages):
102131        (WebCore::InternalSettings::setShouldDisplayTrackKind):
102132        (WebCore::InternalSettings::shouldDisplayTrackKind):
102133        (WebCore::InternalSettings::setPagination):
102134        * testing/InternalSettings.h:
102135        (Backup):
102136        (InternalSettings):
102137        (WebCore::InternalSettings::page):
102138        * testing/InternalSettings.idl:
102139        * testing/Internals.cpp:
102140        (WebCore::Internals::Internals):
102141        (WebCore):
102142        (WebCore::Internals::contextDocument):
102143        (WebCore::Internals::frame):
102144        (WebCore::Internals::settings):
102145        (WebCore::Internals::setPagination): Replaced as an alias.
102146        (WebCore::Internals::userPreferredLanguages): Replaced as an alias.
102147        (WebCore::Internals::setUserPreferredLanguages): Replaced as an alias.
102148        (WebCore::Internals::setShouldDisplayTrackKind): Replaced as an alias.
102149        (WebCore::Internals::shouldDisplayTrackKind): Replaced as an alias.
102150        (WebCore::Internals::emitInspectorDidBeginFrame):
102151        (WebCore::Internals::emitInspectorDidCancelFrame):
102152        (WebCore::Internals::allowRoundingHacks): Replaced as an alias.
102153        * testing/Internals.h:
102154        (WebCore):
102155        (Internals):
102156        * testing/js/WebCoreTestSupport.cpp:
102157        (WebCoreTestSupport::injectInternalsObject):
102158        (WebCoreTestSupport::resetInternalsObject):
102159        * testing/v8/WebCoreTestSupport.cpp:
102160        (WebCoreTestSupport::injectInternalsObject):
102161        (WebCoreTestSupport::resetInternalsObject):
102162
1021632012-07-11  Yoshifumi Inoue  <yosin@chromium.org>
102164
102165        [Mac] Expose time format related functions
102166        https://bugs.webkit.org/show_bug.cgi?id=90956
102167
102168        Reviewed by Kent Tamura.
102169
102170        This patch introduces localizedTimeFormatText, localizedShortTimeFormatText
102171        and timeAMPMLabels for Mac within feature flag ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
102172
102173        See also:
102174          ICU version: https://bugs.webkit.org/show_bug.cgi?id=89965
102175          Win version: https://bugs.webkit.org/show_bug.cgi?id=90236
102176
102177        No new tests. This patch doesn't change behavior.
102178
102179        * platform/text/mac/LocalizedDateMac.cpp:
102180        (WebCore::localizedTimeFormatText): Added.
102181        (WebCore::localizedShortTimeFormatText): Added.
102182        (WebCore::timeAMPMLabels): Added.
102183
1021842012-07-11  Kenichi Ishibashi  <bashi@chromium.org>
102185
102186        [Chromium] Adding HarfBuzz-ng for Linux
102187        https://bugs.webkit.org/show_bug.cgi?id=90362
102188
102189        Reviewed by Tony Chang.
102190
102191        This patch adds harfbuzz-ng support for Chromium Linux port as a part of
102192        transition from old harfbuzz. HarfBuzzFaceSkia.cpp implements harfbuzz-ng
102193        callbacks by using Skia APIs. For now, the feature is enabled only when
102194        WTF_USE_HARFBUZZ_NG is defined.
102195
102196        No new tests. No change in behavior now.
102197
102198        * WebCore.gyp/WebCore.gyp: Added use_harfbuzz_ng variable and related files.
102199        * WebCore.gypi: Added HarfBuzzFaceSkia.cpp
102200        * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Added USE(HARFBUZZ_NG).
102201        (WebCore::Font::drawComplexText):
102202        (WebCore::Font::floatWidthForComplexText):
102203        (WebCore::Font::offsetForPositionForComplexText):
102204        (WebCore::Font::selectionRectForComplexText):
102205        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Ditto.
102206        (WebCore):
102207        (WebCore::FontPlatformData::harfbuzzFace):
102208        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Ditto.
102209        (FontPlatformData):
102210        * platform/graphics/harfbuzz/ng/HarfBuzzFaceSkia.cpp: Added.
102211        (WebCore):
102212        (WebCore::SkiaScalarToHarfbuzzPosition):
102213        (WebCore::SkiaGetGlyphWidthAndExtents):
102214        (WebCore::harfbuzzGetGlyph):
102215        (WebCore::harfbuzzGetGlyphHorizontalAdvance):
102216        (WebCore::harfbuzzGetGlyphHorizontalOrigin):
102217        (WebCore::harfbuzzGetGlyphExtents):
102218        (WebCore::harfbuzzSkiaGetFontFuncs):
102219        (WebCore::harfbuzzSkiaGetTable):
102220        (WebCore::destroyPaint):
102221        (WebCore::HarfBuzzFace::createFace):
102222        (WebCore::HarfBuzzFace::createFont):
102223        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
102224        * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Added USE(HARFBUZZ_NG).
102225        (WebCore::substituteWithVerticalGlyphs):
102226
1022272012-07-11  Taiju Tsuiki  <tzik@chromium.org>
102228
102229        Web Inspector: Clean up FileSystem related code
102230        https://bugs.webkit.org/show_bug.cgi?id=90592
102231
102232        Reviewed by Vsevolod Vlasov.
102233
102234        Clean up FileSystem related code in Inspector as follows:
102235        - Clean up layout tests and add test case for error case,
102236        - Fix error handling on request,
102237        - s/GetFileSystemRootTask/FileSystemRootRequest/g
102238        - s/ReadDirectoryTask/DirectoryContentRequest/g
102239        - s/ReadFileTask/FileContentRequest/g
102240
102241        Tests: http/tests/inspector/filesystem/request-directory-content.html
102242               http/tests/inspector/filesystem/request-file-content.html
102243               http/tests/inspector/filesystem/request-filesystem-root.html
102244               http/tests/inspector/filesystem/request-metadata.html
102245
102246        * inspector/InspectorFileSystemAgent.cpp:
102247        (WebCore):
102248        (WebCore::InspectorFileSystemAgent::requestFileSystemRoot): Add early error handling.
102249        (WebCore::InspectorFileSystemAgent::requestDirectoryContent): Add early error handling.
102250        (WebCore::InspectorFileSystemAgent::requestMetadata): Add early error handling.
102251        (WebCore::InspectorFileSystemAgent::requestFileContent): Add early error handling.
102252        * inspector/InspectorFileSystemAgent.h: Remove unused forward declaration and unused header.
102253        (WebCore):
102254        (InspectorFileSystemAgent):
102255        * inspector/front-end/FileSystemModel.js:
102256        (WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot.requestAccepted):
102257        (WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot): Add early error handling.
102258        (WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent.requestAccepted):
102259        (WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent): Add early error handling.
102260        (WebInspector.FileSystemRequestManager.prototype.requestMetadata.requestAccepted):
102261        (WebInspector.FileSystemRequestManager.prototype.requestMetadata): Add early error handling.
102262        (WebInspector.FileSystemRequestManager.prototype.requestFileContent.requestAccepted):
102263        (WebInspector.FileSystemRequestManager.prototype.requestFileContent): Add early error handling.
102264
1022652012-07-09  Eugene Klyuchnikov  <eustas.bug@gmail.com>
102266
102267        Web Inspector: Forward message loop instrumentation data to frontend.
102268        https://bugs.webkit.org/show_bug.cgi?id=89584
102269
102270        Reviewed by Yury Semikhatsky.
102271
102272        Transmit collected message loop tasks to inspector frontend.
102273        Now "Program" should be a top-level event on browsers that
102274        support message loop instrumentation.
102275        Frontend was changed so that user will not see any changes.
102276
102277        * inspector/InspectorTimelineAgent.cpp:
102278        (TimelineRecordType):
102279        Added new event type - "Program"
102280        (WebCore::InspectorTimelineAgent::willProcessTask):
102281        Begin "Program" event.
102282        (WebCore::InspectorTimelineAgent::didProcessTask):
102283        Finish "Program" event.
102284        (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
102285        Do not add counters to "Program" events.
102286        (WebCore):
102287        (WebCore::InspectorTimelineAgent::innerSetHeapSizeStatistic):
102288        Renamed from "setHeapSizeStatistic"
102289        * inspector/InspectorTimelineAgent.h:
102290        (InspectorTimelineAgent):
102291        * inspector/front-end/MemoryStatistics.js:
102292        (WebInspector.MemoryStatistics.prototype._onRecordAdded):
102293        Unwraps "Program" events.
102294        (WebInspector.MemoryStatistics.prototype._innerRecordAdded):
102295        Renamed from "_onRecordAdded"
102296        * inspector/front-end/TimelineFrameController.js:
102297        (WebInspector.TimelineFrameController.prototype._addRecord):
102298        Unwraps "Program" events.
102299        (WebInspector.TimelineFrameController.prototype._innerAddRecord):
102300        Renamed from "_addRecord"
102301        * inspector/front-end/TimelineModel.js:
102302        * inspector/front-end/TimelineOverviewPane.js:
102303        (WebInspector.TimelineCategoryStrips.prototype.update.appendRecord):
102304        Filter out "Program" category.
102305        (WebInspector.TimelineCategoryStrips.prototype.update):
102306        * inspector/front-end/TimelinePanel.js:
102307        (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
102308        Filter out "Program" category.
102309        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
102310        Unwraps "Program" events.
102311        * inspector/front-end/TimelinePresentationModel.js:
102312        (WebInspector.TimelinePresentationModel.categories):
102313        Added "Program" category.
102314        (WebInspector.TimelinePresentationModel.recordStyle):
102315        Ditto.
102316        (WebInspector.TimelinePresentationModel.prototype.addRecord):
102317        Unwraps "Program" events.
102318        (WebInspector.TimelinePresentationModel.prototype._addRecord):
102319        Renamed from "addRecord"
102320
1023212012-07-11  Kenichi Ishibashi  <bashi@chromium.org>
102322
102323        [Chromium] Adding HarfBuzz-ng for Linux
102324        https://bugs.webkit.org/show_bug.cgi?id=90362
102325
102326        Reviewed by Tony Chang.
102327
102328        This patch adds harfbuzz-ng support for Chromium Linux port as a part of
102329        transition from old harfbuzz. HarfBuzzFaceSkia.cpp implements harfbuzz-ng
102330        callbacks by using Skia APIs. For now, the feature is enabled only when
102331        WTF_USE_HARFBUZZ_NG is defined.
102332
102333        No new tests. No change in behavior now.
102334
102335        * WebCore.gyp/WebCore.gyp: Added use_harfbuzz_ng variable and related files.
102336        * WebCore.gypi: Added HarfBuzzFaceSkia.cpp
102337        * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Added USE(HARFBUZZ_NG).
102338        (WebCore::Font::drawComplexText):
102339        (WebCore::Font::floatWidthForComplexText):
102340        (WebCore::Font::offsetForPositionForComplexText):
102341        (WebCore::Font::selectionRectForComplexText):
102342        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Ditto.
102343        (WebCore):
102344        (WebCore::FontPlatformData::harfbuzzFace):
102345        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Ditto.
102346        (FontPlatformData):
102347        * platform/graphics/harfbuzz/ng/HarfBuzzFaceSkia.cpp: Added.
102348        (WebCore):
102349        (WebCore::SkiaScalarToHarfbuzzPosition):
102350        (WebCore::SkiaGetGlyphWidthAndExtents):
102351        (WebCore::harfbuzzGetGlyph):
102352        (WebCore::harfbuzzGetGlyphHorizontalAdvance):
102353        (WebCore::harfbuzzGetGlyphHorizontalOrigin):
102354        (WebCore::harfbuzzGetGlyphExtents):
102355        (WebCore::harfbuzzSkiaGetFontFuncs):
102356        (WebCore::harfbuzzSkiaGetTable):
102357        (WebCore::destroyPaint):
102358        (WebCore::HarfBuzzFace::createFace):
102359        (WebCore::HarfBuzzFace::createFont):
102360        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
102361        * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Added USE(HARFBUZZ_NG).
102362        (WebCore::substituteWithVerticalGlyphs):
102363
1023642012-07-11  Kenneth Russell  <kbr@google.com>
102365
102366        compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
102367        https://bugs.webkit.org/show_bug.cgi?id=82412
102368
102369        Reviewed by Adrienne Walker.
102370
102371        When compositing premultipliedAlpha=false WebGL canvases, use a separate
102372        blend function for the alpha channel to avoid writing alpha < 1. This
102373        makes the behavior more consistent with all other compositing results
102374        and avoids situations where the alpha channel is preserved on some
102375        platforms and discarded on others.
102376
102377        Covered by existing tests.
102378
102379        * platform/graphics/chromium/LayerRendererChromium.cpp:
102380        (WebCore::LayerRendererChromium::drawTextureQuad):
102381            Use separate alpha blend function when compositing premultipliedAlpha=false WebGL canvases.
102382
1023832012-07-10  Yoshifumi Inoue  <yosin@chromium.org>
102384
102385        [Chromium-Windows] Implement functions for localized time format information
102386        https://bugs.webkit.org/show_bug.cgi?id=90236
102387
102388        Reviewed by Kent Tamura.
102389
102390        This patch introduces following localized time format related
102391        functions:
102392            - localizedTimeFormatText
102393            - localizeShortTimeFormatText()
102394            - timeAMPMLabels
102395        for Windows in feature flag: ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
102396
102397        See also:
102398          ICU version: https://bugs.webkit.org/show_bug.cgi?id=89965
102399          Mac version: https://bugs.webkit.org/show_bug.cgi?id=90237
102400
102401        Tests: WebKit/chromium/tests/LocalWinTest.cpp
102402
102403        * platform/text/LocaleWin.cpp:
102404        (WebCore::mapCharacterToDateTimeFieldType): Added.
102405        (WebCore::convertWindowsTimeFormatToLDML): Added.
102406        (WebCore::LocaleWin::timeFormatText): Added.
102407        (WebCore::LocaleWin::shortTimeFormatText): Added.
102408        (WebCore::LocaleWin::timeAMPMLabels): Added.
102409        * platform/text/LocaleWin.h:
102410        (LocaleWin): Added time format related functions and variables.
102411        * platform/text/LocalizedDateWin.cpp:
102412        (WebCore::localizedTimeFormatText): Added.
102413        (WebCore::localizedShortTimeFormatText):  Added.
102414        (WebCore::timeAMPMLabels):  Added.
102415
1024162012-07-10  Douglas Stockwell  <dstockwell@chromium.org>
102417
102418        Style not updated for element with display:none becoming first/last-child
102419        https://bugs.webkit.org/show_bug.cgi?id=90356
102420
102421        Reviewed by Kent Tamura.
102422
102423        Always trigger style recalc when an element without a renderer becomes the first/last-child.
102424
102425        Tests: fast/css/first-child-display-change.html
102426               fast/css/last-child-display-change.html
102427
102428        * dom/Element.cpp:
102429        (WebCore::checkForSiblingStyleChanges):
102430
1024312012-07-10  Shinya Kawanaka  <shinyak@chromium.org>
102432
102433        ShadowRoot should know its type in debug build.
102434        https://bugs.webkit.org/show_bug.cgi?id=90933
102435
102436        Reviewed by Hajime Morita.
102437
102438        For assertion, ShadowRoot should know its type is UserAgentShadowRoot or AuthorShadowRoot.
102439
102440        This patch also renames ShadowRootCreationPurpose to ShadowRootType, since it is suitable
102441        name for ShadowRoot to have.
102442
102443        No new tests, since it is used only for assertion.
102444
102445        * dom/Element.cpp:
102446        (WebCore::Element::ensureShadowRoot):
102447        * dom/ShadowRoot.cpp:
102448        (WebCore::ShadowRoot::create):
102449        * dom/ShadowRoot.h:
102450        (ShadowRoot):
102451        (WebCore::ShadowRoot::type):
102452        * html/HTMLDetailsElement.cpp:
102453        (WebCore::HTMLDetailsElement::createShadowSubtree):
102454        * html/HTMLInputElement.cpp:
102455        (WebCore::HTMLInputElement::createShadowSubtree):
102456        * html/HTMLKeygenElement.cpp:
102457        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
102458        * html/HTMLMeterElement.cpp:
102459        (WebCore::HTMLMeterElement::createShadowSubtree):
102460        * html/HTMLProgressElement.cpp:
102461        (WebCore::HTMLProgressElement::createShadowSubtree):
102462        * html/HTMLSummaryElement.cpp:
102463        (WebCore::HTMLSummaryElement::createShadowSubtree):
102464        * html/HTMLTextAreaElement.cpp:
102465        (WebCore::HTMLTextAreaElement::createShadowSubtree):
102466        * html/InputType.cpp:
102467        (WebCore::InputType::destroyShadowSubtree): Asserts that ShadowRoot type is UserAgentShadowRoot.
102468        * html/shadow/TextFieldDecorationElement.cpp:
102469        (WebCore::getDecorationRootAndDecoratedRoot):
102470        * svg/SVGTRefElement.cpp:
102471        (WebCore::SVGTRefElement::createShadowSubtree):
102472
1024732012-07-10  George Staikos  <staikos@webkit.org>
102474
102475        Add missing binding type String for IndexedDB.
102476        https://bugs.webkit.org/show_bug.cgi?id=90351
102477
102478        Reviewed by Nikolas Zimmermann.
102479
102480        No new tests because it's already covered by IDB tests.
102481
102482        * bindings/js/JSIDBAnyCustom.cpp:
102483        (WebCore::toJS):
102484
1024852012-07-10  Brian Anderson  <brianderson@chromium.org>
102486
102487        [chromium] Make full texture updates explicit
102488        https://bugs.webkit.org/show_bug.cgi?id=90507
102489
102490        Reviewed by Adrienne Walker.
102491
102492        Covered by existing tests.
102493
102494        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
102495        (WebCore::ScrollbarLayerChromium::updatePart):
102496        * platform/graphics/chromium/TiledLayerChromium.cpp:
102497        (WebCore::TiledLayerChromium::updateTiles):
102498        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
102499        (WebCore::CCTextureUpdater::appendFullUpdate):
102500        (WebCore::CCTextureUpdater::hasMoreUpdates):
102501        (WebCore::CCTextureUpdater::update):
102502        (WebCore::CCTextureUpdater::clear):
102503        * platform/graphics/chromium/cc/CCTextureUpdater.h:
102504        (CCTextureUpdater):
102505
1025062012-07-10  Shinya Kawanaka  <shinyak@chromium.org>
102507
102508        Crash in nextLinePosition() due to accessing a removed root line box.
102509        https://bugs.webkit.org/show_bug.cgi?id=90484
102510
102511        Reviewed by Abhishek Arya.
102512
102513        When <object> element is reattached, the 'content' style is compared to the old style.
102514        If it is not the same, a flag to recalc style is enabled. Because of this, the recalc style flag
102515        is not cleared in updateLayoutIgnorePendingStyleSheets() in nextLinePosition(), and it causes
102516        the second layout in isEditablePosition(p). Then 'RootInlineBox root' is invalidated, but
102517        it's used after that.
102518
102519        When the content of the same <object> elements are compared, they should be the same.
102520        However, operator== for ContentData is not implemented correctly (it compares a pointer instead of
102521        content). So operator== does not hold for the content of the same <object> elements.
102522
102523        Test: editing/execCommand/crash-extend-selection-forward.html
102524
102525        * rendering/style/ContentData.cpp:
102526        (WebCore::operator==): Compares the instance of data instead of pointer.
102527
1025282012-07-10  Joshua Bell  <jsbell@chromium.org>
102529
102530        IndexedDB: Ensure transaction abort events are deterministic in multiprocess ports
102531        https://bugs.webkit.org/show_bug.cgi?id=90412
102532
102533        Reviewed by Tony Chang.
102534
102535        In multi-process ports (e.g. Chromium), transaction aborts triggered on the front-end could 
102536        be initiated while a "success" event was in-flight from the back end. This would lead to 
102537        apparently flaky behavior when requests would sometimes report success and sometimes report
102538        an error. Address this by having front-end triggered aborts do the abort steps immediately,
102539        then send the async abort request to the back end.
102540
102541        No new tests - behavior in single process ports (and DRT) covered by existing
102542        tests. Will enable currently disabled Chromium tests to be enabled (crbug.com/83226).
102543
102544        * Modules/indexeddb/IDBRequest.cpp:
102545        (WebCore::IDBRequest::IDBRequest): Initialize a new m_requestAborted flag, used to prevent
102546        dispatching if an in-flight request comes in after the abort.
102547        (WebCore::IDBRequest::abort): Set flag to prevent double dispatching.
102548        (WebCore::IDBRequest::onError): Handle aborted-then-received-event case.
102549        (WebCore::IDBRequest::onSuccess): Ditto.
102550        (WebCore::IDBRequest::onSuccessWithContinuation): Ditto.
102551        (WebCore::IDBRequest::dispatchEvent): On uncaught error, trigger abort on transaction front-end.
102552        * Modules/indexeddb/IDBRequest.h:
102553        (IDBRequest):
102554        * Modules/indexeddb/IDBTransaction.cpp:
102555        (WebCore::IDBTransaction::abort): Do abort steps locally first, then notify back-end.
102556        (WebCore::IDBTransaction::onAbort): If abort wasn't triggered locally, clean up is still necessary.
102557
1025582012-07-10  Julien Chaffraix  <jchaffraix@webkit.org>
102559
102560        REGRESSION(r112113): absolutely positioned INPUT boxes with a table cell containing block have a 0px height
102561        https://bugs.webkit.org/show_bug.cgi?id=89209
102562
102563        Reviewed by Ojan Vafai.
102564
102565        Test: fast/forms/input-in-table-cell-no-value.html
102566
102567        The issue comes from the layout code not properly resetting the overriden heigth between layouts.
102568
102569        The test case relies on a table cell as it requires a 2 pass layout. Between the 2 passes, different
102570        code paths would be taken, leading to previous values being used to over-constrain the inner content.
102571
102572        * rendering/RenderTextControlSingleLine.cpp:
102573        (WebCore::RenderTextControlSingleLine::layout):
102574        Ensure consistent layout by resetting any overriden conditional height.
102575
1025762012-07-10  Kevin Ellis  <kevers@chromium.org>
102577
102578        Input elements with type=range do not have default touch handlers.
102579        https://bugs.webkit.org/show_bug.cgi?id=88807
102580
102581        Reviewed by Antonio Gomes.
102582
102583        This patch adds support for touch event handling on input elements
102584        and dragging a slider with touch start and move events.  Previously,
102585        manipulating a slider on a touch screen required generation of
102586        synthetic mouse events.
102587
102588        Tests: fast/events/touch/touch-slider-no-js-touch-listener.html
102589               fast/events/touch/touch-slider.html
102590
102591        * dom/Event.cpp:
102592        (WebCore::Event::isTouchEvent):
102593        (WebCore):
102594        * dom/Event.h:
102595        (Event):
102596        * dom/Touch.cpp:
102597        (WebCore::Touch::Touch):
102598        * dom/Touch.h:
102599        (WebCore::Touch::absoluteLocation):
102600        (Touch):
102601        * dom/TouchEvent.cpp:
102602        (WebCore::TouchEvent::isTouchEvent):
102603        (WebCore):
102604        * dom/TouchEvent.h:
102605        (TouchEvent):
102606        * html/HTMLInputElement.cpp:
102607        (WebCore::HTMLInputElement::HTMLInputElement):
102608        (WebCore::HTMLInputElement::~HTMLInputElement):
102609        (WebCore::HTMLInputElement::updateType):
102610        (WebCore::HTMLInputElement::defaultEventHandler):
102611        * html/HTMLInputElement.h:
102612        (HTMLInputElement):
102613        * html/InputType.cpp:
102614        (WebCore):
102615        (WebCore::InputType::handleTouchEvent):
102616        (WebCore::InputType::hasTouchEventHandler):
102617        * html/InputType.h:
102618        (WebCore):
102619        (ClickHandlingState):
102620        (InputType):
102621        * html/RangeInputType.cpp:
102622        (WebCore):
102623        (WebCore::RangeInputType::handleTouchEvent):
102624        (WebCore::RangeInputType::hasTouchEventHandler):
102625        * html/RangeInputType.h:
102626        (RangeInputType):
102627        * html/shadow/SliderThumbElement.h:
102628        (SliderThumbElement):
102629
1026302012-07-10  Pravin D  <pravind.2k4@gmail.com>
102631
102632        Re-factoring recalcColumn in AutoTableLayout.cpp for readability
102633        https://bugs.webkit.org/show_bug.cgi?id=89636
102634
102635        Reviewed by Julien Chaffraix.
102636
102637        No test case required. Code re-factoring.
102638
102639        * rendering/AutoTableLayout.cpp:
102640        Added a const integer place holder for 32760.
102641
102642        (WebCore::AutoTableLayout::recalcColumn):
102643         Changes :
102644         1) Moved the continue statement above the bool cellHasContent for an early return.
102645         2) Replaced the constant 32760 by a placeholder.
102646         3) Initialization of columnLayout max and min logical widths is made common for both cells having col span == 1 and span > 1.
102647         4) Removed redundant check for cell logical width type. 
102648
1026492012-07-10  Adam Barth  <abarth@webkit.org>
102650
102651        WebCore::Settings for Hixie76 WebSocket protocol doesn't do anything and should be removed
102652        https://bugs.webkit.org/show_bug.cgi?id=90910
102653
102654        Reviewed by Eric Seidel.
102655
102656        We've already removed the code that implements Hixie76 WebSockets. This
102657        patch just removes the WebCore::Setting that used to control which
102658        WebSocket protocol version we'd use.
102659
102660        I've left the WebKit-layer APIs in place, but they now don't do
102661        anything.  I'll remove all the Chromium callers shortly.
102662
102663        * page/Settings.cpp:
102664        (WebCore::Settings::Settings):
102665        * page/Settings.h:
102666        (Settings):
102667
1026682012-07-10  Philip Rogers  <pdr@google.com>
102669
102670        Crash due to SVG animation element not removed from target (before reset)
102671        https://bugs.webkit.org/show_bug.cgi?id=90750
102672
102673        Reviewed by Abhishek Arya.
102674
102675        Previously we were not removing an animation element from
102676        SVGDocumentExtensions::m_animatedElements which led to a crash.
102677        This change properly removes animation elements in resetTargetElement
102678        which both fixes this bug and will prevent others from hitting it in
102679        the future.
102680
102681        Test: svg/animations/dynamic-modify-attributename-crash2.svg
102682
102683        * svg/SVGDocumentExtensions.cpp:
102684        (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
102685
102686        removeAllAnimationElementsFromTarget now adds all the animation elements
102687        to a vector and iterates over it because the changes to resetTargetElement
102688        would have caused us to modify the underlying hashset as we iterated. Note that
102689        before we deleted animationElementsForTarget in removeAllAnimationElementsFromTarget
102690        but that logic is now handled in removeAnimationElementFromTarget which is called
102691        during resetTargetElement.
102692
102693        * svg/animation/SVGSMILElement.cpp:
102694        (WebCore::SVGSMILElement::removedFrom):
102695
102696        Because of the changes in resetTargetElement, removedFrom was able to be
102697        refactored. This patch changes removedFrom to call resetTargetElement rather
102698        than have duplicated logic. There is a very small change in logic here:
102699        animationAttributeChanged() is now called in removedFrom().
102700
102701        (WebCore::SVGSMILElement::resetTargetElement):
102702
102703        resetTargetElement now fully resets the target, including removing it from
102704        m_animatedElements. This will prevent future instances of this bug.
102705
1027062012-07-10  Helder Correia  <helder.correia@nokia.com>
102707
102708        [Qt] Repaint counter for accelerated compositing
102709        https://bugs.webkit.org/show_bug.cgi?id=90116
102710
102711        Reviewed by Noam Rosenthal.
102712
102713        No new tests, just introducing a debug feature.
102714
102715        For this feature to be enabled, the environment variable
102716        QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
102717        both repaint counters and tile borders will be painted.
102718
102719        Important notes:
102720        - Only WebKit2 is targetted for now.
102721        - There is no integration with Preferences. That aproach was
102722        taken initially but revealed complex and overkill for such a
102723        debugging-only functionality. Thus, to disable it simply restart with
102724        the environment variable unset or set to some other value.
102725
102726        A Qt-specific drawRepaintCounter() function was added to
102727        TextureMapperGL. A QImage is used as scratch buffer to paint borders and
102728        counters. It is then uploaded to a BitmapTexture acquired from the pool
102729        and finally draw by TextureMapper. The actual compositing happens inside
102730        LayerBackingStore::paintToTextureMapper(). Each LayerBackingStoreTile
102731        now has a repaint counter which gets incremented in
102732        LayerBackingStore::updateTile().
102733
102734        * platform/graphics/texmap/TextureMapper.h:
102735        * platform/graphics/texmap/TextureMapperGL.cpp:
102736        (WebCore):
102737        (WebCore::TextureMapperGL::drawRepaintCounter):
102738        * platform/graphics/texmap/TextureMapperGL.h:
102739        * platform/graphics/texmap/TextureMapperImageBuffer.h:
102740
1027412012-07-09  Dana Jansens  <danakj@chromium.org>
102742
102743        [chromium] Replace use of ManagedTexture with CCScopedTexture for impl thread and remove implTextureManager from LayerRendererChromium
102744        https://bugs.webkit.org/show_bug.cgi?id=90841
102745
102746        Reviewed by Adrienne Walker.
102747
102748        Remove the TextureManager from LayerRendererChromium, which was the last
102749        instance of the class in the compositor. Instead of using ManagedTexture
102750        objects for RenderPass textures, use instances of CCScopedTexture, which
102751        manage the lifetime of the allocated texture ids. TextureManager will be
102752        removed entirely once all callers of memoryUseBytes() have been removed.
102753
102754        No new tests. No change in behaviour.
102755
102756        * platform/graphics/chromium/LayerRendererChromium.cpp:
102757        (WebCore::LayerRendererChromium::LayerRendererChromium):
102758        (WebCore::LayerRendererChromium::releaseRenderPassTextures):
102759        (WebCore):
102760        (WebCore::LayerRendererChromium::renderPassTextureSize):
102761        (WebCore::LayerRendererChromium::renderPassTextureFormat):
102762        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
102763        (WebCore::LayerRendererChromium::haveCachedResourcesForRenderPassId):
102764        (WebCore::LayerRendererChromium::drawQuad):
102765        (WebCore::applyFilters):
102766        (WebCore::LayerRendererChromium::drawBackgroundFilters):
102767        (WebCore::LayerRendererChromium::drawRenderPassQuad):
102768        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
102769        (WebCore::LayerRendererChromium::getFramebufferTexture):
102770        (WebCore::LayerRendererChromium::isCurrentRenderPass):
102771        (WebCore::LayerRendererChromium::useRenderPass):
102772        (WebCore::LayerRendererChromium::useScopedTexture):
102773        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
102774        (WebCore::LayerRendererChromium::initializeSharedObjects):
102775        * platform/graphics/chromium/LayerRendererChromium.h:
102776        (WebCore):
102777        (LayerRendererChromium):
102778        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
102779        (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
102780        (WebCore::TrackingTextureAllocator::createTexture):
102781        * platform/graphics/chromium/TrackingTextureAllocator.h:
102782        (WebCore::TrackingTextureAllocator::create):
102783        (TrackingTextureAllocator):
102784        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
102785        (WebCore::CCHeadsUpDisplay::draw):
102786        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
102787        (WebCore):
102788        (CCHeadsUpDisplay):
102789        * platform/graphics/chromium/cc/CCRenderer.h:
102790        (WebCore):
102791        (CCRenderer):
102792
1027932012-07-10  Dean Jackson  <dino@apple.com>
102794
102795        REGRESSION (r109610): Order of values in shorthand animation makes a difference
102796        https://bugs.webkit.org/show_bug.cgi?id=84533
102797        <rdar://problem/11831924>
102798        <rdar://problem/11815787>
102799
102800        Reviewed by Simon Fraser.
102801
102802        A previous revision (r109610) updated the parsing of the animation shorthand
102803        to make sure that animation-name wouldn't clobber other styles. The side effect
102804        of this was that we'd no longer find animation-name if it wasn't first in the
102805        list. This commit reverts the change and fixes it in a different way, by always
102806        parsing animation-name as the last property in the shorthand. This means that
102807        keywords for timing functions, fill modes and iteration will match before
102808        animation name. In other words, if you want an animation called "forwards"
102809        you should use the longhand property, because the shorthand will first match
102810        that against animation-fill-mode.
102811
102812        Test: animations/animation-shorthand-name-order.html
102813
102814        * css/CSSParser.cpp:
102815        (WebCore::CSSParser::parseAnimationShorthand): make a new array of longhand
102816        properties to check for, with name as the last entry rather than the first.
102817        Use this array to test the properties in the shorthand.
102818
1028192012-07-10  Huang Dongsung  <luxtella@company100.net>
102820
102821        Fix a potential bug of BitmapImage::frameCount().
102822        https://bugs.webkit.org/show_bug.cgi?id=90756
102823
102824        Reviewed by Simon Fraser.
102825
102826        If an ImageDecoder is not yet initialized, m_source.frameCount() returns 0. This
102827        does not mean that the frame count is actually 0. So we must set
102828        m_haveFrameCount to true only when m_frameCount is not 0.
102829
102830        The current code is okay because BitmapImage::frameCount() is never called
102831        before the decoder is initialized. However, this no longer holds true once we
102832        introduce parallel image decoders.
102833
102834        No new tests, no behavior change.
102835
102836        * platform/graphics/BitmapImage.cpp:
102837        (WebCore::BitmapImage::frameCount):
102838
1028392012-07-10  Ojan Vafai  <ojan@chromium.org>
102840
102841        Build fix. Removing unused variable from http://trac.webkit.org/changeset/122264.
102842        * rendering/RenderBox.cpp:
102843        (WebCore::RenderBox::computeContentLogicalHeightUsing):
102844
1028452012-07-10  Ryosuke Niwa  <rniwa@webkit.org>
102846
102847        HTMLPropertiesCollection should share more code with HTMLCollection
102848        https://bugs.webkit.org/show_bug.cgi?id=90842
102849
102850        Reviewed by Anders Carlsson.
102851
102852        Got rid of HTMLPropertiesCollection::m_cache, and added m_itemRefElements, m_propertyNames, m_propertyCache,
102853        m_hasPropertyNameCache, and m_hasItemRefElements to HTMLPropertiesCollection itself. These are caches specific
102854        to HTMLPropertiesCollection. Note that hasNameCache has been renamed to m_hasPropertyNameCache and itemRefElementPosition
102855        has been replaced by cachedElementsArrayOffset() in HTMLCollectionCacheBase (also used in HTMLFormCollection).
102856
102857        Also deleted all methods on m_cache except updatePropertyCache since caches can be accessed directly from
102858        HTMLPropertiesCollection.
102859
102860        * html/HTMLCollection.cpp:
102861        (WebCore::HTMLCollection::invalidateCacheIfNeeded):
102862        (WebCore::HTMLCollection::invalidateCache):
102863        * html/HTMLCollection.h:
102864        (HTMLCollection):
102865        * html/HTMLPropertiesCollection.cpp:
102866        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
102867        (WebCore):
102868        (WebCore::HTMLPropertiesCollection::updateRefElements):
102869        (WebCore::HTMLPropertiesCollection::itemAfter):
102870        (WebCore::HTMLPropertiesCollection::calcLength):
102871        (WebCore::HTMLPropertiesCollection::cacheFirstItem):
102872        (WebCore::HTMLPropertiesCollection::item):
102873        (WebCore::HTMLPropertiesCollection::findProperties):
102874        (WebCore::HTMLPropertiesCollection::updateNameCache):
102875        (WebCore::HTMLPropertiesCollection::names):
102876        (WebCore::HTMLPropertiesCollection::namedItem):
102877        (WebCore::HTMLPropertiesCollection::hasNamedItem):
102878        * html/HTMLPropertiesCollection.h:
102879        (HTMLPropertiesCollection):
102880        (WebCore::HTMLPropertiesCollection::clearCache):
102881        (WebCore::HTMLPropertiesCollection::updatePropertyCache):
102882
1028832012-07-10  Ojan Vafai  <ojan@chromium.org>
102884
102885        Add support for min-height:auto and min-width:auto
102886        https://bugs.webkit.org/show_bug.cgi?id=88437
102887
102888        Reviewed by Tony Chang.
102889
102890        Right now auto does the same thing as min-height/min-width:0.
102891        For flex-items it should be the same as min-content (followup patch).
102892        http://dev.w3.org/csswg/css3-flexbox/#min-size-auto
102893
102894        Tests: fast/css/auto-min-size.html
102895               fast/css/deprecated-flexbox-auto-min-size.html
102896
102897        * WebCore.order:
102898        * css/CSSComputedStyleDeclaration.cpp:
102899        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
102900        Return 0px for the computed value of auto.
102901
102902        * css/CSSParser.cpp:
102903        (WebCore::CSSParser::validWidth):
102904        (WebCore):
102905        (WebCore::CSSParser::validHeight):
102906        (WebCore::CSSParser::parseValue):
102907        * css/CSSParser.h:
102908        (CSSParser):
102909        Restructure width/height parsing to reduce code duplication and make it easier
102910        to add auto as a valid min value.
102911
102912        * platform/efl/RenderThemeEfl.cpp:
102913        (WebCore::RenderThemeEfl::adjustSizeConstraints):
102914        This code was unnecessarily checking intrinsicOrAuto since auto was previously
102915        not an allowed value for minWidth/minHeight.
102916
102917        * rendering/RenderBox.cpp:
102918        (WebCore::RenderBox::computeLogicalWidthInRegion):
102919        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
102920        (WebCore::RenderBox::sizesLogicalWidthToFitContent):
102921        (WebCore::RenderBox::computeLogicalHeight):
102922        (WebCore::RenderBox::computeLogicalHeightUsing):
102923        (WebCore::RenderBox::computeContentLogicalHeightUsing):
102924        (WebCore::RenderBox::computeReplacedLogicalWidth):
102925        (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
102926        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
102927        (WebCore::RenderBox::computeReplacedLogicalHeight):
102928        (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
102929        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
102930        (WebCore::RenderBox::computePositionedLogicalWidth):
102931        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
102932        (WebCore::RenderBox::computePositionedLogicalHeight):
102933        (WebCore::RenderBox::computePositionedLogicalHeightUsing):
102934        Need to pass a SizeType to all these methods so that we know if the Length
102935        we're working with is a min length since auto has a different meaning now
102936        for min lengths.
102937
102938        * rendering/RenderBox.h:
102939        (RenderBox):
102940        * rendering/RenderDeprecatedFlexibleBox.cpp:
102941        (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
102942        * rendering/RenderFlexibleBox.cpp:
102943        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
102944        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
102945        (WebCore::RenderFlexibleBox::lineBreakLength):
102946        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
102947        * rendering/RenderReplaced.cpp:
102948        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
102949        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
102950        * rendering/RenderScrollbarPart.cpp:
102951        (WebCore::calcScrollbarThicknessUsing):
102952        (WebCore::RenderScrollbarPart::computeScrollbarWidth):
102953        (WebCore::RenderScrollbarPart::computeScrollbarHeight):
102954        * rendering/style/RenderStyle.h:
102955        Default minHeight/minWidth to auto instead of 0px.
102956
1029572012-07-10  Xianzhu Wang  <wangxianzhu@chromium.org>
102958
102959        [Chromium-Android] Use default font rendering styles in FontPlatformData::querySystemForRenderStyle()
102960        https://bugs.webkit.org/show_bug.cgi?id=90826
102961
102962        Reviewed by Adam Barth.
102963
102964        No new tests. The change to this file is refactoring only.
102965
102966        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
102967        (WebCore::FontPlatformData::querySystemForRenderStyle): Moved the "NoPreference" initialization into PlatformSupport::PlatformSupport::getRenderStyleForStrike().
102968
1029692012-07-10  Raymond Toy  <rtoy@google.com>
102970
102971        AudioFIFO not correctly wrapping the write index on push
102972        https://bugs.webkit.org/show_bug.cgi?id=90901
102973
102974        Reviewed by Chris Rogers.
102975
102976        No new tests
102977
102978        * platform/audio/AudioFIFO.cpp:
102979        (WebCore::AudioFIFO::push): Wrap the write index, not read index!
102980
1029812012-07-10  Dana Jansens  <danakj@chromium.org>
102982
102983        [chromium] Avoid allocating render pass textures that have no content
102984        https://bugs.webkit.org/show_bug.cgi?id=90702
102985
102986        Reviewed by Adrienne Walker.
102987
102988        When OOM conditions are hit, textures are not allocated for some layers
102989        which can prevent any quads from being present for a render surface.
102990        This is used as a signal to prevent the RenderPass from allocating a
102991        texture.
102992
102993        Replace the CCLayerTreeHostImpl::removePassesWithCachedTextures() method
102994        with a general removeRenderPasses() which takes a culling control object
102995        and will remove passes based on the inputs from the control object.
102996
102997        This new method is used for the old purpose of removing passes with cached
102998        textures, as well as to remove passes that do not have any quad inputs.
102999
103000        Test: CCLayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit
103001
103002        * platform/graphics/chromium/LayerRendererChromium.cpp:
103003        (WebCore::LayerRendererChromium::drawRenderPassQuad):
103004        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
103005        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
103006        (WebCore):
103007        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::shouldRemoveRenderPass):
103008        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass):
103009        (WebCore::CCLayerTreeHostImpl::removeRenderPasses):
103010        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
103011        (WebCore):
103012        (CullRenderPassesWithCachedTextures):
103013        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::renderPassListBegin):
103014        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::renderPassListEnd):
103015        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::renderPassListNext):
103016        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::CullRenderPassesWithCachedTextures):
103017        (CCLayerTreeHostImpl):
103018        (CullRenderPassesWithNoQuads):
103019        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::renderPassListBegin):
103020        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::renderPassListEnd):
103021        (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::renderPassListNext):
103022
1030232012-07-10  Joshua Netterfield  <jnetterfield@rim.com>
103024        Make GC3D and E3D more maintainable for GLES platforms
103025        https://bugs.webkit.org/show_bug.cgi?id=90567
103026
103027        Reviewed by Rob Buis.
103028
103029        This patch cleans up code for WebGL on OpenGLES platforms which use 
103030        GraphicsContext3DOpenGL* and Extensions3DOpenGL*. Although
103031        GraphicsContext3DOpenGL was already split into GraphicsContext3DOpenGL,
103032        GraphicsContext3DOpenGLCommon, and  GraphicsContext3DOpenGLES, this patch
103033        is an attempt to refactor this code in a way that will help BlackBerry and
103034        other teams support WebGL on mobile platforms with as little use of
103035        "#IF USE(OPENGL_ES_2)" in common code as possible. Also included is the
103036        separation of Extensions3DOpenGL into Extensions3DOpenGLCommon,
103037        Extensions3DOpenGL, and Extensions3DOpenGLES as well as the introduction
103038        of OpenGLESShims.
103039
103040        This patch is created in large part by Jonathan Feldstein.
103041
103042        No new tests: no new behaviour.
103043
103044        * PlatformBlackBerry.cmake: Recognize BlackBerry as OPENGL ES, add new files to build
103045        * Target.pri: Add new Extensions3DOpenGL* to WebGL builds
103046        * platform/graphics/GraphicsContext3D.h: Add validateDepthStencil, make systemAllowsMultisamplingOnATICards a a member function.
103047        (WebCore):
103048        * platform/graphics/OpenGLESShims.h: Added.
103049        * platform/graphics/opengl/Extensions3DOpenGL.cpp: Move code to Extensions3DOpenGLCommon where possible
103050        (WebCore::Extensions3DOpenGL::Extensions3DOpenGL): Reflect that it is now inherits Extensions3DCommon
103051        (WebCore::Extensions3DOpenGL::supportsExtension): Contains OpenGL specific code from supports
103052        (WebCore):
103053        (WebCore::Extensions3DOpenGL::getExtensions): Returns a list of extensions
103054        * platform/graphics/opengl/Extensions3DOpenGL.h: Remove functions now in Extensions3DOpenGLCommon
103055        (WebCore):
103056        (Extensions3DOpenGL):
103057        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Added.
103058        (WebCore):
103059        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
103060        (WebCore::Extensions3DOpenGLCommon::~Extensions3DOpenGLCommon):
103061        (WebCore::Extensions3DOpenGLCommon::supports):
103062        (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
103063        (WebCore::Extensions3DOpenGLCommon::isEnabled):
103064        (WebCore::Extensions3DOpenGLCommon::getGraphicsResetStatusARB):
103065        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Existed before, but did nothing. Now does what is says it does.
103066        (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions): Moved from Extensions3DOpenGL::supports
103067        * platform/graphics/opengl/Extensions3DOpenGLCommon.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
103068        (WebCore):
103069        (Extensions3DOpenGLCommon):
103070        * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Added.
103071        (WebCore):
103072        (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
103073        (WebCore::Extensions3DOpenGLES::~Extensions3DOpenGLES):
103074        (WebCore::Extensions3DOpenGLES::framebufferTexture2DMultisampleIMG):
103075        (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisampleIMG):
103076        (WebCore::Extensions3DOpenGLES::createVertexArrayOES):
103077        (WebCore::Extensions3DOpenGLES::deleteVertexArrayOES):
103078        (WebCore::Extensions3DOpenGLES::isVertexArrayOES):
103079        (WebCore::Extensions3DOpenGLES::bindVertexArrayOES):
103080        (WebCore::Extensions3DOpenGLES::supportsExtension): Contains OpenGLES specific code from supports
103081        (WebCore::Extensions3DOpenGLES::getExtensions):
103082        * platform/graphics/opengl/Extensions3DOpenGLES.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
103083        (WebCore):
103084        (Extensions3DOpenGLES):
103085        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
103086        (WebCore::GraphicsContext3D::validateAttributes):
103087        (WebCore):
103088        (WebCore::GraphicsContext3D::renderbufferStorage):
103089        (WebCore::GraphicsContext3D::texImage2D):
103090        (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
103091        (WebCore::GraphicsContext3D::getExtensions):
103092        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
103093        (WebCore::GraphicsContext3D::validateDepthStencil):
103094        (WebCore::GraphicsContext3D::clear):
103095        (WebCore::GraphicsContext3D::isTexture):
103096        (WebCore):
103097        (WebCore::GraphicsContext3D::lineWidth):
103098        (WebCore::GraphicsContext3D::linkProgram):
103099        (WebCore::GraphicsContext3D::pixelStorei):
103100        (WebCore::GraphicsContext3D::polygonOffset):
103101        (WebCore::GraphicsContext3D::readPixels):
103102        (WebCore::GraphicsContext3D::deleteBuffer):
103103        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
103104        (WebCore::GraphicsContext3D::releaseShaderCompiler):
103105        (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
103106        (WebCore::GraphicsContext3D::validateAttributes):
103107        (WebCore):
103108        (WebCore::GraphicsContext3D::getExtensions):
103109        (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
103110        * platform/graphics/qt/GraphicsContext3DQt.cpp:
103111        (WebCore):
103112        (WebCore::GraphicsContext3D::releaseShaderCompiler):
103113
1031142012-07-06  David Hyatt  <hyatt@apple.com>
103115
103116        https://bugs.webkit.org/show_bug.cgi?id=90646
103117        <rdar://problem/11648478> 3-pass pagination slows down pagination
103118
103119        Improve the logical top estimate function for margin collapsing to be more accurate. In particular
103120        make the basic case of <body><p> or <body><h1> no longer be wrong. This estimate being incorrect
103121        is not a big deal most of the time, but when paginating it is a very big deal, since you have to
103122        relayout everything whenever your vertical placement is wrong.
103123
103124        Improving the estimation exposed a bug in an existing layout test. I had to clean up the buggy
103125        code written for negative margin-related float detection and fix an invalid layout test to
103126        actually be correct.
103127
103128        Reviewed by Simon Fraser.
103129
103130        * rendering/RenderBlock.cpp:
103131        (WebCore::RenderBlock::collapseMargins):
103132        (WebCore::RenderBlock::marginBeforeEstimateForChild):
103133        (WebCore):
103134        (WebCore::RenderBlock::estimateLogicalTopPosition):
103135        (WebCore::RenderBlock::marginValuesForChild):
103136        * rendering/RenderBlock.h:
103137        (RenderBlock):
103138        * rendering/RenderBox.cpp:
103139        (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
103140        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
103141
1031422012-07-10  Alexei Filippov  <alexeif@chromium.org>
103143
103144        Web Inspector: Count inspector memory used to traverse DOM in native memory snapshots.
103145        https://bugs.webkit.org/show_bug.cgi?id=90456
103146
103147        Inspector may take significant amount of memory when traversing DOM structure.
103148        Take it into account and report under inspector memory.
103149
103150        Reviewed by Pavel Feldman.
103151
103152        * dom/MemoryInstrumentation.h:
103153        (MemoryInstrumentation):
103154        (WebCore::MemoryInstrumentation::calculateContainerSize):
103155        (WebCore::MemoryInstrumentation::reportHashMap):
103156        (WebCore::MemoryInstrumentation::reportHashSet):
103157        (WebCore::MemoryInstrumentation::reportVector):
103158        * inspector/InspectorMemoryAgent.cpp:
103159        (MemoryBlockName):
103160        (WebCore):
103161        (WebCore::domTreeInfo):
103162        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
103163
1031642012-07-10  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
103165
103166        [GTK] Fix memory leaks by adopting allocation of GdkPixbuf
103167        https://bugs.webkit.org/show_bug.cgi?id=90790
103168
103169        Reviewed by Carlos Garcia Campos.
103170
103171        Fixed a memory leak in paintGdkPixbuf by adopting an allocation
103172        of GdkPixbuf.
103173
103174        No new tests. No change in behavior.
103175
103176        * platform/gtk/RenderThemeGtk.cpp:
103177        (WebCore::paintGdkPixbuf):
103178
1031792012-07-10  Konrad Piascik  <kpiascik@rim.com>
103180
103181        Web Inspector: Geolocation override
103182        https://bugs.webkit.org/show_bug.cgi?id=89365
103183
103184        Reviewed by Yong Li.
103185
103186        Added a way to override the geoloation of a client using Web
103187        Inspector.
103188
103189        New tests added.
103190        * LayoutTests/inspector/geolocation-success.html:
103191        * LayoutTests/inspector/getlocation-error.html:
103192
103193        * Modules/geolocation/GeolocationController.cpp:
103194        (WebCore::GeolocationController::GeolocationController): Now store and
103195        save the Page in m_page.
103196        (WebCore::GeolocationController::positionChanged): Check if position
103197        is overriden in Web Inspector.
103198        * Modules/geolocation/GeolocationController.h:
103199        (GeolocationController): Add member variable m_page for Page*.
103200        * inspector/Inspector.json: Add new methods for setting and clearing
103201        the GeoloationPosition and GeolocationError objects in InspectorPageAgent.
103202        * inspector/InspectorInstrumentation.cpp:
103203        (WebCore):
103204        (WebCore::InspectorInstrumentation::checkGeolocationPositionOrErrorImpl):
103205        Add methods to check whether GeolocationPosition or GeolocationError
103206        are set in InspectorPageAgent.
103207        * inspector/InspectorInstrumentation.h:
103208        (WebCore):
103209        (InspectorInstrumentation):
103210        (WebCore::InspectorInstrumentation::checkGeolocationPositionOrError):
103211        * inspector/InspectorPageAgent.cpp:
103212        (WebCore::InspectorPageAgent::InspectorPageAgent): Initialize new
103213        member variables of GeolocationPosition and GeolocationError.
103214        (WebCore::InspectorPageAgent::setGeolocationData): Set Position and
103215        Error data and call appropriate GeolocaitonController methods.
103216        (WebCore):
103217        (WebCore::InspectorPageAgent::clearGeolocationData):
103218        (WebCore::InspectorPageAgent::sendGeolocationError):
103219        * inspector/InspectorPageAgent.h:
103220        (WebCore::InspectorPageAgent::geolocationPosition): Getter for
103221        GeolocationPosition.
103222        (InspectorPageAgent):
103223        * inspector/front-end/Settings.js: Added new settings for
103224        GeolocationPosition and GeolocationError
103225        * inspector/front-end/SettingsScreen.js: Added new control for
103226        Geolocaiton.
103227        (WebInspector.UserAgentSettingsTab):
103228        (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
103229        (WebInspector.UserAgentSettingsTab.prototype._onGeolocationOverrideCheckboxClicked):
103230        (WebInspector.UserAgentSettingsTab.prototype._applyGeolocationUserInput):
103231        (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition.set if):
103232        (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition):
103233        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement.createInput):
103234        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
103235        * inspector/front-end/UserAgentSupport.js: New GeolocationPosition
103236        Object added along with setting helper methods.  Added new setting
103237        changed handlers for Position and Error.
103238        (WebInspector.UserAgentSupport.GeolocationPosition):
103239        (WebInspector.UserAgentSupport.GeolocationPosition.prototype.toSetting):
103240        (WebInspector.UserAgentSupport.GeolocationPosition.parseSetting):
103241        (WebInspector.UserAgentSupport.GeolocationPosition.parseUserInput):
103242        (WebInspector.UserAgentSupport.prototype.get _onGeolocationErrorChanged):
103243
1032442012-07-10  Vsevolod Vlasov  <vsevik@chromium.org>
103245
103246        Web Inspector: Refactor resource revisions before moving to UISourceCode.
103247        https://bugs.webkit.org/show_bug.cgi?id=90855
103248
103249        Reviewed by Pavel Feldman.
103250
103251        Revisions are now persisted based on mainFrame.loaderId, not resource.loaderId which makes filtering out stale persisted revisions easier.
103252        Restoring revisions from local storage is separated from filtering out stale persisted revisions.
103253        Resource._clearRevisionHistory and Resource._restoreRevisions are not static anymore.
103254        Renamed localStorage field for persisting revisions: "resource-history" -> "revision-history"
103255
103256        * inspector/front-end/Resource.js:
103257        (WebInspector.Resource):
103258        (WebInspector.Resource.prototype.addRevision):
103259        (WebInspector.Resource.prototype._restoreRevisionHistory):
103260        (WebInspector.Resource.prototype._clearRevisionHistory):
103261        (WebInspector.Resource.prototype.revertAndClearHistory.clearHistory):
103262        (WebInspector.Resource.prototype.revertAndClearHistory):
103263        (WebInspector.Revision):
103264        (WebInspector.Revision._revisionHistoryRegistry):
103265        (WebInspector.Revision._ensureStaleRevisionsFileteredOut.persist):
103266        (WebInspector.Revision._ensureStaleRevisionsFileteredOut):
103267        (WebInspector.Revision.prototype._persist):
103268        * inspector/front-end/ResourceTreeModel.js:
103269        (WebInspector.ResourceTreeModel.prototype._processCachedResources):
103270        (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
103271        * inspector/front-end/RevisionHistoryView.js:
103272        * inspector/front-end/UISourceCode.js:
103273        (WebInspector.UISourceCode.prototype._revisionAdded):
103274
1032752012-07-10  Alice Cheng  <alice_cheng@apple.com>
103276
103277        Editing: Reproducible crasher when pasting a 0x0 image into Mail
103278        https://bugs.webkit.org/show_bug.cgi?id=90640
103279        <rdar://problem/11141920>
103280
103281        Reviewed by Brady Eidson.
103282
103283        0x0 images don't get a resource representation in the WebArchive, so we need a null check
103284
103285        Test: TestWebKitAPI/Tests/mac/0.png
103286              TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm
103287
103288        * platform/mac/PasteboardMac.mm:
103289        (WebCore::documentFragmentWithImageResource):
103290
1032912012-07-10  Nikita Vasilyev  <me@elv1s.ru>
103292
103293        Web Inspector: Make the Tab character 4 spaces width
103294        https://bugs.webkit.org/show_bug.cgi?id=90172
103295
103296        Reviewed by Pavel Feldman.
103297
103298        Do it to match most code editors' behavior.
103299
103300        * inspector/front-end/inspectorCommon.css:
103301        (body):
103302
1033032012-07-10  Eric Seidel  <eric@webkit.org>
103304
103305        REGRESSION (r122168): Layout Test http/tests/misc/script-defer.html is failing
103306        https://bugs.webkit.org/show_bug.cgi?id=90845
103307
103308        Reviewed by Alexey Proskuryakov.
103309
103310        I was a bit overzealous in removing bool returns. This one still makes sense.
103311        This just reverts the wrong part of my previous change.
103312
103313        * html/parser/HTMLDocumentParser.cpp:
103314        (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):
103315        * html/parser/HTMLScriptRunner.cpp:
103316        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
103317        * html/parser/HTMLScriptRunner.h:
103318        (HTMLScriptRunner):
103319
1033202012-07-10  Kevin Ellis  <kevers@chromium.org>
103321
103322        Input type=range issue with events not being raised when value set in js
103323        https://bugs.webkit.org/show_bug.cgi?id=84674
103324
103325        Fix dispatching of change and click events for the input slider.
103326        Prior to the fix, change events were not fired if the new value
103327        matched the value at last change notification based on expected
103328        behavior for text fields.  Clicks were not fired if the thumb
103329        element was repositioned under the cursor on mouse down.
103330
103331        Reviewed by Kent Tamura.
103332
103333        Tests: fast/events/click-range-slider.html
103334               fast/events/onchange-range-slider.html
103335
103336        * html/shadow/SliderThumbElement.cpp:
103337        (WebCore::SliderThumbElement::setPositionFromPoint):
103338        * page/EventHandler.cpp:
103339        (WebCore::EventHandler::handleMouseReleaseEvent):
103340
1033412012-07-10  Huang Dongsung  <luxtella@company100.net>
103342
103343        Don't destroy the decoded data of an image if WebKit is about to render the image.
103344        https://bugs.webkit.org/show_bug.cgi?id=90721
103345
103346        Reviewed by Antti Koivisto.
103347
103348        When the cache capacity of the MemoryCache is exceeded, the decoded data of all
103349        the CachedImages are destroyed. Even the images inside the viewport are
103350        destroyed.  However, if the images need to be rendered again due to scoll events
103351        or animation, they must be decoded again. As an extreme case, if there is an
103352        animation with an image when MemoryCache is almost full, the image must be
103353        decoded every frame. This slows down animation and needlessly consumes CPU
103354        cycles.
103355
103356        Therefore, it is better to not destory the decoded data of an image if the image
103357        is inside the viewport because there is high chance that the image needs to be
103358        rendered again soon. This patch reduces the unnecessary repetition of image decoding
103359        on low memory, and also relieves the memory fragmentation because it avoids reallocation
103360        of image frames.
103361
103362        In addition, there is another positive side effect. Currently,
103363        CachedImageClient::willRenderImage() is used only to determine if GIF animation needs
103364        to be paused or not in CachedImage::shouldPauseAnimation(). This patch makes
103365        GIF animation outside the viewort be paused.
103366
103367        This is also a prerequisite for parallel image decoders. Because parallel image
103368        decoders decode an image asynchronously, clients cannot render the image at the time
103369        when the request is made. Clients can draw the image later after receiving image
103370        decoding complete notification. However, there is a problem because MemoryCache can
103371        destroy the decoded data before clients actually render the image. So parallel image decoders
103372        must prevent the decoded data from being destroyed if the image will be rendered
103373        soon.
103374
103375        This patch may consume a little more memory, but furtunately the peak memory usage
103376        is almost the same.
103377
103378        No new tests - no new testable functionality.
103379
103380        * loader/cache/CachedImage.cpp:
103381        (WebCore::CachedImage::likelyToBeUsedSoon):
103382        (WebCore):
103383        (WebCore::CachedImage::shouldPauseAnimation):
103384        * loader/cache/CachedImage.h:
103385        (CachedImage):
103386        * loader/cache/CachedResource.h:
103387        (CachedResource):
103388        (WebCore::CachedResource::likelyToBeUsedSoon):
103389        * loader/cache/MemoryCache.cpp:
103390        (WebCore::MemoryCache::pruneLiveResourcesToSize):
103391        * rendering/RenderObject.cpp:
103392        (WebCore::RenderObject::willRenderImage):
103393
1033942012-07-10  Kent Tamura  <tkent@chromium.org>
103395
103396        RTL calendar picker for <input type=date> is too narrow and clipped
103397        https://bugs.webkit.org/show_bug.cgi?id=90864
103398
103399        Reviewed by Kentaro Hara.
103400
103401        Tests: ManualTests/forms/calendar-picker.html
103402
103403        * Resources/calendarPicker.js:
103404        (fixWindowSize):
103405        Checks the left edge of elemenets in RTL.
103406        (layout): Add dir=ltr for the manual test, which re-uses the document.
103407
1034082012-07-10  Sheriff Bot  <webkit.review.bot@gmail.com>
103409
103410        Unreviewed, rolling out r122178.
103411        http://trac.webkit.org/changeset/122178
103412        https://bugs.webkit.org/show_bug.cgi?id=90857
103413
103414        browser tests, PrerenderBrowserTest.PrerenderFavicon and other
103415        tests, started to fail (Requested by hayato on #webkit).
103416
103417        * WebCore.exp.in:
103418        * dom/Document.cpp:
103419        (WebCore::Document::iconURLs):
103420        (WebCore::Document::addIconURL):
103421        (WebCore::Document::setUseSecureKeyboardEntryWhenActive):
103422        * dom/Document.h:
103423        (Document):
103424        * html/HTMLLinkElement.cpp:
103425        * html/HTMLLinkElement.h:
103426        (HTMLLinkElement):
103427        * testing/Internals.cpp:
103428        * testing/Internals.h:
103429        (Internals):
103430        * testing/Internals.idl:
103431
1034322012-07-10  Adam Barth  <abarth@webkit.org>
103433
103434        LayoutTestController.dumpConfigurationForViewport should move to Internals
103435        https://bugs.webkit.org/show_bug.cgi?id=45652
103436
103437        Reviewed by Eric Seidel.
103438
103439        This patch replaces LayoutTestController.dumpConfigurationForViewport
103440        with Internals.configurationForViewport. The old
103441        dumpConfigurationForViewport function just ended up calling WebCore
103442        functions anyway, so there's no benefit in implementing the API in the
103443        LayoutTestController.
103444
103445        As a result, these tests can now run on every port.
103446
103447        * testing/Internals.cpp:
103448        (WebCore::Internals::configurationForViewport):
103449        (WebCore):
103450        * testing/Internals.h:
103451        (Internals):
103452        * testing/Internals.idl:
103453
1034542012-07-10  Carlos Garcia Campos  <cgarcia@igalia.com>
103455
103456        Unreviewed. Fix GTK+ build after r122175.
103457
103458        * platform/graphics/texmap/TextureMapperLayer.cpp: Include
103459        CString.h when using cairo.
103460
1034612012-07-10  Yoshifumi Inoue  <yosin@chromium.org>
103462
103463        [Chromium-Mac] Form related layout tests cause timeout
103464        https://bugs.webkit.org/show_bug.cgi?id=90851
103465
103466        Reviewed by Kent Tamura.
103467
103468        This patch changed to pass a valid argument to LocaleMac
103469        constructor.
103470
103471        No new tests. No more timeout in tests listed in the bug.
103472
103473        * platform/text/mac/LocaleMac.mm:
103474        (WebCore::LocaleMac::currentLocale): Changed to pass local identifier string
103475        instead of NSLocale object.
103476
1034772012-07-10  Yuta Kitamura  <yutak@chromium.org>
103478
103479        WebSocket: Remove hixie76 protocol implementation
103480        https://bugs.webkit.org/show_bug.cgi?id=88620
103481
103482        Reviewed by Adam Barth.
103483
103484        This change removes code that implements the old hixie-76 WebSocket protocol which
103485        isn't used anymore.
103486
103487        No new tests are added, because the code using the current protocol should not be
103488        affected. Tests for hixie-76 protocol are skipped (these tests will be removed
103489        eventually).
103490
103491        * Modules/websockets/ThreadableWebSocketChannel.h:
103492        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
103493        (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
103494        (WebCore::ThreadableWebSocketChannelClientWrapper::didCreateWebSocketChannel):
103495        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
103496        (ThreadableWebSocketChannelClientWrapper):
103497        * Modules/websockets/WebSocket.cpp:
103498        (WebCore::WebSocket::WebSocket):
103499        (WebCore::WebSocket::connect):
103500        (WebCore::WebSocket::send):
103501        (WebCore::WebSocket::protocol):
103502        (WebCore::WebSocket::extensions):
103503        (WebCore::WebSocket::binaryType):
103504        (WebCore::WebSocket::setBinaryType):
103505        (WebCore::WebSocket::didReceiveMessageError):
103506        (WebCore::WebSocket::didClose):
103507        (WebCore::WebSocket::getFramingOverhead):
103508        * Modules/websockets/WebSocket.h:
103509        * Modules/websockets/WebSocketChannel.cpp:
103510        (WebCore::WebSocketChannel::WebSocketChannel):
103511        (WebCore::WebSocketChannel::connect):
103512        (WebCore::WebSocketChannel::send):
103513        (WebCore::WebSocketChannel::fail):
103514        (WebCore::WebSocketChannel::didCloseSocketStream):
103515        (WebCore::WebSocketChannel::processBuffer):
103516        (WebCore::WebSocketChannel::startClosingHandshake):
103517        (WebCore::WebSocketChannel::enqueueTextFrame):
103518        (WebCore::WebSocketChannel::enqueueRawFrame):
103519        (WebCore::WebSocketChannel::enqueueBlobFrame):
103520        (WebCore::WebSocketChannel::processOutgoingFrameQueue):
103521        (WebCore::WebSocketChannel::abortOutgoingFrameQueue):
103522        * Modules/websockets/WebSocketChannel.h:
103523        (WebSocketChannel):
103524        * Modules/websockets/WebSocketHandshake.cpp:
103525        (WebCore::WebSocketHandshake::WebSocketHandshake):
103526        (WebCore::WebSocketHandshake::clientHandshakeMessage):
103527        (WebCore::WebSocketHandshake::clientHandshakeRequest):
103528        (WebCore::WebSocketHandshake::readServerHandshake):
103529        (WebCore::WebSocketHandshake::checkResponseHeaders):
103530        * Modules/websockets/WebSocketHandshake.h:
103531        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
103532        (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::create):
103533        (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::WorkerContextDidInitializeTask):
103534        (WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask):
103535        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
103536        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
103537        (WorkerThreadableWebSocketChannel):
103538        (Peer):
103539        (Bridge):
103540
1035412012-07-09  Gavin Barraclough  <barraclough@apple.com>
103542
103543        Threadsafety issues in WebScriptObject
103544        https://bugs.webkit.org/show_bug.cgi?id=90849
103545
103546        Reviewed by Filip Pizlo.
103547
103548        WebScriptObject maintains a NSMap of wrapper objects. A race condition exists
103549        between a wrapper being retrieved from the map, and being released - if the
103550        final release on an object is called between a call to getJSWrapper and the
103551        subsequent retain, we may end up with a stale object reference.
103552
103553        We can make this safe by hoisting the removal from the map from delloc up into
103554        release (if the retainCount is 1), and locking release against retrieval from
103555        the map. Since release may be called from another thread, and NSMap is not
103556        threadsafe, we'd better lock around all access to the map (this fix already
103557        necessitates get & remove to be locked, so this just adds 'add', too).
103558
103559        * bindings/objc/WebScriptObject.mm:
103560        (WebCore::createJSWrapper):
103561            - lock around getJSWrapper, retain.
103562        (-[WebScriptObject _setImp:originRootObject:rootObject:]):
103563            - lock around addJSWrapper.
103564        (-[WebScriptObject release]):
103565            - Added; removeJSWrapper for last release, lock & synchronized vs. getJSWrapper.
103566        (-[WebScriptObject dealloc]):
103567            - removeJSWrapper call hoisted into release.
103568
1035692012-07-09  Christophe Dumez  <christophe.dumez@intel.com>
103570
103571        [EFL] Battery status code needs refactoring to be reused in WebKit2
103572        https://bugs.webkit.org/show_bug.cgi?id=90760
103573
103574        Reviewed by Hajime Morita.
103575
103576        Rename BatteryClientEfl to BatteryProviderEfl and remove dependency
103577        on BatteryController by introducing the BatteryProviderEflClient
103578        interface. This will allow reusing the BatteryProviderEfl class
103579        in WebKit2.
103580
103581        No new tests. Already tested by batterystatus/*.
103582
103583        * PlatformEfl.cmake:
103584        * platform/efl/BatteryProviderEfl.cpp: Renamed from Source/WebCore/platform/efl/BatteryClientEfl.cpp.
103585        (WebCore):
103586        (WebCore::BatteryProviderEfl::BatteryProviderEfl):
103587        (WebCore::BatteryProviderEfl::batteryStatus):
103588        (WebCore::BatteryProviderEfl::startUpdating):
103589        (WebCore::BatteryProviderEfl::stopUpdating):
103590        (WebCore::BatteryProviderEfl::setBatteryStatus):
103591        (WebCore::BatteryProviderEfl::timerFired):
103592        (WebCore::BatteryProviderEfl::getBatteryStatus):
103593        (WebCore::BatteryProviderEfl::setBatteryClient):
103594        * platform/efl/BatteryProviderEfl.h: Copied from Source/WebCore/platform/efl/BatteryClientEfl.h.
103595        (WebCore):
103596        (BatteryProviderEfl):
103597        (WebCore::BatteryProviderEfl::~BatteryProviderEfl):
103598        * platform/efl/BatteryProviderEflClient.h: Added.
103599        (WebCore):
103600        (BatteryProviderEflClient):
103601
1036022012-07-09  Hayato Ito  <hayato@chromium.org>
103603
103604        Unreviewed gardening.
103605        Fix a wrong fix of r122194.
103606
103607        * platform/graphics/chromium/LayerRendererChromium.cpp:
103608        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
103609
1036102012-07-09  Matt Falkenhagen  <falken@chromium.org>
103611
103612        Add ENABLE_DIALOG_ELEMENT and skeleton files
103613        https://bugs.webkit.org/show_bug.cgi?id=90521
103614
103615        Reviewed by Kent Tamura.
103616
103617        This adds the ENABLE_DIALOG_ELEMENT feature flag and dummy implementation files for <dialog>. In addition, a runtime feature flag is added.
103618        The feature is diabled by default.
103619
103620        No new tests, as there is no behavior change.
103621
103622        * CMakeLists.txt:
103623        * Configurations/FeatureDefines.xcconfig:
103624        * DerivedSources.cpp:
103625        * DerivedSources.make:
103626        * DerivedSources.pri:
103627        * Target.pri:
103628        * WebCore.gypi:
103629        * WebCore.xcodeproj/project.pbxproj:
103630        * bindings/generic/RuntimeEnabledFeatures.cpp:
103631        (WebCore):
103632        * bindings/generic/RuntimeEnabledFeatures.h: Added a runtime feature flag for dialog.
103633        (RuntimeEnabledFeatures):
103634        (WebCore::RuntimeEnabledFeatures::dialogElementEnabled):
103635        (WebCore::RuntimeEnabledFeatures::setDialogElementEnabled):
103636        * dom/ContextFeatures.cpp:
103637        (WebCore::ContextFeatures::dialogElementEnabled):
103638        (WebCore):
103639        * dom/ContextFeatures.h: Added a per-context flag for dialog so that dialog can be disabled in HTMLTagNames.in and DOMWindow.idl when the dialog runtime feature flag is off.
103640        * html/HTMLDialogElement.cpp: Added.
103641        (WebCore):
103642        (WebCore::HTMLDialogElement::HTMLDialogElement):
103643        (WebCore::HTMLDialogElement::create):
103644        (WebCore::HTMLDialogElement::close):
103645        (WebCore::HTMLDialogElement::show):
103646        * html/HTMLDialogElement.h: Added.
103647        (WebCore):
103648        (HTMLDialogElement):
103649        * html/HTMLDialogElement.idl: Added.
103650        * html/HTMLElementsAllInOne.cpp:
103651        * html/HTMLTagNames.in:
103652        * page/DOMWindow.idl:
103653
1036542012-07-09  Hayato Ito  <hayato@chromium.org>
103655
103656        Unreviewed gardening.
103657        Remove an assertion starting to fail on interactive_ui_tests on Chromium OS.
103658
103659        * platform/graphics/chromium/LayerRendererChromium.cpp:
103660        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
103661
1036622012-07-09  Hayato Ito  <hayato@chromium.org>
103663
103664        Unreviewed gardening.
103665        Build fix after r122175
103666
103667        * WebCore.gypi: Remove Source/WebCore/platform/graphics/qt/Extensions3DQt.{cpp,h}
103668
1036692012-07-09  Kiran Muppala  <cmuppala@apple.com>
103670
103671        Improve performance of RenderInline::absoluteQuads for deeply nested inlines.
103672        https://bugs.webkit.org/show_bug.cgi?id=90715
103673
103674        Reviewed by Maciej Stachowiak.
103675
103676        No new tests: functionality unchanged.
103677
103678        * rendering/RenderInline.cpp: Cache transformation from local to absolute coordinates using a
103679        RenderGeometryMap and use it for subsequent mappings.
103680        (WebCore::(anonymous namespace)::AbsoluteQuadsGeneratorContext::AbsoluteQuadsGeneratorContext):
103681        (WebCore::(anonymous namespace)::AbsoluteQuadsGeneratorContext::operator()):
103682
1036832012-07-09  Yoshifumi Inoue  <yosin@chromium.org>
103684
103685        [Chromium-Mac] Implement functions for localized time format information
103686        https://bugs.webkit.org/show_bug.cgi?id=90237
103687
103688        Reviewed by Kent Tamura.
103689
103690        This patch introduces following localized time format related
103691        functions:
103692          - localizeTimeFormatText()
103693          - localizeShortTimeFormatText()
103694          - timeAMPMLabels
103695        for Mac OSX in feature flag: ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
103696
103697        These function will be used by input type "time" with multiple input
103698        fields UI.
103699
103700        Note: ICU version of localized time format functions are implemented
103701        in https://bugs.webkit.org/show_bug.cgi?id=89965
103702
103703        Tests: WebKit/chromium/tests/LocaleMacTest.cpp
103704
103705        * platform/text/mac/LocaleMac.h:
103706        (LocaleMac): Added time format related functions and variables.
103707        * platform/text/mac/LocaleMac.mm:
103708        (WebCore::createDateTimeFormatter): Added. A helper function for creating date time formatter.
103709        (WebCore::LocaleMac::createShortDateFormatter): Changed to use createDateTimeFormatter.
103710        (WebCore::LocaleMac::createTimeFormatter): Added.
103711        (WebCore::LocaleMac::createShortTimeFormatter): Added.
103712        (WebCore::LocaleMac::timeFormatText): Added.
103713        (WebCore::LocaleMac::shortTimeFormatText): Added.
103714        (WebCore::LocaleMac::timeAMPMLabels): Added.
103715
1037162012-07-09  Alexandru Chiculita  <achicu@adobe.com>
103717
103718        [CSS Shaders] The FECustomFilter is not making the GL context active
103719        https://bugs.webkit.org/show_bug.cgi?id=90840
103720
103721        Reviewed by Dean Jackson.
103722
103723        I've added a couple of makeContextCurrent() in the FECustomFilter related classes.
103724        Also, removed the assumption that GraphicsContext3D::create() never returns 0.
103725
103726        No new tests, this was crashing on existing tests.
103727
103728        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
103729        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
103730        (WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram):
103731        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
103732        (WebCore::CustomFilterGlobalContext::prepareContextIfNeeded):
103733        * platform/graphics/filters/CustomFilterMesh.cpp:
103734        (WebCore::CustomFilterMesh::CustomFilterMesh):
103735        (WebCore::CustomFilterMesh::~CustomFilterMesh):
103736        * platform/graphics/filters/FECustomFilter.cpp:
103737        (WebCore::FECustomFilter::deleteRenderBuffers):
103738        (WebCore::FECustomFilter::platformApplySoftware):
103739        (WebCore::FECustomFilter::initializeContext):
103740        * platform/graphics/filters/FECustomFilter.h:
103741        (FECustomFilter):
103742
1037432012-07-09  Kent Tamura  <tkent@chromium.org>
103744
103745        REGRESSION(r114862-r114886): Fix a crash by switching the input type to hidden.
103746        https://bugs.webkit.org/show_bug.cgi?id=90774
103747
103748        Reviewed by Andreas Kling.
103749
103750        Test: fast/forms/hidden/change-type-to-hidden-after-updating-value.html
103751
103752        * dom/Element.cpp:
103753        (WebCore::Element::setAttributeInternal):
103754        Pass a copy of the existing Attribute object.
103755
1037562012-07-07  Philippe Normand  <pnormand@igalia.com>
103757
103758        [GStreamer] cache video dimensions
103759        https://bugs.webkit.org/show_bug.cgi?id=90733
103760
103761        Reviewed by Martin Robinson.
103762
103763        Invalidate the cached video dimensions whenever the video-sink sink pad caps
103764        change and let ::naturalSize() lazily recalculate them.
103765
103766        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
103767        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
103768        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
103769        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
103770        (MediaPlayerPrivateGStreamer):
103771
1037722012-07-09  Eric Penner  <epenner@google.com>
103773
103774        [chromium] Merge updates and idle updates into one pass
103775        https://bugs.webkit.org/show_bug.cgi?id=90324
103776
103777        Reviewed by Adrienne Walker.
103778
103779        We no longer need to do painting is passes in order
103780        to allocate memory in the right order. So this merges
103781        updates and idle updates into one pass.
103782
103783        Covered by existing unit tests (some of which are
103784        updated with this patch).
103785
103786        * platform/graphics/chromium/ContentLayerChromium.cpp:
103787        (WebCore::ContentLayerChromium::needMoreUpdates):
103788        * platform/graphics/chromium/ContentLayerChromium.h:
103789        (ContentLayerChromium):
103790        * platform/graphics/chromium/LayerChromium.h:
103791        (WebCore::LayerChromium::needMoreUpdates):
103792        * platform/graphics/chromium/TiledLayerChromium.cpp:
103793        (WebCore::TiledLayerChromium::updateTiles):
103794        (WebCore::TiledLayerChromium::updateLayerRect):
103795        * platform/graphics/chromium/TiledLayerChromium.h:
103796        (TiledLayerChromium):
103797        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
103798        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
103799        (WebCore::CCLayerTreeHost::compositeAndReadback):
103800        (WebCore::CCLayerTreeHost::updateLayers):
103801        (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
103802        (WebCore::CCLayerTreeHost::paintLayerContents):
103803        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
103804        (CCLayerTreeHost):
103805
1038062012-07-09  Yoshifumi Inoue  <yosin@chromium.org>
103807
103808        [Platform] Introduce LocaleMac class
103809        https://bugs.webkit.org/show_bug.cgi?id=90248
103810
103811        Reviewed by Kent Tamura.
103812
103813        This patch moves implementation of localized date format related
103814        functions into LocaleMac class as of LocaleWin class for ease of
103815        maintain and using specific locale in testing rather than system
103816        default locale.
103817
103818        Tests: WebKit/chromium/tests/LocaleMacTest.cpp
103819
103820        * WebCore.gyp/WebCore.gyp: Include LocaleMac.mm
103821        * WebCore.gypi:
103822        * platform/text/mac/LocaleMac.h: Replace LocaleWin to LocaleMac.
103823        * platform/text/mac/LocaleMac.mm:
103824        (WebCore::LocaleMac::LocaleMac):
103825        (WebCore::LocaleMac::~LocaleMac):
103826        (WebCore::LocaleMac::create):
103827        (WebCore::LocaleMac::currentLocale):
103828        (WebCore::LocaleMac::createShortDateFormatter):
103829        (WebCore::LocaleMac::parseDate):
103830        (WebCore::LocaleMac::formatDate):
103831        (WebCore::LocaleMac::dateFormatText):
103832        (WebCore::LocaleMac::monthLabels):
103833        (WebCore::LocaleMac::weekDayShortLabels):
103834        (WebCore::LocaleMac::firstDayOfWeek):
103835        * platform/text/mac/LocalizedDateMac.cpp:
103836        (WebCore::parseLocalizedDate):
103837        (WebCore::formatLocalizedDate):
103838        (WebCore::localizedDateFormatText):
103839        (WebCore::monthLabels):
103840        (WebCore::weekDayShortLabels):
103841        (WebCore::firstDayOfWeek):
103842        * platform/text/mac/LocalizedDateMac.mm: Removed.
103843
1038442012-07-09  Dana Jansens  <danakj@chromium.org>
103845
103846        [chromium] Create CCScopedTexture class for creating/freeing textures
103847        https://bugs.webkit.org/show_bug.cgi?id=89485
103848
103849        Reviewed by Adrienne Walker.
103850
103851        This class provides a standard way to create texture ids in a way that
103852        ensures they will be freed later.
103853
103854        Also includes a CCTexture base class that holds textureId, size, and
103855        format together in a struct that can be used in place of storing an
103856        unsigned textureId in other classes.
103857
103858        Unit tests: CCScopedTexureTest.NewScopedTexture
103859                    CCScopedTexureTest.CreateScopedTexture
103860                    CCScopedTexureTest.ScopedTextureIsDeleted
103861                    CCScopedTexureTest.LoseScopedTexture
103862
103863        * WebCore.gypi:
103864        * platform/graphics/chromium/cc/CCScopedTexture.cpp: Added.
103865        (WebCore):
103866        (WebCore::CCScopedTexture::CCScopedTexture):
103867        (WebCore::CCScopedTexture::~CCScopedTexture):
103868        (WebCore::CCScopedTexture::allocate):
103869        (WebCore::CCScopedTexture::free):
103870        (WebCore::CCScopedTexture::leak):
103871        * platform/graphics/chromium/cc/CCScopedTexture.h: Added.
103872        (WebCore):
103873        (CCScopedTexture):
103874        (WebCore::CCScopedTexture::create):
103875        * platform/graphics/chromium/cc/CCTexture.cpp: Added.
103876        (WebCore):
103877        (WebCore::CCTexture::setDimensions):
103878        (WebCore::CCTexture::bytes):
103879        (WebCore::CCTexture::memorySizeBytes):
103880        * platform/graphics/chromium/cc/CCTexture.h: Added.
103881        (WebCore):
103882        (CCTexture):
103883        (WebCore::CCTexture::CCTexture):
103884        (WebCore::CCTexture::id):
103885        (WebCore::CCTexture::size):
103886        (WebCore::CCTexture::format):
103887        (WebCore::CCTexture::setId):
103888
1038892012-07-09  Joshua Bell  <jsbell@chromium.org>
103890
103891        IndexedDB: deleteDatabase fails if transaction running in other database
103892        https://bugs.webkit.org/show_bug.cgi?id=90822
103893
103894        Reviewed by Tony Chang.
103895
103896        The IDBLevelDBBackingStore was preventing a deleteDatabase() from running
103897        if any other database was running a transaction. Fix by just creating a scratch
103898        LevelDBTransaction for the delete steps.
103899
103900        Test: storage/indexeddb/deletedatabase-transaction.html
103901
103902        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
103903        (WebCore::IDBLevelDBBackingStore::deleteDatabase): Use a LevelDBTransaction
103904        directly.
103905
1039062012-07-09  Pete Williamson  <petewil@google.com>
103907
103908        Changed the behavior of iconURLs to always recalculate the list.
103909        https://bugs.webkit.org/show_bug.cgi?id=88665
103910
103911        Reviewed by Kent Tamura..
103912
103913        As it turns out, it can contain stale URLs in the case that some script
103914        manipulates the DOM, which breaks scripts trying to reset the favicon
103915        URL. Also added a method in Internals to allow tests to get the list of
103916        icon
103917
103918        Tests: fast/dom/icon-url-change.html
103919               fast/dom/icon-url-list.html
103920
103921        * WebCore.exp.in: export Document::iconURLs on the mac for the Internals class
103922        * dom/Document.cpp:
103923        (WebCore::Document::iconURLs): Changed the method to recalculate the iconURL list every time
103924        (WebCore::Document::addIconURL): we no longer need to add to the internal list since we recalculate it
103925        (WebCore::Document::setUseSecureKeyboardEntryWhenActive): removed extra whitespace
103926        * dom/Document.h:
103927        (Document): removed the addIconURL method which is no longer used
103928        * html/HTMLLinkElement.cpp:
103929        (WebCore::HTMLLinkElement::iconType): exposed the icon type with an accessor
103930        (WebCore):
103931        (WebCore::HTMLLinkElement::iconSizes): exposed the icon sizes with an accessor
103932        * html/HTMLLinkElement.h:
103933        (HTMLLinkElement): declared the icon type and size accessors
103934        * testing/Internals.cpp:
103935        (WebCore::Internals::iconURLs): made a method to be used by unit tests for inspecting the icon URL list
103936        (WebCore):
103937        * testing/Internals.h:
103938        (Internals): declared the method for unit testing the icon URL list
103939        * testing/Internals.idl: exported the Document::iconURLs function
103940
1039412012-07-09  Ryosuke Niwa  <rniwa@webkit.org>
103942
103943        Gcc build fix after r122174.
103944
103945        * storage/StorageAreaImpl.cpp:
103946        (WebCore::StorageAreaImpl::decrementAccessCount):
103947
1039482012-07-09  Alice Cheng  <alice_cheng@apple.com>
103949
103950        Editing: Autocorrection in blockquotes causes text to break out of quote
103951        https://bugs.webkit.org/show_bug.cgi?id=90487
103952        <rdar://problem/11769020> 
103953
103954        Reviewed by Enrica Casucci.
103955
103956        Test: platform/mac/editing/spelling/autocorrection-blockquote-crash.html
103957
103958        SpellingCorrectionCommand uses ReplaceSelectionCommand to replace the misspelled word with the auto-corrected word. Specifically, ReplaceSelectionCommand does a smart copy, where it breaks out of blockquotes. Thus, the fix is to substitute ReplaceSelectionCommand with InserTextCommand.
103959
103960        * editing/SpellingCorrectionCommand.cpp:
103961        (WebCore::SpellingCorrectionCommand::doApply):
103962
1039632012-07-09  No'am Rosenthal  <noam.rosenthal@nokia.com>
103964
103965        Shared code that is guarded with ENABLE(WEBGL) should be guarded with USE()
103966        https://bugs.webkit.org/show_bug.cgi?id=90506
103967
103968        Reviewed by Martin Robinson.
103969
103970        GraphicsContext3D, ANGLEWebKitBridge and Extensions3D are now guarded with USE(3D_GRAPHICS)
103971        instead of ENABLE(WEBGL).
103972
103973        No new tests, build changes only.
103974
103975        * Target.pri:
103976            Removed references to unused files.
103977
103978        * WebCore.pri:
103979            Updated the Qt build so that the basic 3D-graphics sources can be compiled even when
103980            WebGL is disabled.
103981
103982        * platform/graphics/ANGLEWebKitBridge.cpp:
103983        * platform/graphics/GraphicsContext3D.cpp:
103984        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
103985        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
103986        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
103987        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
103988        * platform/graphics/qt/GraphicsContext3DQt.cpp:
103989        * platform/qt/QWebPageClient.h:
103990        * platform/graphics/OpenGLShims.cpp:
103991        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
103992        * platform/graphics/cairo/DrawingBufferCairo.cpp:
103993        * platform/graphics/cairo/GLContext.h:
103994        (GLContext):
103995        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
103996        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
103997        * platform/graphics/cg/GraphicsContext3DCG.cpp:
103998        * platform/graphics/clutter/DrawingBufferClutter.cpp:
103999        * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
104000        * platform/graphics/clutter/GraphicsContext3DPrivate.cpp:
104001        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
104002        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
104003        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
104004        * platform/graphics/filters/CustomFilterCompiledProgram.h:
104005        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
104006        * platform/graphics/filters/CustomFilterGlobalContext.h:
104007        * platform/graphics/filters/CustomFilterMesh.cpp:
104008        * platform/graphics/filters/CustomFilterMesh.h:
104009        * platform/graphics/filters/CustomFilterProgram.cpp:
104010        (WebCore):
104011        * platform/graphics/filters/CustomFilterProgram.h:
104012        * platform/graphics/filters/FECustomFilter.cpp:
104013        * platform/graphics/filters/FECustomFilter.h:
104014        * platform/graphics/glx/GLContextGLX.cpp:
104015        (WebCore):
104016        * platform/graphics/glx/GLContextGLX.h:
104017        (GLContextGLX):
104018        * platform/graphics/gpu/DrawingBuffer.cpp:
104019        * platform/graphics/gpu/mac/DrawingBufferMac.mm:
104020        * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
104021        * platform/graphics/mac/GraphicsContext3DMac.mm:
104022        * platform/graphics/qt/Extensions3DQt.cpp: Removed.
104023        * platform/graphics/qt/Extensions3DQt.h: Removed.
104024        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
104025        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
104026            Chaned ENABLE(WEBGL) to USE(3D_GRAPHICS)
104027
1040282012-07-09  Yongjun Zhang  <yongjun_zhang@apple.com>
104029
104030        Consider closing unused localStorage database after a timeout.
104031        https://bugs.webkit.org/show_bug.cgi?id=90713
104032
104033        For a localStorage, if there is no active document referencing to it for certain amount of time (300 seconds),
104034        we can close the underlying sqlite database.
104035
104036        Reviewed by Brady Eidson.
104037
104038        Test: storage/domstorage/storage-close-database-on-idle.html
104039
104040        * storage/Storage.cpp:
104041        (WebCore::Storage::Storage): increment storageArea access count when a DOMWindow is referencing it.
104042        (WebCore::Storage::~Storage): decrement storageArea access count when DOMWindow is done with it.
104043        * storage/StorageArea.h:
104044        (StorageArea):
104045        * storage/StorageAreaImpl.cpp:
104046        (WebCore::StorageAreaImpl::StorageAreaImpl):
104047        (WebCore::StorageAreaImpl::incrementAccessCount):
104048        (WebCore):
104049        (WebCore::StorageAreaImpl::decrementAccessCount): schedule closeDatabaseTimer if there is no active document
104050            referencing to this storageArea.
104051        (WebCore::StorageAreaImpl::closeDatabaseTimerFired): close the underlying sqlite database.
104052        * storage/StorageAreaImpl.h:
104053        (StorageAreaImpl):
104054        * storage/StorageAreaSync.cpp:
104055        (WebCore::StorageAreaSync::sync): if m_syncCloseDatabase flag is set and the database is not opened, bail out.
104056        * storage/StorageTracker.cpp:
104057        (WebCore):
104058        (WebCore::StorageTracker::StorageTracker):
104059        * storage/StorageTracker.h:
104060        (WebCore::StorageTracker::storageDatabaseIdleInterval):
104061        (WebCore::StorageTracker::setStorageDatabaseIdleInterval):  set the timeout value that we will wait before closing the
104062            database.  This is currently used by DumpRenderTree only.
104063        (StorageTracker):
104064
1040652012-07-09  Joshua Bell  <jsbell@chromium.org>
104066
104067        IndexedDB: A null or undefined storeNames argument to IDBDatabase::transaction() should be coerced to string
104068        https://bugs.webkit.org/show_bug.cgi?id=90474
104069
104070        Reviewed by Tony Chang.
104071
104072        Test: storage/indexeddb/transaction-basics.html
104073
104074        * Modules/indexeddb/IDBDatabase.cpp:
104075        (WebCore::IDBDatabase::transaction):
104076        * Modules/indexeddb/IDBDatabase.idl:
104077
1040782012-07-09  Joshua Bell  <jsbell@chromium.org>
104079
104080        IndexedDB: Remove obsolete accessor plumbing
104081        https://bugs.webkit.org/show_bug.cgi?id=90812
104082
104083        Reviewed by Tony Chang.
104084
104085        No new tests - just deleting code.
104086
104087        * Modules/indexeddb/IDBTransaction.cpp:
104088        (WebCore::IDBTransaction::IDBTransaction): Since backend mode() is disconnected, can no
104089        longer assert that front-end/back-end modes match; not worth it to keeping the plumbing.
104090
1040912012-07-09  Dana Jansens  <danakj@chromium.org>
104092
104093        [chromium] Remove HashMap workaround for layers with id=0 in CCDamageTracker
104094        https://bugs.webkit.org/show_bug.cgi?id=90825
104095
104096        Reviewed by Adrienne Walker.
104097
104098        Layer ids are no longer allowed to be 0, and the behaviour is guarded
104099        with asserts, so this workaround is not needed any longer.
104100
104101        * platform/graphics/chromium/cc/CCDamageTracker.h:
104102        (CCDamageTracker):
104103
1041042012-07-09  Vincent Scheib  <scheib@chromium.org>
104105
104106        Pointer Lock requestPointerLock rejects locking an element not in a document.
104107        https://bugs.webkit.org/show_bug.cgi?id=90821
104108
104109        Reviewed by Adrienne Walker.
104110
104111        Test: pointer-lock/lock-element-not-in-dom.html
104112
104113        * page/PointerLockController.cpp:
104114        (WebCore::PointerLockController::requestPointerLock):
104115
1041162012-07-09  Eric Seidel  <eric@webkit.org>
104117
104118        document.write of scripts that also document.write sometimes writes async
104119        https://bugs.webkit.org/show_bug.cgi?id=89102
104120
104121        Reviewed by Adam Barth.
104122
104123        When a script tag is first encountered, the TreeBuilder holds the element and returns
104124        out to the outer HTMLDocumentParser parse loop.  The HTMLDocumentParser then takes
104125        the script element and passes it to the HTMLScriptRunner for execution. However, if the
104126        script is an "external script" the HTMLScriptRunner may have to wait for that parser
104127        blocking script to load, and may store the script in its own m_parserBlockingScript member.
104128
104129        While the HTMLScriptRunner has this not-yet-loaded-script the parser is also blocked.
104130        Because the "paused" state of the parser was held as a separate bool on the TreeBuilder
104131        we'd have to be careful to update it to reflect the current state of this pending script
104132        on the HTMLScriptRunner.
104133
104134        This patch removes this separate "paused" bool and makes the HTMLDocumentParser responsible
104135        for the "paused" state of the parser through the isWaitingForScripts() function which
104136        knows how to check both the TreeBuilder and the ScriptRunner for possible parser-blocking scripts.
104137
104138        I suspect this change may actually fix a bunch of edge cases where we were not
104139        checking for the HTMLScriptRunner's parser blocking script and thus incorrectly ending
104140        the parser, or not starting the pre-load scanner, etc.
104141
104142        As part of this change I also renamed m_haveParsingBlockingScript in HTMLScriptRunner to match
104143        the naming style used elsewhere in the parser, as well as removed all the "bool" return values
104144        for these parse/execute functions as they are no longer useful (or correct). The correct way
104145        is always to check HTMLDocumentParser::isWaitingForScripts().
104146
104147        Test: fast/parser/cached-script-document-write.html
104148
104149        * html/parser/HTMLDocumentParser.cpp:
104150        (WebCore::HTMLDocumentParser::pumpTokenizerIfPossible):
104151        (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
104152        (WebCore::HTMLDocumentParser::canTakeNextToken):
104153        (WebCore::HTMLDocumentParser::isWaitingForScripts):
104154        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
104155        (WebCore::HTMLDocumentParser::notifyFinished):
104156        (WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets):
104157        * html/parser/HTMLScriptRunner.cpp:
104158        (WebCore::HTMLScriptRunner::~HTMLScriptRunner):
104159        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
104160        (WebCore::HTMLScriptRunner::execute):
104161        (WebCore::HTMLScriptRunner::hasParserBlockingScript):
104162        (WebCore::HTMLScriptRunner::executeParsingBlockingScripts):
104163        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
104164        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
104165        (WebCore::HTMLScriptRunner::requestParsingBlockingScript):
104166        (WebCore::HTMLScriptRunner::runScript):
104167        * html/parser/HTMLScriptRunner.h:
104168        (HTMLScriptRunner):
104169        * html/parser/HTMLTreeBuilder.cpp:
104170        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
104171        (WebCore::HTMLTreeBuilder::takeScriptToProcess):
104172        (WebCore::HTMLTreeBuilder::processEndTag):
104173        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
104174        * html/parser/HTMLTreeBuilder.h:
104175        (HTMLTreeBuilder):
104176        (WebCore::HTMLTreeBuilder::hasParserBlockingScript):
104177
1041782012-07-09  Ryosuke Niwa  <rniwa@webkit.org>
104179
104180        Microdata tests are flaky
104181        https://bugs.webkit.org/show_bug.cgi?id=90830
104182
104183        Reviewed by Antti Koivisto.
104184
104185        The bug was caused by SpaceSplitString's not copying on write properly.
104186        Even if there was exactly one owner of the SpaceSplitString, we should still not modify
104187        m_data since m_data is associated with a particular m_keyString in sharedDataMap().
104188
104189        The only situation in which we can safely modify m_data is when m_data's m_keyString is null
104190        meaning that it had been unique'ed. Furthermore, this optimization had not been used for
104191        class lists because class list's refCount is always zero as its ref and deref are forwarded
104192        to the associated Element's ref and deref. This fix re-enables the optimization for class lists.
104193
104194        This behavior change is tested by existing microdata API tests. Without this patch,
104195        some tests such as properties-collection-add-remove-property.html fail on the first run
104196        when several tests were ran in the same WebKit instance.
104197
104198        * dom/SpaceSplitString.h:
104199        (WebCore::SpaceSplitStringData::isUnique):
104200        (WebCore::SpaceSplitString::ensureUnique):
104201
1042022012-07-09  Dana Jansens  <danakj@chromium.org>
104203
104204        [chromium] Decouple RenderPass drawing from CCRenderSurface
104205        https://bugs.webkit.org/show_bug.cgi?id=90573
104206
104207        Reviewed by Adrienne Walker.
104208
104209        Removes the managed textures from CCRenderSurface and stores them in a
104210        HashMap in LayerRendererChromium.
104211
104212        At the start of a frame, all textures for the frame are reserved, and
104213        unneeded textures are deleted. After each quad is drawn, evicted textures
104214        (ie temporary textures used for background filters) are deleted to keep
104215        within memory limits. At the end of the frame, all surface contents
104216        textures are kept reserved and thus not deleted.
104217
104218        We add a numeric identifier to CCRenderPass which can be used to
104219        identify the pass across serialization in the future, and is used
104220        in the interface to LayerRendererChromium. Also we add to the
104221        CCRenderPass a contentsChangedSinceLastFrame() flag so that the
104222        value does not need to be retrieved from the CCRenderSurface.
104223
104224        The pointer from CCRenderPass to CCRenderSurface remains for some
104225        code in the CCLayerTreeHostImpl, and will be addressed in the future, but
104226        the pointer is no longer used at all while drawing a frame inside
104227        LayerRendererChromium.
104228
104229        Covered by existing tests, no intended change in behaviour.
104230
104231        * platform/graphics/chromium/LayerRendererChromium.cpp:
104232        (WebCore::LayerRendererChromium::releaseRenderPassTextures):
104233        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
104234        (WebCore):
104235        (WebCore::LayerRendererChromium::haveCachedResourcesForRenderPassId):
104236        (WebCore::LayerRendererChromium::drawQuad):
104237        (WebCore::LayerRendererChromium::drawBackgroundFilters):
104238        (WebCore::LayerRendererChromium::drawRenderPassQuad):
104239        (WebCore::LayerRendererChromium::finishDrawingFrame):
104240        (WebCore::LayerRendererChromium::useRenderPass):
104241        (WebCore::LayerRendererChromium::initializeSharedObjects):
104242        * platform/graphics/chromium/LayerRendererChromium.h:
104243        (LayerRendererChromium):
104244        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
104245        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
104246        (WebCore::CCLayerTreeHostImpl::removePassesWithCachedTextures):
104247        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
104248        (CCLayerTreeHostImpl):
104249        * platform/graphics/chromium/cc/CCRenderPass.cpp:
104250        (WebCore::CCRenderPass::create):
104251        (WebCore::CCRenderPass::CCRenderPass):
104252        * platform/graphics/chromium/cc/CCRenderPass.h:
104253        (CCRenderPass):
104254        (WebCore::CCRenderPass::id):
104255        (WebCore::CCRenderPass::setFramebufferOutputRect):
104256        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
104257        (WebCore::CCRenderPassDrawQuad::create):
104258        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
104259        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
104260        (CCRenderPassDrawQuad):
104261        (WebCore::CCRenderPassDrawQuad::renderPassId):
104262        (WebCore::CCRenderPassDrawQuad::contentsChangedSinceLastFrame):
104263        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
104264        (WebCore::CCRenderSurface::appendQuads):
104265        * platform/graphics/chromium/cc/CCRenderSurface.h:
104266        (WebCore):
104267        (CCRenderSurface):
104268        * platform/graphics/chromium/cc/CCRenderer.h:
104269        (CCRenderer):
104270        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
104271        (WebCore::CCTiledLayerImpl::pushTileProperties):
104272        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
104273        (CCTiledLayerImpl):
104274
1042752012-07-09  Adam Klein  <adamk@chromium.org>
104276
104277        Rename WebCore::WebKitMutationObserver to WebCore::MutationObserver
104278        https://bugs.webkit.org/show_bug.cgi?id=90810
104279
104280        Reviewed by Ojan Vafai.
104281
104282        This is in preparation for removing the vendor prefix from the
104283        MutationObserver constructor on Window (currently it's called
104284        WebKitMutationObserver). Doing the WebCore-internal rename first
104285        makes that change a much smaller one, which is especially useful
104286        because there's ongoing discussion of when the prefix should be
104287        removed from the web-facing API.
104288
104289        * CMakeLists.txt:
104290        * DerivedSources.cpp:
104291        * DerivedSources.make:
104292        * GNUmakefile.list.am:
104293        * Target.pri:
104294        * UseJSC.cmake:
104295        * UseV8.cmake:
104296        * WebCore.gypi:
104297        * WebCore.vcproj/WebCore.vcproj:
104298        * WebCore.xcodeproj/project.pbxproj:
104299        * bindings/js/JSBindingsAllInOne.cpp:
104300        * bindings/js/JSMainThreadExecState.cpp:
104301        (WebCore::JSMainThreadExecState::didLeaveScriptContext):
104302        * bindings/js/JSMutationCallbackCustom.cpp:
104303        (WebCore::JSMutationCallback::handleEvent):
104304        * bindings/js/JSMutationObserverCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebKitMutationObserverCustom.cpp.
104305        (WebCore):
104306        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
104307        * bindings/v8/V8RecursionScope.cpp:
104308        (WebCore::V8RecursionScope::didLeaveScriptContext):
104309        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
104310        (WebCore::V8MutationCallback::handleEvent):
104311        * bindings/v8/custom/V8MutationObserverCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitMutationObserverCustom.cpp.
104312        (WebCore):
104313        (WebCore::V8MutationObserver::constructorCallback):
104314        * dom/CharacterData.cpp:
104315        * dom/ChildListMutationScope.h:
104316        (WebCore::ChildListMutationScope::ChildListMutationScope):
104317        * dom/DOMAllInOne.cpp:
104318        * dom/Document.h:
104319        (WebCore::Document::hasMutationObserversOfType):
104320        * dom/Element.cpp:
104321        * dom/MutationCallback.h:
104322        (WebCore):
104323        (MutationCallback):
104324        * dom/MutationCallback.idl:
104325        * dom/MutationObserver.cpp: Renamed from Source/WebCore/dom/WebKitMutationObserver.cpp.
104326        (WebCore):
104327        (WebCore::MutationObserver::ObserverLessThan::operator()):
104328        (WebCore::MutationObserver::create):
104329        (WebCore::MutationObserver::MutationObserver):
104330        (WebCore::MutationObserver::~MutationObserver):
104331        (WebCore::MutationObserver::validateOptions):
104332        (WebCore::MutationObserver::observe):
104333        (WebCore::MutationObserver::takeRecords):
104334        (WebCore::MutationObserver::disconnect):
104335        (WebCore::MutationObserver::observationStarted):
104336        (WebCore::MutationObserver::observationEnded):
104337        (WebCore::activeMutationObservers):
104338        (WebCore::MutationObserver::enqueueMutationRecord):
104339        (WebCore::MutationObserver::setHasTransientRegistration):
104340        (WebCore::MutationObserver::deliver):
104341        (WebCore::MutationObserver::deliverAllMutations):
104342        * dom/MutationObserver.h: Renamed from Source/WebCore/dom/WebKitMutationObserver.h.
104343        (WebCore):
104344        (MutationObserver):
104345        * dom/MutationObserver.idl: Renamed from Source/WebCore/dom/WebKitMutationObserver.idl.
104346        * dom/MutationObserverInterestGroup.cpp:
104347        (WebCore::MutationObserverInterestGroup::createIfNeeded):
104348        (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
104349        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
104350        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
104351        * dom/MutationObserverInterestGroup.h:
104352        (WebCore::MutationObserverInterestGroup::createForChildListMutation):
104353        (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
104354        (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
104355        (MutationObserverInterestGroup):
104356        * dom/MutationObserverRegistration.cpp:
104357        (WebCore::MutationObserverRegistration::create):
104358        (WebCore::MutationObserverRegistration::MutationObserverRegistration):
104359        (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom):
104360        * dom/MutationObserverRegistration.h:
104361        (MutationObserverRegistration):
104362        (WebCore::MutationObserverRegistration::isSubtree):
104363        (WebCore::MutationObserverRegistration::observer):
104364        (WebCore::MutationObserverRegistration::deliveryOptions):
104365        (WebCore::MutationObserverRegistration::mutationTypes):
104366        * dom/Node.cpp:
104367        (WebCore::Node::collectMatchingObserversForMutation):
104368        (WebCore::Node::getRegisteredMutationObserversOfType):
104369        (WebCore::Node::registerMutationObserver):
104370        * dom/Node.h:
104371        (Node):
104372        * dom/NodeRareData.h:
104373        * page/DOMWindow.idl:
104374
1043752012-07-09  Filip Pizlo  <fpizlo@apple.com>
104376
104377        Unreviewed, rolling out http://trac.webkit.org/changeset/122116 and http://trac.webkit.org/changeset/122119
104378
104379        * GNUmakefile.list.am:
104380        * PlatformBlackBerry.cmake:
104381        * Target.pri:
104382        * WebCore.gypi:
104383        * WebCore.xcodeproj/project.pbxproj:
104384        * platform/graphics/GraphicsContext3D.h:
104385        (WebCore):
104386        * platform/graphics/OpenGLESShims.h:
104387        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
104388        (WebCore):
104389        * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
104390        (WebCore):
104391        * platform/graphics/mac/GraphicsContext3DMac.mm:
104392        (WebCore):
104393        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
104394        (WebCore::Extensions3DOpenGL::Extensions3DOpenGL):
104395        (WebCore::Extensions3DOpenGL::supports):
104396        (WebCore):
104397        (WebCore::Extensions3DOpenGL::ensureEnabled):
104398        (WebCore::Extensions3DOpenGL::isEnabled):
104399        (WebCore::Extensions3DOpenGL::getGraphicsResetStatusARB):
104400        (WebCore::Extensions3DOpenGL::getTranslatedShaderSourceANGLE):
104401        (WebCore::Extensions3DOpenGL::copyTextureCHROMIUM):
104402        * platform/graphics/opengl/Extensions3DOpenGL.h:
104403        (Extensions3DOpenGL):
104404        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
104405        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
104406        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
104407        * platform/graphics/opengl/Extensions3DOpenGLES.h:
104408        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
104409        (WebCore):
104410        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
104411        (WebCore::systemAllowsMultisamplingOnATICards):
104412        (WebCore):
104413        (WebCore::GraphicsContext3D::validateAttributes):
104414        (WebCore::GraphicsContext3D::compileShader):
104415        (WebCore::GraphicsContext3D::readPixels):
104416        (WebCore::GraphicsContext3D::releaseShaderCompiler):
104417        (WebCore::GraphicsContext3D::getExtensions):
104418        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
104419        (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
104420        (WebCore::GraphicsContext3D::reshapeFBOs):
104421        (WebCore):
104422        * platform/graphics/qt/GraphicsContext3DQt.cpp:
104423        (WebCore):
104424
1044252012-07-09  Ryosuke Niwa  <rniwa@webkit.org>
104426
104427        Build fix after r122115 and some cleanups.
104428
104429        * html/HTMLCollection.h:
104430        (HTMLCollection):
104431        * html/HTMLElement.cpp:
104432        (WebCore::HTMLElement::properties):
104433        * html/HTMLElement.h:
104434        (HTMLElement):
104435        * html/HTMLPropertiesCollection.cpp:
104436        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
104437        * html/HTMLPropertiesCollection.h:
104438        (HTMLPropertiesCollection):
104439
1044402012-07-09  Dean Jackson  <dino@apple.com>
104441
104442        Tiled drawing means some elements can disappear behind the page
104443        https://bugs.webkit.org/show_bug.cgi?id=88906
104444
104445        Reviewed by Simon Fraser.
104446
104447        The compositing layers in the tile cache could become siblings
104448        of the compositing layers for page elements. This meant that in
104449        some 3d transforms, the elements could disappear behind the
104450        page background (which is rendered into the tile cache) or intersect
104451        with the tile cache tiles.
104452
104453        Fix this by inserting a flattening layer between the tile cache
104454        and the page, ensuring that the cache will always be rendered
104455        first. I was able to reuse the clipping layer for this, because
104456        the tile cache is attached to the RenderView, so there should never
104457        be a case where we have both a clipping layer and tiles.
104458
104459        The unfortunate part of this code is the temporary state variable
104460        that wraps the call to GraphicsLayer::create. Because that method
104461        calls back into the object, we need to make sure we don't create
104462        another tile cache.
104463
104464        Also added some obvious names to the tile cache layers to
104465        help with debugging.
104466
104467        Test: compositing/tile-cache-must-flatten.html
104468
104469        * platform/graphics/ca/mac/TileCache.mm:
104470        (WebCore::TileCache::TileCache): give the tile host layer a name.
104471        (WebCore::TileCache::createTileLayer):
104472        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
104473        (WebCore): give each tile layer a name.
104474        * rendering/RenderLayerBacking.cpp:
104475        (WebCore):
104476        (WebCore::RenderLayerBacking::shouldUseTileCache): check if we're in the middle
104477        of creating the primary graphics layer before answering.
104478        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): wrap our call to
104479        createGraphicsLayer with a message to indicate we are making the layer that should
104480        get a tile cache.
104481        (WebCore::RenderLayerBacking::destroyGraphicsLayers):
104482        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): needs to make
104483        sure the flattening layer is in the tree.
104484        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
104485        (WebCore::RenderLayerBacking::updateInternalHierarchy):
104486        (WebCore::RenderLayerBacking::updateClippingLayers):
104487        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
104488        * rendering/RenderLayerBacking.h: rename m_clippingLayer to m_containmentLayer
104489        because it can now either be the clip or the tile cache flattener. Also
104490        a new state property used when creating the main graphics layer.
104491        (WebCore::RenderLayerBacking::hasClippingLayer):
104492        (WebCore::RenderLayerBacking::clippingLayer):
104493        (WebCore::RenderLayerBacking::parentForSublayers):
104494        (WebCore::RenderLayerBacking::hasTileCacheFlatteningLayer):
104495        (WebCore::RenderLayerBacking::tileCacheFlatteningLayer):
104496        (RenderLayerBacking):
104497
1044982012-07-09  Christophe Dumez  <christophe.dumez@intel.com>
104499
104500        [EFL] Log significant Gamepad API-related events
104501        https://bugs.webkit.org/show_bug.cgi?id=90595
104502
104503        Reviewed by Antonio Gomes.
104504
104505        Log significant Gamepad API-related events in
104506        GamepadsEfl.
104507
104508        No new tests, no behavior change.
104509
104510        * platform/efl/GamepadsEfl.cpp:
104511        (WebCore::GamepadDeviceEfl::deviceFile):
104512        (GamepadDeviceEfl):
104513        (WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
104514        (WebCore::GamepadDeviceEfl::readCallback):
104515        (WebCore::GamepadsEfl::registerDevice):
104516        (WebCore::GamepadsEfl::unregisterDevice):
104517
1045182012-07-09  Simon Fraser  <simon.fraser@apple.com>
104519
104520        Reduce the amount of flashing when falling into tiled layers
104521        https://bugs.webkit.org/show_bug.cgi?id=90808
104522
104523        Reviewed by Dean Jackson.
104524
104525        Implement +prefetchedTiles so that CATiledLayer renders more
104526        tiles at a time, reducing the appearance of flashing.
104527
104528        * platform/graphics/mac/WebTiledLayer.mm:
104529        (+[WebTiledLayer prefetchedTiles]):
104530
1045312012-07-09  Leandro Gracia Gil  <leandrogracia@chromium.org>
104532
104533        SurroundingText should not advance character iterators if they are at end.
104534        https://bugs.webkit.org/show_bug.cgi?id=90560
104535
104536        Reviewed by Ryosuke Niwa.
104537
104538        CharacterIterator and BackwardsCharacterIterator try to advance their
104539        internal TextIterator without checking if they already are at end.
104540        This can cause crashes in TextIterator::advance.
104541
104542        Test: platform/chromium/editing/surrounding-text/surrounding-text.html
104543
104544        * editing/SurroundingText.cpp:
104545        (WebCore::SurroundingText::SurroundingText):
104546        (WebCore::SurroundingText::rangeFromContentOffsets):
104547
1045482012-07-09  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
104549
104550        [EFL] [WK2] Ecore errors from ecore_evas_screen_geometry_get()
104551        https://bugs.webkit.org/show_bug.cgi?id=90609
104552
104553        Reviewed by Daniel Bates.
104554
104555        Do not call ecore_evas_screen_geometry_get() if ecoreEvas is null.
104556
104557        No new tests. This patch doesn't change behavior.
104558
104559        * platform/efl/PlatformScreenEfl.cpp:
104560        (WebCore::screenRect): Early return if Evas is null.
104561
1045622012-07-09  Alexandru Chiculita  <achicu@adobe.com>
104563
104564        [CSS Filters] Blur filter is not repainted correctly when applied on a parent of a fixed element
104565        https://bugs.webkit.org/show_bug.cgi?id=90087
104566
104567        Reviewed by Simon Fraser.
104568
104569        Added a new method, RenderLayer::hasAncestorWithFilterOutsets, to check that there's no filter with outsets (ie. blur) 
104570        applied on top level fixed positioned elements, nor any of its parent layers. In the event of a blur filter we need to
104571        disable the fast scrolling optimization, otherwise the outsets of the filter will be carried around the page and 
104572        repainting will not work correctly.
104573
104574        Tests: css3/filters/blur-filter-page-scroll-parents.html
104575               css3/filters/blur-filter-page-scroll-self.html
104576
104577        * page/FrameView.cpp:
104578        (WebCore::FrameView::scrollContentsFastPath):
104579        * rendering/RenderLayer.cpp:
104580        (WebCore):
104581        (WebCore::RenderLayer::hasAncestorWithFilterOutsets):
104582        * rendering/RenderLayer.h:
104583        (RenderLayer):
104584
1045852012-07-09  Joshua Bell  <jsbell@chromium.org>
104586
104587        IndexedDB: Empty arrays shouldn't be valid key paths
104588        https://bugs.webkit.org/show_bug.cgi?id=90798
104589
104590        Reviewed by Tony Chang.
104591
104592        Other IDB implementations already enforce this although it is not yet in 
104593        the spec (see https://www.w3.org/Bugs/Public/show_bug.cgi?id=17657). If an
104594        empty array is passed as the key path arg to IDBDatabase.createObjectStore()
104595        or IDBObjectStore.createIndex(), a SYNTAX_ERR DOMException is now thrown.
104596
104597        Test: storage/indexeddb/keypath-arrays.html
104598              storage/indexeddb/keypath-basics.html
104599
104600        * Modules/indexeddb/IDBKeyPath.cpp:
104601        (WebCore::IDBKeyPath::isValid): Test for empty array.
104602
1046032012-07-09  Dana Jansens  <danakj@chromium.org>
104604
104605        [chromium] Create render surfaces on main thread only for the current frame
104606        https://bugs.webkit.org/show_bug.cgi?id=89793
104607
104608        Reviewed by Adrienne Walker.
104609
104610        Previously we would create render surfaces for animating layers
104611        in the main thread since these layers might have a surface on impl,
104612        in order to assist culling. This makes it very difficult to estimate
104613        how much texture memory is needed for RenderSurfaces on the main
104614        thread, in order to keep contents+surface memory below our limit.
104615
104616        Here we stop doing this, and create RenderSurfaces on both threads
104617        under the same conditions, so main thread has surfaces only if the
104618        layers in its current frame demand them. While this may reduce
104619        paint culling within an animating subtree, this seems like an edge
104620        case and knowing the amount of surface memory needed for the frame
104621        is important.
104622
104623        Animation tests in CCLayerTreeHostCommonTest used to verify that these
104624        layers got surfaces, so now no longer do. Creation of surfaces under
104625        other conditions is covered by other CCLayerTreeHostCommonTests.
104626
104627        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
104628        (WebCore::subtreeShouldRenderToSeparateSurface):
104629
1046302012-07-09  Ryosuke Niwa  <rniwa@webkit.org>
104631
104632        Mac build fix after r122116.
104633
104634        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
104635
1046362012-07-09  Ryosuke Niwa  <rniwa@webkit.org>
104637
104638        EFL build fix after r122115.
104639
104640        * html/HTMLPropertiesCollection.cpp:
104641        (WebCore::HTMLPropertiesCollection::create):
104642
1046432012-07-09  Joshua Netterfield  <jnetterfield@rim.com>
104644        Make GC3D and E3D more maintainable for GLES platforms
104645        https://bugs.webkit.org/show_bug.cgi?id=90567
104646
104647        Reviewed by Rob Buis.
104648
104649        This patch cleans up code for WebGL on OpenGLES platforms which use 
104650        GraphicsContext3DOpenGL* and Extensions3DOpenGL*. Although
104651        GraphicsContext3DOpenGL was already split into GraphicsContext3DOpenGL,
104652        GraphicsContext3DOpenGLCommon, and  GraphicsContext3DOpenGLES, this patch
104653        is an attempt to refactor this code in a way that will help BlackBerry and
104654        other teams support WebGL on mobile platforms with as little use of
104655        "#IF USE(OPENGL_ES_2)" in common code as possible. Also included is the
104656        separation of Extensions3DOpenGL into Extensions3DOpenGLCommon,
104657        Extensions3DOpenGL, and Extensions3DOpenGLES as well as the introduction
104658        of OpenGLESShims.
104659
104660        This patch is created in large part by Jonathan Feldstein.
104661
104662        No new tests: no new behaviour.
104663
104664        * PlatformBlackBerry.cmake: Recognize BlackBerry as OPENGL ES, add new files to build
104665        * Target.pri: Add new Extensions3DOpenGL* to WebGL builds
104666        * platform/graphics/GraphicsContext3D.h: Add validateDepthStencil, make systemAllowsMultisamplingOnATICards a a member function.
104667        (WebCore):
104668        * platform/graphics/OpenGLESShims.h: Added.
104669        * platform/graphics/opengl/Extensions3DOpenGL.cpp: Move code to Extensions3DOpenGLCommon where possible
104670        (WebCore::Extensions3DOpenGL::Extensions3DOpenGL): Reflect that it is now inherits Extensions3DCommon
104671        (WebCore::Extensions3DOpenGL::supportsExtension): Contains OpenGL specific code from supports
104672        (WebCore):
104673        (WebCore::Extensions3DOpenGL::getExtensions): Returns a list of extensions
104674        * platform/graphics/opengl/Extensions3DOpenGL.h: Remove functions now in Extensions3DOpenGLCommon
104675        (WebCore):
104676        (Extensions3DOpenGL):
104677        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Added.
104678        (WebCore):
104679        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
104680        (WebCore::Extensions3DOpenGLCommon::~Extensions3DOpenGLCommon):
104681        (WebCore::Extensions3DOpenGLCommon::supports):
104682        (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
104683        (WebCore::Extensions3DOpenGLCommon::isEnabled):
104684        (WebCore::Extensions3DOpenGLCommon::getGraphicsResetStatusARB):
104685        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Existed before, but did nothing. Now does what is says it does.
104686        (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions): Moved from Extensions3DOpenGL::supports
104687        * platform/graphics/opengl/Extensions3DOpenGLCommon.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
104688        (WebCore):
104689        (Extensions3DOpenGLCommon):
104690        * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Added.
104691        (WebCore):
104692        (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
104693        (WebCore::Extensions3DOpenGLES::~Extensions3DOpenGLES):
104694        (WebCore::Extensions3DOpenGLES::framebufferTexture2DMultisampleIMG):
104695        (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisampleIMG):
104696        (WebCore::Extensions3DOpenGLES::createVertexArrayOES):
104697        (WebCore::Extensions3DOpenGLES::deleteVertexArrayOES):
104698        (WebCore::Extensions3DOpenGLES::isVertexArrayOES):
104699        (WebCore::Extensions3DOpenGLES::bindVertexArrayOES):
104700        (WebCore::Extensions3DOpenGLES::supportsExtension): Contains OpenGLES specific code from supports
104701        (WebCore::Extensions3DOpenGLES::getExtensions):
104702        * platform/graphics/opengl/Extensions3DOpenGLES.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
104703        (WebCore):
104704        (Extensions3DOpenGLES):
104705        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
104706        (WebCore::GraphicsContext3D::validateAttributes):
104707        (WebCore):
104708        (WebCore::GraphicsContext3D::renderbufferStorage):
104709        (WebCore::GraphicsContext3D::texImage2D):
104710        (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
104711        (WebCore::GraphicsContext3D::getExtensions):
104712        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
104713        (WebCore::GraphicsContext3D::validateDepthStencil):
104714        (WebCore::GraphicsContext3D::clear):
104715        (WebCore::GraphicsContext3D::isTexture):
104716        (WebCore):
104717        (WebCore::GraphicsContext3D::lineWidth):
104718        (WebCore::GraphicsContext3D::linkProgram):
104719        (WebCore::GraphicsContext3D::pixelStorei):
104720        (WebCore::GraphicsContext3D::polygonOffset):
104721        (WebCore::GraphicsContext3D::readPixels):
104722        (WebCore::GraphicsContext3D::deleteBuffer):
104723        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
104724        (WebCore::GraphicsContext3D::releaseShaderCompiler):
104725        (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
104726        (WebCore::GraphicsContext3D::validateAttributes):
104727        (WebCore):
104728        (WebCore::GraphicsContext3D::getExtensions):
104729        (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
104730        * platform/graphics/qt/GraphicsContext3DQt.cpp:
104731        (WebCore):
104732        (WebCore::GraphicsContext3D::releaseShaderCompiler):
104733
1047342012-07-02  Ryosuke Niwa  <rniwa@webkit.org>
104735
104736        Make HTMLCollection RefCounted
104737        https://bugs.webkit.org/show_bug.cgi?id=90414
104738
104739        Reviewed by Sam Weinig.
104740
104741        Make HTMLCollection ref counted and stop forwarding ref and deref to its owner (m_base)
104742        so as to align its life time management to that of DynamicNodeList.
104743
104744        After this patch, each HTMLCollection is owned by JSC/V8 and m_cachedCollections in ElementRareData
104745        and m_collection in Document merely hold raw pointers for the caching purpose. These raw pointers
104746        are cleared when each HTMLCollection is destructed via corresponding removeCachedHTMLCollection's.
104747
104748        In the destructor of HTMLCollection, we use the CollectionType to decide whether base() is an element
104749        or an document, and call the appropriate removeCachedHTMLCollection except for WindowNamedItems and
104750        DocumentNamedItems. For those two types, we need to know the atomic string name associated with
104751        the collection just like many DynamicNodeList to remove the cache, so we let HTMLNameCollection
104752        directly call removeWindowNamedItemCache and removeDocumentNamedItemCache. We'll cleanup this mess in
104753        a follow up patch using a nice class hierarchy and virtual destructors.
104754
104755        * accessibility/AccessibilityRenderObject.cpp:
104756        (WebCore::AccessibilityRenderObject::getDocumentLinks):
104757        * bindings/js/JSDOMWindowCustom.cpp:
104758        (WebCore::namedItemGetter):
104759        * bindings/js/JSHTMLDocumentCustom.cpp:
104760        (WebCore::JSHTMLDocument::nameGetter):
104761        * bindings/v8/custom/V8DOMWindowCustom.cpp:
104762        (WebCore::V8DOMWindow::namedPropertyGetter):
104763        * dom/Document.cpp:
104764        (WebCore::Document::Document):
104765        (WebCore::Document::openSearchDescriptionURL):
104766        (WebCore):
104767        (WebCore::Document::cachedCollection):
104768        (WebCore::Document::removeCachedHTMLCollection):
104769        (WebCore::Document::images):
104770        (WebCore::Document::applets):
104771        (WebCore::Document::embeds):
104772        (WebCore::Document::plugins):
104773        (WebCore::Document::objects):
104774        (WebCore::Document::scripts):
104775        (WebCore::Document::links):
104776        (WebCore::Document::forms):
104777        (WebCore::Document::anchors):
104778        (WebCore::Document::all):
104779        (WebCore::Document::windowNamedItems):
104780        (WebCore::Document::documentNamedItems):
104781        (WebCore::Document::removeWindowNamedItemCache):
104782        (WebCore::Document::removeDocumentNamedItemCache):
104783        * dom/Document.h:
104784        (Document):
104785        * dom/Element.cpp:
104786        (WebCore::Element::ensureCachedHTMLCollection):
104787        (WebCore::ElementRareData::ensureCachedHTMLCollection):
104788        (WebCore::Element::removeCachedHTMLCollection):
104789        (WebCore):
104790        * dom/Element.h:
104791        (Element):
104792        * dom/ElementRareData.h:
104793        (ElementRareData):
104794        (WebCore::ElementRareData::cachedHTMLCollection):
104795        (WebCore::ElementRareData::removeCachedHTMLCollection):
104796        * html/CollectionType.h:
104797        (WebCore): Since WindowNamedItems is not a part of UnnamedDocumentCachedType, we shouldn't addd 1.
104798        (WebCore::isUnnamedDocumentCachedType):
104799        (WebCore::isNodeCollectionType):
104800        * html/HTMLAllCollection.cpp:
104801        (WebCore::HTMLAllCollection::create):
104802        * html/HTMLAllCollection.h:
104803        (HTMLAllCollection):
104804        * html/HTMLCollection.cpp:
104805        (WebCore::HTMLCollection::create):
104806        (WebCore::HTMLCollection::~HTMLCollection):
104807        (WebCore::HTMLCollection::itemAfter):
104808        * html/HTMLCollection.h:
104809        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
104810        (HTMLCollection):
104811        (WebCore::HTMLCollection::base):
104812        * html/HTMLDataListElement.cpp:
104813        (WebCore::HTMLDataListElement::options):
104814        * html/HTMLDataListElement.h:
104815        (HTMLDataListElement):
104816        * html/HTMLElement.cpp:
104817        (WebCore::HTMLElement::children):
104818        (WebCore::HTMLElement::properties):
104819        * html/HTMLElement.h:
104820        (HTMLElement):
104821        * html/HTMLFieldSetElement.cpp:
104822        (WebCore::HTMLFieldSetElement::elements):
104823        * html/HTMLFieldSetElement.h:
104824        (HTMLFieldSetElement):
104825        * html/HTMLFormCollection.cpp:
104826        (WebCore::HTMLFormCollection::create):
104827        * html/HTMLFormCollection.h:
104828        (HTMLFormCollection):
104829        * html/HTMLFormElement.cpp:
104830        (WebCore::HTMLFormElement::elements):
104831        * html/HTMLFormElement.h:
104832        (HTMLFormElement):
104833        * html/HTMLMapElement.cpp:
104834        (WebCore::HTMLMapElement::imageElement):
104835        (WebCore::HTMLMapElement::areas):
104836        * html/HTMLMapElement.h:
104837        (HTMLMapElement):
104838        * html/HTMLNameCollection.cpp:
104839        (WebCore::HTMLNameCollection::HTMLNameCollection):
104840        (WebCore::HTMLNameCollection::~HTMLNameCollection):
104841        (WebCore):
104842        * html/HTMLNameCollection.h:
104843        (WebCore::HTMLNameCollection::create):
104844        (HTMLNameCollection):
104845        * html/HTMLOptionsCollection.cpp:
104846        (WebCore::HTMLOptionsCollection::create):
104847        * html/HTMLOptionsCollection.h:
104848        (HTMLOptionsCollection):
104849        * html/HTMLPropertiesCollection.h:
104850        (HTMLPropertiesCollection):
104851        * html/HTMLSelectElement.cpp:
104852        (WebCore::HTMLSelectElement::selectedOptions):
104853        (WebCore::HTMLSelectElement::options):
104854        * html/HTMLSelectElement.h:
104855        (HTMLSelectElement):
104856        * html/HTMLTableElement.cpp:
104857        (WebCore::HTMLTableElement::rows):
104858        (WebCore::HTMLTableElement::tBodies):
104859        * html/HTMLTableElement.h:
104860        (HTMLTableElement):
104861        * html/HTMLTableRowElement.cpp:
104862        (WebCore::HTMLTableRowElement::insertCell):
104863        (WebCore::HTMLTableRowElement::deleteCell):
104864        (WebCore::HTMLTableRowElement::cells):
104865        * html/HTMLTableRowElement.h:
104866        (HTMLTableRowElement):
104867        * html/HTMLTableRowsCollection.cpp:
104868        (WebCore::HTMLTableRowsCollection::create):
104869        * html/HTMLTableRowsCollection.h:
104870        (HTMLTableRowsCollection):
104871        * html/HTMLTableSectionElement.cpp:
104872        (WebCore::HTMLTableSectionElement::insertRow):
104873        (WebCore::HTMLTableSectionElement::deleteRow):
104874        (WebCore::HTMLTableSectionElement::rows):
104875        * html/HTMLTableSectionElement.h:
104876        (HTMLTableSectionElement):
104877
1048782012-07-09  Pavel Feldman  <pfeldman@chromium.org>
104879
104880        Web Inspector: unindent line ending block upon { hit.
104881        https://bugs.webkit.org/show_bug.cgi?id=90795
104882
104883        Reviewed by Vsevolod Vlasov.
104884
104885        Added block-start / block-end markup into the highlighter.
104886
104887        * inspector/front-end/SourceCSSTokenizer.js:
104888        (WebInspector.SourceCSSTokenizer.prototype.nextToken):
104889        * inspector/front-end/SourceCSSTokenizer.re2js:
104890        * inspector/front-end/SourceJavaScriptTokenizer.js:
104891        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
104892        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
104893        * inspector/front-end/TextEditor.js:
104894        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
104895        (WebInspector.TextEditorMainPanel.prototype._unindentAfterBlock):
104896
1048972012-07-09  Sheriff Bot  <webkit.review.bot@gmail.com>
104898
104899        Unreviewed, rolling out r122107.
104900        http://trac.webkit.org/changeset/122107
104901        https://bugs.webkit.org/show_bug.cgi?id=90794
104902
104903        Build failure on Mac debug bots (Requested by falken_ on
104904        #webkit).
104905
104906        * CMakeLists.txt:
104907        * Configurations/FeatureDefines.xcconfig:
104908        * DerivedSources.cpp:
104909        * DerivedSources.make:
104910        * DerivedSources.pri:
104911        * Target.pri:
104912        * WebCore.gypi:
104913        * WebCore.xcodeproj/project.pbxproj:
104914        * bindings/generic/RuntimeEnabledFeatures.cpp:
104915        (WebCore):
104916        * bindings/generic/RuntimeEnabledFeatures.h:
104917        (RuntimeEnabledFeatures):
104918        * dom/ContextFeatures.cpp:
104919        * dom/ContextFeatures.h:
104920        * html/HTMLDialogElement.cpp: Removed.
104921        * html/HTMLDialogElement.h: Removed.
104922        * html/HTMLDialogElement.idl: Removed.
104923        * html/HTMLElementsAllInOne.cpp:
104924        * html/HTMLTagNames.in:
104925        * page/DOMWindow.idl:
104926
1049272012-07-09  Andrei Onea  <onea@adobe.com>
104928
104929        [CSSRegions] Rename NamedFlow::getRegionsByContentNode to NamedFlow::getRegionsByContent
104930        https://bugs.webkit.org/show_bug.cgi?id=90759
104931
104932        Reviewed by Andreas Kling.
104933
104934        Renamed NamedFlow::getRegionsByContentNode to NamedFlow::getRegionsByContent as per CSS Regions spec:
104935        http://www.w3.org/TR/css3-regions/#dom-named-flow
104936
104937        Tests: fast/regions/get-regions-by-content-horiz-bt.html
104938               fast/regions/get-regions-by-content-horiz-tb.html
104939               fast/regions/get-regions-by-content-vert-lr.html
104940               fast/regions/get-regions-by-content-vert-rl.html
104941               fast/regions/get-regions-by-content.html
104942               fast/regions/get-regions-by-content2.html
104943
104944        * dom/WebKitNamedFlow.cpp:
104945        (WebCore::WebKitNamedFlow::getRegionsByContent):
104946        * dom/WebKitNamedFlow.h:
104947        (WebKitNamedFlow):
104948        * dom/WebKitNamedFlow.idl:
104949
1049502012-07-09  Matt Falkenhagen  <falken@chromium.org>
104951
104952        Add ENABLE_DIALOG_ELEMENT and skeleton files
104953        https://bugs.webkit.org/show_bug.cgi?id=90521
104954
104955        Reviewed by Kent Tamura.
104956
104957        This adds the ENABLE_DIALOG_ELEMENT feature flag and dummy implementation files for <dialog>. In addition, a runtime feature flag is added.
104958        The feature is diabled by default.
104959
104960        No new tests, as there is no behavior change.
104961
104962        * CMakeLists.txt:
104963        * Configurations/FeatureDefines.xcconfig:
104964        * DerivedSources.cpp:
104965        * DerivedSources.make:
104966        * DerivedSources.pri:
104967        * Target.pri:
104968        * WebCore.gypi:
104969        * WebCore.xcodeproj/project.pbxproj:
104970        * bindings/generic/RuntimeEnabledFeatures.cpp:
104971        (WebCore):
104972        * bindings/generic/RuntimeEnabledFeatures.h: Added a runtime feature flag for dialog.
104973        (RuntimeEnabledFeatures):
104974        (WebCore::RuntimeEnabledFeatures::dialogElementEnabled):
104975        (WebCore::RuntimeEnabledFeatures::setDialogElementEnabled):
104976        * dom/ContextFeatures.cpp:
104977        (WebCore::ContextFeatures::dialogElementEnabled):
104978        (WebCore):
104979        * dom/ContextFeatures.h: Added a per-context flag for dialog so that dialog can be disabled in HTMLTagNames.in and DOMWindow.idl when the dialog runtime feature flag is off.
104980        * html/HTMLDialogElement.cpp: Added.
104981        (WebCore):
104982        (WebCore::HTMLDialogElement::HTMLDialogElement):
104983        (WebCore::HTMLDialogElement::create):
104984        (WebCore::HTMLDialogElement::close):
104985        (WebCore::HTMLDialogElement::show):
104986        * html/HTMLDialogElement.h: Added.
104987        (WebCore):
104988        (HTMLDialogElement):
104989        * html/HTMLDialogElement.idl: Added.
104990        * html/HTMLElementsAllInOne.cpp:
104991        * html/HTMLTagNames.in:
104992        * page/DOMWindow.idl:
104993
1049942012-07-09  Pavel Feldman  <pfeldman@chromium.org>
104995
104996        Web Inspector: inspector does not reflect newly created text nodes from contenteditable
104997        https://bugs.webkit.org/show_bug.cgi?id=90779
104998
104999        Reviewed by Vsevolod Vlasov.
105000
105001        We need to report first text node as inserted, otherwise we fail to report character data modified on it.
105002
105003        * inspector/InspectorDOMAgent.cpp:
105004        (WebCore::InspectorDOMAgent::characterDataModified):
105005
1050062012-07-09  Andrey Kosyakov  <caseq@chromium.org>
105007
105008        REGRESSION(r121980) Layout Test inspector/timeline/timeline-frames.html started to crash.
105009        https://bugs.webkit.org/show_bug.cgi?id=90747
105010
105011        Reviewed by Pavel Feldman.
105012
105013        - consider didCancelFrame() call normal if there is no pending frame, remove assertion;
105014        - always set empty data object for frame records;
105015
105016        * inspector/InspectorTimelineAgent.cpp:
105017        (WebCore::InspectorTimelineAgent::didCancelFrame):
105018        (WebCore::InspectorTimelineAgent::commitFrameRecord):
105019
1050202012-07-09  Taiju Tsuiki  <tzik@chromium.org>
105021
105022        Web Inspector: Add FileContentView for FileSystemView
105023        https://bugs.webkit.org/show_bug.cgi?id=90529
105024
105025        Adding FileContentView to Inspector.
105026        This class provides preview of text files in FileSystem.
105027
105028        Reviewed by Vsevolod Vlasov.
105029
105030        * WebCore.gypi:
105031        * WebCore.vcproj/WebCore.vcproj:
105032        * inspector/compile-front-end.py:
105033        * inspector/front-end/FileContentView.js: Added.
105034        * inspector/front-end/FileSystemView.js:
105035        (WebInspector.FileSystemView.prototype.get visibleView):
105036        (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
105037        (WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
105038        (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
105039        * inspector/front-end/WebKit.qrc:
105040        * inspector/front-end/inspector.html:
105041
1050422012-07-09  Carlos Garcia Campos  <cgarcia@igalia.com>
105043
105044        [SOUP] Use soup_cookie_jar_is_persistent() to set whether cookie is a session one or not
105045        https://bugs.webkit.org/show_bug.cgi?id=90769
105046
105047        Reviewed by Gustavo Noronha Silva.
105048
105049        It's currently set to false, because there were no API to know
105050        whether cookies were persistent or not. Now that we bumped libsoup
105051        requirements, we can use soup_cookie_jar_is_persistent().
105052
105053        * platform/network/soup/CookieJarSoup.cpp:
105054        (WebCore::getRawCookies):
105055
1050562012-07-09  Taiju Tsuiki  <tzik@chromium.org>
105057
105058        Web Inspector: Add text file support for FileSystemAgent::requestFileContent
105059        https://bugs.webkit.org/show_bug.cgi?id=90439
105060
105061        Reviewed by Vsevolod Vlasov.
105062
105063        * inspector/Inspector.json:
105064        * inspector/InspectorFileSystemAgent.cpp:
105065        (WebCore):
105066        (WebCore::InspectorFileSystemAgent::requestFileContent):
105067        * inspector/InspectorFileSystemAgent.h:
105068        (InspectorFileSystemAgent):
105069        * inspector/front-end/FileSystemModel.js:
105070        (WebInspector.FileSystemModel.prototype.requestFileContent):
105071        (WebInspector.FileSystemModel.File.prototype.requestFileContent):
105072        (WebInspector.FileSystemRequestManager.prototype._fileContentReceived):
105073        (WebInspector.FileSystemDispatcher.prototype.fileContentReceived):
105074
1050752012-07-09  MORITA Hajime  <morrita@google.com>
105076
105077        [Chromium] ContextFeaturesClient::isEnabled is slow
105078        https://bugs.webkit.org/show_bug.cgi?id=90367
105079
105080        Reviewed by Kent Tamura.
105081
105082        * dom/ContextFeatures.h:
105083        (WebCore::ContextFeaturesClient::urlDidChange): Added.
105084        (WebCore::ContextFeatures::urlDidChange): Added.
105085        (WebCore):
105086        * dom/Document.cpp:
105087        (WebCore::Document::setURL): Added an urlDidChange() call.
105088
1050892012-07-09  Andrei Onea  <onea@adobe.com>
105090
105091        [CSSRegions] Implement NamedFlow::firstEmptyRegionIndex attribute
105092        https://bugs.webkit.org/show_bug.cgi?id=90608
105093
105094        Reviewed by Andreas Kling.
105095
105096        Implemented NamedFlow::firstEmptyRegionIndex as per spec: http://www.w3.org/TR/css3-regions/#dom-named-flow
105097
105098        Test: fast/regions/webkit-named-flow-first-empty-region-index.html
105099
105100        * dom/WebKitNamedFlow.cpp:
105101        (WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
105102        (WebCore):
105103        * dom/WebKitNamedFlow.h:
105104        (WebKitNamedFlow):
105105        * dom/WebKitNamedFlow.idl:
105106
1051072012-07-08  Yoshifumi Inoue  <yosin@chromium.org>
105108
105109        [Platform-Mac] Derive LocaleMac.{cpp,h} and LocalizedDateMac.cpp from LocaleWin
105110        https://bugs.webkit.org/show_bug.cgi?id=90752
105111
105112        Reviewed by Kent Tamura.
105113
105114        This patch is preparation of introducing LocaleMac class for localize date form.
105115        This patch copies LocaleWin and LocalizedDateWin.cpp as below:
105116         - LocaleMac.h from LocaleWin.h
105117         - LocaleMac.mm from LocaliedDateMac.mm
105118         - LocaliedDateMac.cpp from LocalizedDateWin.cpp
105119
105120        Due by git, diffs are appeared as new thing. I'll do svn copy at landing time.
105121
105122        No new tests. This patch doesn't change behavior.
105123
105124        * platform/text/mac/LocaleMac.h: Copied from platform/text/LocaleWin.h
105125        * platform/text/mac/LocaleMac.mm: Copied from platform/text/mac/LocalizedDateMac.mm
105126        * platform/text/mac/LocalizedDateMac.cpp: Copied from platform/text/LocalizedDateWin.cpp
105127
1051282012-07-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
105129
105130        Introduce a build flag for low quality JPEG images
105131        https://bugs.webkit.org/show_bug.cgi?id=90748
105132
105133        Reviewed by Adam Barth.
105134
105135        Introduce build options for no JPEG dithering (USE(LOW_QUALITY_IMAGE_NO_JPEG_DITHERING))
105136        and no JPEG fancy upsampling (USE(LOW_QUALITY_IMAGE_NO_JPEG_FANCY_UPSAMPLING)).
105137
105138        No new tests as there is no change in functionality.
105139
105140        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
105141        (ditherMode):
105142        (doFancyUpsampling):
105143
1051442012-07-08  Sheriff Bot  <webkit.review.bot@gmail.com>
105145
105146        Unreviewed, rolling out r121968.
105147        http://trac.webkit.org/changeset/121968
105148        https://bugs.webkit.org/show_bug.cgi?id=90749
105149
105150        Caused a link error on chromium Win dbg. (Requested by hayato
105151        on #webkit).
105152
105153        * inspector/InspectorMemoryAgent.cpp:
105154        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
105155        * inspector/front-end/NativeMemorySnapshotView.js:
105156        (WebInspector.MemoryBlockViewProperties._initialize):
105157        * platform/MemoryUsageSupport.cpp:
105158        * platform/MemoryUsageSupport.h:
105159        (MemoryUsageSupport):
105160        * platform/chromium/MemoryUsageSupportChromium.cpp:
105161
1051622012-07-08  Mary Wu  <mary.wu@torchmobile.com.cn>
105163
105164        [BlackBerry] Make setForceDownload a setter method.
105165        https://bugs.webkit.org/show_bug.cgi?id=90591
105166
105167        Reviewed by Rob Buis.
105168
105169        * platform/network/blackberry/ResourceRequest.h:
105170        (WebCore::ResourceRequest::setForceDownload):
105171
1051722012-07-05  MORITA Hajime  <morrita@google.com>
105173
105174        Heap-use-after-free in WebCore::RenderObject::destroyAndCleanupAnonymousWrappers
105175        https://bugs.webkit.org/show_bug.cgi?id=90480
105176
105177        Reviewed by Kent Tamura.
105178
105179        If <select> has any insertion point, the attachment phase
105180        unpextedly creates a renderer for distributed node and added to
105181        the renderer of the <select>, which breaks an assumption and
105182        results the crash.
105183
105184        This change tighten the childShouldCreateRenderer() to forbid
105185        child renderers even from distributed nodes.
105186
105187        There is an exception as always: ValidationMessage can create a
105188        ShadowRoot to <select>, which generates usually-forbidden child
105189        renderers.  This change introduces HTMLFormControlElement::validationMessageContains()
105190        to let these renderers in.
105191
105192        Test: fast/dom/shadow/insertion-point-list-menu-crash.html
105193
105194        * html/HTMLFormControlElement.cpp:
105195        (WebCore::HTMLFormControlElement::validationMessageContains):
105196        (WebCore):
105197        * html/HTMLFormControlElement.h:
105198        (HTMLFormControlElement):
105199        * html/HTMLSelectElement.cpp:
105200        (WebCore::HTMLSelectElement::childShouldCreateRenderer):
105201        * html/ValidationMessage.cpp:
105202        (WebCore::ValidationMessage::contains):
105203        (WebCore):
105204        * html/ValidationMessage.h:
105205        (WebCore):
105206        (ValidationMessage):
105207
1052082012-07-07  Kwang Yul Seo  <skyul@company100.net>
105209
105210        Remove unnecessary member HTMLTreeBuilder::m_lastScriptElementStartPosition
105211        https://bugs.webkit.org/show_bug.cgi?id=90726
105212
105213        Reviewed by Adam Barth.
105214
105215        HTMLTreeBuilder::m_lastScriptElementStartPosition is of no use. Currently,
105216        m_lastScriptElementStartPosition is used to store the text position in
105217        "script" start tag, and then the stored position is passed to m_scriptToProcessStartPosition
105218        later in "script" end tag. Because HTMLTreeBuilder handles one script tag at
105219        a time, we can store the text position directly to m_scriptToProcessStartPosition
105220        in "script" start tag.
105221
105222        No behavior change, so no new tests.
105223
105224        * html/parser/HTMLTreeBuilder.cpp:
105225        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
105226        (WebCore::HTMLTreeBuilder::processEndTag):
105227        (WebCore::HTMLTreeBuilder::processScriptStartTag):
105228        * html/parser/HTMLTreeBuilder.h:
105229        (HTMLTreeBuilder):
105230
1052312012-07-08  Philip Rogers  <pdr@google.com>
105232
105233        Refactor RenderSVGShape to not contain fallback code
105234        https://bugs.webkit.org/show_bug.cgi?id=90514
105235
105236        Reviewed by Nikolas Zimmermann.
105237
105238        The interaction between RenderSVGShape and {RenderSVGEllipse, RenderSVGRect}
105239        was too coupled and it was not clear when a path existed or who controlled
105240        falling back to path codepaths in RenderSVGShape.
105241
105242        This patch cleans up RenderSVGShape so that it does not track fallback state
105243        and does not have special handling for creating a shape in strokeContains. Because
105244        some functions of RenderSVGShape can be called without a path existing, each
105245        of these functions has switched to using the path() function which asserts that
105246        a path exists.
105247
105248        There is only one remaining use of hasPath() in RenderSVGShape which I plan
105249        to remove in a followup patch.
105250
105251        This patch also cleans up RenderSVGRect and RenderSVGEllipse. These classes
105252        now handle fallback tracking themselves and choose when to use their optimized
105253        strokeContains codepaths.
105254
105255        No new tests as this is just a refactoring.
105256
105257        * rendering/svg/RenderSVGEllipse.cpp:
105258        (WebCore::RenderSVGEllipse::RenderSVGEllipse):
105259        (WebCore::RenderSVGEllipse::createShape):
105260        (WebCore::RenderSVGEllipse::objectBoundingBox):
105261        (WebCore::RenderSVGEllipse::strokeBoundingBox):
105262        (WebCore::RenderSVGEllipse::fillShape):
105263        (WebCore::RenderSVGEllipse::strokeShape):
105264        (WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
105265        (WebCore::RenderSVGEllipse::shapeDependentFillContains):
105266        * rendering/svg/RenderSVGEllipse.h:
105267        (WebCore::RenderSVGEllipse::isEmpty):
105268        (RenderSVGEllipse):
105269        * rendering/svg/RenderSVGRect.cpp:
105270        (WebCore::RenderSVGRect::RenderSVGRect):
105271        (WebCore::RenderSVGRect::createShape):
105272        (WebCore::RenderSVGRect::objectBoundingBox):
105273        (WebCore::RenderSVGRect::strokeBoundingBox):
105274        (WebCore::RenderSVGRect::fillShape):
105275        (WebCore::RenderSVGRect::strokeShape):
105276        (WebCore::RenderSVGRect::shapeDependentStrokeContains):
105277        (WebCore::RenderSVGRect::shapeDependentFillContains):
105278        * rendering/svg/RenderSVGRect.h:
105279        (WebCore::RenderSVGRect::isEmpty):
105280        (RenderSVGRect):
105281        * rendering/svg/RenderSVGShape.cpp:
105282        (WebCore::RenderSVGShape::RenderSVGShape):
105283        (WebCore::RenderSVGShape::createShape):
105284        (WebCore::RenderSVGShape::isEmpty):
105285        (WebCore::RenderSVGShape::objectBoundingBox):
105286        (WebCore::RenderSVGShape::shapeDependentStrokeContains):
105287        (WebCore::RenderSVGShape::shapeDependentFillContains):
105288        (WebCore::RenderSVGShape::strokeContains):
105289        (WebCore::RenderSVGShape::layout):
105290        (WebCore::RenderSVGShape::hasSmoothStroke):
105291        (WebCore):
105292        * rendering/svg/RenderSVGShape.h:
105293        (RenderSVGShape):
105294
1052952012-07-08  Kinuko Yasuda  <kinuko@chromium.org>
105296
105297        XHR.send should support ArrayBufferView
105298        https://bugs.webkit.org/show_bug.cgi?id=90536
105299
105300        XHR.send should support ArrayBufferView according to the latest draft
105301        and also eventually deprecate ArrayBuffer.
105302        Spec: http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-xmlhttprequest-send
105303
105304        Reviewed by Kenneth Russell.
105305
105306        Test: http/tests/xmlhttprequest/send-array-buffer.html
105307              http/tests/xmlhttprequest/send-data-view.html
105308
105309        * bindings/js/JSXMLHttpRequestCustom.cpp:
105310        (WebCore::JSXMLHttpRequest::send):
105311        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
105312        (WebCore::V8XMLHttpRequest::sendCallback):
105313        * xml/XMLHttpRequest.cpp:
105314        (WebCore):
105315        (WebCore::XMLHttpRequest::send):
105316        * xml/XMLHttpRequest.h:
105317        (XMLHttpRequest):
105318        * xml/XMLHttpRequest.idl:
105319
1053202012-07-08  Vivek Galatage  <vivekgalatage@gmail.com>
105321
105322        Web Inspector: CodeGeneratorInspector.py should not generate statements with no effect
105323        https://bugs.webkit.org/show_bug.cgi?id=90697
105324
105325        Reviewed by Vsevolod Vlasov.
105326
105327        Fix to remove the statements with no effect. The check for errors is added only when some valid
105328        statements exist.
105329
105330        No new tests as generator related patch.
105331
105332        * inspector/CodeGeneratorInspector.py:
105333        (Generator.process_command):
105334
1053352012-07-06  Lauro Neto  <lauro.neto@openbossa.org>
105336
105337        [Qt] Avoid deep copy of QImage in GraphicsContext3D::getImageData()
105338        https://bugs.webkit.org/show_bug.cgi?id=90705
105339
105340        Reviewed by Noam Rosenthal.
105341
105342        Use QImage.constBits() as argument to packPixels instead of bits() to avoid
105343        deep copying it.
105344
105345        * platform/graphics/qt/GraphicsContext3DQt.cpp:
105346        (WebCore::GraphicsContext3D::getImageData):
105347
1053482012-07-06  Andy Estes  <aestes@apple.com>
105349
105350        Fix errors reported by generate-bindings.pl after r121882.
105351
105352        * DerivedSources.make: Specify the correct path for notifications idl
105353        files now that notifications/ lives in WebCore/Modules/.
105354
1053552012-07-06  Justin Novosad  <junov@chromium.org>
105356
105357        Drawing to accelerated 2D canvas causes compositor to recompute layer tree
105358        https://bugs.webkit.org/show_bug.cgi?id=90630
105359
105360        Reviewed by Simon Fraser.
105361
105362        No new tests: covered by existing canvas/compositing layout tests
105363
105364        Before this change, there was no distinction between canvas changes
105365        that require recomputing the compositor tree and canvas changes that
105366        only require re-display. The new CanvasPixelsChanged member of enum
105367        ContentChangeType requests re-display without re-layout.
105368
105369        * html/canvas/CanvasRenderingContext2D.cpp:
105370        (WebCore::CanvasRenderingContext2D::didDraw):
105371        * rendering/RenderBoxModelObject.h:
105372        * rendering/RenderLayerBacking.cpp:
105373        (WebCore::RenderLayerBacking::contentChanged):
105374
1053752012-07-06  Pavel Feldman  <pfeldman@chromium.org>
105376
105377        Web Inspector: get rid of this._lastMarkedRange in TextEditor.
105378        https://bugs.webkit.org/show_bug.cgi?id=90691
105379
105380        Reviewed by Vsevolod Vlasov.
105381
105382        We don't need it, should use setSelection instead.
105383
105384        * inspector/front-end/TextEditor.js:
105385        (WebInspector.TextEditor.prototype.markAndRevealRange):
105386        (WebInspector.TextEditor.prototype._handleSelectionChange):
105387        (WebInspector.TextEditor.prototype.setSelection):
105388        (WebInspector.TextEditor.prototype._handleFocused):
105389
1053902012-07-06  Vsevolod Vlasov  <vsevik@chromium.org>
105391
105392        Web Inspector: Snippet renaming behavior is not correct.
105393        https://bugs.webkit.org/show_bug.cgi?id=90689
105394
105395        Reviewed by Pavel Feldman.
105396
105397        Navigator overlay is now not closed when editing is canceled.
105398        Esc handler in NavigatorOverlayController is not installed as a shortcut anymore since
105399        it should not be called until all underlying DOM elements handled the key down event.
105400
105401        * inspector/front-end/NavigatorOverlayController.js:
105402        (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
105403        (WebInspector.NavigatorOverlayController.prototype._keyDown):
105404        (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
105405        * inspector/front-end/NavigatorView.js:
105406        (WebInspector.NavigatorView.prototype.rename.commitHandler):
105407        (WebInspector.NavigatorView.prototype.rename.cancelHandler):
105408        (WebInspector.NavigatorView.prototype.rename.afterEditing):
105409        * inspector/front-end/ScriptsNavigator.js:
105410        (WebInspector.ScriptsNavigator):
105411        (WebInspector.ScriptsNavigator.prototype._itemRenamingRequested):
105412        (WebInspector.SnippetsNavigatorView.prototype._handleRenameSnippet):
105413        * inspector/front-end/ScriptsPanel.js:
105414        (WebInspector.ScriptsPanel.prototype._itemRenamingRequested.callback):
105415        (WebInspector.ScriptsPanel.prototype._itemRenamingRequested):
105416
1054172012-07-06  Andreas Kling  <kling@webkit.org>
105418
105419        Separate mutating CSSStyleDeclaration operations.
105420        <http://webkit.org/b/89945>
105421
105422        Reviewed by Antti Koivisto.
105423
105424        Use separate paths for mutating the StylePropertySet wrapped by a CSSStyleDeclaration.
105425        PropertySetCSSStyleDeclaration now has:
105426
105427            - propertySet() const
105428            - ensureMutablePropertySet()
105429
105430        This is prep work for supporting immutable ElementAttributeData objects, the idea being
105431        that calling ensureMutablePropertySet() may cause the element to convert its internal
105432        attribute storage (which also holds the inline StylePropertySet.)
105433
105434        * css/PropertySetCSSStyleDeclaration.cpp:
105435        (WebCore::PropertySetCSSStyleDeclaration::length):
105436        (WebCore::PropertySetCSSStyleDeclaration::item):
105437        (WebCore::PropertySetCSSStyleDeclaration::cssText):
105438        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
105439        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
105440        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
105441        (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
105442        (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
105443        (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
105444        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
105445        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
105446        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
105447        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
105448        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
105449        (WebCore::PropertySetCSSStyleDeclaration::copy):
105450        (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
105451        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
105452        (WebCore::InlineCSSStyleDeclaration::didMutate):
105453        (WebCore::InlineCSSStyleDeclaration::ensureMutablePropertySet):
105454        * css/PropertySetCSSStyleDeclaration.h:
105455        (PropertySetCSSStyleDeclaration):
105456        (WebCore::PropertySetCSSStyleDeclaration::propertySet):
105457        (WebCore::PropertySetCSSStyleDeclaration::ensureMutablePropertySet):
105458
1054592012-07-06  Pavel Feldman  <pfeldman@chromium.org>
105460
105461        Web Inspector: text editor scrolls 2px horizontally as one navigates the source code.
105462        https://bugs.webkit.org/show_bug.cgi?id=90682
105463
105464        Reviewed by Vsevolod Vlasov.
105465
105466        Removing the hack that is glueing the scroller to the left.
105467
105468        * inspector/front-end/TextEditor.js:
105469        (WebInspector.TextEditor.prototype._updatePanelOffsets):
105470        (WebInspector.TextEditorChunkedPanel.prototype._scroll):
105471        * inspector/front-end/textEditor.css:
105472
1054732012-07-06  Andrey Kosyakov  <caseq@chromium.org>
105474
105475        Web Inspector: get rid of cancellable records in Timeline, manage frame records explicitly
105476        https://bugs.webkit.org/show_bug.cgi?id=90684
105477
105478        Reviewed by Pavel Feldman.
105479
105480        - drop handling of "cancelable" records;
105481        - keep frame record until other records come (or frame is canceled)
105482
105483        * inspector/InspectorTimelineAgent.cpp:
105484        (WebCore::InspectorTimelineAgent::didBeginFrame):
105485        (WebCore::InspectorTimelineAgent::didCancelFrame):
105486        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
105487        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
105488        (WebCore::InspectorTimelineAgent::commitFrameRecord):
105489        (WebCore::InspectorTimelineAgent::clearRecordStack):
105490        * inspector/InspectorTimelineAgent.h:
105491        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
105492        (TimelineRecordEntry):
105493        (InspectorTimelineAgent):
105494
1054952012-07-06  Alexei Filippov  <alexeif@chromium.org>
105496
105497        Web Inspector: Add native memory used by GlyphCache to the snapshot
105498        https://bugs.webkit.org/show_bug.cgi?id=90615
105499
105500        Reviewed by Yury Semikhatsky.
105501
105502        * inspector/InspectorMemoryAgent.cpp:
105503        (MemoryBlockName):
105504        (WebCore):
105505        (WebCore::addPlatformComponentsInfo):
105506        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
105507        * inspector/front-end/NativeMemorySnapshotView.js:
105508        (WebInspector.MemoryBlockViewProperties._initialize):
105509        * platform/MemoryUsageSupport.cpp:
105510        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
105511        (WebCore):
105512        * platform/MemoryUsageSupport.h:
105513        (MemoryUsageSupport):
105514        (ComponentInfo):
105515        (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
105516        * platform/chromium/MemoryUsageSupportChromium.cpp:
105517        (WebCore::glyphCacheVisitor):
105518        (WebCore):
105519        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
105520
1055212012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
105522
105523        [Qt] Switch to new-style Qt 5 configure tests
105524
105525        Use explicit project file action instead of syncqt magic.
105526
105527        https://bugs.webkit.org/show_bug.cgi?id=90461
105528
105529        Reviewed by Tor Arne Vestbø.
105530
105531        * WebCore.pri:
105532
1055332012-07-06  Pavel Feldman  <pfeldman@chromium.org>
105534
105535        Web Inspector: start searching from the cursor position in the Sources panel.
105536        https://bugs.webkit.org/show_bug.cgi?id=90677
105537
105538        Reviewed by Vsevolod Vlasov.
105539
105540        Web Inspector: start searching from the cursor position in the Sources panel.
105541        Drive-by: select whole match upon search cancel.
105542
105543        * inspector/front-end/ScriptsPanel.js:
105544        (WebInspector.ScriptsPanel.prototype.performSearch.finishedCallback):
105545        (WebInspector.ScriptsPanel.prototype.performSearch):
105546        * inspector/front-end/SourceFrame.js:
105547        (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches):
105548        (WebInspector.SourceFrame.prototype.performSearch):
105549        * inspector/front-end/TextEditor.js:
105550        (WebInspector.TextEditor.prototype.lastSelection):
105551        (WebInspector.TextEditor.prototype._handleFocused):
105552        * inspector/front-end/TextEditorModel.js:
105553        (WebInspector.TextRange.prototype.serializeToObject):
105554        (WebInspector.TextRange.prototype.compareTo):
105555
1055562012-07-06  Vsevolod Vlasov  <vsevik@chromium.org>
105557
105558        Web Inspector: Snippets should be correctly (re)loaded when inspector is open and on navigation.
105559        https://bugs.webkit.org/show_bug.cgi?id=90672
105560
105561        Reviewed by Pavel Feldman.
105562
105563        Snippets are now reloaded from the storage on ScriptSnippetMapping reset.
105564        Fixed snippets storage.
105565
105566        * inspector/front-end/ScriptSnippetModel.js:
105567        (WebInspector.ScriptSnippetModel):
105568        (WebInspector.ScriptSnippetModel.prototype._loadSnippets):
105569        (WebInspector.ScriptSnippetModel.prototype._reset):
105570        * inspector/front-end/SnippetStorage.js:
105571        (WebInspector.Snippet.fromObject):
105572
1055732012-07-06  Vsevolod Vlasov  <vsevik@chromium.org>
105574
105575        Web Inspector: Implement snippets removing.
105576        https://bugs.webkit.org/show_bug.cgi?id=90674
105577
105578        Reviewed by Pavel Feldman.
105579
105580        * inspector/front-end/NavigatorView.js:
105581        (WebInspector.NavigatorView.prototype.rename.afterEditing):
105582        * inspector/front-end/ScriptsNavigator.js:
105583        (WebInspector.ScriptsNavigator.prototype.removeUISourceCode):
105584        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
105585        * inspector/front-end/ScriptsPanel.js:
105586        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
105587        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
105588        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
105589        * inspector/front-end/TabbedEditorContainer.js:
105590
1055912012-07-06  'Pavel Feldman'  <pfeldman@chromium.org>
105592
105593        Not reviewed: fix inspector front-end compilation.
105594
105595        * inspector/front-end/ElementsTreeOutline.js:
105596        * inspector/front-end/SearchController.js:
105597
1055982012-07-06  Yury Semikhatsky  <yurys@chromium.org>
105599
105600        Web Inspector: add memory reporting routine to Document
105601        https://bugs.webkit.org/show_bug.cgi?id=90668
105602
105603        Reviewed by Pavel Feldman.
105604
105605        Added methods for reporting HashSet, ListHashSet and Vector memory
105606        footprint. Made Document report its size along with its internal
105607        collections sizes.
105608
105609        * dom/Document.cpp:
105610        (WebCore::Document::reportMemoryUsage):
105611        (WebCore):
105612        * dom/Document.h:
105613        (Document):
105614        * dom/MemoryInstrumentation.h:
105615        (MemoryInstrumentation):
105616        (MemoryObjectInfo):
105617        (WebCore::MemoryObjectInfo::reportHashMap):
105618        (WebCore::MemoryObjectInfo::reportHashSet):
105619        (WebCore::MemoryObjectInfo::reportListHashSet):
105620        (WebCore::MemoryObjectInfo::reportVector):
105621        (WebCore::MemoryObjectInfo::memoryInstrumentation):
105622        (WebCore::MemoryInstrumentation::reportHashMap):
105623        (WebCore):
105624        (WebCore::MemoryInstrumentation::reportHashSet):
105625        (WebCore::MemoryInstrumentation::reportListHashSet):
105626        (WebCore::MemoryInstrumentation::reportVector):
105627        * inspector/InspectorMemoryAgent.cpp:
105628        (WebCore):
105629
1056302012-07-06  Gabor Rapcsanyi  <rgabor@webkit.org>
105631
105632        Fixing defines for NEON intrinsics.
105633        https://bugs.webkit.org/show_bug.cgi?id=90666
105634
105635        Reviewed by Zoltan Herczeg.
105636
105637        Existing tests cover this issue.
105638
105639        * platform/graphics/filters/FEGaussianBlur.cpp:
105640        (WebCore::FEGaussianBlur::platformApplyGeneric):
105641        * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
105642        * platform/graphics/filters/arm/NEONHelpers.h:
105643
1056442012-07-05  Vsevolod Vlasov  <vsevik@chromium.org>
105645
105646        Web Inspector: Workspace should dispatch WorkspaceReset event on navigation.
105647        https://bugs.webkit.org/show_bug.cgi?id=90616
105648
105649        Reviewed by Pavel Feldman.
105650
105651        Workspace UISourceCodeProviders are now reset on navigation.
105652        UISourceCodeRemoved event is not dispatched from UISourceCodeProviders on reset (page navigation) anymore.
105653
105654        * inspector/front-end/CompilerScriptMapping.js:
105655        (WebInspector.CompilerScriptMapping.prototype.reset):
105656        * inspector/front-end/DebuggerScriptMapping.js:
105657        (WebInspector.DebuggerScriptMapping):
105658        * inspector/front-end/ResourceScriptMapping.js:
105659        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
105660        * inspector/front-end/ScriptSnippetModel.js:
105661        (WebInspector.ScriptSnippetModel.prototype._reset):
105662        * inspector/front-end/ScriptsPanel.js:
105663        (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
105664        (WebInspector.ScriptsPanel.prototype._reset):
105665        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
105666        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
105667        (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
105668        * inspector/front-end/StylesPanel.js:
105669        (WebInspector.StylesUISourceCodeProvider):
105670        (WebInspector.StylesUISourceCodeProvider.prototype.reset):
105671        * inspector/front-end/Workspace.js:
105672        (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodeProviders):
105673        (WebInspector.Workspace):
105674        (WebInspector.Workspace.prototype.registerUISourceCodeProvider):
105675        (WebInspector.Workspace.prototype._reset):
105676
1056772012-07-05  Arnaud Renevier  <arno@renevier.net>
105678
105679        [GTK] Showing the context menu in the Web Inspector can crash the browser
105680        https://bugs.webkit.org/show_bug.cgi?id=88800
105681
105682        Reviewed by Carlos Garcia Campos.
105683
105684        Remove ContextMenuItem from its parent before appending it again to a
105685        new parent
105686
105687        No new tests, behavior is unchanged.
105688
105689        * platform/gtk/ContextMenuGtk.cpp:
105690        (WebCore::ContextMenu::appendItem):
105691
1056922012-07-05  Dongwoo Im  <dw.im@samsung.com>
105693
105694        [EFL] Unreviewed, Fix build break when WEB_AUDIO is enabled.
105695        https://bugs.webkit.org/show_bug.cgi?id=90653
105696
105697        Unreviewed build fix.
105698
105699        A new file, AudioFIFO.cpp, is added for the Web Audio fearure.
105700        This file should be included into the CMakeLists.txt file.
105701
105702        * CMakeLists.txt: Add the newly created file into the CMakeLists.txt
105703
1057042012-07-05  Mike West  <mkwst@chromium.org>
105705
105706        Multiple Content Security Policy headers are correctly processed as separate headers.
105707        https://bugs.webkit.org/show_bug.cgi?id=90629
105708
105709        Headers of the same name are normalized into a single, comma-separated
105710        string as per RFC2616, section 4.2. We didn't correctly account for this
105711        in ContentSecurityPolicy::didReceiveHeader. Now we do by walking through
105712        the header string, looking for commas and processing each block in turn.
105713
105714        This oversight bit Firefox as well, and was patched in February:
105715        https://bugzilla.mozilla.org/show_bug.cgi?id=717511
105716
105717        Reviewed by Adam Barth.
105718
105719        Test: http/tests/security/contentSecurityPolicy/directive-parsing-multiple-headers.html
105720
105721        * page/ContentSecurityPolicy.cpp:
105722        (WebCore::ContentSecurityPolicy::didReceiveHeader):
105723
1057242012-07-05  Sheriff Bot  <webkit.review.bot@gmail.com>
105725
105726        Unreviewed, rolling out r121921.
105727        http://trac.webkit.org/changeset/121921
105728        https://bugs.webkit.org/show_bug.cgi?id=90648
105729
105730        caused hundreds of crashes on Mac (Requested by pizlo on
105731        #webkit).
105732
105733        * editing/SurroundingText.cpp:
105734        (WebCore::SurroundingText::SurroundingText):
105735        * editing/TextIterator.cpp:
105736        (WebCore::CharacterIterator::advance):
105737        (WebCore::BackwardsCharacterIterator::advance):
105738
1057392012-07-05  Anders Carlsson  <andersca@apple.com>
105740
105741        Type-ahead doesn't work in options inside optgroups
105742        https://bugs.webkit.org/show_bug.cgi?id=90647
105743        <rdar://problem/5604894>
105744
105745        Reviewed by Dan Bernstein.
105746
105747        Set the title of the menu item to a string that doesn't contain any leading or trailing whitespace.
105748
105749        * platform/mac/PopupMenuMac.mm:
105750        (WebCore::PopupMenuMac::populate):
105751
1057522012-07-05  Hayato Ito  <hayato@chromium.org>
105753
105754        [Crash] Click an element which will be 'display: none' on focus.
105755        https://bugs.webkit.org/show_bug.cgi?id=90516
105756
105757        Reviewed by Hajime Morita.
105758
105759        EventHandler::handleMousePressEventSingleClick checks whether
105760        innerNode has a renderer in the beginning of the function.  But
105761        the renderer may disappear in the middle of the function since its
105762        style has just become 'display:none'.  As a result, it touches null renderer
105763        in EventHandler.cpp:517:
105764            VisiblePosition visiblePos(innerNode->renderer()->positionForPoint(event.localPoint()));
105765        In the case of 'display:none', we don't have to continue.  So call
105766        updateLayoutIgnorePendingStylesheets() in the beginning so that we
105767        can early exit and do not touch null renderer.
105768
105769        Test: fast/events/display-none-on-focus-crash.html
105770
105771        * page/EventHandler.cpp:
105772        (WebCore::EventHandler::handleMousePressEventSingleClick):
105773
1057742012-07-05  Benjamin Poulain  <bpoulain@apple.com>
105775
105776        Double release of resources if the load is canceled in a callback of ResourceLoader::didFinishLoading
105777        https://bugs.webkit.org/show_bug.cgi?id=90431
105778
105779        Reviewed by Anders Carlsson.
105780
105781        In ResourceLoader::didFinishLoadingOnePart(), we invoke didFinishLoad() on the WebKit client. If WebKit
105782        causes the current frame to cancel the load synchronously, the resources are already freed when
105783        ResourceLoader::didFinishLoadingOnePart() ends.
105784        When ResourceLoader::didFinishLoading() subsequently invokes releaseResources(), we are releasing the
105785        resources a second time.
105786
105787        This patch add a second check for cancellation after invoking ResourceLoader::didFinishLoadingOnePart() to
105788        avoid such issues.
105789
105790        The previous check at the beginning of ResourceLoader::didFinishLoading() has been removed because it is
105791        redundant with ResourceLoader::didFinishLoadingOnePart().
105792
105793        * loader/ResourceLoader.cpp:
105794        (WebCore::ResourceLoader::didFinishLoading):
105795        (WebCore::ResourceLoader::didFinishLoadingOnePart):
105796
1057972012-07-05  Simon Fraser  <simon.fraser@apple.com>
105798
105799        Add a utility method for hasOverflowClip() or hasClip()
105800        https://bugs.webkit.org/show_bug.cgi?id=90635
105801
105802        Reviewed by Dean Jackson.
105803        
105804        Add RenderObject::hasClipOrOverflowClip() as a convenience method
105805        since we end up calling hasOverfFlowClip() || hasClip() a lot in the layer code.
105806
105807        No new tests; refactoring only.
105808
105809        * rendering/RenderLayer.cpp:
105810        (WebCore::RenderLayer::calculateClipRects):
105811        (WebCore::RenderLayer::calculateRects):
105812        * rendering/RenderLayerCompositor.cpp:
105813        (WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer):
105814        (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
105815        * rendering/RenderObject.h:
105816        (WebCore::RenderObject::hasClipOrOverflowClip):
105817
1058182012-07-05  Yongjun Zhang  <yongjun_zhang@apple.com>
105819
105820        Code refactoring: move mimeTypeFromUTITree to a separate file.
105821        https://bugs.webkit.org/show_bug.cgi?id=90619
105822
105823        We should move UTI handling related code to a separate file.
105824
105825        Reviewed by David Kilzer.
105826
105827        * WebCore.xcodeproj/project.pbxproj: Add UTIUtilities.h/UTIUtilities.mm to xcode project, and drive-by fix
105828            that happened when editing the Xcode project file.
105829        * platform/network/mac/UTIUtilities.h: Added.
105830        (WebCore):
105831        * platform/network/mac/UTIUtilities.mm: Added.  move mimeTypeFromUTITree to UTIUtilities.mm.
105832        (WebCore):
105833        (WebCore::mimeTypeFromUTITree):
105834        * platform/network/mac/WebCoreURLResponse.mm: include UTIUtilities.h to use mimeTypeFromUTITree.
105835        (WebCore):
105836
1058372012-07-05  Leandro Gracia Gil  <leandrogracia@chromium.org>
105838
105839        Character iterators should not advance if they are at end
105840        https://bugs.webkit.org/show_bug.cgi?id=90560
105841
105842        Reviewed by Ryosuke Niwa.
105843
105844        CharacterIterator and BackwardsCharacterIterator try to advance their
105845        internal TextIterator without checking if they already are at end.
105846        This can cause crashes in TextIterator::advance.
105847
105848        Test: platform/chromium/editing/surrounding-text/surrounding-text.html
105849
105850        * editing/SurroundingText.cpp:
105851        (WebCore::SurroundingText::SurroundingText):
105852        * editing/TextIterator.cpp:
105853        (WebCore::CharacterIterator::advance):
105854        (WebCore::BackwardsCharacterIterator::advance):
105855
1058562012-07-05  John Mellor  <johnme@chromium.org>
105857
105858        Text Autosizing: Add basic framework
105859        https://bugs.webkit.org/show_bug.cgi?id=88655
105860
105861        Follow-up patch tweaking method signatures.
105862
105863        Reviewed by Simon Fraser.
105864
105865        No functional change, so no new tests.
105866
105867        * page/FrameView.cpp:
105868        (WebCore::FrameView::layout):
105869        * rendering/TextAutosizer.cpp:
105870        (WebCore::TextAutosizer::processSubtree):
105871        (WebCore::TextAutosizer::processBlock):
105872        (WebCore::TextAutosizer::processText):
105873        (WebCore):
105874        * rendering/TextAutosizer.h:
105875        (TextAutosizer):
105876
1058772012-07-05  Pavel Feldman  <pfeldman@chromium.org>
105878
105879        Web Inspector: move cursor to the current search match.
105880        https://bugs.webkit.org/show_bug.cgi?id=90621
105881
105882        Reviewed by Vsevolod Vlasov.
105883
105884        After closing the search dialog, the cursor should be at the latest search match location.
105885
105886        * inspector/front-end/TextEditor.js:
105887        (WebInspector.TextEditor.prototype.markAndRevealRange):
105888        (WebInspector.TextEditor.prototype._handleFocused):
105889
1058902012-07-05  Behdad Esfahbod  <behdad@behdad.org>
105891
105892        Subpixel layout broken with spans with CSS position other than static
105893        https://bugs.webkit.org/show_bug.cgi?id=90097
105894
105895        Reviewed by Eric Seidel.
105896
105897        In InlineBox, don't truncate size to integers when returning.
105898
105899        In RenderBlock, don't round-up width to next integer.  Round-up to
105900        next LayoutUnit instead.
105901
105902        Test: Added fast/sub-pixel/size-of-span-with-different-positions.html
105903        Adjust expected outputs affected by the rounding changes.
105904
105905        * platform/FractionalLayoutUnit.h:
105906        (WebCore::FractionalLayoutUnit::fromFloatCeil):
105907        (FractionalLayoutUnit):
105908        * rendering/InlineBox.h:
105909        (WebCore::InlineBox::size):
105910        * rendering/RenderBlock.cpp:
105911        (WebCore::updatePreferredWidth):
105912
1059132012-07-05  Nate Chapin  <japhet@chromium.org>
105914
105915        REGRESSION (r115654): Sometimes does not replace content for multipart/x-mixed-replace
105916        https://bugs.webkit.org/show_bug.cgi?id=88436
105917
105918        Reviewed by Brady Eidson.
105919
105920        Test: http/tests/multipart/multipart-replace-non-html-content.php
105921
105922        * loader/DocumentLoader.cpp:
105923        (WebCore::DocumentLoader::commitData): We should only send receivedFirstData() once per main resource load,
105924            rather than multiple times in a multipart load. 
105925        (WebCore::DocumentLoader::setupForReplaceByMIMEType): m_gotFirstByte isn't set to true until data is
105926            actually committed, and multipart data is often not committed until the part is finished. Check
105927            whether the SharedBuffer is non-null instead.
105928        * testing/js/WebCoreTestSupport.cpp:
105929        (WebCoreTestSupport::resetInternalsObject): The JSInternals object my have already been cleared if the window shell
105930            was cleared as part of creation of a new Document. Check it before using it.
105931
1059322012-07-05  Pavel Feldman  <pfeldman@chromium.org>
105933
105934        Web Inspector: move search field to the bottom of the page.
105935        https://bugs.webkit.org/show_bug.cgi?id=90610
105936
105937        Reviewed by Vsevolod Vlasov.
105938
105939        This is the first step in the Search/replace implementation. This change moves search
105940        field from the inspector toolbar to the inspector view footer that is visible upon Cmd/Ctrl+F.
105941
105942        * English.lproj/localizedStrings.js:
105943        * inspector/front-end/InspectorView.js:
105944        (WebInspector.InspectorView):
105945        (WebInspector.InspectorView.prototype._pushToHistory):
105946        (WebInspector.InspectorView.prototype.panelsElement):
105947        (WebInspector.InspectorView.prototype.setFooterElement):
105948        * inspector/front-end/Panel.js:
105949        (WebInspector.Panel.prototype.show):
105950        * inspector/front-end/ProfilesPanel.js:
105951        (WebInspector.ProfilesPanel.prototype._reset):
105952        * inspector/front-end/SearchController.js:
105953        (WebInspector.SearchController):
105954        (WebInspector.SearchController.prototype.updateSearchLabel):
105955        (WebInspector.SearchController.prototype.cancelSearch):
105956        (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
105957        (WebInspector.SearchController.prototype.focusSearchField):
105958        (WebInspector.SearchController.prototype._onKeyDown):
105959        (WebInspector.SearchController.prototype._onNextButtonSearch):
105960        (WebInspector.SearchController.prototype._onPrevButtonSearch):
105961        (WebInspector.SearchController.prototype._performSearch):
105962        * inspector/front-end/inspector.css:
105963        (#search):
105964        (.toolbar-search-container):
105965        (.toolbar-search-navigation):
105966        (.toolbar-search-navigation:hover):
105967        (.toolbar-search-navigation.toolbar-search-navigation-prev):
105968        (.toolbar-search-navigation.toolbar-search-navigation-next):
105969        (.toolbar-search-navigation-hidden):
105970        (.status-bar):
105971        (.search-drawer-header input[type="search"].search-config-search):
105972        (.inspector-footer):
105973        (.inspector-footer > div):
105974        * inspector/front-end/inspector.html:
105975        * inspector/front-end/inspector.js:
105976        (WebInspector.get _setCompactMode):
105977        (WebInspector.postDocumentKeyDown):
105978
1059792012-07-05  Sergey Rogulenko  <rogulenko@google.com>
105980
105981        Web Inspector: added low-level instrumentation support for TimelineAgent
105982        https://bugs.webkit.org/show_bug.cgi?id=90264
105983
105984        Reviewed by Pavel Feldman.
105985
105986        * inspector/InspectorInstrumentation.cpp:
105987        (WebCore::InspectorInstrumentation::timelineAgentForOrphanEvents):
105988        (WebCore::InspectorInstrumentation::setTimelineAgentForOrphanEvents):
105989        (WebCore::InspectorInstrumentation::threadSpecificTimelineAgentForOrphanEvents):
105990        * inspector/InspectorInstrumentation.h:
105991        (InspectorInstrumentation):
105992        * inspector/InspectorTimelineAgent.cpp:
105993        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
105994        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
105995        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
105996        * inspector/InspectorTimelineAgent.h:
105997        (InspectorTimelineAgent):
105998
1059992012-07-05  John Mellor  <johnme@chromium.org>
106000
106001        Text Autosizing: Add test framework and simple test.
106002        https://bugs.webkit.org/show_bug.cgi?id=90561
106003
106004        Exposes methods allowing Layout Tests to enable Text Autosizing and
106005        get the same results as if they were running on a mobile device.
106006
106007        Reviewed by Adam Barth.
106008
106009        Test: fast/text-autosizing/simple-paragraph.html
106010
106011        * page/Settings.cpp:
106012        (WebCore::Settings::Settings):
106013        (WebCore):
106014        (WebCore::Settings::setTextAutosizingWindowSizeOverride):
106015        * page/Settings.h:
106016        (Settings):
106017        (WebCore::Settings::textAutosizingWindowSizeOverride):
106018        * rendering/TextAutosizer.cpp:
106019        (WebCore::TextAutosizer::boostSubtree):
106020        * testing/InternalSettings.cpp:
106021        (WebCore::InternalSettings::InternalSettings):
106022        (WebCore::InternalSettings::restoreTo):
106023        (WebCore::InternalSettings::setTextAutosizingEnabled):
106024        (WebCore):
106025        (WebCore::InternalSettings::setTextAutosizingWindowSizeOverride):
106026        * testing/InternalSettings.h:
106027        (InternalSettings):
106028        * testing/InternalSettings.idl:
106029
1060302012-07-04  Andrey Kosyakov  <caseq@chromium.org>
106031
106032        Web Inspector: timeline events in the vicinity of event dividers some times are tricky to expand
106033        https://bugs.webkit.org/show_bug.cgi?id=90572
106034
106035        Reviewed by Pavel Feldman.
106036
106037        - do not use resources-event-divider-padding;
106038        - make dividers larger and use border-color to visualize them;
106039        - move resources-<color>-divider to timelinePanel.css, as they're not used outside of timeline;
106040
106041        * inspector/front-end/TimelinePresentationModel.js:
106042        (WebInspector.TimelinePresentationModel.createEventDivider):
106043        * inspector/front-end/inspectorCommon.css:
106044        * inspector/front-end/timelinePanel.css:
106045        (.timeline .resources-event-divider):
106046        (.resources-red-divider):
106047        (.resources-blue-divider):
106048        (.resources-orange-divider):
106049        (.resources-divider.last):
106050        (.timeline .resources-event-divider.timeline-frame-divider):
106051
1060522012-07-04  Andrey Kosyakov  <caseq@chromium.org>
106053
106054        Web Inspector: incorrect height of main timeline pane after switching to memory mode
106055        https://bugs.webkit.org/show_bug.cgi?id=90387
106056
106057        Reviewed by Pavel Feldman.
106058
106059        * inspector/front-end/TimelinePanel.js:
106060        (WebInspector.TimelinePanel.prototype._splitterDragging):
106061        (WebInspector.TimelinePanel.prototype.set _setSplitterPosition):
106062        (WebInspector.TimelinePanel.prototype._overviewModeChanged):
106063
1060642012-07-05  Vivek Galatage  <vivekgalatage@gmail.com>
106065
106066        Web Inspector: Add support for keyboard increment / decrement on numbers in attributes in Elements Panel
106067        https://bugs.webkit.org/show_bug.cgi?id=89586
106068
106069        Reviewed by Pavel Feldman
106070
106071        Refactoring the key events while editing style property values. Migrated the code to UIUtils.js and referred
106072        from StylesSidebarPane.js, ElementsTreeOutline.js and MetricsSidebarPane.js.
106073
106074        No new tests as code refactoring and UI feature added to ElementsTreeOutline.js
106075
106076        * inspector/front-end/ElementsTreeOutline.js:
106077        (WebInspector.ElementsTreeElement.prototype._startEditingAttribute.handleKeyDownEvents):
106078        (WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
106079        * inspector/front-end/MetricsSidebarPane.js:
106080        (WebInspector.MetricsSidebarPane.prototype._handleKeyDown.finishHandler):
106081        (WebInspector.MetricsSidebarPane.prototype._handleKeyDown.customNumberHandler):
106082        (WebInspector.MetricsSidebarPane.prototype._handleKeyDown):
106083        * inspector/front-end/StylesSidebarPane.js:
106084        (WebInspector.StylesSidebarPane.prototype._handleNameOrValueUpDown.finishHandler):
106085        (WebInspector.StylesSidebarPane.prototype._handleNameOrValueUpDown):
106086        * inspector/front-end/UIUtils.js:
106087        (WebInspector._modifiedHexValue):
106088        (WebInspector._modifiedFloatNumber):
106089        (WebInspector.handleElementValueModifications):
106090
1060912012-07-05  Gabor Rapcsanyi  <rgabor@webkit.org>
106092
106093        NEON intrinsics should be used with gaussian blur filter
106094        https://bugs.webkit.org/show_bug.cgi?id=90166
106095
106096        Reviewed by Zoltan Herczeg.
106097
106098        Rewrite inline assembly to NEON intrinsics for better portabilty 
106099        and readibility. Remove unnecessary FEGaussianBlurNEON.cpp and add
106100        NEONHelpers.h to the project which will contains the shared
106101        NEON code of the filters.
106102
106103        Existing tests cover this issue.
106104
106105        * CMakeLists.txt:
106106        * GNUmakefile.list.am:
106107        * Target.pri:
106108        * WebCore.gypi:
106109        * WebCore.vcproj/WebCore.vcproj:
106110        * WebCore.xcodeproj/project.pbxproj:
106111        * platform/graphics/filters/FEGaussianBlur.cpp:
106112        (WebCore::FEGaussianBlur::platformApplyGeneric):
106113        (WebCore::FEGaussianBlur::platformApplyWorker):
106114        * platform/graphics/filters/FEGaussianBlur.h:
106115        (FEGaussianBlur):
106116        * platform/graphics/filters/arm/FEGaussianBlurNEON.cpp: Removed.
106117        * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
106118        (WebCore::boxBlurNEON):
106119        * platform/graphics/filters/arm/NEONHelpers.h: Added.
106120        (WebCore):
106121        (WebCore::loadRGBA8AsFloat):
106122        (WebCore::storeFloatAsRGBA8):
106123
1061242012-07-05  Sam D  <dsam2912@gmail.com>
106125
106126        Web Inspector: Having a "Scroll into view" for nodes through web inspector.
106127        https://bugs.webkit.org/show_bug.cgi?id=89554
106128
106129        Added options for scrolling-into-view the  element node through web
106130        inspector.
106131
106132        Reviewed by Pavel Feldman.
106133
106134        No new tests. UI change.
106135
106136        * English.lproj/localizedStrings.js:
106137        * inspector/front-end/ElementsTreeOutline.js:
106138        (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
106139        (.):
106140        * inspector/front-end/RemoteObject.js:
106141        (WebInspector.RemoteObject.prototype.callFunction):
106142
1061432012-07-05  Zan Dobersek  <zandobersek@gmail.com>
106144
106145        Add Gamepad logging channel
106146        https://bugs.webkit.org/show_bug.cgi?id=90570
106147
106148        Reviewed by Carlos Garcia Campos.
106149
106150        Add a new logging channel for logging significant
106151        events that are related to Gamepad API implementation.
106152
106153        No new tests - no new testable functionality.
106154
106155        * platform/Logging.cpp:
106156        (WebCore):
106157        (WebCore::getChannelFromName):
106158        * platform/Logging.h:
106159        (WebCore):
106160        * platform/gtk/GamepadsGtk.cpp: Log when a device is
106161        registered or unregistered.
106162        (WebCore::GamepadsGtk::registerDevice):
106163        (WebCore::GamepadsGtk::unregisterDevice):
106164
1061652012-07-05  Peter Wang  <peter.wang@torchmobile.com.cn>
106166
106167        Web Inspector: [JSC] support JS execution in the context of an isolated world
106168        https://bugs.webkit.org/show_bug.cgi?id=85709
106169
106170        Reviewed by Gavin Barraclough.
106171
106172        No new test case for this bug. 
106173
106174        * bindings/js/ScriptController.cpp:
106175        (WebCore::ScriptController::collectIsolatedContexts):
106176        (WebCore):
106177
1061782012-07-04  Huang Dongsung  <luxtella@company100.net>
106179
106180        Add virtual keyword to ~BitmapImage and ~StillImage because ~Image is virtual.
106181        https://bugs.webkit.org/show_bug.cgi?id=90447
106182
106183        Reviewed by Alexey Proskuryakov.
106184
106185        No new tests. This patch doesn't change behavior.
106186
106187        * platform/graphics/BitmapImage.h:
106188        (BitmapImage):
106189        * platform/graphics/qt/StillImageQt.h:
106190        (StillImage):
106191
1061922012-07-04  Mike West  <mkwst@chromium.org>
106193
106194        Implement the script-nonce Content Security Policy directive.
106195        https://bugs.webkit.org/show_bug.cgi?id=89577
106196
106197        Reviewed by Adam Barth.
106198
106199        This patch implements the (experimental) script-nonce Content Security
106200        Policy directive from the 1.1 spec, which allows for selective
106201        execution of script by specifying a "nonce" attribute for the
106202        script tag. Script is only loaded and executed if it both matches the
106203        nonce and matches the script-src whitelist (if present).
106204
106205        The implementation is gated on the ENABLE_CSP_NEXT flag, which is
106206        currently disabled for all ports other than Chromium.
106207
106208        Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-nonce--experimental
106209
106210        Tests: http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed.html
106211               http/tests/security/contentSecurityPolicy/1.1/scriptnonce-badnonce.html
106212               http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked.html
106213               http/tests/security/contentSecurityPolicy/1.1/scriptnonce-emptynonce.html
106214               http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked.html
106215
106216        * dom/ScriptElement.cpp:
106217        (WebCore::ScriptElement::requestScript):
106218        (WebCore::ScriptElement::executeScript):
106219            Passing the nonce attribute through to check against CSP.
106220        * html/HTMLAttributeNames.in:
106221        * html/HTMLScriptElement.idl:
106222            Adding the `nonce` attribute to the script tag.
106223        * page/ContentSecurityPolicy.cpp:
106224        (CSPDirectiveList):
106225        (WebCore::CSPDirectiveList::logInvalidNonce):
106226        (WebCore):
106227        (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
106228        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
106229        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
106230            If a nonce is set, deny JavaScript URLs and inline event handlers.
106231        (WebCore::CSPDirectiveList::allowScriptNonce):
106232        (WebCore::CSPDirectiveList::parseScriptNonce):
106233        (WebCore::CSPDirectiveList::addDirective):
106234        (WebCore::isAllowedByAllWithNonce):
106235        (WebCore::ContentSecurityPolicy::allowScriptNonce):
106236        * page/ContentSecurityPolicy.h:
106237        (WebCore):
106238
1062392012-07-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
106240
106241        Notifications should be in Modules/notifications
106242        https://bugs.webkit.org/show_bug.cgi?id=82121
106243
106244        Reviewed by Adam Barth.
106245
106246        The notifications directory is now self-contained. This patch moves it to the Modules directory.
106247
106248        No new tests, covered by existing tests.
106249
106250        * CMakeLists.txt:
106251        * DerivedSources.make:
106252        * DerivedSources.pri:
106253        * GNUmakefile.am:
106254        * GNUmakefile.list.am:
106255        * Modules/notifications/DOMWindowNotifications.cpp: Renamed from Source/WebCore/notifications/DOMWindowNotifications.cpp.
106256        (WebCore):
106257        (WebCore::DOMWindowNotifications::DOMWindowNotifications):
106258        (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
106259        (WebCore::DOMWindowNotifications::from):
106260        (WebCore::DOMWindowNotifications::webkitNotifications):
106261        (WebCore::DOMWindowNotifications::disconnectFrameForPageCache):
106262        (WebCore::DOMWindowNotifications::reconnectFrameFromPageCache):
106263        (WebCore::DOMWindowNotifications::willDestroyGlobalObjectInCachedFrame):
106264        (WebCore::DOMWindowNotifications::willDestroyGlobalObjectInFrame):
106265        (WebCore::DOMWindowNotifications::willDetachGlobalObjectFromFrame):
106266        * Modules/notifications/DOMWindowNotifications.h: Renamed from Source/WebCore/notifications/DOMWindowNotifications.h.
106267        (WebCore):
106268        (DOMWindowNotifications):
106269        * Modules/notifications/DOMWindowNotifications.idl: Renamed from Source/WebCore/notifications/DOMWindowNotifications.idl.
106270        * Modules/notifications/Notification.cpp: Renamed from Source/WebCore/notifications/Notification.cpp.
106271        (WebCore):
106272        (WebCore::Notification::Notification):
106273        (WebCore::Notification::~Notification):
106274        (WebCore::Notification::create):
106275        (WebCore::getAndAddEventListener):
106276        (WebCore::Notification::interfaceName):
106277        (WebCore::Notification::show):
106278        (WebCore::Notification::close):
106279        (WebCore::Notification::eventTargetData):
106280        (WebCore::Notification::ensureEventTargetData):
106281        (WebCore::Notification::contextDestroyed):
106282        (WebCore::Notification::finalize):
106283        (WebCore::Notification::dispatchShowEvent):
106284        (WebCore::Notification::dispatchClickEvent):
106285        (WebCore::Notification::dispatchCloseEvent):
106286        (WebCore::Notification::dispatchErrorEvent):
106287        (WebCore::Notification::taskTimerFired):
106288        (WebCore::Notification::permissionLevel):
106289        (WebCore::Notification::permissionString):
106290        (WebCore::Notification::requestPermission):
106291        * Modules/notifications/Notification.h: Renamed from Source/WebCore/notifications/Notification.h.
106292        (WebCore):
106293        (Notification):
106294        (WebCore::Notification::cancel):
106295        (WebCore::Notification::isHTML):
106296        (WebCore::Notification::setHTML):
106297        (WebCore::Notification::url):
106298        (WebCore::Notification::setURL):
106299        (WebCore::Notification::iconURL):
106300        (WebCore::Notification::title):
106301        (WebCore::Notification::body):
106302        (WebCore::Notification::dir):
106303        (WebCore::Notification::setDir):
106304        (WebCore::Notification::replaceId):
106305        (WebCore::Notification::setReplaceId):
106306        (WebCore::Notification::tag):
106307        (WebCore::Notification::setTag):
106308        (WebCore::Notification::direction):
106309        (WebCore::Notification::scriptExecutionContext):
106310        (WebCore::Notification::detachPresenter):
106311        (WebCore::Notification::setBody):
106312        (WebCore::Notification::refEventTarget):
106313        (WebCore::Notification::derefEventTarget):
106314        * Modules/notifications/Notification.idl: Renamed from Source/WebCore/notifications/Notification.idl.
106315        * Modules/notifications/NotificationCenter.cpp: Renamed from Source/WebCore/notifications/NotificationCenter.cpp.
106316        (WebCore):
106317        (WebCore::NotificationCenter::create):
106318        (WebCore::NotificationCenter::NotificationCenter):
106319        (WebCore::NotificationCenter::checkPermission):
106320        (WebCore::NotificationCenter::requestPermission):
106321        (WebCore::NotificationCenter::stop):
106322        (WebCore::NotificationCenter::requestTimedOut):
106323        (WebCore::NotificationCenter::NotificationRequestCallback::createAndStartTimer):
106324        (WebCore::NotificationCenter::NotificationRequestCallback::NotificationRequestCallback):
106325        (WebCore::NotificationCenter::NotificationRequestCallback::startTimer):
106326        (WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
106327        * Modules/notifications/NotificationCenter.h: Renamed from Source/WebCore/notifications/NotificationCenter.h.
106328        (WebCore):
106329        (NotificationCenter):
106330        (WebCore::NotificationCenter::createHTMLNotification):
106331        (WebCore::NotificationCenter::createNotification):
106332        (WebCore::NotificationCenter::client):
106333        (NotificationRequestCallback):
106334        * Modules/notifications/NotificationCenter.idl: Renamed from Source/WebCore/notifications/NotificationCenter.idl.
106335        * Modules/notifications/NotificationClient.h: Renamed from Source/WebCore/notifications/NotificationClient.h.
106336        (WebCore):
106337        (NotificationClient):
106338        (WebCore::NotificationClient::clearNotifications):
106339        (WebCore::NotificationClient::~NotificationClient):
106340        * Modules/notifications/NotificationController.cpp: Renamed from Source/WebCore/notifications/NotificationController.cpp.
106341        (WebCore):
106342        (WebCore::NotificationController::NotificationController):
106343        (WebCore::NotificationController::~NotificationController):
106344        (WebCore::NotificationController::create):
106345        (WebCore::NotificationController::clientFrom):
106346        (WebCore::NotificationController::supplementName):
106347        (WebCore::provideNotification):
106348        * Modules/notifications/NotificationController.h: Renamed from Source/WebCore/notifications/NotificationController.h.
106349        (WebCore):
106350        (NotificationController):
106351        (WebCore::NotificationController::from):
106352        (WebCore::NotificationController::client):
106353        * Modules/notifications/NotificationPermissionCallback.h: Renamed from Source/WebCore/notifications/NotificationPermissionCallback.h.
106354        (WebCore):
106355        (NotificationPermissionCallback):
106356        (WebCore::NotificationPermissionCallback::~NotificationPermissionCallback):
106357        * Modules/notifications/NotificationPermissionCallback.idl: Renamed from Source/WebCore/notifications/NotificationPermissionCallback.idl.
106358        * Modules/notifications/WorkerContextNotifications.cpp: Renamed from Source/WebCore/notifications/WorkerContextNotifications.cpp.
106359        (WebCore):
106360        (WebCore::WorkerContextNotifications::WorkerContextNotifications):
106361        (WebCore::WorkerContextNotifications::~WorkerContextNotifications):
106362        (WebCore::WorkerContextNotifications::from):
106363        (WebCore::WorkerContextNotifications::webkitNotifications):
106364        * Modules/notifications/WorkerContextNotifications.h: Renamed from Source/WebCore/notifications/WorkerContextNotifications.h.
106365        (WebCore):
106366        (WorkerContextNotifications):
106367        * Modules/notifications/WorkerContextNotifications.idl: Renamed from Source/WebCore/notifications/WorkerContextNotifications.idl.
106368        * Target.pri:
106369        * WebCore.gyp/WebCore.gyp:
106370        * WebCore.gypi:
106371        * WebCore.pri:
106372        * WebCore.vcproj/WebCore.vcproj:
106373        * WebCore.vcproj/WebCoreCommon.vsprops:
106374        * WebCore.vcproj/copyForwardingHeaders.cmd:
106375        * WebCore.xcodeproj/project.pbxproj:
106376
1063772012-07-04  Hayato Ito  <hayato@chromium.org>
106378
106379        Remove inline keywords from functions which can not be inlined in ComposedShadowTreeWalker
106380        https://bugs.webkit.org/show_bug.cgi?id=90432
106381
106382        Reviewed by Hajime Morita.
106383
106384        No new tests - no functional changes.
106385
106386        * dom/ComposedShadowTreeWalker.cpp:
106387        (WebCore::ComposedShadowTreeWalker::traverseParent):
106388        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
106389
1063902012-07-04  Luke Macpherson  <macpherson@chromium.org>
106391
106392        Inspector crashes when trying to inspect a page with CSS variables
106393        https://bugs.webkit.org/show_bug.cgi?id=89818
106394
106395        Reviewed by Antti Koivisto.
106396
106397        Patch works by fixing treating handling of CSSPropertyID == CSSPropertyVariable as a special case,
106398        and looking up the author-defined property name from the CSSValue.
106399
106400        Added test inspector/styles/variables/css-variables.html that inspects an element using CSS variables.
106401        Test is skipped when variables are compiled out.
106402
106403        * css/CSSProperty.cpp:
106404        (WebCore::CSSProperty::cssName):
106405        (WebCore):
106406        (WebCore::CSSProperty::cssText):
106407        * css/CSSProperty.h:
106408        (CSSProperty):
106409        * css/PropertySetCSSStyleDeclaration.cpp:
106410        (WebCore::PropertySetCSSStyleDeclaration::item):
106411        * css/StylePropertySet.cpp:
106412        (WebCore::StylePropertySet::asText):
106413        * inspector/InspectorStyleSheet.cpp:
106414        (WebCore::InspectorStyle::populateAllProperties):
106415
1064162012-07-04  Anthony Scian  <ascian@rim.com>
106417
106418        Web Inspector [JSC]: Implement ScriptCallStack::stackTrace
106419        https://bugs.webkit.org/show_bug.cgi?id=40118
106420
106421        Reviewed by Yong Li.
106422
106423        Implemented stub for createScriptCallStack to call into
106424        Interpreter and extract the current stack frames, iterate
106425        through the frames and create the return result required.
106426
106427        No new tests, manually tested thrown exception and inspector
106428        tracebacks.
106429
106430        * bindings/js/ScriptCallStackFactory.cpp:
106431        (WebCore::createScriptCallStack):
106432
1064332012-07-04  Dana Jansens  <danakj@chromium.org>
106434
106435        [chromium] Respect memory needed for RenderSurfaces when reserving contents textures
106436        https://bugs.webkit.org/show_bug.cgi?id=89901
106437
106438        Reviewed by Adrienne Walker.
106439
106440        Treat the memory allocation given to a tab as an allocation for its
106441        contents and surfaces. Then only use up contents memory such that
106442        the surface textures will still fit within the limit. Report histograms
106443        for the amount of contents and surface texture memory used by each
106444        frame generated by the main thread.
106445
106446        In the context of ubercomp, each nested compositor will use less memory
106447        for contents ensuring that the root compositor has space for surfaces
106448        caused by that nested compositor.
106449
106450        Since surface memory can no longer be taken by contents, we remove the
106451        preferred memory limit from the texture manager.
106452
106453        Tests: TiledLayerChromiumTest.dontAllocateContentsWhenTargetSurfaceCantBeAllocated
106454               CCPrioritizedTextureTest.renderSurfacesReduceMemoryAvailableOutsideRootSurface
106455               CCPrioritizedTextureTest.renderSurfacesReduceMemoryAvailableForRequestLate
106456               CCPrioritizedTextureTest.whenRenderSurfaceNotAvailableTexturesAlsoNotAvailable
106457
106458        * platform/graphics/chromium/LayerRendererChromium.cpp:
106459        (WebCore::LayerRendererChromium::drawBackgroundFilters):
106460        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
106461        (WebCore::ScrollbarLayerChromium::setTexturePriorities):
106462        * platform/graphics/chromium/TiledLayerChromium.cpp:
106463        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
106464        * platform/graphics/chromium/TiledLayerChromium.h:
106465        (TiledLayerChromium):
106466        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
106467        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
106468        (WebCore::CCLayerTreeHost::updateLayers):
106469        (WebCore::CCLayerTreeHost::prioritizeTextures):
106470        (WebCore::CCLayerTreeHost::paintLayerContents):
106471        * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
106472        (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
106473        (WebCore::CCOverdrawMetrics::didUseContentsTextureMemoryBytes):
106474        (WebCore):
106475        (WebCore::CCOverdrawMetrics::didUseRenderSurfaceTextureMemoryBytes):
106476        (WebCore::CCOverdrawMetrics::recordMetricsInternal):
106477        * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
106478        (CCOverdrawMetrics):
106479        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
106480        (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
106481        (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
106482        (WebCore::CCPrioritizedTextureManager::requestLate):
106483        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
106484        (WebCore::CCPrioritizedTextureManager::reduceMemory):
106485        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
106486        (WebCore::CCPrioritizedTextureManager::create):
106487        (WebCore::CCPrioritizedTextureManager::memoryForRenderSurfacesBytes):
106488        (CCPrioritizedTextureManager):
106489        * platform/graphics/chromium/cc/CCPriorityCalculator.cpp:
106490        (WebCore::CCPriorityCalculator::uiPriority):
106491        (WebCore::CCPriorityCalculator::visiblePriority):
106492        (WebCore):
106493        (WebCore::CCPriorityCalculator::renderSurfacePriority):
106494        (WebCore::CCPriorityCalculator::priorityFromDistance):
106495        (WebCore::CCPriorityCalculator::priorityFromVisibility):
106496        * platform/graphics/chromium/cc/CCPriorityCalculator.h:
106497        (CCPriorityCalculator):
106498
1064992012-07-04  John Mellor  <johnme@chromium.org>
106500
106501        Text Autosizing: Add basic framework
106502        https://bugs.webkit.org/show_bug.cgi?id=88655
106503
106504        This adds a highly simplified foundation that subsequent Text Autosizing patches
106505        can build upon. I've refactored this code (since the earlier combined diff
106506        uploaded to http://webkit.org/b/84186) to touch as few files as possible.
106507
106508        Reviewed by Adam Barth.
106509
106510        No new tests. I plan to add a test framework as my next Text Autosizing patch.
106511
106512        * WebCore.gypi:
106513        * dom/Document.cpp:
106514        (WebCore::Document::Document):
106515        * dom/Document.h:
106516        (WebCore):
106517        (Document):
106518        (WebCore::Document::textAutosizer):
106519        * page/FrameView.cpp:
106520        (WebCore::FrameView::layout):
106521        * rendering/TextAutosizer.cpp: Added.
106522        (WebCore):
106523        (WebCore::TextAutosizer::TextAutosizer):
106524        (WebCore::TextAutosizer::~TextAutosizer):
106525        (WebCore::TextAutosizer::create):
106526        (WebCore::TextAutosizer::boostSubtree):
106527        (WebCore::TextAutosizer::boostBlock):
106528        (WebCore::TextAutosizer::boostText):
106529        (WebCore::TextAutosizer::treatAsInline):
106530        (WebCore::TextAutosizer::traverseNext):
106531        (WebCore::TextAutosizer::cloneRenderStyleWithState):
106532        * rendering/TextAutosizer.h: Added.
106533        (WebCore):
106534        (TextAutosizer):
106535
1065362012-07-04  Andrey Kosyakov  <caseq@chromium.org>
106537
106538        Unreviewed, rolling out r121767.
106539        http://trac.webkit.org/changeset/121767
106540        https://bugs.webkit.org/show_bug.cgi?id=89584
106541
106542        Crashes inspected page while recording timeline due to
106543        conflict with BeginFrame in record stack
106544
106545        * inspector/InspectorTimelineAgent.cpp:
106546        (WebCore::InspectorTimelineAgent::willSendResourceRequest):
106547        (WebCore::InspectorTimelineAgent::willProcessTask):
106548        (WebCore::InspectorTimelineAgent::didProcessTask):
106549        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
106550        (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
106551        * inspector/InspectorTimelineAgent.h:
106552        (InspectorTimelineAgent):
106553        * inspector/front-end/MemoryStatistics.js:
106554        (WebInspector.MemoryStatistics.prototype._onRecordAdded):
106555        * inspector/front-end/TimelineFrameController.js:
106556        (WebInspector.TimelineFrameController.prototype._addRecord):
106557        * inspector/front-end/TimelineModel.js:
106558        * inspector/front-end/TimelineOverviewPane.js:
106559        (WebInspector.TimelineCategoryStrips.prototype.update.appendRecord):
106560        (WebInspector.TimelineCategoryStrips.prototype.update):
106561        * inspector/front-end/TimelinePanel.js:
106562        (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
106563        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
106564        * inspector/front-end/TimelinePresentationModel.js:
106565        (WebInspector.TimelinePresentationModel.categories):
106566        (WebInspector.TimelinePresentationModel.recordStyle):
106567        (WebInspector.TimelinePresentationModel.categoryForRecord):
106568        (WebInspector.TimelinePresentationModel.forAllRecords):
106569        (WebInspector.TimelinePresentationModel.prototype.addRecord):
106570
1065712012-07-04  Dana Jansens  <danakj@chromium.org>
106572
106573        [chromium] Clear RenderSurfaces still when no idle paint will be done
106574        https://bugs.webkit.org/show_bug.cgi?id=90553
106575
106576        Reviewed by Adrienne Walker.
106577
106578        Currently if idle painting is disabled, updateLayers() will early-out.
106579        But this prevents it from doing cleanup and clearing all RenderSurface
106580        pointers, leaving the layer tree in an unexpected state.
106581
106582        Tests: CCLayerTreeHostTestCompositeAndReadbackCleanup
106583
106584        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
106585        (WebCore::CCLayerTreeHost::updateLayers):
106586
1065872012-07-04  John Mellor  <johnme@chromium.org>
106588
106589        Text Autosizing: Add compile flag and runtime setting
106590        https://bugs.webkit.org/show_bug.cgi?id=87394
106591
106592        This patch renames Font Boosting to Text Autosizing and adds compile guards around the runtime setting.
106593
106594        Reviewed by Adam Barth.
106595
106596        No functionality yet, so no new tests.
106597
106598        * Configurations/FeatureDefines.xcconfig:
106599        * GNUmakefile.am:
106600        * Target.pri:
106601        * page/Settings.cpp:
106602        (WebCore::Settings::Settings):
106603        (WebCore::Settings::setTextAutosizingEnabled):
106604        * page/Settings.h:
106605        (Settings):
106606        (WebCore::Settings::textAutosizingEnabled):
106607
1066082012-07-03  Alexander Pavlov  <apavlov@chromium.org>
106609
106610        Web Inspector: Emulate pseudo styles (hover etc.) of non-selected elements
106611        https://bugs.webkit.org/show_bug.cgi?id=86630
106612
106613        Reviewed by Pavel Feldman.
106614
106615        - A map of pseudo-states for all bound DOM nodes is maintained in the backend and queried whenever StyleResolver
106616        calculates the effective element style.
106617        - In the frontend, markers are introduced to distinguish elements that have forced pseudo styles set for them.
106618        Additionally, dimmed markers are added for collapsed nodes, whose descendants have forced pseudo styles.
106619        More ElementDecorator subtypes will be added for other types of markers.
106620
106621        Test: inspector/styles/force-pseudo-state.html
106622
106623        * English.lproj/localizedStrings.js:
106624        * inspector/InspectorCSSAgent.cpp:
106625        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
106626        (WebCore::InspectorCSSAgent::clearFrontend):
106627        (WebCore::InspectorCSSAgent::reset):
106628        (WebCore::InspectorCSSAgent::forcePseudoState):
106629        (WebCore::InspectorCSSAgent::recalcStyleForPseudoStateIfNeeded):
106630        (WebCore::InspectorCSSAgent::elementForId):
106631        (WebCore::InspectorCSSAgent::didRemoveDocument):
106632        (WebCore::InspectorCSSAgent::didRemoveDOMNode):
106633        (WebCore::InspectorCSSAgent::resetPseudoStates):
106634        * inspector/InspectorCSSAgent.h:
106635        (InspectorCSSAgent):
106636        * inspector/InspectorDOMAgent.cpp:
106637        (WebCore::InspectorDOMAgent::unbind):
106638        (WebCore::InspectorDOMAgent::didRemoveDOMNode):
106639        * inspector/front-end/ElementsPanel.js:
106640        (WebInspector.ElementsPanel.get this):
106641        (WebInspector.ElementsPanel):
106642        (WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
106643        * inspector/front-end/ElementsTreeOutline.js:
106644        (WebInspector.ElementsTreeOutline):
106645        (WebInspector.ElementsTreeOutline.prototype._createNodeDecorators):
106646        (WebInspector.ElementsTreeOutline.prototype.updateOpenCloseTags):
106647        (WebInspector.ElementsTreeOutline.ElementDecorator):
106648        (WebInspector.ElementsTreeOutline.ElementDecorator.prototype.decorate):
106649        (WebInspector.ElementsTreeOutline.ElementDecorator.prototype.decorateAncestor):
106650        (WebInspector.ElementsTreeOutline.PseudoStateDecorator):
106651        (WebInspector.ElementsTreeOutline.PseudoStateDecorator.prototype.decorate):
106652        (WebInspector.ElementsTreeOutline.PseudoStateDecorator.prototype.decorateAncestor):
106653        (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
106654        (WebInspector.ElementsTreeElement.prototype._populateForcedPseudoStateItems):
106655        (WebInspector.ElementsTreeElement.prototype.updateTitle):
106656        (WebInspector.ElementsTreeElement.prototype._createDecoratorElement):
106657        (WebInspector.ElementsTreeElement.prototype._updateDecorations):
106658        * inspector/front-end/StylesSidebarPane.js:
106659        (WebInspector.StylesSidebarPane):
106660        (WebInspector.StylesSidebarPane.prototype.get forcedPseudoClasses):
106661        (WebInspector.StylesSidebarPane.prototype._updateForcedPseudoStateInputs):
106662        (WebInspector.StylesSidebarPane.prototype.update):
106663        (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
106664        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
106665        (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
106666        (WebInspector.StylesSidebarPane.prototype._createElementStatePane.clickListener):
106667        * inspector/front-end/elementsPanel.css:
106668        (#elements-content .elements-gutter-decoration):
106669        (#elements-content .elements-gutter-decoration.elements-has-decorated-children):
106670
1066712012-07-04  Pavel Feldman  <pfeldman@chromium.org>
106672
106673        Web Inspector: fix search on the network panel.
106674        https://bugs.webkit.org/show_bug.cgi?id=90557
106675
106676        Reviewed by Vsevolod Vlasov.
106677
106678        * inspector/front-end/NetworkPanel.js:
106679        (WebInspector.NetworkLogView.prototype._highlightNthMatchedRequest):
106680
1066812012-07-04  Kwang Yul Seo  <skyul@company100.net>
106682
106683        Stop tracking line number in tokenizer
106684        https://bugs.webkit.org/show_bug.cgi?id=90544
106685
106686        Reviewed by Adam Barth.
106687
106688        Because SegmentedString knows how to track the current line and column,
106689        a tokenizer does not need to keep track of the current line by itself.
106690        No behavior change, so no new tests.
106691
106692        * html/parser/HTMLDocumentParser.cpp:
106693        (WebCore::HTMLDocumentParser::pumpTokenizer):
106694        (WebCore::HTMLDocumentParser::lineNumber):
106695        (WebCore::HTMLDocumentParser::textPosition):
106696        * html/parser/HTMLTokenizer.cpp:
106697        (WebCore::HTMLTokenizer::reset):
106698        (WebCore::HTMLTokenizer::flushBufferedEndTag):
106699        (WebCore):
106700        (WebCore::HTMLTokenizer::nextToken):
106701        * html/parser/HTMLTreeBuilder.cpp:
106702        (WebCore::HTMLTreeBuilder::processScriptStartTag):
106703        * html/track/WebVTTTokenizer.cpp:
106704        (WebCore::WebVTTTokenizer::reset):
106705        (WebCore::WebVTTTokenizer::nextToken):
106706        * platform/text/SegmentedString.cpp:
106707        (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase):
106708        * platform/text/SegmentedString.h:
106709        (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
106710        (WebCore::SegmentedString::advanceAndUpdateLineNumber):
106711        (SegmentedString):
106712        * xml/parser/MarkupTokenizerBase.h:
106713        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek):
106714        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
106715        (WebCore::MarkupTokenizerBase::emitAndResumeIn):
106716        (WebCore::MarkupTokenizerBase::emitEndOfFile):
106717        (WebCore::MarkupTokenizerBase::reset):
106718        (MarkupTokenizerBase):
106719        * xml/parser/MarkupTokenizerInlineMethods.h:
106720        (WebCore):
106721        * xml/parser/XMLTokenizer.cpp:
106722        (WebCore::XMLTokenizer::nextToken):
106723
1067242012-07-04  Ryuan Choi  <ryuan.choi@samsung.com>
106725
106726        [CMAKE] Add GENERATE_BINDINGS macro to share the codes which use generate-bindings.pl.
106727        https://bugs.webkit.org/show_bug.cgi?id=90258
106728
106729        Reviewed by Rob Buis.
106730
106731        Use GENERATE_BINDINGS instead of using generate-bindings.pl directly.
106732
106733        * UseJSC.cmake:
106734        * UseV8.cmake:
106735        * PlatformBlackBerry.cmake:
106736
1067372012-07-04  Vsevolod Vlasov  <vsevik@chromium.org>
106738
106739        Web Inspector: UISourceCode should take care of adding revision after committing working copy.
106740        https://bugs.webkit.org/show_bug.cgi?id=90549
106741
106742        Reviewed by Pavel Feldman.
106743
106744        Revision is now added in UISourceCode.commitWorkingCopy synchronously even if saving to JS VM or CSS model failed.
106745
106746        * inspector/front-end/CSSStyleModel.js:
106747        (WebInspector.CSSStyleModelResourceBinding.prototype.setStyleContent):
106748        * inspector/front-end/ExtensionServer.js:
106749        (WebInspector.ExtensionServer.prototype._handleOpenURL):
106750        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
106751        (WebInspector.ExtensionServer.prototype._onSetResourceContent):
106752        * inspector/front-end/JavaScriptSource.js:
106753        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
106754        * inspector/front-end/StylesPanel.js:
106755        (WebInspector.StyleSource.prototype._callOrSetTimeout):
106756        * inspector/front-end/UISourceCode.js:
106757        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
106758        * inspector/front-end/Workspace.js:
106759        (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodeForURL):
106760
1067612012-07-04  Pavel Feldman  <pfeldman@chromium.org>
106762
106763        Web Inspector: move settings button back to the right.
106764        https://bugs.webkit.org/show_bug.cgi?id=90552
106765
106766        Reviewed by Vsevolod Vlasov.
106767
106768        * inspector/front-end/inspector.css:
106769        (button.status-bar-item:active, button.status-bar-item.emulate-active):
106770        (button.settings-status-bar-item):
106771
1067722012-07-04  Vsevolod Vlasov  <vsevik@chromium.org>
106773
106774        Web Inspector: Get rid of ResourceDomainModelBinding and DebuggerResourceBinding, make Resource.setContent private.
106775        https://bugs.webkit.org/show_bug.cgi?id=90531
106776
106777        Reviewed by Pavel Feldman.
106778
106779        Resource.setContent made private. It is delegating now to UISourceCodes which take care of domain specific actions.
106780        DebuggerResourceBinding was be removed and DebuggerResourceBinding.setScriptSource was moved to JavaScriptSource.
106781        ResourceDomainModelBinding was removed as well.
106782
106783        * WebCore.gypi:
106784        * WebCore.vcproj/WebCore.vcproj:
106785        * inspector/compile-front-end.py:
106786        * inspector/front-end/CSSStyleModel.js:
106787        (WebInspector.CSSStyleModelResourceBinding):
106788        * inspector/front-end/DebuggerResourceBinding.js: Removed.
106789        * inspector/front-end/JavaScriptSource.js:
106790        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
106791        (WebInspector.JavaScriptSource.prototype._setScriptSource.didEditScriptSource):
106792        (WebInspector.JavaScriptSource.prototype._setScriptSource):
106793        * inspector/front-end/Resource.js:
106794        (WebInspector.Resource.prototype._setContent):
106795        (WebInspector.Resource.prototype.revertToOriginal):
106796        (WebInspector.Resource.prototype.revertAndClearHistory):
106797        (WebInspector.ResourceRevision.prototype.revertToThis):
106798        * inspector/front-end/StylesPanel.js:
106799        (WebInspector.StyleSource.prototype.isEditable):
106800        * inspector/front-end/UISourceCode.js:
106801        * inspector/front-end/WebKit.qrc:
106802        * inspector/front-end/Workspace.js:
106803        (WebInspector.Workspace):
106804        * inspector/front-end/inspector.html:
106805
1068062012-07-04  'Pavel Feldman'  <pfeldman@chromium.org>
106807
106808        Not reviewed: follow up to r121843, reduce inspector dock timeout to 200ms.
106809
106810        * inspector/front-end/StatusBarButton.js:
106811        (WebInspector.StatusBarButton.prototype.makeLongClickEnabled.mouseDown):
106812
1068132012-07-04  Ian Vollick  <vollick@chromium.org>
106814
106815        [chromium] Correctly reject accelerated animations with certain rotations.
106816        https://bugs.webkit.org/show_bug.cgi?id=89768
106817
106818        Reviewed by James Robinson.
106819
106820        UnitTests:
106821          GraphicsLayerChromiumTest.createTransformAnimationWithBigRotation
106822          GraphicsLayerChromiumTest.createTransformAnimationWithRotationInvolvingNegativeAngles
106823          GraphicsLayerChromiumTest.createTransformAnimationWithSmallRotationInvolvingLargeAngles
106824
106825        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
106826        (WebCore::appendKeyframe):
106827        (WebCore::isRotationType):
106828        (WebCore):
106829        (WebCore::causesRotationOfAtLeast180Degrees):
106830        (WebCore::CCKeyframedTransformAnimationCurve):
106831        (WebCore::createActiveAnimation):
106832        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
106833        (WebCore::GraphicsLayerChromium::addAnimation):
106834
1068352012-07-04  Pavel Feldman  <pfeldman@chromium.org>
106836
106837        Web Inspector: "Dock to right" shouldn't be in the settings dialog
106838        https://bugs.webkit.org/show_bug.cgi?id=76917
106839
106840        Reviewed by Vsevolod Vlasov.
106841
106842        Introduced 'long click-enabled' options for status bar buttons. Made dock/undock one of them.
106843
106844        * inspector/front-end/Images/statusbarButtonGlyphs.png:
106845        * inspector/front-end/StatusBarButton.js:
106846        (WebInspector.StatusBarButton.prototype._clicked):
106847        (WebInspector.StatusBarButton.prototype.set visible):
106848        (WebInspector.StatusBarButton.prototype.makeLongClickEnabled.mouseDown):
106849        (WebInspector.StatusBarButton.prototype.makeLongClickEnabled.mouseUp):
106850        (WebInspector.StatusBarButton.prototype.makeLongClickEnabled):
106851        (WebInspector.StatusBarButton.prototype._showOptions.mouseOver):
106852        (WebInspector.StatusBarButton.prototype._showOptions.mouseOut):
106853        (WebInspector.StatusBarButton.prototype._showOptions.mouseUp):
106854        (WebInspector.StatusBarButton.prototype._showOptions):
106855        * inspector/front-end/UIUtils.js:
106856        (WebInspector.elementDragStart):
106857        (WebInspector.elementDragEnd):
106858        (WebInspector.GlassPane):
106859        (WebInspector.GlassPane.prototype.dispose):
106860        * inspector/front-end/inspector.css:
106861        (.long-click-glyph):
106862        (.long-click-glyph.shadow):
106863        (button.status-bar-item:active:not(.emulate-inactive), button.status-bar-item.emulate-active):
106864        (.alternate-status-bar-buttons-bar):
106865        (.alternate-status-bar-buttons-bar .status-bar-item):
106866        * inspector/front-end/inspector.js:
106867        (WebInspector._createGlobalStatusBarItems):
106868        (WebInspector._createDockOptions.onClick.set else):
106869        (WebInspector._createDockOptions.onClick):
106870
1068712012-07-04  Sheriff Bot  <webkit.review.bot@gmail.com>
106872
106873        Unreviewed, rolling out r121813.
106874        http://trac.webkit.org/changeset/121813
106875        https://bugs.webkit.org/show_bug.cgi?id=90522
106876
106877        Causes browser_tests failure:
106878        ErrorPageTest.DNSError_GoBack2{Forward2,AndForward} on
106879        Chromium {Linux,Mac,Win} (Requested by yosin on #webkit).
106880
106881        * loader/DocumentLoader.cpp:
106882        (WebCore::DocumentLoader::commitData):
106883        (WebCore::DocumentLoader::setupForReplaceByMIMEType):
106884        * testing/js/WebCoreTestSupport.cpp:
106885        (WebCoreTestSupport::resetInternalsObject):
106886
1068872012-07-04  Kihong Kwon  <kihong.kwon@samsung.com>
106888
106889        [EFL] Change format of return value of navigator.language
106890        https://bugs.webkit.org/show_bug.cgi?id=89639
106891
106892        Reviewed by Kenneth Rohde Christiansen.
106893
106894        Remove encoding type from return value of navigator.language.
106895        For example, from en-US.UTF-8 to en-US.
106896
106897        Use exist test case (fast/js/navigator-language.html).
106898
106899        * platform/efl/LanguageEfl.cpp:
106900        (WebCore::platformLanguage):
106901
1069022012-07-03  Carlos Garcia Campos  <cgarcia@igalia.com>
106903
106904        [GTK] Don't show accel labels in context menu items
106905        https://bugs.webkit.org/show_bug.cgi?id=90437
106906
106907        Reviewed by Martin Robinson.
106908
106909        When a context menu item is created with a GtkMenuItem that has
106910        been created from a GtkAction, if the action has an accelerator,
106911        it's shown in the menu item label, like menu items in a menu
106912        bar. In that case we should reset the accel closure of the menu
106913        item label, like GtkUIManager does for popup menus, to make sure
106914        the accelerator is not shown. This isn't needed for all other
106915        ContextMenuIem constructors, because the GtkAction is created
106916        without accelerator by webkit in those cases.
106917
106918        * platform/gtk/ContextMenuItemGtk.cpp:
106919        (WebCore::ContextMenuItem::ContextMenuItem):
106920
1069212012-07-03  Christophe Dumez  <christophe.dumez@intel.com>
106922
106923        [EFL] Move BatteryClientEfl from WebKit to WebCore
106924        https://bugs.webkit.org/show_bug.cgi?id=90063
106925
106926        Reviewed by Kenneth Rohde Christiansen.
106927
106928        Move BatteryClientEfl class from WebKit to WebCore
106929        so that it can be reused in WebKit2.
106930
106931        No new tests, no behavior change.
106932
106933        * PlatformEfl.cmake:
106934        * platform/efl/BatteryClientEfl.cpp: Renamed from Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.cpp.
106935        (WebCore):
106936        (WebCore::BatteryClientEfl::BatteryClientEfl):
106937        (WebCore::BatteryClientEfl::setController):
106938        (WebCore::BatteryClientEfl::startUpdating):
106939        (WebCore::BatteryClientEfl::stopUpdating):
106940        (WebCore::BatteryClientEfl::batteryControllerDestroyed):
106941        (WebCore::BatteryClientEfl::setBatteryStatus):
106942        (WebCore::BatteryClientEfl::timerFired):
106943        (WebCore::BatteryClientEfl::getBatteryStatus):
106944        (WebCore::BatteryClientEfl::setBatteryClient):
106945        * platform/efl/BatteryClientEfl.h: Renamed from Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h.
106946        (WebCore):
106947        (BatteryClientEfl):
106948        (WebCore::BatteryClientEfl::~BatteryClientEfl):
106949        (WebCore::BatteryClientEfl::batteryStatus):
106950
1069512012-07-03  Huang Dongsung  <luxtella@company100.net>
106952
106953        Add a comment in order to clarify why
106954        BitmapImage::frameHasAlphaAtIndex returns true as default.
106955        https://bugs.webkit.org/show_bug.cgi?id=90445
106956
106957        Reviewed by Eric Seidel.
106958
106959        No new tests. This patch doesn't change behavior.
106960
106961        * platform/graphics/BitmapImage.cpp:
106962        (WebCore::BitmapImage::frameHasAlphaAtIndex):
106963        (WebCore):
106964
1069652012-07-03  Alex Sakhartchouk  <alexst@chromium.org>
106966
106967        [chromium] Avoid calling getUniformLocation??() in the compositor startup
106968        https://bugs.webkit.org/show_bug.cgi?id=90217
106969
106970        Reviewed by Adrienne Walker.
106971
106972        This change allows chrome compositor to bind uniform locations instead of querying 
106973        them from the graphics context by using GL_CHROMIUM_bind_uniform_location.
106974
106975        The extention itself is tested in chromium and the change in webkit simply adds
106976        plumbing to allow its usage. Existing pixel tests would be able to verify proper behaviour.
106977
106978        * platform/graphics/chromium/LayerRendererChromium.cpp:
106979        (WebCore::LayerRendererChromium::LayerRendererChromium):
106980        (WebCore::LayerRendererChromium::initialize):
106981        (WebCore::LayerRendererChromium::initializeSharedObjects):
106982        (WebCore::LayerRendererChromium::tileCheckerboardProgram):
106983        (WebCore::LayerRendererChromium::solidColorProgram):
106984        (WebCore::LayerRendererChromium::headsUpDisplayProgram):
106985        (WebCore::LayerRendererChromium::renderPassProgram):
106986        (WebCore::LayerRendererChromium::renderPassProgramAA):
106987        (WebCore::LayerRendererChromium::renderPassMaskProgram):
106988        (WebCore::LayerRendererChromium::renderPassMaskProgramAA):
106989        (WebCore::LayerRendererChromium::tileProgram):
106990        (WebCore::LayerRendererChromium::tileProgramOpaque):
106991        (WebCore::LayerRendererChromium::tileProgramAA):
106992        (WebCore::LayerRendererChromium::tileProgramSwizzle):
106993        (WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
106994        (WebCore::LayerRendererChromium::tileProgramSwizzleAA):
106995        (WebCore::LayerRendererChromium::textureProgram):
106996        (WebCore::LayerRendererChromium::textureProgramFlip):
106997        (WebCore::LayerRendererChromium::textureIOSurfaceProgram):
106998        (WebCore::LayerRendererChromium::videoYUVProgram):
106999        (WebCore::LayerRendererChromium::videoStreamTextureProgram):
107000        * platform/graphics/chromium/LayerRendererChromium.h:
107001        (LayerRendererChromium):
107002        * platform/graphics/chromium/ProgramBinding.cpp:
107003        (WebCore::ProgramBindingBase::ProgramBindingBase):
107004        (WebCore::ProgramBindingBase::~ProgramBindingBase):
107005        (WebCore::ProgramBindingBase::init):
107006        (WebCore::ProgramBindingBase::link):
107007        (WebCore):
107008        (WebCore::ProgramBindingBase::cleanup):
107009        (WebCore::ProgramBindingBase::createShaderProgram):
107010        (WebCore::ProgramBindingBase::cleanupShaders):
107011        * platform/graphics/chromium/ProgramBinding.h:
107012        (ProgramBindingBase):
107013        (WebCore::ProgramBinding::initialize):
107014        * platform/graphics/chromium/ShaderChromium.cpp:
107015        (WebCore::VertexShaderPosTex::init):
107016        (WebCore::VertexShaderPosTexYUVStretch::init):
107017        (WebCore::VertexShaderPos::init):
107018        (WebCore::VertexShaderPosTexTransform::init):
107019        (WebCore::VertexShaderQuad::init):
107020        (WebCore::VertexShaderTile::init):
107021        (WebCore::VertexShaderVideoTransform::init):
107022        (WebCore::FragmentTexAlphaBinding::init):
107023        (WebCore::FragmentTexOpaqueBinding::init):
107024        (WebCore::FragmentShaderOESImageExternal::init):
107025        (WebCore::FragmentShaderRGBATexAlphaAA::init):
107026        (WebCore::FragmentTexClampAlphaAABinding::init):
107027        (WebCore::FragmentShaderRGBATexAlphaMask::init):
107028        (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
107029        (WebCore::FragmentShaderYUVVideo::init):
107030        (WebCore::FragmentShaderColor::init):
107031        (WebCore::FragmentShaderCheckerboard::init):
107032        * platform/graphics/chromium/ShaderChromium.h:
107033        (VertexShaderPosTex):
107034        (VertexShaderPosTexYUVStretch):
107035        (VertexShaderPos):
107036        (WebCore::VertexShaderPosTexIdentity::init):
107037        (VertexShaderPosTexTransform):
107038        (VertexShaderQuad):
107039        (VertexShaderTile):
107040        (VertexShaderVideoTransform):
107041        (FragmentTexAlphaBinding):
107042        (FragmentTexOpaqueBinding):
107043        (FragmentShaderOESImageExternal):
107044        (FragmentShaderRGBATexAlphaAA):
107045        (FragmentTexClampAlphaAABinding):
107046        (FragmentShaderRGBATexAlphaMask):
107047        (FragmentShaderRGBATexAlphaMaskAA):
107048        (FragmentShaderYUVVideo):
107049        (FragmentShaderColor):
107050        (FragmentShaderCheckerboard):
107051        * platform/graphics/chromium/TextureCopier.cpp:
107052        (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
107053        (WebCore::AcceleratedTextureCopier::copyTexture):
107054        * platform/graphics/chromium/TextureCopier.h:
107055        (WebCore::AcceleratedTextureCopier::create):
107056        (AcceleratedTextureCopier):
107057
1070582012-07-03  Erik Arvidsson  <arv@chromium.org>
107059
107060        [V8] Remove enableFasterDOMStoreAccess which is never used
107061        https://bugs.webkit.org/show_bug.cgi?id=90489
107062
107063        Reviewed by Adam Barth.
107064
107065        No new tests. Dead code removal.
107066
107067        * bindings/v8/V8DOMMap.cpp:
107068        * bindings/v8/V8DOMMap.h:
107069        (WebCore):
107070
1070712012-07-03  Joshua Bell  <jsbell@chromium.org>
107072
107073        Binding: IDL type DOMString[] shouldn't match null
107074        https://bugs.webkit.org/show_bug.cgi?id=84217
107075
107076        Reviewed by Kentaro Hara.
107077
107078        Similar to r121714, IDL overloads with T[] (which is only minimally supported)
107079        were being treated as Nullable by default during overloaded method dispatching,
107080        which deviates from the WebIDL specification. Extend the previous change to
107081        look for Nullable (specified by "?" type suffix in the IDL) for array types.
107082
107083        Also, after inspection of the spec, use a strict "is this an Array?" test in
107084        the JS generator rather than an "inherits from Array.prototype?" test, to
107085        match the WebIDL spec.
107086
107087        IDL files with affected overloads are modified to include the "?" suffix
107088        so that no behavior changes are introduced by this patch - the JS and V8
107089        generator results before/after the change show no diffs apart from the stricter
107090        isJSArray() test.
107091
107092        Test: bindings/scripts/test/TestObj.idl (a non-Nullable T[] overload)
107093
107094        * Modules/indexeddb/IDBDatabase.idl: Tag T[] overloads with ? suffix.
107095        * Modules/indexeddb/IDBObjectStore.idl: Ditto.
107096        * Modules/vibration/NavigatorVibration.idl: Ditto.
107097        * bindings/scripts/CodeGeneratorJS.pm: Check isNullable for T[].
107098        (GenerateParametersCheckExpression):
107099        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
107100        (GenerateParametersCheckExpression):
107101        * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
107102        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
107103        (WebCore):
107104        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
107105        * bindings/scripts/test/TestObj.idl: Tag existing T[] with ?, add non-? T[].
107106        * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
107107        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
107108        (TestObjV8Internal):
107109        (WebCore::TestObjV8Internal::overloadedMethodCallback):
107110
1071112012-07-03  Nate Chapin  <japhet@chromium.org>
107112
107113        REGRESSION (r115654): Sometimes does not replace content for multipart/x-mixed-replace
107114        https://bugs.webkit.org/show_bug.cgi?id=88436
107115
107116        Reviewed by Brady Eidson.
107117
107118        Test: http/tests/multipart/multipart-replace-non-html-content.php
107119
107120        * loader/DocumentLoader.cpp:
107121        (WebCore::DocumentLoader::commitData): We should only send receivedFirstData() once per main resource load,
107122            rather than multiple times in a multipart load. 
107123        (WebCore::DocumentLoader::setupForReplaceByMIMEType): m_gotFirstByte isn't set to true until data is
107124            actually committed, and multipart data is often not committed until the part is finished. Check
107125            whether the SharedBuffer is non-null instead.
107126        * testing/js/WebCoreTestSupport.cpp:
107127        (WebCoreTestSupport::resetInternalsObject): The JSInternals object my have already been cleared if the window shell
107128            was cleared as part of creation of a new Document. Check it before using it.
107129
1071302012-07-03  Raymond Toy  <rtoy@google.com>
107131
107132        Add AudioFIFO class and simplify AudioPullFIFO
107133        https://bugs.webkit.org/show_bug.cgi?id=90398
107134
107135        Reviewed by Chris Rogers.
107136
107137        No new tests. This code will be used in audio back-end implementation.
107138
107139        Add AudioFIFO class to implement main parts of FIFO.  Simplify
107140        implementation of AudioPushFIFO by using AudioFIFO.
107141        
107142        * WebCore.gypi: Add new files.
107143
107144        New AudioFIFO class
107145        * platform/audio/AudioFIFO.cpp: Copied from Source/WebCore/platform/audio/AudioPullFIFO.cpp.
107146        (WebCore):
107147        (WebCore::AudioFIFO::AudioFIFO):
107148        (WebCore::AudioFIFO::consume):
107149        (WebCore::AudioFIFO::push):
107150        (WebCore::AudioFIFO::findWrapLengths):
107151        * platform/audio/AudioFIFO.h: Copied from Source/WebCore/platform/audio/AudioPullFIFO.h.
107152        (WebCore):
107153        (AudioFIFO):
107154        (WebCore::AudioFIFO::framesInFifo):
107155        (WebCore::AudioFIFO::updateIndex):
107156
107157        Use AudioFIFO
107158        * platform/audio/AudioPullFIFO.cpp:
107159        (WebCore::AudioPullFIFO::AudioPullFIFO):
107160        (WebCore::AudioPullFIFO::consume):
107161        (WebCore::AudioPullFIFO::fillBuffer):
107162        * platform/audio/AudioPullFIFO.h:
107163        (AudioPullFIFO):
107164
1071652012-07-03  Nate Chapin  <japhet@chromium.org>
107166
107167        Protect this DocumentThreadableLoader in cancel() to handle reentrancy properly.
107168        https://bugs.webkit.org/show_bug.cgi?id=90483
107169
107170        Reviewed by Abhishek Arya.
107171
107172        No new tests, covered by http/tests/xmlhttprequest/reentrant-cancel.html
107173
107174        * loader/DocumentThreadableLoader.cpp:
107175        (WebCore::DocumentThreadableLoader::cancel):
107176
1071772012-07-03  Tony Chang  <tony@chromium.org>
107178
107179        [chromium] Unreviewed, update .gitignore to handle VS2010 files.
107180
107181        * WebCore.gyp/.gitignore:
107182
1071832012-07-03  Zan Dobersek  <zandobersek@gmail.com>
107184
107185        [Gtk][Gamepads] 'warning: comparison is always true due to limited range of data type [-Wtype-limits]' in GamepadsGtk.cpp
107186        https://bugs.webkit.org/show_bug.cgi?id=90477
107187
107188        Reviewed by Martin Robinson.
107189
107190        Vector::find() returns value of type size_t, springing errors when
107191        assigning the value to a variable of type unsigned. Use size_t type
107192        for that variable instead.
107193
107194        No new tests - no changed functionality.
107195
107196        * platform/gtk/GamepadsGtk.cpp:
107197        (WebCore::GamepadsGtk::unregisterDevice):
107198
1071992012-07-03  Dominik Röttsches  <dominik.rottsches@intel.com>
107200
107201        Fix LayoutUnit usage in RenderImage::imageDimensionsChanged
107202        https://bugs.webkit.org/show_bug.cgi?id=90173
107203
107204        Reviewed by Eric Seidel.
107205
107206        The appropriate type should be used for storing width() and height() into local temporary variables.
107207
107208        No new tests, no change in behavior.
107209
107210        * rendering/RenderImage.cpp:
107211        (WebCore::RenderImage::imageDimensionsChanged):
107212
1072132012-07-03  Sergio Villar Senin  <svillar@igalia.com>
107214
107215        [TextureMapper] Typo in edge-distance anti-aliasing code
107216        https://bugs.webkit.org/show_bug.cgi?id=90475
107217
107218        Reviewed by Martin Robinson.
107219
107220        No new tests. This just fixes a typo.
107221
107222        * platform/graphics/texmap/TextureMapperGL.cpp:
107223        (WebCore::TextureMapperGL::drawQuad):
107224
1072252012-06-27  Vsevolod Vlasov  <vsevik@chromium.org>
107226
107227        Web Inspector: [Extensions API] Resource manipulations should be based on UISourceCode thus extending Sources Panel.
107228        https://bugs.webkit.org/show_bug.cgi?id=89868
107229
107230        Reviewed by Pavel Feldman.
107231
107232        Extensions API is now based on both ScriptsPanel acting as a UISourceCodeProvider and ResourceTreeModel.
107233        Extensions API resource could be for any content provider now.
107234        Extensions API resource.setContent implementation is now based on UISourceCode editing methods.
107235        Drive-by StyleSource insremental editing timeout fix.
107236
107237        * inspector/front-end/ExtensionServer.js:
107238        (WebInspector.ExtensionServer.prototype._handleOpenURL):
107239        (WebInspector.ExtensionServer.prototype._makeResource):
107240        (WebInspector.ExtensionServer.prototype._onGetPageResources):
107241        (WebInspector.ExtensionServer.prototype._getResourceContent):
107242        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
107243        (WebInspector.ExtensionServer.prototype._onSetResourceContent):
107244        (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
107245        (WebInspector.ExtensionServer.prototype._notifyResourceContentCommitted):
107246        * inspector/front-end/JavaScriptSource.js:
107247        * inspector/front-end/ScriptsPanel.js:
107248        (WebInspector.ScriptsPanel.prototype.uiSourceCodes):
107249        (WebInspector.ScriptsPanel.prototype.uiSourceCodeForURL):
107250        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
107251        (WebInspector.ScriptsPanel.prototype._reset):
107252        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
107253        * inspector/front-end/StylesPanel.js:
107254        (WebInspector.StyleSource.prototype.workingCopyCommitted):
107255        (WebInspector.StyleSource.prototype.workingCopyChanged):
107256        (WebInspector.StyleSource.prototype._callOrSetTimeout):
107257        (WebInspector.StyleSource.prototype._commitIncrementalEdit):
107258        (WebInspector.StyleSource.prototype._clearIncrementalUpdateTimer):
107259        * inspector/front-end/UISourceCode.js:
107260        (WebInspector.UISourceCode.prototype.requestContent):
107261        (WebInspector.UISourceCode.prototype.workingCopy):
107262        (WebInspector.UISourceCode.prototype.setWorkingCopy):
107263        (WebInspector.UISourceCode.prototype.isDirty):
107264
1072652012-07-03  Vsevolod Vlasov  <vsevik@chromium.org>
107266
107267        Web Inspector: Anonymous scripts (evals) should not be added to Workspace.
107268        https://bugs.webkit.org/show_bug.cgi?id=90467
107269
107270        Reviewed by Pavel Feldman.
107271
107272        * inspector/front-end/ResourceScriptMapping.js:
107273        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
107274        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
107275        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
107276        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
107277        * inspector/front-end/ScriptSnippetModel.js:
107278        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
107279        * inspector/front-end/ScriptsPanel.js:
107280        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
107281
1072822012-07-03  Robert Hogan  <robert@webkit.org>
107283
107284        CSS 2.1 failure: floats-wrap-top-below-inline-* fail
107285        https://bugs.webkit.org/show_bug.cgi?id=88171
107286
107287        Reviewed by Eric Seidel.
107288
107289        When shifting a line or element left or right to avoid a float use the height
107290        of the line or element to determine whether the float is inside the element or
107291        if it overlaps the bottom of the element. 
107292
107293        Do this by passing the height of the element to the interval tree used to detect
107294        the overlap with it's containing block's floats. The height is zero by default so
107295        callers to logical[Left|Right]OffsetForLine will need to pass the height if they
107296        want to use it to detect floats to avoid.
107297
107298        Tests: css2.1/20110323/floats-wrap-top-below-bfc-001l.htm
107299               css2.1/20110323/floats-wrap-top-below-bfc-001r.htm
107300               css2.1/20110323/floats-wrap-top-below-bfc-002l.htm
107301               css2.1/20110323/floats-wrap-top-below-bfc-002r.htm
107302               css2.1/20110323/floats-wrap-top-below-bfc-003l.htm
107303               css2.1/20110323/floats-wrap-top-below-bfc-003r.htm
107304               css2.1/20110323/floats-wrap-top-below-inline-001l.htm
107305               css2.1/20110323/floats-wrap-top-below-inline-001r.htm
107306               css2.1/20110323/floats-wrap-top-below-inline-002l.htm
107307               css2.1/20110323/floats-wrap-top-below-inline-002r.htm
107308               css2.1/20110323/floats-wrap-top-below-inline-003l.htm
107309               css2.1/20110323/floats-wrap-top-below-inline-003r.htm
107310               css2.1/20110323/floats-zero-height-wrap-001.htm
107311               css2.1/20110323/floats-zero-height-wrap-002.htm
107312               fast/block/float/floats-wrap-inside-inline-001.htm
107313               fast/block/float/floats-wrap-inside-inline-002.htm
107314               fast/block/float/floats-wrap-inside-inline-003.htm
107315               fast/block/float/floats-wrap-inside-inline-004.htm
107316               fast/block/float/floats-wrap-inside-inline-005.htm
107317
107318        * rendering/RenderBlock.cpp:
107319        (WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
107320        (WebCore::::collectIfNeeded):
107321        (WebCore::RenderBlock::logicalLeftOffsetForLine):
107322        (WebCore::RenderBlock::logicalRightOffsetForLine):
107323        (WebCore::RenderBlock::getClearDelta):
107324        * rendering/RenderBlock.h:
107325        (WebCore::RenderBlock::availableLogicalWidthForLine):
107326        (WebCore::RenderBlock::logicalRightOffsetForLine):
107327        (WebCore::RenderBlock::logicalLeftOffsetForLine):
107328        (WebCore::RenderBlock::startOffsetForLine):
107329        (WebCore::RenderBlock::endOffsetForLine):
107330        (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine):
107331        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
107332        (RenderBlock):
107333        (WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
107334        (WebCore::RenderBlock::FloatIntervalSearchAdapter::lowValue):
107335        (WebCore::RenderBlock::FloatIntervalSearchAdapter::highValue):
107336        (FloatIntervalSearchAdapter):
107337        * rendering/RenderBlockLineLayout.cpp:
107338        (WebCore::logicalBottomForLine):
107339        (WebCore):
107340        (WebCore::LineWidth::updateAvailableWidth):
107341        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
107342        * rendering/RenderBox.cpp:
107343        (WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
107344
1073452012-07-03  Vsevolod Vlasov  <vsevik@chromium.org>
107346
107347        Web Inspector: Introduce Workspace make it UISourceCode provider for ScriptsPanel.
107348        https://bugs.webkit.org/show_bug.cgi?id=90466
107349
107350        Reviewed by Pavel Feldman.
107351
107352        Introduced WebInspector.Workspace as a model (UISourceCode provider) behind ScriptsPanel.
107353
107354        * WebCore.gypi:
107355        * WebCore.vcproj/WebCore.vcproj:
107356        * inspector/compile-front-end.py:
107357        * inspector/front-end/ScriptsPanel.js:
107358        * inspector/front-end/WebKit.qrc:
107359        * inspector/front-end/Workspace.js: Added.
107360        (WebInspector.CompositeUISourceCodeProvider):
107361        (WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider):
107362        (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded):
107363        (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced):
107364        (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved):
107365        (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes):
107366        (WebInspector.Workspace):
107367        (WebInspector.Workspace.prototype.registerUISourceCodeProvider):
107368        * inspector/front-end/inspector.html:
107369        * inspector/front-end/inspector.js:
107370
1073712012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
107372
107373        [Qt] Make use of .qmake.cache for caching features
107374
107375        Instead of loading() features from the files that need them (and re-running
107376        a bunch of checks), we now run feature detection as part of configure.pro,
107377        and have build-webkit write the computed feature-defines and CONFIG to
107378        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
107379        when building WebKit.pro.
107380
107381        At some point we'll be able to selectivly prevent running of config tests
107382        in configure.pro, which means we don't need a separate code-path for
107383        the build-webkit --help case.
107384
107385        We should also move the code in build-webkit that now uses .webkit.config
107386        to detect clean builds, to use .qmake.cache, since we now store the same
107387        thing there.
107388
107389        Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
107390
107391        https://bugs.webkit.org/show_bug.cgi?id=90461
107392
107393        Reviewed by Tor Arne Vestbø.
107394
107395        * DerivedSources.pri:
107396        * WebCore.pri:
107397
1073982012-07-03  Sheriff Bot  <webkit.review.bot@gmail.com>
107399
107400        Unreviewed, rolling out r121766.
107401        http://trac.webkit.org/changeset/121766
107402        https://bugs.webkit.org/show_bug.cgi?id=90465
107403
107404        It caused flakey build errors on the bots (Requested by Ossy
107405        on #webkit).
107406
107407        * DerivedSources.pri:
107408        * WebCore.pri:
107409
1074102012-07-03  George Staikos  <staikos@webkit.org>
107411
107412        [BlackBerry] Enable Custom Scheme Handlers for BlackBerry.
107413        https://bugs.webkit.org/show_bug.cgi?id=90422
107414
107415        Reviewed by Rob Buis.
107416
107417        * page/NavigatorRegisterProtocolHandler.cpp:
107418        (WebCore::initProtocolHandlerWhitelist): Disable the overrides as
107419                                                 they're undesired by BlackBerry
107420
1074212012-07-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
107422
107423        Web Inspector: Forward message loop instrumentation data to frontend.
107424        https://bugs.webkit.org/show_bug.cgi?id=89584
107425
107426        Reviewed by Yury Semikhatsky.
107427
107428        Transmit collected message loop tasks to inspector frontend.
107429        Now "Program" should be a top-level event on browsers that
107430        support message loop instrumentation.
107431        Frontend was changed so that user will not see any changes.
107432
107433        * inspector/InspectorTimelineAgent.cpp:
107434        (TimelineRecordType):
107435        Added new event type - "Program"
107436        (WebCore::InspectorTimelineAgent::willProcessTask):
107437        Begin "Program" event.
107438        (WebCore::InspectorTimelineAgent::didProcessTask):
107439        Finish "Program" event.
107440        (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
107441        Do not add counters to "Program" events.
107442        (WebCore):
107443        (WebCore::InspectorTimelineAgent::innerSetHeapSizeStatistic):
107444        Renamed from "setHeapSizeStatistic"
107445        * inspector/InspectorTimelineAgent.h:
107446        (InspectorTimelineAgent):
107447        * inspector/front-end/MemoryStatistics.js:
107448        (WebInspector.MemoryStatistics.prototype._onRecordAdded):
107449        Unwraps "Program" events.
107450        (WebInspector.MemoryStatistics.prototype._innerRecordAdded):
107451        Renamed from "_onRecordAdded"
107452        * inspector/front-end/TimelineFrameController.js:
107453        (WebInspector.TimelineFrameController.prototype._addRecord):
107454        Unwraps "Program" events.
107455        (WebInspector.TimelineFrameController.prototype._innerAddRecord):
107456        Renamed from "_addRecord"
107457        * inspector/front-end/TimelineModel.js:
107458        * inspector/front-end/TimelineOverviewPane.js:
107459        (WebInspector.TimelineCategoryStrips.prototype.update.appendRecord):
107460        Filter out "Program" category.
107461        (WebInspector.TimelineCategoryStrips.prototype.update):
107462        * inspector/front-end/TimelinePanel.js:
107463        (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
107464        Filter out "Program" category.
107465        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
107466        Unwraps "Program" events.
107467        * inspector/front-end/TimelinePresentationModel.js:
107468        (WebInspector.TimelinePresentationModel.categories):
107469        Added "Program" category.
107470        (WebInspector.TimelinePresentationModel.recordStyle):
107471        Ditto.
107472        (WebInspector.TimelinePresentationModel.prototype.addRecord):
107473        Unwraps "Program" events.
107474        (WebInspector.TimelinePresentationModel.prototype._addRecord):
107475        Renamed from "addRecord"
107476
1074772012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
107478
107479        [Qt] Make use of .qmake.cache for caching features
107480
107481        Instead of loading() features from the files that need them (and re-running
107482        a bunch of checks), we now run feature detection as part of configure.pro,
107483        and have build-webkit write the computed feature-defines and CONFIG to
107484        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
107485        when building WebKit.pro.
107486
107487        At some point we'll be able to selectivly prevent running of config tests
107488        in configure.pro, which means we don't need a separate code-path for
107489        the build-webkit --help case.
107490
107491        We should also move the code in build-webkit that now uses .webkit.config
107492        to detect clean builds, to use .qmake.cache, since we now store the same
107493        thing there.
107494
107495        Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
107496
107497        https://bugs.webkit.org/show_bug.cgi?id=90461
107498
107499        Reviewed by Tor Arne Vestbø.
107500
107501        * DerivedSources.pri:
107502        * WebCore.pri:
107503
1075042012-07-03  Vsevolod Vlasov  <vsevik@chromium.org>
107505
107506        inspector/debugger/script-snippet-model.html fails
107507        https://bugs.webkit.org/show_bug.cgi?id=90385
107508
107509        Reviewed by Pavel Feldman.
107510
107511        * inspector/front-end/ScriptSnippetModel.js:
107512
1075132012-07-03  Alexander Pavlov  <apavlov@chromium.org>
107514
107515        [REGRESSION] Crash when copying a StyleRuleMedia with a NULL m_mediaQueries
107516        https://bugs.webkit.org/show_bug.cgi?id=90459
107517
107518        Reviewed by Andreas Kling.
107519
107520        Create StyleRuleMedia with a non-NULL MediaQuerySet. The respective NULL checks for it were all over the code,
107521        except the copy constructor. Added the check, just in case.
107522
107523        * css/CSSParser.cpp:
107524        (WebCore::CSSParser::createMediaRule):
107525        * css/StyleRule.cpp:
107526        (WebCore::StyleRuleMedia::StyleRuleMedia):
107527
1075282012-07-03  Andrey Kosyakov  <caseq@chromium.org>
107529
107530        Web Inspector: display time intervals measured with console.time() and console.timeEnd() in Timeline
107531        https://bugs.webkit.org/show_bug.cgi?id=90442
107532
107533        Reviewed by Pavel Feldman.
107534
107535        - added Time and TimeEnd record types produced by console.time() and console.timeEnd()
107536        - connect Time to TimeEnd in "glue" mode to better visualize the interval;
107537        - always make Time a top-level record;
107538
107539        * English.lproj/localizedStrings.js:
107540        * inspector/InspectorInstrumentation.cpp:
107541        (WebCore::InspectorInstrumentation::startConsoleTimingImpl):
107542        (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
107543        * inspector/InspectorTimelineAgent.cpp:
107544        (TimelineRecordType):
107545        (WebCore::InspectorTimelineAgent::didStartTiming):
107546        (WebCore):
107547        (WebCore::InspectorTimelineAgent::didStopTiming):
107548        * inspector/InspectorTimelineAgent.h:
107549        (InspectorTimelineAgent):
107550        * inspector/front-end/TimelineModel.js:
107551        * inspector/front-end/TimelinePresentationModel.js:
107552        (WebInspector.TimelinePresentationModel.recordStyle):
107553        (WebInspector.TimelinePresentationModel.categoryForRecord):
107554        (WebInspector.TimelinePresentationModel.prototype.reset):
107555        (WebInspector.TimelinePresentationModel.prototype.addRecord):
107556        (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
107557        (WebInspector.TimelinePresentationModel.Record):
107558        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
107559
1075602012-07-03  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>  Joel Dillon <joel.dillon@codethink.co.uk>
107561
107562        [Qt][Win] Fix broken QtWebKit5.lib linking
107563        https://bugs.webkit.org/show_bug.cgi?id=88321
107564
107565        Reviewed by Kenneth Rohde Christiansen.
107566
107567        * platform/PlatformExportMacros.h:
107568
1075692012-07-03  Philip Rogers  <pdr@google.com>
107570
107571        Fix text positioning with non-bmp characters.
107572        https://bugs.webkit.org/show_bug.cgi?id=87681
107573
107574        Reviewed by Nikolas Zimmermann.
107575
107576        Previously when constructing metrics for tspans with non-bmp characters,
107577        each non-bmp character treated as a skipped character in the same way that
107578        spaces are ignored.
107579        This made sense because the initial SVGCharacterDataMap for <text> is
107580        indexed by character index (not string length) so the high portion of a
107581        non-bmp character was treated as a skipped space. Unfortunately, this
107582        led to a bug because skipped spaces lead to an offset in the positioning
107583        values list but non-bmp characters do not.
107584
107585        This change switches the code to use a new offset for non-bmp characters,
107586        surrogatePairCharacters, which does not affect the positioning values list.
107587
107588        Tests: svg/text/non-bmp-tspans-expected.svg
107589               svg/text/non-bmp-tspans.svg
107590
107591        * rendering/svg/SVGTextMetricsBuilder.cpp:
107592        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
107593
1075942012-07-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
107595
107596        Improve test cases for network information APIs
107597        https://bugs.webkit.org/show_bug.cgi?id=90162
107598
107599        Reviewed by Adam Barth.
107600
107601        Existing implementation doesn't test port implementation in network info APIs.
107602        This patch lets test cases use bandwidth and metered functions implemented by port layer.
107603
107604        In addition, expected results need to check return type instead of property name.
107605
107606        No new tests. Covered by existing tests.
107607
107608        * Modules/networkinfo/NetworkInfoConnection.cpp:
107609        (WebCore::NetworkInfoConnection::bandwidth):
107610        (WebCore::NetworkInfoConnection::metered):
107611
1076122012-07-03  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
107613
107614        [EFL] [WK2] Don't call eina_iterator_free() if iterator is NULL
107615        https://bugs.webkit.org/show_bug.cgi?id=90076
107616
107617        Reviewed by Kenneth Rohde Christiansen.
107618
107619        Add a null check to prevent calling eina_iterator_free() when
107620        iterator is NULL.
107621
107622        No new tests. This patch doesn't change behavior.
107623
107624        * platform/efl/FileSystemEfl.cpp:
107625        (WebCore::listDirectory): Early return when iterator is NULL.
107626
1076272012-07-03  Alexander Pavlov  <apavlov@chromium.org>
107628
107629        Web Inspector: [Elements] Text formatting is not retained when editing <script> or <style> contents as text
107630        https://bugs.webkit.org/show_bug.cgi?id=90440
107631
107632        Reviewed by Vsevolod Vlasov.
107633
107634        * inspector/front-end/ElementsTreeOutline.js:
107635        (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
107636
1076372012-07-03  Vsevolod Vlasov  <vsevik@chromium.org>
107638
107639        Web Inspector: Save scroll selection and cursor position of SourceFrames in sources panel.
107640        https://bugs.webkit.org/show_bug.cgi?id=90294
107641
107642        Reviewed by Yury Semikhatsky.
107643
107644        Scroll and selection change handling is now delegated from TextViewer to SourceFrame.
107645        SourceFrame now dispatches ScrollChanged and SelectionChanged events.
107646        TabbedEditorContainer now saves scroll and selection information together
107647        with the url history and restores scroll and selection on resource opening.
107648
107649        * inspector/front-end/JavaScriptSourceFrame.js:
107650        (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
107651        * inspector/front-end/SourceFrame.js:
107652        (WebInspector.SourceFrame.prototype.wasShown):
107653        (WebInspector.SourceFrame.prototype.highlightLine):
107654        (WebInspector.SourceFrame.prototype._innerHighlightLineIfNeeded):
107655        (WebInspector.SourceFrame.prototype._clearLineHighlight):
107656        (WebInspector.SourceFrame.prototype.revealLine):
107657        (WebInspector.SourceFrame.prototype._innerRevealLineIfNeeded):
107658        (WebInspector.SourceFrame.prototype._clearLineToReveal):
107659        (WebInspector.SourceFrame.prototype.scrollToLine):
107660        (WebInspector.SourceFrame.prototype._innerScrollToLineIfNeeded):
107661        (WebInspector.SourceFrame.prototype._clearLineToScrollTo):
107662        (WebInspector.SourceFrame.prototype.setSelection):
107663        (WebInspector.SourceFrame.prototype._innerSetSelectionIfNeeded):
107664        (WebInspector.SourceFrame.prototype._wasShownOrLoaded):
107665        (WebInspector.SourceFrame.prototype.setContent):
107666        (WebInspector.SourceFrame.prototype.commitEditing):
107667        (WebInspector.SourceFrame.prototype.selectionChanged):
107668        (WebInspector.SourceFrame.prototype.scrollChanged):
107669        (WebInspector.TextViewerDelegateForSourceFrame.prototype.selectionChanged):
107670        (WebInspector.TextViewerDelegateForSourceFrame.prototype.scrollChanged):
107671        * inspector/front-end/TabbedEditorContainer.js:
107672        (WebInspector.TabbedEditorContainer):
107673        (WebInspector.TabbedEditorContainer.prototype._addScrollAndSelectionListeners):
107674        (WebInspector.TabbedEditorContainer.prototype._removeScrollAndSelectionListeners):
107675        (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
107676        (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
107677        (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
107678        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
107679        (WebInspector.TabbedEditorContainer.HistoryItem):
107680        (WebInspector.TabbedEditorContainer.HistoryItem.fromObject):
107681        (WebInspector.TabbedEditorContainer.HistoryItem.prototype.serializeToObject):
107682        (WebInspector.TabbedEditorContainer.History):
107683        (WebInspector.TabbedEditorContainer.History.fromObject):
107684        (WebInspector.TabbedEditorContainer.History.prototype.index):
107685        (WebInspector.TabbedEditorContainer.History.prototype.selectionRange):
107686        (WebInspector.TabbedEditorContainer.History.prototype.updateSelectionRange):
107687        (WebInspector.TabbedEditorContainer.History.prototype.scrollLineNumber):
107688        (WebInspector.TabbedEditorContainer.History.prototype.updateScrollLineNumber):
107689        (WebInspector.TabbedEditorContainer.History.prototype.update):
107690        (WebInspector.TabbedEditorContainer.History.prototype.remove):
107691        (WebInspector.TabbedEditorContainer.History.prototype.save):
107692        (WebInspector.TabbedEditorContainer.History.prototype.set _serializeToObject):
107693        * inspector/front-end/TextEditorModel.js:
107694        (WebInspector.TextRange.fromObject):
107695        (WebInspector.TextRange.prototype.clone):
107696        (WebInspector.TextRange.prototype.serializeToObject):
107697        * inspector/front-end/TextViewer.js:
107698        (WebInspector.TextViewer.prototype._handleScrollChanged):
107699        (WebInspector.TextViewer.prototype.scrollToLine):
107700        (WebInspector.TextViewer.prototype._handleSelectionChange):
107701        (WebInspector.TextViewer.prototype.setSelection):
107702        (WebInspector.TextViewer.prototype.wasShown):
107703        (WebInspector.TextViewer.prototype._handleFocused):
107704        (WebInspector.TextViewer.prototype.willHide):
107705        (WebInspector.TextViewerDelegate.prototype.selectionChanged):
107706        (WebInspector.TextViewerDelegate.prototype.scrollChanged):
107707        (WebInspector.TextEditorChunkedPanel.prototype.scrollToLine):
107708
1077092012-07-03  Taiju Tsuiki  <tzik@chromium.org>
107710
107711        Web Inspector: Make DirectoryContentView sortable
107712        https://bugs.webkit.org/show_bug.cgi?id=90361
107713
107714        Reviewed by Vsevolod Vlasov.
107715
107716        * inspector/Inspector.json:
107717        * inspector/InspectorFileSystemAgent.cpp:
107718        (WebCore):
107719        * inspector/front-end/DirectoryContentView.js:
107720        (WebInspector.DirectoryContentView):
107721        (WebInspector.DirectoryContentView.prototype.showEntries):
107722        (WebInspector.DirectoryContentView.prototype._sort):
107723        (WebInspector.DirectoryContentView.Node.comparator.isDirectoryCompare):
107724        (WebInspector.DirectoryContentView.Node.comparator.nameCompare):
107725        (WebInspector.DirectoryContentView.Node.comparator.typeCompare):
107726        (WebInspector.DirectoryContentView.Node.comparator.sizeCompare):
107727        (WebInspector.DirectoryContentView.Node.comparator):
107728        (WebInspector.DirectoryContentView.Node.prototype._metadataReceived):
107729
1077302012-07-03  Jan Keromnes  <janx@linux.com>
107731
107732        Web Inspector: WebInspector.TextViewer should be renamed WebInspector.TextEditor
107733        https://bugs.webkit.org/show_bug.cgi?id=89939
107734
107735        Reviewed by Vsevolod Vlasov.
107736
107737        Fixed LayoutTests and PerformanceTests accordingly.
107738
107739        * WebCore.gypi:
107740        * WebCore.vcproj/WebCore.vcproj:
107741        * inspector/compile-front-end.py:
107742        * inspector/front-end/AdvancedSearchController.js:
107743        (WebInspector.SearchView):
107744        * inspector/front-end/JavaScriptSourceFrame.js:
107745        (WebInspector.JavaScriptSourceFrame):
107746        (WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
107747        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
107748        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
107749        (WebInspector.JavaScriptSourceFrame.prototype._editBreakpointCondition.finishEditing):
107750        (WebInspector.JavaScriptSourceFrame.prototype._editBreakpointCondition):
107751        (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
107752        (WebInspector.JavaScriptSourceFrame.prototype.clearExecutionLine):
107753        (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
107754        (WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
107755        * inspector/front-end/SourceFrame.js:
107756        (WebInspector.SourceFrame):
107757        (WebInspector.SourceFrame.prototype.wasShown):
107758        (WebInspector.SourceFrame.prototype.willHide):
107759        (WebInspector.SourceFrame.prototype.defaultFocusedElement):
107760        (WebInspector.SourceFrame.prototype.get textEditor):
107761        (WebInspector.SourceFrame.prototype.clearMessages):
107762        (WebInspector.SourceFrame.prototype.highlightLine):
107763        (WebInspector.SourceFrame.prototype._clearLineHighlight):
107764        (WebInspector.SourceFrame.prototype.revealLine):
107765        (WebInspector.SourceFrame.prototype.setSelection):
107766        (WebInspector.SourceFrame.prototype.setContent):
107767        (WebInspector.SourceFrame.prototype.onTextEditorContentLoaded):
107768        (WebInspector.SourceFrame.prototype._setTextEditorDecorations):
107769        (WebInspector.SourceFrame.prototype.searchCanceled):
107770        (WebInspector.SourceFrame.prototype.jumpToSearchResult):
107771        (WebInspector.SourceFrame.prototype.addMessageToSource):
107772        (WebInspector.SourceFrame.prototype.removeMessageFromSource):
107773        (WebInspector.SourceFrame.prototype.inheritScrollPositions):
107774        (WebInspector.TextEditorDelegateForSourceFrame):
107775        * inspector/front-end/TextViewer.js: Removed.
107776        * inspector/front-end/WebKit.qrc:
107777        * inspector/front-end/inspector.html:
107778        * inspector/front-end/textViewer.css: Removed.
107779
1077802012-07-03  Charles Wei  <charles.wei@torchmobile.com.cn>
107781
107782        IndexedDB: should make the LevelDB persistant to the directory indicated in PageGroupSettings::indexedDBDataBasePath
107783        https://bugs.webkit.org/show_bug.cgi?id=88338
107784
107785        Reviewed by David Levin.
107786
107787        If the indexedDB runs in main thread it can access the GroupSettings via the document;
107788        otherwise, we need to pass the page GroupSettings to the worker thread so that accessible
107789        to the indexedDB running in WorkerContext. 
107790
107791        * Modules/indexeddb/IDBFactory.cpp:
107792        (WebCore::IDBFactory::open):
107793        * workers/DedicatedWorkerThread.cpp:
107794        (WebCore::DedicatedWorkerThread::create):
107795        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
107796        * workers/DedicatedWorkerThread.h:
107797        (DedicatedWorkerThread):
107798        * workers/DefaultSharedWorkerRepository.cpp:
107799        (SharedWorkerProxy):
107800        (WebCore::SharedWorkerProxy::groupSettings):
107801        (WebCore):
107802        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
107803        * workers/SharedWorkerThread.cpp:
107804        (WebCore::SharedWorkerThread::create):
107805        (WebCore::SharedWorkerThread::SharedWorkerThread):
107806        * workers/SharedWorkerThread.h:
107807        (SharedWorkerThread):
107808        * workers/WorkerMessagingProxy.cpp:
107809        (WebCore::WorkerMessagingProxy::startWorkerContext):
107810        * workers/WorkerThread.cpp:
107811        (WebCore::WorkerThreadStartupData::create):
107812        (WorkerThreadStartupData):
107813        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
107814        (WebCore::WorkerThread::WorkerThread):
107815        (WebCore::WorkerThread::groupSettings):
107816        (WebCore):
107817        * workers/WorkerThread.h:
107818        (WorkerThread):
107819
1078202012-07-03  Balazs Kelemen  <kbalazs@webkit.org>
107821
107822        [Qt][WK2] fast/viewport/viewport-91.html still fails after r121555 and r121661
107823        https://bugs.webkit.org/show_bug.cgi?id=90376
107824
107825        Reviewed by Csaba Osztrogonác.
107826
107827        No new tests, this is only a build alignment.
107828
107829        Export ViewportArguments::deprecatedTargetDPI since it is used in WebKit2.
107830        * WebCore.exp.in:
107831
1078322012-07-02  Martin Robinson  <mrobinson@igalia.com>
107833
107834        [TextureMapper] The TextureMapper should support edge-distance anti-antialiasing
107835        https://bugs.webkit.org/show_bug.cgi?id=90308
107836
107837        Reviewed by Noam Rosenthal.
107838
107839        Add an edge-distance anti-aliasing implementation for the TextureMapper. Currently
107840        this implementation is not active for tiled layers. This implementation is based
107841        on the one in the Chromium compositor originally written by David Raveman.
107842
107843        When a layer is transformed in a way that leaves its edge dimensions across pixel
107844        boundaries, edge distance anti-aliasing will do a cheaper form of anti-aliasing
107845        than full-scene anti-aliasing to make the transition from the layer pixel
107846        to the background pixel smoother.
107847
107848        No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
107849        compositing and 3D transforms, when those test harnesses are capable of
107850        producing pixel output (in progress).
107851
107852        * platform/graphics/texmap/TextureMapper.h: Add an enum which is used to tell
107853        the texture mapper what edges of a texture are exposed. This will be used for
107854        properly dealing with tiled layers in the future.
107855        * platform/graphics/texmap/TextureMapperBackingStore.cpp: Properly pass information
107856        about exposed layer edges to the TextureMapper while painting.
107857        * platform/graphics/texmap/TextureMapperBackingStore.h:
107858        (TextureMapperTile): Modified arguments include exposed edges.
107859        * platform/graphics/texmap/TextureMapperGL.cpp:
107860        (WebCore::TextureMapperGL::drawQuad): Renamed from drawRect, this method can now
107861        draw quads that have non unit-rect texture coordinates. This is necessary because
107862        the edge distance approach draws such quad.
107863        (WebCore::TextureMapperGL::drawBorder): Call drawQuad now instead of drawRect.
107864        (WebCore::TextureMapperGL::drawTexture): Pass the exposedEdges argument down.
107865        (WebCore::TextureMapperGL::drawTextureRectangleARB): Call drawQuad now instead of
107866        drawRect.
107867        (WebCore::viewportMatrix): Added this helper which can calculate the viewport
107868        transform based on the current OpenGL viewport settings.
107869        (WebCore::scaleLineEquationCoeffecientsToOptimizeDistanceCalculation): Added this
107870        helper which optimizes the fragment shader by precalculating some constant parts
107871        of the distance calculation.
107872        (WebCore::getStandardEquationCoeffecientsForLine): Given two end points of line segment
107873        get the coeffecients of the line in the standard form of the line equation.
107874        (WebCore::quadToEdgeArray): Converts a FloatQuad to an array of four sets of pre-scaled
107875        line coefficients so that they can be passed to OpenGL.
107876        (WebCore::scaledVectorDifference): Helper which helps expand a quad of arbitrary
107877        orientation.
107878        (WebCore::inflateQuad): Inflate a quad of arbitrary orientation. The transform may
107879        flip it so we have to look at neighboring points to expand the quad.
107880        (WebCore::TextureMapperGL::drawTextureWithAntialiasing): Activate the anti-aliasing
107881        program and set up all uniforms.
107882        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram): Abstract out common operations
107883        from drawTexture to be used with drawTextureWithAntialiasing.
107884        * platform/graphics/texmap/TextureMapperGL.h:
107885        (WebCore::TextureMapperGL::DrawQuad::DrawQuad): Add this small type which stores information
107886        necessary to draw a quad -- it's original destination rect and the final size mapped to
107887        texture coordinates.
107888        (TextureMapperGL):
107889        * platform/graphics/texmap/TextureMapperImageBuffer.cpp: Add the new exposedEdges argument.
107890        * platform/graphics/texmap/TextureMapperImageBuffer.h: Ditto.
107891        * platform/graphics/texmap/TextureMapperShaderManager.cpp: Add the new fragment shader for
107892        doing edge-distance AA and a program which uses that shader.
107893        * platform/graphics/texmap/TextureMapperShaderManager.h: Ditto.
107894
1078952012-07-02  Dan Bernstein  <mitz@apple.com>
107896
107897        Column height and count calculation ignores most overflow
107898        https://bugs.webkit.org/show_bug.cgi?id=90392
107899
107900        Reviewed by Dean Jackson.
107901
107902        Test: fast/multicol/overflow-content.html
107903
107904        * rendering/RenderBlock.cpp:
107905        (WebCore::RenderBlock::relayoutForPagination): Changed to compute the overflow from children
107906        and use the layout overflow height rather the content height.
107907
1079082012-07-02  Chris Guan  <chris.guan@torchmobile.com.cn>
107909
107910        [BlackBerry] Refactor : move the implementation of getMIMETypeForExtension and getPreferredExtensionForMIMEType into BlackBerry platform
107911        https://bugs.webkit.org/show_bug.cgi?id=90360
107912
107913        Reviewed by Antonio Gomes.
107914
107915        We should have one implementation for getMIMETypeForExtension
107916        and getPreferredExtensionForMIMEType for both webkit and platform,
107917        so I move this implementation to BlackBerry platform.
107918        
107919        No new test cases , because no behavior changed.
107920
107921        * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
107922        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
107923        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
107924
1079252012-07-02  Emil A Eklund  <eae@chromium.org>
107926
107927        Position replaced elements on pixel bounds
107928        https://bugs.webkit.org/show_bug.cgi?id=90354
107929
107930        Reviewed by Eric Seidel.
107931
107932        To avoid sizing and repaint issues we should layout replaced elements on
107933        pixel bounds. We already ensure that replaced elements are sized in full
107934        pixels and that they are painted on pixel bounds. By also ensuring that
107935        they are placed on pixel bounds we avoid pixel having the size be
107936        expanded by pixel snapping and repainting/invalidation rect issues when
107937        scrolling.
107938
107939        Test: fast/repaint/repaint-during-scroll-with-zoom.html
107940
107941        * rendering/RenderBox.cpp:
107942        (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
107943        (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
107944
1079452012-07-02  Nico Weber  <thakis@chromium.org>
107946
107947        Fix new -Wunused-private-field violations
107948        https://bugs.webkit.org/show_bug.cgi?id=90417
107949
107950        Reviewed by Ryosuke Niwa.
107951
107952        No intended behavior change.
107953
107954        * inspector/InspectorFileSystemAgent.cpp:
107955        (WebCore):
107956        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
107957        (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
107958        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
107959        (CCPrioritizedTextureManager):
107960
1079612012-07-02  Yoshifumi Inoue  <yosin@chromium.org>
107962
107963        Build fix for Chromimum
107964
107965        r121710 removed WebCore/platform/qt/GraphicsLayerQt.{cpp,h}.
107966        However, that patch didn't remove them from WebCore.gypi.
107967
107968        * WebCore.gypi: Removed GraphicsLayerQt.{cpp,h}
107969
1079702012-07-02  Joshua Bell  <jsbell@chromium.org>
107971
107972        IDL overloads should not treat wrapper types as nullable by default
107973        https://bugs.webkit.org/show_bug.cgi?id=90218
107974
107975        Reviewed by Kentaro Hara.
107976
107977        Wrapper types were being treated as Nullable by default during overloaded
107978        method dispatching, which deviates from the WebIDL specification. This change
107979        introduces the "?" type suffix into the parser, and treats wrapper types
107980        only nullable if specified. (The behavior of array types and other non-wrapper
107981        types are not changed, and only overloaded methods are checked.)
107982
107983        IDL files with affected overloads are modified to include the "?" suffix
107984        so that no behavior changes are introduced by this patch - the JS and V8
107985        generator results before/after the change show no diffs.
107986
107987        Test: bindings/scripts/test/TestObj.idl (a non-nullable overload)
107988
107989        * Modules/indexeddb/IDBDatabase.idl: Added "?" where necessary.
107990        * Modules/indexeddb/IDBIndex.idl: Added "?" where necessary.
107991        * Modules/indexeddb/IDBObjectStore.idl: Added "?" where necessary.
107992        * Modules/webaudio/AudioContext.idl: Added "?" where necessary.
107993        * Modules/webaudio/AudioNode.idl: Added "?" where necessary.
107994        * bindings/scripts/CodeGeneratorJS.pm:
107995        (GenerateParametersCheckExpression): Add isNullable check.
107996        * bindings/scripts/CodeGeneratorV8.pm:
107997        (GenerateParametersCheckExpression): Add isNullable check.
107998        * bindings/scripts/IDLParser.pm: Parse/set isNullable.
107999        (parseParameters):
108000        * bindings/scripts/IDLStructure.pm: Add basic type suffix parsing.
108001        * bindings/scripts/test/JS/JSTestObj.cpp:
108002        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
108003        (WebCore):
108004        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
108005        * bindings/scripts/test/TestObj.idl: Mark previous overload params with ?, add new one without.
108006        * bindings/scripts/test/V8/V8TestObj.cpp:
108007        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
108008        (TestObjV8Internal):
108009        (WebCore::TestObjV8Internal::overloadedMethodCallback):
108010        * dom/DataTransferItemList.idl: Added "?" where necessary.
108011        * fileapi/WebKitBlobBuilder.idl: Added "?" where necessary.
108012        * html/DOMURL.idl: Added "?" where necessary.
108013        * html/canvas/CanvasRenderingContext2D.idl: Added "?" where necessary.
108014        * html/canvas/WebGLRenderingContext.idl: Added "?" where necessary.
108015
1080162012-07-02  No'am Rosenthal  <noam.rosenthal@nokia.com>
108017
108018        [Qt] Get rid of GraphicsLayerQt
108019        https://bugs.webkit.org/show_bug.cgi?id=78598
108020
108021        Reviewed by Luiz Agostini.
108022
108023        Remove GraphicsLayerQt.h/cpp, as well as references to the non-TextureMapper code paths
108024        in GraphicsContext3DQt and MediaPlayerPrivateQt.
108025
108026        No new tests, removing unused code paths.
108027
108028        * Target.pri:
108029        * platform/graphics/PlatformLayer.h:
108030        * platform/graphics/qt/GraphicsContext3DQt.cpp:
108031        (GraphicsContext3DPrivate):
108032        (WebCore):
108033        * platform/graphics/qt/GraphicsContextQt.cpp:
108034        (WebCore):
108035        * platform/graphics/qt/GraphicsLayerQt.cpp: Removed.
108036        * platform/graphics/qt/GraphicsLayerQt.h: Removed.
108037        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
108038        (WebCore):
108039        * platform/graphics/qt/MediaPlayerPrivateQt.h:
108040        (MediaPlayerPrivateQt):
108041        * plugins/qt/PluginViewQt.cpp:
108042        (WebCore::PluginView::invalidateRect):
108043        (WebCore::PluginView::platformStart):
108044
1080452012-07-02  Behdad Esfahbod  <behdad@behdad.org>
108046
108047        LayoutUnit::epsilon() is wrong
108048        https://bugs.webkit.org/show_bug.cgi?id=90083
108049
108050        Reviewed by Eric Seidel.
108051
108052        Do division in floats, not integers.
108053
108054        No new tests. No code using the affected function.
108055
108056        * platform/FractionalLayoutUnit.h:
108057        (WebCore::FractionalLayoutUnit::epsilon):
108058
1080592012-07-02  Tim Horton  <timothy_horton@apple.com>
108060
108061        Compositing layer sync should cause deferred repaints to be fired immediately
108062        https://bugs.webkit.org/show_bug.cgi?id=90401
108063        <rdar://problem/11792028>
108064
108065        Reviewed by Simon Fraser and Antti Koivisto.
108066
108067        If we sync compositing layers and allow the repaint to be deferred, there is time for a
108068        visible flash to occur. Instead, stop the deferred repaint timer and repaint immediately.
108069
108070        No new tests, configuration and timing dependent.
108071
108072        * page/FrameView.cpp:
108073        (WebCore::FrameView::syncCompositingStateForThisFrame):
108074        (WebCore::FrameView::checkStopDelayingDeferredRepaints):
108075        (WebCore::FrameView::stopDelayingDeferredRepaints): Split off from checkStopDelayingDeferredRepaints.
108076        * page/FrameView.h:
108077        (FrameView): Add stopDelayingDeferredRepaints.
108078
1080792012-07-02  Benjamin Poulain  <bpoulain@apple.com>
108080
108081        Do not do any logging initialization when logging is disabled
108082        https://bugs.webkit.org/show_bug.cgi?id=90228
108083
108084        Reviewed by Simon Fraser.
108085
108086        Initializating of the logging channels was taking time on startup. When logging is disabled
108087        (and the LOG macro does nothing), we should aslo disable logging channels and initialization.
108088
108089        This patch #ifdef the Logging initialization with the macro LOG_DISABLED.
108090
108091        * WebCore.exp.in:
108092        * make-export-file-generator: Explicitely adds Assertions.h so that LOG_DISABLED is defined.
108093        * platform/Logging.cpp:
108094        * platform/Logging.h:
108095        * platform/blackberry/LoggingBlackBerry.cpp:
108096        * platform/efl/LoggingEfl.cpp:
108097        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
108098        * platform/gtk/LoggingGtk.cpp:
108099        * platform/mac/LoggingMac.mm:
108100        * platform/network/soup/ResourceHandleSoup.cpp:
108101        (WebCore::ensureSessionIsInitialized):
108102        * platform/qt/LoggingQt.cpp:
108103        * platform/win/LoggingWin.cpp:
108104        * platform/wx/LoggingWx.cpp:
108105
1081062012-07-02  Dan Bernstein  <mitz@apple.com>
108107
108108        <rdar://problem/11787030> In vertical writing modes, child following float-clearing block has incorrect logical top
108109        https://bugs.webkit.org/show_bug.cgi?id=90359
108110
108111        Reviewed by Anders Carlsson.
108112
108113        Test: fast/writing-mode/logical-height-after-clear.html
108114
108115        * rendering/RenderBlock.cpp:
108116        (WebCore::RenderBlock::clearFloatsIfNeeded): Changed to use logicalTop() and logicalHeight()
108117        instead of y() and height().
108118
1081192012-07-02  Arko Saha  <arko@motorola.com>
108120
108121        Microdata: Fix build failure after r121580.
108122        https://bugs.webkit.org/show_bug.cgi?id=90378
108123
108124        Reviewed by Ryosuke Niwa.
108125
108126        * html/HTMLElement.cpp:
108127        (WebCore::HTMLElement::properties):
108128        * html/HTMLElement.h:
108129
1081302012-07-02  Tommy Widenflycht  <tommyw@google.com>
108131
108132        MediaStream API: Update MediaStreamTrackList to match the specification
108133        https://bugs.webkit.org/show_bug.cgi?id=90171
108134
108135        Reviewed by Adam Barth.
108136
108137        The latest update to the specification added add and remove methods with corresponding callbacks.
108138        The callbacks can be triggered both from JS and from the platform layer.
108139
108140        Test: fast/mediastream/MediaStreamTrackList.html
108141
108142        * CMakeLists.txt:
108143        * GNUmakefile.list.am:
108144        * Modules/mediastream/MediaStream.cpp:
108145        (WebCore::MediaStream::MediaStream):
108146        (WebCore::MediaStream::~MediaStream):
108147        (WebCore::MediaStream::streamEnded):
108148        (WebCore::MediaStream::addTrack):
108149        (WebCore):
108150        (WebCore::MediaStream::removeTrack):
108151        * Modules/mediastream/MediaStream.h:
108152        (MediaStream):
108153        * Modules/mediastream/MediaStreamTrackEvent.cpp: Copied from Source/WebCore/Modules/mediastream/MediaStreamTrackList.cpp.
108154        (WebCore):
108155        (WebCore::MediaStreamTrackEvent::create):
108156        (WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):
108157        (WebCore::MediaStreamTrackEvent::~MediaStreamTrackEvent):
108158        (WebCore::MediaStreamTrackEvent::track):
108159        (WebCore::MediaStreamTrackEvent::interfaceName):
108160        * Modules/mediastream/MediaStreamTrackEvent.h: Copied from Source/WebCore/Modules/mediastream/MediaStreamTrackList.h.
108161        (WebCore):
108162        (MediaStreamTrackEvent):
108163        * Modules/mediastream/MediaStreamTrackEvent.idl: Copied from Source/WebCore/Modules/mediastream/MediaStreamTrackList.idl.
108164        * Modules/mediastream/MediaStreamTrackList.cpp:
108165        (WebCore::MediaStreamTrackList::create):
108166        (WebCore::MediaStreamTrackList::MediaStreamTrackList):
108167        (WebCore::MediaStreamTrackList::detachOwner):
108168        (WebCore):
108169        (WebCore::MediaStreamTrackList::add):
108170        (WebCore::MediaStreamTrackList::remove):
108171        (WebCore::MediaStreamTrackList::stop):
108172        (WebCore::MediaStreamTrackList::interfaceName):
108173        (WebCore::MediaStreamTrackList::scriptExecutionContext):
108174        (WebCore::MediaStreamTrackList::eventTargetData):
108175        (WebCore::MediaStreamTrackList::ensureEventTargetData):
108176        * Modules/mediastream/MediaStreamTrackList.h:
108177        (MediaStreamTrackList):
108178        * Modules/mediastream/MediaStreamTrackList.idl:
108179        * WebCore.gypi:
108180        * dom/EventNames.h:
108181        (WebCore):
108182        * dom/EventNames.in:
108183        * dom/EventTargetFactory.in:
108184        * platform/mediastream/MediaStreamCenter.cpp:
108185        (WebCore::MediaStreamCenter::addMediaStreamTrack):
108186        (WebCore):
108187        (WebCore::MediaStreamCenter::removeMediaStreamTrack):
108188        * platform/mediastream/MediaStreamCenter.h:
108189        (MediaStreamCenter):
108190        * platform/mediastream/MediaStreamDescriptor.h:
108191        (MediaStreamDescriptorOwner):
108192        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
108193        (WebCore::MediaStreamCenterChromium::didAddMediaStreamTrack):
108194        (WebCore):
108195        (WebCore::MediaStreamCenterChromium::didRemoveMediaStreamTrack):
108196        (WebCore::MediaStreamCenterChromium::addMediaStreamTrack):
108197        (WebCore::MediaStreamCenterChromium::removeMediaStreamTrack):
108198        * platform/mediastream/chromium/MediaStreamCenterChromium.h:
108199        (WebKit):
108200        (MediaStreamCenterChromium):
108201        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
108202        (WebCore::MediaStreamCenterGStreamer::didAddMediaStreamTrack):
108203        (WebCore):
108204        (WebCore::MediaStreamCenterGStreamer::didRemoveMediaStreamTrack):
108205        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
108206        (MediaStreamCenterGStreamer):
108207
1082082012-07-02  Andrey Kosyakov  <caseq@chromium.org>
108209
108210        Web Inspector: incorrect height of main timeline pane after switching to memory mode
108211        https://bugs.webkit.org/show_bug.cgi?id=90387
108212
108213        Reviewed by Pavel Feldman.
108214
108215        - update cached container height when setting vertical splitter position.
108216
108217        * inspector/front-end/TimelinePanel.js:
108218        (WebInspector.TimelinePanel.prototype.set _setSplitterPosition):
108219
1082202012-07-02  Christophe Dumez  <christophe.dumez@intel.com>
108221
108222        [MICRODATA] Build failure in html/HTMLPropertiesCollection.h
108223        https://bugs.webkit.org/show_bug.cgi?id=90379
108224
108225        Reviewed by Ryosuke Niwa.
108226
108227        Switch HTMLCollection::append() visibility from private
108228        to protected so that HTMLPropertiesCollection subclass
108229        can call it. This fixes build when MICRODATA flag is
108230        turned on.
108231
108232        No new tests, build fix.
108233
108234        * html/HTMLCollection.h:
108235        (HTMLCollectionCacheBase):
108236
1082372012-07-02  Kwang Yul Seo  <skyul@company100.net>
108238
108239        A start "body" tag in the "in body" insertion mode is a parse error
108240        https://bugs.webkit.org/show_bug.cgi?id=90373
108241
108242        Reviewed by Eric Seidel.
108243
108244        According to HTML5 specification (http://www.w3.org/TR/html5/tree-construction.html#parsing-main-inbody),
108245        a start "body" tag in the "in body" insertion mode is a parse error. So parseError(token) is required here.
108246        No behavior change because parseError(token) is just a marker.
108247
108248        * html/parser/HTMLTreeBuilder.cpp:
108249        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
108250
1082512012-07-02  Raphael Kubo da Costa  <rakuco@webkit.org>
108252
108253        [EFL] Unreviewed build fix with ENABLE_NETSCAPE_PLUGIN_API after r121467.
108254
108255        * plugins/efl/PluginPackageEfl.cpp:
108256        (WebCore::PluginPackage::load): Move the declaration of `err'
108257        before the first `goto' statement.
108258
1082592012-07-02  Alexei Filippov  <alexeif@chromium.org>
108260
108261        Web Inspector: replace recursion with a stack in DOM nodes snapshot traversal.
108262        https://bugs.webkit.org/show_bug.cgi?id=89889
108263
108264        Number of DOM nodes native snapshots can handle was limited
108265        by the process stack size because of recursion used to traverse the nodes.
108266        The patch changes the recursion to a stack based algorithm.
108267
108268        Reviewed by Yury Semikhatsky.
108269
108270        * dom/MemoryInstrumentation.h:
108271        (MemoryInstrumentation):
108272        (InstrumentedPointerBase):
108273        (WebCore::MemoryInstrumentation::InstrumentedPointerBase::~InstrumentedPointerBase):
108274        (InstrumentedPointer):
108275        (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
108276        (WebCore::MemoryInstrumentation::reportInstrumentedPointer):
108277        (WebCore):
108278        (WebCore::::process):
108279        * inspector/InspectorMemoryAgent.cpp:
108280        (WebCore):
108281
1082822012-07-02  Taiju Tsuiki  <tzik@chromium.org>
108283
108284        Web Inspector: Add requestFileContent command and fileContentReceived event
108285        https://bugs.webkit.org/show_bug.cgi?id=89642
108286
108287        Reviewed by Vsevolod Vlasov.
108288
108289        Test: http/tests/inspector/filesystem/read-file.html
108290
108291        * inspector/Inspector.json:
108292        * inspector/InspectorFileSystemAgent.cpp:
108293        (WebCore):
108294        (WebCore::InspectorFileSystemAgent::requestFileContent):
108295        * inspector/InspectorFileSystemAgent.h:
108296        (InspectorFileSystemAgent):
108297        * inspector/front-end/FileSystemModel.js:
108298        (WebInspector.FileSystemModel.prototype.requestMetadata):
108299        (WebInspector.FileSystemModel.prototype.requestFileContent):
108300        (WebInspector.FileSystemModel.File.prototype.get resourceType):
108301        (WebInspector.FileSystemModel.File.prototype.requestFileContent):
108302        (WebInspector.FileSystemRequestManager):
108303        (WebInspector.FileSystemRequestManager.prototype._metadataReceived):
108304        (WebInspector.FileSystemRequestManager.prototype.requestFileContent.requestAccepted):
108305        (WebInspector.FileSystemRequestManager.prototype.requestFileContent):
108306        (WebInspector.FileSystemRequestManager.prototype._fileContentReceived):
108307        (WebInspector.FileSystemDispatcher.prototype.metadataReceived):
108308        (WebInspector.FileSystemDispatcher.prototype.fileContentReceived):
108309
1083102012-07-02  Taiju Tsuiki  <tzik@chromium.org>
108311
108312        Web Inspector: Add refresh button to FileSystemView status bar
108313        https://bugs.webkit.org/show_bug.cgi?id=90244
108314
108315        Reviewed by Vsevolod Vlasov.
108316
108317        * inspector/front-end/FileSystemView.js:
108318        (WebInspector.FileSystemView):
108319        (WebInspector.FileSystemView.prototype.get statusBarItems):
108320        (WebInspector.FileSystemView.prototype.showView):
108321        (WebInspector.FileSystemView.prototype._refresh):
108322        (WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
108323
1083242012-06-22  Vsevolod Vlasov  <vsevik@chromium.org>
108325
108326        Web Inspector: Implement snippets evaluation.
108327        https://bugs.webkit.org/show_bug.cgi?id=88707
108328
108329        Reviewed by Pavel Feldman.
108330
108331        Implemented snippet evaluation and adjusted breakpoints behavior when editing snippet.
108332        Snippets are evaluated using separate compile and run.
108333        Breakpoints are updated after compilation (once scriptId is available they can be set in debugger).
108334        If separate compile and run is not supported by port or debugger is paused we fall back to evaluation in console.
108335
108336        * inspector/front-end/ConsoleView.js:
108337        (WebInspector.ConsoleView.prototype.runScript.runCallback):
108338        (WebInspector.ConsoleView.prototype.runScript):
108339        (WebInspector.ConsoleView.prototype._printResult):
108340        * inspector/front-end/JavaScriptSource.js:
108341        (WebInspector.JavaScriptSource.prototype.supportsEnabledBreakpointsWhileEditing):
108342        * inspector/front-end/JavaScriptSourceFrame.js:
108343        (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
108344        (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
108345        (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
108346        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointsBeforeEditing):
108347        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
108348        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
108349        (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
108350        * inspector/front-end/ScriptSnippetModel.js:
108351        (WebInspector.ScriptSnippetModel.prototype.deleteScriptSnippet):
108352        (WebInspector.ScriptSnippetModel.prototype._setScriptSnippetContent):
108353        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
108354        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
108355        (WebInspector.ScriptSnippetModel.prototype._rawLocationToUILocation):
108356        (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
108357        (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
108358        (WebInspector.ScriptSnippetModel.prototype._evaluationSourceURL):
108359        (WebInspector.SnippetJavaScriptSource.prototype.isDivergedFromVM):
108360        (WebInspector.SnippetJavaScriptSource.prototype.workingCopyCommitted):
108361        (WebInspector.SnippetJavaScriptSource.prototype.workingCopyChanged):
108362        (WebInspector.SnippetJavaScriptSource.prototype.evaluate):
108363        (WebInspector.SnippetJavaScriptSource.prototype.supportsEnabledBreakpointsWhileEditing):
108364        (WebInspector.SnippetJavaScriptSource.prototype.breakpointStorageId):
108365        * inspector/front-end/ScriptsNavigator.js:
108366        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
108367
1083682012-06-26  Vsevolod Vlasov  <vsevik@chromium.org>
108369
108370        Web Inspector: StyleSource should set content using CSSStyleModelResourceBinding directly.
108371        https://bugs.webkit.org/show_bug.cgi?id=89891
108372
108373        Reviewed by Pavel Feldman.
108374
108375        StyleSource now calls CSS resource binding directly.
108376        CSS resource binding now adds resource revision only after setStyleSheetText call returns from backend.
108377        Resource.revertAndClearHistory is now clearing history asynchronously
108378        since Resource.setContent adds revision that should be removed as well.
108379
108380        * inspector/front-end/CSSStyleModel.js:
108381        (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
108382        (WebInspector.CSSStyleModel.prototype.resourceBinding):
108383        (WebInspector.CSSStyleModelResourceBinding.prototype.setStyleContent.innerCallback):
108384        (WebInspector.CSSStyleModelResourceBinding.prototype.setStyleContent):
108385        (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
108386        * inspector/front-end/Resource.js:
108387        (WebInspector.Resource.prototype.revertAndClearHistory):
108388        (WebInspector.Resource.prototype.revertAndClearHistory.clearHistory):
108389        * inspector/front-end/RevisionHistoryView.js:
108390        (WebInspector.RevisionHistoryView.prototype._createResourceItem):
108391        * inspector/front-end/StylesPanel.js:
108392        (WebInspector.StyleSource.prototype.workingCopyCommitted):
108393        (WebInspector.StyleSource.prototype.workingCopyChanged):
108394
1083952012-07-02  Taiju Tsuiki  <tzik@chromium.org>
108396
108397        Web Inspector: Add DirectoryContentView for FileSystemView
108398        https://bugs.webkit.org/show_bug.cgi?id=89961
108399
108400        Reviewed by Vsevolod Vlasov.
108401
108402        * WebCore.gypi:
108403        * WebCore.vcproj/WebCore.vcproj:
108404        * inspector/compile-front-end.py:
108405        * inspector/front-end/DirectoryContentView.js: Added.
108406        * inspector/front-end/FileSystemView.js:
108407        (WebInspector.FileSystemView):
108408        (WebInspector.FileSystemView.EntryTreeElement.prototype.onattach):
108409        (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
108410        (WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
108411        * inspector/front-end/WebKit.qrc:
108412        * inspector/front-end/inspector.html:
108413
1084142012-07-02  Christophe Dumez  <christophe.dumez@intel.com>
108415
108416        [EFL] Fix compilation error in GamepadsEfl.cpp in debug mode
108417        https://bugs.webkit.org/show_bug.cgi?id=90369
108418
108419        Unreviewed, EFL build fix.
108420
108421        * platform/efl/GamepadsEfl.cpp:
108422        (WebCore::GamepadsEfl::registerDevice):
108423        (WebCore::GamepadsEfl::unregisterDevice):
108424
1084252012-07-02  Nikita Vasilyev  <me@elv1s.ru>
108426
108427        Web Inspector: Design WebSockets panel
108428        https://bugs.webkit.org/show_bug.cgi?id=89461
108429
108430        Use DataGrid to display the data.
108431        Put "Data" column first. Make it wider.
108432        Remove "Mask" column since it appears to be always true for outgoing frames,
108433        and false for incoming.
108434
108435        Reviewed by Pavel Feldman.
108436
108437        * English.lproj/localizedStrings.js:
108438        * inspector/front-end/NetworkItemView.js:
108439        (WebInspector.NetworkItemView): Don't show Preview, Response, Cookies
108440        and Timing tabs for succefuly established WebSocket connection.
108441
108442        * inspector/front-end/ResourceWebSocketFrameView.js:
108443        (WebInspector.ResourceWebSocketFrameView):
108444        * inspector/front-end/networkPanel.css:
108445        (.resource-websocket):
108446        (.resource-websocket, .resource-websocket .data-grid):
108447        (.resource-websocket .data-grid .data):
108448        (.resource-websocket td):
108449        (.resource-websocket .data-column div):
108450        (.resource-websocket-row-outcoming):
108451        (.resource-websocket-row-outcoming:not(.selected) td):
108452        (.resource-websocket-row-outcoming:not(.selected) td, .resource-websocket-row-outcoming:not(.selected) + tr td):
108453        (.resource-websocket-row-opcode):
108454        (.resource-websocket-row-opcode td):
108455        (.resource-websocket-row-opcode td, .resource-websocket-row-opcode + tr td):
108456        (.resource-websocket-row-error):
108457
1084582012-07-02  Vineet Chaudhary  <rgf748@motorola.com>
108459
108460        [V8Binding] Merging v8NumberArray()/v8NumberArrayToVector() to v8Array()/toNativeArray() respectively.
108461        https://bugs.webkit.org/show_bug.cgi?id=90338
108462
108463        Reviewed by Kentaro Hara.
108464
108465        We can remove v8NumberArray() and v8NumberArrayToVector() implementaion
108466        merging them to current v8Array() and toNativeArray() traits.
108467
108468        Tests: TestObj.idl
108469        Shouldn't cause any behavioural changes.
108470
108471        * bindings/scripts/CodeGeneratorV8.pm: Removed float[]/double[] specific binding code.
108472        (IsRefPtrType):
108473        (GetNativeType):
108474        (JSValueToNative):
108475        (NativeToJSValue):
108476        * bindings/scripts/test/V8/V8TestObj.cpp: Rebased binding test.
108477        (WebCore::TestObjV8Internal::floatArrayAttrGetter):
108478        (WebCore::TestObjV8Internal::floatArrayAttrSetter):
108479        (WebCore::TestObjV8Internal::doubleArrayAttrGetter):
108480        (WebCore::TestObjV8Internal::doubleArrayAttrSetter):
108481        * bindings/v8/V8Binding.h: Added templates for float and double.
108482        (WebCore::v8Array):
108483        (WebCore::toNativeArray):
108484
1084852012-07-02  Konrad Piascik  <kpiascik@rim.com>
108486
108487        [EFL] [GTK] [QT] fast/viewport/viewport-91.html is failing after r121555
108488        https://bugs.webkit.org/show_bug.cgi?id=90286
108489
108490        Reviewed by Daniel Bates.
108491
108492        Since the deprecatedTargetDPI was an int and the deviceDPI was also an int the result
108493        was truncated.  Changed deprecatedTargetDPI to a float value. Viewport test 91 now passes.
108494
108495        * dom/ViewportArguments.h:
108496        (ViewportArguments):
108497
1084982012-06-28  Yury Semikhatsky  <yurys@chromium.org>
108499
108500        Web Inspector: add v8 bindings memory info to the native memory graph
108501        https://bugs.webkit.org/show_bug.cgi?id=90149
108502
108503        Reviewed by Pavel Feldman.
108504
108505        Size of V8 binding maps is now reported on the memory chart.
108506
108507        * bindings/js/ScriptProfiler.h:
108508        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
108509        * bindings/v8/DOMDataStore.cpp:
108510        (WebCore::DOMDataStore::reportMemoryUsage):
108511        (WebCore):
108512        * bindings/v8/DOMDataStore.h:
108513        (WebCore):
108514        (DOMDataStore):
108515        * bindings/v8/IntrusiveDOMWrapperMap.h:
108516        (WebCore::ChunkedTable::reportMemoryUsage):
108517        (ChunkedTable):
108518        * bindings/v8/ScriptProfiler.cpp:
108519        (WebCore::ScriptProfiler::collectBindingMemoryInfo):
108520        (WebCore):
108521        * bindings/v8/ScriptProfiler.h:
108522        (WebCore):
108523        (ScriptProfiler):
108524        * bindings/v8/V8Binding.cpp:
108525        (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
108526        (WebCore):
108527        (WebCore::StringCache::reportMemoryUsage):
108528        * bindings/v8/V8Binding.h:
108529        (WebCore):
108530        (StringCache):
108531        (V8BindingPerIsolateData):
108532        * bindings/v8/V8DOMMap.h:
108533        (WebCore):
108534        (AbstractWeakReferenceMap):
108535        * dom/MemoryInstrumentation.h:
108536        (MemoryInstrumentation):
108537        (WebCore):
108538        (WebCore::MemoryInstrumentation::reportHashMap): added a method for reporting
108539        size of a HashMap.
108540        * inspector/InspectorMemoryAgent.cpp:
108541        (MemoryBlockName):
108542        (WebCore):
108543        (WebCore::domTreeInfo):
108544
1085452012-07-01  Christophe Dumez  <christophe.dumez@intel.com>
108546
108547        [EFL] Add Gamepad support
108548        https://bugs.webkit.org/show_bug.cgi?id=90170
108549
108550        Reviewed by Kenneth Rohde Christiansen.
108551
108552        Add support for the Gamepad feature on the EFL port.
108553
108554        The implementation of this class relies on the Linux
108555        kernel joystick API.
108556
108557        Gamepad devices are recognized through the GamepadsEfl
108558        class, of which implementation is based on Eeze
108559        library. This way devices are properly registered on
108560        connection as objects of the GamepadDeviceEfl class
108561        which inherits GamepadDeviceLinux. GamepadDeviceEfl
108562        reads the joystick data through an Ecore_Fd_Handler
108563        and updates the device state accordingly. The
108564        GamepadsEfl object is then polled for gamepads data
108565        through the sampleGamepads method.
108566
108567        No new tests - already tested by gamepad/*
108568
108569        * CMakeLists.txt:
108570        * PlatformEfl.cmake:
108571        * platform/efl/GamepadsEfl.cpp: Added.
108572        (WebCore):
108573        (GamepadDeviceEfl):
108574        (WebCore::GamepadDeviceEfl::create):
108575        (WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
108576        (WebCore::GamepadDeviceEfl::~GamepadDeviceEfl):
108577        (WebCore::GamepadDeviceEfl::readCallback):
108578        (GamepadsEfl):
108579        (WebCore::GamepadsEfl::onGamePadChange):
108580        (WebCore::GamepadsEfl::GamepadsEfl):
108581        (WebCore::GamepadsEfl::~GamepadsEfl):
108582        (WebCore::GamepadsEfl::registerDevice):
108583        (WebCore::GamepadsEfl::unregisterDevice):
108584        (WebCore::GamepadsEfl::updateGamepadList):
108585        (WebCore::sampleGamepads):
108586
1085872012-07-01  James Robinson  <jamesr@chromium.org>
108588
108589        Unreviewed, rolling out r121635.
108590        http://trac.webkit.org/changeset/121635
108591        https://bugs.webkit.org/show_bug.cgi?id=90286
108592
108593        Breaks compile on clang error: in-class initializer for static
108594        data member of type 'const float' is a GNU extension
108595        [-Werror,-Wgnu]
108596
108597        * dom/ViewportArguments.h:
108598        (ViewportArguments):
108599
1086002012-07-01  Timothy Hatcher  <timothy@apple.com>
108601
108602        Make the "Inspect Element" context menu item appear in nightly builds again.
108603
108604        rdar://problem/11702613
108605        https://webkit.org/b/89323
108606
108607        Reviewed by Dan Bernstein.
108608
108609        * platform/ContextMenuItem.h:
108610        Fix the order of the ContextMenuAction enum to be binary compatible with
108611        older versions of WebKit.
108612
1086132012-07-01  Dan Bernstein  <mitz@apple.com>
108614
108615        <rdar://problem/11785743> [mac] Non-BMP characters in vertical text appear as missing glyphs
108616        https://bugs.webkit.org/show_bug.cgi?id=90349
108617
108618        Reviewed by Dean Jackson.
108619
108620        Test: platform/mac/fast/text/vertical-surrogate-pair.html
108621
108622        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
108623        (WebCore::GlyphPage::fill): When calling wkGetVerticalGlyphsForCharacters or
108624        CTFontGetGlyphsForCharacters with a buffer consisting of surrogate pair, account for those
108625        functions’ behavior of placing glyphs at indices corresponding to the first character of
108626        each pair.
108627
1086282012-07-01  Kenichi Ishibashi  <bashi@chromium.org>
108629
108630        Arabic shaping is incorrect if ZWNJ exist
108631        https://bugs.webkit.org/show_bug.cgi?id=89843
108632
108633        Reviewed by Dan Bernstein.
108634
108635        mac port treats ZWJ (zero-width-joiner) and ZWNJ (zero-width-non-joiner) as a part of combining
108636        character sequence. This could cause a problem when the font doesn't have glyph mapping of ZWJ and ZWNJ.
108637        Suppose the text to be rendered is "U+0645(MEEM) U+06CC(FARSI YEH) U+200C(ZWNJ)". In this case, U+0645
108638        and U+06CC are rendered in isolated form if the font doesn't have a glyph for ZWNJ. They should be joined.
108639
108640        This patch changes handling of ZWJ and ZWNJ. Treats ZWJ and ZWNJ as base characters so that a complex text
108641        run isn't separate at the point of ZWJ and ZWNJ even the font doesn't contain glyphs for them.
108642        If ComplexTextController finds ZWJ, it doesn't split the current complex text run.
108643
108644        Test: platform/mac/fast/text/arabic-zwj-and-zwnj.html
108645
108646        * platform/graphics/mac/ComplexTextController.cpp:
108647        (WebCore::advanceByCombiningCharacterSequence): Don't treat ZWJ and ZWNJ as a part of combining character sequence.
108648        (WebCore::ComplexTextController::collectComplexTextRuns): Set fontData to nextFontData if the baseCharacter is ZWJ.
108649
1086502012-07-01  Konrad Piascik  <kpiascik@rim.com>
108651
108652        [EFL] [GTK] [QT] fast/viewport/viewport-91.html is failing after r121555
108653        https://bugs.webkit.org/show_bug.cgi?id=90286
108654
108655        Reviewed by Daniel Bates.
108656
108657        Since the deprecatedTargetDPI was an int and the deviceDPI was also an int the result
108658        was truncated.  Changed deprecatedTargetDPI to a float value. Viewport test 91 now passes.
108659
108660        * dom/ViewportArguments.h:
108661        (ViewportArguments):
108662
1086632012-06-30  Ian Vollick  <vollick@chromium.org>
108664
108665        [chromium] CanvasLayerTextureUpdater needs to convert opaque rects back to content space.
108666        https://bugs.webkit.org/show_bug.cgi?id=90092
108667
108668        The CanvasLayerTextureUpdater currently receives its opaque rects in
108669        layer space, but is expected to return them in content space and does
108670        not convert them. This patch adds this conversion. To avoid numerical
108671        errors, this patch also switches to using float rects to store opaque
108672        rects where appropriate.
108673
108674        Reviewed by Adrienne Walker.
108675
108676        Unit test: ContentLayerTest.ContentLayerPainterWithDeviceScale
108677
108678        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
108679        (WebCore::CanvasLayerTextureUpdater::paintContents):
108680        * platform/graphics/chromium/ContentLayerChromium.cpp:
108681        (WebCore::ContentLayerPainter::ContentLayerPainter):
108682        (WebCore::ContentLayerPainter::create):
108683        (WebCore::ContentLayerPainter::paint):
108684        * platform/graphics/chromium/ContentLayerChromium.h:
108685        (WebCore):
108686        (ContentLayerDelegate):
108687        (ContentLayerPainter):
108688        * platform/graphics/chromium/LayerPainterChromium.h:
108689        (WebCore):
108690        (LayerPainterChromium):
108691        * platform/graphics/chromium/LinkHighlight.cpp:
108692        (WebCore::LinkHighlight::paintContents):
108693        * platform/graphics/chromium/LinkHighlight.h:
108694        (LinkHighlight):
108695        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
108696        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
108697        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
108698        (OpaqueRectTrackingContentLayerDelegate):
108699        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
108700
1087012012-06-30  Kwang Yul Seo  <skyul@company100.net>
108702
108703        Unreviewed. Remove unused declaration.
108704        HTMLDocumentParser::begin() has no method definition.
108705
108706        * html/parser/HTMLDocumentParser.h:
108707
1087082012-06-29  No'am Rosenthal  <noam.rosenthal@nokia.com>
108709
108710        Unreviewed, rolling out r121569.
108711        http://trac.webkit.org/changeset/121569
108712        https://bugs.webkit.org/show_bug.cgi?id=90082
108713
108714        It broke a couple of tests in Qt Linux Release
108715
108716        * platform/graphics/qt/GraphicsContextQt.cpp:
108717        (WebCore::GraphicsContext::fillRect):
108718
1087192012-06-29  Simon Fraser  <simon.fraser@apple.com>
108720
108721        updateDescendantDependentFlags() is inside #if USE(ACCELERATED_COMPOSITING)
108722        https://bugs.webkit.org/show_bug.cgi?id=90245
108723
108724        Reviewed by Dan Bernstein.
108725
108726        updateDescendantDependentFlags() and updateTransform() should be
108727        outside the USE(ACCELERATED_COMPOSITING) #ifdef. They do work
108728        that is needed even if accelerated compositing is disabled.
108729
108730        * rendering/RenderLayer.cpp:
108731        (WebCore::RenderLayer::styleChanged):
108732
1087332012-06-29  Erik Arvidsson  <arv@chromium.org>
108734
108735        [V8] HTMLCollection wrappers are not retained
108736        https://bugs.webkit.org/show_bug.cgi?id=90208
108737
108738        Reviewed by Adam Barth.
108739
108740        Generate visitDOMWrapper for HTMLCollection and HTMLAllCollection so that we add an implicit reference from the owner
108741        to the collection.
108742
108743        Tests: fast/dom/htmlallcollection-reachable.html
108744               fast/dom/htmlcollection-reachable.html
108745
108746        * bindings/scripts/CodeGeneratorJS.pm:
108747        (GenerateImplementation): Instead of hard coding to use base() for HTMLAllCollection and HTMLCollection we now
108748        annotate the IDL file to use GenerateIsReachable=ImplBaseRoot.
108749        * bindings/scripts/CodeGeneratorV8.pm:
108750        (GenerateVisitDOMWrapper): Generate visitDOMWrapper if GenerateIsReachable is ImplBaseRoot.
108751        * bindings/scripts/IDLAttributes.txt: Added ImplBaseRoot.
108752        * html/HTMLAllCollection.idl: Added annotations.
108753        * html/HTMLCollection.idl: Ditto.
108754
1087552012-06-29  Tony Chang  <tony@chromium.org>
108756
108757        All child elements of a flex container should be turned into a flex item
108758        https://bugs.webkit.org/show_bug.cgi?id=90323
108759
108760        Reviewed by Ojan Vafai.
108761
108762        We used to only convert some elements to blocks, but now we convert everything except text nodes.
108763        This was recently changed here:
108764        http://wiki.csswg.org/topics/css3-flexbox-flexbox-replaced-children
108765
108766        Tests: css3/flexbox/anonymous-block.html : Add new test case.
108767               css3/flexbox/flexitem.html: Update results.
108768
108769        * css/StyleResolver.cpp:
108770        (WebCore::StyleResolver::collectMatchingRulesForList):
108771
1087722012-06-29  Joshua Bell  <jsbell@chromium.org>
108773
108774        IndexedDB: Keep direction on IDBCursor to avoid calls to back end
108775        https://bugs.webkit.org/show_bug.cgi?id=90114
108776
108777        Reviewed by Tony Chang.
108778
108779        Let IDBCursor handle direction() accessor locally, without a call to
108780        the IDBCursorBackendImpl which (in some ports) may reside in a different
108781        process. Not a heavily called function, but further reduces the surface
108782        area exposed by the XXXInterface classes.
108783
108784        No new tests - no functional changes.
108785
108786        * Modules/indexeddb/IDBCursor.cpp:
108787        (WebCore::IDBCursor::create): Accept direction, known at creation time.
108788        (WebCore::IDBCursor::IDBCursor): Stash in member.
108789        (WebCore::IDBCursor::direction): Use local copy
108790        (WebCore::IDBCursor::stringToDirection): Return enum value, not int.
108791        * Modules/indexeddb/IDBCursor.h:
108792        (IDBCursor):
108793        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Remove accessor.
108794        * Modules/indexeddb/IDBCursorBackendImpl.h:
108795        (IDBCursorBackendImpl):
108796        * Modules/indexeddb/IDBCursorBackendInterface.h: Remove accessor.
108797        * Modules/indexeddb/IDBCursorWithValue.cpp:
108798        (WebCore::IDBCursorWithValue::create):
108799        (WebCore::IDBCursorWithValue::IDBCursorWithValue):
108800        * Modules/indexeddb/IDBCursorWithValue.h:
108801        (IDBCursorWithValue):
108802        * Modules/indexeddb/IDBIndex.cpp: Prep IDBRequest with cursor direction too.
108803        (WebCore::IDBIndex::openCursor):
108804        (WebCore::IDBIndex::openKeyCursor):
108805        * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
108806        (WebCore::IDBObjectStore::openCursor):
108807        * Modules/indexeddb/IDBRequest.cpp: Stash direction for pending cursor too.
108808        (WebCore::IDBRequest::IDBRequest):
108809        (WebCore::IDBRequest::setCursorDetails):
108810        (WebCore::IDBRequest::onSuccess): Apply stashed direction to new cursor.
108811        * Modules/indexeddb/IDBRequest.h:
108812        (IDBRequest):
108813
1088142012-06-29  Tony Chang  <tony@chromium.org>
108815
108816        Allow align-self: stretch to cause the item size to shrink below its intrinsic size
108817        https://bugs.webkit.org/show_bug.cgi?id=90304
108818
108819        Reviewed by Ojan Vafai.
108820
108821        The spec used to say that stretch could only make items grow, but now
108822        it allows items to shrink.
108823        http://dev.w3.org/csswg/css3-flexbox/#align-items-stretch
108824
108825        Tests: css3/flexbox/flex-align-stretch.html Updated expectations.
108826               css3/flexbox/child-overflow.html Updated expectations.
108827
108828        * rendering/RenderFlexibleBox.cpp:
108829        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
108830
1088312012-06-29  James Weatherall  <wez@chromium.org>
108832
108833        NPObjectWrapper may not address all window script object lifetime issues
108834        https://bugs.webkit.org/show_bug.cgi?id=85679
108835
108836        The ScriptController implementations force-deallocate the window script object to ensure that DOM objects are not leaked if an NPAPI plugin fails to release a reference to it before being destroyed. The NPObjectWrapper was added to ensure that NPAPI scripting could not touch the real window script object after it had been deallocated, by providing the plugin with a small wrapper which will leak if the plugin fails to dereference it.
108837
108838        This patch removes NPObjectWrapper and instead drops the window script NPObject's reference to the underlying V8Object in ScriptController::clearScriptObjects(). If a plugin fails to dereference the object then the NPV8Object wrapper will be leaked but the DOM objects it references will not.
108839
108840        Reviewed by Nate Chapin.
108841
108842        Test: plugins/npruntime/leak-window-scriptable-object.html
108843
108844        * WebCore.gypi:
108845        * bindings/v8/NPObjectWrapper.cpp: Removed.
108846        * bindings/v8/NPObjectWrapper.h: Removed.
108847        * bindings/v8/NPV8Object.cpp:
108848        (WebCore::disposeUnderlyingV8Object):
108849        (WebCore):
108850        (WebCore::freeV8NPObject):
108851        (_NPN_Invoke):
108852        (_NPN_InvokeDefault):
108853        (_NPN_EvaluateHelper):
108854        (_NPN_GetProperty):
108855        (_NPN_SetProperty):
108856        (_NPN_RemoveProperty):
108857        (_NPN_HasProperty):
108858        (_NPN_HasMethod):
108859        (_NPN_Enumerate):
108860        (_NPN_Construct):
108861        * bindings/v8/NPV8Object.h:
108862        (WebCore):
108863        * bindings/v8/ScriptController.cpp:
108864        (WebCore::ScriptController::ScriptController):
108865        (WebCore::ScriptController::clearScriptObjects):
108866        (WebCore::ScriptController::windowScriptNPObject):
108867        * bindings/v8/ScriptController.h:
108868        (ScriptController):
108869
1088702012-06-29  Adam Barth  <abarth@webkit.org>
108871
108872        Update complex fonts on Android to use fonts from a newer SDK
108873        https://bugs.webkit.org/show_bug.cgi?id=90296
108874
108875        Reviewed by Nate Chapin.
108876
108877        These fonts are available in the Jelly Bean SDK.
108878
108879        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
108880        (WebCore::ComplexTextController::ComplexTextController):
108881        (WebCore::ComplexTextController::getComplexFontPlatformData):
108882
1088832012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
108884
108885        HTMLCollection's caches should be owned by either ElementRareData or Document
108886        https://bugs.webkit.org/show_bug.cgi?id=90322
108887
108888        Reviewed by Anders Carlsson.
108889
108890        Removed all instances of OwnPtr<HTMLCollection> except ones on ElementRareData and Document.
108891        ElementRareData::ensureCachedHTMLCollection then polymorphically creates HTMLCollection or
108892        its subclass as deemed necessary.
108893
108894        This refactoring allows us to move HTMLCollection to use the same invalidation model as
108895        DynamicNodeList (invalidated during DOM mutations) in a follow up.
108896
108897        * dom/Document.cpp:
108898        (WebCore::Document::all):
108899        * dom/Document.h:
108900        (Document):
108901        * dom/Element.cpp:
108902        (WebCore::ElementRareData::ensureCachedHTMLCollection):
108903        (WebCore):
108904        (WebCore::Element::cachedHTMLCollection):
108905        * dom/Element.h:
108906        (Element):
108907        * dom/ElementRareData.h:
108908        (WebCore):
108909        (ElementRareData):
108910        (WebCore::ElementRareData::cachedHTMLCollection):
108911        * dom/Node.cpp:
108912        (WebCore):
108913        * dom/Node.h:
108914        (Node):
108915        * dom/NodeRareData.h:
108916        (WebCore::NodeRareData::setItemType):
108917        (NodeRareData):
108918        * html/CollectionType.h:
108919        * html/HTMLCollection.cpp:
108920        (WebCore::shouldIncludeChildren):
108921        (WebCore::HTMLCollection::isAcceptableElement):
108922        * html/HTMLElement.cpp:
108923        (WebCore):
108924        (WebCore::HTMLElement::properties):
108925        * html/HTMLElement.h:
108926        (HTMLElement):
108927        * html/HTMLFieldSetElement.cpp:
108928        (WebCore::HTMLFieldSetElement::elements):
108929        * html/HTMLFieldSetElement.h:
108930        (HTMLFieldSetElement):
108931        * html/HTMLFormCollection.cpp:
108932        (WebCore::HTMLFormCollection::HTMLFormCollection):
108933        (WebCore::HTMLFormCollection::create):
108934        * html/HTMLFormCollection.h:
108935        (HTMLFormCollection):
108936        * html/HTMLFormElement.cpp:
108937        (WebCore::HTMLFormElement::elements):
108938        * html/HTMLFormElement.h:
108939        * html/HTMLOptionsCollection.cpp:
108940        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
108941        (WebCore::HTMLOptionsCollection::create):
108942        * html/HTMLOptionsCollection.h:
108943        (HTMLOptionsCollection):
108944        * html/HTMLSelectElement.cpp:
108945        (WebCore::HTMLSelectElement::selectedOptions):
108946        (WebCore::HTMLSelectElement::options):
108947        (WebCore::HTMLSelectElement::invalidateSelectedItems):
108948        (WebCore::HTMLSelectElement::setRecalcListItems):
108949        * html/HTMLSelectElement.h:
108950        * html/HTMLTableElement.cpp:
108951        (WebCore::HTMLTableElement::rows):
108952        * html/HTMLTableElement.h:
108953        * html/HTMLTableRowsCollection.cpp:
108954        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
108955        (WebCore::HTMLTableRowsCollection::create):
108956        * html/HTMLTableRowsCollection.h:
108957        (HTMLTableRowsCollection):
108958
1089592012-06-29  Ojan Vafai  <ojan@chromium.org>
108960
108961        Add FIXMEs for vertical writing mode and override sizes.
108962        * rendering/RenderBox.cpp:
108963        (WebCore::RenderBox::overrideLogicalContentWidth):
108964        (WebCore::RenderBox::overrideLogicalContentHeight):
108965
1089662012-06-29  James Robinson  <jamesr@chromium.org>
108967
108968        [chromium] Use CCThread::Task in compositor's RateLimiter instead of Timer
108969        https://bugs.webkit.org/show_bug.cgi?id=90300
108970
108971        Reviewed by Adrienne Walker.
108972
108973        * platform/graphics/chromium/RateLimiter.cpp:
108974        (RateLimiter::Task):
108975        (WebCore::RateLimiter::Task::create):
108976        (WebCore::RateLimiter::Task::~Task):
108977        (WebCore::RateLimiter::Task::Task):
108978        (WebCore):
108979        (WebCore::RateLimiter::RateLimiter):
108980        (WebCore::RateLimiter::start):
108981        (WebCore::RateLimiter::stop):
108982        (WebCore::RateLimiter::rateLimitContext):
108983        * platform/graphics/chromium/RateLimiter.h:
108984        (WebCore):
108985        (RateLimiter):
108986        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
108987        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
108988
1089892012-06-29  Tony Payne  <tpayne@chromium.org>
108990
108991        Remove type from screenColorProfile API
108992        https://bugs.webkit.org/show_bug.cgi?id=90299
108993
108994        Reviewed by Adam Barth.
108995
108996        Covered by existing tests.
108997
108998        * platform/PlatformScreen.h:
108999        (WebCore): Removed type from screenColorProfile().
109000        * platform/blackberry/PlatformScreenBlackBerry.cpp:
109001        (WebCore::screenColorProfile):
109002        * platform/chromium/PlatformScreenChromium.cpp:
109003        (WebCore::screenColorProfile):
109004        * platform/efl/PlatformScreenEfl.cpp:
109005        (WebCore::screenColorProfile):
109006        * platform/gtk/PlatformScreenGtk.cpp:
109007        (WebCore::screenColorProfile):
109008        * platform/image-decoders/ImageDecoder.h:
109009        (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Updated call to
109010        screenColorProfile() to not pass type param.
109011        * platform/mac/PlatformScreenMac.mm:
109012        (WebCore::screenColorProfile):
109013        * platform/qt/PlatformScreenQt.cpp:
109014        (WebCore::screenColorProfile):
109015        * platform/win/PlatformScreenWin.cpp:
109016        (WebCore::screenColorProfile):
109017
1090182012-06-29  Emil A Eklund  <eae@chromium.org>
109019
109020        Allow non-borders to be adjusted to less than 1 when zoomed out
109021        https://bugs.webkit.org/show_bug.cgi?id=90104
109022
109023        Reviewed by Eric Seidel.
109024
109025        Change CSSPrimitiveValue::computeLengthDouble to allow values to be
109026        adjusted to less than 1.0 when zoomed out. This avoids an off by one
109027        error for floats with margins when zoomed out that can cause floats to
109028        wrap and break pages.
109029
109030        The logic that prevents the value from being adjusted to less than 1 was
109031        added to ensure that borders are still painted even when zoomed out.
109032        By moving the logic to ApplyPropertyComputeLength::applyValue, which is
109033        used for borders and outlines, that functionality is preserved.
109034
109035        Test: fast/sub-pixel/float-with-margin-in-container.html
109036
109037        * css/CSSPrimitiveValue.cpp:
109038        (WebCore::CSSPrimitiveValue::computeLengthDouble):
109039        * css/StyleBuilder.cpp:
109040        (WebCore::ApplyPropertyComputeLength::applyValue):
109041
1090422012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
109043
109044        Let Xcode have its own way after r121513.
109045
109046        * WebCore.xcodeproj/project.pbxproj:
109047
1090482012-06-29  Mihai Balan  <mibalan@adobe.com>
109049
109050        [CSS Regions] Adding feature defines for CSS Regions for Windows
109051        https://bugs.webkit.org/show_bug.cgi?id=88645
109052
109053        Reviewed by Tony Chang.
109054
109055        Re-trying to enable CSS regions on Windows. This time only enabling
109056        regions (not exclusions) because of some strange compilation/linking
109057        issues.
109058
109059        * css/CSSPropertyNames.in: Touched file to make sure property names get properly rebuilt.
109060
1090612012-06-29  Hanna Ma  <Hanma@rim.com>
109062
109063        Web Inspector: Add data length to resource events on timeline to
109064        keep track of the amount of data loaded and the total data length
109065        https://bugs.webkit.org/show_bug.cgi?id=89244
109066
109067        Reviewed by Pavel Feldman.
109068
109069        Added data length to inspector timeline popup
109070        content for resources to keep track of the amount of data loaded.
109071        Tests: inspector/timeline/timeline-network-received-data.html
109072
109073        * English.lproj/localizedStrings.js:
109074        * inspector/InspectorInstrumentation.cpp:
109075        (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
109076        * inspector/InspectorInstrumentation.h:
109077        (InspectorInstrumentation):
109078        (WebCore::InspectorInstrumentation::willReceiveResourceData):
109079        * inspector/InspectorTimelineAgent.cpp:
109080        (WebCore::InspectorTimelineAgent::willReceiveResourceData):
109081        * inspector/InspectorTimelineAgent.h:
109082        (InspectorTimelineAgent):
109083        * inspector/TimelineRecordFactory.cpp:
109084        (WebCore::TimelineRecordFactory::createReceiveResourceData):
109085        * inspector/TimelineRecordFactory.h:
109086        (TimelineRecordFactory):
109087        * inspector/front-end/TimelinePanel.js:
109088        (WebInspector.TimelinePanel.prototype._showPopover):
109089        * inspector/front-end/TimelinePresentationModel.js:
109090        (WebInspector.TimelinePresentationModel.prototype.reset):
109091        (WebInspector.TimelinePresentationModel.Record):
109092        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
109093        * loader/ResourceLoader.cpp:
109094        (WebCore::ResourceLoader::didReceiveData):
109095        * inspector/timeline/timeline-network-received-data.html: Added.
109096        * inspector/timeline/timeline-network-received-data-expected.txt: Added.
109097        * inspector/timeline/timeline-test.js:
109098
1090992012-06-29  Shawn Singh  <shawnsingh@chromium.org>
109100
109101        Unreviewed build fix after 121580.
109102
109103        WebKit Linux debug bots was complaining about signed vs unsigned integer comparison.
109104
109105        * html/HTMLCollection.h:
109106        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
109107
1091082012-06-28  James Robinson  <jamesr@chromium.org>
109109
109110        [chromium] Remove mapRect and mapQuad from WebTransformationMatrix
109111        https://bugs.webkit.org/show_bug.cgi?id=90230
109112
109113        Reviewed by Adrienne Walker.
109114
109115        Replaces calls to WebTransformationMatrix::mapRect/mapQuad with clipping-aware calls to CCMathUtils. In most
109116        cases, we do not expect clipping to happen. For others (such as area calculations in CCOverdrawMetrics) we can
109117        handle a clipped quad easily.
109118
109119        * platform/chromium/support/WebTransformationMatrix.cpp:
109120        * platform/graphics/chromium/LayerRendererChromium.cpp:
109121        (WebCore::LayerRendererChromium::drawRenderPassQuad):
109122        (WebCore::LayerRendererChromium::drawTileQuad):
109123        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
109124        (WebCore::RenderSurfaceChromium::drawableContentRect):
109125        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
109126        (WebCore::CCLayerImpl::getDrawRect):
109127        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
109128        (WebCore::transformSurfaceOpaqueRegion):
109129        (WebCore::addOcclusionBehindLayer):
109130        * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
109131        (WebCore):
109132        (WebCore::polygonArea):
109133        (WebCore::areaOfMappedQuad):
109134        (WebCore::CCOverdrawMetrics::didUpload):
109135        (WebCore::CCOverdrawMetrics::didCullForDrawing):
109136        (WebCore::CCOverdrawMetrics::didDraw):
109137        * platform/graphics/chromium/cc/CCRenderPass.cpp:
109138        (WebCore::CCRenderPass::appendQuadsToFillScreen):
109139        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
109140        (WebCore::CCRenderSurface::drawableContentRect):
109141        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
109142        (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
109143
1091442012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
109145
109146        Mac build fix after r121575. It rolls out r121547 but didn't roll out the follow up build fix r121553.
109147
109148        * platform/graphics/mac/FontCustomPlatformData.h:
109149        (FontCustomPlatformData):
109150
1091512012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
109152
109153        Share the same cache in HTMLCollection and DynamicNodeLists
109154        https://bugs.webkit.org/show_bug.cgi?id=90118
109155
109156        Reviewed by Anders Carlsson.
109157
109158        This patch introduces two new base classes DynamicNodeListCacheBase and HTMLCollectionCacheBase to share
109159        the cache object between DynamicNodeList and HTMLCollection. HTMLCollectionCacheBase inherits from
109160        DynamicNodeListCacheBase and contains extra caches and bit flags for HTMLCollection. DynamicNodeList::Cache
109161        and HTMLCollection::Cache had been removed and flattened into these two classes for the easy inheritance.
109162
109163        In DynamicNodeList, we have a very straight forward one-to-one mapping from old Caches member variables:
109164
109165        m_caches.lastItem -> cachedItem()
109166        m_caches.lastItemOffset -> cachedItemOffset()
109167        m_caches.cachedLength -> cachedLength()
109168        m_caches.isItemCacheValid -> isItemCacheValid()
109169        m_caches.isLengthCacheValid -> isLengthCacheValid()
109170        m_caches.type -> removed because it was never used.
109171        m_caches.rootedAtDocument -> isRootedAtDocument()
109172        m_caches.shouldInvalidateOnAttributeChange -> shouldInvalidateOnAttributeChange()
109173
109174        In HTMLCollection, there is one semantic change in the way item cache is managed. Previously, we only had
109175        m_cache.current which was used as both cachedItem() and isItemCacheValid() (not valid when current is null).
109176        There are some asymmetric code changes due to one-to-many relationship. Also, all method names have been updated
109177        to use that of DynamicNodeList terminology. Thus we have the following correspondence:
109178
109179        m_cache.current -> cachedItem() / isItemCacheValid()
109180        m_cache.position -> cachedItemOffset()
109181        m_cache.length -> cachedLength()
109182        m_cache.elementsArrayPosition -> cachedElementsArrayOffset()
109183        m_cache.hasLength -> isLengthCacheValid()
109184        m_cache.hasNameCache -> hasNameCache() / setHasNameCache()
109185        m_cache.idCache -> idCache() / addIdCache()
109186        m_cache.nameCache -> idCache() / addNameCache()
109187
109188        In addition, we had to rename HTMLCollection::clearCache to invalidateCache to avoid the name collision with
109189        HTMLCollectionCacheBase::clearCache.
109190
109191        * dom/ChildNodeList.cpp:
109192        (WebCore::ChildNodeList::length):
109193        (WebCore::ChildNodeList::item):
109194        * dom/DynamicNodeList.cpp:
109195        (WebCore::DynamicSubtreeNodeList::length):
109196        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
109197        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
109198        (WebCore::DynamicSubtreeNodeList::item):
109199        * dom/DynamicNodeList.h:
109200        (DynamicNodeListCacheBase):
109201        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
109202        (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
109203        (WebCore::DynamicNodeListCacheBase::shouldInvalidateOnAttributeChange):
109204        (WebCore::DynamicNodeListCacheBase::isItemCacheValid):
109205        (WebCore::DynamicNodeListCacheBase::cachedItem):
109206        (WebCore::DynamicNodeListCacheBase::cachedItemOffset):
109207        (WebCore::DynamicNodeListCacheBase::isLengthCacheValid):
109208        (WebCore::DynamicNodeListCacheBase::cachedLength):
109209        (WebCore::DynamicNodeListCacheBase::setLengthCache):
109210        (WebCore::DynamicNodeListCacheBase::setItemCache):
109211        (WebCore::DynamicNodeListCacheBase::clearCache):
109212        (WebCore):
109213        (WebCore::DynamicNodeList::DynamicNodeList):
109214        (WebCore::DynamicNodeList::invalidateCache):
109215        (WebCore::DynamicNodeList::rootNode):
109216        (DynamicNodeList):
109217        * html/HTMLAllCollection.cpp:
109218        (WebCore::HTMLAllCollection::namedItemWithIndex):
109219        * html/HTMLCollection.cpp:
109220        (WebCore::HTMLCollection::HTMLCollection):
109221        (WebCore::HTMLCollection::invalidateCacheIfNeeded):
109222        (WebCore::HTMLCollection::invalidateCache):
109223        (WebCore::HTMLCollection::isAcceptableElement):
109224        (WebCore::HTMLCollection::itemAfter):
109225        (WebCore::HTMLCollection::length):
109226        (WebCore::HTMLCollection::item):
109227        (WebCore::HTMLCollection::checkForNameMatch):
109228        (WebCore::HTMLCollection::namedItem):
109229        (WebCore::HTMLCollection::updateNameCache):
109230        (WebCore::HTMLCollection::hasNamedItem):
109231        (WebCore::HTMLCollection::namedItems):
109232        (WebCore::HTMLCollectionCacheBase::append):
109233        * html/HTMLCollection.h:
109234        (HTMLCollectionCacheBase):
109235        (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
109236        (WebCore::HTMLCollectionCacheBase::type):
109237        (WebCore::HTMLCollectionCacheBase::clearCache):
109238        (WebCore::HTMLCollectionCacheBase::setItemCache):
109239        (WebCore::HTMLCollectionCacheBase::cachedElementsArrayOffset):
109240        (WebCore::HTMLCollectionCacheBase::includeChildren):
109241        (WebCore::HTMLCollectionCacheBase::cacheTreeVersion):
109242        (WebCore::HTMLCollectionCacheBase::idCache):
109243        (WebCore::HTMLCollectionCacheBase::nameCache):
109244        (WebCore::HTMLCollectionCacheBase::appendIdCache):
109245        (WebCore::HTMLCollectionCacheBase::appendNameCache):
109246        (WebCore::HTMLCollectionCacheBase::hasNameCache):
109247        (WebCore::HTMLCollectionCacheBase::setHasNameCache):
109248        (WebCore):
109249        (WebCore::HTMLCollection::isEmpty):
109250        (WebCore::HTMLCollection::hasExactlyOneItem):
109251        (WebCore::HTMLCollection::base):
109252        (HTMLCollection):
109253        * html/HTMLFormCollection.cpp:
109254        (WebCore::HTMLFormCollection::item):
109255        (WebCore::HTMLFormCollection::updateNameCache):
109256        * html/HTMLNameCollection.cpp:
109257        (WebCore::HTMLNameCollection::itemAfter):
109258        * html/HTMLNameCollection.h:
109259        (HTMLNameCollection):
109260        * html/HTMLSelectElement.cpp:
109261        (WebCore::HTMLSelectElement::invalidateSelectedItems):
109262        * html/HTMLTableRowsCollection.cpp:
109263        (WebCore::HTMLTableRowsCollection::itemAfter):
109264        * html/HTMLTableRowsCollection.h:
109265        (HTMLTableRowsCollection):
109266
1092672012-06-29  Tony Chang  <tony@chromium.org>
109268
109269        Unreviewed, rolling out r121572.
109270        http://trac.webkit.org/changeset/121572
109271        https://bugs.webkit.org/show_bug.cgi?id=90249
109272
109273        Breaks Mac build since it depends on r121547, which was rolled
109274        out
109275
109276        * WebCore.exp.in:
109277        * page/AlternativeTextClient.h:
109278        * page/ContextMenuController.cpp:
109279        (WebCore::ContextMenuController::populate):
109280        * platform/graphics/cg/ImageBufferDataCG.h:
109281        * platform/graphics/mac/GraphicsContextMac.mm:
109282        (WebCore::GraphicsContext::drawLineForDocumentMarker):
109283        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
109284        (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
109285        * platform/mac/WebCoreSystemInterface.h:
109286        * platform/network/Credential.h:
109287        * platform/network/cf/ResourceRequestCFNet.cpp:
109288        (WebCore):
109289        (WebCore::initializeMaximumHTTPConnectionCountPerHost):
109290        * platform/text/TextChecking.h:
109291        (WebCore):
109292        * rendering/RenderLayerBacking.cpp:
109293        (WebCore::RenderLayerBacking::containsPaintedContent):
109294
1092952012-06-29  Tony Chang  <tony@chromium.org>
109296
109297        Unreviewed, rolling out r121547.
109298        http://trac.webkit.org/changeset/121547
109299        https://bugs.webkit.org/show_bug.cgi?id=90256
109300
109301        Breaks Chromium Mac build
109302
109303        * platform/LocalizedStrings.cpp:
109304        (WebCore::imageTitle):
109305        * platform/graphics/cg/GraphicsContextCG.cpp:
109306        (WebCore::GraphicsContext::setAllowsFontSmoothing):
109307        * platform/graphics/cg/ImageCG.cpp:
109308        (WebCore::Image::drawPattern):
109309        * platform/graphics/cg/ImageSourceCG.cpp:
109310        (WebCore::ImageSource::clear):
109311        * platform/graphics/cg/PathCG.cpp:
109312        (WebCore::Path::boundingRect):
109313        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
109314        (WebCore):
109315        (WebCore::canSetCascadeListForCustomFont):
109316        (WebCore::FontPlatformData::ctFont):
109317        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
109318        * platform/graphics/mac/ComplexTextController.cpp:
109319        * platform/graphics/mac/FontCacheMac.mm:
109320        (WebCore):
109321        (WebCore::fontCacheATSNotificationCallback):
109322        (WebCore::FontCache::platformInit):
109323        * platform/graphics/mac/FontCustomPlatformData.cpp:
109324        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
109325        (WebCore::createFontCustomPlatformData):
109326        * platform/graphics/mac/FontCustomPlatformData.h:
109327        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
109328        * platform/graphics/mac/SimpleFontDataMac.mm:
109329        (WebCore::SimpleFontData::platformInit):
109330        * platform/graphics/mac/WebLayer.h:
109331        * platform/mac/CursorMac.mm:
109332        (WebCore::Cursor::ensurePlatformCursor):
109333        * platform/mac/DisplaySleepDisabler.cpp:
109334        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
109335        (WebCore):
109336        (WebCore::DisplaySleepDisabler::systemActivityTimerFired):
109337        * platform/mac/DisplaySleepDisabler.h:
109338        (DisplaySleepDisabler):
109339        * platform/mac/HTMLConverter.h:
109340        * platform/mac/HTMLConverter.mm:
109341        * platform/mac/PopupMenuMac.mm:
109342        (WebCore::PopupMenuMac::populate):
109343        * platform/mac/ScrollElasticityController.mm:
109344
1093452012-06-29  Eric Penner  <epenner@google.com>
109346
109347        [chromium] Adding PrioritizedTexture and replacing ContentsTextureManager
109348        https://bugs.webkit.org/show_bug.cgi?id=84308
109349
109350        Reviewed by Adrienne Walker.
109351
109352        PrioritizedTextures have a priority such that all texture requests can be
109353        prioritized. There are three steps involved:
109354            - Call setRequestPriority()
109355            - Check if the request succeeded with canAcquireBackingTexture()
109356            - Call acquireBackingTexture() when uploading a new texture.
109357
109358        Internally both the texture requests and the backing textures get sorted.
109359        Requests are sorted so they can be prioritized. Backing textures are sorted
109360        so that they can be recycled/evicted in the right order (lowest priority first).
109361
109362        Prioritizing textures doesn't assign backing textures to texture requests but
109363        rather just marks which textures can have a backing texture "when needed". This
109364        allows us to keep the old textures in use as long as possible.
109365
109366        The unit tests support all the use cases from the original texture manager
109367        but also adds assumptions about priority order throughout all the tests. The
109368        function assertInvariants() is added to test the validity of the manager
109369        and all textures/allocations within it.
109370
109371        The TiledLayerChromium tests are updated to request textures first with
109372        prioritizeTextures(), and update them with the updater (such that allocate
109373        gets called) before pushPropertiesTo is called (when they need to be valid).
109374
109375        * WebCore.gypi:
109376        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
109377        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::Texture):
109378        (WebCore::BitmapCanvasLayerTextureUpdater::createTexture):
109379        (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
109380        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
109381        (WebCore):
109382        (Texture):
109383        (BitmapCanvasLayerTextureUpdater):
109384        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
109385        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::Texture):
109386        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::createTexture):
109387        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
109388        (Texture):
109389        (BitmapSkPictureCanvasLayerTextureUpdater):
109390        * platform/graphics/chromium/ContentLayerChromium.cpp:
109391        (WebCore::ContentLayerChromium::setTexturePriorities):
109392        (WebCore):
109393        (WebCore::ContentLayerChromium::update):
109394        * platform/graphics/chromium/ContentLayerChromium.h:
109395        (ContentLayerChromium):
109396        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
109397        (WebCore::createAcceleratedCanvas):
109398        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::Texture):
109399        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::createTexture):
109400        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
109401        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
109402        (Texture):
109403        (FrameBufferSkPictureCanvasLayerTextureUpdater):
109404        * platform/graphics/chromium/ImageLayerChromium.cpp:
109405        (WebCore::ImageLayerTextureUpdater::Texture::Texture):
109406        (WebCore::ImageLayerTextureUpdater::createTexture):
109407        (WebCore::ImageLayerTextureUpdater::updateTextureRect):
109408        (WebCore::ImageLayerChromium::setTexturePriorities):
109409        (WebCore):
109410        * platform/graphics/chromium/ImageLayerChromium.h:
109411        (ImageLayerChromium):
109412        * platform/graphics/chromium/LayerChromium.h:
109413        (LayerChromium):
109414        (WebCore::LayerChromium::setTexturePriorities):
109415        * platform/graphics/chromium/LayerTextureUpdater.h:
109416        (WebCore::LayerTextureUpdater::Texture::texture):
109417        (WebCore::LayerTextureUpdater::Texture::swapTextureWith):
109418        (WebCore::LayerTextureUpdater::Texture::Texture):
109419        (Texture):
109420        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
109421        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
109422        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
109423        (WebCore::ScrollbarLayerChromium::updatePart):
109424        (WebCore):
109425        (WebCore::ScrollbarLayerChromium::setTexturePriorities):
109426        * platform/graphics/chromium/ScrollbarLayerChromium.h:
109427        (ScrollbarLayerChromium):
109428        * platform/graphics/chromium/TiledLayerChromium.cpp:
109429        (WebCore::UpdatableTile::managedTexture):
109430        (WebCore::TiledLayerChromium::pushPropertiesTo):
109431        (WebCore::TiledLayerChromium::textureManager):
109432        (WebCore::TiledLayerChromium::createTile):
109433        (WebCore::TiledLayerChromium::tileNeedsBufferedUpdate):
109434        (WebCore::TiledLayerChromium::updateTiles):
109435        (WebCore::TiledLayerChromium::setTexturePriorities):
109436        (WebCore):
109437        (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
109438        (WebCore::TiledLayerChromium::resetUpdateState):
109439        (WebCore::TiledLayerChromium::updateLayerRect):
109440        (WebCore::TiledLayerChromium::idleUpdateLayerRect):
109441        (WebCore::TiledLayerChromium::needsIdlePaint):
109442        (WebCore::TiledLayerChromium::idlePaintRect):
109443        * platform/graphics/chromium/TiledLayerChromium.h:
109444        (TiledLayerChromium):
109445        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
109446        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
109447        (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
109448        (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
109449        (WebCore::CCLayerTreeHost::commitComplete):
109450        (WebCore::CCLayerTreeHost::evictAllContentTextures):
109451        (WebCore::CCLayerTreeHost::contentsTextureManager):
109452        (WebCore::CCLayerTreeHost::updateLayers):
109453        (WebCore::CCLayerTreeHost::prioritizeTextures):
109454        (WebCore::CCLayerTreeHost::deleteTextureAfterCommit):
109455        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
109456        (WebCore):
109457        (CCLayerTreeHost):
109458        * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp: Added.
109459        (WebCore):
109460        (WebCore::CCPrioritizedTexture::CCPrioritizedTexture):
109461        (WebCore::CCPrioritizedTexture::~CCPrioritizedTexture):
109462        (WebCore::CCPrioritizedTexture::setTextureManager):
109463        (WebCore::CCPrioritizedTexture::setDimensions):
109464        (WebCore::CCPrioritizedTexture::requestLate):
109465        (WebCore::CCPrioritizedTexture::acquireBackingTexture):
109466        (WebCore::CCPrioritizedTexture::textureId):
109467        (WebCore::CCPrioritizedTexture::bindTexture):
109468        (WebCore::CCPrioritizedTexture::framebufferTexture2D):
109469        (WebCore::CCPrioritizedTexture::setCurrentBacking):
109470        * platform/graphics/chromium/cc/CCPrioritizedTexture.h: Added.
109471        (WebCore):
109472        (CCPrioritizedTexture):
109473        (WebCore::CCPrioritizedTexture::create):
109474        (WebCore::CCPrioritizedTexture::textureManager):
109475        (WebCore::CCPrioritizedTexture::format):
109476        (WebCore::CCPrioritizedTexture::size):
109477        (WebCore::CCPrioritizedTexture::memorySizeBytes):
109478        (WebCore::CCPrioritizedTexture::setRequestPriority):
109479        (WebCore::CCPrioritizedTexture::requestPriority):
109480        (WebCore::CCPrioritizedTexture::canAcquireBackingTexture):
109481        (WebCore::CCPrioritizedTexture::haveBackingTexture):
109482        (Backing):
109483        (WebCore::CCPrioritizedTexture::Backing::size):
109484        (WebCore::CCPrioritizedTexture::Backing::format):
109485        (WebCore::CCPrioritizedTexture::Backing::memorySizeBytes):
109486        (WebCore::CCPrioritizedTexture::Backing::textureId):
109487        (WebCore::CCPrioritizedTexture::Backing::currentTexture):
109488        (WebCore::CCPrioritizedTexture::Backing::setCurrentTexture):
109489        (WebCore::CCPrioritizedTexture::Backing::Backing):
109490        (WebCore::CCPrioritizedTexture::Backing::~Backing):
109491        (WebCore::CCPrioritizedTexture::isAbovePriorityCutoff):
109492        (WebCore::CCPrioritizedTexture::setAbovePriorityCutoff):
109493        (WebCore::CCPrioritizedTexture::setManagerInternal):
109494        (WebCore::CCPrioritizedTexture::currentBacking):
109495        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp: Added.
109496        (WebCore):
109497        (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
109498        (WebCore::CCPrioritizedTextureManager::~CCPrioritizedTextureManager):
109499        (WebCore::CCPrioritizedTextureManager::setMemoryAllocationLimitBytes):
109500        (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
109501        (WebCore::CCPrioritizedTextureManager::clearPriorities):
109502        (WebCore::CCPrioritizedTextureManager::requestLate):
109503        (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
109504        (WebCore::CCPrioritizedTextureManager::reduceMemory):
109505        (WebCore::CCPrioritizedTextureManager::clearAllMemory):
109506        (WebCore::CCPrioritizedTextureManager::allBackingTexturesWereDeleted):
109507        (WebCore::CCPrioritizedTextureManager::unlink):
109508        (WebCore::CCPrioritizedTextureManager::link):
109509        (WebCore::CCPrioritizedTextureManager::registerTexture):
109510        (WebCore::CCPrioritizedTextureManager::unregisterTexture):
109511        (WebCore::CCPrioritizedTextureManager::returnBackingTexture):
109512        (WebCore::CCPrioritizedTextureManager::createBacking):
109513        (WebCore::CCPrioritizedTextureManager::destroyBacking):
109514        (WebCore::CCPrioritizedTextureManager::assertInvariants):
109515        * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h: Added.
109516        (WebCore):
109517        (CCPrioritizedTextureManager):
109518        (WebCore::CCPrioritizedTextureManager::create):
109519        (WebCore::CCPrioritizedTextureManager::createTexture):
109520        (WebCore::CCPrioritizedTextureManager::memoryUseBytes):
109521        (WebCore::CCPrioritizedTextureManager::memoryAboveCutoffBytes):
109522        (WebCore::CCPrioritizedTextureManager::setMaxMemoryLimitBytes):
109523        (WebCore::CCPrioritizedTextureManager::maxMemoryLimitBytes):
109524        (WebCore::CCPrioritizedTextureManager::setPreferredMemoryLimitBytes):
109525        (WebCore::CCPrioritizedTextureManager::preferredMemoryLimitBytes):
109526        (WebCore::CCPrioritizedTextureManager::setMaxMemoryPriorityCutoff):
109527        (WebCore::CCPrioritizedTextureManager::maxMemoryPriorityCutoff):
109528        (WebCore::CCPrioritizedTextureManager::compareTextures):
109529        (WebCore::CCPrioritizedTextureManager::compareBackings):
109530        * platform/graphics/chromium/cc/CCPriorityCalculator.cpp: Added.
109531        (WebCore):
109532        (WebCore::CCPriorityCalculator::uiPriority):
109533        (WebCore::CCPriorityCalculator::visiblePriority):
109534        (WebCore::CCPriorityCalculator::lingeringPriority):
109535        (WebCore::CCPriorityCalculator::priorityFromDistance):
109536        (WebCore::CCPriorityCalculator::priorityFromVisibility):
109537        * platform/graphics/chromium/cc/CCPriorityCalculator.h: Added.
109538        (WebCore):
109539        (CCPriorityCalculator):
109540        (WebCore::CCPriorityCalculator::highestPriority):
109541        (WebCore::CCPriorityCalculator::lowestPriority):
109542        (WebCore::CCPriorityCalculator::priorityIsLower):
109543        (WebCore::CCPriorityCalculator::priorityIsHigher):
109544        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
109545
1095462012-06-29  Eric Seidel  <eric@webkit.org>
109547
109548        Remove BUILDING_ON_LEOPARD now that no ports build on Leopard
109549        https://bugs.webkit.org/show_bug.cgi?id=90249
109550
109551        Reviewed by Ryosuke Niwa.
109552
109553        I don't think I quite got it all yet, but this is another step towards
109554        removing Leopard support in WebCore.
109555
109556        * WebCore.exp.in:
109557        * page/AlternativeTextClient.h:
109558        * page/ContextMenuController.cpp:
109559        (WebCore::ContextMenuController::populate):
109560        * platform/graphics/cg/ImageBufferDataCG.h:
109561        * platform/graphics/mac/GraphicsContextMac.mm:
109562        (WebCore::GraphicsContext::drawLineForDocumentMarker):
109563        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
109564        (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
109565        * platform/mac/WebCoreSystemInterface.h:
109566        * platform/network/Credential.h:
109567        * platform/network/cf/ResourceRequestCFNet.cpp:
109568        (WebCore):
109569        (WebCore::initializeMaximumHTTPConnectionCountPerHost):
109570        * platform/text/TextChecking.h:
109571        (WebCore):
109572        * rendering/RenderLayerBacking.cpp:
109573        (WebCore::RenderLayerBacking::containsPaintedContent):
109574
1095752012-06-29  Andreas Kling  <kling@webkit.org>
109576
109577        Unreviewed, rolling out r121562.
109578        http://trac.webkit.org/changeset/121562
109579        https://bugs.webkit.org/show_bug.cgi?id=89945
109580
109581        Broke a couple of editing/pasteboard tests.
109582
109583        * css/PropertySetCSSStyleDeclaration.cpp:
109584        (WebCore::PropertySetCSSStyleDeclaration::length):
109585        (WebCore::PropertySetCSSStyleDeclaration::item):
109586        (WebCore::PropertySetCSSStyleDeclaration::cssText):
109587        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
109588        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
109589        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
109590        (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
109591        (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
109592        (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
109593        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
109594        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
109595        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
109596        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
109597        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
109598        (WebCore::PropertySetCSSStyleDeclaration::copy):
109599        (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
109600        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
109601        (WebCore::InlineCSSStyleDeclaration::didMutate):
109602        (WebCore::InlineCSSStyleDeclaration::parentStyleSheet):
109603        * css/PropertySetCSSStyleDeclaration.h:
109604        (WebCore::PropertySetCSSStyleDeclaration::clearParentElement):
109605        (PropertySetCSSStyleDeclaration):
109606        (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
109607        * css/StylePropertySet.cpp:
109608        (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
109609        (WebCore::StylePropertySet::clearParentElement):
109610        (WebCore):
109611        * css/StylePropertySet.h:
109612        (StylePropertySet):
109613        * dom/ElementAttributeData.cpp:
109614        (WebCore::ElementAttributeData::destroyInlineStyle):
109615        (WebCore):
109616        * dom/ElementAttributeData.h:
109617        (ElementAttributeData):
109618        * dom/StyledElement.cpp:
109619        (WebCore::StyledElement::~StyledElement):
109620        (WebCore):
109621        (WebCore::StyledElement::styleAttributeChanged):
109622        * dom/StyledElement.h:
109623        (StyledElement):
109624        (WebCore::StyledElement::destroyInlineStyle):
109625
1096262012-06-29  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
109627
109628        [Qt] Add missing support for tiled shadow blur on fillRect
109629        https://bugs.webkit.org/show_bug.cgi?id=90082
109630
109631        Reviewed by Noam Rosenthal.
109632
109633        This overloaded fillRect implementation also supports this optimization in
109634        certain situations.
109635
109636        * platform/graphics/qt/GraphicsContextQt.cpp:
109637        (WebCore::GraphicsContext::fillRect):
109638
1096392012-06-29  Brady Eidson  <beidson@apple.com>
109640
109641        Build fix - These should not be executable!
109642
109643        Rubberstamped by Jessie Berlin.
109644
109645        * loader/cache/CachedSVGDocument.cpp: Removed property svn:executable.
109646        * loader/cache/CachedSVGDocument.h: Removed property svn:executable.
109647
1096482012-06-29  Kwang Yul Seo  <skyul@company100.net>
109649
109650        Update FIXME comment in XMLDocumentParser::wellFormed
109651        https://bugs.webkit.org/show_bug.cgi?id=90223
109652
109653        Reviewed by Adam Barth.
109654
109655        XMLDocumentParser::wellFormed is still used by the XMLHttpRequest to check if the responseXML was well formed.
109656        So it can't be removed.
109657
109658        * xml/parser/XMLDocumentParser.h:
109659        (XMLDocumentParser):
109660
1096612012-06-29  Andreas Kling  <kling@webkit.org>
109662
109663        Separate mutating CSSStyleDeclaration operations.
109664        <http://webkit.org/b/89945>
109665
109666        Reviewed by Antti Koivisto.
109667
109668        Use separate paths for mutating the StylePropertySet wrapped by a CSSStyleDeclaration.
109669        PropertySetCSSStyleDeclaration now has:
109670
109671            - propertySet() const
109672            - ensureMutablePropertySet()
109673
109674        This is prep work for supporting immutable ElementAttributeData objects, the idea being
109675        that calling ensureMutablePropertySet() may cause the element to convert its internal
109676        attribute storage (which also holds the inline StylePropertySet.)
109677
109678        To that end, also removed the weird logic that allowed you to kill the inline style object
109679        by removing the 'style' attribute. We now simply clear out all the properties in that case
109680        which saves us a bunch of hassle (no need for a ~StyledElement anymore.)
109681        Note that InlineCSSStyleDeclaration now refs the element rather than the inline style.
109682
109683        There should be no web-facing behavior change from any of this.
109684
109685        * css/PropertySetCSSStyleDeclaration.cpp:
109686        (WebCore::PropertySetCSSStyleDeclaration::length):
109687        (WebCore::PropertySetCSSStyleDeclaration::item):
109688        (WebCore::PropertySetCSSStyleDeclaration::cssText):
109689        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
109690        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
109691        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
109692        (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
109693        (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
109694        (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
109695        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
109696        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
109697        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
109698        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
109699        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
109700        (WebCore::PropertySetCSSStyleDeclaration::copy):
109701        (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
109702        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
109703        (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
109704        (WebCore::InlineCSSStyleDeclaration::ref):
109705        (WebCore::InlineCSSStyleDeclaration::deref):
109706        (WebCore::InlineCSSStyleDeclaration::didMutate):
109707        (WebCore::InlineCSSStyleDeclaration::parentStyleSheet):
109708        (WebCore::InlineCSSStyleDeclaration::ensureMutablePropertySet):
109709        * css/PropertySetCSSStyleDeclaration.h:
109710        (PropertySetCSSStyleDeclaration):
109711        (WebCore::PropertySetCSSStyleDeclaration::propertySet):
109712        (WebCore::PropertySetCSSStyleDeclaration::ensureMutablePropertySet):
109713        (InlineCSSStyleDeclaration):
109714        * css/StylePropertySet.cpp:
109715        (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
109716        * css/StylePropertySet.h:
109717        (StylePropertySet):
109718        * dom/ElementAttributeData.cpp:
109719        * dom/ElementAttributeData.h:
109720        (ElementAttributeData):
109721        * dom/StyledElement.cpp:
109722        (WebCore::StyledElement::styleAttributeChanged):
109723        * dom/StyledElement.h:
109724        (WebCore::StyledElement::~StyledElement):
109725        (StyledElement):
109726
1097272012-06-29  Kwang Yul Seo  <skyul@company100.net>
109728
109729        Don't call SegmentedString::toString() twice in XMLDocumentParser::append(const SegmentedString&)
109730        https://bugs.webkit.org/show_bug.cgi?id=90254
109731
109732        Reviewed by Adam Barth.
109733
109734        We can reuse the local variable parseString instead of calling s.toString() again.
109735        No behavior change, so no new tests.
109736
109737        * xml/parser/XMLDocumentParser.cpp:
109738        (WebCore::XMLDocumentParser::append):
109739
1097402012-06-29  Mihnea Ovidenie  <mihnea@adobe.com>
109741
109742        Crash when flowing a fixed positioned element into a region.
109743        https://bugs.webkit.org/show_bug.cgi?id=88133
109744
109745        Reviewed by Julien Chaffraix and Abhishek Arya.
109746
109747        When a fixed positioned element is collected into a named flow, we have to make sure
109748        that such element has the RenderFlowThread as containing block instead of RenderView,
109749        so that the fixed positioned element is laid out properly.
109750        Making the RenderFlowThread the top most containing block for named flow elements required the
109751        modification of RenderLayer::convertToLayerCoords so that the fixed positioned elements inside the
109752        named flow take the same code path as the absolute positioned elements inside the named flow.
109753        I also added a method, checkBlockPositionedObjectsNeedLayout, in order to verify that a block
109754        that is ending its layout, setNeedsLayout(false), has all the positioned children laid out.
109755        This way, we will hit an assertion if an out-of-flow positioned child inside a RenderFlowThread
109756        is not laid out after the RenderFlowThread is laid out.
109757
109758        Tests: fast/regions/absolute-pos-elem-in-named-flow.html
109759               fast/regions/absolute-pos-elem-in-region.html
109760               fast/regions/fixed-pos-elem-in-named-flow.html
109761               fast/regions/fixed-pos-elem-in-named-flow2.html
109762               fast/regions/fixed-pos-elem-in-region.html
109763
109764        * rendering/RenderBlock.cpp:
109765        (WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
109766        * rendering/RenderBlock.h:
109767        (RenderBlock):
109768        * rendering/RenderLayer.cpp:
109769        (WebCore::RenderLayer::convertToLayerCoords):
109770        * rendering/RenderObject.cpp:
109771        (WebCore):
109772        (WebCore::RenderObject::checkBlockPositionedObjectsNeedLayout):
109773        (WebCore::RenderObject::containingBlock):
109774        (WebCore::RenderObject::container):
109775        * rendering/RenderObject.h:
109776        (RenderObject):
109777        (WebCore::RenderObject::setNeedsLayout):
109778
1097792012-06-29  Konrad Piascik  <kpiascik@rim.com>
109780
109781        Don't hardcode target dpi of 160 (it should be 96 on desktop)
109782        https://bugs.webkit.org/show_bug.cgi?id=88114
109783
109784        Reviewed by Adam Barth.
109785
109786        No behavioural change, current tests in fast/viewport cover all
109787        functionality.
109788
109789        * WebCore.exp.in: Updated symbol for computeViewportAttributes.
109790        * dom/ViewportArguments.cpp: Use new parameter for devicePixelRatio
109791                                     and don't calculate it anymore.
109792        (WebCore::computeViewportAttributes):
109793        * dom/ViewportArguments.h: Change the deviceDPI parameter to
109794                                   devicePixelRatio and put the onus
109795                                   on the embedder to supply the
109796                                   correct value.  Add temporary constant.
109797        (WebCore):
109798
1097992012-06-29  Vineet Chaudhary  <rgf748@motorola.com>
109800
109801        JS binding code generator doesn't handle "attribute unsigned long[]" well.
109802        https://bugs.webkit.org/show_bug.cgi?id=84540
109803
109804        Reviewed by Kentaro Hara.
109805
109806        In JS/V8 Bindings using traits instead of specialised functions.
109807        Also added support for "unsigned long" in JSDOMBinding and V8Binding.
109808
109809        No new tests, as no behavioural changes.
109810
109811        * bindings/js/JSDOMBinding.h:
109812        (WebCore::Traits::arrayJSValue):
109813        (WebCore::jsArray):
109814        * bindings/v8/V8Binding.h:
109815        (WebCore::Traits::arrayV8Value):
109816        (WebCore::v8Array):
109817
1098182012-06-29  Andreas Kling  <kling@webkit.org>
109819
109820        Unreviewed mac build fix after r121547.
109821        Remove the now-unused FontCustomPlatformData::m_atsContainer.
109822
109823        * platform/graphics/mac/FontCustomPlatformData.h:
109824        (FontCustomPlatformData):
109825
1098262012-06-29  Kent Tamura  <tkent@chromium.org>
109827
109828        <textarea> unnecessarily saves the value in some cases
109829        https://bugs.webkit.org/show_bug.cgi?id=90259
109830
109831        Reviewed by Hajime Morita.
109832
109833        Test: fast/forms/textarea/textarea-state-restore.html
109834
109835        * html/HTMLTextAreaElement.cpp:
109836        (WebCore::HTMLTextAreaElement::saveFormControlState):
109837        We apply EOL normalization to value(), but don't apply it to
109838        defaultValue(). Also value() can return a null string, which never
109839        equals to any strings. To check m_isDirty is what we need..
109840
1098412012-06-25  Alexander Pavlov  <apavlov@chromium.org>
109842
109843        Web Inspector: Provide source data for all known rule types in CSSParser, except "keyframe" and "region"
109844        https://bugs.webkit.org/show_bug.cgi?id=88420
109845
109846        Reviewed by Antti Koivisto.
109847
109848        This change transitions the CSS source code model from a flat list of style rules to a tree of all types of CSS rules
109849        (some of them lack actual source code data), which is crucial to model-based CSS stylesheet source editing
109850        (add/remove CSS rule) and navigation.
109851        As a side effect, the CSS parsing performance on PerformanceTests/Parser/css-parser-yui.html is improved roughly by 2%:
109852        - originally: median= 282.051282051 runs/s, stdev= 1.51236798322 runs/s, min= 278.481012658 runs/s, max= 283.870967742 runs/s
109853        - with patch applied: median= 287.206266319 runs/s, stdev= 1.31518320219 runs/s, min= 282.051282051 runs/s, max= 288.713910761 runs/s
109854
109855        No new tests, as there is no client-visible behavior change. Existing Inspector tests will be modified
109856        to test the new data provided, along with the necessary Inspector plumbing.
109857
109858        * css/CSSGrammar.y:
109859        * css/CSSMediaRule.cpp:
109860        (WebCore::CSSMediaRule::reattach): Check for mediaQueries() validity before reattaching.
109861        * css/CSSParser.cpp: Unless explicitly specified below, the method changes are related to the extension of the
109862        source-based CSS model provided by the parser.
109863        (WebCore::CSSParser::CSSParser):
109864        (WebCore::CSSParser::setupParser):
109865        (WebCore::CSSParser::parseDeclaration): Accept a CSSRuleSourceData for filling, since it now contains
109866        the related style source range.
109867        (WebCore::CSSParser::createImportRule):
109868        (WebCore::CSSParser::createMediaRule): Create CSSMediaRule even if media and rules are empty,
109869        which is consistent with Mozilla.
109870        (WebCore::CSSParser::processAndAddNewRuleToSourceTreeIfNeeded):
109871        (WebCore):
109872        (WebCore::CSSParser::addNewRuleToSourceTree):
109873        (WebCore::CSSParser::createKeyframesRule):
109874        (WebCore::CSSParser::createStyleRule):
109875        (WebCore::CSSParser::createFontFaceRule):
109876        (WebCore::CSSParser::createPageRule):
109877        (WebCore::CSSParser::createRegionRule):
109878        (WebCore::CSSParser::fixUnparsedPropertyRanges):
109879        (WebCore::CSSParser::markRuleHeaderStart):
109880        (WebCore::CSSParser::markRuleHeaderEnd):
109881        (WebCore::CSSParser::markRuleBodyStart):
109882        (WebCore::CSSParser::markRuleBodyEnd):
109883        (WebCore::CSSParser::markPropertyStart):
109884        (WebCore::CSSParser::markPropertyEnd):
109885        * css/CSSParser.h:
109886        (CSSParser):
109887        * css/CSSPropertySourceData.h: Extend the model to handle more types of rules and their containments.
109888        (WebCore):
109889        (WebCore::CSSRuleSourceData::create):
109890        (WebCore::CSSRuleSourceData::createUnknown):
109891        (CSSRuleSourceData):
109892        (WebCore::CSSRuleSourceData::CSSRuleSourceData):
109893        * inspector/InspectorStyleSheet.cpp: Follow the CSSParser API changes but retain the flat stored CSS rules structure.
109894        (ParsedStyleSheet):
109895        (flattenSourceData): Flatten the rule tree to retain the existing rule-handling code intact.
109896        (ParsedStyleSheet::setSourceData):
109897        (ParsedStyleSheet::ruleSourceDataAt):
109898        (WebCore::InspectorStyle::buildObjectForStyle):
109899        (WebCore::InspectorStyle::setPropertyText):
109900        (WebCore::InspectorStyle::styleText):
109901        (WebCore::InspectorStyleSheet::setRuleSelector):
109902        (WebCore::InspectorStyleSheet::deleteRule):
109903        (WebCore::InspectorStyleSheet::buildObjectForRule):
109904        (WebCore::InspectorStyleSheet::buildObjectForStyle):
109905        (WebCore::InspectorStyleSheet::ensureSourceData):
109906        (WebCore::InspectorStyleSheet::styleSheetTextWithChangedStyle):
109907        (WebCore::InspectorStyleSheetForInlineStyle::ensureParsedDataReady):
109908        (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
109909        * inspector/InspectorStyleSheet.h:
109910
1099112012-06-29  Vsevolod Vlasov  <vsevik@chromium.org>
109912
109913        Web Inspector: Annotate TextViewer.js
109914        https://bugs.webkit.org/show_bug.cgi?id=90266
109915
109916        Reviewed by Yury Semikhatsky.
109917
109918        Annotated TextViewer.js and fixed found errors.
109919        Drive-by: Fixed NativeMemorySnapshotView.js compilation.
109920        Drive-by: Fixed protocol-externs.js compilation.
109921        Drive-by: Removed unused platform parameter from TextViewer constructor.
109922
109923        * inspector/Inspector.json:
109924        * inspector/InspectorDebuggerAgent.cpp:
109925        (WebCore::InspectorDebuggerAgent::runScript):
109926        * inspector/InspectorDebuggerAgent.h:
109927        (InspectorDebuggerAgent):
109928        * inspector/front-end/NativeMemorySnapshotView.js:
109929        (WebInspector.NativeMemoryBarChart.prototype._updateView):
109930        * inspector/front-end/SourceFrame.js:
109931        (WebInspector.SourceFrame):
109932        * inspector/front-end/TextViewer.js:
109933        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
109934
1099352012-06-29  Eric Seidel  <eric@webkit.org>
109936
109937        Remove still more BUILDING_ON_LEOPARD branches now that no port supports leopard
109938        https://bugs.webkit.org/show_bug.cgi?id=90256
109939
109940        Reviewed by Ryosuke Niwa.
109941
109942        * platform/LocalizedStrings.cpp:
109943        (WebCore::imageTitle):
109944        * platform/graphics/cg/GraphicsContextCG.cpp:
109945        (WebCore::GraphicsContext::setAllowsFontSmoothing):
109946        * platform/graphics/cg/ImageCG.cpp:
109947        (WebCore::Image::drawPattern):
109948        * platform/graphics/cg/ImageSourceCG.cpp:
109949        (WebCore::ImageSource::clear):
109950        * platform/graphics/cg/PathCG.cpp:
109951        (WebCore::Path::boundingRect):
109952        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
109953        (WebCore::FontPlatformData::ctFont):
109954        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
109955        * platform/graphics/mac/ComplexTextController.cpp:
109956        * platform/graphics/mac/FontCacheMac.mm:
109957        (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
109958        (WebCore::FontCache::platformInit):
109959        * platform/graphics/mac/FontCustomPlatformData.cpp:
109960        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
109961        (WebCore::createFontCustomPlatformData):
109962        * platform/graphics/mac/FontCustomPlatformData.h:
109963        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
109964        * platform/graphics/mac/SimpleFontDataMac.mm:
109965        (WebCore::SimpleFontData::platformInit):
109966        * platform/graphics/mac/WebLayer.h:
109967        * platform/mac/CursorMac.mm:
109968        (WebCore::Cursor::ensurePlatformCursor):
109969        * platform/mac/DisplaySleepDisabler.cpp:
109970        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
109971        (WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
109972        * platform/mac/DisplaySleepDisabler.h:
109973        (DisplaySleepDisabler):
109974        * platform/mac/HTMLConverter.h:
109975        * platform/mac/HTMLConverter.mm:
109976        * platform/mac/PopupMenuMac.mm:
109977        (WebCore::PopupMenuMac::populate):
109978        * platform/mac/ScrollElasticityController.mm:
109979
1099802012-06-29  Zan Dobersek  <zandobersek@gmail.com>
109981
109982        Unreviewed attempt at a build fix for 64-bit debug build,
109983        touch InsertionPoint.cpp to try to get it rebuilt.
109984
109985        * html/shadow/InsertionPoint.cpp:
109986        (WebCore):
109987
1099882012-06-29  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
109989
109990        [Qt] Don't add Qt module dependencies in features.prf
109991
109992        The required dependencies are already added in WebCore.pri.
109993
109994        Reviewed by Tor Arne Vestbø.
109995
109996        * WebCore.pri:
109997
1099982012-06-29  Taiju Tsuiki  <tzik@chromium.org>
109999
110000        Web Inspector: Add FileSystemView
110001        https://bugs.webkit.org/show_bug.cgi?id=73301
110002
110003        This patch introduce a split view as FileSystemView. Including directory tree as sidebar tree.
110004
110005        Reviewed by Vsevolod Vlasov.
110006
110007        Test: http/tests/inspector/filesystem/directory-tree.html
110008
110009        * WebCore.gypi:
110010        * WebCore.vcproj/WebCore.vcproj:
110011        * inspector/compile-front-end.py:
110012        * inspector/front-end/FileSystemModel.js:
110013        (WebInspector.FileSystemModel.Entry.compare):
110014        * inspector/front-end/FileSystemView.js: Added.
110015        * inspector/front-end/ResourcesPanel.js:
110016        (WebInspector.ResourcesPanel.prototype.showFileSystem):
110017        (WebInspector.FileSystemTreeElement.prototype.get itemURL):
110018        (WebInspector.FileSystemTreeElement.prototype.onattach):
110019        (WebInspector.FileSystemTreeElement.prototype._handleContextMenuEvent):
110020        (WebInspector.FileSystemTreeElement.prototype._refreshFileSystem):
110021        (WebInspector.FileSystemTreeElement.prototype.onselect):
110022        (WebInspector.FileSystemTreeElement.prototype.clear):
110023        * inspector/front-end/WebKit.qrc:
110024        * inspector/front-end/inspector.html:
110025
1100262012-06-29  Kentaro Hara  <haraken@chromium.org>
110027
110028        [V8] Replace v8::Integer::New() with v8Integer() in custom bindings
110029        https://bugs.webkit.org/show_bug.cgi?id=90242
110030
110031        Reviewed by Yury Semikhatsky.
110032
110033        v8Integer() is a fast wrapper of v8::Integer::New().
110034        This patch replaces v8::Integer::New() with v8Integer() in custom bindings,
110035        and pass isolates.
110036
110037        No tests. No change in behavior.
110038
110039        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
110040        (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator):
110041        (WebCore::V8CSSStyleDeclaration::namedPropertyQuery):
110042        * bindings/v8/custom/V8ClipboardCustom.cpp:
110043        (WebCore::V8Clipboard::typesAccessorGetter):
110044        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
110045        (WebCore::V8DOMStringMap::namedPropertyQuery):
110046        (WebCore::V8DOMStringMap::namedPropertyEnumerator):
110047        * bindings/v8/custom/V8DOMWindowCustom.cpp:
110048        (WebCore::WindowSetTimeoutImpl):
110049        * bindings/v8/custom/V8DataViewCustom.cpp:
110050        (WebCore::V8DataView::getInt8Callback):
110051        (WebCore::V8DataView::getUint8Callback):
110052        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
110053        (WebCore::V8HTMLInputElement::selectionStartAccessorGetter):
110054        (WebCore::V8HTMLInputElement::selectionEndAccessorGetter):
110055        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
110056        (WebCore::V8HTMLOptionsCollection::lengthAccessorGetter):
110057        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
110058        (WebCore::V8InjectedScriptHost::functionDetailsCallback):
110059        * bindings/v8/custom/V8MessageEventCustom.cpp:
110060        (WebCore::V8MessageEvent::portsAccessorGetter):
110061        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
110062        (WebCore::V8MutationCallback::handleEvent):
110063        * bindings/v8/custom/V8NodeListCustom.cpp:
110064        (WebCore::V8NodeList::namedPropertyGetter):
110065        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
110066        (WebCore::V8SQLTransaction::executeSqlCallback):
110067        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
110068        (WebCore::V8SQLTransactionSync::executeSqlCallback):
110069        * bindings/v8/custom/V8StorageCustom.cpp:
110070        (WebCore::V8Storage::namedPropertyEnumerator):
110071        (WebCore::V8Storage::indexedPropertyGetter):
110072        (WebCore::V8Storage::namedPropertyQuery):
110073        (WebCore::V8Storage::indexedPropertySetter):
110074        (WebCore::V8Storage::indexedPropertyDeleter):
110075        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
110076        (WebCore::toV8Object):
110077        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
110078        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
110079        * bindings/v8/custom/V8WorkerContextCustom.cpp:
110080        (WebCore::SetTimeoutOrInterval):
110081
1100822012-06-29  Kentaro Hara  <haraken@chromium.org>
110083
110084        Unreviewed, rolling out r121520.
110085        http://trac.webkit.org/changeset/121520
110086        https://bugs.webkit.org/show_bug.cgi?id=90246
110087
110088        the performance optimization needs more investigation
110089
110090        * dom/DatasetDOMStringMap.cpp:
110091        (WebCore::convertPropertyNameToAttributeName):
110092        * dom/Element.cpp:
110093        (WebCore::Element::getAttributeNS):
110094        (WebCore::Element::removeAttribute):
110095        (WebCore::Element::removeAttributeNS):
110096        (WebCore::Element::getAttributeNode):
110097        (WebCore::Element::getAttributeNodeNS):
110098        (WebCore::Element::hasAttribute):
110099        (WebCore::Element::hasAttributeNS):
110100        * dom/Element.h:
110101        (Element):
110102        * dom/ElementAttributeData.cpp:
110103        (WebCore::ElementAttributeData::getAttributeNode):
110104        * dom/ElementAttributeData.h:
110105        (ElementAttributeData):
110106
1101072012-06-29  Kentaro Hara  <haraken@chromium.org>
110108
110109        [V8] Replace v8::Integer::New() with v8Integer() in bindings/v8/*.{h,cpp}
110110        https://bugs.webkit.org/show_bug.cgi?id=90238
110111
110112        Reviewed by Yury Semikhatsky.
110113
110114        v8Integer() is a fast wrapper of v8::Integer::New().
110115        We can replace v8::Integer::New() with v8Integer()
110116        in bindings/v8/*.{h,cpp}. In addition, we pass isolate
110117        to v8Integer() where possible.
110118
110119        No tests. No change in behavior.
110120
110121        * bindings/v8/Dictionary.cpp:
110122        (WebCore::Dictionary::get):
110123        * bindings/v8/NPV8Object.cpp:
110124        (_NPN_Enumerate): Changed v8::None to 0, for consistency with other code.
110125        * bindings/v8/PageScriptDebugServer.cpp:
110126        (WebCore::PageScriptDebugServer::addListener):
110127        * bindings/v8/ScriptDebugServer.cpp:
110128        (WebCore::ScriptDebugServer::setBreakpoint):
110129        (WebCore::ScriptDebugServer::compileScript):
110130        * bindings/v8/SerializedScriptValue.cpp:
110131        * bindings/v8/V8Binding.cpp:
110132        (WebCore::v8Array):
110133        (WebCore::v8ValueToWebCoreDOMStringList):
110134        * bindings/v8/V8Binding.h:
110135        (WebCore::v8Array):
110136        (WebCore::v8NumberArrayToVector):
110137        * bindings/v8/V8Collection.h:
110138        (WebCore::nodeCollectionIndexedPropertyEnumerator):
110139        (WebCore::collectionIndexedPropertyEnumerator):
110140        * bindings/v8/V8LazyEventListener.cpp:
110141        (WebCore::V8LazyEventListener::prepareListenerObject):
110142        * bindings/v8/V8NPObject.cpp:
110143        (WebCore::npObjectQueryProperty):
110144        (WebCore::npObjectPropertyEnumerator):
110145        * bindings/v8/V8NPUtils.cpp:
110146        (WebCore::convertNPVariantToV8Object):
110147        * bindings/v8/V8Proxy.cpp:
110148        (WebCore::batchConfigureConstants):
110149        (WebCore::V8Proxy::compileScript):
110150        * bindings/v8/V8Utilities.cpp:
110151        (WebCore::createHiddenDependency):
110152        (WebCore::removeHiddenDependency):
110153        * bindings/v8/V8WindowErrorHandler.cpp:
110154        (WebCore::V8WindowErrorHandler::callListenerFunction):
110155        * bindings/v8/V8WorkerContextErrorHandler.cpp:
110156        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
110157        * bindings/v8/WorkerScriptDebugServer.cpp:
110158        (WebCore::WorkerScriptDebugServer::addListener):
110159
1101602012-06-28  Vsevolod Vlasov  <vsevik@chromium.org>
110161
110162        Web Inspector: Resource content is not loaded if Resource.requestContent method is called before network request is finished.
110163        https://bugs.webkit.org/show_bug.cgi?id=90153
110164
110165        Reviewed by Yury Semikhatsky.
110166
110167        Test: http/tests/inspector/resource-tree/resource-request-content-while-loading.html
110168
110169        * inspector/front-end/NetworkRequest.js:
110170        * inspector/front-end/Resource.js:
110171        (WebInspector.Resource):
110172        (WebInspector.Resource.prototype.requestContent):
110173        (WebInspector.Resource.prototype._requestFinished):
110174
1101752012-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
110176
110177        Unreviewed, rolling out r121529.
110178        http://trac.webkit.org/changeset/121529
110179        https://bugs.webkit.org/show_bug.cgi?id=90260
110180
110181        Failed to compile on Chromium WebKitMacBuilder (Requested by
110182        keishi on #webkit).
110183
110184        * platform/LocalizedStrings.cpp:
110185        (WebCore):
110186        * platform/graphics/cg/PathCG.cpp:
110187        (WebCore::Path::platformAddPathForRoundedRect):
110188        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
110189        (WebCore::FontPlatformData::FontPlatformData):
110190        (WebCore::FontPlatformData::setFont):
110191        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
110192        (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
110193        * platform/graphics/mac/FontMac.mm:
110194        (WebCore::showGlyphsWithAdvances):
110195        * platform/graphics/mac/SimpleFontDataMac.mm:
110196        (WebCore):
110197        * platform/mac/CursorMac.mm:
110198        (WebCore::Cursor::ensurePlatformCursor):
110199        * platform/mac/MemoryPressureHandlerMac.mm:
110200        (WebCore):
110201        * platform/mac/PlatformEventFactoryMac.mm:
110202        (WebCore::momentumPhaseForEvent):
110203        (WebCore::phaseForEvent):
110204        * platform/mac/WebCoreSystemInterface.h:
110205        * platform/mac/WebCoreSystemInterface.mm:
110206        * platform/network/mac/ResourceHandleMac.mm:
110207        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
110208        * platform/network/mac/ResourceRequestMac.mm:
110209        (WebCore::ResourceRequest::doUpdateResourceRequest):
110210        (WebCore::ResourceRequest::doUpdatePlatformRequest):
110211        * platform/text/cf/HyphenationCF.cpp:
110212        * rendering/RenderThemeMac.mm:
110213        (WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused):
110214
1102152012-06-28  Vsevolod Vlasov  <vsevik@chromium.org>
110216
110217        Web Inspector: Add toggle breakpoint shortcut.
110218        https://bugs.webkit.org/show_bug.cgi?id=90188
110219
110220        Reviewed by Yury Semikhatsky.
110221
110222        * inspector/front-end/JavaScriptSourceFrame.js:
110223        (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
110224        (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
110225        (WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
110226        * inspector/front-end/ScriptsPanel.js:
110227        (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
110228        (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
110229        * inspector/front-end/TextViewer.js:
110230        (WebInspector.TextViewer.prototype.selection):
110231
1102322012-06-28  Vsevolod Vlasov  <vsevik@chromium.org>
110233
110234        Web Inspector: Cursor should follow execution line when debugging.
110235        https://bugs.webkit.org/show_bug.cgi?id=90184
110236
110237        Reviewed by Yury Semikhatsky.
110238
110239        Added TextViewer.setSelection public method to set cursor selection in the editor.
110240        Added TextRange.createFromLocation method to create TextRanges with the same start and end points.
110241        Drive-by: removed unused _setCaretLocation() method in TextViewer.js
110242
110243        * inspector/front-end/JavaScriptSourceFrame.js:
110244        (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
110245        * inspector/front-end/ScriptsPanel.js:
110246        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
110247        (WebInspector.ScriptsPanel.prototype._editorSelected):
110248        * inspector/front-end/SourceFrame.js:
110249        (WebInspector.SourceFrame.prototype.setSelection):
110250        (WebInspector.SourceFrame.prototype.setContent):
110251        * inspector/front-end/TextEditorModel.js:
110252        (WebInspector.TextRange.createFromLocation):
110253        * inspector/front-end/TextViewer.js:
110254        (WebInspector.TextViewer.prototype.setSelection):
110255        (WebInspector.TextEditorMainPanel.prototype.highlightLine):
110256
1102572012-06-27  Vsevolod Vlasov  <vsevik@chromium.org>
110258
110259        Web Inspector: IDBObjectStore.autoIncrement flag not exposed
110260        https://bugs.webkit.org/show_bug.cgi?id=89701
110261
110262        Reviewed by Yury Semikhatsky.
110263
110264        Plumbed objectStore.autoIncrement to inspector front-end and added it to tooltip.
110265
110266        * English.lproj/localizedStrings.js:
110267        * inspector/Inspector.json:
110268        * inspector/InspectorIndexedDBAgent.cpp:
110269        (WebCore):
110270        * inspector/front-end/IndexedDBModel.js:
110271        (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
110272        (WebInspector.IndexedDBModel.prototype._loadDatabase):
110273        (WebInspector.IndexedDBModel.ObjectStore):
110274        * inspector/front-end/ResourcesPanel.js:
110275        (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
110276
1102772012-06-28  Alexander Pavlov  <apavlov@chromium.org>
110278
110279        Use floating keyframe rule list when parsing @-webkit-keyframes and allow abrupt rule termination
110280        https://bugs.webkit.org/show_bug.cgi?id=90073
110281
110282        Reviewed by Antti Koivisto.
110283
110284        - The grammar is changed to allow abruptly terminated stylesheet in the @-webkit-keyframes (use closing_brace, not '}').
110285        - A floating StyleKeyframe vector is introduced to separate the creation and filling of StyleRuleKeyframes, as other rules do.
110286
110287        Test: fast/css/css-keyframe-unexpected-end.html
110288
110289        * css/CSSGrammar.y:
110290        * css/CSSParser.cpp:
110291        (WebCore::CSSParser::createFloatingKeyframeVector):
110292        (WebCore):
110293        (WebCore::CSSParser::sinkFloatingKeyframeVector):
110294        (WebCore::CSSParser::createKeyframesRule):
110295        * css/CSSParser.h:
110296
1102972012-06-26  Yury Semikhatsky  <yurys@chromium.org>
110298
110299        Web Inspector: add character data to the DOM section of native memory view
110300        https://bugs.webkit.org/show_bug.cgi?id=89968
110301
110302        Reviewed by Vsevolod Vlasov.
110303
110304        Count strings referenced from CharacterData node and its descendants
110305        as part of the DOM tree structures in the native memory view.
110306
110307        * dom/CharacterData.cpp:
110308        (WebCore::CharacterData::reportMemoryUsage):
110309        (WebCore):
110310        * dom/CharacterData.h:
110311        (CharacterData):
110312        * dom/MemoryInstrumentation.h:
110313        (MemoryInstrumentation):
110314        (WebCore::MemoryObjectInfo::reportString):
110315        (MemoryObjectInfo):
110316        * inspector/InspectorMemoryAgent.cpp:
110317        (WebCore):
110318        (WebCore::domTreeInfo):
110319        (WebCore::jsExternalResourcesInfo):
110320        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
110321        * inspector/front-end/NativeMemorySnapshotView.js:
110322        (WebInspector.MemoryBlockViewProperties._initialize):
110323
1103242012-06-29  Eric Seidel  <eric@webkit.org>
110325
110326        Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard
110327        https://bugs.webkit.org/show_bug.cgi?id=90252
110328
110329        Reviewed by Ryosuke Niwa.
110330
110331        * platform/LocalizedStrings.cpp:
110332        (WebCore):
110333        * platform/graphics/cg/PathCG.cpp:
110334        (WebCore::Path::platformAddPathForRoundedRect):
110335        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
110336        (WebCore::FontPlatformData::FontPlatformData):
110337        (WebCore::FontPlatformData::setFont):
110338        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
110339        (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
110340        * platform/graphics/mac/FontMac.mm:
110341        (WebCore::showGlyphsWithAdvances):
110342        * platform/graphics/mac/SimpleFontDataMac.mm:
110343        (WebCore):
110344        * platform/mac/CursorMac.mm:
110345        (WebCore::Cursor::ensurePlatformCursor):
110346        * platform/mac/MemoryPressureHandlerMac.mm:
110347        (WebCore):
110348        * platform/mac/PlatformEventFactoryMac.mm:
110349        (WebCore::momentumPhaseForEvent):
110350        (WebCore::phaseForEvent):
110351        * platform/mac/WebCoreSystemInterface.h:
110352        * platform/mac/WebCoreSystemInterface.mm:
110353        * platform/network/mac/ResourceHandleMac.mm:
110354        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
110355        * platform/network/mac/ResourceRequestMac.mm:
110356        (WebCore::ResourceRequest::doUpdateResourceRequest):
110357        (WebCore::ResourceRequest::doUpdatePlatformRequest):
110358        * platform/text/cf/HyphenationCF.cpp:
110359        * rendering/RenderThemeMac.mm:
110360        (WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused):
110361
1103622012-06-27  Vsevolod Vlasov  <vsevik@chromium.org>
110363
110364        Web Inspector: showConsole() should close previous view in drawer.
110365        https://bugs.webkit.org/show_bug.cgi?id=90070
110366
110367        Reviewed by Yury Semikhatsky.
110368
110369        * inspector/front-end/inspector.js:
110370        (WebInspector.showConsole):
110371        (WebInspector.showPanel):
110372
1103732012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
110374
110375        Remove a #include erroneously added in r120896.
110376
110377        * editing/VisibleSelection.h:
110378
1103792012-06-29  Yoshifumi Inoue  <yosin@chromium.org>
110380
110381        [Platform] Implement Date Time format parser
110382        https://bugs.webkit.org/show_bug.cgi?id=89963
110383
110384        Reviewed by Kent Tamura.
110385
110386        This patch introduces Unicode TR35 LDML date time format parser for
110387        input type "time" if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) is true.
110388
110389        Test: WebKit/chromium/tests/DateTimeFormatTest.cpp
110390
110391        * CMakeLists.txt: Added DateTimeFormat.cpp
110392        * GNUmakefile.list.am: Added DateTimeFormat.{cpp,h}
110393        * Target.pri: ditto
110394        * WebCore.gypi: ditto
110395        * WebCore.vcproj/WebCore.vcproj: ditto
110396        * WebCore.xcodeproj/product.pbxproj: ditto
110397        * platform/text/DateTimeFormat.cpp: Added.
110398        (WebCore::mapCharacterToFieldTypeInternal):
110399        (WebCore::DateTimeFormat::DateTimeFormat):
110400        (WebCore::DateTimeFormat::mapCharacterToFieldType):
110401        (WebCore::DateTimeFormat::parse):
110402        * platform/text/DateTimeFormat.h: Added.
110403        (DateTimeFormat):
110404        (TokenHandler):
110405        (WebCore::DateTimeFormat::TokenHandler::~TokenHandler):
110406
1104072012-06-29  Eric Seidel  <eric@webkit.org>
110408
110409        Remove more BUILDING_ON_LEOPARD usage in PLATFORM(MAC) code
110410        https://bugs.webkit.org/show_bug.cgi?id=85846
110411
110412        Reviewed by Adam Barth.
110413
110414        PLATFORM(MAC) has not supported Leopard for several months now.
110415        This change removes about 1/3 of the remaining BUILDING_ON_LEOPARD
110416        uses in the PLATFORM(MAC) codepaths.  PLATFORM(CHROMIUM) still
110417        supports BUILDING_ON_LEOPARD for now.
110418
110419        * WebCore.exp.in:
110420        * dom/Document.cpp:
110421        (WebCore::Document::updateRangesAfterChildrenChanged):
110422        (WebCore::Document::nodeChildrenWillBeRemoved):
110423        (WebCore::Document::nodeWillBeRemoved):
110424        (WebCore::Document::textInserted):
110425        (WebCore::Document::textRemoved):
110426        (WebCore::Document::textNodesMerged):
110427        (WebCore::Document::textNodeSplit):
110428        * editing/Editor.cpp:
110429        (WebCore::Editor::respondToChangedSelection):
110430        * editing/TypingCommand.cpp:
110431        (WebCore::TypingCommand::markMisspellingsAfterTyping):
110432        (WebCore::TypingCommand::typingAddedToOpenCommand):
110433        * editing/mac/EditorMac.mm:
110434        (WebCore::Editor::pasteWithPasteboard):
110435        * loader/EmptyClients.h:
110436        (EmptyEditorClient):
110437        * page/ContextMenuController.cpp:
110438        (WebCore::ContextMenuController::contextMenuItemSelected):
110439        (WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu):
110440        (WebCore):
110441        (WebCore::ContextMenuController::populate):
110442        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
110443        * page/EditorClient.h:
110444        (EditorClient):
110445        * platform/LocalizedStrings.cpp:
110446        (WebCore::contextMenuItemTagSearchWeb):
110447        * platform/MemoryPressureHandler.cpp:
110448        (WebCore):
110449        * platform/SuddenTermination.h:
110450        (WebCore):
110451        * platform/graphics/ca/GraphicsLayerCA.cpp:
110452        (WebCore::GraphicsLayerCA::updateContentsImage):
110453        (WebCore::GraphicsLayerCA::constrainedSize):
110454        * platform/graphics/ca/PlatformCALayer.h:
110455        (PlatformCALayer):
110456        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
110457        (fromCAValueFunctionType):
110458        (PlatformCAAnimation::valueFunction):
110459        (PlatformCAAnimation::setValueFunction):
110460        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
110461        (toCAFilterType):
110462        (PlatformCALayer::anchorPoint):
110463        (PlatformCALayer::setAnchorPoint):
110464        (PlatformCALayer::contentsTransform):
110465        (PlatformCALayer::setContentsTransform):
110466        (PlatformCALayer::isGeometryFlipped):
110467        (PlatformCALayer::setGeometryFlipped):
110468        (PlatformCALayer::acceleratesDrawing):
110469        (PlatformCALayer::setAcceleratesDrawing):
110470        (PlatformCALayer::setMinificationFilter):
110471        (PlatformCALayer::setMagnificationFilter):
110472        (PlatformCALayer::contentsScale):
110473        (PlatformCALayer::setContentsScale):
110474        * platform/graphics/ca/mac/TileCache.mm:
110475        (WebCore::TileCache::setScale):
110476        (WebCore::TileCache::setAcceleratesDrawing):
110477        (WebCore::TileCache::createTileLayer):
110478
1104792012-06-29  Kwang Yul Seo  <skyul@company100.net>
110480
110481        Use StringBuilder in SegmentedString::toString()
110482        https://bugs.webkit.org/show_bug.cgi?id=90247
110483
110484        Reviewed by Adam Barth.
110485
110486        Use a StringBuilder instead of String concatenation because StringBuilder is generally faster.
110487        No new tests. Covered by existing tests.
110488
110489        * platform/text/SegmentedString.cpp:
110490        (WebCore::SegmentedString::toString):
110491        * platform/text/SegmentedString.h:
110492        (WebCore::SegmentedSubstring::appendTo):
110493
1104942012-06-28  Ryosuke Niwa  <rniwa@webkit.org>
110495
110496        Mac build fix after r121518.
110497
110498        * WebCore.exp.in:
110499
1105002012-06-28  Ryosuke Niwa  <rniwa@webkit.org>
110501
110502        DOMHTMLCollection::item may return a wrong element after namedItem is called
110503        https://bugs.webkit.org/show_bug.cgi?id=90240
110504
110505        Reviewed by Antti Koivisto.
110506
110507        The bug was caused by namedItem updating m_cache.current without updating m_cache.position.
110508        Fixed the bug by updating both. This is similar to the bug I fixed in r121478.
110509
110510        WebKit API Test: WebKit1.HTMLCollectionNamedItemTest
110511
110512        * html/HTMLCollection.cpp:
110513        (WebCore::HTMLCollection::namedItem):
110514
1105152012-06-28  Kentaro Hara  <haraken@chromium.org>
110516
110517        Change argument types of Element::getAttribute*() from String to AtomicString
110518        https://bugs.webkit.org/show_bug.cgi?id=90246
110519
110520        Reviewed by Ryosuke Niwa.
110521
110522        This is a follow-up patch for r121439. r121439 changed an argument type of
110523        Element::getAttribute() from String to AtomicString, which optimized
110524        performance of Dromaeo/dom-attr.html. This patch changes other argument types
110525        of Element::getAttribute*() from String to AtomicString. See the ChangeLog in
110526        http://trac.webkit.org/changeset/121439 for more details about why this change
110527        optimizes performance.
110528
110529        No tests. No change in behavior.
110530
110531        * dom/DatasetDOMStringMap.cpp:
110532        (WebCore::convertPropertyNameToAttributeName):
110533        * dom/Element.cpp:
110534        (WebCore::Element::getAttributeNS):
110535        (WebCore::Element::removeAttribute):
110536        (WebCore::Element::removeAttributeNS):
110537        (WebCore::Element::getAttributeNode):
110538        (WebCore::Element::getAttributeNodeNS):
110539        (WebCore::Element::hasAttribute):
110540        (WebCore::Element::hasAttributeNS):
110541        * dom/Element.h:
110542        (Element):
110543        * dom/ElementAttributeData.cpp:
110544        (WebCore::ElementAttributeData::getAttributeNode):
110545        * dom/ElementAttributeData.h:
110546        (ElementAttributeData):
110547
1105482012-06-28  Kent Tamura  <tkent@chromium.org>
110549
110550        REGRESSION(r106388): Form hidden element values being restored
110551        incorrectly for dynamically generated content
110552        https://bugs.webkit.org/show_bug.cgi?id=88685
110553
110554        Reviewed by Hajime Morita.
110555
110556        We should not save value attribute updated during parsing.
110557
110558        Test: fast/forms/state-restore-to-non-edited-controls.html
110559
110560        * html/HTMLInputElement.cpp:
110561        (WebCore::HTMLInputElement::HTMLInputElement):
110562        Initialize m_valueAttributeWasUpdatedAfterParsing.
110563        (WebCore::HTMLInputElement::parseAttribute):
110564        Set true to m_valueAttributeWasUpdatedAfterParsing if value
110565        attribute is updated and it's not in parsing.
110566        * html/HTMLInputElement.h:
110567        (WebCore::HTMLInputElement::valueAttributeWasUpdatedAfterParsing):
110568        Added for HiddenInputType.
110569        * html/HiddenInputType.cpp:
110570        (WebCore::HiddenInputType::saveFormControlState):
110571        Save the value only if valueAttributeWasUpdatedAfterParsing() is true.
110572
1105732012-06-28  MORITA Hajime  <morrita@google.com>
110574
110575        [Refactoring] NodeRenderingContext ctor could be built on top of the ComposedShadowTreeWalker
110576        https://bugs.webkit.org/show_bug.cgi?id=89732
110577
110578        Reviewed by Dimitri Glazkov.
110579
110580        The constructor of NodeRenderingContext implements almost same
110581        logic as ComposedShadowTreeWalker::parent().  This change
110582        eliminates the duplication by employing ComposedShadowTreeWalker in the constructor.
110583
110584        ComposedShadowTreeWalker has same difference from
110585        NodeRenderingContext though. So this change also extends
110586        ComposedShadowTreeWalker to support these missing pieces, which
110587        are encapsulated in newly introduced ParentTranversalDetails
110588        class where:
110589
110590        - not only the parent, but also the insertion point of the child is returned,
110591        - resetStyleInheritance from the child-parent traversal is computed and
110592        - if the starting point is out of the composition, it returns null as a parent.
110593
110594        This change also inlines some ComposedShadowTreeWalker methods for speed.
110595
110596        No new tests. Covered by existing tests.
110597
110598        * WebCore.exp.in:
110599        * dom/ComposedShadowTreeWalker.cpp:
110600        (WebCore::shadowOfParent):
110601        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::didTraverseInsertionPoint):
110602        (WebCore):
110603        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::didTraverseShadowRoot):
110604        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::didFindNode):
110605        (WebCore::ComposedShadowTreeWalker::findParent):
110606        (WebCore::ComposedShadowTreeWalker::escapeFallbackContentElement):
110607        (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
110608        (WebCore::ComposedShadowTreeWalker::traverseParent):
110609        (WebCore::ComposedShadowTreeWalker::traverseParentInCurrentTree):
110610        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
110611        * dom/ComposedShadowTreeWalker.h:
110612        (ParentTranversalDetails):
110613        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::ParentTranversalDetails):
110614        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::node):
110615        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::insertionPoint):
110616        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::resetStyleInheritance):
110617        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::outOfComposition):
110618        (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::childWasOutOfComposition):
110619        (ComposedShadowTreeWalker):
110620        (WebCore::ComposedShadowTreeWalker::ComposedShadowTreeWalker):
110621        (WebCore):
110622        * dom/NodeRenderingContext.cpp:
110623        (WebCore::NodeRenderingContext::NodeRenderingContext):
110624        (WebCore::NodeRenderingContext::nextRenderer):
110625        (WebCore::NodeRenderingContext::previousRenderer):
110626        (WebCore::NodeRenderingContext::parentRenderer):
110627        (WebCore::NodeRenderingContext::shouldCreateRenderer):
110628        (WebCore::NodeRenderingContext::isOnEncapsulationBoundary):
110629        * dom/NodeRenderingContext.h:
110630        (NodeRenderingContext):
110631        (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
110632        (WebCore::NodeRenderingContext::resetStyleInheritance):
110633        (WebCore::NodeRenderingContext::insertionPoint):
110634
1106352012-06-28  Stephen White  <senorblanco@chromium.org>
110636
110637        Implement filter url() function.
110638        https://bugs.webkit.org/show_bug.cgi?id=72443
110639
110640        url() references can be internal, in which case the DOM nodes are
110641        retrieved directly from the current document, or external, in which
110642        case a CachedSVGDocument request is made, and the filter node build is
110643        deferred until the document is loaded.  WebKitSVGDocumentValue
110644        holds the CachedSVGDocument (if any) and the URL as a CSSValue,
110645        and is stored in the CSSValue chain as the argument to the reference
110646        filter.
110647
110648        One notable difference between internal and external references is
110649        that internal references will automatically update on an SVG filter node
110650        attribute change, while external references will not, since they live
110651        in a separate document.  This is consistent with the Mozilla
110652        implementation.  In order to make this work, the RenderLayer is made a
110653        client of the RenderSVGResourceContainer, and calls
110654        filterNeedsRepaint() when the SVG nodes are invalidated.
110655
110656        Some plumbing:  The CSS StyleResolver was refactored to load all
110657        all external resources (images, shaders and (now) SVG filters) in a
110658        single function, loadPendingResources().  The PlatformLayer typedef
110659        was moved out into its own file, in order to break a cyclic
110660        dependency.  SVGFilterBuilder was modified to accept the SourceGraphic
110661        and SourceAlpha FilterEffects in its constructor and factory function,
110662        rather than extracting them from the parent Filter.  (This is necessary
110663        so that the url() filter can correctly hook up its inputs from
110664        previous CSS filters.)
110665
110666        Reviewed by Dean Jackson.
110667
110668        Tests: css3/filters/effect-reference-external.html
110669               css3/filters/effect-reference-hw.html
110670               css3/filters/effect-reference-ordering.html
110671               css3/filters/effect-reference.html
110672
110673        * CMakeLists.txt:
110674        * GNUmakefile.list.am:
110675        * Target.pri:
110676        * WebCore.gypi:
110677        * WebCore.vcproj/WebCore.vcproj:
110678        * WebCore.xcodeproj/project.pbxproj:
110679        Add WebKitCSSSVGDocumentValue to the various build files.
110680        * css/CSSComputedStyleDeclaration.cpp:
110681        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
110682        Use the reference filter's url when getting the computed style for
110683        a reference filter.
110684        * css/CSSParser.cpp:
110685        (WebCore::CSSParser::parseFilter):
110686        Create the referenceFilterValue's argument as a
110687        WebKitCSSSVGDocumentValue instead of a CSS string.
110688        * css/CSSValue.cpp:
110689        (WebCore::CSSValue::cssText):
110690        Add support for WebKitCSSSVGDocumentValue.
110691        (WebCore::CSSValue::destroy):
110692        Add support for WebKitCSSSVGDocumentValue.
110693        * css/CSSValue.h:
110694        (WebCore::CSSValue::isWebKitCSSSVGDocumentValue):
110695        Add support for WebKitCSSSVGDocumentValue.
110696        * css/StyleResolver.cpp:
110697        (WebCore::StyleResolver::collectMatchingRulesForList):
110698        Keep track of pending SVG document references, and load them when
110699        necessary.
110700        * css/StyleResolver.h:
110701        * css/WebKitCSSSVGDocumentValue.cpp: Added.
110702        New CSSValue subclass for holding SVG document references.
110703        (WebCore::WebKitCSSSVGDocumentValue::WebKitCSSSVGDocumentValue):
110704        (WebCore::WebKitCSSSVGDocumentValue::~WebKitCSSSVGDocumentValue):
110705        (WebCore::WebKitCSSSVGDocumentValue::load):
110706        (WebCore::WebKitCSSSVGDocumentValue::customCssText):
110707        * css/WebKitCSSSVGDocumentValue.h: Added.
110708        (WebCore::WebKitCSSSVGDocumentValue::create):
110709        (WebCore::WebKitCSSSVGDocumentValue::cachedSVGDocument):
110710        (WebCore::WebKitCSSSVGDocumentValue::url):
110711        (WebCore::WebKitCSSSVGDocumentValue::loadRequested):
110712        * platform/graphics/GraphicsLayer.h:
110713        Refactor PlatformLayer out into its own file, to avoid circular
110714        includes.
110715        * platform/graphics/ImageBuffer.h:
110716        Include PlatformLayer.h instead of GraphicsLayer.h.
110717        * platform/graphics/PlatformLayer.h: Added.
110718        Refactor PlatformLayer out into its own file, to avoid circular
110719        includes.
110720        * platform/graphics/filters/FilterOperation.h:
110721        (WebCore::ReferenceFilterOperation::create):
110722        (WebCore::ReferenceFilterOperation::clone):
110723        (WebCore::ReferenceFilterOperation::url):
110724        (WebCore::ReferenceFilterOperation::fragment):
110725        (ReferenceFilterOperation):
110726        (WebCore::ReferenceFilterOperation::data):
110727        (WebCore::ReferenceFilterOperation::setData):
110728        (WebCore::ReferenceFilterOperation::operator==):
110729        (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
110730        Augment ReferenceFilterOperation to maintain a data pointer,
110731        in order to preserve context while loading external SVG documents.
110732        Replace "reference" with "url" and "fragment" members, in order to
110733        ease retrieval of the appropriate DOM objects.
110734        * platform/graphics/filters/FilterOperations.cpp:
110735        (WebCore::FilterOperations::hasReferenceFilter):
110736        Convenience function for finding reference filters.
110737        * platform/graphics/filters/FilterOperations.h:
110738        (FilterOperations):
110739        * platform/mac/ScrollbarThemeMac.mm:
110740        Include GraphicsLayer.h explicitly, since ImageBuffer.h no longer
110741        includes it (and only includes PlatformLayer.h).
110742        * rendering/FilterEffectRenderer.cpp:
110743        (WebCore::FilterEffectRenderer::buildReferenceFilter):
110744        Utility function to build a FilterEffect node graph for a
110745        ReferenceFilterOperation.
110746        (WebCore::FilterEffectRenderer::build):
110747        Call the above builder function for ReferenceFilterOperations.
110748        * rendering/FilterEffectRenderer.h:
110749        * rendering/RenderLayer.cpp:
110750        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
110751        If we have reference filters, update them along with other filters.
110752        (WebCore::RenderLayer::filterNeedsRepaint):
110753        * rendering/RenderLayerFilterInfo.cpp:
110754        (WebCore::RenderLayerFilterInfo::~RenderLayerFilterInfo):
110755        (WebCore::RenderLayerFilterInfo::notifyFinished):
110756        Implement callback function when external SVGDocuments are loaded.
110757        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
110758        Add the FilterInfo as a client to be called when SVGDocuments are
110759        loaded.
110760        (WebCore::RenderLayerFilterInfo::removeReferenceFilterClients):
110761        Remove this from the list of notified clients.
110762        * rendering/RenderLayerFilterInfo.h:
110763        Add new member vars for tracking internal and external SVG
110764        references, so we can remove ourselves as a client when done.
110765        * rendering/svg/RenderSVGResourceContainer.cpp:
110766        (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
110767        When marking client DOM nodes for repaint, also mark any RenderLayers
110768        referring to this DOM tree via filters as needing repaint.
110769        (WebCore::RenderSVGResourceContainer::addClientRenderLayer):
110770        (WebCore::RenderSVGResourceContainer::removeClientRenderLayer):
110771        * rendering/svg/RenderSVGResourceContainer.h:
110772        Maintain a list of RenderLayer clients on each SVG resource container,
110773        and turn SVG DOM repaint notifications into filter repaint (CSS)
110774        notifications.
110775        * rendering/svg/RenderSVGResourceFilter.cpp:
110776        (WebCore::RenderSVGResourceFilter::buildPrimitives):
110777        Construct a SourceGraphic and SourceAlpha node explicitly for the
110778        SVG builder case.
110779        * svg/graphics/filters/SVGFilterBuilder.cpp:
110780        (WebCore::SVGFilterBuilder::SVGFilterBuilder):
110781        * svg/graphics/filters/SVGFilterBuilder.h:
110782        (WebCore::SVGFilterBuilder::create):
110783        Add the SourceGraphic and SourceAlpha as parameters to the constructor
110784        and create() methods, so they can be supplied by the caller.
110785
1107862012-06-28  Kenichi Ishibashi  <bashi@chromium.org>
110787
110788        [Chromium] CTFontCopyTable of MacOSX10.5 SDK doesn't work for layout tables
110789        https://bugs.webkit.org/show_bug.cgi?id=90235
110790
110791        Reviewed by Kent Tamura.
110792
110793        Use CGFontCopyTableForTag instead.
110794
110795        No new tests. css3/font-feature-settings-rendering.html should pass. I'll rebase expectations once bots get the result.
110796
110797        * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp:
110798        (WebCore::harfbuzzCoreTextGetTable):
110799
1108002012-06-28  Philip Rogers  <pdr@google.com>
110801
110802        Add preventative assert in SVGTRefElement
110803        https://bugs.webkit.org/show_bug.cgi?id=90203
110804
110805        Reviewed by Abhishek Arya.
110806
110807        SVGTRefElement::detachTarget() adds a pending resource via addPendingResource.
110808        Due to some recent bugs in this area, an assert is being added to prevent
110809        users from calling detachTarget when not in a document. Doing
110810        so would create a bug such as in WK90042.
110811
110812        This assert will not fire currently because detachTarget is only called after
110813        a DOMNodeRemovedFromDocumentEvent event fires, which only comes from
110814        dispatchChildRemovalEvents when the node is in a document.
110815
110816        * svg/SVGTRefElement.cpp:
110817        (WebCore::SVGTRefElement::detachTarget):
110818
1108192012-06-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
110820
110821        [Qt] Remove unnecessary AffineTransform calls
110822        https://bugs.webkit.org/show_bug.cgi?id=90178
110823
110824        Reviewed by Noam Rosenthal.
110825
110826        Qt currently ignores the const AffineTransform& parameter on
110827        Pattern::createPlatformPattern, so removing it from all its Qt calls and
110828        changing the function signature if platform is Qt.
110829
110830        * platform/graphics/Pattern.h:
110831        (Pattern):
110832        * platform/graphics/qt/FontQt.cpp:
110833        (WebCore::fillPenForContext):
110834        (WebCore::strokePenForContext):
110835        * platform/graphics/qt/FontQt4.cpp:
110836        (WebCore::fillPenForContext):
110837        (WebCore::strokePenForContext):
110838        * platform/graphics/qt/GraphicsContextQt.cpp:
110839        (WebCore::GraphicsContext::fillPath):
110840        (WebCore::GraphicsContext::strokePath):
110841        (WebCore::drawRepeatPattern):
110842        * platform/graphics/qt/PatternQt.cpp:
110843        (WebCore::Pattern::createPlatformPattern):
110844
1108452012-06-28  No'am Rosenthal  <noam.rosenthal@nokia.com>
110846
110847        [Qt] When uploading an opaque image to a texture for TextureMapper, unnecessary alpha operations take place
110848        https://bugs.webkit.org/show_bug.cgi?id=90229
110849
110850        Reviewed by Luiz Agostini.
110851
110852        For opaque web content in WebKit2, we use the RGB32 image format. When we special-case
110853        it in GraphicsContext3DQt, we can avoid any alpha operations and perform a regular copy.
110854
110855        Covered existing API tests, as this code path is always used when rendering.
110856
110857        * platform/graphics/qt/GraphicsContext3DQt.cpp:
110858        (WebCore::GraphicsContext3D::getImageData):
110859
1108602012-06-28  James Robinson  <jamesr@chromium.org>
110861
110862        [chromium] Compile chromium compositor implementation files into separate .lib
110863        https://bugs.webkit.org/show_bug.cgi?id=90233
110864
110865        Reviewed by Adam Barth.
110866
110867        * WebCore.gyp/WebCore.gyp:
110868
1108692012-06-28  Erik Arvidsson  <arv@chromium.org>
110870
110871        [V8] NodeList wrappers are not kept alive as needed
110872        https://bugs.webkit.org/show_bug.cgi?id=90194
110873
110874        Reviewed by Ojan Vafai.
110875
110876        We need to add custom reachability code for DynamicNodeLists. If the owner of
110877        a DynamicNodeList is reachable then the DynamicNodeList must also be reachable.
110878
110879        Test: fast/dom/NodeList/nodelist-reachable.html
110880
110881        * bindings/v8/custom/V8NodeListCustom.cpp:
110882        (WebCore::V8NodeList::visitDOMWrapper): AddImplicitReferences from the owner wrapper.
110883        (WebCore):
110884        * dom/NodeList.idl:
110885
1108862012-06-28  Elliott Sprehn  <esprehn@gmail.com>
110887
110888        frameborder="no" on frameset is ignored if border attribute set
110889        https://bugs.webkit.org/show_bug.cgi?id=17767
110890
110891        Reviewed by Tony Chang.
110892
110893        Fixes <frameset> frameborder and border handling. Previously we'd
110894        override the frameborder=no setting if border was set. We also
110895        treated frameborder="anything" the same as frameborder=0 since we
110896        we just converted it to a number so frameborder=yes was incorrectly
110897        treated the same as frameborder=no.
110898
110899        Tests: fast/frames/frameset-frameborder-boolean-values.html
110900               fast/frames/frameset-frameborder-inheritance.html
110901               fast/frames/frameset-frameborder-overrides-border.html
110902
110903        * html/HTMLFrameSetElement.cpp: Proper parsing of yes,no,1,0 values.
110904        (WebCore::HTMLFrameSetElement::parseAttribute):
110905        * html/HTMLFrameSetElement.h:
110906        (WebCore::HTMLFrameSetElement::border): Border should be 0 if frameborder=no.
110907
1109082012-06-28  Joshua Bell  <jsbell@chromium.org>
110909
110910        IndexedDB: Implement IDBTransaction internal active flag
110911        https://bugs.webkit.org/show_bug.cgi?id=89379
110912
110913        Reviewed by Tony Chang.
110914
110915        IDB transactions should only be "active" during IDB success/error callbacks;
110916        attempts to make new requests otherwise (e.g. in a setTimeout callback)
110917        should fail even if the transaction has not yet finished. Implement this logic,
110918        and the closely related requirement that transactions are deactivated when
110919        the context they were created in returns to the event loop, and finally that
110920        when so deactivated they should commit rather than abort (as previously
110921        implemented) if no requests have been filed.
110922
110923        Tests: storage/indexeddb/transaction-active-flag.html
110924               storage/indexeddb/transaction-complete-with-js-recursion-cross-frame.html
110925               storage/indexeddb/transaction-complete-with-js-recursion.html
110926               storage/indexeddb/transaction-complete-workers.html
110927
110928        * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: Simplify API.
110929        (WebCore::transactions):
110930        (WebCore::IDBPendingTransactionMonitor::addNewTransaction):
110931        (WebCore::IDBPendingTransactionMonitor::deactivateNewTransactions):
110932        * Modules/indexeddb/IDBPendingTransactionMonitor.h:
110933        (WebCore):
110934        (IDBPendingTransactionMonitor):
110935        * Modules/indexeddb/IDBRequest.cpp: Unregisters from transaction when done,
110936        not on destruction. No longer responsible for working with the pending monitor.
110937        (WebCore::IDBRequest::IDBRequest):
110938        (WebCore::IDBRequest::~IDBRequest):
110939        (WebCore::IDBRequest::markEarlyDeath):
110940        (WebCore::IDBRequest::resetReadyState):
110941        (WebCore::IDBRequest::onSuccess):
110942        (WebCore::IDBRequest::dispatchEvent): Set active flag on transaction during callback.
110943        * Modules/indexeddb/IDBTransaction.cpp: Use state enum to better track lifecycle, and
110944        take ownership of relationship with pending monitor.
110945        (WebCore::IDBTransaction::IDBTransaction): Special cases for version change
110946        transactions.
110947        (WebCore::IDBTransaction::~IDBTransaction):
110948        (WebCore::IDBTransaction::error):
110949        (WebCore::IDBTransaction::setError):
110950        (WebCore::IDBTransaction::objectStore):
110951        (WebCore::IDBTransaction::objectStoreCreated):
110952        (WebCore::IDBTransaction::objectStoreDeleted):
110953        (WebCore::IDBTransaction::setActive): Let IDBRequest and IDBPendingTransactionMonitor
110954        toggle the active state. Needs some smarts because (1) state may move to Finishing during
110955        the request's dispatch phase due to an implicit/explicit abort, and (2) a monitor call
110956        will only trigger a commit if the transaction hasn't had any requests filed.
110957        (WebCore):
110958        (WebCore::IDBTransaction::abort):
110959        (WebCore::IDBTransaction::registerRequest):
110960        (WebCore::IDBTransaction::unregisterRequest):
110961        (WebCore::IDBTransaction::onAbort):
110962        (WebCore::IDBTransaction::onComplete):
110963        (WebCore::IDBTransaction::hasPendingActivity):
110964        (WebCore::IDBTransaction::dispatchEvent):
110965        (WebCore::IDBTransaction::canSuspend):
110966        (WebCore::IDBTransaction::enqueueEvent):
110967        * Modules/indexeddb/IDBTransaction.h:
110968        (WebCore::IDBTransaction::isFinished):
110969        (IDBTransaction):
110970        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
110971        (WebCore::IDBTransactionBackendImpl::commit): Allow explicit commit() calls from the front end
110972        if no requests have been filed.
110973        * Modules/indexeddb/IDBTransactionBackendInterface.h:
110974        (IDBTransactionBackendInterface): Expose commit() method.
110975        * bindings/js/JSMainThreadExecState.cpp:
110976        (WebCore::JSMainThreadExecState::didLeaveScriptContext): Change target function name.
110977        * bindings/v8/V8RecursionScope.cpp:
110978        (WebCore::V8RecursionScope::didLeaveScriptContext): Change target function name.
110979
1109802012-06-28  Philip Rogers  <pdr@google.com>
110981
110982        Prevent crash in animate resource handling
110983        https://bugs.webkit.org/show_bug.cgi?id=90042
110984
110985        Reviewed by Abhishek Arya.
110986
110987        This patch adds a check that we are in a document before registering animation
110988        resources and creating a target element in SVGSMILElement. This prevents a crash where
110989        we would register resources and create the target when we were not in a document
110990        but fail to deregister / reset the target when we were removed from a document.
110991        In failing to reset the target, we can crash when trying to deregister resources that
110992        were not created after being inserted into a document and then removed.
110993
110994        The existence of m_targetResources and registered animation resources is now
110995        tied to being in a document.
110996
110997        Test: svg/custom/animate-reference-crash.html
110998
110999        * svg/animation/SVGSMILElement.cpp:
111000        (WebCore::SVGSMILElement::targetElement):
111001
1110022012-06-28  Joshua Bell  <jsbell@chromium.org>
111003
111004        IndexedDB: IDBDatabase should have a close pending field.
111005        https://bugs.webkit.org/show_bug.cgi?id=71129
111006
111007        Reviewed by Tony Chang.
111008
111009        Handle the IDB spec case that "versionchange" events should not be fired 
111010        against connections that have the internal "closePending" flag set but 
111011        are not yet closed due to running transactions.
111012
111013        Test: storage/indexeddb/database-closepending-flag.html
111014
111015        * Modules/indexeddb/IDBDatabase.cpp:
111016        (WebCore::IDBDatabase::onVersionChange):
111017
1110182012-06-28  Adrienne Walker  <enne@google.com>
111019
111020        [chromium] Split WebScrollbar into WebPluginScrollbar and WebScrollbar
111021        https://bugs.webkit.org/show_bug.cgi?id=90117
111022
111023        Reviewed by James Robinson.
111024
111025        Make WebCore also depend on Platform.
111026
111027        * WebCore.gyp/WebCore.gyp:
111028
1110292012-06-28  Hayato Ito  <hayato@chromium.org>
111030
111031        CompositeShadowTreeWalker should use InsertionPoint::hasDistribution() instead of InsertionPoint::isActive().
111032        https://bugs.webkit.org/show_bug.cgi?id=89177
111033
111034        Reviewed by Dimitri Glazkov.
111035
111036        Prevents ComposedShadowTreeWalker from escaping out of an
111037        insertion point (which has distributed nodes) from a non-used
111038        fallback element in the insertion point.  Such a fallback element
111039        should be treated as in an orphaned subtree.
111040
111041        ComposedShadowTreeParentWalker will be also fixed in a follow-up patch.
111042
111043        Test: fast/dom/shadow/composed-shadow-tree-walker.html
111044
111045        * dom/ComposedShadowTreeWalker.cpp:
111046        (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
111047
1110482012-06-27  Ryosuke Niwa  <rniwa@webkit.org>
111049
111050        Cleanup HTMLFormCollection
111051        https://bugs.webkit.org/show_bug.cgi?id=90111
111052
111053        Reviewed by Andreas Kling.
111054
111055        Got rid of getNamedItem and renamed getNamedFormItem to firstNamedItem and got rid of duplicateNumber argument since
111056        it's always 0. Also made it a static local function. In addition, removed nextItem() since it's not used anywhere.
111057
111058        WebKit API Test: WebKit1.HTMLFormCollectionNamedItemTest
111059
111060        * html/HTMLFormCollection.cpp:
111061        (WebCore::firstNamedItem):
111062        (WebCore):
111063        (WebCore::HTMLFormCollection::namedItem):
111064        * html/HTMLFormCollection.h:
111065        (HTMLFormCollection):
111066
1110672012-06-28  Alec Flett  <alecflett@chromium.org>
111068
111069        IndexedDB: Hook up render-side key ASSERTing for get()
111070        https://bugs.webkit.org/show_bug.cgi?id=90001
111071
111072        Reviewed by Tony Chang.
111073
111074        Hook up the new onSuccess and add it to the interface. For now,
111075        simply assert that the right value is set. Add the same assertion
111076        logic in the value-construction logic when the cursor advances.
111077
111078        No new tests, existing tests verify this refactor is correct.
111079
111080        * Modules/indexeddb/IDBCallbacks.h:
111081        (IDBCallbacks):
111082        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
111083        (WebCore::IDBObjectStoreBackendImpl::getInternal):
111084        * Modules/indexeddb/IDBRequest.cpp:
111085        (WebCore):
111086        (WebCore::IDBRequest::onSuccess):
111087        * Modules/indexeddb/IDBRequest.h:
111088        * bindings/v8/IDBBindingUtilities.cpp:
111089        (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
111090        * inspector/InspectorIndexedDBAgent.cpp:
111091        (WebCore):
111092
1110932012-06-28  Gregg Tavares  <gman@google.com>
111094
111095        Add support for DEPTH_STENCIL to WEBGL_depth_texture
111096        https://bugs.webkit.org/show_bug.cgi?id=90109
111097
111098        Reviewed by Kenneth Russell.
111099
111100        * html/canvas/WebGLDepthTexture.idl:
111101        * html/canvas/WebGLFramebuffer.cpp:
111102        * html/canvas/WebGLRenderingContext.cpp:
111103        (WebCore):
111104        (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
111105
1111062012-06-28  James Robinson  <jamesr@chromium.org>
111107
111108        [chromium] Move chromium compositor implementation files into separate section in WebCore.gypi
111109        https://bugs.webkit.org/show_bug.cgi?id=90201
111110
111111        Reviewed by Adam Barth.
111112
111113        This moves the chromium compositor implementation files to a separate gyp variable to make future changes
111114        easier. The files still all link into webcore_platform.lib, as before.
111115
111116        * WebCore.gyp/WebCore.gyp:
111117        * WebCore.gypi:
111118
1111192012-06-28  Christophe Dumez  <christophe.dumez@intel.com>
111120
111121        [EFL] Use Eina_Module API instead of dlopen in PluginPackageEfl
111122        https://bugs.webkit.org/show_bug.cgi?id=89972
111123
111124        Reviewed by Antonio Gomes.
111125
111126        Use convenience helpers in Eina_Module to load plugins instead
111127        of POSIX dlopen().
111128
111129        No new tests, behavior has not changed.
111130
111131        * platform/FileSystem.h:
111132        (WebCore):
111133        * platform/efl/FileSystemEfl.cpp:
111134        (WebCore::unloadModule):
111135        * plugins/efl/PluginPackageEfl.cpp:
111136        (WebCore::PluginPackage::load):
111137
1111382012-06-28  Jocelyn Turcotte  <turcotte.j@gmail.com>
111139
111140        [Qt] Fix TextureMapper rendering of GraphicsSurface on Mac
111141        https://bugs.webkit.org/show_bug.cgi?id=90154
111142
111143        Reviewed by Noam Rosenthal.
111144
111145        Fix a regression introduced in r120608.
111146        texture2DRect takes texel coordinates, unlike texture2D which needs normalized coordinates.
111147
111148        Pass an additional textureSize uniform and multiply it by the normalized coordinates.
111149
111150        * platform/graphics/texmap/TextureMapperGL.cpp:
111151        (WebCore::TextureMapperGL::drawTextureRectangleARB):
111152        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
111153        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
111154        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
111155        * platform/graphics/texmap/TextureMapperShaderManager.h:
111156        (WebCore::TextureMapperShaderProgram::textureSizeLocation):
111157        (TextureMapperShaderProgram):
111158
1111592012-06-28  Simon Fraser  <simon.fraser@apple.com>
111160
111161        Improve compositing logging output
111162        https://bugs.webkit.org/show_bug.cgi?id=90199
111163
111164        Reviewed by Tim Horton (w00t!).
111165
111166        Improve the compositing logging channel output in a few
111167        useful ways:
111168        1. Report memory use, rather than megapixels
111169        2. Show element class names
111170
111171        * platform/graphics/GraphicsLayer.cpp:
111172        (WebCore::GraphicsLayer::backingStoreMemoryEstimate):
111173        * platform/graphics/GraphicsLayer.h:
111174        (GraphicsLayer):
111175        * platform/graphics/ca/GraphicsLayerCA.cpp:
111176        (WebCore::GraphicsLayerCA::backingStoreMemoryEstimate):
111177        * platform/graphics/ca/GraphicsLayerCA.h:
111178        (GraphicsLayerCA):
111179        * rendering/RenderLayerBacking.cpp:
111180        (WebCore::RenderLayerBacking::nameForLayer):
111181        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
111182        * rendering/RenderLayerBacking.h:
111183        (RenderLayerBacking):
111184        * rendering/RenderLayerCompositor.cpp:
111185        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
111186        (WebCore::RenderLayerCompositor::updateCompositingLayers):
111187        (WebCore::RenderLayerCompositor::logLayerInfo):
111188        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
111189        * rendering/RenderLayerCompositor.h:
111190        (RenderLayerCompositor):
111191
1111922012-06-28  James Robinson  <jamesr@chromium.org>
111193
111194        [chromium] Fix up more includes in compositor code
111195        https://bugs.webkit.org/show_bug.cgi?id=90200
111196
111197        Reviewed by Adrienne Walker.
111198
111199        Adds includes we are using and removes ones that we aren't using.
111200
111201        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
111202        * platform/graphics/chromium/ContentLayerChromium.cpp:
111203        * platform/graphics/chromium/ProgramBinding.cpp:
111204        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
111205        * platform/graphics/chromium/cc/CCGraphicsContext.h:
111206        * platform/graphics/chromium/cc/CCRenderSurface.h:
111207        (WebCore):
111208        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
111209
1112102012-06-28  Andrei Onea  <onea@adobe.com>
111211
111212        [CSSRegions]Rename NamedFlow::contentNodes to NamedFlow::getContent()
111213        https://bugs.webkit.org/show_bug.cgi?id=90163
111214
111215        Reviewed by Andreas Kling.
111216
111217        Latest CSS Regions spec defines the NamedFlow interface as having a function named getContent,
111218        rather than an attribute named contentNodes.
111219        http://www.w3.org/TR/css3-regions/#the-namedflow-interface
111220
111221        Test: fast/regions/webkit-named-flow-get-content.html
111222
111223        * dom/WebKitNamedFlow.cpp:
111224        (WebCore::WebKitNamedFlow::getContent):
111225        * dom/WebKitNamedFlow.h:
111226        (WebKitNamedFlow):
111227        * dom/WebKitNamedFlow.idl:
111228
1112292012-06-28  Ryosuke Niwa  <rniwa@webkit.org>
111230
111231        REGRESSION(r121232): named properties on document and window may return wrong object
111232        https://bugs.webkit.org/show_bug.cgi?id=90133
111233
111234        Reviewed by Andreas Kling.
111235
111236        Fixed the bug. Also replaced hasAnyItem by isEmpty (hasAnyItem() is equivalent to !isEmpty()).
111237
111238        Test: fast/dom/HTMLDocument/named-item-multiple-match.html
111239
111240        * bindings/js/JSHTMLDocumentCustom.cpp:
111241        (WebCore::JSHTMLDocument::nameGetter):
111242        * bindings/v8/custom/V8DOMWindowCustom.cpp:
111243        (WebCore::V8DOMWindow::namedPropertyGetter):
111244        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
111245        (WebCore::V8HTMLDocument::GetNamedProperty):
111246        * html/HTMLCollection.h:
111247        (WebCore::HTMLCollection::isEmpty):
111248        (WebCore::HTMLCollection::hasExactlyOneItem):
111249
1112502012-06-28  Zeev Lieber  <zlieber@chromium.org>
111251
111252        [Skia] Computing the resampling mode ignores scale applied to the canvas
111253        https://bugs.webkit.org/show_bug.cgi?id=72073
111254
111255        Reviewed by Stephen White.
111256
111257        Re-basing earlier patch by Daniel Sievers; updated tests.
111258
111259        Take into account canvas scale when computing image resampling mode.
111260
111261        When drawing a bitmap and computing the best resampling mode based
111262        on the requested scale, take into account CSS scale and page scale
111263        that are applied to the canvas. This allows for single-pass scaling
111264        in potentially better quality (RESAMPLE_AWESOME) and also takes
111265        better advantage of the scaled image cache in that codepath.
111266
111267        Existing tests updated to expect different resampling method (and
111268        therefore a different image) whenever canvas scaling changes.
111269
111270        * platform/graphics/skia/ImageSkia.cpp:
111271        (WebCore::paintSkBitmap):
111272
1112732012-06-28  James Robinson  <jamesr@chromium.org>
111274
111275        [chromium] Should schedule a commit when dropping contents textures
111276        https://bugs.webkit.org/show_bug.cgi?id=90031
111277
111278        Reviewed by Adrienne Walker.
111279
111280        If we're dropping contents textures on the impl thread, we need to schedule a commit to pick up new contents at
111281        the next commit opportunity. Also adds some traces to make debugging issues like this easier.
111282
111283        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
111284        (WebCore::CCLayerTreeHostImpl::commitComplete):
111285        (WebCore::CCLayerTreeHostImpl::canDraw):
111286        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
111287        * platform/graphics/chromium/cc/CCScheduler.cpp:
111288        (WebCore::CCScheduler::processScheduledActions):
111289
1112902012-06-28  Antti Koivisto  <antti@apple.com>
111291
111292        Don't malloc RenderGeometryMap steps individually
111293        https://bugs.webkit.org/show_bug.cgi?id=90074
111294
111295        Reviewed by Simon Fraser.
111296
111297        Mallocs and frees for steps under RenderGeometryMap::pus/popMappingsToAncestor can total ~2% of the profile when animating transforms.
111298
111299        * rendering/RenderGeometryMap.cpp:
111300        (WebCore):
111301        (WebCore::RenderGeometryMap::absolutePoint):
111302        (WebCore::RenderGeometryMap::absoluteRect):
111303        (WebCore::RenderGeometryMap::mapToAbsolute):
111304        (WebCore::RenderGeometryMap::push):
111305        (WebCore::RenderGeometryMap::pushView):
111306        (WebCore::RenderGeometryMap::popMappingsToAncestor):
111307        * rendering/RenderGeometryMap.h:
111308        (WebCore):
111309        (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
111310        
111311            Move to header.
111312
111313        (RenderGeometryMapStep):
111314        (RenderGeometryMap):
111315        
111316            Make the step vector hold RenderGeometryMapSteps instead of RenderGeometryMapStep*'s.
111317
111318        (WTF):
111319        
111320            Give RenderGeometryMapSteps SimpleClassVectorTraits. This is needed for dealing with OwnPtr in the struct (and makes it faster too).
111321            The type is simple enought to move by memcpy.
111322
1113232012-06-28  Kalev Lember  <kalevlember@gmail.com>
111324
111325        [GTK] Remove Windows support from plugins/gtk/
111326        https://bugs.webkit.org/show_bug.cgi?id=89501
111327
111328        Reviewed by Martin Robinson.
111329
111330        The GTK+ port now uses plugins/gtk/ on Windows, which leaves
111331        PluginPackageGtk.cpp and PluginViewGtk.cpp solely for XP_UNIX platforms.
111332
111333        * plugins/gtk/PluginPackageGtk.cpp:
111334        (WebCore::PluginPackage::fetchInfo):
111335        (WebCore::webkitgtkXError):
111336        (WebCore::PluginPackage::load):
111337        * plugins/gtk/PluginViewGtk.cpp:
111338        (WebCore::getRootWindow):
111339        (WebCore::PluginView::updatePluginWidget):
111340        (WebCore::PluginView::paint):
111341        (WebCore::PluginView::handleKeyboardEvent):
111342        (WebCore::setXCrossingEventSpecificFields):
111343        (WebCore::PluginView::handleMouseEvent):
111344        (WebCore::PluginView::handleFocusOutEvent):
111345        (WebCore::PluginView::setNPWindowIfNeeded):
111346        (WebCore::PluginView::platformGetValueStatic):
111347        (WebCore::PluginView::platformGetValue):
111348        (WebCore::getPluginDisplay):
111349        (WebCore::getVisualAndColormap):
111350        (WebCore::PluginView::platformStart):
111351        (WebCore::PluginView::platformDestroy):
111352
1113532012-06-28  Simon Fraser  <simon.fraser@apple.com>
111354
111355        Change FrameView::scrollContentsFastPath to use m_fixedObjects
111356        https://bugs.webkit.org/show_bug.cgi?id=90045
111357
111358        Reviewed by James Robinson.
111359        
111360        FrameView now has a hash set of fixed-position objects, so use
111361        that instead of RenderBlock::positionedObjects(); we'll avoid traversing
111362        through absolutely positioned objects, and this will work better for sticky
111363        positioning in future.
111364
111365        No behavior change, so no new tests.
111366
111367        * page/FrameView.cpp:
111368        (WebCore::FrameView::scrollContentsFastPath):
111369
1113702012-06-28  Tony Chang  <tony@chromium.org>
111371
111372        Split flex into flex-grow/flex-shrink/flex-basis
111373        https://bugs.webkit.org/show_bug.cgi?id=86525
111374
111375        Reviewed by Ojan Vafai.
111376
111377        Split flex into 3 separate properties per the spec:
111378        http://dev.w3.org/csswg/css3-flexbox/#flex-components
111379
111380        Tests: css3/flexbox/flex-longhand-parsing.html
111381               css3/flexbox/flex-property-parsing.html: Updated test results.
111382
111383        * css/CSSComputedStyleDeclaration.cpp:
111384        (WebCore): -webkit-flex is no longer enumerable.
111385        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add new css property names and use
111386        getCSSPropertyValuesForShorthandProperties for WebkitFlex. Also sort flex propery names.
111387        * css/CSSParser.cpp:
111388        (WebCore::isValidKeywordPropertyAndValue): Fix indent.
111389        (WebCore::CSSParser::parseValue): Add parsing for new properties and handle -webkit-flex: none.
111390        (WebCore::CSSParser::parseFlex): Switch to new names (positive -> grow, negative -> shrink,
111391        preferred size -> basis) and assign to longhand properties.
111392        * css/CSSParser.h:
111393        * css/CSSProperty.cpp:
111394        (WebCore::CSSProperty::isInheritedProperty): Add new properties.
111395        * css/CSSPropertyNames.in: Add new properties.
111396        * css/StyleBuilder.cpp:
111397        (WebCore::StyleBuilder::StyleBuilder): Delete special handling of applying flex and just use shorthand handlers.
111398        * css/StylePropertySet.cpp:
111399        (WebCore::StylePropertySet::getPropertyValue): Add new shorthand.
111400        (WebCore::StylePropertySet::asText):
111401        * css/StylePropertyShorthand.cpp:
111402        (WebCore::webkitFlexShorthand): Add new shorthand.
111403        (WebCore::shorthandForProperty):
111404        * css/StylePropertyShorthand.h:
111405        * css/StyleResolver.cpp:
111406        (WebCore::StyleResolver::collectMatchingRulesForList): Add to list of properties applied by StyleBuilder.
111407        Handle initial and inherit for flex.
111408
1114092012-06-28  Kalev Lember  <kalevlember@gmail.com>
111410
111411        [GTK][Win]: Fix plugin drawing to an offscreen buffer
111412        https://bugs.webkit.org/show_bug.cgi?id=89499
111413
111414        Reviewed by Brent Fulgham.
111415
111416        Take into account that the GTK+ port draws to a backing store and adjust
111417        the target rectangle calculation accordingly.
111418
111419        * plugins/win/PluginViewWin.cpp:
111420        (WebCore::PluginView::paint):
111421        (WebCore::PluginView::setNPWindowRect):
111422
1114232012-06-28  Kentaro Hara  <haraken@chromium.org>
111424
111425        Optimize Dromaeo/dom-attr.html by speeding up Element::getAttribute()
111426        https://bugs.webkit.org/show_bug.cgi?id=90174
111427
111428        Reviewed by Adam Barth.
111429
111430        This patch improves performance of Dromaeo/dom-attr.html by 4.0%.
111431        The patch improves performance of getAttribute() and JavaScript
111432        property setter for DOM objects (e.g. 'div.foo = 123').
111433        The performance improvement becomes larger, as the number of
111434        attributes defined on the DOM object increases.
111435
111436        Without the patch in Chromium/Linux (runs/s)
111437        7679.4, 7739.7, 7634.0, 7726.4, 7663.9
111438
111439        With the patch in Chromium/Linux (runs/s)
111440        7977.7, 8032.2, 8112.8, 7948.1, 7924.5
111441
111442        This patch just changes a type of 'name' of Element::getAttribute(String& name)
111443        from String& to AtomicString&.
111444
111445        The key observation is that AtomicString(String& x) is faster than
111446        operator==(String& x, AtomicString& y). AtomicString(String& x) calculates
111447        a hash of a given String and adds it to a hash table. The calculation
111448        complexity is O(the length of x). On the other hand,
111449        operator==(String& x, AtomicString& y) compares a String and an AtomicString by
111450        StringImpl::equal(StringImpl*, StringImpl*), the calculation complexity of
111451        which is O(2 * min(the length of x, the length of y)).
111452        In addition, the comparison logic is more complicated than the logic
111453        of calculating the hash. Consequently, AtomicString(String& x) is
111454        faster than operator==(String& x, AtomicString& y).
111455
111456        Keeping that in mind, let's estimate the performance of
111457        Element::getAttribute("class") for <div id="A" lang="B" title="C" class="D" dir="E">.
111458        Here "id", "lang", "title", "class" and "dir" are stored as AtomicStrings
111459        in QualifiedName::localName(). Initially, "class" in Element::getAttribute("class")
111460        is a String.
111461
111462        If we use Element::getAttribute(String& name) (i.e. without the patch),
111463        ElementAttributeData::getAttributeItemIndex() executes four
111464        operator==(String&, AtomicString&) by the time it finds the "class" attribute:
111465
111466        (1) if ("class" == "id")       // operator==(String&, AtomicString&)
111467        (2) if ("class" == "lang")     // operator==(String&, AtomicString&)
111468        (3) if ("class" == "title")    // operator==(String&, AtomicString&)
111469        (4) if ("class" == "class")    // operator==(String&, AtomicString&)
111470
111471        On the other hand, if we use Element::getAttribute(AtomicString& name)
111472        (i.e. with the patch), ElementAttributeData::getAttributeItemIndex()
111473        executes one AtomicString(String&) and four operator==(AtomicString&, AtomicString&)
111474        by the time it finds the "class" attribute:
111475
111476        (1) AtomicString("class")      // AtomicString(String&)
111477        (2) if ("class" == "id")       // operator==(AtomicString&, AtomicString&)
111478        (3) if ("class" == "lang")     // operator==(AtomicString&, AtomicString&)
111479        (4) if ("class" == "title")    // operator==(AtomicString&, AtomicString&)
111480        (5) if ("class" == "class")    // operator==(AtomicString&, AtomicString&)
111481
111482        Considering that the overhead of operator==(AtomicString&, AtomicString&) is close
111483        to 0 since it is just a pointer comparison, the latter approach is faster than
111484        the former approach.
111485
111486        Performance improvement will be large for elements that have multiple attributes,
111487        but it is faster even for elements that have only one attribute.
111488        For exmaple, Dromaeo/dom-attr.html tests getAttribute() for an element that has
111489        only one attribute, the result shows 4.0% improvement.
111490
111491        Another example optimized by this patch is 'div.foo = 123', where foo is not
111492        an attribute of div. In this case, before 123 is set, JavaScript calls back
111493        Element::getAttribute() to check whether 'foo' is defined on div by
111494        scanning all the attributes of div.
111495
111496        No tests. No change in behavior.
111497
111498        * dom/Element.cpp:
111499        (WebCore::Element::getAttribute):
111500        * dom/Element.h:
111501        (Element):
111502        (WebCore::Element::getAttributeItemIndex):
111503        * dom/ElementAttributeData.cpp:
111504        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
111505        * dom/ElementAttributeData.h:
111506        (ElementAttributeData):
111507        (WebCore::ElementAttributeData::getAttributeItem):
111508        (WebCore::ElementAttributeData::getAttributeItemIndex):
111509
1115102012-06-28  Hans Wennborg  <hans@chromium.org>
111511
111512        Speech JavaScript API: Don't dispatch end event after ActiveDOMObject::stop()
111513        https://bugs.webkit.org/show_bug.cgi?id=90176
111514
111515        Reviewed by Adam Barth.
111516
111517        It is probably not safe to dispatch an event on an object that has
111518        been ActiveDOMObject::stop()'ed.
111519
111520        This used to happen in the navigate-away.html test, which I believe
111521        then caused speechgrammar-basics.html (which was typically run
111522        afterwards, by the same worker), to crash flakily. See Bug 89717.
111523
111524        Test: speechgrammar-basics.html should no longer be flaky.
111525
111526        * Modules/speech/SpeechRecognition.cpp:
111527        (WebCore::SpeechRecognition::didEnd):
111528        (WebCore::SpeechRecognition::stop):
111529        (WebCore::SpeechRecognition::SpeechRecognition):
111530        * Modules/speech/SpeechRecognition.h:
111531
1115322012-06-28  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
111533
111534        [GTK] [WK2] Memory leak in ResourceHandleSoup.cpp
111535        https://bugs.webkit.org/show_bug.cgi?id=90168
111536
111537        Reviewed by Martin Robinson.
111538
111539        Fixed a memory leak in WebCoreSynchronousLoader by using adoptGRef
111540        instead of just getting new reference of GMainLoop.
111541
111542        No new tests. No change in behavior.
111543
111544        * platform/network/soup/ResourceHandleSoup.cpp:
111545        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
111546
1115472012-06-27  Dana Jansens  <danakj@chromium.org>
111548
111549        [chromium] Do not multiply bounds by contentsScale in TiledLayerChromium and CanvasLayerTextureUpdater
111550        https://bugs.webkit.org/show_bug.cgi?id=90103
111551
111552        Reviewed by Adrienne Walker.
111553
111554        Non-integer scale factors can scale the bounds of a layer such that
111555        different rounding is applied to the width and height in the content
111556        bounds. We should never multiply bounds by contentsScale in order to
111557        work correctly with non-integer scale factors. Instead, always use the
111558        contentBounds/bounds ratio for width and height independently.
111559
111560        Tests: TiledLayerChromiumTest.nonIntegerContentsScaleIsNotDistortedDuringPaint
111561               TiledLayerChromiumTest.nonIntegerContentsScaleIsNotDistortedDuringInvalidation
111562
111563        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
111564        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
111565        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
111566        (BitmapCanvasLayerTextureUpdater):
111567        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
111568        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
111569        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
111570        (BitmapSkPictureCanvasLayerTextureUpdater):
111571        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
111572        (WebCore::CanvasLayerTextureUpdater::paintContents):
111573        * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
111574        (CanvasLayerTextureUpdater):
111575        * platform/graphics/chromium/LayerTextureUpdater.h:
111576        (WebCore::LayerTextureUpdater::prepareToUpdate):
111577        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
111578        (WebCore::ScrollbarLayerChromium::updatePart):
111579        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
111580        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
111581        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
111582        (SkPictureCanvasLayerTextureUpdater):
111583        * platform/graphics/chromium/TiledLayerChromium.cpp:
111584        (WebCore::TiledLayerChromium::setNeedsDisplayRect):
111585        (WebCore::TiledLayerChromium::updateTiles):
111586
1115872012-06-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
111588
111589        [Qt] Make GC's fill{Rounded}Rect use optimized shadow blur code
111590        https://bugs.webkit.org/show_bug.cgi?id=90082
111591
111592        Reviewed by Noam Rosenthal.
111593
111594        ShadowBlur::drawRectShadow makes use of optimized tiles-based drawPattern, which
111595        is not present when using {begin/end}shadowLayer.
111596
111597        * platform/graphics/qt/GraphicsContextQt.cpp:
111598        (WebCore::GraphicsContext::fillRect):
111599        (WebCore::GraphicsContext::fillRoundedRect):
111600        (WebCore::GraphicsContext::pushTransparencyLayerInternal):
111601
1116022012-06-28  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
111603
111604        Web Inspector: Provide context menu 'Delete all watch expressions.'
111605        https://bugs.webkit.org/show_bug.cgi?id=89735
111606
111607        Reviewed by Yury Semikhatsky.
111608
111609        Added context menu delete and delete all watch expressions.
111610
111611        No new tests required as its a minor UI related change.
111612
111613        * English.lproj/localizedStrings.js:
111614        * inspector/front-end/WatchExpressionsSidebarPane.js:
111615        (WebInspector.WatchExpressionsSection.prototype.updateExpression):
111616        (WebInspector.WatchExpressionsSection.prototype._deleteAllExpressions):
111617        (WebInspector.WatchExpressionsSection.prototype.findAddedTreeElement):
111618        (WebInspector.WatchExpressionTreeElement.prototype.update):
111619        (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
111620        (WebInspector.WatchExpressionTreeElement.prototype._deleteAllButtonClicked):
111621
1116222012-06-28  Christophe Dumez  <christophe.dumez@intel.com>
111623
111624        m_cssVariablesEnabled member is not initialized in Page Settings
111625        https://bugs.webkit.org/show_bug.cgi?id=90147
111626
111627        Reviewed by Simon Hausmann.
111628
111629        Properly initialize the m_cssVariablesEnabled member in Page
111630        Settings.
111631
111632        No new tests, no behavior change.
111633
111634        * page/Settings.cpp:
111635        (WebCore::Settings::Settings):
111636
1116372012-06-28  Balazs Kelemen  <kbalazs@webkit.org>
111638
111639        [Qt] plugin is loaded to the web process via MainResourceLoader::substituteMIMETypeFromPluginDatabase
111640        https://bugs.webkit.org/show_bug.cgi?id=86489
111641
111642        Reviewed by Simon Hausmann.
111643
111644        Removed the substituteMIMETypeFromPluginDatabase quirk from
111645        MainResourceLoader. It would be possible to fix it in a way
111646        that is compatible with WebKit2, but given that it was a Qt
111647        only fix, and that it's not clear that we still need it, and
111648        it's not even work currently, I decided to remove it. At least
111649        it is -1 platform ifdef in common code.
111650
111651        Just removed a non-tested quirk, no test needed.
111652
111653        * loader/MainResourceLoader.cpp:
111654        (WebCore::MainResourceLoader::didReceiveResponse):
111655
1116562012-06-28  Kentaro Hara  <haraken@chromium.org>
111657
111658        [V8] Optimize Integer::New() by caching persistent handles for small integers
111659        https://bugs.webkit.org/show_bug.cgi?id=90043
111660
111661        Reviewed by Adam Barth.
111662
111663        The patch improves performance of Dromaeo/dom-query.html by 3.6%,
111664        and Bindings/scroll-top.html by 17.3%.
111665
111666        The performance results in my Chromium/Linux:
111667
111668        [Dromaeo/dom-query.html]
111669        796310.4 runs/s => 824745.4 runs/s (+3.6%)
111670
111671        [Bindings/scroll-top.html]
111672        204.68 runs/s => 240.15 runs/s (+17.3%)
111673
111674        This patch introduces V8BindingPerIsolateData::IntegerCache (just like
111675        V8BindingPerIsolateData::StringCache) to cache persistent handles
111676        for small integers.
111677
111678        No new tests. No change in behavior.
111679
111680        * bindings/v8/V8Binding.h: Implemented v8Integer() and v8UnsignedInteger(),
111681        which returns cached persistent handles for integers smaller than 64.
111682        (WebCore):
111683        (IntegerCache):
111684        (WebCore::IntegerCache::IntegerCache):
111685        (WebCore::IntegerCache::v8Integer):
111686        (WebCore::IntegerCache::v8UnsignedInteger):
111687        (WebCore::V8BindingPerIsolateData::integerCache):
111688        (V8BindingPerIsolateData):
111689        (WebCore::v8Integer):
111690        (WebCore::v8UnsignedInteger):
111691        * bindings/v8/V8Binding.cpp:
111692        (WebCore):
111693        (WebCore::IntegerCache::createSmallIntegers):
111694        * bindings/v8/WorkerScriptController.cpp:
111695        (~WorkerScriptController): ~V8BindingPerIsolateData() should be called before
111696        isolate->Exit(), since ~V8BindingPerIsolateData() calls V8 APIs that requires
111697        the current isolate.
111698
111699        * bindings/scripts/CodeGeneratorV8.pm: Replaced Integer::New() and Integer::NewFromUnsigned()
111700        with v8Integer() and v8UnsignedInteger().
111701        (GenerateNormalAttrGetter):
111702        (NativeToJSValue):
111703
111704        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: Updated run-bindings-tests results.
111705        (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetter):
111706        * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
111707        (WebCore::TestObjV8Internal::readOnlyIntAttrAttrGetter):
111708        (WebCore::TestObjV8Internal::shortAttrAttrGetter):
111709        (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetter):
111710        (WebCore::TestObjV8Internal::intAttrAttrGetter):
111711        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetter):
111712        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetter):
111713        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetter):
111714        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetter):
111715        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetter):
111716        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetter):
111717        (WebCore::TestObjV8Internal::conditionalAttr1AttrGetter):
111718        (WebCore::TestObjV8Internal::conditionalAttr2AttrGetter):
111719        (WebCore::TestObjV8Internal::conditionalAttr3AttrGetter):
111720        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetter):
111721        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetter):
111722        (WebCore::TestObjV8Internal::enabledAtContextAttr1AttrGetter):
111723        (WebCore::TestObjV8Internal::enabledAtContextAttr2AttrGetter):
111724        (WebCore::TestObjV8Internal::strawberryAttrGetter):
111725        (WebCore::TestObjV8Internal::descriptionAttrGetter):
111726        (WebCore::TestObjV8Internal::idAttrGetter):
111727        (WebCore::TestObjV8Internal::intMethodCallback):
111728        (WebCore::TestObjV8Internal::intMethodWithArgsCallback):
111729        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
111730        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: Ditto.
111731        (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetter):
111732
1117332012-06-28  Kent Tamura  <tkent@chromium.org>
111734
111735        Classify form control states by their owner forms
111736        https://bugs.webkit.org/show_bug.cgi?id=89950
111737
111738        Reviewed by Hajime Morita.
111739
111740        To improve robustness of the form state restore feature, we classify
111741        form control states by their owner forms. Owner forms are identified by
111742        their action URLs and index numbers in forms with the same action URLs.
111743
111744        Implementation approach:
111745        Extend FormElementKey class to have "formKey" string, which is a
111746        combination of the action URL and an index number, or a fixed string for
111747        no form owner.
111748        FormKeyGenerator class is responsible to generate the "formKey" strings
111749
111750        Test: fast/forms/state-restore-per-form.html
111751
111752        * html/FormController.cpp:
111753        (FormKeyGenerator):
111754        (WebCore::FormKeyGenerator::create): A factory function.
111755        (WebCore::FormKeyGenerator::FormKeyGenerator): A private constructor.
111756        (WebCore::createKey):
111757        A helper for formKey(). This makes strings like "<action URL> #<index>".
111758        (WebCore::FormKeyGenerator::formKey):
111759        Returns a formKey for the specified HTMLFormElement*.
111760        (WebCore::FormKeyGenerator::willDeleteForm):
111761        Unregister HTMLFormElement*. This function is necessary because form
111762        restore feature works during parsing and a script might delete form
111763        elements.
111764        (WebCore::formStateSignature): Bump the version.
111765        (WebCore::FormController::formElementsState):
111766        Records a formKey string for each of control state.
111767        (WebCore::FormController::setStateForNewFormElements):
111768        Loads formKeys from stateVector, and uses them for FormElementKey.
111769        (WebCore::FormController::takeStateForFormElement):
111770        - Construct and destruct FormKeyGenerator if needed.
111771        - Passing a formKey for the specified form control to FormElementKey.
111772        (WebCore::FormController::willDeleteForm):
111773        Delegate to FormKeyGenerator::willDeleteForm.
111774
111775        (WebCore::FormElementKey::FormElementKey): Add formKey argument and member.
111776        (WebCore::FormElementKey::operator=): ditto.
111777        (WebCore::FormElementKey::ref): ditto.
111778        (WebCore::FormElementKey::deref): ditto.
111779        * html/FormController.h:
111780        (FormElementKey): Add formKey argument and member.
111781        (FormController): Add a FormKeyGenerator member which is used during restoring.
111782
111783        * html/HTMLFormElement.cpp:
111784        (WebCore::HTMLFormElement::~HTMLFormElement): Notify the death to FormController.
111785
1117862012-06-28  Sheriff Bot  <webkit.review.bot@gmail.com>
111787
111788        Unreviewed, rolling out r121395.
111789        http://trac.webkit.org/changeset/121395
111790        https://bugs.webkit.org/show_bug.cgi?id=90143
111791
111792        Patch causes crashes in fast/workers/worker-context-gc.html
111793        (Requested by zdobersek on #webkit).
111794
111795        * Modules/indexeddb/IDBFactory.cpp:
111796        (WebCore::IDBFactory::open):
111797        * workers/DedicatedWorkerThread.cpp:
111798        (WebCore::DedicatedWorkerThread::create):
111799        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
111800        * workers/DedicatedWorkerThread.h:
111801        (DedicatedWorkerThread):
111802        * workers/DefaultSharedWorkerRepository.cpp:
111803        (SharedWorkerProxy):
111804        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
111805        * workers/SharedWorkerThread.cpp:
111806        (WebCore::SharedWorkerThread::create):
111807        (WebCore::SharedWorkerThread::SharedWorkerThread):
111808        * workers/SharedWorkerThread.h:
111809        (SharedWorkerThread):
111810        * workers/WorkerMessagingProxy.cpp:
111811        (WebCore::WorkerMessagingProxy::startWorkerContext):
111812        * workers/WorkerThread.cpp:
111813        (WebCore::WorkerThreadStartupData::create):
111814        (WorkerThreadStartupData):
111815        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
111816        (WebCore::WorkerThread::WorkerThread):
111817        * workers/WorkerThread.h:
111818        (WorkerThread):
111819
1118202012-06-28  Yoshifumi Inoue  <yosin@chromium.org>
111821
111822        [Platform] Implement functions for localized time format information
111823        https://bugs.webkit.org/show_bug.cgi?id=89965
111824
111825        Reviewed by Kent Tamura.
111826
111827        This patch introduces three functions for time format:
111828          1. localizedTimeFormatText()
111829          2. localizedShortTimeFormatText()
111830          2. timeAMPMLabels()
111831        for input type "time" if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) is true.
111832
111833        Having both localizedTimeFormat and localizedShortTimeFormat is for
111834        displaying only two fields hour and minute when step >= 60. There is
111835        no way to remove second field from "h:m:s" pattern string. We don't
111836        know whether ":" after "m" belongs minute or second field.
111837
111838        Test: WebKit/chromium/tests/LocalizedDateICUTest.cpp
111839
111840        * platform/text/LocaleICU.cpp:
111841        (WebCore::LocaleICU::LocaleICU):
111842        (WebCore::createFallbackAMPMLabels): Added.
111843        (WebCore::LocaleICU::initializeDateTimeFormat):  Added.
111844        (WebCore::LocaleICU::localizedTimeFormatText):  Added.
111845        (WebCore::LocaleICU::localizedShortTimeFormatText):  Added.
111846        (WebCore::LocaleICU::timeAMPMLabels):  Added.
111847        * platform/text/LocaleICU.h:
111848        (LocaleICU):
111849        * platform/text/LocalizedDate.h:
111850        * platform/text/LocalizedDateICU.cpp:
111851        (WebCore::localizedTimeFormatText):  Added.
111852        (WebCore::localizedShortTimeFormatText):  Added.
111853        (WebCore::timeAMPMLabels):  Added.
111854
1118552012-06-27  Kentaro Hara  <haraken@chromium.org>
111856
111857        Performance: Optimize Dromaeo/dom-query.html by caching NodeRareData on Document
111858        https://bugs.webkit.org/show_bug.cgi?id=90059
111859
111860        Reviewed by Ryosuke Niwa.
111861
111862        This patch improves performance of document.getElementsBy*().
111863        e.g. the patch makes Dromaeo/dom-query.html 5.4% faster.
111864
111865        Dromaeo/dom-query.html without the patch (Chromium/Linux):
111866        784714 runs/s, 765947 runs/s, 803109 runs/s, 804450 runs/s
111867
111868        Dromaeo/dom-query.html with the patch (Chromium/Linux):
111869        839245 runs/s, 829867 runs/s, 811032 runs/s, 847486 runs/s
111870
111871        Based on the assumption that document.getElementsByClassName(),
111872        document.getElementsByTagName() and document.getElementsByName()
111873        would be used frequently in the real world, this patch implements
111874        a fast path for Document methods that require to access NodeRareData.
111875        Specifically, this patch caches a pointer to NodeRareData on Document,
111876        by which Document can access NodeRareData without looking up a HashMap.
111877
111878        The only performance concern is the overhead of the isDocumentNode() check
111879        that this patch added to Node::ensureRareData. However, I could not
111880        observe any performance regression caused by the overhead.
111881
111882        No tests. No change in behavior.
111883
111884        * dom/Document.cpp:
111885        (WebCore::Document::Document):
111886        (WebCore::Document::setCachedRareData): I didn't inline this method,
111887        since the inlining slightly regressed performance for some reason.
111888        (WebCore):
111889        * dom/Document.h:
111890        (WebCore):
111891        (WebCore::Document::cachedRareData):
111892        (Document):
111893        (~Document): Moved 'm_document = 0' to the tail of the destructor,
111894        since isDocumentNode() has to return true in clearRareData() that is called
111895        in ~Document().
111896        * dom/Node.cpp:
111897        (WebCore::Node::ensureRareData):
111898        (~Node): Moved the assertion into clearRareData().
111899
1119002012-06-27  Mary Wu  <mary.wu@torchmobile.com.cn>
111901
111902        [BlackBerry] 0-length response with no content-type shouldn't download
111903        https://bugs.webkit.org/show_bug.cgi?id=89860
111904
111905        Reviewed by Rob Buis.
111906
111907        RIM PR# 168419
111908
111909        For 0-length response, if we can't get its mimetype from the filename,
111910        we set the mimetype to "text/plain" instead of "application/octet-stream",
111911        so it won't go to download.
111912
111913        Reviewed internally by Charles Wei.
111914
111915        * platform/network/blackberry/NetworkJob.cpp:
111916        (WebCore::NetworkJob::sendResponseIfNeeded):
111917
1119182012-06-27  Yoshifumi Inoue  <yosin@chromium.org>
111919
111920        [Platform] Implement localizedDecimalSeparator function
111921        https://bugs.webkit.org/show_bug.cgi?id=90036
111922
111923        Reviewed by Kent Tamura.
111924
111925        This patch introduces new function localizedDecimalSeparator() when
111926        ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS). It will be used for
111927        displaying millisecond for time fields UI.
111928
111929        Test: WebKit/chromium/tests/LocalizedNumberICUTest.cpp
111930
111931        * platform/text/LocaleICU.cpp:
111932        (WebCore::LocaleICU::localizedDecimalSeparator): Added
111933        * platform/text/LocaleICU.h:
111934        (LocaleICU): Added localizedDecimalSeparator.
111935        * platform/text/LocalizedNumber.h:
111936        * platform/text/LocalizedNumberICU.cpp:
111937        (WebCore::localizedDecimalSeparator): Added.
111938        * platform/text/LocalizedNumberNone.cpp:
111939        (WebCore::localizedDecimalSeparator): Added.
111940        * platform/text/mac/LocalizedNumberMac.mm:
111941        (WebCore::localizedDecimalSeparator): Added.
111942
1119432012-06-27  Lu Guanqun  <guanqun.lu@intel.com>
111944
111945        Add OVERRIDE to functions in UnthrottledTextureUploader class
111946        https://bugs.webkit.org/show_bug.cgi?id=90130
111947
111948        Reviewed by James Robinson.
111949
111950        No new tests required.
111951
111952        * platform/graphics/chromium/LayerRendererChromium.cpp:
111953
1119542012-06-27  Pablo Flouret  <pablof@motorola.com>
111955
111956        pattern="" should only accept the empty string
111957        https://bugs.webkit.org/show_bug.cgi?id=89569
111958
111959        Reviewed by Kent Tamura.
111960
111961        An empty pattern attribute was being treated essentially as if the
111962        pattern wasn't present.
111963
111964        No new tests. Covered by existing tests (plus a modified one).
111965
111966        * html/BaseTextInputType.cpp:
111967        (WebCore::BaseTextInputType::patternMismatch):
111968            Check if the pattern attribute is present. If it is then use the
111969            pattern as is (in the particular case of this bug, an empty pattern
111970            will only match an empty value).
111971
1119722012-06-27  James Robinson  <jamesr@chromium.org>
111973
111974        [chromium] Use SkColor in compositor internals
111975        https://bugs.webkit.org/show_bug.cgi?id=90108
111976
111977        Reviewed by Adrienne Walker.
111978
111979        As the title says, cutting dependencies. If we support color spaces in the compositor we will probably need to
111980        use a more sophisticated type, but for our current use SkColor is sufficient and matches our API better.
111981
111982        * platform/graphics/chromium/LayerChromium.cpp:
111983        (WebCore::LayerChromium::LayerChromium):
111984        (WebCore::LayerChromium::setBackgroundColor):
111985        (WebCore::LayerChromium::setDebugBorderColor):
111986        * platform/graphics/chromium/LayerChromium.h:
111987        (LayerChromium):
111988        (WebCore::LayerChromium::backgroundColor):
111989        * platform/graphics/chromium/LayerRendererChromium.cpp:
111990        (WebCore::LayerRendererChromium::drawDebugBorderQuad):
111991        (WebCore::LayerRendererChromium::drawSolidColorQuad):
111992        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
111993        (WebCore::CCDebugBorderDrawQuad::create):
111994        (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
111995        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
111996        (CCDebugBorderDrawQuad):
111997        (WebCore::CCDebugBorderDrawQuad::color):
111998        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
111999        (WebCore::CCLayerImpl::CCLayerImpl):
112000        (WebCore::CCLayerImpl::setBackgroundColor):
112001        (WebCore::CCLayerImpl::setDebugBorderColor):
112002        (WebCore::CCLayerImpl::hasDebugBorders):
112003        * platform/graphics/chromium/cc/CCLayerImpl.h:
112004        (CCLayerImpl):
112005        (WebCore::CCLayerImpl::backgroundColor):
112006        (WebCore::CCLayerImpl::debugBorderColor):
112007        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
112008        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
112009        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
112010        (WebCore::CCLayerTreeHost::setBackgroundColor):
112011        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
112012        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
112013        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
112014        (WebCore::CCLayerTreeHostImpl::backgroundColor):
112015        (WebCore::CCLayerTreeHostImpl::setBackgroundColor):
112016        (CCLayerTreeHostImpl):
112017        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
112018        (WebCore::appendQuadInternal):
112019        * platform/graphics/chromium/cc/CCRenderPass.cpp:
112020        (WebCore::CCRenderPass::appendQuadsToFillScreen):
112021        * platform/graphics/chromium/cc/CCRenderPass.h:
112022        (WebCore):
112023        (CCRenderPass):
112024        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
112025        (WebCore::CCRenderSurface::appendQuads):
112026        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
112027        (WebCore::CCSolidColorDrawQuad::create):
112028        (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
112029        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
112030        (CCSolidColorDrawQuad):
112031        (WebCore::CCSolidColorDrawQuad::color):
112032        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
112033        (WebCore::CCTiledLayerImpl::appendQuads):
112034
1120352012-06-27  Charles Wei  <charles.wei@torchmobile.com.cn>
112036
112037        IndexedDB: should make the LevelDB persistant to the directory indicated in PageGroupSettings::indexedDBDataBasePath
112038        https://bugs.webkit.org/show_bug.cgi?id=88338
112039
112040        Reviewed by David Levin.
112041
112042        If the indexedDB runs in main thread it can access the GroupSettings via the document;
112043        otherwise, we need to pass the page GroupSettings to the worker thread so that accessible
112044        to the indexedDB running in WorkerContext.
112045
112046        * Modules/indexeddb/IDBFactory.cpp:
112047        (WebCore::IDBFactory::open):
112048        * workers/DedicatedWorkerThread.cpp:
112049        (WebCore::DedicatedWorkerThread::create):
112050        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
112051        * workers/DedicatedWorkerThread.h:
112052        (DedicatedWorkerThread):
112053        * workers/DefaultSharedWorkerRepository.cpp:
112054        (SharedWorkerProxy):
112055        (WebCore::SharedWorkerProxy::groupSettings):
112056        (WebCore):
112057        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
112058        * workers/SharedWorkerThread.cpp:
112059        (WebCore::SharedWorkerThread::create):
112060        (WebCore::SharedWorkerThread::SharedWorkerThread):
112061        * workers/SharedWorkerThread.h:
112062        (SharedWorkerThread):
112063        * workers/WorkerMessagingProxy.cpp:
112064        (WebCore::WorkerMessagingProxy::startWorkerContext):
112065        * workers/WorkerThread.cpp:
112066        (WebCore::WorkerThreadStartupData::create):
112067        (WorkerThreadStartupData):
112068        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
112069        (WebCore::WorkerThread::WorkerThread):
112070        (WebCore::WorkerThread::groupSettings):
112071        (WebCore):
112072        * workers/WorkerThread.h:
112073        (WorkerThread):
112074
1120752012-06-27  Sheriff Bot  <webkit.review.bot@gmail.com>
112076
112077        Unreviewed, rolling out r121359.
112078        http://trac.webkit.org/changeset/121359
112079        https://bugs.webkit.org/show_bug.cgi?id=90115
112080
112081        Broke many inspector tests (Requested by jpfau on #webkit).
112082
112083        * bindings/js/ScriptCallStackFactory.cpp:
112084        (WebCore::createScriptCallStack):
112085
1120862012-06-27  Alexis Menard  <alexis.menard@openbossa.org>
112087
112088        Implement selectedOptions attribute of HTMLSelectElement.
112089        https://bugs.webkit.org/show_bug.cgi?id=80631
112090
112091        Reviewed by Ryosuke Niwa.
112092
112093        Add a new collection as a member of HTMLSelectElement which is
112094        used to store the selected elements. Extend HTMLCollection to
112095        support the new collection type needed by this feature. Make sure
112096        that we invalidate the collection when the select state of an
112097        option changes as the select state change does not trigger a dom
112098        tree version change.
112099
112100        Reference : http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#dom-select-selectedoptions
112101
112102        Test: fast/dom/HTMLSelectElement/select-selectedOptions.html
112103
112104        * html/CollectionType.h:
112105        * html/HTMLCollection.cpp:
112106        (WebCore::shouldIncludeChildren):
112107        (WebCore::HTMLCollection::clearCache):
112108        (WebCore):
112109        (WebCore::HTMLCollection::isAcceptableElement):
112110        * html/HTMLCollection.h:
112111        (HTMLCollection):
112112        * html/HTMLOptionElement.cpp:
112113        (WebCore::HTMLOptionElement::setSelectedState):
112114        * html/HTMLSelectElement.cpp:
112115        (WebCore::HTMLSelectElement::selectedOptions):
112116        (WebCore):
112117        (WebCore::HTMLSelectElement::invalidateSelectedItems):
112118        (WebCore::HTMLSelectElement::setRecalcListItems):
112119        * html/HTMLSelectElement.h:
112120        (WebCore):
112121        (HTMLSelectElement):
112122        * html/HTMLSelectElement.idl:
112123
1121242012-06-27  Daniel Cheng  <dcheng@chromium.org>
112125
112126        Fix crash in Frame::nodeImage.
112127        https://bugs.webkit.org/show_bug.cgi?id=89911
112128
112129        Reviewed by Abhishek Arya.
112130
112131        We were caching a pointer to a RenderObject and then calling updateLayout(). Instead, we
112132        need to get a pointer to the RenderObject again after updateLayout().
112133
112134        Test: fast/events/drag-display-none-element.html
112135
112136        * page/Frame.cpp:
112137        (WebCore::Frame::nodeImage):
112138        * page/mac/FrameMac.mm:
112139        (WebCore::Frame::snapshotDragImage):
112140        (WebCore::Frame::nodeImage):
112141
1121422012-06-27  Tony Chang  <tony@chromium.org>
112143
112144        Unreviewed, rolling out r121380.
112145        http://trac.webkit.org/changeset/121380
112146        https://bugs.webkit.org/show_bug.cgi?id=86525
112147
112148        Hits an ASSERT in debug.
112149
112150        * css/CSSComputedStyleDeclaration.cpp:
112151        (WebCore):
112152        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
112153        * css/CSSParser.cpp:
112154        (WebCore::isValidKeywordPropertyAndValue):
112155        (WebCore::CSSParser::parseValue):
112156        (WebCore::CSSParser::parseFlex):
112157        * css/CSSParser.h:
112158        * css/CSSProperty.cpp:
112159        (WebCore::CSSProperty::isInheritedProperty):
112160        * css/CSSPropertyNames.in:
112161        * css/StyleBuilder.cpp:
112162        (ApplyPropertyFlex):
112163        (WebCore::ApplyPropertyFlex::applyInheritValue):
112164        (WebCore::ApplyPropertyFlex::applyInitialValue):
112165        (WebCore::ApplyPropertyFlex::applyValue):
112166        (WebCore::ApplyPropertyFlex::createHandler):
112167        (WebCore::ApplyPropertyFlex::getFlexValue):
112168        (WebCore):
112169        (WebCore::StyleBuilder::StyleBuilder):
112170        * css/StylePropertySet.cpp:
112171        (WebCore::StylePropertySet::getPropertyValue):
112172        (WebCore::StylePropertySet::asText):
112173        * css/StylePropertyShorthand.cpp:
112174        (WebCore::webkitFlexFlowShorthand):
112175        (WebCore::shorthandForProperty):
112176        * css/StylePropertyShorthand.h:
112177        (WebCore):
112178        * css/StyleResolver.cpp:
112179        (WebCore::StyleResolver::collectMatchingRulesForList):
112180
1121812012-06-27  Rakesh KN  <rakesh.kn@motorola.com>
112182
112183        HTMLFieldSetElement::m_documentVersion is not initialized
112184        https://bugs.webkit.org/show_bug.cgi?id=90038
112185
112186        Reviewed by Kent Tamura.
112187
112188        Initialised m_documentVersion member as HTMLFieldSetElement::elements can return an wrong collection.
112189
112190        Covered by existing tests.
112191
112192        * html/HTMLFieldSetElement.cpp:
112193        (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
112194        Initialised m_documentVersion.
112195
1121962012-06-25  Mark Hahnenberg  <mhahnenberg@apple.com>
112197
112198        JSLock should be per-JSGlobalData
112199        https://bugs.webkit.org/show_bug.cgi?id=89123
112200
112201        Reviewed by Geoffrey Garen.
112202
112203        No new tests. Current regression tests are sufficient.
112204
112205        Changed all sites that used JSLock to instead use the new JSLockHolder
112206        and pass in the correct JS context that the code is about to interact with that 
112207        needs protection. Also added a couple JSLocks to places that didn't already 
112208        have it that needed it.
112209
112210        * bindings/js/GCController.cpp:
112211        (WebCore::collect):
112212        (WebCore::GCController::garbageCollectSoon):
112213        (WebCore::GCController::garbageCollectNow):
112214        (WebCore::GCController::discardAllCompiledCode):
112215        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
112216        (WebCore::JSSQLStatementErrorCallback::handleEvent):
112217        * bindings/js/JSCustomVoidCallback.cpp:
112218        (WebCore::JSCustomVoidCallback::handleEvent):
112219        * bindings/js/JSCustomXPathNSResolver.cpp:
112220        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
112221        * bindings/js/JSErrorHandler.cpp:
112222        (WebCore::JSErrorHandler::handleEvent):
112223        * bindings/js/JSEventCustom.cpp:
112224        (WebCore::toJS):
112225        * bindings/js/JSEventListener.cpp:
112226        (WebCore::JSEventListener::handleEvent):
112227        * bindings/js/JSInjectedScriptHostCustom.cpp:
112228        (WebCore::InjectedScriptHost::nodeAsScriptValue):
112229        (WebCore::JSInjectedScriptHost::inspectedObject):
112230        * bindings/js/JSInjectedScriptManager.cpp:
112231        (WebCore::InjectedScriptManager::createInjectedScript):
112232        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
112233        * bindings/js/JSLazyEventListener.cpp:
112234        (WebCore::JSLazyEventListener::initializeJSFunction):
112235        * bindings/js/JSMainThreadExecState.h:
112236        (WebCore::JSMainThreadExecState::evaluate):
112237        * bindings/js/JSMutationCallbackCustom.cpp:
112238        (WebCore::JSMutationCallback::handleEvent):
112239        * bindings/js/JSNodeFilterCondition.cpp:
112240        (WebCore::JSNodeFilterCondition::acceptNode):
112241        * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
112242        (WebCore::JSRequestAnimationFrameCallback::handleEvent):
112243        * bindings/js/JavaScriptCallFrame.cpp:
112244        (WebCore::JavaScriptCallFrame::evaluate):
112245        * bindings/js/PageScriptDebugServer.cpp:
112246        (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
112247        * bindings/js/ScheduledAction.cpp:
112248        (WebCore::ScheduledAction::executeFunctionInContext):
112249        * bindings/js/ScriptCachedFrameData.cpp:
112250        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
112251        (WebCore::ScriptCachedFrameData::restore):
112252        (WebCore::ScriptCachedFrameData::clear):
112253        * bindings/js/ScriptController.cpp:
112254        (WebCore::ScriptController::evaluateInWorld):
112255        (WebCore::ScriptController::clearWindowShell):
112256        (WebCore::ScriptController::initScript):
112257        (WebCore::ScriptController::updateDocument):
112258        (WebCore::ScriptController::cacheableBindingRootObject):
112259        (WebCore::ScriptController::bindingRootObject):
112260        (WebCore::ScriptController::windowScriptNPObject):
112261        (WebCore::ScriptController::jsObjectForPluginElement):
112262        (WebCore::ScriptController::clearScriptObjects):
112263        * bindings/js/ScriptControllerMac.mm:
112264        (WebCore::ScriptController::windowScriptObject):
112265        * bindings/js/ScriptDebugServer.cpp:
112266        (WebCore::ScriptDebugServer::dispatchDidPause):
112267        * bindings/js/ScriptEventListener.cpp:
112268        (WebCore::eventListenerHandlerBody):
112269        (WebCore::eventListenerHandlerLocation):
112270        * bindings/js/ScriptFunctionCall.cpp:
112271        (WebCore::ScriptCallArgumentHandler::appendArgument):
112272        (WebCore::ScriptFunctionCall::call):
112273        (WebCore::ScriptFunctionCall::construct):
112274        (WebCore::ScriptCallback::call):
112275        * bindings/js/ScriptObject.cpp:
112276        (WebCore::ScriptGlobalObject::set):
112277        (WebCore::ScriptGlobalObject::get):
112278        (WebCore::ScriptGlobalObject::remove):
112279        * bindings/js/ScriptValue.cpp:
112280        (WebCore::ScriptValue::getString):
112281        (WebCore::ScriptValue::toInspectorValue):
112282        * bindings/js/WorkerScriptController.cpp:
112283        (WebCore::WorkerScriptController::~WorkerScriptController):
112284        (WebCore::WorkerScriptController::initScript):
112285        (WebCore::WorkerScriptController::evaluate):
112286        (WebCore::WorkerScriptController::disableEval):
112287        * bindings/objc/WebScriptObject.mm:
112288        (_didExecute):
112289        (-[WebScriptObject callWebScriptMethod:withArguments:]):
112290        (-[WebScriptObject evaluateWebScript:]):
112291        (-[WebScriptObject setValue:forKey:]):
112292        (-[WebScriptObject valueForKey:]):
112293        (-[WebScriptObject removeWebScriptKey:]):
112294        (-[WebScriptObject hasWebScriptKey:]):
112295        (-[WebScriptObject stringRepresentation]):
112296        (-[WebScriptObject webScriptValueAtIndex:]):
112297        (-[WebScriptObject setWebScriptValueAtIndex:value:]):
112298        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
112299        * bindings/scripts/CodeGeneratorJS.pm:
112300        (GenerateCallbackImplementation):
112301        * bindings/scripts/test/JS/JSTestCallback.cpp:
112302        (WebCore::JSTestCallback::callbackWithNoParam):
112303        (WebCore::JSTestCallback::callbackWithClass1Param):
112304        (WebCore::JSTestCallback::callbackWithClass2Param):
112305        (WebCore::JSTestCallback::callbackWithStringList):
112306        (WebCore::JSTestCallback::callbackWithBoolean):
112307        (WebCore::JSTestCallback::callbackRequiresThisToPass):
112308        * bridge/NP_jsobject.cpp:
112309        (_NPN_InvokeDefault):
112310        (_NPN_Invoke):
112311        (_NPN_Evaluate):
112312        (_NPN_GetProperty):
112313        (_NPN_SetProperty):
112314        (_NPN_RemoveProperty):
112315        (_NPN_HasProperty):
112316        (_NPN_HasMethod):
112317        (_NPN_Enumerate):
112318        (_NPN_Construct):
112319        * bridge/c/c_class.cpp:
112320        (JSC::Bindings::CClass::~CClass):
112321        (JSC::Bindings::CClass::methodsNamed):
112322        (JSC::Bindings::CClass::fieldNamed):
112323        * bridge/c/c_instance.cpp:
112324        (JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
112325        (JSC::Bindings::CInstance::invokeMethod):
112326        (JSC::Bindings::CInstance::invokeDefaultMethod):
112327        (JSC::Bindings::CInstance::invokeConstruct):
112328        (JSC::Bindings::CInstance::getPropertyNames):
112329        * bridge/c/c_runtime.cpp:
112330        (JSC::Bindings::CField::valueFromInstance):
112331        (JSC::Bindings::CField::setValueToInstance):
112332        * bridge/c/c_utility.cpp:
112333        (JSC::Bindings::convertValueToNPVariant):
112334        (JSC::Bindings::convertNPVariantToValue):
112335        * bridge/jni/jni_jsobject.mm:
112336        (JavaJSObject::call):
112337        (JavaJSObject::eval):
112338        (JavaJSObject::getMember):
112339        (JavaJSObject::setMember):
112340        (JavaJSObject::removeMember):
112341        (JavaJSObject::getSlot):
112342        (JavaJSObject::setSlot):
112343        (JavaJSObject::toString):
112344        (JavaJSObject::convertValueToJObject):
112345        (JavaJSObject::convertJObjectToValue):
112346        * bridge/jni/jni_objc.mm:
112347        (JSC::Bindings::dispatchJNICall):
112348        * bridge/jni/jsc/JNIUtilityPrivate.cpp:
112349        (JSC::Bindings::convertValueToJValue):
112350        * bridge/jni/jsc/JavaClassJSC.cpp:
112351        (JavaClass::JavaClass):
112352        (JavaClass::~JavaClass):
112353        * bridge/jni/jsc/JavaInstanceJSC.cpp:
112354        (JavaInstance::stringValue):
112355        * bridge/jni/jsc/JavaMethodJSC.cpp:
112356        (appendClassName):
112357        (JavaMethod::signature):
112358        * bridge/jni/jsc/JavaStringJSC.h:
112359        (JSC::Bindings::JavaString::JavaString):
112360        (JSC::Bindings::JavaString::~JavaString):
112361        (JSC::Bindings::JavaString::utf8):
112362        (JSC::Bindings::JavaString::init):
112363        * bridge/jsc/BridgeJSC.cpp:
112364        (JSC::Bindings::Instance::createRuntimeObject):
112365        (JSC::Bindings::Instance::newRuntimeObject):
112366        * bridge/objc/objc_instance.mm:
112367        (ObjcInstance::moveGlobalExceptionToExecState):
112368        (ObjcInstance::invokeObjcMethod):
112369        (ObjcInstance::invokeDefaultMethod):
112370        (ObjcInstance::setValueOfUndefinedField):
112371        (ObjcInstance::getValueOfUndefinedField):
112372        * bridge/objc/objc_runtime.mm:
112373        (JSC::Bindings::ObjcField::valueFromInstance):
112374        (JSC::Bindings::ObjcField::setValueToInstance):
112375        * bridge/objc/objc_utility.mm:
112376        (JSC::Bindings::convertValueToObjcValue):
112377        (JSC::Bindings::convertNSStringToString):
112378        (JSC::Bindings::convertObjcValueToValue):
112379        * bridge/qt/qt_instance.cpp:
112380        (JSC::Bindings::QtInstance::~QtInstance):
112381        (JSC::Bindings::QtInstance::getQtInstance):
112382        (JSC::Bindings::QtInstance::newRuntimeObject):
112383        * bridge/qt/qt_pixmapruntime.cpp:
112384        (JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):
112385        * bridge/qt/qt_runtime.cpp:
112386        (JSC::Bindings::convertValueToQVariant):
112387        (JSC::Bindings::convertQVariantToValue):
112388        (JSC::Bindings::QtRuntimeMetaMethod::call):
112389        (JSC::Bindings::QtRuntimeConnectionMethod::call):
112390        * bridge/qt/qt_runtime_qt4.cpp:
112391        (JSC::Bindings::convertValueToQVariant):
112392        (JSC::Bindings::convertQVariantToValue):
112393        (JSC::Bindings::QtRuntimeMetaMethod::call):
112394        (JSC::Bindings::QtRuntimeConnectionMethod::call):
112395        * bridge/runtime_root.cpp:
112396        (JSC::Bindings::RootObject::gcProtect):
112397        (JSC::Bindings::RootObject::gcUnprotect):
112398        * html/HTMLCanvasElement.cpp:
112399        (WebCore::HTMLCanvasElement::createImageBuffer):
112400        * html/HTMLImageLoader.cpp:
112401        (WebCore::HTMLImageLoader::notifyFinished):
112402        * plugins/PluginView.cpp:
112403        (WebCore::PluginView::start):
112404        (WebCore::PluginView::stop):
112405        (WebCore::PluginView::performRequest):
112406        (WebCore::PluginView::npObject):
112407        (WebCore::PluginView::privateBrowsingStateChanged):
112408        * plugins/blackberry/PluginViewBlackBerry.cpp:
112409        (WebCore::PluginView::dispatchNPEvent):
112410        (WebCore::PluginView::setNPWindowIfNeeded):
112411        (WebCore::PluginView::platformStart):
112412        (WebCore::PluginView::getWindowInfo):
112413        * plugins/efl/PluginViewEfl.cpp:
112414        (WebCore::PluginView::dispatchNPEvent):
112415        * plugins/gtk/PluginViewGtk.cpp:
112416        (WebCore::PluginView::dispatchNPEvent):
112417        (WebCore::PluginView::handleKeyboardEvent):
112418        (WebCore::PluginView::handleMouseEvent):
112419        (WebCore::PluginView::setNPWindowIfNeeded):
112420        (WebCore::PluginView::platformStart):
112421        * plugins/mac/PluginViewMac.mm:
112422        (WebCore::PluginView::setNPWindowIfNeeded):
112423        (WebCore::PluginView::dispatchNPEvent):
112424        * plugins/qt/PluginViewQt.cpp:
112425        (WebCore::PluginView::dispatchNPEvent):
112426        (WebCore::PluginView::setNPWindowIfNeeded):
112427        (WebCore::PluginView::platformStart):
112428        * plugins/win/PluginViewWin.cpp:
112429        (WebCore::PluginView::dispatchNPEvent):
112430        (WebCore::PluginView::handleKeyboardEvent):
112431        (WebCore::PluginView::handleMouseEvent):
112432        (WebCore::PluginView::setNPWindowRect):
112433        * testing/js/WebCoreTestSupport.cpp:
112434        (WebCoreTestSupport::injectInternalsObject):
112435        (WebCoreTestSupport::resetInternalsObject):
112436        * xml/XMLHttpRequest.cpp:
112437        (WebCore::XMLHttpRequest::dropProtection):
112438
1124392012-06-27  Tony Chang  <tony@chromium.org>
112440
112441        Split flex into flex-grow/flex-shrink/flex-basis
112442        https://bugs.webkit.org/show_bug.cgi?id=86525
112443
112444        Reviewed by Ojan Vafai.
112445
112446        Split flex into 3 separate properties per the spec:
112447        http://dev.w3.org/csswg/css3-flexbox/#flex-components
112448
112449        Tests: css3/flexbox/flex-longhand-parsing.html
112450               css3/flexbox/flex-property-parsing.html: Updated test results.
112451
112452        * css/CSSComputedStyleDeclaration.cpp:
112453        (WebCore): -webkit-flex is no longer enumerable.
112454        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add new css property names and use
112455        getCSSPropertyValuesForShorthandProperties for WebkitFlex. Also sort flex propery names.
112456        * css/CSSParser.cpp:
112457        (WebCore::isValidKeywordPropertyAndValue): Fix indent.
112458        (WebCore::CSSParser::parseValue): Add parsing for new properties and handle -webkit-flex: none.
112459        (WebCore::CSSParser::parseFlex): Switch to new names (positive -> grow, negative -> shrink,
112460        preferred size -> basis) and assign to longhand properties.
112461        * css/CSSParser.h:
112462        * css/CSSProperty.cpp:
112463        (WebCore::CSSProperty::isInheritedProperty): Add new properties.
112464        * css/CSSPropertyNames.in: Add new properties.
112465        * css/StyleBuilder.cpp:
112466        (WebCore::StyleBuilder::StyleBuilder): Delete special handling of applying flex and just use shorthand handlers.
112467        * css/StylePropertySet.cpp:
112468        (WebCore::StylePropertySet::getPropertyValue): Add new shorthand.
112469        (WebCore::StylePropertySet::asText):
112470        * css/StylePropertyShorthand.cpp:
112471        (WebCore::webkitFlexShorthand): Add new shorthand.
112472        (WebCore::shorthandForProperty):
112473        * css/StylePropertyShorthand.h:
112474        * css/StyleResolver.cpp:
112475        (WebCore::StyleResolver::collectMatchingRulesForList): Add to list of properties applied by StyleBuilder.
112476
1124772012-06-27  Kentaro Hara  <haraken@chromium.org>
112478
112479        Make Element::elementRareData() and Element::ensureElementRareData() private
112480        https://bugs.webkit.org/show_bug.cgi?id=90060
112481
112482        Reviewed by Andreas Kling.
112483
112484        This is a simple refactoring. Element::elementRareData() and
112485        Element::ensureElementRareData() can be private methods.
112486
112487        No tests. No change in behavior.
112488
112489        * dom/Element.h:
112490        (Element):
112491
1124922012-06-27  James Robinson  <jamesr@chromium.org>
112493
112494        [chromium] Delete unused includes and forward declarations from compositor code
112495        https://bugs.webkit.org/show_bug.cgi?id=90102
112496
112497        Reviewed by Adrienne Walker.
112498
112499        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
112500        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
112501        * platform/graphics/chromium/ContentLayerChromium.h:
112502        * platform/graphics/chromium/ImageLayerChromium.cpp:
112503        * platform/graphics/chromium/LayerChromium.cpp:
112504        * platform/graphics/chromium/LayerChromium.h:
112505        * platform/graphics/chromium/LayerRendererChromium.cpp:
112506        * platform/graphics/chromium/ShaderChromium.h:
112507        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
112508        * platform/graphics/chromium/TiledLayerChromium.cpp:
112509        (WebCore::TiledLayerChromium::updateTiles):
112510        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
112511        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
112512
1125132012-06-27  Alec Flett  <alecflett@chromium.org>
112514
112515        IndexedDB: make IDBKey immutable
112516        https://bugs.webkit.org/show_bug.cgi?id=90016
112517
112518        Reviewed by Tony Chang.
112519
112520        Make all members of IDBKey const, so that this can be considered
112521        an immutable, and thus safe to copy and/or stop ref-counting.
112522
112523        No new tests, existing tests show this works.
112524
112525        * Modules/indexeddb/IDBKey.cpp:
112526        (WebCore::IDBKey::compare):
112527        * Modules/indexeddb/IDBKey.h:
112528        (WebCore::IDBKey::createInvalid):
112529        (WebCore::IDBKey::createNumber):
112530        (WebCore::IDBKey::createString):
112531        (WebCore::IDBKey::createDate):
112532        (WebCore::IDBKey::createMultiEntryArray):
112533        (WebCore::IDBKey::createArray):
112534        (WebCore::IDBKey::date):
112535        (WebCore::IDBKey::IDBKey):
112536        (IDBKey):
112537
1125382012-06-27  Erik Arvidsson  <arv@chromium.org>
112539
112540        [V8] Improve variable resolution order on window
112541        https://bugs.webkit.org/show_bug.cgi?id=84247
112542
112543        Reviewed by Ojan Vafai.
112544
112545        This changes the V8 flag to turn on es52_globals and updates the layout tests to reflect the fixed behavior.
112546
112547        This is the second (third?) try. Last time there was a bug in the V8 code related to the split window.
112548        I added a test that tests the failure that caused this to be rolled back last time.
112549
112550        Tests: fast/dom/Window/es52-globals.html
112551               fast/dom/Window/window-property-shadowing-onclick.html
112552
112553        * bindings/v8/V8DOMWindowShell.cpp:
112554        (WebCore::V8DOMWindowShell::initContextIfNeeded):
112555        * bindings/v8/WorkerContextExecutionProxy.cpp:
112556        (WebCore::WorkerContextExecutionProxy::initIsolate):
112557
1125582012-06-27  James Robinson  <jamesr@chromium.org>
112559
112560        [chromium] Use categorized TRACE_EVENTN() macros in compositor code
112561        https://bugs.webkit.org/show_bug.cgi?id=90100
112562
112563        Reviewed by Adrienne Walker.
112564
112565        Specify the category in all traces in the compositor. Patch generated mostly by the sed command
112566        's/TRACE_EVENT(\(.*\), this, 0)/TRACE_EVENT0("cc", \1)/'.
112567
112568        * platform/graphics/chromium/LayerRendererChromium.cpp:
112569        (WebCore::LayerRendererChromium::beginDrawingFrame):
112570        (WebCore::LayerRendererChromium::finish):
112571        (WebCore::LayerRendererChromium::swapBuffers):
112572        (WebCore::LayerRendererChromium::initializeSharedObjects):
112573        (WebCore::LayerRendererChromium::tileCheckerboardProgram):
112574        (WebCore::LayerRendererChromium::solidColorProgram):
112575        (WebCore::LayerRendererChromium::headsUpDisplayProgram):
112576        (WebCore::LayerRendererChromium::renderPassProgram):
112577        (WebCore::LayerRendererChromium::renderPassProgramAA):
112578        (WebCore::LayerRendererChromium::renderPassMaskProgram):
112579        (WebCore::LayerRendererChromium::renderPassMaskProgramAA):
112580        (WebCore::LayerRendererChromium::tileProgram):
112581        (WebCore::LayerRendererChromium::tileProgramOpaque):
112582        (WebCore::LayerRendererChromium::tileProgramAA):
112583        (WebCore::LayerRendererChromium::tileProgramSwizzle):
112584        (WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
112585        (WebCore::LayerRendererChromium::tileProgramSwizzleAA):
112586        (WebCore::LayerRendererChromium::textureProgram):
112587        (WebCore::LayerRendererChromium::textureProgramFlip):
112588        (WebCore::LayerRendererChromium::textureIOSurfaceProgram):
112589        (WebCore::LayerRendererChromium::videoYUVProgram):
112590        (WebCore::LayerRendererChromium::videoStreamTextureProgram):
112591        * platform/graphics/chromium/LayerTextureSubImage.cpp:
112592        (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
112593        (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
112594        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
112595        (WebCore::SkPictureCanvasLayerTextureUpdater::drawPicture):
112596        * platform/graphics/chromium/TextureCopier.cpp:
112597        (WebCore::AcceleratedTextureCopier::copyTexture):
112598        * platform/graphics/chromium/TextureManager.cpp:
112599        (WebCore::TextureManager::evictTexture):
112600        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
112601        (WebCore::CCFrameRateController::setActive):
112602        (WebCore::CCFrameRateController::onTimerTick):
112603        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
112604        (WebCore::CCLayerTreeHost::initialize):
112605        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
112606        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
112607        (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
112608        (WebCore::CCLayerTreeHost::didLoseContext):
112609        (WebCore::CCLayerTreeHost::updateLayers):
112610        (WebCore::CCLayerTreeHost::animateLayers):
112611        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
112612        (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
112613        (WebCore::CCSingleThreadProxy::~CCSingleThreadProxy):
112614        (WebCore::CCSingleThreadProxy::compositeAndReadback):
112615        (WebCore::CCSingleThreadProxy::stop):
112616        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
112617        (WebCore::CCThreadProxy::CCThreadProxy):
112618        (WebCore::CCThreadProxy::~CCThreadProxy):
112619        (WebCore::CCThreadProxy::compositeAndReadback):
112620        (WebCore::CCThreadProxy::initializeContext):
112621        (WebCore::CCThreadProxy::initializeLayerRenderer):
112622        (WebCore::CCThreadProxy::setNeedsAnimate):
112623        (WebCore::CCThreadProxy::setNeedsCommit):
112624        (WebCore::CCThreadProxy::onSwapBuffersCompleteOnImplThread):
112625        (WebCore::CCThreadProxy::setNeedsCommitOnImplThread):
112626        (WebCore::CCThreadProxy::setNeedsForcedCommitOnImplThread):
112627        (WebCore::CCThreadProxy::postAnimationEventsToMainThreadOnImplThread):
112628        (WebCore::CCThreadProxy::setNeedsRedraw):
112629        (WebCore::CCThreadProxy::setNeedsRedrawOnImplThread):
112630        (WebCore::CCThreadProxy::stop):
112631        (WebCore::CCThreadProxy::finishAllRenderingOnImplThread):
112632        (WebCore::CCThreadProxy::beginFrame):
112633        (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
112634        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
112635        (WebCore::CCThreadProxy::scheduledActionCommit):
112636        (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
112637        (WebCore::CCThreadProxy::acquireLayerTextures):
112638        (WebCore::CCThreadProxy::initializeImplOnImplThread):
112639        (WebCore::CCThreadProxy::initializeContextOnImplThread):
112640        (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
112641        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
112642
1126432012-06-27  W. James MacLean  <wjmaclean@chromium.org>
112644
112645        [chromium] ScrollbarLayerChromium should support painting forward-track and back-track in different styles.
112646        https://bugs.webkit.org/show_bug.cgi?id=89908
112647
112648        Reviewed by Adrienne Walker.
112649
112650        Test: platform/chromium/compositing/scrollbars/custom-composited-different-track-parts.html
112651
112652        Adds support for accelerated drawing (impl thread) of scrollbars with different styles for the
112653        forward-track and back-track parts.
112654
112655        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
112656        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
112657        (WebCore::ScrollbarBackgroundPainter::create):
112658        (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
112659        (ScrollbarBackgroundPainter):
112660        (WebCore::ScrollbarLayerChromium::setLayerTreeHost):
112661        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
112662        (WebCore::ScrollbarLayerChromium::update):
112663        * platform/graphics/chromium/ScrollbarLayerChromium.h:
112664        (ScrollbarLayerChromium):
112665        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
112666        (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
112667        (WebCore):
112668        (WebCore::CCScrollbarLayerImpl::appendQuads):
112669        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
112670        (WebCore::CCScrollbarLayerImpl::setBackTrackTextureId):
112671        (WebCore::CCScrollbarLayerImpl::setForeTrackTextureId):
112672        (CCScrollbarLayerImpl):
112673
1126742012-06-27  Ian Vollick  <vollick@chromium.org>
112675
112676        [chromium] Allow screen space rects and occluding rects to be visualized for debugging.
112677        https://bugs.webkit.org/show_bug.cgi?id=90012
112678
112679        Reviewed by Adrienne Walker.
112680
112681        No new tests. No new functionality.
112682
112683        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
112684        (WebCore::CCDebugRectHistory::enabled):
112685        (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
112686        (WebCore::CCDebugRectHistory::saveScreenSpaceRects):
112687        (WebCore):
112688        (WebCore::CCDebugRectHistory::saveOccludingRects):
112689        * platform/graphics/chromium/cc/CCDebugRectHistory.h:
112690        (WebCore):
112691        (CCDebugRectHistory):
112692        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
112693        (WebCore::CCHeadsUpDisplay::showDebugRects):
112694        (WebCore::CCHeadsUpDisplay::draw):
112695        (WebCore::CCHeadsUpDisplay::drawDebugRects):
112696        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
112697        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
112698        (CCLayerTreeSettings):
112699        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
112700        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
112701        (WebCore::CCLayerTreeHostImpl::drawLayers):
112702        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
112703        (FrameData):
112704        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
112705        (WebCore::::CCOcclusionTrackerBase):
112706        (WebCore::addOcclusionBehindLayer):
112707        (WebCore::::markOccludedBehindLayer):
112708        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
112709        (CCOcclusionTrackerBase):
112710        (WebCore::CCOcclusionTrackerBase::setOccludingScreenSpaceRectsContainer):
112711
1127122012-06-27  Anthony Scian  <ascian@rim.com>
112713
112714        Web Inspector [JSC]: Implement ScriptCallStack::stackTrace
112715        https://bugs.webkit.org/show_bug.cgi?id=40118
112716
112717        Reviewed by Yong Li.
112718
112719        Implemented stub for createScriptCallStack to call into
112720        Interpreter and extract the current stack frames, iterate
112721        through the frames and create the return result required.
112722
112723        No new tests, manually tested thrown exception and inspector
112724        tracebacks.
112725
112726        * bindings/js/ScriptCallStackFactory.cpp:
112727        (WebCore::createScriptCallStack):
112728
1127292012-06-27  Ryosuke Niwa  <rniwa@webkit.org>
112730
112731        Let Xcode have its own way.
112732
112733        * WebCore.xcodeproj/project.pbxproj:
112734
1127352012-06-27  Ryosuke Niwa  <rniwa@webkit.org>
112736
112737        REGRESSION (Safari 5?): Pasting a line into textarea inserts two newlines
112738        https://bugs.webkit.org/show_bug.cgi?id=49288
112739
112740        Reviewed by Tony Chang.
112741
112742        The bug was caused by positionAvoidingPrecedingNodes getting out of a block when the insertion point is at a line break.
112743        It caused the subsequent code to be misinformed of the insertion position and ended up not pruning the extra line break.
112744
112745        Fixed the bug by checking this special case and bailing out so that we don't crawl out of the enclosing block.
112746        It's similar to checks several lines below it.
112747
112748        Test: editing/pasteboard/copy-paste-pre-line-content.html
112749
112750        * editing/ReplaceSelectionCommand.cpp:
112751        (WebCore::positionAvoidingPrecedingNodes):
112752
1127532012-06-27  Andrei Onea  <onea@adobe.com>
112754
112755        [CSSRegions]Change display values that allow regions
112756        https://bugs.webkit.org/show_bug.cgi?id=89759
112757
112758        Reviewed by Tony Chang.
112759
112760        Allow only elements with display values of block, inline-block,
112761        table-cell, table-caption and list-item to become regions, as per
112762        CSSRegions spec: http://dev.w3.org/csswg/css3-regions .
112763        Also added test for checking whether regions are destroyed and/or created
112764        when changing display value.
112765
112766        Test: fast/regions/region-element-display-change.html
112767
112768        * rendering/RenderObject.cpp:
112769        (WebCore::RenderObject::createObject):
112770        * rendering/style/RenderStyle.h:
112771
1127722012-06-27  Mike Lawther  <mikelawther@chromium.org>
112773
112774        CSS3 calc: blending involving expressions
112775        https://bugs.webkit.org/show_bug.cgi?id=86160
112776
112777        Reviewed by Tony Chang.
112778
112779        If either endpoint of a blend involves a calc expression, we create a new
112780        expression to perform the blend calculation.
112781
112782        Test: css3/calc/transitions.html
112783              css3/calc/transitions-dependent.html
112784
112785        * platform/Length.cpp:
112786        (WebCore):
112787        (WebCore::Length::blendCalculation):
112788        * platform/Length.h:
112789        (WebCore::Length::blend):
112790        (Length):
112791
1127922012-06-27  Hans Muller  <hmuller@adobe.com>
112793
112794        Move CSSWrapShape style resolution from StyleResolver to StyleBuilder
112795        https://bugs.webkit.org/show_bug.cgi?id=89668
112796
112797        Reviewed by Andreas Kling.
112798
112799        Moved the resolution of the shapeInside and shapeOutside CSS properties
112800        from the StyleResolver class to StyleBuilder. This is just refactoring
112801        in preparation for fixing https://bugs.webkit.org/show_bug.cgi?id=89670.
112802
112803        No new tests were required.
112804
112805        * css/StyleBuilder.cpp:
112806        (WebCore):
112807        (ApplyPropertyWrapShape):
112808        (WebCore::ApplyPropertyWrapShape::setValue):
112809        (WebCore::ApplyPropertyWrapShape::applyValue):
112810        (WebCore::ApplyPropertyWrapShape::createHandler):
112811        (WebCore::StyleBuilder::StyleBuilder):
112812        * css/StyleResolver.cpp:
112813        (WebCore::StyleResolver::collectMatchingRulesForList):
112814
1128152012-06-27  Alexandru Chiculita  <achicu@adobe.com>
112816
112817        Blur filter causes issues when scrolling
112818        https://bugs.webkit.org/show_bug.cgi?id=89475
112819
112820        Reviewed by Simon Fraser.
112821
112822        This patch disables the fast scrolling when there is a fixed postioned element that
112823        has a filter applied on its parent layer. Otherwise the scroll blitting will just
112824        copy the outsets of the blur effect.
112825
112826        Test: css3/filters/blur-filter-page-scroll.html
112827
112828        * page/FrameView.cpp:
112829        (WebCore::FrameView::scrollContentsFastPath):
112830
1128312012-06-27  Andreas Kling  <kling@webkit.org>
112832
112833        REGRESSION(r121296): New zero-size background tests asserting on Mac.
112834        <http://webkit.org/b/90071>
112835
112836        Reviewed by Dan Bernstein.
112837
112838        Remove ASSERT(patternTransform.isInvertible()) as this is now a valid scenario.
112839
112840        * platform/graphics/cg/ImageCG.cpp:
112841        (WebCore::Image::drawPattern):
112842
1128432012-06-27  Shinya Kawanaka  <shinyak@chromium.org>
112844
112845        HTMLStyleElement::removedFrom seems incorrect.
112846        https://bugs.webkit.org/show_bug.cgi?id=89986
112847
112848        Reviewed by Hajime Morita.
112849
112850        This is a follow-up patch for Bug 88495. The Same bug as Bug 88495 seems to exist on
112851        HTMLStyleElement::removedFrom().
112852
112853        No new tests, hard to write a test case.
112854
112855        * html/HTMLStyleElement.cpp:
112856        (WebCore::HTMLStyleElement::removedFrom):
112857
1128582012-06-27  Mike Reed  <reed@google.com>
112859
112860        Cleanup scaling code in text-decorations for SVG InlineText. Use scale() instead of getCTM/normalizeTransform/setCTM
112861        to use more standard pattern for scaling, and to allow for these operations to be recorded and played back later
112862        (potentially with a different starting matrix). This effectively reverts change# 78704.
112863        https://bugs.webkit.org/show_bug.cgi?id=89888
112864
112865        Reviewed by Nikolas Zimmermann.
112866
112867        No new tests. Current layouttests exercise this code path.
112868
112869        * rendering/svg/SVGInlineTextBox.cpp:
112870        (WebCore::SVGInlineTextBox::paintDecorationWithStyle):
112871        (WebCore::SVGInlineTextBox::paintTextWithShadows):
112872
1128732012-06-27  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
112874
112875        [Qt] Remove redundant NDEBUG definition
112876
112877        Already handled in default_post.prf.
112878
112879        Reviewed by Tor Arne Vestbø.
112880
112881        * WebCore.pri:
112882
1128832012-06-27  Alexander Pavlov  <apavlov@chromium.org>
112884
112885        Unexpected end of style sheet in @font-face rule discards it rather than closes all open constructs
112886        https://bugs.webkit.org/show_bug.cgi?id=89980
112887
112888        Reviewed by Antti Koivisto.
112889
112890        Use the "closing_brace" at the end of font_face rather than the explicit "'}' maybe_space".
112891
112892        Test: fast/css/font-face-unexpected-end.html
112893
112894        * css/CSSGrammar.y:
112895
1128962012-06-26  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
112897
112898        [Qt] Add missing heades to HEADERS
112899
112900        For JavaScriptCore there aren't any Qt specific files, so we include all
112901        headers for easy editing in Qt Creator.
112902
112903        Reviewed by Simon Hausmann.
112904
112905        * Target.pri:
112906
1129072012-06-27  Kentaro Hara  <haraken@chromium.org>
112908
112909        Rename Element::rareData() to Element::elementRareData(), and Element::ensureRareData() to Element::ensureElementRareData()
112910        https://bugs.webkit.org/show_bug.cgi?id=90050
112911
112912        Reviewed by Ryosuke Niwa.
112913
112914        Element::rareData()/Element::ensureRareData() and
112915        Node::rareData()/Node::ensureRareData() are confusing. They are not virtual
112916        methods. For clarification, we can rename Element::rareData() to
112917        Element::elementRareData(), and Element::ensureRareData() to
112918        Element::ensureElementRareData().
112919
112920        c.f. SVGRareData uses SVGElement::rareSVGData() and SVGElement::ensureRareSVGData().
112921        (We might want to rename them to SVGElement::svgRareData() and
112922        SVGElement::ensureSVGRareData() in a follow-up patch.)
112923
112924        No tests. No change in behavior.
112925
112926        * dom/Element.cpp:
112927        (WebCore::Element::~Element):
112928        (WebCore::Element::elementRareData):
112929        (WebCore::Element::ensureElementRareData):
112930        (WebCore::Element::attributes):
112931        (WebCore::Element::attach):
112932        (WebCore::Element::detach):
112933        (WebCore::Element::recalcStyle):
112934        (WebCore::Element::shadow):
112935        (WebCore::Element::ensureShadow):
112936        (WebCore::Element::shadowPseudoId):
112937        (WebCore::Element::setShadowPseudoId):
112938        (WebCore::Element::focus):
112939        (WebCore::Element::minimumSizeForResizing):
112940        (WebCore::Element::setMinimumSizeForResizing):
112941        (WebCore::Element::computedStyle):
112942        (WebCore::Element::setStyleAffectedByEmpty):
112943        (WebCore::Element::styleAffectedByEmpty):
112944        (WebCore::Element::cancelFocusAppearanceUpdate):
112945        (WebCore::Element::classList):
112946        (WebCore::Element::optionalClassList):
112947        (WebCore::Element::dataset):
112948        (WebCore::Element::containsFullScreenElement):
112949        (WebCore::Element::setContainsFullScreenElement):
112950        (WebCore::Element::hasNamedNodeMap):
112951        (WebCore::Element::ensureCachedHTMLCollection):
112952        (WebCore::Element::savedLayerScrollOffset):
112953        (WebCore::Element::setSavedLayerScrollOffset):
112954        * dom/Element.h:
112955        (Element):
112956        * html/LabelableElement.cpp:
112957        (WebCore::LabelableElement::labels):
112958
1129592012-06-26  Dominic Cooney  <dominicc@chromium.org>
112960
112961        [Chromium] Remove unused build scripts and empty folders for JavaScriptCore w/ gyp
112962        https://bugs.webkit.org/show_bug.cgi?id=90029
112963
112964        * gyp: Removed empty dir.
112965
1129662012-06-27  Sheriff Bot  <webkit.review.bot@gmail.com>
112967
112968        Unreviewed, rolling out r121271.
112969        http://trac.webkit.org/changeset/121271
112970        https://bugs.webkit.org/show_bug.cgi?id=90056
112971
112972        Broke a whole bunch of tests and also caused crashes in some
112973        tests (Requested by rniwa on #webkit).
112974
112975        * editing/Editor.cpp:
112976        (WebCore::Editor::markAndReplaceFor):
112977
1129782012-06-27  Zan Dobersek  <zandobersek@gmail.com>
112979
112980        [Gtk] Add support for the Gamepad API
112981        https://bugs.webkit.org/show_bug.cgi?id=87503
112982
112983        Reviewed by Carlos Garcia Campos.
112984
112985        Add support for the Gamepad feature on the GTK port.
112986
112987        The support is available only on Linux, with each gamepad device being presented
112988        through a GamepadDeviceLinux object. The implementation of this class relies on
112989        the Linux kernel joystick API.
112990
112991        Gamepad devices are recognized through the GamepadsGtk class, of which implementation
112992        is based on GUdev. This way devices are properly registered on connection as objects of
112993        the GamepadDeviceGtk class which inherits GamepadDeviceLinux. GamepadDeviceGtk reads the
112994        joystick data through GIO pollable streams and updates the device state accordingly. The
112995        GamepadsGtk object is then polled for gamepads data through the sampleGamepads method.
112996
112997        No new tests - tests already exist but require additional testing infrastructure.
112998
112999        * GNUmakefile.am:
113000        * GNUmakefile.list.am:
113001        * bindings/gobject/GNUmakefile.am:
113002        * bindings/js/JSDOMBinding.h: Add the jsArray method that operates on a Vector of floats.
113003        (WebCore):
113004        (WebCore::jsArray):
113005        * platform/gtk/GamepadsGtk.cpp: Added.
113006        (WebCore):
113007        (GamepadDeviceGtk):
113008        (WebCore::GamepadDeviceGtk::create):
113009        (WebCore::GamepadDeviceGtk::GamepadDeviceGtk):
113010        (WebCore::GamepadDeviceGtk::~GamepadDeviceGtk):
113011        (WebCore::GamepadDeviceGtk::readCallback):
113012        (GamepadsGtk):
113013        (WebCore::GamepadsGtk::GamepadsGtk):
113014        (WebCore::GamepadsGtk::~GamepadsGtk):
113015        (WebCore::GamepadsGtk::registerDevice):
113016        (WebCore::GamepadsGtk::unregisterDevice):
113017        (WebCore::GamepadsGtk::updateGamepadList):
113018        (WebCore::GamepadsGtk::onUEventCallback):
113019        (WebCore::GamepadsGtk::isGamepadDevice):
113020        (WebCore::sampleGamepads):
113021        * platform/linux/GamepadDeviceLinux.cpp: Added.
113022        (WebCore):
113023        (WebCore::GamepadDeviceLinux::GamepadDeviceLinux):
113024        (WebCore::GamepadDeviceLinux::~GamepadDeviceLinux):
113025        (WebCore::GamepadDeviceLinux::updateForEvent):
113026        (WebCore::GamepadDeviceLinux::normalizeAxisValue):
113027        (WebCore::GamepadDeviceLinux::normalizeButtonValue):
113028        * platform/linux/GamepadDeviceLinux.h: Added.
113029        (WebCore):
113030        (GamepadDeviceLinux):
113031        (WebCore::GamepadDeviceLinux::connected):
113032        (WebCore::GamepadDeviceLinux::id):
113033        (WebCore::GamepadDeviceLinux::timestamp):
113034        (WebCore::GamepadDeviceLinux::axesCount):
113035        (WebCore::GamepadDeviceLinux::axesData):
113036        (WebCore::GamepadDeviceLinux::buttonsCount):
113037        (WebCore::GamepadDeviceLinux::buttonsData):
113038
1130392012-06-27  Kentaro Hara  <haraken@chromium.org>
113040
113041        Rename rareSVGData() to svgRareData()
113042        https://bugs.webkit.org/show_bug.cgi?id=90051
113043
113044        Reviewed by Nikolas Zimmermann.
113045
113046        Since rareSVGData() returns SVGRareData, it would make sense to
113047        rename rareSVGData() to svgRareData(). Similarly, we can rename
113048        ensureRareSVGData() to ensureSVGRareData(), and hasRareSVGData()
113049        to hasSVGRareData().
113050
113051        c.f. bug 90050 is trying to introduce elementRareData() and
113052        ensureElementRareData().
113053
113054        No tests. No change in behavior.
113055
113056        * WebCore.order:
113057        * dom/Node.h:
113058        (WebCore::Node::hasSVGRareData):
113059        (WebCore::Node::setHasSVGRareData):
113060        (WebCore::Node::clearHasSVGRareData):
113061        * svg/SVGElement.cpp:
113062        (WebCore::SVGElement::~SVGElement):
113063        (WebCore::SVGElement::willRecalcStyle):
113064        (WebCore::SVGElement::svgRareData):
113065        (WebCore::SVGElement::ensureSVGRareData):
113066        (WebCore::SVGElement::mapInstanceToElement):
113067        (WebCore::SVGElement::removeInstanceMapping):
113068        (WebCore::SVGElement::instancesForElement):
113069        (WebCore::SVGElement::setCursorElement):
113070        (WebCore::SVGElement::cursorElementRemoved):
113071        (WebCore::SVGElement::setCursorImageValue):
113072        (WebCore::SVGElement::cursorImageValueRemoved):
113073        (WebCore::SVGElement::correspondingElement):
113074        (WebCore::SVGElement::setCorrespondingElement):
113075        (WebCore::SVGElement::animatedSMILStyleProperties):
113076        (WebCore::SVGElement::ensureAnimatedSMILStyleProperties):
113077        (WebCore::SVGElement::setUseOverrideComputedStyle):
113078        (WebCore::SVGElement::computedStyle):
113079        * svg/SVGElement.h:
113080        (SVGElement):
113081        * svg/SVGStyledElement.cpp:
113082        (WebCore::SVGStyledElement::instanceUpdatesBlocked):
113083        (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
113084        (WebCore::SVGStyledElement::hasPendingResources):
113085        (WebCore::SVGStyledElement::setHasPendingResources):
113086        (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible):
113087
1130882012-06-27  Kentaro Hara  <haraken@chromium.org>
113089
113090        LabelableElement.cpp should include not ElementRareData.h but NodeRareData.h
113091        https://bugs.webkit.org/show_bug.cgi?id=90047
113092
113093        Reviewed by Kent Tamura.
113094
113095        This is a simple refactoring. What LabelableElement uses is
113096        not ElementRareData but NodeRareData.
113097
113098        No tests. No change in behavior.
113099
113100        * html/LabelableElement.cpp:
113101
1131022012-06-27  Kentaro Hara  <haraken@chromium.org>
113103
113104        [V8] Refactor V8BindingPerIsolateData::current() and V8BindingPerIsolateData::get()
113105        https://bugs.webkit.org/show_bug.cgi?id=90044
113106
113107        Reviewed by Adam Barth.
113108
113109        'static_cast<V8BindingPerIsolateData*>(isolate->GetData())' is duplicated
113110        in V8BindingPerIsolateData::current() and V8BindingPerIsolateData::get().
113111        This patch removes the duplication.
113112
113113        No tests. No change in behavior.
113114
113115        * bindings/v8/V8Binding.h:
113116        (WebCore::V8BindingPerIsolateData::current):
113117
1131182012-06-26  Yoshifumi Inoue  <yosin@chromium.org>
113119
113120        [Platform] Change implementation of LocaleICU class to support more UDateFormat.
113121        https://bugs.webkit.org/show_bug.cgi?id=89967
113122
113123        Reviewed by Kent Tamura.
113124
113125        This patch changes internal functions of LocaleICU class to process
113126        multiple ICU date time format handles in addition to short date time
113127        format handle.
113128
113129        This patch is a part of implementing input type time. I'll add time
113130        format related ICU date time format handles.
113131
113132        No new tests. This patch doesn't change behavior.
113133
113134        * platform/text/LocaleICU.cpp:
113135        (WebCore::LocaleICU::initializeShortDateFormat): Changed to use openDateFormat().
113136        (WebCore::LocaleICU::openDateFormat): Added for common usage of udt_open().
113137        (WebCore::getDateFormatPattern): Added for common usage of udt_toPattern().
113138        (WebCore::localizeFormat): Changed to take String parameter.
113139        (WebCore::LocaleICU::initializeLocalizedDateFormatText): Changed to use getDateFormatPattern.
113140        (WebCore::LocaleICU::createLabelVector): Changed to take UDateFormat parameter.
113141        (WebCore::LocaleICU::initializeCalendar): Changed for helper functions.
113142        * platform/text/LocaleICU.h:
113143        (LocaleICU):
113144
1131452012-06-26  Luke Macpherson  <macpherson@chromium.org>
113146
113147        Return correct value for css variables enabled runtime flag.
113148        https://bugs.webkit.org/show_bug.cgi?id=90040
113149
113150        Reviewed by Dimitri Glazkov.
113151
113152        Was always returning true for the runtime flag when the compile time flag was on. That was good for testing,
113153        but not so much for production.
113154
113155        * page/Settings.h:
113156        (WebCore::Settings::cssVariablesEnabled):
113157
1131582012-06-26  Xueqing Huang  <huangxueqing@baidu.com>
113159
113160        DragData::asFilenames should not push same file names to result in Windows.
113161        https://bugs.webkit.org/show_bug.cgi?id=79861
113162
113163        Reviewed by Alexey Proskuryakov.
113164
113165        Test: platform/win/fast/forms/file/drag-and-drop-files.html 
113166
113167        * platform/win/DragDataWin.cpp:
113168        (WebCore::DragData::asFilenames):
113169
1131702012-06-26  Geoffrey Garen  <ggaren@apple.com>
113171
113172        Reduced (but did not eliminate) use of "berzerker GC"
113173        https://bugs.webkit.org/show_bug.cgi?id=89237
113174
113175        Reviewed by Gavin Barraclough.
113176
113177        (PART 2)
113178
113179        Don't ASSERT that RootObject's destructor runs and invalidates all
113180        RuntimeObjects before their destructors run.
113181
113182        We don't guarantee this behavior because some RuntimeObjects may already
113183        be garbage by the time RootObject's destructor runs, in which case
113184        RootObject's weak pointers will be NULL, and RootObject will not call
113185        invalidate() on them.
113186
113187        It's been theoretically possible for this ASSERT to fire for a while now.
113188        This patch makes it fire all the time.
113189
113190        Luckily, we only needed the behavior guarded by this ASSERT for WebKit1
113191        in Safari on Windows (cf. https://bugs.webkit.org/show_bug.cgi?id=61317),
113192        to handle the way WebKit1 would unload plugin DLLs. If this ever becomes
113193        an issue again, we can fix it by (a) not unloading plugin DLLs,
113194        (b) migrating WebKit1 to the WebKit2 JS-plugin binding model, (c) making
113195        the Instance pointer in a RuntimeObject an indirect pointer through
113196        RootObject, or (c) giving RuntimeObject some sort of special way to
113197        access a zombie weak pointer.
113198
113199        * bridge/runtime_object.cpp:
113200        (JSC::Bindings::RuntimeObject::destroy): ASSERT removed. Anders said so.
113201
1132022012-06-26  Douglas Stockwell  <dstockwell@chromium.org>
113203
113204        REGRESSION(r107836): box shadow not drawn for opaque images with an opaque background
113205        https://bugs.webkit.org/show_bug.cgi?id=89958
113206
113207        Reviewed by Simon Fraser.
113208
113209        Don't attempt to draw the box shadow as part of the background if the background is
113210        obscured.
113211
113212        Test: fast/box-shadow/image-box-shadow.html
113213
113214        * rendering/RenderImage.cpp:
113215        (WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
113216        (WebCore):
113217        * rendering/RenderImage.h:
113218        (RenderImage):
113219
1132202012-06-26  Nico Weber  <thakis@chromium.org>
113221
113222        Fix new Wunused-private-field violations that crept in
113223        https://bugs.webkit.org/show_bug.cgi?id=90032
113224
113225        Reviewed by Adam Barth.
113226
113227        * page/Performance.h:
113228        (Performance):
113229
1132302012-06-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
113231
113232        Change return type in bandwidth attribute of network information API
113233        https://bugs.webkit.org/show_bug.cgi?id=89959
113234
113235        Reviewed by Adam Barth.
113236
113237        According to network information API spec, bandwidth attribute should return double type.
113238        But, existing implementation has used *long* and *unsigned int* types.
113239
113240        No new tests. Covered by existing tests.
113241
113242        * Modules/networkinfo/NetworkInfo.cpp:
113243        (WebCore::NetworkInfo::NetworkInfo):
113244        * Modules/networkinfo/NetworkInfo.h:
113245        (WebCore::NetworkInfo::create):
113246        (WebCore::NetworkInfo::bandwidth):
113247        (NetworkInfo):
113248        * Modules/networkinfo/NetworkInfoClient.h:
113249        (NetworkInfoClient):
113250        * Modules/networkinfo/NetworkInfoConnection.cpp:
113251        (WebCore::NetworkInfoConnection::bandwidth):
113252        * Modules/networkinfo/NetworkInfoConnection.h:
113253        (NetworkInfoConnection):
113254        * testing/Internals.cpp:
113255        (WebCore::Internals::setNetworkInformation):
113256        * testing/Internals.h:
113257        (Internals):
113258        * testing/Internals.idl:
113259
1132602012-06-26  Luke Macpherson  <macpherson@chromium.org>
113261
113262        Be careful not to read past the end of input in CSSParser::lex() when looking for variable definitions.
113263        https://bugs.webkit.org/show_bug.cgi?id=89949
113264
113265        Reviewed by Abhishek Arya.
113266
113267        Added repro case as fast/css/short-inline-style.html.
113268
113269        * css/CSSParser.cpp:
113270        (WebCore::CSSParser::lex):
113271
1132722012-06-26  James Robinson  <jamesr@chromium.org>
113273
113274        [chromium] Remove WebView::graphicsContext3D getter
113275        https://bugs.webkit.org/show_bug.cgi?id=89916
113276
113277        Reviewed by Adrienne Walker.
113278
113279        Deletes code supporting compositor context getter.
113280
113281        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
113282        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
113283        (CCLayerTreeHost):
113284        * platform/graphics/chromium/cc/CCProxy.h:
113285        (CCProxy):
113286        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
113287        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
113288        (CCSingleThreadProxy):
113289        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
113290        * platform/graphics/chromium/cc/CCThreadProxy.h:
113291        (CCThreadProxy):
113292
1132932012-06-26  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
113294
113295        Unexpected element sizes when mixing inline-table with box-sizing
113296        https://bugs.webkit.org/show_bug.cgi?id=89819
113297
113298        Reviewed by Julien Chaffraix.
113299
113300        This change handles box-sizing: border-box property for CSS tables properly.
113301
113302        Test: fast/box-sizing/css-table-with-box-sizing.html
113303
113304        * rendering/RenderTable.cpp:
113305        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
113306        (WebCore::RenderTable::layout):
113307
1133082012-06-26  Simon Fraser  <simon.fraser@apple.com>
113309
113310        Optimize mappings of simple transforms in RenderGeometryMap
113311        https://bugs.webkit.org/show_bug.cgi?id=90034
113312
113313        Reviewed by Dean Jackson.
113314        
113315        For transforms that are identity or simple translations, don't
113316        fall off the fast path in RenderGeometryMap; we can just
113317        treat them as offsets.
113318        
113319        Improves performance on pages with lots of translateZ(0) elements.
113320        
113321        Remove RenderGeometryMapStep::mapPoint() and mapQuad(), which
113322        were unused.
113323
113324        No new tests; optimization only, and tested by assertions.
113325
113326        * rendering/RenderGeometryMap.cpp:
113327        (WebCore::RenderGeometryMap::push):
113328
1133292012-06-26  Kevin Ellis  <kevers@chromium.org>
113330
113331        Touch adjustment does not target shadow DOM elements
113332        https://bugs.webkit.org/show_bug.cgi?id=89556
113333
113334        The position of internal shadow-DOM nodes were not being considered
113335        when determining the snap position when TOUCH_ADJUSTMENT is enabled 
113336        for fine tuning the position of synthetic mouse events.  This 
113337        restriction results in not being able to select the calendar picker
113338        when input type=date, or to clear the search field for input 
113339        type=search.
113340
113341        Reviewed by Antonio Gomes.
113342
113343        Test: touchadjustment/nested-shadow-node.html
113344
113345        * page/EventHandler.cpp:
113346        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
113347
1133482012-06-26  Ryosuke Niwa  <rniwa@webkit.org>
113349
113350        Stop calling node() and deprecatedEditingOffset() in comparePositions
113351        https://bugs.webkit.org/show_bug.cgi?id=54535
113352
113353        Reviewed by Enrica Casucci.
113354
113355        Replaced deprecatedNode() and deprecatedEditingOffset() by containerNode() and computeOffsetInContainerNode()
113356        in comparePositions().
113357        
113358        In addition, fixed a bunch of bugs in DeleteSelectionCommand::handleSpecialCaseBRDelete revealed by this change:
113359        - Use node after position instead of deprecated node in determinig whether start and end positions at a br.
113360        - Don't set m_startsAtEmptyLine true when BR is wrapped in a block element. The only reason this code had worked
113361        was positions like (div, offset, 0) and (br, before) in <div><br> were treated differently, which we no longer do.
113362
113363        * editing/DeleteSelectionCommand.cpp:
113364        (WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete):
113365        * editing/htmlediting.cpp:
113366        (WebCore::comparePositions):
113367
1133682012-06-26  Christophe Dumez  <christophe.dumez@intel.com>
113369
113370        [EFL] Use eina_file_ls() in EFL implementation of FileSystem listDirectory()
113371        https://bugs.webkit.org/show_bug.cgi?id=89976
113372
113373        Reviewed by Antonio Gomes.
113374
113375        Rewrite EFL implementation of Filesystem listDirectory() in order to
113376        use eina_file_ls() instead of POSIX C functions. This results in
113377        shorter code.
113378
113379        No new tests, behavior has not changed.
113380
113381        * platform/efl/FileSystemEfl.cpp:
113382        (WebCore::listDirectory):
113383
1133842012-06-26  Alice Cheng  <alice_cheng@apple.com>
113385
113386        Crash at WebCore::TextIterator::handleTextBox
113387        https://bugs.webkit.org/show_bug.cgi?id=89526
113388        <rdar://problem/10305315>
113389
113390        Reviewed by Darin Adler.
113391
113392        The range used for marking becomes invalid after SpellingCorrectionCommand, due to changes in the DOM made by ReplaceSelectionCommand. 
113393        This invalid range caused marking to be incorrect, and Mail.app to crash when iterating through the invalid range.  To fix this,
113394        recalculate the range for marking after SpellingCorrectionCommand.
113395
113396        Test: platform/mac/editing/spelling/autocorrection-blockquote-crash.html
113397
113398        * editing/AlternativeTextController.cpp:
113399        (WebCore::AlternativeTextController::applyAlternativeTextToRange):
113400        * editing/Editor.cpp:  (WebCore::Editor::markAndReplaceFor):
113401        * testing/Internals.cpp:
113402        (WebCore):
113403        (WebCore::Internals::hasAutocorrectedMarker):
113404        * testing/Internals.h: (Internals):
113405        * testing/Internals.idl:
113406
1134072012-06-26  Tom Sepez  <tsepez@chromium.org>
113408
113409        [chromium] HTML5 audio/video tags - loading http content from https page doesn't trigger warning.
113410        https://bugs.webkit.org/show_bug.cgi?id=89906
113411
113412        Reviewed by Nate Chapin.
113413
113414        This patch treats mixed CachedRawResources as affecting the display of insecure content.
113415
113416        Tests: http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html
113417               http/tests/security/mixedContent/insecure-xhr-in-main-frame.html
113418
113419        * loader/cache/CachedResourceLoader.cpp:
113420        (WebCore::CachedResourceLoader::checkInsecureContent):
113421
1134222012-06-26  Joe Thomas  <joethomas@motorola.com>
113423
113424        background-size:0 shows as 1px instead of invisible
113425        https://bugs.webkit.org/show_bug.cgi?id=86942
113426
113427        Reviewed by Eric Seidel.
113428
113429        As per the specification http://www.w3.org/TR/css3-background/#background-size, if the background image's width or height resolves to zero,
113430        this causes the image not to be displayed. The effect should be the same as if it had been a transparent image.
113431        This is also mentioned in http://www.w3.org/TR/2002/WD-css3-background-20020802/#background-size.
113432
113433        Test: fast/backgrounds/zero-background-size.html
113434
113435        * rendering/RenderBoxModelObject.cpp:
113436        (WebCore::RenderBoxModelObject::calculateFillTileSize):
113437
1134382012-06-26  Adam Klein  <adamk@chromium.org>
113439
113440        [v8] Clean up generated Dictionary-handling code
113441        https://bugs.webkit.org/show_bug.cgi?id=89994
113442
113443        Reviewed by Adam Barth.
113444
113445        No change in behavior, so no new tests.
113446
113447        * bindings/scripts/CodeGeneratorV8.pm:
113448        (GenerateParametersCheck):
113449        * bindings/scripts/test/V8/V8TestObj.cpp:
113450        (WebCore::TestObjV8Internal::optionsObjectCallback):
113451
1134522012-06-26  Raymond Toy  <rtoy@google.com>
113453
113454        Include stdio.h when DEBUG_AUDIONODE_REFERENCES is set
113455        https://bugs.webkit.org/show_bug.cgi?id=89997
113456
113457        Reviewed by Eric Seidel.
113458
113459        No new tests needed for a compile issue
113460
113461        * Modules/webaudio/AudioNode.cpp:  Include stdio.h
113462
1134632012-06-26  No'am Rosenthal  <noam.rosenthal@nokia.com>
113464
113465        [Qt] Use premultiplied alpha when extracting image data in WebGL
113466        https://bugs.webkit.org/show_bug.cgi?id=89937
113467
113468        Reviewed by Jocelyn Turcotte.
113469
113470        Perform conversion in QImage only if the image format is not ARGB32 or
113471        ARGB32_Premultiplied. Otherwise, allow packPixels to perform the conversion if the formats
113472        don't match, as packPixels already performs pixel-specific operations.
113473
113474        Covered by tests in LayoutTests/fast/canvas/webgl, e.g. webgl-composite-modes.html.
113475
113476        * platform/graphics/qt/GraphicsContext3DQt.cpp:
113477        (WebCore::GraphicsContext3D::getImageData):
113478
1134792012-06-26  Joshua Bell  <jsbell@chromium.org>
113480
113481        IndexedDB: Move method precondition checks to front end objects
113482        https://bugs.webkit.org/show_bug.cgi?id=89377
113483
113484        Reviewed by Tony Chang.
113485
113486        Now that metadata exists on the front end, most of the pre-condition validation checks
113487        done on IDB method calls from script can be moved to the front end which simplifies the
113488        code significantly in the case of complex methods like IDBObjectStore::put().
113489
113490        Adds an internal "active" flag for transactions, although the behavior is not accurate
113491        to the spec (it should only be true during event callbacks - http://webkit.org/b/89379).
113492        The back-end methods can then be simplifed to just adding async tasks to the transaction,
113493        and the front end methods can take care of all exception cases except for asynchronous
113494        transaction abort which still requires plumbing back to the front end.
113495
113496        No functional changes - no new tests.
113497
113498        * Modules/indexeddb/IDBCursor.cpp:
113499        (WebCore::IDBCursor::update): Migrate from IDBObjectStoreBackendImpl::put.
113500        (WebCore::IDBCursor::advance): Add more explicit transaction-is-active check.
113501        (WebCore::IDBCursor::continueFunction): Ditto.
113502        (WebCore::IDBCursor::deleteFunction): Ditto.
113503        (WebCore::IDBCursor::effectiveObjectStore): Convenience function (source may be store or index).
113504        (WebCore):
113505        * Modules/indexeddb/IDBCursor.h:
113506        (WebCore::IDBCursor::isKeyCursor): Distinguish from IDBCursorWithValue.
113507        (IDBCursor):
113508        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
113509        (WebCore::IDBCursorBackendImpl::update): Remove migrated check.
113510        * Modules/indexeddb/IDBCursorWithValue.h:
113511        (IDBCursorWithValue):
113512        * Modules/indexeddb/IDBDatabase.cpp: Migrate checks.
113513        (WebCore::IDBDatabase::createObjectStore):
113514        (WebCore::IDBDatabase::deleteObjectStore):
113515        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Replace checks with assertions.
113516        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
113517        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
113518        * Modules/indexeddb/IDBIndex.cpp: Add transaction-is-active checks.
113519        (WebCore::IDBIndex::openCursor):
113520        (WebCore::IDBIndex::count):
113521        (WebCore::IDBIndex::openKeyCursor):
113522        (WebCore::IDBIndex::get):
113523        (WebCore::IDBIndex::getKey):
113524        * Modules/indexeddb/IDBObjectStore.cpp: Migrate cehcks.
113525        (WebCore::IDBObjectStore::get):
113526        (WebCore::IDBObjectStore::add): Delegates to put(PutMode)
113527        (WebCore::IDBObjectStore::put): Delegates to put(PutMode)
113528        (WebCore): Adds put(PutMode) which has the unified checks migrated from
113529        IDBObjectStoreBackendImpl::put.
113530        (WebCore::IDBObjectStore::deleteFunction):
113531        (WebCore::IDBObjectStore::clear):
113532        (WebCore::IDBObjectStore::createIndex):
113533        (WebCore::IDBObjectStore::deleteIndex):
113534        (WebCore::IDBObjectStore::openCursor):
113535        (WebCore::IDBObjectStore::count):
113536        * Modules/indexeddb/IDBObjectStore.h: Adds put(PutMode).
113537        (IDBObjectStore):
113538        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
113539        (WebCore::IDBObjectStoreBackendImpl::getInternal): Fix trace symbol.
113540        (WebCore::IDBObjectStoreBackendImpl::put): Remove migrated checks.
113541        (WebCore::IDBObjectStoreBackendImpl::createIndex): Remove migrated checks.
113542        (WebCore::IDBObjectStoreBackendImpl::deleteIndex): Remove migrated checks.
113543        * Modules/indexeddb/IDBTransaction.cpp: Add active flag tracking.
113544        (WebCore::IDBTransaction::IDBTransaction):
113545        (WebCore::IDBTransaction::abort):
113546        (WebCore::IDBTransaction::onAbort):
113547        (WebCore::IDBTransaction::onComplete):
113548        * Modules/indexeddb/IDBTransaction.h:
113549        (WebCore::IDBTransaction::isActive):
113550        (WebCore::IDBTransaction::isReadOnly): Group IDL/non-IDL methods.
113551        (IDBTransaction):
113552
1135532012-06-26  Sheriff Bot  <webkit.review.bot@gmail.com>
113554
113555        Unreviewed, rolling out r121285.
113556        http://trac.webkit.org/changeset/121285
113557        https://bugs.webkit.org/show_bug.cgi?id=90014
113558
113559        "We misinterpreted 'size of the initial containing block'"
113560        (Requested by tomz on #webkit).
113561
113562        * css/CSSCalculationValue.cpp:
113563        (WebCore::CSSCalcValue::computeLengthPx):
113564        (WebCore::CSSCalcPrimitiveValue::toCalcValue):
113565        (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
113566        (WebCore::CSSCalcBinaryOperation::toCalcValue):
113567        (WebCore::CSSCalcBinaryOperation::computeLengthPx):
113568        * css/CSSCalculationValue.h:
113569        (CSSCalcExpressionNode):
113570        (WebCore::CSSCalcValue::toCalcValue):
113571        (CSSCalcValue):
113572        * css/CSSGradientValue.cpp:
113573        (WebCore::CSSGradientValue::addStops):
113574        (WebCore::positionFromValue):
113575        (WebCore::CSSGradientValue::computeEndPoint):
113576        (WebCore::CSSLinearGradientValue::createGradient):
113577        (WebCore::CSSRadialGradientValue::resolveRadius):
113578        (WebCore::CSSRadialGradientValue::createGradient):
113579        * css/CSSGradientValue.h:
113580        (CSSGradientValue):
113581        (CSSRadialGradientValue):
113582        * css/CSSPrimitiveValue.cpp:
113583        (WebCore::CSSPrimitiveValue::computeLength):
113584        (WebCore::CSSPrimitiveValue::computeLengthDouble):
113585        * css/CSSPrimitiveValue.h:
113586        (CSSPrimitiveValue):
113587        * css/CSSPrimitiveValueMappings.h:
113588        (WebCore::CSSPrimitiveValue::convertToLength):
113589        * css/CSSToStyleMap.cpp:
113590        (WebCore::CSSToStyleMap::mapFillSize):
113591        (WebCore::CSSToStyleMap::mapFillXPosition):
113592        (WebCore::CSSToStyleMap::mapFillYPosition):
113593        (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
113594        * css/CSSToStyleMap.h:
113595        (CSSToStyleMap):
113596        * css/MediaQueryEvaluator.cpp:
113597        (WebCore::computeLength):
113598        (WebCore::device_heightMediaFeatureEval):
113599        (WebCore::device_widthMediaFeatureEval):
113600        (WebCore::heightMediaFeatureEval):
113601        (WebCore::widthMediaFeatureEval):
113602        * css/SVGCSSStyleSelector.cpp:
113603        (WebCore::StyleResolver::applySVGProperty):
113604        * css/StyleBuilder.cpp:
113605        (WebCore::ApplyPropertyAuto::applyValue):
113606        (WebCore::ApplyPropertyClip::convertToLength):
113607        (WebCore::ApplyPropertyLength::applyValue):
113608        (WebCore::ApplyPropertyBorderRadius::applyValue):
113609        (WebCore::ApplyPropertyComputeLength::applyValue):
113610        (WebCore::ApplyPropertyFontSize::applyValue):
113611        (WebCore::ApplyPropertyLineHeight::applyValue):
113612        (WebCore::ApplyPropertyPageSize::mmLength):
113613        (WebCore::ApplyPropertyPageSize::inchLength):
113614        (WebCore::ApplyPropertyPageSize::applyValue):
113615        (WebCore::ApplyPropertyVerticalAlign::applyValue):
113616        * css/StyleResolver.cpp:
113617        (WebCore::StyleResolver::collectMatchingRulesForList):
113618        * css/StyleResolver.h:
113619        (StyleResolver):
113620        * css/WebKitCSSMatrix.cpp:
113621        (WebCore::WebKitCSSMatrix::setMatrixValue):
113622
1136232012-06-26  Dave Tu  <dtu@chromium.org>
113624
113625        [chromium] Expose rendering statistics to WebWidget.
113626        https://bugs.webkit.org/show_bug.cgi?id=88268
113627
113628        Reviewed by James Robinson.
113629
113630        The WebKit side of a basic framework for exposing rendering statistics
113631        to Chromium's --enable-benchmarking extension.
113632
113633        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
113634        (WebCore::CCLayerTreeHost::implFrameNumber):
113635        * platform/graphics/chromium/cc/CCProxy.h:
113636        (CCProxy):
113637        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
113638        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
113639        (WebCore::CCThreadProxy::implFrameNumber):
113640        (WebCore):
113641        (WebCore::CCThreadProxy::implFrameNumberOnImplThread):
113642        * platform/graphics/chromium/cc/CCThreadProxy.h:
113643        (CCThreadProxy):
113644
1136452012-06-26  Dave Tharp  <dtharp@codeaurora.org>
113646
113647        ietestcenter/css3/valuesandunits/units-000.htm asserts
113648        https://bugs.webkit.org/show_bug.cgi?id=86176
113649
113650        Reviewed by Beth Dakin.
113651
113652        Modified computeLengthDouble() to handle vh, vw, and vmin units. Per the spec
113653        (http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths) viewport -percentage
113654        lengths are "relative to the size of the initial containing block", which I read to be
113655        the size of the parent element. Since parentStyle was not available in computeLengthDouble,
113656        most of the changes for this patch involved "pushing down" the parentStyle pointer through
113657        the network of computeLength methods and dependencies.
113658
113659        Tests: css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vh-border.html
113660               css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmin-border.html
113661               css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vw-border.html
113662
113663        * css/CSSCalculationValue.cpp:
113664        (WebCore::CSSCalcValue::computeLengthPx):
113665        (WebCore::CSSCalcPrimitiveValue::toCalcValue):
113666        (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
113667        (WebCore::CSSCalcBinaryOperation::toCalcValue):
113668        (WebCore::CSSCalcBinaryOperation::computeLengthPx):
113669        * css/CSSCalculationValue.h:
113670        (CSSCalcExpressionNode):
113671        (WebCore::CSSCalcValue::toCalcValue):
113672        (CSSCalcValue):
113673        * css/CSSGradientValue.cpp:
113674        (WebCore::CSSGradientValue::addStops):
113675        (WebCore::positionFromValue):
113676        (WebCore::CSSGradientValue::computeEndPoint):
113677        (WebCore::CSSLinearGradientValue::createGradient):
113678        (WebCore::CSSRadialGradientValue::resolveRadius):
113679        (WebCore::CSSRadialGradientValue::createGradient):
113680        * css/CSSGradientValue.h:
113681        (CSSGradientValue):
113682        (CSSRadialGradientValue):
113683        * css/CSSPrimitiveValue.cpp:
113684        (WebCore::CSSPrimitiveValue::computeLength):
113685        (WebCore::CSSPrimitiveValue::computeLengthDouble):
113686        * css/CSSPrimitiveValue.h:
113687        (CSSPrimitiveValue):
113688        * css/CSSPrimitiveValueMappings.h:
113689        (WebCore::CSSPrimitiveValue::convertToLength):
113690        * css/CSSToStyleMap.cpp:
113691        (WebCore::CSSToStyleMap::parentStyle):
113692        (WebCore):
113693        (WebCore::CSSToStyleMap::mapFillSize):
113694        (WebCore::CSSToStyleMap::mapFillXPosition):
113695        (WebCore::CSSToStyleMap::mapFillYPosition):
113696        (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
113697        * css/CSSToStyleMap.h:
113698        (CSSToStyleMap):
113699        * css/MediaQueryEvaluator.cpp:
113700        (WebCore::computeLength):
113701        (WebCore::device_heightMediaFeatureEval):
113702        (WebCore::device_widthMediaFeatureEval):
113703        (WebCore::heightMediaFeatureEval):
113704        (WebCore::widthMediaFeatureEval):
113705        * css/SVGCSSStyleSelector.cpp:
113706        (WebCore::StyleResolver::applySVGProperty):
113707        * css/StyleBuilder.cpp:
113708        (WebCore::ApplyPropertyAuto::applyValue):
113709        (WebCore::ApplyPropertyClip::convertToLength):
113710        (WebCore::ApplyPropertyLength::applyValue):
113711        (WebCore::ApplyPropertyBorderRadius::applyValue):
113712        (WebCore::ApplyPropertyComputeLength::applyValue):
113713        (WebCore::ApplyPropertyFontSize::applyValue):
113714        (WebCore::ApplyPropertyLineHeight::applyValue):
113715        (WebCore::ApplyPropertyPageSize::mmLength):
113716        (WebCore::ApplyPropertyPageSize::inchLength):
113717        (WebCore::ApplyPropertyPageSize::applyValue):
113718        (WebCore::ApplyPropertyVerticalAlign::applyValue):
113719        * css/StyleResolver.cpp:
113720        (WebCore::StyleResolver::collectMatchingRulesForList):
113721        * css/StyleResolver.h:
113722        (WebCore::StyleResolver::parentNode):
113723        (StyleResolver):
113724        * css/WebKitCSSMatrix.cpp:
113725        (WebCore::WebKitCSSMatrix::setMatrixValue):
113726
1137272012-06-25  James Robinson  <jamesr@chromium.org>
113728
113729        [chromium] Add WebLayer API for scrolling
113730        https://bugs.webkit.org/show_bug.cgi?id=89913
113731
113732        Reviewed by Adrienne Walker.
113733
113734        Use new WebScrollableLayer type in ScrollingCoordinatorChromium. This file peeks "under the hood" a fair amount
113735        since we don't have WebLayer API for scrollbar layers yet.
113736
113737        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
113738        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
113739        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
113740        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
113741        (WebCore::ScrollingCoordinatorPrivate::hasScrollLayer):
113742        (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
113743        (ScrollingCoordinatorPrivate):
113744        (WebCore::createScrollbarLayer):
113745        (WebCore::ScrollingCoordinator::setScrollLayer):
113746        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
113747        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
113748        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
113749
1137502012-06-26  James Robinson  <jamesr@chromium.org>
113751
113752        Unreviewed, rolling out r120501.
113753        http://trac.webkit.org/changeset/120501
113754        https://bugs.webkit.org/show_bug.cgi?id=89126
113755
113756        [skia] Fix is too heavy-handed
113757
113758        * platform/graphics/skia/ImageBufferSkia.cpp:
113759        (WebCore::drawNeedsCopy):
113760        * platform/graphics/skia/PlatformContextSkia.cpp:
113761        (WebCore::PlatformContextSkia::PlatformContextSkia):
113762        * platform/graphics/skia/PlatformContextSkia.h:
113763        (PlatformContextSkia):
113764        (WebCore::PlatformContextSkia::isDeferred):
113765        (WebCore::PlatformContextSkia::setDeferred):
113766
1137672012-06-26  Julien Chaffraix  <jchaffraix@webkit.org>
113768
113769        Crash in FixedTableLayout::layout
113770        https://bugs.webkit.org/show_bug.cgi?id=88676
113771
113772        Unreviewed typo fix, pointed out by Darin Adler.
113773
113774        * rendering/AutoTableLayout.cpp:
113775        (WebCore::AutoTableLayout::layout):
113776        * rendering/FixedTableLayout.cpp:
113777        (WebCore::FixedTableLayout::layout):
113778
1137792012-06-26  Adam Klein  <adamk@chromium.org>
113780
113781        MutationObserver.observe should treat a null or undefined options argument as empty
113782        https://bugs.webkit.org/show_bug.cgi?id=89992
113783
113784        Reviewed by Ojan Vafai.
113785
113786        The WebIDL spec was recently updated to treat null or undefined
113787        Dictionary arguments the same as the empty dictionary. This patch
113788        updates MutationObserver.observe to follow that spec.
113789
113790        Note that we still throw a SYNTAX_ERR in this case, since it's an
113791        error not to pass one of "attributes", "childList", or "characterData"
113792        as a key in the dictionary.
113793
113794        * dom/WebKitMutationObserver.cpp:
113795        (WebCore::WebKitMutationObserver::observe):
113796
1137972012-06-26  Ian Vollick  <vollick@chromium.org>
113798
113799        [chromium] The single thread proxy should not automatically tick new animations.
113800        https://bugs.webkit.org/show_bug.cgi?id=89996
113801
113802        Reviewed by James Robinson.
113803
113804        No new tests. No change to existing functionality.
113805
113806        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
113807        (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
113808        (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
113809        (WebCore::CCSingleThreadProxy::didAddAnimation):
113810        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
113811        (WebCore):
113812
1138132012-06-26  Julien Chaffraix  <jchaffraix@webkit.org>
113814
113815        Crash in FixedTableLayout::layout
113816        https://bugs.webkit.org/show_bug.cgi?id=88676
113817
113818        Reviewed by Abhishek Arya.
113819
113820        Tests: fast/table/auto-table-layout-colgroup-removal-crash.html
113821               fast/table/fixed-table-layout/colgroup-removal-crash.html
113822               fast/table/fixed-table-layout/prepend-in-fixed-table.html
113823
113824        The issue comes from RenderTable not properly dirtying its preferred logical
113825        widths. As the table layout codes (both fixed and auto), recomputes their internal
113826        structures at computePreferredLogicalWidth, the internal structure doesn't match
113827        the table sizing and we crash.
113828
113829        This fix adds a work-around in FixedTableLayout::layout (which matches AutoTableLayout).
113830        The long-term fix would be to properly fix the logic but this is a lot safer, especially
113831        since our logic is really not bullet-proof at the moment.
113832
113833        * rendering/FixedTableLayout.cpp:
113834        (WebCore::FixedTableLayout::layout):
113835        Added an internal structure recomputation, if we have drifted from our table's structure.
113836        Also we need to update nEffCols if we call calcWidthArray.
113837
113838        * rendering/AutoTableLayout.cpp:
113839        (WebCore::AutoTableLayout::layout):
113840        Added a comment matching FixedTableLayout. The nEffCols is unneeded but kept for consistency
113841        with FixedTableLayout.
113842
1138432012-06-26  Ian Vollick  <vollick@chromium.org>
113844
113845        [chromium] Layer chromium should need a redraw after getting its first non-empty bounds.
113846        https://bugs.webkit.org/show_bug.cgi?id=89784
113847
113848        Reviewed by James Robinson.
113849
113850        Previously, we'd only set needs redraw if the old bounds were zero,
113851        and the new bounds were non-zero, but we should actually have 
113852        checked that the old bounds were non-empty.
113853
113854        Unit test: LayerChromiumTestWithoutFixture.setBoundsTriggersSetNeedsRedrawAfterGettingNonEmptyBounds
113855
113856        * platform/graphics/chromium/LayerChromium.cpp:
113857        (WebCore::LayerChromium::setBounds):
113858
1138592012-06-26  Jia Pu  <jpu@apple.com>
113860
113861        On Mac, autocorrection sometimes fails to take place in Safari.
113862        https://bugs.webkit.org/show_bug.cgi?id=89982
113863
113864        Reviewed by Darin Adler.
113865
113866        Existing test was turned off due to intermittent failure, which is caused by autocorrection result depending on user data
113867        that may be altered by previous test runs. Hopefully we can turn the test back on once we have a way to make autocorrection
113868        behave consistently.
113869
113870        Basically we should check the value of shouldCheckForCorrection, not shouldShowCorrectionPanel, to determine if we should
113871        early return in markAndReplaceFor(). 
113872
113873        * editing/Editor.cpp:
113874        (WebCore::Editor::markAndReplaceFor):
113875
1138762012-06-26  Joe Thomas  <joethomas@motorola.com>
113877
113878        Do early-return when author and user styles are disabled.
113879        https://bugs.webkit.org/show_bug.cgi?id=89947
113880
113881        Reviewed by Andreas Kling.
113882
113883        * dom/Document.cpp:
113884        (WebCore::Document::collectActiveStylesheets):
113885
1138862012-06-26  James Robinson  <jamesr@chromium.org>
113887
113888        [chromium] Remove dead compositor-related API from GraphicsContext3DPrivate / Extensions3DChromium
113889        https://bugs.webkit.org/show_bug.cgi?id=89933
113890
113891        Reviewed by Kenneth Russell.
113892
113893        GraphicsContext3DPrivate and Extensions3DChromium had a fair amount of plumbing and boilerplate to support the
113894        compositor's use of GraphicsContext3D. A number of extensions, etc, only make sense for a compositor context.
113895        Since the compositor doesn't use GC3D any more, these are no longer needed.
113896
113897        * platform/chromium/support/Extensions3DChromium.cpp:
113898        * platform/chromium/support/GraphicsContext3DChromium.cpp:
113899        (WebCore::GraphicsContext3D::~GraphicsContext3D):
113900        (WebCore::GraphicsContext3D::create):
113901        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
113902        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
113903        (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromWebContext):
113904        (WebCore::GrMemoryAllocationChangedCallbackAdapter::GrMemoryAllocationChangedCallbackAdapter):
113905        (WebCore::GraphicsContext3DPrivate::grContext):
113906        * platform/chromium/support/GraphicsContext3DPrivate.h:
113907        (WebCore):
113908        (GraphicsContext3DPrivate):
113909        * platform/graphics/chromium/Extensions3DChromium.h:
113910
1139112012-06-26  Yasuhiro Matsuda  <mazda@chromium.org>
113912
113913        [chromium] Add the workaround of IOSurface-related corruption during readback on Mac OS X.
113914        https://bugs.webkit.org/show_bug.cgi?id=89797
113915
113916        Reviewed by James Robinson.
113917
113918        No new tests. This patch doesn't change behavior.
113919
113920        * platform/graphics/chromium/LayerRendererChromium.cpp:
113921        (WebCore::LayerRendererChromium::getFramebufferPixels):
113922
1139232012-06-26  Alexei Filippov  <alexeif@chromium.org>
113924
113925        Web Inspector: Native memory snapshots crash in debug mode.
113926        https://bugs.webkit.org/show_bug.cgi?id=89977
113927
113928        Reviewed by Yury Semikhatsky.
113929
113930        * bindings/v8/V8DOMWrapper.cpp:
113931        (WebCore::V8DOMWrapper::maybeDOMWrapper):
113932
1139332012-06-26  Huang Dongsung  <luxtella@company100.net>
113934
113935        [Texmap] Bug fix typo about computing bytesPerLine in BitmapTextureGL.
113936        https://bugs.webkit.org/show_bug.cgi?id=89924
113937
113938        "bytesPerLine == targetRect.width() / 4" is invalid.
113939        This patch amended it into "bytesPerLine == targetRect.width() * 4".
113940        Moreover, changed magic number 4 to bytesPerPixel.
113941
113942        Reviewed by Noam Rosenthal.
113943
113944        No new tests. Covered by existing tests.
113945
113946        * platform/graphics/texmap/TextureMapperGL.cpp:
113947        (WebCore::BitmapTextureGL::updateContents):
113948
1139492012-06-26  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
113950
113951        Shader compiler unprepared to make ESSL output when GLES is used
113952        https://bugs.webkit.org/show_bug.cgi?id=87718
113953
113954        Reviewed by Noam Rosenthal.
113955
113956        Defined a new member that says what type of output code must be generated
113957        (SH_GLSL_OUTPUT, SH_ESSL_OUTPUT). It is set within the constructor.
113958
113959        * platform/graphics/ANGLEWebKitBridge.cpp:
113960        (WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge):
113961        (WebCore::ANGLEWebKitBridge::validateShaderSource):
113962        * platform/graphics/ANGLEWebKitBridge.h:
113963        (ANGLEWebKitBridge):
113964        * platform/graphics/qt/GraphicsContext3DQt.cpp:
113965        (WebCore::GraphicsContext3D::GraphicsContext3D):
113966
1139672012-06-26  Philip Rogers  <pdr@google.com>
113968
113969        Fix bug where animations failed to start
113970        https://bugs.webkit.org/show_bug.cgi?id=89943
113971
113972        Reviewed by Nikolas Zimmermann.
113973
113974        The unpause code previously checked that the animations had not started
113975        before un-setting the pause state. This meant that if an animation was
113976        paused and unpaused before the animations started, it would remain in the
113977        paused state. This patch simply reorders the unpause logic to fix this bug.
113978
113979        Test: svg/custom/animate-initial-pause-unpause.html
113980
113981        * svg/animation/SMILTimeContainer.cpp:
113982        (WebCore::SMILTimeContainer::resume):
113983
1139842012-06-26  Yury Semikhatsky  <yurys@chromium.org>
113985
113986        Web Inspector: popover is not shown for detached DOM nodes, not referenced directly from JS
113987        https://bugs.webkit.org/show_bug.cgi?id=89955
113988
113989        Reviewed by Vsevolod Vlasov.
113990
113991        Show object popover for all heap snapshot nodes event for those whose
113992        canBeQueried flag is false. We didn't show popover for such objects before
113993        as it could lead to the backend crash. In the meantime the backend shouldn't
113994        fail on such DOM wrappers and report an error if it cannot resolve
113995        inspected object.
113996
113997        * inspector/front-end/HeapSnapshotGridNodes.js:
113998        (WebInspector.HeapSnapshotGenericObjectNode):
113999        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
114000        * inspector/front-end/HeapSnapshotView.js:
114001        (WebInspector.HeapSnapshotView.prototype._getHoverAnchor):
114002
1140032012-06-26  Christophe Dumez  <christophe.dumez@intel.com>
114004
114005        [EFL] Simplify SharedBuffer::createWithContentsOfFile() implementation
114006        https://bugs.webkit.org/show_bug.cgi?id=89655
114007
114008        Reviewed by Csaba Osztrogonác.
114009
114010        Simplify the implementation of SharedBuffer::createWithContentsOfFile()
114011        in EFL port.
114012
114013        No new test, no behavior change.
114014
114015        * platform/efl/SharedBufferEfl.cpp:
114016        (WebCore::SharedBuffer::createWithContentsOfFile):
114017
1140182012-06-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
114019
114020        [EFL] REGRESSION (r121163): fast/frames/iframe-access-screen-of-deleted.html crashes
114021        https://bugs.webkit.org/show_bug.cgi?id=89964
114022
114023        Reviewed by Andreas Kling.
114024
114025        Added missing null pointer check.
114026
114027        * platform/efl/PlatformScreenEfl.cpp:
114028        (WebCore::screenDepth):
114029        (WebCore::screenDepthPerComponent):
114030
1140312012-06-26  Taiju Tsuiki  <tzik@chromium.org>
114032
114033        Web Inspector: Add requestMetadata command and metadataReceived event to FileSystem
114034        https://bugs.webkit.org/show_bug.cgi?id=87856
114035
114036        Reviewed by Yury Semikhatsky.
114037
114038        Test: http/tests/inspector/filesystem/get-metadata.html
114039
114040        * inspector/Inspector.json:
114041        * inspector/InspectorFileSystemAgent.cpp:
114042        (WebCore):
114043        (WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
114044        (WebCore::InspectorFileSystemAgent::requestDirectoryContent):
114045        (WebCore::InspectorFileSystemAgent::requestMetadata):
114046        * inspector/InspectorFileSystemAgent.h:
114047        (InspectorFileSystemAgent):
114048        * inspector/front-end/FileSystemModel.js:
114049        (WebInspector.FileSystemModel.prototype._directoryContentReceived):
114050        (WebInspector.FileSystemModel.prototype.requestMetadata):
114051        (WebInspector.FileSystemModel.Entry.prototype.get isDirectory):
114052        (WebInspector.FileSystemModel.Entry.prototype.requestMetadata):
114053        (WebInspector.FileSystemRequestManager):
114054        (WebInspector.FileSystemRequestManager.prototype._directoryContentReceived):
114055        (WebInspector.FileSystemRequestManager.prototype.requestMetadata.requestAccepted):
114056        (WebInspector.FileSystemRequestManager.prototype.requestMetadata):
114057        (WebInspector.FileSystemRequestManager.prototype._metadataReceived):
114058        (WebInspector.FileSystemDispatcher.prototype.directoryContentReceived):
114059        (WebInspector.FileSystemDispatcher.prototype.metadataReceived):
114060
1140612012-06-25  Jocelyn Turcotte  <turcotte.j@gmail.com>
114062
114063        [Qt] GraphicsSurface: Fix tile update artifacts on Mac
114064        https://bugs.webkit.org/show_bug.cgi?id=89887
114065
114066        Reviewed by Noam Rosenthal.
114067
114068        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
114069        (WebCore::GraphicsSurface::platformCopyToGLTexture):
114070
1140712012-06-25  Jocelyn Turcotte  <turcotte.j@gmail.com>
114072
114073        GraphicsSurface: Fix IOSurfaceLock failures on Intel video cards.
114074        https://bugs.webkit.org/show_bug.cgi?id=89883
114075
114076        Reviewed by Noam Rosenthal.
114077
114078        Follow the documentation which says: "If locking the buffer requires a readback,
114079        the lock will fail with an error return of kIOReturnCannotLock."
114080        Also make sure that we use the same set of flags when locking and unlocking
114081        for simplicity and to follow this requirement on the kIOSurfaceLockReadOnly flag.
114082
114083        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
114084        (WebCore::GraphicsSurface::platformLock):
114085        (WebCore::GraphicsSurface::platformUnlock):
114086
1140872012-06-26  Philip Rogers  <pdr@google.com>
114088
114089        Fix setCurrentTime for paused animations
114090        https://bugs.webkit.org/show_bug.cgi?id=81350
114091
114092        Reviewed by Nikolas Zimmermann.
114093
114094        SMILTimeContainer::setElapsed was not resetting the pause time, breaking
114095        setCurrentTime if the animation was paused.
114096
114097        Test: svg/custom/animate-pause-resume.html
114098
114099        * svg/animation/SMILTimeContainer.cpp:
114100        (WebCore::SMILTimeContainer::setElapsed):
114101
1141022012-06-26  Csaba Osztrogonác  <ossy@webkit.org>
114103
114104        [Qt] Unreviewed typo fix after r121144.
114105
114106        * Target.pri:
114107
1141082012-06-26  Yury Semikhatsky  <yurys@chromium.org>
114109
114110        Web Inspector: columns in heap snapshot summary view are not resizable
114111        https://bugs.webkit.org/show_bug.cgi?id=89952
114112
114113        Reviewed by Vsevolod Vlasov.
114114
114115        * inspector/front-end/HeapSnapshotDataGrids.js:
114116        (WebInspector.HeapSnapshotViewportDataGrid.prototype.onResize): overriden method
114117        should call overriden one to make sure column resizers are added to the DataGrid.
114118
1141192012-06-26  Kent Tamura  <tkent@chromium.org>
114120
114121        Refactoring: Simplify FormController interface
114122        https://bugs.webkit.org/show_bug.cgi?id=89951
114123
114124        Reviewed by Kentaro Hara.
114125
114126        - Remove FormController::hasStateForNewFormElements()
114127          takeStateForFormElement() can check the emptiness, and return an empty
114128          FormControlState.
114129
114130        - Change the argument of takeStateForFormElement()
114131          Passing just one HTMLFormControlElementWithState object instead of two
114132          AtomicStringImpl. This is a preparation to use
114133          HTMLFormControlElementWithState::form() in FormController.
114134
114135        No new tests. Just a refactoring.
114136
114137        * html/FormController.cpp:
114138        (WebCore::FormController::takeStateForFormElement):
114139        * html/FormController.h:
114140        (FormController):
114141        * html/HTMLFormControlElementWithState.cpp:
114142        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
114143
1141442012-06-26  Dominic Cooney  <dominicc@chromium.org>
114145
114146        WheelEvent should inherit from MouseEvent
114147        https://bugs.webkit.org/show_bug.cgi?id=76104
114148
114149        Reviewed by Kentaro Hara.
114150
114151        The spec for WheelEvent is
114152        <http://www.w3.org/TR/DOM-Level-3-Events/#webidl-events-WheelEvent>
114153
114154        Tests: fast/events/event-creation.html
114155               http://samples.msdn.microsoft.com/ietestcenter/dominheritance/showdominheritancetest.htm?Prototype_WheelEvent
114156
114157        * bindings/objc/PublicDOMInterfaces.h: Remove redundant MouseEvent API from WheelEvent
114158        * bindings/scripts/CodeGeneratorObjC.pm: MouseEvents are Events
114159        * dom/MouseEvent.h: Expose no-arg constructor to WheelEvent
114160        * dom/WheelEvent.cpp:
114161        (WebCore::WheelEvent::WheelEvent): Call MouseEvent superconstructor
114162        (WebCore::WheelEvent::isMouseEvent): Existing callers use this just for
114163        moves and clicks, ie the type is exactly MouseEvent.
114164        * dom/WheelEvent.h: Extend MouseEvent
114165        * dom/WheelEvent.idl: "
114166
1141672012-06-25  Ryosuke Niwa  <rniwa@webkit.org>
114168
114169        Get rid of firstItem and nextItem from HTMLCollection
114170        https://bugs.webkit.org/show_bug.cgi?id=89923
114171
114172        Reviewed by Andreas Kling.
114173
114174        Removed HTMLCollection::firstItem and HTMLCollection::nextItem.
114175        Also added hasAnyItem() and hasExactlyOneItem() to HTMLCollection so that named getter on Document
114176        doesn't need to compute the full length before returning a HTMLCollection.
114177
114178        * accessibility/AccessibilityRenderObject.cpp:
114179        (WebCore::AccessibilityRenderObject::getDocumentLinks):
114180        * bindings/js/JSDOMWindowCustom.cpp:
114181        (WebCore::namedItemGetter):
114182        * bindings/js/JSHTMLDocumentCustom.cpp:
114183        (WebCore::JSHTMLDocument::nameGetter):
114184        * bindings/v8/custom/V8DOMWindowCustom.cpp:
114185        (WebCore::V8DOMWindow::namedPropertyGetter):
114186        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
114187        (WebCore::V8HTMLDocument::GetNamedProperty):
114188        * dom/Document.cpp:
114189        (WebCore::Document::openSearchDescriptionURL):
114190        * html/HTMLCollection.cpp:
114191        (WebCore::shouldIncludeChildren):
114192        (WebCore::HTMLCollection::HTMLCollection):
114193        (WebCore):
114194        (WebCore::HTMLCollection::item):
114195        * html/HTMLCollection.h:
114196        (HTMLCollection):
114197        (WebCore::HTMLCollection::hasAnyItem):
114198        (WebCore::HTMLCollection::hasExactlyOneItem):
114199        * html/HTMLMapElement.cpp:
114200        (WebCore::HTMLMapElement::imageElement):
114201
1142022012-06-25  Pratik Solanki  <psolanki@apple.com>
114203
114204        JavaScript resources have low priority when SVG is enabled
114205        https://bugs.webkit.org/show_bug.cgi?id=89932
114206        <rdar://problem/11741325>
114207
114208        Reviewed by Adele Peterson.
114209
114210        r108785 inadvertently lowered the priority of JavaScript resources. Fix the code so we set
114211        the correct priority for scripts. Also, move the code so that all ifdefs are together at the
114212        bottom to make it a bit easier to read..
114213
114214        * loader/cache/CachedResource.cpp:
114215        (WebCore::defaultPriorityForResourceType):
114216
1142172012-06-25  Luke Macpherson  <macpherson@chromium.org>
114218
114219        Add runtime flag to enable/disable CSS variables (in addition to existing compile-time flag).
114220        https://bugs.webkit.org/show_bug.cgi?id=89542
114221
114222        Reviewed by Dimitri Glazkov.
114223
114224        Added fast/css/variables/build-supports-variables.html to test runtime flag in test environment.
114225        Updated all other css variables tests to enable the runtime flag from JS.
114226
114227        * css/CSSParser.cpp:
114228        (WebCore::CSSParserContext::CSSParserContext):
114229        (WebCore::operator==):
114230        (WebCore::CSSParser::cssVariablesEnabled):
114231        (WebCore):
114232        (WebCore::CSSParser::detectDashToken):
114233        (WebCore::CSSParser::lex):
114234        * css/CSSParser.h:
114235        (CSSParser):
114236        * css/CSSParserMode.h:
114237        (CSSParserContext):
114238        * page/Settings.h:
114239        (Settings):
114240        (WebCore::Settings::setCSSVariablesEnabled):
114241        (WebCore::Settings::cssVariablesEnabled):
114242
1142432012-06-25  Simon Hausmann  <simon.hausmann@nokia.com>
114244
114245        Unreviewed build fix after r121223.
114246
114247        Fix the --minimal Qt build, TextureMapperGL now requires WebGL to be enabled.
114248
114249        * Target.pri:
114250        * WebCore.pri:
114251
1142522012-06-25  Dana Jansens  <danakj@chromium.org>
114253
114254        [chromium] CCOverdrawMetrics should use the deviceViewportSize to count actual pixels
114255        https://bugs.webkit.org/show_bug.cgi?id=89922
114256
114257        Reviewed by Adrienne Walker.
114258
114259        * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
114260        (WebCore::CCOverdrawMetrics::recordMetricsInternal):
114261
1142622012-06-25  Huang Dongsung  <luxtella@company100.net>
114263
114264        [Texmap] Remove platform specific code in BitmapImageGL::updateContents by using
114265        GraphicsContext3D::extractImageData.
114266        https://bugs.webkit.org/show_bug.cgi?id=89867
114267
114268        Reviewed by Noam Rosenthal.
114269
114270        No new tests. Covered by existing tests.
114271
114272        * platform/graphics/texmap/TextureMapperGL.cpp:
114273        (WebCore):
114274        (WebCore::BitmapTextureGL::didReset):
114275        (WebCore::BitmapTextureGL::updateContents):
114276
1142772012-06-25  James Robinson  <jamesr@chromium.org>
114278
114279        [chromium] Remove uncalled ManagedTexture::framebufferTexture2D
114280        https://bugs.webkit.org/show_bug.cgi?id=89930
114281
114282        Reviewed by Adrienne Walker.
114283
114284        Removing dead code.
114285
114286        * platform/graphics/chromium/ManagedTexture.cpp:
114287        * platform/graphics/chromium/ManagedTexture.h:
114288        (ManagedTexture):
114289
1142902012-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
114291
114292        Unreviewed, rolling out r121206.
114293        http://trac.webkit.org/changeset/121206
114294        https://bugs.webkit.org/show_bug.cgi?id=89935
114295
114296        [chromium] webkit_unit_tests
114297        WebViewTest.MHTMLWithMissingResourceFinishesLoading crash
114298        (Requested by ukai on #webkit).
114299
114300        * loader/DocumentLoader.cpp:
114301        (WebCore::DocumentLoader::scheduleArchiveLoad):
114302
1143032012-06-25  Anantanarayanan G Iyengar  <ananta@chromium.org>
114304
114305        [chromium] Ensure that the compositor code which is aware of flipped status of video-textures
114306        per platform executes on Windows.
114307        https://bugs.webkit.org/show_bug.cgi?id=89914
114308        
114309        Reviewed by James Robinson.
114310
114311        No new tests. (HW video decode is still only being tested manually for orientation)
114312
114313        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
114314        (WebCore::CCVideoLayerImpl::appendQuads):
114315
1143162012-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
114317
114318        Unreviewed, rolling out r121176.
114319        http://trac.webkit.org/changeset/121176
114320        https://bugs.webkit.org/show_bug.cgi?id=89934
114321
114322        [chromium] browser_tests assert failed:
114323        FATAL:native_theme_win.cc(1541)] Check failed: false. Invalid
114324        part: 16 (Requested by ukai on #webkit).
114325
114326        * platform/chromium/PlatformSupport.h:
114327        (PlatformSupport):
114328        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
114329        (WebCore::ScrollbarThemeChromiumWin::buttonSize):
114330
1143312012-06-25  Shinya Kawanaka  <shinyak@chromium.org>
114332
114333        [Shadow] Deleting list distributed to Shadow DOM does not work correctly.
114334        https://bugs.webkit.org/show_bug.cgi?id=89170
114335
114336        Reviewed by Ryosuke Niwa.
114337
114338        When deleting several elements distributed to Shadow DOM, some renderers might be gone in
114339        processing deletion. To fix them, we should call isContentEditable() instead of rendererIsEditable().
114340
114341        Test: editing/shadow/delete-list-in-shadow.html
114342
114343        * editing/DeleteFromTextNodeCommand.cpp:
114344        (WebCore::DeleteFromTextNodeCommand::doApply):
114345
1143462012-06-25  Min Qin  <qinmin@chromium.org>
114347
114348        [Chromium] Fix the css stylesheet for android media controls after recent changes
114349        https://bugs.webkit.org/show_bug.cgi?id=89910
114350
114351        Reviewed by Adam Barth.
114352
114353        After the recent changes on upstream chrome video controls, we need to change the css style sheet for chrome on android.
114354        No tests needed, just css changes.
114355
114356        * css/mediaControlsChromiumAndroid.css:
114357        (audio):
114358        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
114359        (::-webkit-media-controls):
114360        (audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
114361        (video::-webkit-media-controls-enclosure):
114362        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
114363        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
114364        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
114365        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
114366        (video::-webkit-media-controls-fullscreen-button):
114367        (input[type="range"]::-webkit-media-slider-container):
114368        (input[type="range"]::-webkit-media-slider-thumb):
114369        (audio::-webkit-media-controls-fullscreen-button):
114370
1143712012-06-25  Huang Dongsung  <luxtella@company100.net>
114372
114373        [Qt] Avoid a deep copy of QImage in GraphicsContext3D::getImageData.
114374        https://bugs.webkit.org/show_bug.cgi?id=89865
114375
114376        Reviewed by Noam Rosenthal.
114377
114378        No new tests. Covered by existing tests.
114379
114380        * platform/graphics/qt/GraphicsContext3DQt.cpp:
114381        (WebCore::GraphicsContext3D::getImageData):
114382
1143832012-06-25  Nick Carter  <nick@chromium.org>
114384
114385        Reduce memory footprint of BitmapImage Vectors.
114386        https://bugs.webkit.org/show_bug.cgi?id=86563
114387
114388        Reviewed by Simon Fraser.
114389
114390        No new tests, affects template params only.
114391
114392        * platform/graphics/BitmapImage.h:
114393        (BitmapImage): use an inline capacity of 1 for the image frame Vector 
114394        * platform/image-decoders/ImageDecoder.h:
114395        (ImageDecoder): use an inline capacity of 1 for the image frame Vector
114396
1143972012-06-25  Kent Tamura  <tkent@chromium.org>
114398
114399        Unreviewed, rolling out r121145.
114400        http://trac.webkit.org/changeset/121145
114401        https://bugs.webkit.org/show_bug.cgi?id=89847
114402
114403        Had an objection for the change.
114404
114405        * html/FormController.cpp:
114406        (WebCore):
114407        (WebCore::FormControlState::serializeTo):
114408        (WebCore::FormControlState::deserialize):
114409        (WebCore::formStateSignature):
114410        (WebCore::FormController::formElementsState):
114411        (WebCore::FormController::setStateForNewFormElements):
114412        * html/FormController.h:
114413        (FormControlState):
114414        * html/shadow/CalendarPickerElement.cpp:
114415        (WebCore::addJavaScriptString):
114416
1144172012-06-25  Jay Civelli  <jcivelli@chromium.org>
114418
114419        Fix progress load reporting for MHTML documents.
114420
114421        MHTML documents containing references to resources they don't include
114422        never finish loading.
114423        https://bugs.webkit.org/show_bug.cgi?id=71859
114424
114425        Reviewed by Nate Chapin.
114426
114427        * loader/DocumentLoader.cpp:
114428        (WebCore::DocumentLoader::scheduleArchiveLoad):
114429
1144302012-06-25  James Robinson  <jamesr@chromium.org>
114431
114432        [chromium] Use WebGraphicsContext3D in compositor implementation
114433        https://bugs.webkit.org/show_bug.cgi?id=89700
114434
114435        Reviewed by Adrienne Walker.
114436
114437        This converts the compositor implementation from using WebCore::GraphicsContext3D to using the Platform-provided
114438        WebGraphicsContext3D. This removes several unnecessary layers of indirection/wrapping and cuts down the
114439        compositor's implementation dependencies. GraphicsContext3D.h is still widely used to provide GL enum values.
114440        Most of the changes are purely mechanical - changing type names and the like.
114441
114442        Ownership is changed a bit. Instead of multiple components holding references to the compositor's context, the
114443        context is now owned by the CCGraphicsContext, which is now owned directly by CCLayerTreeHostImpl.
114444        CCLayerTreeHostImpl also has ownership of its CCRenderer (LayerRendererChromium in 3D mode) and passes a
114445        non-owning pointer down to the CCRenderer.
114446
114447        Extension checking is a bit different. The compositor does not (and never has) used extensions provided by
114448        WebGL's request/ensure mechanism. It simply checks for the existence of extensions it needs in the GL_EXTENSIONS
114449        string.
114450
114451        FrameBufferSkPictureCanvasLayerTextureUpdater had to be patched as well, since it was grabbing a GrContext off
114452        of the compositor's GraphicsContext3D. This caused many problems. It was inefficient, since it required a full
114453        state flush when switching between ganesh and compositor calls. The gpu memory management was completely broken
114454        since the compositor clobbered ganesh's onMemoryAllocationChanged callback. This moves FBSkPCLTU over to using
114455        the appropriate SharedGraphicsContext3D, like filters.
114456
114457        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
114458        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
114459        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
114460        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
114461        (FrameBufferSkPictureCanvasLayerTextureUpdater):
114462        * platform/graphics/chromium/GeometryBinding.cpp:
114463        (WebCore::GeometryBinding::GeometryBinding):
114464        * platform/graphics/chromium/GeometryBinding.h:
114465        (WebKit):
114466        (GeometryBinding):
114467        (WebCore::GeometryBinding::context):
114468        * platform/graphics/chromium/LayerRendererChromium.cpp:
114469        (WebCore::LayerRendererChromium::create):
114470        (WebCore::LayerRendererChromium::LayerRendererChromium):
114471        (WebCore::LayerRendererChromium::initialize):
114472        (WebCore::LayerRendererChromium::~LayerRendererChromium):
114473        (WebCore::LayerRendererChromium::context):
114474        (WebCore::LayerRendererChromium::debugGLCall):
114475        (WebCore::LayerRendererChromium::setVisible):
114476        (WebCore::LayerRendererChromium::drawStreamVideoQuad):
114477        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
114478        (WebCore::LayerRendererChromium::swapBuffers):
114479        (WebCore::LayerRendererChromium::onMemoryAllocationChanged):
114480        (WebCore):
114481        (WebCore::LayerRendererChromium::onMemoryAllocationChangedOnImplThread):
114482        (WebCore::LayerRendererChromium::discardFramebuffer):
114483        (WebCore::LayerRendererChromium::ensureFramebuffer):
114484        (WebCore::LayerRendererChromium::onContextLost):
114485        (WebCore::LayerRendererChromium::getFramebufferPixels):
114486        (WebCore::LayerRendererChromium::getFramebufferTexture):
114487        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
114488        (WebCore::LayerRendererChromium::initializeSharedObjects):
114489        (WebCore::LayerRendererChromium::tileCheckerboardProgram):
114490        (WebCore::LayerRendererChromium::solidColorProgram):
114491        (WebCore::LayerRendererChromium::headsUpDisplayProgram):
114492        (WebCore::LayerRendererChromium::renderPassProgram):
114493        (WebCore::LayerRendererChromium::renderPassProgramAA):
114494        (WebCore::LayerRendererChromium::renderPassMaskProgram):
114495        (WebCore::LayerRendererChromium::renderPassMaskProgramAA):
114496        (WebCore::LayerRendererChromium::tileProgram):
114497        (WebCore::LayerRendererChromium::tileProgramOpaque):
114498        (WebCore::LayerRendererChromium::tileProgramAA):
114499        (WebCore::LayerRendererChromium::tileProgramSwizzle):
114500        (WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
114501        (WebCore::LayerRendererChromium::tileProgramSwizzleAA):
114502        (WebCore::LayerRendererChromium::textureProgram):
114503        (WebCore::LayerRendererChromium::textureProgramFlip):
114504        (WebCore::LayerRendererChromium::textureIOSurfaceProgram):
114505        (WebCore::LayerRendererChromium::videoYUVProgram):
114506        (WebCore::LayerRendererChromium::videoStreamTextureProgram):
114507        (WebCore::LayerRendererChromium::cleanupSharedObjects):
114508        (WebCore::LayerRendererChromium::isContextLost):
114509        * platform/graphics/chromium/LayerRendererChromium.h:
114510        (WebKit):
114511        (WebCore):
114512        (LayerRendererChromium):
114513        (WebCore::LayerRendererChromium::isFramebufferDiscarded):
114514        * platform/graphics/chromium/LayerTextureSubImage.cpp:
114515        (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
114516        (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
114517        * platform/graphics/chromium/ManagedTexture.cpp:
114518        (WebCore::ManagedTexture::bindTexture):
114519        (WebCore::ManagedTexture::framebufferTexture2D):
114520        * platform/graphics/chromium/PlatformColor.h:
114521        (WebCore::PlatformColor::bestTextureFormat):
114522        * platform/graphics/chromium/ProgramBinding.cpp:
114523        (WebCore::contextLost):
114524        (WebCore::ProgramBindingBase::init):
114525        (WebCore::ProgramBindingBase::cleanup):
114526        (WebCore::ProgramBindingBase::loadShader):
114527        (WebCore::ProgramBindingBase::createShaderProgram):
114528        * platform/graphics/chromium/ProgramBinding.h:
114529        (WebKit):
114530        (ProgramBindingBase):
114531        (WebCore::ProgramBinding::ProgramBinding):
114532        (WebCore::ProgramBinding::initialize):
114533        * platform/graphics/chromium/ShaderChromium.cpp:
114534        (WebCore::VertexShaderPosTex::init):
114535        (WebCore::VertexShaderPosTexYUVStretch::init):
114536        (WebCore::VertexShaderPos::init):
114537        (WebCore::VertexShaderPosTexTransform::init):
114538        (WebCore::VertexShaderQuad::init):
114539        (WebCore::VertexShaderTile::init):
114540        (WebCore::VertexShaderVideoTransform::init):
114541        (WebCore::FragmentTexAlphaBinding::init):
114542        (WebCore::FragmentTexOpaqueBinding::init):
114543        (WebCore::FragmentShaderOESImageExternal::init):
114544        (WebCore::FragmentShaderRGBATexAlphaAA::init):
114545        (WebCore::FragmentTexClampAlphaAABinding::init):
114546        (WebCore::FragmentShaderRGBATexAlphaMask::init):
114547        (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
114548        (WebCore::FragmentShaderYUVVideo::init):
114549        (WebCore::FragmentShaderColor::init):
114550        (WebCore::FragmentShaderCheckerboard::init):
114551        * platform/graphics/chromium/ShaderChromium.h:
114552        (WebKit):
114553        (VertexShaderPosTex):
114554        (VertexShaderPosTexYUVStretch):
114555        (VertexShaderPos):
114556        (WebCore::VertexShaderPosTexIdentity::init):
114557        (VertexShaderPosTexTransform):
114558        (VertexShaderQuad):
114559        (VertexShaderTile):
114560        (VertexShaderVideoTransform):
114561        (FragmentTexAlphaBinding):
114562        (FragmentTexOpaqueBinding):
114563        (FragmentShaderOESImageExternal):
114564        (FragmentShaderRGBATexAlphaAA):
114565        (FragmentTexClampAlphaAABinding):
114566        (FragmentShaderRGBATexAlphaMask):
114567        (FragmentShaderRGBATexAlphaMaskAA):
114568        (FragmentShaderYUVVideo):
114569        (FragmentShaderColor):
114570        (FragmentShaderCheckerboard):
114571        * platform/graphics/chromium/TextureCopier.cpp:
114572        (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
114573        (WebCore::AcceleratedTextureCopier::~AcceleratedTextureCopier):
114574        (WebCore::AcceleratedTextureCopier::copyTexture):
114575        * platform/graphics/chromium/TextureCopier.h:
114576        (WebKit):
114577        (WebCore):
114578        (WebCore::AcceleratedTextureCopier::create):
114579        (AcceleratedTextureCopier):
114580        * platform/graphics/chromium/TextureManager.h:
114581        * platform/graphics/chromium/ThrottledTextureUploader.cpp:
114582        (WebCore::ThrottledTextureUploader::Query::Query):
114583        (WebCore::ThrottledTextureUploader::Query::~Query):
114584        (WebCore::ThrottledTextureUploader::Query::begin):
114585        (WebCore::ThrottledTextureUploader::Query::end):
114586        (WebCore::ThrottledTextureUploader::Query::isPending):
114587        (WebCore::ThrottledTextureUploader::Query::wait):
114588        (WebCore::ThrottledTextureUploader::ThrottledTextureUploader):
114589        * platform/graphics/chromium/ThrottledTextureUploader.h:
114590        (WebKit):
114591        (WebCore::ThrottledTextureUploader::create):
114592        (WebCore::ThrottledTextureUploader::Query::create):
114593        (Query):
114594        (ThrottledTextureUploader):
114595        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
114596        (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
114597        (WebCore::TrackingTextureAllocator::createTexture):
114598        (WebCore::TrackingTextureAllocator::deleteTexture):
114599        (WebCore::TrackingTextureAllocator::deleteAllTextures):
114600        * platform/graphics/chromium/TrackingTextureAllocator.h:
114601        (WebKit):
114602        (WebCore::TrackingTextureAllocator::create):
114603        (TrackingTextureAllocator):
114604        * platform/graphics/chromium/cc/CCGraphicsContext.h:
114605        (CCGraphicsContext):
114606        (WebCore::CCGraphicsContext::create2D):
114607        (WebCore::CCGraphicsContext::create3D):
114608        (WebCore::CCGraphicsContext::context3D):
114609        (WebCore::CCGraphicsContext::CCGraphicsContext):
114610        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
114611        (WebCore::CCHeadsUpDisplay::draw):
114612        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
114613        (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
114614        (WebCore::CCIOSurfaceLayerImpl::willDraw):
114615        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
114616        (WebCore::CCLayerTreeHost::createContext):
114617        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
114618        (CCLayerTreeHostClient):
114619        (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
114620        (LayerRendererCapabilities):
114621        (WebCore::CCLayerTreeHost::needsSharedContext):
114622        (CCLayerTreeHost):
114623        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
114624        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
114625        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
114626        (CCLayerTreeHostImpl):
114627        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
114628        (WebCore::CCSingleThreadProxy::initializeContext):
114629        (WebCore::CCSingleThreadProxy::recreateContext):
114630        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
114631        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
114632        (WebCore::CCTextureUpdater::update):
114633        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
114634        (WebCore::CCThreadProxy::initializeContext):
114635        (WebCore::CCThreadProxy::recreateContext):
114636        (WebCore::CCThreadProxy::beginFrame):
114637        (WebCore::CCThreadProxy::initializeContextOnImplThread):
114638        (WebCore::CCThreadProxy::recreateContextOnImplThread):
114639        * platform/graphics/chromium/cc/CCThreadProxy.h:
114640        (CCThreadProxy):
114641        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
114642        (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
114643        (WebCore::CCVideoLayerImpl::FramePlane::freeData):
114644        (WebCore::CCVideoLayerImpl::copyPlaneData):
114645
1146462012-06-25  Adrienne Walker  <enne@google.com>
114647
114648        [chromium] Make CCThreadProxy not draw a frame mid-commit
114649        https://bugs.webkit.org/show_bug.cgi?id=89905
114650
114651        Reviewed by James Robinson.
114652
114653        If commitComplete is not called before the next frame goes up, then
114654        then the max scroll position on the root scroll layer is not updated.
114655        This causes the compositor-side scrollbar to have an incorrect
114656        visibleSize, causing the thumbRect to become stretched, relative to
114657        when it was originally painted.
114658
114659        CCScheduler::setVisible has the side effect of kicking off a frame, so
114660        move it last.
114661
114662        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
114663        (WebCore::CCThreadProxy::scheduledActionCommit):
114664
1146652012-06-25  Pablo Flouret  <pablof@motorola.com>
114666
114667        EventSource: Events should not be dispatched after close()
114668        https://bugs.webkit.org/show_bug.cgi?id=85346
114669
114670        Reviewed by Adam Barth.
114671
114672        Spec changed to make sure that no events are dispatched after close() is
114673        called, even if more data was received before the call to close().
114674
114675        See,
114676        https://www.w3.org/Bugs/Public/show_bug.cgi?id=14331#c5
114677        http://html5.org/tools/web-apps-tracker?from=6771&to=6772
114678
114679        Firefox behaves like this already.
114680
114681        Test: http/tests/eventsource/eventsource-events-after-close.html
114682
114683        * page/EventSource.cpp:
114684        (WebCore::EventSource::parseEventStream):
114685
1146862012-06-25  Mike West  <mkwst@chromium.com>
114687
114688        Fixing compilation failure in StyleResolver.cpp/CSSParser.cpp
114689        https://bugs.webkit.org/show_bug.cgi?id=89892
114690
114691        Reviewed by Alexis Menard.
114692
114693        Adding CSSPropertyVariable to switch statements in CSSParser and
114694        StyleResolver to fix compilation errors under ninja/clang. I've
114695        added both as new cases to the switches, with FIXME comments for
114696        implementation.
114697
114698        * css/CSSParser.cpp:
114699        (WebCore::CSSParser::parseValue):
114700        * css/StyleResolver.cpp:
114701        (WebCore::StyleResolver::collectMatchingRulesForList):
114702
1147032012-06-25  Jay Civelli  <jcivelli@chromium.org>
114704
114705        Fix for a memory leak with MHTMLArchives.
114706
114707        MHTML files present a flat list of frames and resources but the WebKit Archive
114708        has a tree strcture. So the MHTMLArchive class make sures that every frame
114709        knows about any other frames and resources.
114710        Because these objects are ref counted, that would introduce circular references
114711        preventing the entire Archive from being deleted.
114712        This fixes this by:
114713        - making sure the top-frame (which appears as the first entry in the MHTML) is
114714          not referenced by the other frames.
114715        - when the main frame is deleted it traverse the entire subarchive (sub-frames)
114716          graph and makes sure they clear all their references to other subarchives.
114717
114718        https://bugs.webkit.org/show_bug.cgi?id=88470
114719
114720        Reviewed by Adam Barth.
114721
114722        * loader/archive/Archive.cpp:
114723        (WebCore::Archive::clearAllSubframeArchives):
114724        (WebCore):
114725        (WebCore::Archive::clearAllSubframeArchivesImpl):
114726        * loader/archive/Archive.h:
114727        (Archive):
114728        * loader/archive/mhtml/MHTMLArchive.cpp:
114729        (WebCore::MHTMLArchive::~MHTMLArchive):
114730        (WebCore):
114731        (WebCore::MHTMLArchive::create):
114732        * loader/archive/mhtml/MHTMLArchive.h:
114733        (MHTMLArchive):
114734
1147352012-06-25  Alpha Lam  <hclam@chromium.org>
114736
114737        Unreviewed, rolling out r121178.
114738        http://trac.webkit.org/changeset/121178
114739        https://bugs.webkit.org/show_bug.cgi?id=89784
114740
114741        New unit test added is failing on WebKit Linux (dbg)
114742
114743        * platform/graphics/chromium/LayerChromium.cpp:
114744        (WebCore::LayerChromium::setBounds):
114745
1147462012-06-25  Alpha Lam  <hclam@chromium.org>
114747
114748        Unreviewed, rolling out r121137.
114749        http://trac.webkit.org/changeset/121137
114750
114751        Chromium build fix, (un)touch files to build on Chromium Win
114752        Release
114753
114754        * css/CSSParserMode.h:
114755        * css/CSSValue.h:
114756        (WebCore):
114757        * css/CSSVariableValue.h:
114758        * page/Settings.h:
114759        * rendering/style/RenderStyle.h:
114760        * rendering/style/StyleRareInheritedData.h:
114761        * rendering/style/StyleVariableData.h:
114762
1147632012-06-25  Alpha Lam  <hclam@chromium.org>
114764
114765        Unreviewed, rolling out r121129.
114766        http://trac.webkit.org/changeset/121129
114767        https://bugs.webkit.org/show_bug.cgi?id=89542
114768
114769        Chromium ASan failure: crbug.com/134402
114770
114771        * css/CSSParser.cpp:
114772        (WebCore::CSSParserContext::CSSParserContext):
114773        (WebCore::operator==):
114774        (WebCore):
114775        (WebCore::CSSParser::detectDashToken):
114776        (WebCore::CSSParser::lex):
114777        * css/CSSParser.h:
114778        (CSSParser):
114779        * css/CSSParserMode.h:
114780        (CSSParserContext):
114781        * css/StyleResolver.cpp:
114782        (WebCore::StyleResolver::collectMatchingRulesForList):
114783        * page/Settings.h:
114784        (Settings):
114785        * testing/InternalSettings.cpp:
114786        * testing/InternalSettings.h:
114787        (InternalSettings):
114788        * testing/InternalSettings.idl:
114789
1147902012-06-25  Adam Barth  <abarth@webkit.org>
114791
114792        Use InterpolationLow on chromium-android
114793        https://bugs.webkit.org/show_bug.cgi?id=89849
114794
114795        Reviewed by Daniel Bates.
114796
114797        Min Qin writes:
114798
114799          Using InterpolationHigh is very very expensive when resampling
114800          images.  For example, it took 1400ms to decode an image on
114801          http://www.crossfitsunnyvale.com/blog/, but it took 2800 ms to do the
114802          resampling Switch to InterpolationLow will result in linear
114803          resampling. It is much faster as the time it tooks is almost
114804          non-noticable [sic] on the trace.
114805
114806        * platform/graphics/skia/PlatformContextSkia.cpp:
114807        (WebCore::PlatformContextSkia::State::State):
114808
1148092012-06-25  Joshua Bell  <jsbell@chromium.org>
114810
114811        IndexedDB: Remove unused backend property accessors
114812        https://bugs.webkit.org/show_bug.cgi?id=89893
114813
114814        Reviewed by Darin Fisher.
114815
114816        Following the "metadata" API addition in trac.webkit.org/changeset/121059
114817        the IDBXXXBackendInterface types no longer need per-property accessors.
114818
114819        No new tests - no functional changes.
114820
114821        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Remove method implementation.
114822        * Modules/indexeddb/IDBDatabaseBackendImpl.h: Remove methods.
114823        (IDBDatabaseBackendImpl):
114824        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Remove methods.
114825        (IDBDatabaseBackendInterface):
114826        * Modules/indexeddb/IDBIndexBackendImpl.h: Make methods simple accessors.
114827        (IDBIndexBackendImpl):
114828        (WebCore::IDBIndexBackendImpl::name):
114829        (WebCore::IDBIndexBackendImpl::keyPath):
114830        (WebCore::IDBIndexBackendImpl::unique):
114831        (WebCore::IDBIndexBackendImpl::multiEntry):
114832        * Modules/indexeddb/IDBIndexBackendInterface.h: Remove methods.
114833        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Remove method implementation.
114834        * Modules/indexeddb/IDBObjectStoreBackendImpl.h: Make methods simple accessors.
114835        (IDBObjectStoreBackendImpl):
114836        (WebCore::IDBObjectStoreBackendImpl::name):
114837        (WebCore::IDBObjectStoreBackendImpl::keyPath):
114838        (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
114839        * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Remove methods.
114840
1148412012-06-25  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
114842
114843        [EFL] Add support for building with ENABLE_MEDIA_STREAM
114844        https://bugs.webkit.org/show_bug.cgi?id=88413
114845
114846        Reviewed by Dirk Pranke.
114847
114848        Add files which are needed for supporting the Media Stream
114849        feature.
114850
114851        No change in functionality so no new tests.
114852
114853        * PlatformEfl.cmake:
114854
1148552012-06-25  Huang Dongsung  <luxtella@company100.net>
114856
114857        [Texmap] TextureMapperPaintOptions should keep current surface.
114858        https://bugs.webkit.org/show_bug.cgi?id=89266
114859
114860        Before this patch, if a replica layer has a descendant replica child, the child
114861        layer does not render the result in the parent layer's surface because
114862        TextureMapperPaintOptions does not keep current surface.
114863        This patch amends that TextureMapperPaintOptions keeps current surface before
114864        calling paintSelfAndChildrenWithReplica recursively, so previous surface could be
114865        restored after paintSelfAndChildrenWithReplica.
114866
114867        Reviewed by Noam Rosenthal.
114868
114869        Test: compositing/reflections/animation-inside-reflection.html
114870
114871        * platform/graphics/texmap/TextureMapperLayer.cpp:
114872        (WebCore::TextureMapperLayer::paintRecursive):
114873
1148742012-06-25  Ian Vollick  <vollick@chromium.org>
114875
114876        [chromium] Layer chromium should need a redraw after getting its first non-empty bounds.
114877        https://bugs.webkit.org/show_bug.cgi?id=89784
114878
114879        Reviewed by James Robinson.
114880
114881        Previously, we'd only set needs redraw if the old bounds were zero,
114882        and the new bounds were non-zero, but we should actually have 
114883        checked that the old bounds were non-empty.
114884
114885        Unit test: LayerChromiumTestWithoutFixture.setBoundsTriggersSetNeedsRedrawAfterGettingNonEmptyBounds
114886
114887        * platform/graphics/chromium/LayerChromium.cpp:
114888        (WebCore::LayerChromium::setBounds):
114889
1148902012-06-25  Scott Graham  <scottmg@chromium.org>
114891
114892        Plumb Scrollbar button dimensions down to WebThemeEngine
114893        https://bugs.webkit.org/show_bug.cgi?id=89264
114894
114895        Reviewed by James Robinson.
114896
114897        Rather than making the height of the scrollbar buttons the same as the
114898        width of the scrollbar, delegate to the WebThemeEngine. This allows
114899        matching the Aura theme rather than the standard Windows theme.
114900
114901        No new tests, as bounds are overridden for DRT.
114902
114903        * platform/chromium/PlatformSupport.h:
114904        (PlatformSupport):
114905        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
114906        (WebCore::ScrollbarThemeChromiumWin::buttonSize):
114907
1149082012-06-25  Antti Koivisto  <antti@apple.com>
114909
114910        Fast path for simple transform parsing
114911        https://bugs.webkit.org/show_bug.cgi?id=89898
114912
114913        Reviewed by Anders Carlsson.
114914
114915        When manipulating transforms using script, the transform value parsing can show up in profiles pretty heavily 
114916        (up 4% in some cases). We can optimize it easily by implementing a fast path that does not spin up the full CSS
114917        parser, like we already do for several other common value types.
114918        
114919        The patch implements a fast path for transform(), transformX/Y/Z() and transform3D(). It speeds up parsing by >5x.
114920
114921        * css/CSSParser.cpp:
114922        (WebCore):
114923        (WebCore::parseTransformArguments):
114924        (WebCore::parseTransformValue):
114925        (WebCore::CSSParser::parseValue):
114926
1149272012-06-25  Kwang Yul Seo  <skyul@company100.net>
114928
114929        Remove unused static function shadowFor
114930        https://bugs.webkit.org/show_bug.cgi?id=89824
114931
114932        Reviewed by Daniel Bates.
114933
114934        shadowFor is not used anymore after r117796. No behaviour changes.
114935
114936        * dom/TreeScopeAdopter.cpp:
114937
1149382012-06-25  Kwang Yul Seo  <skyul@company100.net>
114939
114940        Remove unused constant timeWithoutMouseMovementBeforeHidingControls
114941        https://bugs.webkit.org/show_bug.cgi?id=89823
114942
114943        Reviewed by Daniel Bates.
114944
114945        After r87692, timeWithoutMouseMovementBeforeHidingControls is not used anymore.
114946
114947        * html/HTMLMediaElement.cpp:
114948        (WebCore):
114949
1149502012-06-25  Zeev Lieber  <zlieber@chromium.org>
114951
114952        [Chromium] RenderPass textures are evicted at the end of every frame
114953        https://bugs.webkit.org/show_bug.cgi?id=89786
114954
114955        Reviewed by Adrienne Walker.
114956
114957        Removed calls to TextureManager::reduceMemoryToLimit inside
114958        finishDrawingFrame() method.
114959
114960        Added unit tests to verify new behavior.
114961
114962        * platform/graphics/chromium/LayerRendererChromium.cpp:
114963        (WebCore::LayerRendererChromium::finishDrawingFrame):
114964
1149652012-06-25  Allan Xavier  <allan.xavier@undefinedltd.co.uk>
114966
114967        [GTK] Add graphviz debug output for the gstreamer video pipeline.
114968        https://bugs.webkit.org/show_bug.cgi?id=89660
114969
114970        Reviewed by Martin Robinson.
114971
114972        Dump the current video pipeline as a graphviz DOT file when the
114973        pipeline state changes or when an error occours.
114974
114975        No new tests as the change is only useful for debugging.
114976
114977        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
114978        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
114979
1149802012-06-25  Adam Barth  <abarth@webkit.org>
114981
114982        ASSERT(m_wheelEventHandlerCount > 0) can fire
114983        https://bugs.webkit.org/show_bug.cgi?id=89856
114984
114985        Reviewed by Eric Seidel.
114986
114987        When a node with a wheel or a touch event is moved from one document to
114988        another, the didAddMumble/didRemoveMumble calls do not balance because
114989        they're called on different documents. This patch twiddles the counts
114990        appropriately in that case.
114991
114992        Test: fast/events/move-element-with-wheel-and-touch-event-listeners.html
114993
114994        * dom/EventNames.h:
114995        (WebCore::EventNames::isTouchEventType):
114996        (EventNames):
114997        (WebCore::EventNames::touchEventNames):
114998        * dom/Node.cpp:
114999        (WebCore::Node::didMoveToNewDocument):
115000
1150012012-06-25  Eric Seidel  <eric@webkit.org>
115002
115003        Split map* functions out of StyleResolver into a helper object
115004        https://bugs.webkit.org/show_bug.cgi?id=89881
115005
115006        Reviewed by Daniel Bates.
115007
115008        These map* functions are completely independent of the rest of StyleResolver
115009        and only exist to serve StyleBuilder.
115010        CSSToStyleMap doesn't even want to have a StyleResolver pointer, but
115011        currently needs one to access the resolve-lifetime caches for the
115012        current resolve.  Once we split out that per-resolve state into
115013        some sort of ResolveState/ResolveInfo object (akin to PaintInfo/LayoutState)
115014        then this object will be even simpler.
115015
115016        No behavioral change, thus no tests.
115017
115018        * CMakeLists.txt:
115019        * GNUmakefile.list.am:
115020        * WebCore.gypi:
115021        * WebCore.vcproj/WebCore.vcproj:
115022        * WebCore.xcodeproj/project.pbxproj:
115023        * css/CSSToStyleMap.cpp: Added.
115024        (WebCore):
115025        (WebCore::CSSToStyleMap::style):
115026        (WebCore::CSSToStyleMap::rootElementStyle):
115027        (WebCore::CSSToStyleMap::useSVGZoomRules):
115028        (WebCore::CSSToStyleMap::styleImage):
115029        (WebCore::CSSToStyleMap::mapFillAttachment):
115030        (WebCore::CSSToStyleMap::mapFillClip):
115031        (WebCore::CSSToStyleMap::mapFillComposite):
115032        (WebCore::CSSToStyleMap::mapFillOrigin):
115033        (WebCore::CSSToStyleMap::mapFillImage):
115034        (WebCore::CSSToStyleMap::mapFillRepeatX):
115035        (WebCore::CSSToStyleMap::mapFillRepeatY):
115036        (WebCore::CSSToStyleMap::mapFillSize):
115037        (WebCore::CSSToStyleMap::mapFillXPosition):
115038        (WebCore::CSSToStyleMap::mapFillYPosition):
115039        (WebCore::CSSToStyleMap::mapAnimationDelay):
115040        (WebCore::CSSToStyleMap::mapAnimationDirection):
115041        (WebCore::CSSToStyleMap::mapAnimationDuration):
115042        (WebCore::CSSToStyleMap::mapAnimationFillMode):
115043        (WebCore::CSSToStyleMap::mapAnimationIterationCount):
115044        (WebCore::CSSToStyleMap::mapAnimationName):
115045        (WebCore::CSSToStyleMap::mapAnimationPlayState):
115046        (WebCore::CSSToStyleMap::mapAnimationProperty):
115047        (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
115048        (WebCore::CSSToStyleMap::mapNinePieceImage):
115049        (WebCore::CSSToStyleMap::mapNinePieceImageSlice):
115050        (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
115051        (WebCore::CSSToStyleMap::mapNinePieceImageRepeat):
115052        * css/CSSToStyleMap.h: Added.
115053        (WebCore):
115054        (CSSToStyleMap):
115055        (WebCore::CSSToStyleMap::CSSToStyleMap):
115056        * css/StyleBuilder.cpp:
115057        (WebCore::ApplyPropertyFillLayer::applyValue):
115058        (WebCore::ApplyPropertyBorderImage::applyValue):
115059        (WebCore::ApplyPropertyBorderImageModifier::applyValue):
115060        (WebCore):
115061        (WebCore::ApplyPropertyAnimation::map):
115062        (WebCore::StyleBuilder::StyleBuilder):
115063        * css/StyleResolver.cpp:
115064        (WebCore::StyleResolver::StyleResolver):
115065        (WebCore::StyleResolver::collectMatchingRulesForList):
115066        * css/StyleResolver.h:
115067        (WebCore::StyleResolver::styleMap):
115068        (StyleResolver):
115069
1150702012-06-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
115071
115072        [EFL] Support screenDepth() functionality.
115073        https://bugs.webkit.org/show_bug.cgi?id=89423
115074
115075        Reviewed by Kenneth Rohde Christiansen.
115076
115077        Support screenDepth() based on ecore_x_window_depth_get(). This functionality may be used by
115078        both WebKit1 and WebKit2. So, concrete function is placed into EflScreenUtilities.cpp.
115079
115080        This patch can't support existing test cases. Because, EFL DumpRenderTree works without X11 window
115081        by default.
115082
115083        * platform/efl/EflScreenUtilities.cpp:
115084        (WebCore::getPixelDepth):
115085        (WebCore):
115086        * platform/efl/EflScreenUtilities.h:
115087        (WebCore):
115088        * platform/efl/PlatformScreenEfl.cpp:
115089        (WebCore::screenDepth):
115090        (WebCore::screenDepthPerComponent):
115091
1150922012-06-25  Shinya Kawanaka  <shinyak@chromium.org>
115093
115094        [Shadow] Executing Italic and InsertUnorderedList in Shadow DOM causes a crash
115095        https://bugs.webkit.org/show_bug.cgi?id=88495
115096
115097        Reviewed by Ryosuke Niwa.
115098
115099        InsertionPoint::removedFrom(insertionPoint) tries to find its owner ElementShadow from
115100        parentNode or insertionPoint. If the parent node exsits but we cannot reach ElementShadow from
115101        the parent node, InsertionPoint::removedFrom does not try to find ElementShadow anymore.
115102
115103        It's OK if the ElementShadow is being destructed, but there is a case ElementShadow is not being
115104        destructed in editing. In this case, we should try to find ElementShadow from insertionPoint.
115105        Otherwise it will bring inconsistency to Shadow DOM, and causes a crash.
115106
115107        Actually checking the existence of parentNode() does not make any sense. We should get
115108        shadowRoot() directly.
115109
115110        Test: editing/shadow/insertorderedlist-crash.html
115111
115112        * html/shadow/InsertionPoint.cpp:
115113        (WebCore::InsertionPoint::removedFrom):
115114
1151152012-06-25  Kinuko Yasuda  <kinuko@chromium.org>
115116
115117        Remove responseBlob field from XMLHttpResponse.idl
115118        https://bugs.webkit.org/show_bug.cgi?id=89859
115119
115120        Reviewed by Eric Seidel.
115121
115122        Remove XMLHttpResponse.responseBlob from XMLHttpResponse.idl, which
115123        has only been exposed for a very limited time (since r120574) but
115124        probably should not have been done so since XHR2 spec no longer has
115125        the field.  A quick search also showed that no one seems to be using the field.
115126
115127        (More context: the field was added long time ago with a runtime guard
115128        which had never been enabled until the guard was removed in r120574
115129        to remove XHR_RESPONSE_BLOB on all platforms.)
115130
115131        No new tests as no tests use this field.
115132
115133        * xml/XMLHttpRequest.idl: Removed responseBlob field.
115134
1151352012-06-25  Huang Dongsung  <luxtella@company100.net>
115136
115137        Add static qualifier to GraphicsContext3D::extractImageData.
115138        https://bugs.webkit.org/show_bug.cgi?id=89866
115139
115140        GraphicsContext3D::extractImageData does not use member variables.
115141        Each platform Accelerated-compositing implementation can use this method in
115142        order to get pixel data of an Image or ImageBuffer object.
115143
115144        Reviewed by Noam Rosenthal.
115145
115146        No new tests since there's no change on code behavior.
115147
115148        * platform/graphics/GraphicsContext3D.h:
115149        (GraphicsContext3D):
115150
1151512012-06-25  Pavel Feldman  <pfeldman@chromium.org>
115152
115153        Web Inspector: toggling style should not start property edit first.
115154        https://bugs.webkit.org/show_bug.cgi?id=89834
115155
115156        Reviewed by Yury Semikhatsky.
115157
115158        Otherwise property flickers upon toggling.
115159
115160        * inspector/front-end/StylesSidebarPane.js:
115161        (WebInspector.StylePropertyTreeElement.prototype):
115162
1151632012-06-25  Alexander Pavlov  <apavlov@chromium.org>
115164
115165        Web Inspector: "Emulate Touch Events" breaks selecting elements with "touchstart" event listeners for inspection.
115166        https://bugs.webkit.org/show_bug.cgi?id=89861
115167
115168        Reviewed by Vsevolod Vlasov.
115169
115170        Upon a mousepress, Inspector should be queried for the "Inspect element" mode up-front,
115171        before dispatching a synthetic "touchstart" event.
115172
115173        * page/EventHandler.cpp:
115174        (WebCore::EventHandler::handleMousePressEvent):
115175
1151762012-06-25  Alexander Pavlov  <apavlov@chromium.org>
115177
115178        Web Inspector: [Styles] Cannot visually set caret before the first CSS property name character
115179        https://bugs.webkit.org/show_bug.cgi?id=89869
115180
115181        Reviewed by Vsevolod Vlasov.
115182
115183        The issue was due to the "editbox" SPAN having a negative margin, thus the leftmost caret position was getting clipped
115184        by a synthetic SPAN container added by the TextPrompt.
115185
115186        * inspector/front-end/elementsPanel.css:
115187        (.styles-section .properties > li.child-editing .webkit-css-property):
115188        (.styles-section .properties li.child-editing):
115189
1151902012-06-25  Arko Saha  <arko@motorola.com>
115191
115192        Microdata: document.getItems(typeNames) is not returning Microdata items when typeNames argument is not specified.
115193        https://bugs.webkit.org/show_bug.cgi?id=89757
115194
115195        Reviewed by Ryosuke Niwa.
115196
115197        With r120979 change, it creates MicroDataItemList with m_typeNames = "http://webkit.org/microdata/undefinedItemType",
115198        when typeNames argument is not specified. Modified the check in nodeMatches() accordingly.
115199
115200        This fixes the following failing tests :
115201            fast/dom/MicroData/002.html
115202            fast/dom/MicroData/003.html
115203            fast/dom/MicroData/007.html
115204            fast/dom/MicroData/009.html
115205            fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
115206
115207        * dom/Document.cpp:
115208        (WebCore::Document::getItems): Use undefinedItemType to avoid String conversion.
115209        * dom/MicroDataItemList.cpp:
115210        (WebCore::MicroDataItemList::undefinedItemType): It defines "http://webkit.org/microdata/undefinedItemType"
115211        string using DEFINE_STATIC_LOCAL to avoid String conversion.
115212        (WebCore::MicroDataItemList::MicroDataItemList): Use document() method of DynamicNodeList to obtain
115213        document of owner element.
115214        (WebCore::MicroDataItemList::~MicroDataItemList): Removed originalTypeNames null check.
115215        (WebCore::MicroDataItemList::nodeMatches): Return true if originalTypeNames is equal to undefinedItemType.
115216        * dom/MicroDataItemList.h:
115217
1152182012-06-25  Carlos Garcia Campos  <cgarcia@igalia.com>
115219
115220        Unreviewed. Fix make distcheck.
115221
115222        * GNUmakefile.list.am: Add missing header file.
115223
1152242012-06-25  Simon Hausmann  <simon.hausmann@nokia.com>
115225
115226        [Qt] Fix Win32 debug build
115227
115228        Reviewed by Tor Arne Vestbø.
115229
115230        Consistently use use_all_in_one_files when requested in the configuration. The previous
115231        Linux condition has been moved to Tools/qmake/mkspecs/features/unix/default_pre.prf
115232
115233        * Target.pri:
115234
1152352012-06-25  Philip Rogers  <pdr@google.com>
115236
115237        Fix rewinding of SVG animations
115238        https://bugs.webkit.org/show_bug.cgi?id=89846
115239
115240        Reviewed by Nikolas Zimmermann.
115241
115242        r116451 introduced an optimization to only clear non-freeze animations when
115243        calling setCurrentTime (via reset()). This causes fill=freeze animations to
115244        not clear which breaks rewinding of an animation.
115245
115246        In the presence of multiple animations, we reset the first animation to the
115247        base value and accumulate all results into that; this masked the problem because
115248        2 animations were required to hit the bug (our tests primarily cover just 1).
115249
115250        Test: svg/animations/animate-reset-freeze.html
115251
115252        * svg/animation/SVGSMILElement.cpp:
115253        (WebCore::SVGSMILElement::reset):
115254
1152552012-06-25  Kent Tamura  <tkent@chromium.org>
115256
115257        Change the serialization format of form control state to make the code simple
115258        https://bugs.webkit.org/show_bug.cgi?id=89847
115259
115260        Reviewed by Hajime Morita.
115261
115262        We used multiple strings to represent state of single form control. It
115263        made the code complex. We change the serialization format so that one
115264        CSV string represents state.
115265
115266        Examples in the old format:
115267            "0"
115268            "1", "value"
115269            "3", "value1", "value2,value2", "value3"
115270
115271        Examples in the new format:
115272            ""
115273            ",value"
115274            ",value1,value2\,value2,value3"
115275
115276        Test: fast/forms/state-restore-various-values.html
115277
115278        * html/FormController.cpp:
115279        (WebCore::FormControlState::serialize):
115280        Generate comma-separated string.
115281        ',' in a value is serialized as "\,".
115282        We changed the signature because we don't need the out-argument.
115283        (WebCore::FormControlState::deserialize):
115284        Parses the input comma-separated string.
115285        We changed the signature because we don't need multiple input strings.
115286        (formStateSignature):
115287        Bump up the version because of the representation change.
115288        (WebCore::FormController::formElementsState):
115289        The new serialized format occupies just one string for one control.
115290        - Expected size is now 3n+1.
115291        - Use FormControlState::serialize().
115292        (WebCore::FormController::setStateForNewFormElements):
115293        The new serialized format occupies just one string for one control.
115294        So we can check the vector size before the iteration.
115295        * html/FormController.h:
115296        (FormControlState): Change the function signatures.
115297
115298        * html/shadow/CalendarPickerElement.cpp:
115299        (WebCore::addJavaScriptString): Use StringBuilder::appendEscaped().
115300
1153012012-06-22  Yury Semikhatsky  <yurys@chromium.org>
115302
115303        Web Inspector: add external resources size to the native memory diagram
115304        https://bugs.webkit.org/show_bug.cgi?id=89754
115305
115306        Reviewed by Vsevolod Vlasov.
115307
115308        Size of external strings and arrays is now reported through the inspector
115309        protocol and displayed on the native memory chart.
115310
115311        * GNUmakefile.list.am:
115312        * Target.pri:
115313        * WebCore.gypi:
115314        * WebCore.vcproj/WebCore.vcproj:
115315        * WebCore.xcodeproj/project.pbxproj:
115316        * bindings/js/ScriptProfiler.h:
115317        (WebCore):
115318        (WebCore::ScriptProfiler::visitJSDOMWrappers):
115319        (WebCore::ScriptProfiler::visitExternalJSStrings):
115320        (WebCore::ScriptProfiler::visitExternalJSArrays):
115321        * bindings/v8/ScriptProfiler.cpp:
115322        (WebCore::ScriptProfiler::visitJSDOMWrappers):
115323        (WebCore::ScriptProfiler::visitExternalJSStrings):
115324        (WebCore::ScriptProfiler::visitExternalJSArrays):
115325        (WebCore):
115326        * bindings/v8/ScriptProfiler.h:
115327        (WebCore):
115328        (ScriptProfiler):
115329        * bindings/v8/V8Binding.cpp:
115330        (WebCore::WebCoreStringResource::visitStrings):
115331        (WebCore::V8BindingPerIsolateData::visitJSExternalStrings):
115332        * bindings/v8/V8Binding.h:
115333        (WebCore):
115334        (V8BindingPerIsolateData):
115335        * inspector/BindingVisitors.h: Renamed from Source/WebCore/inspector/DOMWrapperVisitor.h.
115336        (WTF):
115337        (WebCore):
115338        (NodeWrapperVisitor):
115339        (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
115340        (ExternalStringVisitor):
115341        (WebCore::ExternalStringVisitor::~ExternalStringVisitor):
115342        (ExternalArrayVisitor):
115343        (WebCore::ExternalArrayVisitor::~ExternalArrayVisitor):
115344        * inspector/InspectorMemoryAgent.cpp:
115345        (MemoryBlockName):
115346        (WebCore):
115347        (WebCore::jsExternalResourcesInfo):
115348        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
115349        * inspector/front-end/NativeMemorySnapshotView.js:
115350        (WebInspector.MemoryBlockViewProperties._initialize):
115351
1153522012-06-24  Fumitoshi Ukai  <ukai@chromium.org>
115353
115354        Unreviewed compile error fix of Chromium Win Release.
115355        Touch header files for ENABLE(CSS_VARIABLES) so that
115356        it forces to rebuild files by changing ENABLE(CSS_VARIABLES)
115357        in Sources/WebKit/chromium/features.gypi at r121129
115358
115359        * css/CSSParserMode.h:
115360        * css/CSSValue.h:
115361        (WebCore):
115362        * css/CSSVariableValue.h:
115363        * page/Settings.h:
115364        * rendering/style/RenderStyle.h:
115365        * rendering/style/StyleRareInheritedData.h:
115366        * rendering/style/StyleVariableData.h:
115367
1153682012-06-24  Simon Hausmann  <simon.hausmann@nokia.com>
115369
115370        [Texmap] Minor cleanup for TextureMapper::accelerationMode()
115371        https://bugs.webkit.org/show_bug.cgi?id=89825
115372
115373        Reviewed by Kenneth Rohde Christiansen.
115374
115375        Replace the virtual method with a simple member variable.
115376
115377        * platform/graphics/texmap/TextureMapper.h:
115378        (WebCore::TextureMapper::accelerationMode):
115379        (WebCore::TextureMapper::TextureMapper):
115380        (TextureMapper):
115381        * platform/graphics/texmap/TextureMapperGL.cpp:
115382        (WebCore::TextureMapperGL::TextureMapperGL):
115383        * platform/graphics/texmap/TextureMapperGL.h:
115384        * platform/graphics/texmap/TextureMapperImageBuffer.h:
115385        (WebCore::TextureMapperImageBuffer::TextureMapperImageBuffer):
115386
1153872012-06-24  Mike Lawther  <mikelawther@chromium.org>
115388
115389        CSS3 calc: transitions starting and ending with a calc expression move to end state
115390        https://bugs.webkit.org/show_bug.cgi?id=89738
115391
115392        Reviewed by Tony Chang.
115393
115394        The equality operator for CalculationValue was not working as expected. The 
115395        equality operator for OwnPtr is private, as OwnPtrs should always be different.
115396        The OwnPtrs ended up getting cast to bool before being compared, and the 
115397        comparison was always returning true.
115398
115399        The comparison between OwnPtrs has been removed. It doesn't add value to compare
115400        the raw pointers either, since OwnPtrs should always be unique. We cannot
115401        ASSERT the uniqueness though, as it is legitimate to compare a CalculationValue
115402        to itself.
115403
115404        Test: css3/calc/transition-start-end-with-calc.html
115405
115406        * platform/CalculationValue.h:
115407        (WebCore::CalculationValue::operator==):
115408
1154092012-06-24  MORITA Hajime  <morrita@google.com>
115410
115411        NodeRenderingContext::AttachingPhase is redundant.
115412        https://bugs.webkit.org/show_bug.cgi?id=79220
115413
115414        Reviewed by Dimitri Glazkov.
115415
115416        This change removes NodeRenderingContext::AttachingPhase and
115417        NodeRenderingContext::m_phase respectively. The state originally
115418        represented as m_phase is naturally encoded into other member variables.
115419
115420        NodeRenderingContext::m_visualParentShadow is also replaced, with
115421        a local variable parentScope.
115422
115423        Basically, what NodeRenderingContext wants to know is the parent of
115424        the composed shadow tree and an optional insertion point where the
115425        node is distributed. Once these becomes clear, m_phase is no longer required.
115426        It was rather a historical artifact.
115427
115428        No new tests. No behavioral change.
115429
115430        * dom/NodeRenderingContext.cpp: Replaced m_phase with implicit states.
115431        (WebCore::NodeRenderingContext::NodeRenderingContext):
115432        (WebCore::NodeRenderingContext::nextRenderer):
115433        (WebCore::NodeRenderingContext::previousRenderer):
115434        (WebCore::NodeRenderingContext::parentRenderer):
115435        (WebCore::NodeRenderingContext::shouldCreateRenderer):
115436        (WebCore::NodeRenderingContext::isOnEncapsulationBoundary):
115437        (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
115438        * dom/NodeRenderingContext.h:
115439        (NodeRenderingContext):
115440        (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle): Removed an assert which checks m_phase.
115441        (WebCore::NodeRenderingContext::resetStyleInheritance): Removed an assert which checks m_phase.
115442        * html/shadow/InsertionPoint.h:
115443        (WebCore::isInsertionPoint): Fix null case check.
115444        (WebCore::isLowerEncapsulationBoundary): Renamed from isShadowBoundary()
115445
1154462012-06-24  Antti Koivisto  <antti@apple.com>
115447
115448        REGRESSION(r121124): LayoutTests/fast/block/inline-children-root-linebox-crash.html asserts
115449        https://bugs.webkit.org/show_bug.cgi?id=89844
115450        
115451        Reviewed by Dan Bernstein.
115452
115453        We need to check for the flipped writing mode and take the slow path if it is used.
115454
115455        * rendering/RenderGeometryMap.cpp:
115456        (WebCore::RenderGeometryMap::pushMappingsToAncestor):
115457
1154582012-06-24  Luke Macpherson  <macpherson@chromium.org>
115459
115460        Add runtime flag to enable/disable CSS variables (in addition to existing compile-time flag).
115461        https://bugs.webkit.org/show_bug.cgi?id=89542
115462
115463        Reviewed by Dimitri Glazkov.
115464
115465        Added fast/css/variables/build-supports-variables.html to test runtime flag in test environment.
115466        Updated all other css variables tests to enable the runtime flag from JS.
115467
115468        * css/CSSParser.cpp:
115469        (WebCore::CSSParserContext::CSSParserContext):
115470        (WebCore::operator==):
115471        (WebCore::CSSParser::cssVariablesEnabled):
115472        (WebCore):
115473        (WebCore::CSSParser::detectDashToken):
115474        (WebCore::CSSParser::lex):
115475        * css/CSSParser.h:
115476        (CSSParser):
115477        * css/CSSParserMode.h:
115478        (CSSParserContext):
115479        * page/Settings.h:
115480        (Settings):
115481        (WebCore::Settings::setCSSVariablesEnabled):
115482        (WebCore::Settings::cssVariablesEnabled):
115483
1154842012-06-22  Kent Tamura  <tkent@chromium.org>
115485
115486        Selected option is not restored correctly
115487        https://bugs.webkit.org/show_bug.cgi?id=89623
115488
115489        Reviewed by Hajime Morita.
115490
115491        Details of the bug:
115492        We saved a state of a <select> element as a string of which length was
115493        the size of <select>'s children. e.g. If a <select> had five children
115494        and the second and the fifth items were selected, the state string was:
115495                ".X..X"
115496
115497        This didn't work well if the structure of the children was updated after
115498        parsing. For example,
115499        1. A page has the following <select> initially:
115500          <select multiple>
115501            <option>Banana
115502            <option>Lemon
115503            <option>Orange
115504            <option>Strawberry
115505          <select>
115506
115507        2. For some reasons, <option>Apple</option> is prepended to the children.
115508        3. Some items are selected.
115509        4. The page is unloaded. Selection state is saved.
115510        5. A user go back to the page again. A browser parses the page again.
115511        6. Try to restore the <select> state with the saved data at 4.
115512          But "Apple" is missing. The <select> has wrong selections.
115513
115514        Solution:
115515        We save the state as a set of selected values. If "Banana" and
115516        "Strawberry" are selected in the above <select>, we save two strings;
115517        "Banana" and "Strawberry", not ".X..X".
115518
115519        Test: fast/forms/select/select-state-restore.html
115520
115521        * html/HTMLSelectElement.cpp:
115522        (WebCore::HTMLSelectElement::saveFormControlState):
115523        Store selected value strings to a FormControlState object.
115524        (WebCore::HTMLSelectElement::searchOptionsForValue):
115525        A helper function to find an <option> with the specified value.
115526        (WebCore::HTMLSelectElement::restoreFormControlState):
115527        Clear all of selections, then select options with saved values.
115528        In order to avoid O(M x N) loop, we start searching at position we found
115529        the previous value.
115530        * html/HTMLSelectElement.h: Declare searchOptionsForValue.
115531        * html/FormController.cpp:
115532        (formStateSignature): Bump up the version because this is a incompatible
115533        change.
115534
1155352012-06-24  David Barr  <davidbarr@chromium.org>
115536
115537        Add snap to css3-images image-resolution
115538        https://bugs.webkit.org/show_bug.cgi?id=89745
115539
115540        Reviewed by Tony Chang.
115541
115542        Due to floating point imprecision, it is difficult to be precise in dpcm.
115543        So use PrimitiveValue::roundForImpreciseConversion rather than just floor.
115544
115545        No new tests; extended fast/css/image-resolution/image-resolution.html
115546
115547        * css/CSSParser.cpp: Accept snap identifier in image-resolution property.
115548        (WebCore::CSSParser::parseImageResolution): Map CSSValueSnap to identifier value from cssValuePool.
115549        * css/CSSValueKeywords.in: Add snap.
115550        * css/StyleBuilder.cpp: Extend ApplyPropertyImageResolution to apply RenderStyle::imageResolutionSnap.
115551        (WebCore::ApplyPropertyImageResolution::applyInheritValue): Apply RenderStyle::imageResolutionSnap.
115552        (WebCore::ApplyPropertyImageResolution::applyInitialValue): Apply RenderStyle::imageResolutionSnap.
115553        (WebCore::ApplyPropertyImageResolution::applyValue): Map CSSValueSnap to ImageResolutionSnapPixels.
115554        * rendering/RenderImage.cpp: Extend conditions for recalculation of intrinsic size.
115555        (WebCore::RenderImage::styleDidChange): Update intrinsic size if RenderStyle::imageResolutionSnap() has changed.
115556        (WebCore::RenderImage::imageDimensionsChanged): Floor scale factor to int, round up if less than 0.01 away from ceiling.
115557        * rendering/style/RenderStyle.cpp: Include StyleRareInheritedData::m_imageResolutionSnap in style diff.
115558        (WebCore::RenderStyle::diff): Map change in StyleRareInheritedData::m_imageResolutionSnap to StyleDifferenceLayout.
115559        * rendering/style/RenderStyle.h: Add RenderStyle::imageResolutionSnap, RenderStyle::setImageResolutionSnap, RenderStyle::initialImageResolutionSnap.
115560        * rendering/style/RenderStyleConstants.h: Add enum ImageResolutionSnap.
115561        * rendering/style/StyleRareInheritedData.cpp: Add StyleRareInheritedData::m_imageResolutionSnap.
115562        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageResolutionSnap to default and copy constructor.
115563        (WebCore::StyleRareInheritedData::operator==): Include m_imageResolutionSnap in comparison.
115564        * rendering/style/StyleRareInheritedData.h: Add StyleRareInheritedData::m_imageResolutionSnap.
115565        (StyleRareInheritedData): Add 1-bit field StyleRareInheritedData::m_imageResolutionSnap.
115566
1155672012-06-24  Sheriff Bot  <webkit.review.bot@gmail.com>
115568
115569        Unreviewed, rolling out r121106.
115570        http://trac.webkit.org/changeset/121106
115571        https://bugs.webkit.org/show_bug.cgi?id=89841
115572
115573        Caused 85% performance regressions on Dromaeo/jslib-modify-
115574        jquery.html (Requested by rniwa on #webkit).
115575
115576        * dom/Document.cpp:
115577        (WebCore::Document::clearNodeListCaches):
115578        * dom/Document.h:
115579        (Document):
115580        * dom/DynamicNodeList.cpp:
115581        (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
115582        * dom/DynamicNodeList.h:
115583        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
115584        * dom/Node.cpp:
115585        (WebCore::Node::clearRareData):
115586        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
115587        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
115588        (WebCore::Node::getElementsByTagName):
115589        (WebCore::Node::getElementsByTagNameNS):
115590        (WebCore::Node::getElementsByName):
115591        (WebCore::Node::getElementsByClassName):
115592        (WebCore::Node::radioNodeList):
115593        (WebCore::NodeListsNodeData::invalidateCaches):
115594        (WebCore):
115595        (WebCore::NodeRareData::createNodeLists):
115596        * dom/NodeRareData.h:
115597        (NodeListsNodeData):
115598        (WebCore::NodeListsNodeData::adoptTreeScope):
115599        (WebCore::NodeRareData::ensureNodeLists):
115600        (NodeRareData):
115601        * dom/TreeScope.cpp:
115602        (WebCore::TreeScope::TreeScope):
115603        * dom/TreeScope.h:
115604        (WebCore::TreeScope::addNodeListCache):
115605        (WebCore::TreeScope::removeNodeListCache):
115606        (WebCore::TreeScope::hasNodeListCaches):
115607        (TreeScope):
115608        * dom/TreeScopeAdopter.cpp:
115609        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
115610        * html/LabelableElement.cpp:
115611        (WebCore::LabelableElement::labels):
115612        * html/LabelsNodeList.cpp:
115613        (WebCore::LabelsNodeList::LabelsNodeList):
115614        (WebCore::LabelsNodeList::~LabelsNodeList):
115615        * html/RadioNodeList.cpp:
115616        (WebCore::RadioNodeList::RadioNodeList):
115617        (WebCore::RadioNodeList::~RadioNodeList):
115618
1156192012-06-24  Adam Barth  <abarth@webkit.org>
115620
115621        Change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption
115622        https://bugs.webkit.org/show_bug.cgi?id=89833
115623
115624        Reviewed by Ryosuke Niwa.
115625
115626        As requested by Ryosuke Niwa.  Rare boolean parameters are hard to read.
115627
115628        * WebCore.exp.in:
115629        * editing/Editor.cpp:
115630        (WebCore::Editor::revealSelectionAfterEditingOperation):
115631        * editing/Editor.h:
115632        (Editor):
115633        * editing/FrameSelection.cpp:
115634        (WebCore::FrameSelection::setSelection):
115635        (WebCore::FrameSelection::revealSelection):
115636        * editing/FrameSelection.h:
115637
1156382012-06-24  Antti Koivisto  <antti@apple.com>
115639
115640        Optimize RenderGeometryMap mappings gathering
115641        https://bugs.webkit.org/show_bug.cgi?id=89828
115642
115643        Reviewed by Simon Fraser.
115644
115645        RenderGeometryMap currently gathers mappings by climbing the rendering tree. This is slow and can produce 
115646        large number of mapping steps. In the common case we already have the child layer coordinates available in
115647        the layer tree and we can just use that.
115648        
115649        The combination of faster mappings gathering and fewer number of applying steps reduces time spent under 
115650        RenderLayerCompositor::computeCompositingRequirements to less than half when scrolling the mobile version
115651        of twitter.com.
115652        
115653        * rendering/RenderGeometryMap.cpp:
115654        (WebCore):
115655        (WebCore::RenderGeometryMap::pushMappingsToAncestor):
115656        
115657            Use pre-computed mapping from the layer tree when possible.
115658
115659        (WebCore::RenderGeometryMap::popMappingsToAncestor):
115660        * rendering/RenderGeometryMap.h:
115661        
115662            Add some inline capacity.
115663
115664        (WebCore):
115665        (RenderGeometryMap):
115666        * rendering/RenderLayer.h:
115667        (WebCore::RenderLayer::canUseConvertToLayerCoords):
115668        (RenderLayer):
115669        * rendering/RenderLayerCompositor.cpp:
115670        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
115671        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
115672
1156732012-06-24  Simon Fraser  <simon.fraser@apple.com>
115674
115675        Rename isPositioned to isOutOfFlowPositioned for clarity
115676        https://bugs.webkit.org/show_bug.cgi?id=89836
115677
115678        Reviewed by Antti Koivisto.
115679        
115680        RenderObject and RenderStyle had an isPositioned() method that was
115681        confusing, because it excluded relative positioning. Rename to 
115682        isOutOfFlowPositioned(), which makes it clearer that it only applies
115683        to absolute and fixed positioning.
115684
115685        Simple rename; no behavior change.
115686
115687        * css/CSSComputedStyleDeclaration.cpp:
115688        (WebCore::getPositionOffsetValue):
115689        * css/StyleResolver.cpp:
115690        (WebCore::StyleResolver::collectMatchingRulesForList):
115691        * dom/Text.cpp:
115692        (WebCore::Text::rendererIsNeeded):
115693        * editing/DeleteButtonController.cpp:
115694        (WebCore::isDeletableElement):
115695        * editing/TextIterator.cpp:
115696        (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
115697        * rendering/AutoTableLayout.cpp:
115698        (WebCore::shouldScaleColumns):
115699        * rendering/InlineFlowBox.cpp:
115700        (WebCore::InlineFlowBox::addToLine):
115701        (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
115702        (WebCore::InlineFlowBox::requiresIdeographicBaseline):
115703        (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
115704        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
115705        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
115706        (WebCore::InlineFlowBox::flipLinesInBlockDirection):
115707        (WebCore::InlineFlowBox::computeOverflow):
115708        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
115709        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
115710        * rendering/InlineIterator.h:
115711        (WebCore::isIteratorTarget):
115712        * rendering/LayoutState.cpp:
115713        (WebCore::LayoutState::LayoutState):
115714        * rendering/RenderBlock.cpp:
115715        (WebCore::RenderBlock::MarginInfo::MarginInfo):
115716        (WebCore::RenderBlock::styleWillChange):
115717        (WebCore::RenderBlock::styleDidChange):
115718        (WebCore::RenderBlock::addChildToContinuation):
115719        (WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
115720        (WebCore::RenderBlock::containingColumnsBlock):
115721        (WebCore::RenderBlock::columnsBlockForSpanningElement):
115722        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
115723        (WebCore::getInlineRun):
115724        (WebCore::RenderBlock::isSelfCollapsingBlock):
115725        (WebCore::RenderBlock::layoutBlock):
115726        (WebCore::RenderBlock::addOverflowFromBlockChildren):
115727        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
115728        (WebCore::RenderBlock::handlePositionedChild):
115729        (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
115730        (WebCore::RenderBlock::collapseMargins):
115731        (WebCore::RenderBlock::clearFloatsIfNeeded):
115732        (WebCore::RenderBlock::simplifiedNormalFlowLayout):
115733        (WebCore::RenderBlock::isSelectionRoot):
115734        (WebCore::RenderBlock::blockSelectionGaps):
115735        (WebCore::RenderBlock::clearFloats):
115736        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
115737        (WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
115738        (WebCore::isChildHitTestCandidate):
115739        (WebCore::InlineMinMaxIterator::next):
115740        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
115741        (WebCore::RenderBlock::firstLineBoxBaseline):
115742        (WebCore::RenderBlock::lastLineBoxBaseline):
115743        (WebCore::RenderBlock::updateFirstLetter):
115744        (WebCore::shouldCheckLines):
115745        (WebCore::getHeightForLineCount):
115746        (WebCore::RenderBlock::adjustForBorderFit):
115747        (WebCore::inNormalFlow):
115748        (WebCore::RenderBlock::adjustLinePositionForPagination):
115749        (WebCore::RenderBlock::adjustBlockChildForPagination):
115750        (WebCore::RenderBlock::renderName):
115751        * rendering/RenderBlock.h:
115752        (WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
115753        * rendering/RenderBlockLineLayout.cpp:
115754        (WebCore::RenderBlock::setMarginsForRubyRun):
115755        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
115756        (WebCore::RenderBlock::computeBlockDirectionPositionsForLine):
115757        (WebCore::RenderBlock::layoutInlineChildren):
115758        (WebCore::requiresLineBox):
115759        (WebCore::RenderBlock::LineBreaker::skipTrailingWhitespace):
115760        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
115761        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
115762        * rendering/RenderBox.cpp:
115763        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
115764        (WebCore::RenderBox::styleWillChange):
115765        (WebCore::RenderBox::styleDidChange):
115766        (WebCore::RenderBox::updateBoxModelInfoFromStyle):
115767        (WebCore::RenderBox::offsetFromContainer):
115768        (WebCore::RenderBox::positionLineBox):
115769        (WebCore::RenderBox::computeRectForRepaint):
115770        (WebCore::RenderBox::computeLogicalWidthInRegion):
115771        (WebCore::RenderBox::renderBoxRegionInfo):
115772        (WebCore::RenderBox::computeLogicalHeight):
115773        (WebCore::RenderBox::computePercentageLogicalHeight):
115774        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
115775        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
115776        (WebCore::RenderBox::availableLogicalHeightUsing):
115777        (WebCore::percentageLogicalHeightIsResolvable):
115778        * rendering/RenderBox.h:
115779        (WebCore::RenderBox::stretchesToViewport):
115780        (WebCore::RenderBox::isDeprecatedFlexItem):
115781        * rendering/RenderBoxModelObject.cpp:
115782        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
115783        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
115784        * rendering/RenderBoxModelObject.h:
115785        (WebCore::RenderBoxModelObject::requiresLayer):
115786        * rendering/RenderDeprecatedFlexibleBox.cpp:
115787        (WebCore::childDoesNotAffectWidthOrFlexing):
115788        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
115789        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
115790        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
115791        (WebCore::RenderDeprecatedFlexibleBox::renderName):
115792        * rendering/RenderFieldset.cpp:
115793        (WebCore::RenderFieldset::findLegend):
115794        * rendering/RenderFlexibleBox.cpp:
115795        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
115796        (WebCore::RenderFlexibleBox::autoMarginOffsetInMainAxis):
115797        (WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild):
115798        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
115799        (WebCore::RenderFlexibleBox::computeNextFlexLine):
115800        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
115801        (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
115802        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
115803        (WebCore::RenderFlexibleBox::layoutColumnReverse):
115804        (WebCore::RenderFlexibleBox::adjustAlignmentForChild):
115805        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
115806        * rendering/RenderGrid.cpp:
115807        (WebCore::RenderGrid::renderName):
115808        * rendering/RenderImage.cpp:
115809        (WebCore::RenderImage::computeIntrinsicRatioInformation):
115810        * rendering/RenderInline.cpp:
115811        (WebCore::RenderInline::addChildIgnoringContinuation):
115812        (WebCore::RenderInline::addChildToContinuation):
115813        (WebCore::RenderInline::generateCulledLineBoxRects):
115814        (WebCore):
115815        (WebCore::RenderInline::culledInlineFirstLineBox):
115816        (WebCore::RenderInline::culledInlineLastLineBox):
115817        (WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
115818        (WebCore::RenderInline::computeRectForRepaint):
115819        (WebCore::RenderInline::dirtyLineBoxes):
115820        * rendering/RenderLayer.cpp:
115821        (WebCore::checkContainingBlockChainForPagination):
115822        (WebCore::RenderLayer::updateLayerPosition):
115823        (WebCore::isPositionedContainer):
115824        (WebCore::RenderLayer::calculateClipRects):
115825        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
115826        * rendering/RenderLayerCompositor.cpp:
115827        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
115828        * rendering/RenderLineBoxList.cpp:
115829        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
115830        * rendering/RenderListItem.cpp:
115831        (WebCore::getParentOfFirstLineBox):
115832        * rendering/RenderMultiColumnBlock.cpp:
115833        (WebCore::RenderMultiColumnBlock::renderName):
115834        * rendering/RenderObject.cpp:
115835        (WebCore::RenderObject::markContainingBlocksForLayout):
115836        (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
115837        (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
115838        (WebCore::RenderObject::styleWillChange):
115839        (WebCore::RenderObject::offsetParent):
115840        * rendering/RenderObject.h:
115841        (WebCore::RenderObject::isOutOfFlowPositioned):
115842        (WebCore::RenderObject::isInFlowPositioned):
115843        (WebCore::RenderObject::hasClip):
115844        (WebCore::RenderObject::isFloatingOrOutOfFlowPositioned):
115845        * rendering/RenderObjectChildList.cpp:
115846        (WebCore::RenderObjectChildList::removeChildNode):
115847        * rendering/RenderReplaced.cpp:
115848        (WebCore::hasAutoHeightOrContainingBlockWithAutoHeight):
115849        * rendering/RenderRubyRun.cpp:
115850        (WebCore::RenderRubyRun::rubyText):
115851        * rendering/RenderTable.cpp:
115852        (WebCore::RenderTable::addChild):
115853        (WebCore::RenderTable::computeLogicalWidth):
115854        (WebCore::RenderTable::layout):
115855        * rendering/style/RenderStyle.h:
115856
1158572012-06-24  Oli Lan  <olilan@chromium.org>
115858
115859        After Editor::setComposition is called, input should scroll to the end of the composition.
115860        https://bugs.webkit.org/show_bug.cgi?id=88999
115861
115862        Reviewed by Ryosuke Niwa.
115863
115864        This fixes an issue where after a call to setComposition, the start of the composition is revealed
115865        (scrolled to) instead of the end (where the caret/editing point should be).
115866
115867        The change is to allow revealSelectionAfterEditingOperation to take a revealExtent parameter,
115868        and to pass that parameter as true when calling from setIgnoreCompositionSelectionChange, which is
115869        called at the end of setComposition.
115870
115871        Test: fast/forms/input-set-composition-scroll.html
115872
115873        * editing/Editor.cpp:
115874        (WebCore::Editor::revealSelectionAfterEditingOperation):
115875        (WebCore::Editor::setIgnoreCompositionSelectionChange):
115876        * editing/Editor.h:
115877        (Editor):
115878
1158792012-06-24  Joshua Bell  <jsbell@chromium.org>
115880
115881        Web Inspector: Simplify InspectorIndexedDBAgent to use IDB metadata API
115882        https://bugs.webkit.org/show_bug.cgi?id=89495
115883
115884        Reviewed by Vsevolod Vlasov.
115885
115886        No new tests - no functional changes.
115887
115888        * inspector/InspectorIndexedDBAgent.cpp:
115889        (WebCore):
115890
1158912012-06-24  Pavel Feldman  <pfeldman@chromium.org>
115892
115893        Web Inspector: speed up Timeline and Elements panel rendering
115894        https://bugs.webkit.org/show_bug.cgi?id=89771
115895
115896        Reviewed by Yury Semikhatsky.
115897
115898        I used timeline panel to find unnecessary style operations.
115899
115900        * inspector/front-end/ElementsTreeOutline.js:
115901        (WebInspector.ElementsTreeElement.prototype.updateTitle):
115902        * inspector/front-end/TimelinePanel.js:
115903        (WebInspector.TimelinePanel.prototype._updateEventDividers):
115904        (WebInspector.TimelinePanel.prototype._updateFrames):
115905        (WebInspector.TimelinePanel.prototype.sidebarResized):
115906        (WebInspector.TimelinePanel.prototype.onResize):
115907        (WebInspector.TimelinePanel.prototype._onScroll):
115908        (WebInspector.TimelinePanel.prototype._refresh):
115909        (WebInspector.TimelinePanel.prototype._refreshRecords):
115910        (WebInspector.TimelinePanel.prototype._adjustScrollPosition):
115911
1159122012-06-23  Ryosuke Niwa  <rniwa@webkit.org>
115913
115914        Inserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
115915        https://bugs.webkit.org/show_bug.cgi?id=73853
115916
115917        Reviewed by Anders Carlsson and Ojan Vafai.
115918
115919        Invalidate all node lists at document level to avoid having to walk up the DOM tree in the invalidation.
115920        In particular, this makes appending node O(1) with respect to the depth of the tree in common cases when
115921        we have node lists somewhere in the tree scope.
115922
115923        We now invalidate more node lists than we used to but it shouldn't matter much in practice because
115924        most websites don't add or remove nodes or modify relevant attributes while iterating through node lists.
115925        The change would also register each node list to document thereby consuming one extra pointer, however,
115926        this should not have a significant memory impact given we used to do it unintentionally until I fixed it in
115927        r110797 three months ago.
115928
115929        Also, RadioNodeList and LabelsNodeList had always been invalidated at document level so this refactoring
115930        also allows us to move calls to registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList in
115931        those node lists to DynamicSubtreeNodeList, and even delete NodeListsNodeData::invalidateCaches().
115932
115933        In addition, removed m_numNodeListCaches from TreeScope since it was only used to avoid walking up
115934        the ancestors in invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged
115935        but we don't walk up the ancestors any more. Also note that m_listsInvalidatedAtDocument tells us exactly
115936        how many node lists are present for each document.
115937
115938        * dom/Document.cpp:
115939        (WebCore::Document::clearNodeListCaches): Optionally takes a qualified attribute name so that we don't
115940        have to invalidate tag node lists when only attributes are modified.
115941        * dom/Document.h:
115942        (Document):
115943        * dom/DynamicNodeList.cpp:
115944        (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Calls unregisterDynamicSubtreeNodeList.
115945        * dom/DynamicNodeList.h:
115946        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Calls registerDynamicSubtreeNodeList.
115947        * dom/Node.cpp:
115948        (WebCore::Node::clearRareData):
115949        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): No longer walks up the tree to invalidate
115950        node list caches. All invalidations are done in Document::clearNodeListCaches.
115951        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Ditto.
115952        (WebCore::Node::getElementsByTagName):
115953        (WebCore::Node::getElementsByTagNameNS):
115954        (WebCore::Node::getElementsByName):
115955        (WebCore::Node::getElementsByClassName):
115956        (WebCore::Node::radioNodeList):
115957        (WebCore):
115958        (WebCore::NodeRareData::createNodeLists):
115959        * dom/NodeRareData.h:
115960        (NodeListsNodeData):
115961        (WebCore::NodeListsNodeData::adoptTreeScope): Invalidate node list caches while registering and
115962        unregistering node lists from old and new documents respectively now that invalidateCaches() has been
115963        (WebCore::NodeRareData::ensureNodeLists):
115964        (NodeRareData):
115965        * dom/TreeScope.cpp:
115966        (WebCore::TreeScope::TreeScope):
115967        * dom/TreeScope.h:
115968        (TreeScope):
115969        * dom/TreeScopeAdopter.cpp:
115970        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
115971        * html/LabelableElement.cpp:
115972        (WebCore::LabelableElement::labels):
115973        * html/LabelsNodeList.cpp:
115974        (WebCore::LabelsNodeList::LabelsNodeList):
115975        (WebCore::LabelsNodeList::~LabelsNodeList):
115976        * html/RadioNodeList.cpp:
115977        (WebCore::RadioNodeList::RadioNodeList):
115978        (WebCore::RadioNodeList::~RadioNodeList):
115979
1159802012-06-23  Ryosuke Niwa  <rniwa@webkit.org>
115981
115982        Clang and cl.exe build fix after r121103. Don't inherit from WTF::PairHash<unsigned char, StringType>.
115983
115984        * dom/NodeRareData.h:
115985
1159862012-06-23  Ryosuke Niwa  <rniwa@webkit.org>
115987
115988        REGRESSION(r120979): getElementsByTagName is 12% slower
115989        https://bugs.webkit.org/show_bug.cgi?id=89783
115990
115991        Reviewed by Darin Adler.
115992
115993        The problem is that hashing std::pair<unsigned short, AtomicString> is very slow compared to just hashing AtomicString,
115994        which internally holds a hash already. Fixed the regression by replacing the default hash function by the one that
115995        computes AtomicString's hash + list type. This is okay because we only have 7 node list types at the moment.
115996
115997        * dom/NodeRareData.h:
115998        (NodeListsNodeData):
115999        (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::hash):
116000        (NodeListCacheMapEntryHash):
116001        (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
116002        (WebCore::NodeListsNodeData::namedNodeListKey):
116003
1160042012-06-23  Dan Bernstein  <mitz@apple.com>
116005
116006        RenderText’s minimum preferred width is incorrect automatic hyphenation is used
116007        https://bugs.webkit.org/show_bug.cgi?id=89814
116008
116009        Reviewed by Sam Weinig.
116010
116011        Test: fast/text/hyphen-min-preferred-width.html
116012
116013        * rendering/RenderText.cpp:
116014        (WebCore::maxWordFragmentWidth): Added this helper function. It returns the width of the
116015        widest hyphenated fragment of the word (except for the suffix after the last hyphen) and
116016        the offset of the last hyphenation opportunity.
116017        (WebCore::RenderText::computePreferredLogicalWidths): Changed this function to consider the
116018        widths of hyphenated word fragments rather than entire words when computing the minimum
116019        width. Because hyphenating and measuring all fragments is expensive, hyphenation is only
116020        attempted if the unhyphenated word is wider than the current minimum width.
116021
1160222012-06-23  Sheriff Bot  <webkit.review.bot@gmail.com>
116023
116024        Unreviewed, rolling out r121058.
116025        http://trac.webkit.org/changeset/121058
116026        https://bugs.webkit.org/show_bug.cgi?id=89809
116027
116028        Patch causes plugins tests to crash in GTK debug builds
116029        (Requested by zdobersek on #webkit).
116030
116031        * bindings/js/GCController.cpp:
116032        (WebCore::collect):
116033        (WebCore::GCController::garbageCollectSoon):
116034        (WebCore::GCController::garbageCollectNow):
116035        (WebCore::GCController::discardAllCompiledCode):
116036        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
116037        (WebCore::JSSQLStatementErrorCallback::handleEvent):
116038        * bindings/js/JSCustomVoidCallback.cpp:
116039        (WebCore::JSCustomVoidCallback::handleEvent):
116040        * bindings/js/JSCustomXPathNSResolver.cpp:
116041        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
116042        * bindings/js/JSErrorHandler.cpp:
116043        (WebCore::JSErrorHandler::handleEvent):
116044        * bindings/js/JSEventCustom.cpp:
116045        (WebCore::toJS):
116046        * bindings/js/JSEventListener.cpp:
116047        (WebCore::JSEventListener::handleEvent):
116048        * bindings/js/JSInjectedScriptHostCustom.cpp:
116049        (WebCore::InjectedScriptHost::nodeAsScriptValue):
116050        (WebCore::JSInjectedScriptHost::inspectedObject):
116051        * bindings/js/JSInjectedScriptManager.cpp:
116052        (WebCore::InjectedScriptManager::createInjectedScript):
116053        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
116054        * bindings/js/JSLazyEventListener.cpp:
116055        (WebCore::JSLazyEventListener::initializeJSFunction):
116056        * bindings/js/JSMainThreadExecState.h:
116057        (WebCore::JSMainThreadExecState::evaluate):
116058        * bindings/js/JSMutationCallbackCustom.cpp:
116059        (WebCore::JSMutationCallback::handleEvent):
116060        * bindings/js/JSNodeFilterCondition.cpp:
116061        (WebCore::JSNodeFilterCondition::acceptNode):
116062        * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
116063        (WebCore::JSRequestAnimationFrameCallback::handleEvent):
116064        * bindings/js/JavaScriptCallFrame.cpp:
116065        (WebCore::JavaScriptCallFrame::evaluate):
116066        * bindings/js/PageScriptDebugServer.cpp:
116067        (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
116068        * bindings/js/ScheduledAction.cpp:
116069        (WebCore::ScheduledAction::executeFunctionInContext):
116070        * bindings/js/ScriptCachedFrameData.cpp:
116071        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
116072        (WebCore::ScriptCachedFrameData::restore):
116073        (WebCore::ScriptCachedFrameData::clear):
116074        * bindings/js/ScriptController.cpp:
116075        (WebCore::ScriptController::evaluateInWorld):
116076        (WebCore::ScriptController::clearWindowShell):
116077        (WebCore::ScriptController::initScript):
116078        (WebCore::ScriptController::updateDocument):
116079        (WebCore::ScriptController::cacheableBindingRootObject):
116080        (WebCore::ScriptController::bindingRootObject):
116081        (WebCore::ScriptController::windowScriptNPObject):
116082        (WebCore::ScriptController::jsObjectForPluginElement):
116083        (WebCore::ScriptController::clearScriptObjects):
116084        * bindings/js/ScriptControllerMac.mm:
116085        (WebCore::ScriptController::windowScriptObject):
116086        * bindings/js/ScriptDebugServer.cpp:
116087        (WebCore::ScriptDebugServer::dispatchDidPause):
116088        * bindings/js/ScriptEventListener.cpp:
116089        (WebCore::eventListenerHandlerBody):
116090        (WebCore::eventListenerHandlerLocation):
116091        * bindings/js/ScriptFunctionCall.cpp:
116092        (WebCore::ScriptCallArgumentHandler::appendArgument):
116093        (WebCore::ScriptFunctionCall::call):
116094        (WebCore::ScriptFunctionCall::construct):
116095        (WebCore::ScriptCallback::call):
116096        * bindings/js/ScriptObject.cpp:
116097        (WebCore::ScriptGlobalObject::set):
116098        (WebCore::ScriptGlobalObject::get):
116099        (WebCore::ScriptGlobalObject::remove):
116100        * bindings/js/ScriptValue.cpp:
116101        (WebCore::ScriptValue::getString):
116102        (WebCore::ScriptValue::toInspectorValue):
116103        * bindings/js/WorkerScriptController.cpp:
116104        (WebCore::WorkerScriptController::~WorkerScriptController):
116105        (WebCore::WorkerScriptController::initScript):
116106        (WebCore::WorkerScriptController::evaluate):
116107        (WebCore::WorkerScriptController::disableEval):
116108        * bindings/objc/WebScriptObject.mm:
116109        (_didExecute):
116110        (-[WebScriptObject _setImp:originRootObject:rootObject:]):
116111        (-[WebScriptObject _setOriginRootObject:andRootObject:]):
116112        (-[WebScriptObject dealloc]):
116113        (-[WebScriptObject finalize]):
116114        (-[WebScriptObject callWebScriptMethod:withArguments:]):
116115        (-[WebScriptObject evaluateWebScript:]):
116116        (-[WebScriptObject setValue:forKey:]):
116117        (-[WebScriptObject valueForKey:]):
116118        (-[WebScriptObject removeWebScriptKey:]):
116119        (-[WebScriptObject hasWebScriptKey:]):
116120        (-[WebScriptObject stringRepresentation]):
116121        (-[WebScriptObject webScriptValueAtIndex:]):
116122        (-[WebScriptObject setWebScriptValueAtIndex:value:]):
116123        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
116124        * bindings/scripts/CodeGeneratorJS.pm:
116125        (GenerateCallbackImplementation):
116126        * bindings/scripts/test/JS/JSTestCallback.cpp:
116127        (WebCore::JSTestCallback::callbackWithNoParam):
116128        (WebCore::JSTestCallback::callbackWithClass1Param):
116129        (WebCore::JSTestCallback::callbackWithClass2Param):
116130        (WebCore::JSTestCallback::callbackWithStringList):
116131        (WebCore::JSTestCallback::callbackWithBoolean):
116132        (WebCore::JSTestCallback::callbackRequiresThisToPass):
116133        * bridge/NP_jsobject.cpp:
116134        (_NPN_InvokeDefault):
116135        (_NPN_Invoke):
116136        (_NPN_Evaluate):
116137        (_NPN_GetProperty):
116138        (_NPN_SetProperty):
116139        (_NPN_RemoveProperty):
116140        (_NPN_HasProperty):
116141        (_NPN_HasMethod):
116142        (_NPN_Enumerate):
116143        (_NPN_Construct):
116144        * bridge/c/c_class.cpp:
116145        (JSC::Bindings::CClass::~CClass):
116146        (JSC::Bindings::CClass::methodsNamed):
116147        (JSC::Bindings::CClass::fieldNamed):
116148        * bridge/c/c_instance.cpp:
116149        (JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
116150        (JSC::Bindings::CInstance::invokeMethod):
116151        (JSC::Bindings::CInstance::invokeDefaultMethod):
116152        (JSC::Bindings::CInstance::invokeConstruct):
116153        (JSC::Bindings::CInstance::getPropertyNames):
116154        * bridge/c/c_runtime.cpp:
116155        (JSC::Bindings::CField::valueFromInstance):
116156        (JSC::Bindings::CField::setValueToInstance):
116157        * bridge/c/c_utility.cpp:
116158        (JSC::Bindings::convertValueToNPVariant):
116159        (JSC::Bindings::convertNPVariantToValue):
116160        * bridge/jni/jni_jsobject.mm:
116161        (JavaJSObject::call):
116162        (JavaJSObject::eval):
116163        (JavaJSObject::getMember):
116164        (JavaJSObject::setMember):
116165        (JavaJSObject::removeMember):
116166        (JavaJSObject::getSlot):
116167        (JavaJSObject::setSlot):
116168        (JavaJSObject::toString):
116169        (JavaJSObject::convertValueToJObject):
116170        (JavaJSObject::convertJObjectToValue):
116171        * bridge/jni/jni_objc.mm:
116172        (JSC::Bindings::dispatchJNICall):
116173        * bridge/jni/jsc/JNIUtilityPrivate.cpp:
116174        (JSC::Bindings::convertValueToJValue):
116175        * bridge/jni/jsc/JavaClassJSC.cpp:
116176        (JavaClass::JavaClass):
116177        (JavaClass::~JavaClass):
116178        * bridge/jni/jsc/JavaInstanceJSC.cpp:
116179        (JavaInstance::stringValue):
116180        * bridge/jni/jsc/JavaMethodJSC.cpp:
116181        (appendClassName):
116182        (JavaMethod::signature):
116183        * bridge/jni/jsc/JavaStringJSC.h:
116184        (JSC::Bindings::JavaString::JavaString):
116185        (JSC::Bindings::JavaString::~JavaString):
116186        (JSC::Bindings::JavaString::utf8):
116187        (JSC::Bindings::JavaString::init):
116188        * bridge/jsc/BridgeJSC.cpp:
116189        (JSC::Bindings::Instance::createRuntimeObject):
116190        (JSC::Bindings::Instance::newRuntimeObject):
116191        * bridge/objc/objc_instance.mm:
116192        (ObjcInstance::moveGlobalExceptionToExecState):
116193        (ObjcInstance::invokeObjcMethod):
116194        (ObjcInstance::invokeDefaultMethod):
116195        (ObjcInstance::setValueOfUndefinedField):
116196        (ObjcInstance::getValueOfUndefinedField):
116197        * bridge/objc/objc_runtime.mm:
116198        (JSC::Bindings::ObjcField::valueFromInstance):
116199        (JSC::Bindings::ObjcField::setValueToInstance):
116200        * bridge/objc/objc_utility.mm:
116201        (JSC::Bindings::convertValueToObjcValue):
116202        (JSC::Bindings::convertNSStringToString):
116203        (JSC::Bindings::convertObjcValueToValue):
116204        * bridge/qt/qt_instance.cpp:
116205        (JSC::Bindings::QtInstance::~QtInstance):
116206        (JSC::Bindings::QtInstance::getQtInstance):
116207        (JSC::Bindings::QtInstance::newRuntimeObject):
116208        * bridge/qt/qt_pixmapruntime.cpp:
116209        (JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):
116210        * bridge/qt/qt_runtime.cpp:
116211        (JSC::Bindings::convertValueToQVariant):
116212        (JSC::Bindings::convertQVariantToValue):
116213        (JSC::Bindings::QtRuntimeMetaMethod::call):
116214        (JSC::Bindings::QtRuntimeConnectionMethod::call):
116215        * bridge/qt/qt_runtime_qt4.cpp:
116216        (JSC::Bindings::convertValueToQVariant):
116217        (JSC::Bindings::convertQVariantToValue):
116218        (JSC::Bindings::QtRuntimeMetaMethod::call):
116219        (JSC::Bindings::QtRuntimeConnectionMethod::call):
116220        * html/HTMLCanvasElement.cpp:
116221        (WebCore::HTMLCanvasElement::createImageBuffer):
116222        * html/HTMLImageLoader.cpp:
116223        (WebCore::HTMLImageLoader::notifyFinished):
116224        * plugins/PluginView.cpp:
116225        (WebCore::PluginView::start):
116226        (WebCore::PluginView::stop):
116227        (WebCore::PluginView::performRequest):
116228        (WebCore::PluginView::npObject):
116229        (WebCore::PluginView::privateBrowsingStateChanged):
116230        * plugins/blackberry/PluginViewBlackBerry.cpp:
116231        (WebCore::PluginView::dispatchNPEvent):
116232        (WebCore::PluginView::setNPWindowIfNeeded):
116233        (WebCore::PluginView::platformStart):
116234        (WebCore::PluginView::getWindowInfo):
116235        * plugins/efl/PluginViewEfl.cpp:
116236        (WebCore::PluginView::dispatchNPEvent):
116237        * plugins/gtk/PluginViewGtk.cpp:
116238        (WebCore::PluginView::dispatchNPEvent):
116239        (WebCore::PluginView::handleKeyboardEvent):
116240        (WebCore::PluginView::handleMouseEvent):
116241        (WebCore::PluginView::setNPWindowIfNeeded):
116242        (WebCore::PluginView::platformStart):
116243        * plugins/mac/PluginViewMac.mm:
116244        (WebCore::PluginView::setNPWindowIfNeeded):
116245        (WebCore::PluginView::dispatchNPEvent):
116246        * plugins/qt/PluginViewQt.cpp:
116247        (WebCore::PluginView::dispatchNPEvent):
116248        (WebCore::PluginView::setNPWindowIfNeeded):
116249        (WebCore::PluginView::platformStart):
116250        * plugins/win/PluginViewWin.cpp:
116251        (WebCore::PluginView::dispatchNPEvent):
116252        (WebCore::PluginView::handleKeyboardEvent):
116253        (WebCore::PluginView::handleMouseEvent):
116254        (WebCore::PluginView::setNPWindowRect):
116255        * testing/js/WebCoreTestSupport.cpp:
116256        (WebCoreTestSupport::injectInternalsObject):
116257        (WebCoreTestSupport::resetInternalsObject):
116258        * xml/XMLHttpRequest.cpp:
116259        (WebCore::XMLHttpRequest::dropProtection):
116260
1162612012-06-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
116262
116263        Store hit-test rect in HitTestPoint as Rect.
116264        https://bugs.webkit.org/show_bug.cgi?id=89454
116265
116266        Reviewed by Darin Adler.
116267
116268        Calculate the rectangle early and store that instead of padding
116269        to avoid recalculating the rectangle for every single element
116270        hit tested.
116271
116272        No change in functionality. No new tests.
116273
116274        * page/EventHandler.cpp:
116275        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
116276        (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
116277        * rendering/HitTestResult.cpp:
116278        (WebCore::HitTestPoint::HitTestPoint):
116279        (WebCore::HitTestPoint::operator=):
116280        (WebCore::HitTestPoint::setPoint):
116281        (WebCore::hitTestPointIntersects):
116282        (WebCore::HitTestPoint::intersects):
116283        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
116284        * rendering/HitTestResult.h:
116285        (HitTestPoint):
116286        (WebCore::HitTestPoint::boundingBox):
116287        (WebCore::HitTestPoint::topPadding):
116288        (WebCore::HitTestPoint::rightPadding):
116289        (WebCore::HitTestPoint::bottomPadding):
116290        (WebCore::HitTestPoint::leftPadding):
116291        (HitTestResult):
116292        * rendering/RenderBlock.cpp:
116293        (WebCore::RenderBlock::hitTestColumns):
116294        * rendering/RenderTableSection.cpp:
116295        (WebCore::RenderTableSection::nodeAtPoint):
116296
1162972012-06-22  Benjamin Poulain  <bpoulain@apple.com>
116298
116299        Text with text-overflow:ellipsis and text-align:right is left aligned
116300        https://bugs.webkit.org/show_bug.cgi?id=88705
116301
116302        Reviewed by Dan Bernstein.
116303
116304        When building the line of a text with overflow, we do not know if we can place
116305        an ellipsis and where it should be. Because of that, text is laid out as if it does
116306        not have text-overflow: ellipsis.
116307
116308        This causes problems with text-alignement right in LTR and left in RTL. The shortened text
116309        did not follow the allignment.
116310
116311        This patch changes the position of lines with ellipsis after layout to follow the allignment.
116312        In RenderBlock::checkLinesForTextOverflow(), the call to RootInlineBox::placeEllipsis() now
116313        also gives the width of the truncated text. We use this width to re-compute the alignement and
116314        shift the box if necessary.
116315
116316        In RenderBlock::deleteEllipsisLineBoxes() we revert the text to the position computed with the
116317        total width. This way all layout computation is done as usual.
116318
116319        Tests: fast/css/text-overflow-ellipsis-text-align-left.html
116320               fast/css/text-overflow-ellipsis-text-align-right.html
116321
116322        * rendering/InlineBox.cpp:
116323        (WebCore::InlineBox::canAccommodateEllipsis): Make the method const for readability, truncating is
116324        done later in placeEllipsisBox().
116325        (WebCore::InlineBox::placeEllipsisBox): Add an output argument, truncatedWidth, giving the width
116326        of the text + ellipsis after truncation (if any truncation can be done).
116327        * rendering/InlineBox.h:
116328        (InlineBox):
116329        * rendering/InlineFlowBox.cpp:
116330        (WebCore::InlineBox::adjustLogicalPosition): adjustPosition() logical coordinates.
116331        (WebCore::InlineFlowBox::canAccommodateEllipsis):
116332        (WebCore::InlineFlowBox::placeEllipsisBox):
116333        * rendering/InlineFlowBox.h:
116334        (InlineFlowBox):
116335        * rendering/InlineTextBox.cpp:
116336        (WebCore::InlineTextBox::placeEllipsisBox):
116337        * rendering/InlineTextBox.h:
116338        (InlineTextBox):
116339        * rendering/RenderBlockLineLayout.cpp:
116340        (WebCore::RenderBlock::deleteEllipsisLineBoxes): In addition to removing the truncation, we
116341        need to revert the shift introduced by checkLinesForTextOverflow(). This restore the lines
116342        to its original, untruncated position in order to layout the block correctly in RenderBlock::layoutInlineChildren().
116343        (WebCore::RenderBlock::checkLinesForTextOverflow): After we truncate the text, we now recompute the shift we need
116344        for alignment, and move the line accordingly.
116345        * rendering/RenderDeprecatedFlexibleBox.cpp:
116346        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
116347        * rendering/RootInlineBox.cpp:
116348        (WebCore::RootInlineBox::placeEllipsis): Return the width of the truncated text + the width of the ellipsis.
116349        (WebCore::RootInlineBox::placeEllipsisBox):
116350        (WebCore::RootInlineBox::adjustPosition):
116351        * rendering/RootInlineBox.h:
116352        (RootInlineBox):
116353
1163542012-06-22  Eugene Klyuchnikov  <eustas.big@gmail.com>
116355
116356        Web Inspector: Fix negative time interval on zoom-in
116357        https://bugs.webkit.org/show_bug.cgi?id=89798
116358
116359        Reviewed by Pavel Feldman.
116360
116361        Steps to reproduce:
116362        1) Record timeline
116363        2) Select small range with left tick close to zero
116364        3) Move pointer to the right end of the ruler
116365        4) Zoom-in with mouse-wheel
116366
116367        Result: right tick goes below the zero.
116368
116369        * inspector/front-end/TimelineOverviewPane.js:
116370        (WebInspector.TimelineOverviewWindow.prototype._zoom):
116371
1163722012-06-22  Alexandru Chiculita  <achicu@adobe.com>
116373
116374        [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
116375        https://bugs.webkit.org/show_bug.cgi?id=89781
116376
116377        Reviewed by Dean Jackson.
116378
116379        Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.
116380
116381        No new tests, just re-enabled existing tests.
116382
116383        * css/CSSValueKeywords.in: Added empty line to force a rebuild of the file on the EWS.
116384        * Configurations/FeatureDefines.xcconfig:
116385
1163862012-06-22  David Grogan  <dgrogan@chromium.org>
116387
116388        IndexedDB: Avoid infinite loop if we try to encode -1 for leveldb
116389        https://bugs.webkit.org/show_bug.cgi?id=89625
116390
116391        It gets worse, memory is allocated inside the loop so the process is
116392        eventually killed by the OS.
116393
116394        Reviewed by Tony Chang.
116395
116396        Added tests to Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp
116397
116398        * Modules/indexeddb/IDBLevelDBCoding.cpp:
116399        (WebCore::IDBLevelDBCoding::encodeInt):
116400        (WebCore::IDBLevelDBCoding::encodeVarInt):
116401
1164022012-06-22  Hayato Ito  <hayato@chromium.org>
116403
116404        [Shadow] ShadowRoot.activeElement should use the result of re-targeting algorithm.
116405        https://bugs.webkit.org/show_bug.cgi?id=89763
116406
116407        Reviewed by Dimitri Glazkov.
116408
116409        Use the result of the re-targeting algorithm in calculating
116410        shadow root's activeElement so that ShadowRoot.activeElement returns
116411        a focused distributed node correctly as the algorithm says.
116412
116413        The spec is:
116414        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#active-element
116415
116416        Tests: fast/dom/shadow/shadow-root-activeElement.html
116417
116418        * dom/EventDispatcher.cpp:
116419        (WebCore):
116420        (WebCore::EventRelatedTargetAdjuster::adjust):
116421        (WebCore::EventDispatcher::ensureEventAncestors):
116422        * dom/TreeScope.cpp:
116423        (WebCore::TreeScope::focusedNode):
116424        * html/shadow/InsertionPoint.h:
116425        (WebCore::InsertionPoint::contains):
116426
1164272012-06-22  James Robinson  <jamesr@chromium.org>
116428
116429        [chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.
116430        https://bugs.webkit.org/show_bug.cgi?id=89045
116431
116432        Reviewed by Adrienne Walker.
116433
116434        Based on patch by Michal Mocny <mmocny@google.com>.
116435
116436        Invariants:
116437
116438        1.) We never commit (paint, animate, any of it) when not visible on the main thread -except- for
116439        compositeAndReadback, regardless of threaded vs non-threaded mode
116440        2.) CCLayerTreeHost::m_contentsTextureManager's memory budget is only set by updateLayers() when we are going to
116441        make a frame and is always set to a non-zero value
116442        3.) Zero-sized allocations from the GPU process are always serviced immediately on the impl thread.  Non-zero
116443        allocations are met in the next frame, whenever we would produce that frame according to our usual frame
116444        scheduling logic.
116445        4.) The impl thread always knows the set of currently-allocated managed texture IDs and can delete them all
116446        whenever it likes without needing the main thread to be responsive.
116447
116448        Details:
116449
116450        There are two main changes - tweaking how the contents texture manager's budget is handled and tweaking frame
116451        scheduling for the !visible case.
116452
116453        The scheduling change is a bit more subtle but it unifies the single and multi threaded paths and is really
116454        important.  Except for compositeAndReadback (which I'll talk about below), we simply won't produce frames when
116455        not visible.  This already happens in the single threaded path thanks to render_widget so the only change is to
116456        the threaded path.  The difficulty here is we might post a beginFrame task from the impl thread and then get a
116457        setVisible(false) call on the main thread before the beginFrame task runs.  Since I'm making the setVisible()
116458        call a blocking call from main thread -> impl thread, when the beginFrame task eventually does run on the main
116459        thread we can know that the impl thread's notion of visibility is in sync with the main threads.  Thus I'm
116460        planning to simply abort the frame before doing any processing on the main thread.  The scheduler will know if
116461        it gets a beginFrameAborted and COMMIT_STATE_IDLE.
116462
116463        compositeAndReadback is special - this call currently does come in when we aren't visible (in single and
116464        threaded mode) and we need to service it.  In particular, we need to send a beginFrame over and have it
116465        not be ignored on the main thread.  For this I'm thinking of having the proxy keep track of whether it's
116466        servicing a compositeAndReadback() and use that bit on the main thread to know to process the beginFrame
116467        normally.  On the impl side, we need a few changes.  First, we have to allocate a default framebuffer
116468        (ensureFramebufferCHROMIUM) even if we've dropped it previously and remember to discard it after the
116469        readPixels().  Second, we have to provide a non-zero contents texture allocation on the beginFrame message, and
116470        again remember to delete the textures after the readPixels().  Third, we have to know that the beginFrame is a
116471        forced frame so when we get the beginFrameComplete we go ahead with the rest of the frame.  For this, I think
116472        I'll have to add ACTION_BEGIN_FORCED_FRAME and a corresponding COMMIT_STATE_FORCED_FRAME_IN_PROGRESS so the
116473        scheduler can keep track of the magicness of this frame, and then add some logic after the readpixels call to
116474        drop resources after the readback.  It's probably a good time to stop swapping on readbacks too....
116475
116476        The contents texture manager's budget is only relevant when we want to make a frame, so it's now passed in on
116477        the updateLayers().  Since we only make frames when we are visible and we never have a zero allocation when
116478        visible (thanks to the frame scheduling changes above), this value is always non-zero.  The other thing the
116479        texture manager needs to know about is if we've killed all of the underlying textures from the impl thread -
116480        this bit is passed in by the proxy before the updateLayers() call.  This means if we're running while visible
116481        and the manager wants to decrease our budget to something other than zero, we'll get a new (non-zero) allocation
116482        on the impl thread, schedule a frame, then when it's time to make the frame pass the new lower limit in to
116483        updateLayers(), then have the contents texture manager evict down to our new limit and make a frame with the new
116484        budget.  When the commit completes we'll get notified on the impl thread of which textures the contents texture
116485        manager decided to evict and issue the deleteTexture() calls on them.
116486
116487        The texture budget we pass in will be based on the most recent non-zero memory allocation we received from the
116488        GPU memory manager, or some default value I'll pull out my ass if we haven't heard anything yet.  On compositor
116489        initialization, we can't afford to wait for a round-trip through the GPU process to get a budget for the first
116490        frame.  I don't think handling a decrease to a non-zero budget on a visible tab needs to be terribly urgent - we
116491        can get to it when we get to making the next frame.  If we wanted to satisfy reduced texture budgets directly
116492        from the impl thread, we could keep a priority-list ordered set of textures once we have priorities and delete
116493        based on that.  Let's worry about that later.
116494
116495        * platform/graphics/chromium/LayerRendererChromium.cpp:
116496        (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
116497        (WebCore::LayerRendererChromium::LayerRendererChromium):
116498        (WebCore::LayerRendererChromium::initialize):
116499        (WebCore::LayerRendererChromium::setVisible):
116500        (WebCore::LayerRendererChromium::setGpuMemoryAllocation):
116501        (WebCore):
116502        (WebCore::LayerRendererChromium::swapBuffers):
116503        (WebCore::LayerRendererChromium::getFramebufferPixels):
116504        * platform/graphics/chromium/LayerRendererChromium.h:
116505        (WebCore):
116506        (LayerRendererChromium):
116507        * platform/graphics/chromium/TextureManager.cpp:
116508        (WebCore::TextureManager::evictAndRemoveAllDeletedTextures):
116509        (WebCore):
116510        * platform/graphics/chromium/TextureManager.h:
116511        (TextureAllocator):
116512        (TextureManager):
116513        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
116514        (WebCore::TrackingTextureAllocator::createTexture):
116515        (WebCore::TrackingTextureAllocator::deleteTexture):
116516        (WebCore):
116517        (WebCore::TrackingTextureAllocator::deleteAllTextures):
116518        * platform/graphics/chromium/TrackingTextureAllocator.h:
116519        (TrackingTextureAllocator):
116520        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
116521        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
116522        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
116523        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
116524        (WebCore::CCLayerTreeHost::setVisible):
116525        (WebCore::CCLayerTreeHost::evictAllContentTextures):
116526        (WebCore::CCLayerTreeHost::updateLayers):
116527        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
116528        (CCLayerTreeHost):
116529        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
116530        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
116531        (WebCore::CCLayerTreeHostImpl::commitComplete):
116532        (WebCore::CCLayerTreeHostImpl::canDraw):
116533        (WebCore::CCLayerTreeHostImpl::context):
116534        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
116535        (WebCore):
116536        (WebCore::CCLayerTreeHostImpl::setMemoryAllocationLimitBytes):
116537        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
116538        (CCLayerTreeHostImplClient):
116539        (WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastCommit):
116540        (WebCore::CCLayerTreeHostImpl::memoryAllocationLimitBytes):
116541        (CCLayerTreeHostImpl):
116542        * platform/graphics/chromium/cc/CCProxy.h:
116543        (CCProxy):
116544        * platform/graphics/chromium/cc/CCRenderer.h:
116545        (CCRendererClient):
116546        * platform/graphics/chromium/cc/CCScheduler.cpp:
116547        (WebCore::CCScheduler::beginFrameComplete):
116548        (WebCore::CCScheduler::beginFrameAborted):
116549        (WebCore):
116550        (WebCore::CCScheduler::didSwapBuffersComplete):
116551        (WebCore::CCScheduler::didLoseContext):
116552        (WebCore::CCScheduler::didRecreateContext):
116553        (WebCore::CCScheduler::vsyncTick):
116554        * platform/graphics/chromium/cc/CCScheduler.h:
116555        (CCScheduler):
116556        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
116557        (WebCore::CCSchedulerStateMachine::beginFrameAborted):
116558        (WebCore):
116559        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
116560        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
116561        (WebCore::CCSingleThreadProxy::setVisible):
116562        (WebCore):
116563        (WebCore::CCSingleThreadProxy::stop):
116564        (WebCore::CCSingleThreadProxy::commitAndComposite):
116565        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
116566        (CCSingleThreadProxy):
116567        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
116568        (WebCore::CCThreadProxy::CCThreadProxy):
116569        (WebCore::CCThreadProxy::compositeAndReadback):
116570        (WebCore::CCThreadProxy::setVisible):
116571        (WebCore):
116572        (WebCore::CCThreadProxy::setVisibleOnImplThread):
116573        (WebCore::CCThreadProxy::scheduledActionBeginFrame):
116574        (WebCore::CCThreadProxy::beginFrame):
116575        (WebCore::CCThreadProxy::beginFrameAbortedOnImplThread):
116576        (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
116577        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
116578        * platform/graphics/chromium/cc/CCThreadProxy.h:
116579        (CCThreadProxy):
116580        (BeginFrameAndCommitState):
116581        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
116582        (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
116583        (WebCore::CCVideoLayerImpl::willDraw):
116584        (WebCore::CCVideoLayerImpl::willDrawInternal):
116585        (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
116586        (WebCore::CCVideoLayerImpl::FramePlane::freeData):
116587        (WebCore::CCVideoLayerImpl::allocatePlaneData):
116588        (WebCore::CCVideoLayerImpl::freePlaneData):
116589        (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
116590        (WebCore::CCVideoLayerImpl::didLoseContext):
116591        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
116592        (FramePlane):
116593
1165942012-06-22  Julien Chaffraix  <jchaffraix@webkit.org>
116595
116596        REGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetParent
116597        https://bugs.webkit.org/show_bug.cgi?id=89785
116598
116599        Reviewed by Abhishek Arya.
116600
116601        Test: fullscreen/full-screen-crash-offsetLeft.html
116602
116603        * rendering/RenderBoxModelObject.cpp:
116604        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
116605        Added a NULL-check for parent() as it can be NULL in fullscreen mode. Also updated a stale
116606        comment while touching the code.
116607
1166082012-06-22  Kenneth Russell  <kbr@google.com>
116609
116610        Unreviewed, rolling out r121064.
116611        http://trac.webkit.org/changeset/121064
116612        https://bugs.webkit.org/show_bug.cgi?id=88268
116613
116614        Broke Chromium Mac build.
116615
116616        * WebCore.gypi:
116617        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
116618        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
116619        (WebCore::CCLayerTreeHost::updateAnimations):
116620        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
116621        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
116622        (WebCore):
116623        (WebCore::CCLayerTreeHost::frameNumber):
116624        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
116625        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
116626        (WebCore::CCLayerTreeHostImpl::drawLayers):
116627        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
116628        (WebCore::CCLayerTreeHostImpl::frameNumber):
116629        (CCLayerTreeHostImpl):
116630        * platform/graphics/chromium/cc/CCProxy.h:
116631        (WebCore):
116632        (CCProxy):
116633        * platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
116634        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
116635        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
116636        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
116637        * platform/graphics/chromium/cc/CCThreadProxy.h:
116638        (CCThreadProxy):
116639
1166402012-06-22  Ryuan Choi  <ryuan.choi@samsung.com>
116641
116642        [EFL][WK2] Support keyboard event
116643        https://bugs.webkit.org/show_bug.cgi?id=89268
116644
116645        Reviewed by Chang Shu.
116646
116647        Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.
116648
116649        * platform/efl/EflKeyboardUtilities.cpp:
116650        (WebCore):
116651        (WebCore::keyDownCommandsMap):
116652        (WebCore::keyPressCommandsMap):
116653        (KeyDownEntry):
116654        (KeyPressEntry):
116655        (WebCore::createKeyDownCommandMap):
116656        (WebCore::createKeyPressCommandMap):
116657        (WebCore::getKeyDownCommandName):
116658        (WebCore::getKeyPressCommandName):
116659        * platform/efl/EflKeyboardUtilities.h:
116660        (WebCore):
116661
1166622012-06-22  Alec Flett  <alecflett@chromium.org>
116663
116664        IndexedDB: refactor index-writing to be more self-contained
116665        https://bugs.webkit.org/show_bug.cgi?id=89607
116666
116667        Reviewed by Tony Chang.
116668
116669        Refactor index-writing into the IndexWriter class. Does not change
116670        existing behavior but begins migrating index-writing logic into a
116671        self-contained class that can eventually be used in the
116672        frontend (renderer) side of IndexedDB.
116673
116674        No new tests, behavior is unchanged.
116675
116676        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
116677        (WebCore):
116678        (WebCore::IDBObjectStoreBackendImpl::putInternal):
116679        (WebCore::IDBObjectStoreBackendImpl::populateIndex):
116680
1166812012-06-22  Dave Tu  <dtu@chromium.org>
116682
116683        [chromium] Expose rendering statistics to WebWidget.
116684        https://bugs.webkit.org/show_bug.cgi?id=88268
116685
116686        Reviewed by James Robinson.
116687
116688        The WebKit side of a basic framework for exposing rendering statistics
116689        to Chromium's --enable-benchmarking extension.
116690
116691        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
116692        (WebCore::CCLayerTreeHost::implFrameNumber):
116693        * platform/graphics/chromium/cc/CCProxy.h:
116694        (CCProxy):
116695        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
116696        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
116697        (WebCore::CCThreadProxy::implFrameNumber):
116698        (WebCore):
116699        (WebCore::CCThreadProxy::implFrameNumberOnImplThread):
116700        * platform/graphics/chromium/cc/CCThreadProxy.h:
116701        (CCThreadProxy):
116702
1167032012-06-22  Shawn Singh  <shawnsingh@chromium.org>
116704
116705        [chromium] Do not accumulate occlusion from 3d layers on the main thread
116706        https://bugs.webkit.org/show_bug.cgi?id=89704
116707
116708        Reviewed by James Robinson.
116709
116710        Layer iterators on the main thread may not iterate over 3d layers
116711        in correct front-to-back or back-to-front order, because layer
116712        sorting is not performed on the main thread. As a result,
116713        occlusion tracking can accidentally think something is occluded if
116714        a 3d layer is processed out of order. This patch choses to solve
116715        this by avoiding accumulating occlusion for 3d layers. It may be
116716        appropriate later to consider adding layer sorting on the main
116717        thread, but for now that seemed like an unnecessary heavy-handed
116718        approach.
116719
116720        In addition to a new unit test that covers this, other unit tests
116721        were changed to work on the impl thread, so that the 3d layers
116722        still accumulate occlusion as required.
116723
116724        Unit test added to CCOcclusionTrackerTest:
116725          CCOcclusionTrackerTestUnsorted3dLayers
116726
116727        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
116728        (WebCore::layerIsInUnsorted3dRenderingContext):
116729        (WebCore):
116730        (WebCore::::markOccludedBehindLayer):
116731
1167322012-06-22  Joshua Bell  <jsbell@chromium.org>
116733
116734        IndexedDB: Snapshot metadata in front end to avoid IPC round-trips
116735        https://bugs.webkit.org/show_bug.cgi?id=88467
116736
116737        Reviewed by Tony Chang.
116738
116739        Define a new type (IDBDatabaseMetadata) that captures the "schema" of an
116740        IDB database (name, version, properties of stores, properties of indexes).
116741        Add a method for the front end to request this from the back end once up
116742        front to avoid later calls (which may be slow IPC calls in ports). Implement
116743        IDB spec logic that the metadata should be frozen for a particular IDBDatabase
116744        connection, and only change within a version change transaction, and the spec's
116745        funky requirement for aborted version change transactions.
116746
116747        Test: storage/indexeddb/metadata.html
116748
116749        * Modules/indexeddb/IDBDatabase.cpp:
116750        (WebCore::IDBDatabase::IDBDatabase): Fetch metadata from back end when connection is created.
116751        (WebCore::IDBDatabase::transactionCreated):
116752        (WebCore::IDBDatabase::transactionFinished): Update metadata at the end of a transaction in 
116753        case it was rolled back.
116754        (WebCore::IDBDatabase::objectStoreNames): Move implementation to front-end.
116755        (WebCore):
116756        (WebCore::IDBDatabase::createObjectStore): Update local copy of metadata.
116757        (WebCore::IDBDatabase::deleteObjectStore): Update local copy of metadata.
116758        * Modules/indexeddb/IDBDatabase.h:
116759        (WebCore::IDBDatabase::name): Move implementation to front-end.
116760        (WebCore::IDBDatabase::version): Move implementation to front-end.
116761        (IDBDatabase):
116762        (WebCore::IDBDatabase::metadata):
116763        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
116764        (WebCore::IDBDatabaseBackendImpl::metadata): Construct a metadata snapshot.
116765        (WebCore):
116766        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
116767        (IDBDatabaseBackendImpl):
116768        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
116769        (WebCore):
116770        (IDBDatabaseBackendInterface):
116771        * Modules/indexeddb/IDBIndex.cpp: Store a copy of the metadata, which will never
116772        change during the lifetime of the index.
116773        (WebCore::IDBIndex::IDBIndex):
116774        * Modules/indexeddb/IDBIndex.h:
116775        (WebCore::IDBIndex::create):
116776        (WebCore::IDBIndex::name): Move implementation to front-end.
116777        (WebCore::IDBIndex::objectStore): Return RefPtr (unrelated tidying).
116778        (WebCore::IDBIndex::keyPath): Move implementation to front-end.
116779        (WebCore::IDBIndex::unique): Move implementation to front-end.
116780        (WebCore::IDBIndex::multiEntry): Move implementation to front-end.
116781        (IDBIndex):
116782        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
116783        (WebCore::IDBIndexBackendImpl::metadata): Construct a metadata snapshot.
116784        (WebCore):
116785        * Modules/indexeddb/IDBIndexBackendImpl.h:
116786        (IDBIndexBackendImpl):
116787        * Modules/indexeddb/IDBMetadata.h: Added new structs.
116788        (WebCore):
116789        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
116790        (IDBDatabaseMetadata):
116791        (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
116792        (IDBObjectStoreMetadata):
116793        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
116794        (IDBIndexMetadata):
116795        * Modules/indexeddb/IDBObjectStore.cpp:
116796        (WebCore::IDBObjectStore::IDBObjectStore): Store a "live" copy of the metadata, and
116797        and copy in case of an aborted version change transaction.
116798        (WebCore::IDBObjectStore::indexNames): Move implementation to front-end.
116799        (WebCore::IDBObjectStore::createIndex): Update metadata to include new index.
116800        (WebCore::IDBObjectStore::index): Pass along metadata to instance constructor.
116801        (WebCore::IDBObjectStore::deleteIndex): Delete index from metadata.
116802        * Modules/indexeddb/IDBObjectStore.h:
116803        (WebCore::IDBObjectStore::create):
116804        (WebCore::IDBObjectStore::name): Move implementation to front-end.
116805        (WebCore::IDBObjectStore::keyPath): Move implementation to front-end.
116806        (WebCore::IDBObjectStore::transaction): Return RefPtr (unrelated tidying).
116807        (WebCore::IDBObjectStore::autoIncrement): Move implementation to front-end.
116808        (WebCore::IDBObjectStore::metadata): Allow copying the metadata, in case of abort.
116809        (WebCore::IDBObjectStore::resetMetadata): Allow setting the metadata, in case of abort.
116810        (IDBObjectStore):
116811        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
116812        (WebCore::IDBObjectStoreBackendImpl::metadata): Construct a metadata snapshot.
116813        (WebCore):
116814        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
116815        (WebCore):
116816        (IDBObjectStoreBackendImpl):
116817        * Modules/indexeddb/IDBTransaction.cpp:
116818        (WebCore::IDBTransaction::objectStore): Pass along metadata to instance constructor.
116819        (WebCore::IDBTransaction::objectStoreCreated): Track stores changed during transaction.
116820        (WebCore::IDBTransaction::objectStoreDeleted):Track stores changed during transaction.
116821        (WebCore::IDBTransaction::onAbort): Revert stores metadata potentially changed during transaction.
116822        * Modules/indexeddb/IDBTransaction.h:
116823        (IDBTransaction):
116824        * WebCore.gypi:
116825
1168262012-06-20  Mark Hahnenberg  <mhahnenberg@apple.com>
116827
116828        JSLock should be per-JSGlobalData
116829        https://bugs.webkit.org/show_bug.cgi?id=89123
116830
116831        Reviewed by Gavin Barraclough.
116832
116833        No new tests. Current regression tests are sufficient.
116834
116835        Changed all sites that used JSLock to instead use the new JSLockHolder
116836        and pass in the correct JS context that the code is about to interact with that 
116837        needs protection. Also added a couple JSLocks to places that didn't already 
116838        have it that needed it.
116839
116840        * bindings/js/GCController.cpp:
116841        (WebCore::collect):
116842        (WebCore::GCController::garbageCollectSoon):
116843        (WebCore::GCController::garbageCollectNow):
116844        (WebCore::GCController::discardAllCompiledCode):
116845        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
116846        (WebCore::JSSQLStatementErrorCallback::handleEvent):
116847        * bindings/js/JSCustomVoidCallback.cpp:
116848        (WebCore::JSCustomVoidCallback::handleEvent):
116849        * bindings/js/JSCustomXPathNSResolver.cpp:
116850        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
116851        * bindings/js/JSErrorHandler.cpp:
116852        (WebCore::JSErrorHandler::handleEvent):
116853        * bindings/js/JSEventCustom.cpp:
116854        (WebCore::toJS):
116855        * bindings/js/JSEventListener.cpp:
116856        (WebCore::JSEventListener::handleEvent):
116857        * bindings/js/JSInjectedScriptHostCustom.cpp:
116858        (WebCore::InjectedScriptHost::nodeAsScriptValue):
116859        (WebCore::JSInjectedScriptHost::inspectedObject):
116860        * bindings/js/JSInjectedScriptManager.cpp:
116861        (WebCore::InjectedScriptManager::createInjectedScript):
116862        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
116863        * bindings/js/JSLazyEventListener.cpp:
116864        (WebCore::JSLazyEventListener::initializeJSFunction):
116865        * bindings/js/JSMainThreadExecState.h:
116866        (WebCore::JSMainThreadExecState::evaluate):
116867        * bindings/js/JSMutationCallbackCustom.cpp:
116868        (WebCore::JSMutationCallback::handleEvent):
116869        * bindings/js/JSNodeFilterCondition.cpp:
116870        (WebCore::JSNodeFilterCondition::acceptNode):
116871        * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
116872        (WebCore::JSRequestAnimationFrameCallback::handleEvent):
116873        * bindings/js/JavaScriptCallFrame.cpp:
116874        (WebCore::JavaScriptCallFrame::evaluate):
116875        * bindings/js/PageScriptDebugServer.cpp:
116876        (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
116877        * bindings/js/ScheduledAction.cpp:
116878        (WebCore::ScheduledAction::executeFunctionInContext):
116879        * bindings/js/ScriptCachedFrameData.cpp:
116880        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
116881        (WebCore::ScriptCachedFrameData::restore):
116882        (WebCore::ScriptCachedFrameData::clear):
116883        * bindings/js/ScriptController.cpp:
116884        (WebCore::ScriptController::evaluateInWorld):
116885        (WebCore::ScriptController::clearWindowShell):
116886        (WebCore::ScriptController::initScript):
116887        (WebCore::ScriptController::updateDocument):
116888        (WebCore::ScriptController::cacheableBindingRootObject):
116889        (WebCore::ScriptController::bindingRootObject):
116890        (WebCore::ScriptController::windowScriptNPObject):
116891        (WebCore::ScriptController::jsObjectForPluginElement):
116892        (WebCore::ScriptController::clearScriptObjects):
116893        * bindings/js/ScriptControllerMac.mm:
116894        (WebCore::ScriptController::windowScriptObject):
116895        * bindings/js/ScriptDebugServer.cpp:
116896        (WebCore::ScriptDebugServer::dispatchDidPause):
116897        * bindings/js/ScriptEventListener.cpp:
116898        (WebCore::eventListenerHandlerBody):
116899        (WebCore::eventListenerHandlerLocation):
116900        * bindings/js/ScriptFunctionCall.cpp:
116901        (WebCore::ScriptCallArgumentHandler::appendArgument):
116902        (WebCore::ScriptFunctionCall::call):
116903        (WebCore::ScriptFunctionCall::construct):
116904        (WebCore::ScriptCallback::call):
116905        * bindings/js/ScriptObject.cpp:
116906        (WebCore::ScriptGlobalObject::set):
116907        (WebCore::ScriptGlobalObject::get):
116908        (WebCore::ScriptGlobalObject::remove):
116909        * bindings/js/ScriptValue.cpp:
116910        (WebCore::ScriptValue::getString):
116911        (WebCore::ScriptValue::toInspectorValue):
116912        * bindings/js/WorkerScriptController.cpp:
116913        (WebCore::WorkerScriptController::~WorkerScriptController):
116914        (WebCore::WorkerScriptController::initScript):
116915        (WebCore::WorkerScriptController::evaluate):
116916        (WebCore::WorkerScriptController::disableEval):
116917        * bindings/objc/WebScriptObject.mm:
116918        (_didExecute):
116919        (-[WebScriptObject _setImp:originRootObject:rootObject:]):
116920        (-[WebScriptObject _setOriginRootObject:andRootObject:]):
116921        (-[WebScriptObject dealloc]):
116922        (-[WebScriptObject finalize]):
116923        (-[WebScriptObject callWebScriptMethod:withArguments:]):
116924        (-[WebScriptObject evaluateWebScript:]):
116925        (-[WebScriptObject setValue:forKey:]):
116926        (-[WebScriptObject valueForKey:]):
116927        (-[WebScriptObject removeWebScriptKey:]):
116928        (-[WebScriptObject hasWebScriptKey:]):
116929        (-[WebScriptObject stringRepresentation]):
116930        (-[WebScriptObject webScriptValueAtIndex:]):
116931        (-[WebScriptObject setWebScriptValueAtIndex:value:]):
116932        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
116933        * bindings/scripts/CodeGeneratorJS.pm:
116934        (GenerateCallbackImplementation):
116935        * bindings/scripts/test/JS/JSTestCallback.cpp:
116936        (WebCore::JSTestCallback::callbackWithNoParam):
116937        (WebCore::JSTestCallback::callbackWithClass1Param):
116938        (WebCore::JSTestCallback::callbackWithClass2Param):
116939        (WebCore::JSTestCallback::callbackWithStringList):
116940        (WebCore::JSTestCallback::callbackWithBoolean):
116941        (WebCore::JSTestCallback::callbackRequiresThisToPass):
116942        * bridge/NP_jsobject.cpp:
116943        (_NPN_InvokeDefault):
116944        (_NPN_Invoke):
116945        (_NPN_Evaluate):
116946        (_NPN_GetProperty):
116947        (_NPN_SetProperty):
116948        (_NPN_RemoveProperty):
116949        (_NPN_HasProperty):
116950        (_NPN_HasMethod):
116951        (_NPN_Enumerate):
116952        (_NPN_Construct):
116953        * bridge/c/c_class.cpp:
116954        (JSC::Bindings::CClass::~CClass):
116955        (JSC::Bindings::CClass::methodsNamed):
116956        (JSC::Bindings::CClass::fieldNamed):
116957        * bridge/c/c_instance.cpp:
116958        (JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
116959        (JSC::Bindings::CInstance::invokeMethod):
116960        (JSC::Bindings::CInstance::invokeDefaultMethod):
116961        (JSC::Bindings::CInstance::invokeConstruct):
116962        (JSC::Bindings::CInstance::getPropertyNames):
116963        * bridge/c/c_runtime.cpp:
116964        (JSC::Bindings::CField::valueFromInstance):
116965        (JSC::Bindings::CField::setValueToInstance):
116966        * bridge/c/c_utility.cpp:
116967        (JSC::Bindings::convertValueToNPVariant):
116968        (JSC::Bindings::convertNPVariantToValue):
116969        * bridge/jni/jni_jsobject.mm:
116970        (JavaJSObject::call):
116971        (JavaJSObject::eval):
116972        (JavaJSObject::getMember):
116973        (JavaJSObject::setMember):
116974        (JavaJSObject::removeMember):
116975        (JavaJSObject::getSlot):
116976        (JavaJSObject::setSlot):
116977        (JavaJSObject::toString):
116978        (JavaJSObject::convertValueToJObject):
116979        (JavaJSObject::convertJObjectToValue):
116980        * bridge/jni/jni_objc.mm:
116981        (JSC::Bindings::dispatchJNICall):
116982        * bridge/jni/jsc/JNIUtilityPrivate.cpp:
116983        (JSC::Bindings::convertValueToJValue):
116984        * bridge/jni/jsc/JavaClassJSC.cpp:
116985        (JavaClass::JavaClass):
116986        (JavaClass::~JavaClass):
116987        * bridge/jni/jsc/JavaInstanceJSC.cpp:
116988        (JavaInstance::stringValue):
116989        * bridge/jni/jsc/JavaMethodJSC.cpp:
116990        (appendClassName):
116991        (JavaMethod::signature):
116992        * bridge/jni/jsc/JavaStringJSC.h:
116993        (JSC::Bindings::JavaString::JavaString):
116994        (JSC::Bindings::JavaString::~JavaString):
116995        (JSC::Bindings::JavaString::utf8):
116996        (JSC::Bindings::JavaString::init):
116997        * bridge/jsc/BridgeJSC.cpp:
116998        (JSC::Bindings::Instance::createRuntimeObject):
116999        (JSC::Bindings::Instance::newRuntimeObject):
117000        * bridge/objc/objc_instance.mm:
117001        (ObjcInstance::moveGlobalExceptionToExecState):
117002        (ObjcInstance::invokeObjcMethod):
117003        (ObjcInstance::invokeDefaultMethod):
117004        (ObjcInstance::setValueOfUndefinedField):
117005        (ObjcInstance::getValueOfUndefinedField):
117006        * bridge/objc/objc_runtime.mm:
117007        (JSC::Bindings::ObjcField::valueFromInstance):
117008        (JSC::Bindings::ObjcField::setValueToInstance):
117009        * bridge/objc/objc_utility.mm:
117010        (JSC::Bindings::convertValueToObjcValue):
117011        (JSC::Bindings::convertNSStringToString):
117012        (JSC::Bindings::convertObjcValueToValue):
117013        * bridge/qt/qt_instance.cpp:
117014        (JSC::Bindings::QtInstance::~QtInstance):
117015        (JSC::Bindings::QtInstance::getQtInstance):
117016        (JSC::Bindings::QtInstance::newRuntimeObject):
117017        * bridge/qt/qt_pixmapruntime.cpp:
117018        (JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):
117019        * bridge/qt/qt_runtime.cpp:
117020        (JSC::Bindings::convertValueToQVariant):
117021        (JSC::Bindings::convertQVariantToValue):
117022        (JSC::Bindings::QtRuntimeMetaMethod::call):
117023        (JSC::Bindings::QtRuntimeConnectionMethod::call):
117024        * bridge/qt/qt_runtime_qt4.cpp:
117025        (JSC::Bindings::convertValueToQVariant):
117026        (JSC::Bindings::convertQVariantToValue):
117027        (JSC::Bindings::QtRuntimeMetaMethod::call):
117028        (JSC::Bindings::QtRuntimeConnectionMethod::call):
117029        * html/HTMLCanvasElement.cpp:
117030        (WebCore::HTMLCanvasElement::createImageBuffer):
117031        * html/HTMLImageLoader.cpp:
117032        (WebCore::HTMLImageLoader::notifyFinished):
117033        * plugins/PluginView.cpp:
117034        (WebCore::PluginView::start):
117035        (WebCore::PluginView::stop):
117036        (WebCore::PluginView::performRequest):
117037        (WebCore::PluginView::npObject):
117038        (WebCore::PluginView::privateBrowsingStateChanged):
117039        * plugins/blackberry/PluginViewBlackBerry.cpp:
117040        (WebCore::PluginView::dispatchNPEvent):
117041        (WebCore::PluginView::setNPWindowIfNeeded):
117042        (WebCore::PluginView::platformStart):
117043        (WebCore::PluginView::getWindowInfo):
117044        * plugins/efl/PluginViewEfl.cpp:
117045        (WebCore::PluginView::dispatchNPEvent):
117046        * plugins/gtk/PluginViewGtk.cpp:
117047        (WebCore::PluginView::dispatchNPEvent):
117048        (WebCore::PluginView::handleKeyboardEvent):
117049        (WebCore::PluginView::handleMouseEvent):
117050        (WebCore::PluginView::setNPWindowIfNeeded):
117051        (WebCore::PluginView::platformStart):
117052        * plugins/mac/PluginViewMac.mm:
117053        (WebCore::PluginView::setNPWindowIfNeeded):
117054        (WebCore::PluginView::dispatchNPEvent):
117055        * plugins/qt/PluginViewQt.cpp:
117056        (WebCore::PluginView::dispatchNPEvent):
117057        (WebCore::PluginView::setNPWindowIfNeeded):
117058        (WebCore::PluginView::platformStart):
117059        * plugins/win/PluginViewWin.cpp:
117060        (WebCore::PluginView::dispatchNPEvent):
117061        (WebCore::PluginView::handleKeyboardEvent):
117062        (WebCore::PluginView::handleMouseEvent):
117063        (WebCore::PluginView::setNPWindowRect):
117064        * testing/js/WebCoreTestSupport.cpp:
117065        (WebCoreTestSupport::injectInternalsObject):
117066        (WebCoreTestSupport::resetInternalsObject):
117067        * xml/XMLHttpRequest.cpp:
117068        (WebCore::XMLHttpRequest::dropProtection):
117069
1170702012-06-22  Jeff Timanus  <twiz@chromium.org>
117071
117072        [Chromium] Change implementing a fast-path for copying GPU-accelerated Canvas2D instances to WebGL textures.
117073        https://bugs.webkit.org/show_bug.cgi?id=86275
117074
117075        This change adds the necessary plumbing to the various rendering contexts to copy the backing store texture of
117076        a Canvas2D instance to be copied to a WebGL texture.  The GL_CHROMIUM_copy_texture extension is necessary
117077        because the backing-store for a GPU-accelerated skia Canvas2D is normally in BGRA format, which is not supported
117078        by glCopyTexImage.
117079
117080        Reviewed by Kenneth Russell.
117081
117082        Test: fast/canvas/webgl/*
117083
117084        * html/canvas/WebGLRenderingContext.cpp:
117085        (WebCore):
117086        (WebCore::WebGLRenderingContext::texImage2D):
117087        * platform/chromium/support/Extensions3DChromium.cpp:
117088        (WebCore::Extensions3DChromium::copyTextureCHROMIUM):
117089        (WebCore):
117090        * platform/graphics/Extensions3D.h:
117091        (Extensions3D):
117092        * platform/graphics/ImageBuffer.cpp:
117093        (WebCore):
117094        (WebCore::ImageBuffer::copyToPlatformTexture):
117095        * platform/graphics/ImageBuffer.h:
117096        (WebCore):
117097        (ImageBuffer):
117098        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
117099        (WebCore::Canvas2DLayerBridge::backBufferTexture):
117100        (WebCore):
117101        * platform/graphics/chromium/Canvas2DLayerBridge.h:
117102        (Canvas2DLayerBridge):
117103        * platform/graphics/chromium/Extensions3DChromium.h:
117104        (Extensions3DChromium):
117105        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
117106        (WebCore::Extensions3DOpenGL::copyTextureCHROMIUM):
117107        (WebCore):
117108        * platform/graphics/opengl/Extensions3DOpenGL.h:
117109        (Extensions3DOpenGL):
117110        * platform/graphics/qt/Extensions3DQt.cpp:
117111        (WebCore::Extensions3DQt::copyTextureCHROMIUM):
117112        (WebCore):
117113        * platform/graphics/qt/Extensions3DQt.h:
117114        (Extensions3DQt):
117115        * platform/graphics/skia/ImageBufferSkia.cpp:
117116        (WebCore::ImageBuffer::copyToPlatformTexture):
117117        (WebCore):
117118
1171192012-06-22  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
117120
117121        Add url to supportsType
117122        https://bugs.webkit.org/show_bug.cgi?id=89514
117123
117124        Reviewed by Eric Carlson.
117125
117126        No new tests since there's no change on code behavior.
117127
117128        When a blob is created as the address for a Media Stream, the MediaEngine
117129        will ask it's players if they support that media. However, a player built
117130        for MediaStream needs to know to URL to decide if it's supported or not.
117131
117132        * dom/DOMImplementation.cpp:
117133        (WebCore::DOMImplementation::createDocument):
117134        * html/HTMLMediaElement.cpp:
117135        (WebCore::HTMLMediaElement::canPlayType):
117136        (WebCore::HTMLMediaElement::selectNextSourceChild):
117137        * html/HTMLMediaElement.h:
117138        * platform/graphics/MediaPlayer.cpp:
117139        (MediaPlayerFactory):
117140        (WebCore::MediaPlayerFactory::MediaPlayerFactory):
117141        (WebCore):
117142        (WebCore::textPlain):
117143        (WebCore::bestMediaEngineForTypeAndCodecs):
117144        (WebCore::MediaPlayer::load):
117145        (WebCore::MediaPlayer::loadWithNextMediaEngine):
117146        (WebCore::MediaPlayer::paint):
117147        (WebCore::MediaPlayer::supportsType):
117148        * platform/graphics/MediaPlayer.h:
117149        (WebCore):
117150        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
117151        (WebCore::MediaPlayerPrivateAVFoundationCF::supportsType):
117152        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
117153        (MediaPlayerPrivateAVFoundationCF):
117154        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
117155        (MediaPlayerPrivateAVFoundationObjC):
117156        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
117157        (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
117158        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
117159        (WebCore::MediaPlayerPrivate::supportsType):
117160        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
117161        (MediaPlayerPrivate):
117162        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
117163        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
117164        (MediaPlayerPrivateGStreamer):
117165        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
117166        (MediaPlayerPrivateQTKit):
117167        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
117168        (WebCore::MediaPlayerPrivateQTKit::supportsType):
117169        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
117170        (WebCore::MediaPlayerPrivateQt::supportsType):
117171        * platform/graphics/qt/MediaPlayerPrivateQt.h:
117172        (MediaPlayerPrivateQt):
117173        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
117174        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsType):
117175        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
117176        (MediaPlayerPrivateQuickTimeVisualContext):
117177        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
117178        (MediaPlayerPrivate):
117179
1171802012-06-22  Joshua Netterfield  <jnetterfield@rim.com>
117181
117182        [BlackBerry] Sanitize GLSL code using ANGLE.
117183
117184        BlackBerry port does not sanitize GLSL code with ANGLE
117185        https://bugs.webkit.org/show_bug.cgi?id=89583
117186
117187        Reviewed by Rob Buis.
117188
117189        No new tests are required.
117190
117191        * CMakeLists.txt: Added ANGLE requirment for CMake builds with WEBGL
117192        * platform/graphics/ANGLEWebKitBridge.h: Added include for ANGLE/ShaderLang.h in BlackBerry platform.
117193        * platform/graphics/GraphicsContext3D.h: Added include for ANGLEWebKitBridge.h in BlackBerry platform.
117194
1171952012-06-22  Dan Bernstein  <mitz@apple.com>
117196
117197        RenderText’s minimum preferred width is incorrect when soft hyphens are used
117198        https://bugs.webkit.org/show_bug.cgi?id=89775
117199
117200        Reviewed by Simon Fraser.
117201
117202        Test: fast/text/soft-hyphen-min-preferred-width.html
117203
117204        * rendering/RenderText.cpp:
117205        (WebCore::hyphenWidth): Added this helper function.
117206        (WebCore::RenderText::computePreferredLogicalWidths): In places where this function tests
117207        for the soft hyphen character, added a check that the 'hyphens' style property is not set
117208        to 'none', because in that case soft hyphens are not break opportunities. Also added an
117209        explicit check to suppress break opportunities from isBreakable() if the occur after a
117210        soft hyphen and 'hyphens' is set to 'none'. Finally, when measuring text up to a potential
117211        line break, added the width of the hyphen string when needed.
117212
1172132012-06-22  Dean Jackson  <dino@apple.com>
117214
117215        BitmapImage duplicates code to calculate size
117216        https://bugs.webkit.org/show_bug.cgi?id=89728
117217        <rdar://problem/11724321>
117218
117219        Reviewed by Darin Adler.
117220
117221        Add a new updateSize method to BitmapImage that
117222        avoids duplication in the size and
117223        sizeRespectingOrientation methods.
117224
117225        No new tests needed.
117226
117227        * platform/graphics/BitmapImage.cpp:
117228        (WebCore::BitmapImage::updateSize): new method that will set
117229        m_size and m_sizeRespectingOrientation if necessary.
117230        (WebCore):
117231        (WebCore::BitmapImage::size):
117232        (WebCore::BitmapImage::sizeRespectingOrientation): these each
117233        now call updateSize rather than duplicate the update code.
117234        * platform/graphics/BitmapImage.h:
117235        (BitmapImage):
117236
1172372012-06-22  Erik Arvidsson  <arv@chromium.org>
117238
117239        [V8] Clean up visitDOMWrapper code
117240        https://bugs.webkit.org/show_bug.cgi?id=89774
117241
117242        Reviewed by Tony Chang.
117243
117244        This moves the check if domWrapperVisitorFunction is null into a function of the WrapperTypeInfo struct.
117245        This is so that users of WrapperTypeInfo does not need to know about the inner details of the struct.
117246        It also makes things more consistent since the other fields in the struct have these kind of functions.
117247
117248        This is a follow up change to http://trac.webkit.org/changeset/120854.
117249
117250        No new tests. Covered by existing tests.
117251
117252        * bindings/v8/V8GCController.cpp:
117253        (WebCore::GrouperVisitor::visitDOMWrapper): Call WrapperTypeInfo::visitDOMWrapper instead.
117254        * bindings/v8/WrapperTypeInfo.h:
117255        (WrapperTypeInfo):
117256        (WebCore::WrapperTypeInfo::visitDOMWrapper): If domWrapperVisitorFunction is non null call it.
117257
1172582012-06-22  Jan Keromnes  <janx@linux.com>
117259
117260        Web Inspector: ExtensionPanel.onSearch listener doesn't work
117261        https://bugs.webkit.org/show_bug.cgi?id=89517
117262
117263        Reviewed by Yury Semikhatsky.
117264
117265        Added a test to see if listener fires on search:
117266        LayoutTests/inspector/extensions/extensions-panel.html
117267
117268        * inspector/front-end/ExtensionPanel.js:
117269        (WebInspector.ExtensionPanel.prototype.searchCanceled):
117270        (WebInspector.ExtensionPanel.prototype.performSearch):
117271        (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
117272        (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
117273
1172742012-06-22  Brian Salomon  <bsalomon@google.com>
117275
117276        Increase the GrContext texture cache count cap to 2K
117277        https://bugs.webkit.org/show_bug.cgi?id=89761
117278
117279        Reviewed by Stephen White.
117280
117281        Tests: The change is for performance. The code is exercised by all the canvas 2d layout tests.
117282
117283        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
117284
1172852012-06-22  Silvia Pfeiffer  <silviapf@chromium.org>
117286
117287        [Chromium] Adjust the displayed elements of the new Chrome media controls.
117288        https://bugs.webkit.org/show_bug.cgi?id=89416
117289
117290        Reviewed by Eric Carlson.
117291
117292        No new tests - existing media tests cover these cases.
117293
117294        Remove the volume slider for videos without audio or media resource.
117295        Display the transport bar for videos without a media resource.
117296        Don't show the fullscreen button for
117297
117298        * html/shadow/MediaControlRootElementChromium.cpp:
117299        (WebCore::MediaControlRootElementChromium::reset):
117300        Don't display volume slider if media controller has no audio.
117301        Don't display fullscreen button if media controller supportsFullscreen().
117302        (WebCore::MediaControlRootElementChromium::reportedError):
117303        Don't hide the timeline for failed videos, e.g. where the resource doesn't load.
117304
1173052012-06-22  Alexander Pavlov  <apavlov@chromium.org>
117306
117307        Web Inspector: [Elements] Right-clicking on whitespace should show the same context menu as right-clicking on the tag text
117308        https://bugs.webkit.org/show_bug.cgi?id=89766
117309
117310        Reviewed by Vsevolod Vlasov.
117311
117312        Explicitly check for the TreeElement.representedObject's nodeType()
117313        rather than for the event target's enclosing element class.
117314        Drive-by: do not consider the "collapsed node has children" ellipsis as a text node.
117315
117316        * inspector/front-end/ElementsTreeOutline.js:
117317        (WebInspector.ElementsTreeOutline.prototype.populateContextMenu):
117318
1173192012-06-22  Florin Malita  <fmalita@chromium.org>
117320
117321        REGRESSION (Safari 5.1.5 - ToT): Crash in RenderSVGRoot::computeReplacedLogicalWidth
117322        https://bugs.webkit.org/show_bug.cgi?id=85797
117323
117324        Reviewed by Darin Adler.
117325
117326        Test: svg/custom/svg-width-intrinsic-crash.html
117327
117328        RenderSVGRoot::computeReplacedLogicalWidth assumes that if
117329        SVGSVGElement::widthAttributeEstablishesViewport returns false, the
117330        SVG must be embedded via <object>. This is not always the case, though:
117331        widthAttributeEstablishesViewport can also return false for inline
117332        SVG if it doesn't have a replaced logical width.
117333
117334        Updated computeReplacedLogical{Width,Height} to handle the
117335        !widthAttributeEstablishesViewport && !isEmbeddedThroughFrameContainingSVGDocument
117336        case gracefully.
117337
117338        * rendering/svg/RenderSVGRoot.cpp:
117339        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
117340        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
117341
1173422012-06-22  Hayato Ito  <hayato@chromium.org>
117343
117344        Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
117345        https://bugs.webkit.org/show_bug.cgi?id=89073
117346
117347        Reviewed by Dimitri Glazkov.
117348
117349        Re-landing r120945 since bug 89172 was resolved.
117350
117351        Adopt a new event re-targeting algorithm in the latest Shadow DOM spec.
117352        The corresponding bug in the shadow DOM spec is:
117353        https://www.w3.org/Bugs/Public/show_bug.cgi?id=17090
117354
117355        This change is introduced to handle the following use case:
117356        1. There is an insertion point, with zero or more nodes distributed into it.
117357        2. User clicks on one of the items.
117358        3. The event handler in shadow DOM subtree wants to know which item was clicked on.
117359
117360        The new re-targeting algorithm sets an event's target to a
117361        distributed node where an event was originally fired, instead of
117362        an insertion point to where the node is distributed.
117363
117364        The similar re-targeting algorithm also applies to an event's
117365        relatedTarget.
117366
117367        Test: fast/dom/shadow/shadow-dom-event-dispatching.html
117368
117369        * dom/EventDispatcher.cpp:
117370        (WebCore::EventRelatedTargetAdjuster::adjust):
117371        (WebCore::EventDispatcher::ensureEventAncestors):
117372
1173732012-06-22  Andrey Kosyakov  <caseq@chromium.org>
117374
117375        Unreviewed follow-up to r121030, fix display of "Duration" in timeline event details popup.
117376
117377        * inspector/front-end/TimelinePresentationModel.js:
117378        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
117379
1173802012-06-22  Kenneth Russell  <kbr@google.com>
117381
117382        Unreviewed, rolling out r121025.
117383        http://trac.webkit.org/changeset/121025
117384        https://bugs.webkit.org/show_bug.cgi?id=89580
117385
117386        Caused crash in
117387        EventHandler.shouldTurnVerticalTicksIntoHorizontal webkit unit
117388        test on 10.7
117389
117390        * page/EventHandler.cpp:
117391        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
117392        (WebCore::EventHandler::handleWheelEvent):
117393        * page/EventHandler.h:
117394        (EventHandler):
117395        * page/chromium/EventHandlerChromium.cpp:
117396        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
117397        * page/gtk/EventHandlerGtk.cpp:
117398        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
117399
1174002012-06-21  Andrey Kosyakov  <caseq@chromium.org>
117401
117402        Web Inspector: only increase length for timeline bars below minimal width
117403        https://bugs.webkit.org/show_bug.cgi?id=89727
117404
117405        Reviewed by Pavel Feldman.
117406
117407        * inspector/front-end/TimelinePanel.js:
117408        (WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition):
117409        (WebInspector.TimelineCalculator.prototype.setDisplayWindow):
117410        (WebInspector.TimelineRecordGraphRow.prototype.update):
117411
1174122012-06-22  David Kilzer  <ddkilzer@apple.com>
117413
117414        BUILD FIX: FormController.cpp fails to build on 32-bit architectures
117415
117416        This fixes the following build failure introduced in r121004 for
117417        Bug 89628:
117418
117419            FormController.cpp:62:36: error: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'size_t' (aka 'unsigned long') [-Werror,-Wshorten-64-to-32]
117420                state.m_values.reserveCapacity(valueSize);
117421                ~~~~~                          ^~~~~~~~~
117422
117423        * html/FormController.cpp:
117424        (WebCore::FormControlState::deserialize): Change type of
117425        valueSize from uint64_t to size_t.
117426
1174272012-06-22  Abhishek Arya  <inferno@chromium.org>
117428
117429        Crash in DragController::concludeEditDrag.
117430        https://bugs.webkit.org/show_bug.cgi?id=89762
117431
117432        Reviewed by Ryosuke Niwa.
117433
117434        RefPtr the innerFrame since it can get destroyed due to mutation
117435        event fired in DragController::dispatchTextInputEventFor().
117436
117437        Test: editing/pasteboard/drop-text-events-sideeffect-crash.html
117438
117439        * page/DragController.cpp:
117440        (WebCore::DragController::concludeEditDrag):
117441
1174422012-06-22  Andrey Kosyakov  <caseq@chromium.org>
117443
117444        Web Inspector: timeline event details popup misses CPU time
117445        https://bugs.webkit.org/show_bug.cgi?id=89765
117446
117447        Reviewed by Pavel Feldman.
117448
117449        * inspector/front-end/TimelinePresentationModel.js:
117450        (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
117451
1174522012-06-22  Peter Beverloo  <peter@chromium.org>
117453
117454        [Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android
117455        https://bugs.webkit.org/show_bug.cgi?id=88853
117456
117457        Reviewed by Steve Block.
117458
117459        The Android exclusions were necessary to fix a gyp generation error, as
117460        the gcc_version variable wasn't being defined for Android. Remove these
117461        exceptions when Chromium is able to define the gcc_version variable.
117462
117463        * WebCore.gyp/WebCore.gyp:
117464
1174652012-06-22  Takashi Sakamoto  <tasak@google.com>
117466
117467        [Shadow] parentTreeScope() of nested shadow DOM subtree returns document().
117468        https://bugs.webkit.org/show_bug.cgi?id=89172
117469
117470        Reviewed by Hajime Morita.
117471
117472        Added setParentTreeScope to set parent treescope of shadow root to be
117473        host's treescope in ElementShadow::addShadowRoot.
117474
117475        Test: fast/dom/shadow/parent-tree-scope-in-shadow.html
117476
117477        * dom/ElementShadow.cpp:
117478        (WebCore::ElementShadow::addShadowRoot):
117479        Added setParentTreeScope.
117480        * testing/Internals.cpp:
117481        (WebCore::Internals::parentTreeScope):
117482        Newly added. This method returns a parent tree scope's root node of
117483        a given node, because a tree scope's root node is either document node
117484        or shadow root node and both nodes derive from TreeScope. So root nodes
117485        are treated as TreeScope.
117486        * testing/Internals.h:
117487        (Internals):
117488        * testing/Internals.idl:
117489        Added parentTreeScope.
117490
1174912012-06-22  Tony Chang  <tony@chromium.org>
117492
117493        -webkit-flex-flow shouldn't be an enumerable property of the computed style
117494        https://bugs.webkit.org/show_bug.cgi?id=89698
117495
117496        Reviewed by Ojan Vafai.
117497
117498        flex-flow is a shorthand for flex-direction and flex-wrap:
117499        http://dev.w3.org/csswg/css3-flexbox/#flex-flow-property
117500        Shorthand properties should not be enumerable in the computed style, although you can still
117501        get the value from the computed style.
117502
117503        Tests: css3/flexbox/css-properties.html: New test case added.
117504
117505        * css/CSSComputedStyleDeclaration.cpp:
117506        (WebCore):
117507
1175082012-06-22  Robert Kroeger  <rjkroege@chromium.org>
117509
117510        Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true
117511        https://bugs.webkit.org/show_bug.cgi?id=89580
117512
117513        WebKit GTK and Chromium Linux force vertical wheel events to
117514        scroll horizontally when over horizontal scroll bars.  This is
117515        undesirable for touchpad scrolling with
117516        hasPreciseScrollingDeltas() == true. Modified shouldTurnVerticalTicksIntoHorizontal
117517        to not perform this conversion for PlatformWheelEvents with preciseScrollingDeltas.
117518
117519        Reviewed by Adam Barth.
117520
117521        Unit tests in EventHandlerTest.cpp
117522
117523        * page/EventHandler.cpp:
117524        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal): 
117525        (WebCore::EventHandler::handleWheelEvent):
117526        * page/EventHandler.h:
117527        (EventHandler):
117528        * page/chromium/EventHandlerChromium.cpp:
117529        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
117530        * page/gtk/EventHandlerGtk.cpp:
117531        (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
117532
1175332012-06-22  Ilya Tikhonovsky  <loislo@chromium.org>
117534
117535        Web Inspector: partially instrument DOM Tree native memory.
117536        https://bugs.webkit.org/show_bug.cgi?id=89568
117537
117538        This patch adds MemoryInstrumentation class that counts all visited
117539        objects and calls reportMemoryUsage for the instrumented classes.
117540
117541        Reviewed by Yury Semikhatsky.
117542
117543        * GNUmakefile.list.am:
117544        * Target.pri:
117545        * WebCore.gypi:
117546        * WebCore.vcproj/WebCore.vcproj:
117547        * WebCore.xcodeproj/project.pbxproj:
117548        * bindings/js/ScriptWrappable.h:
117549        (WebCore::ScriptWrappable::reportMemoryUsage):
117550        (ScriptWrappable):
117551        * bindings/v8/ScriptWrappable.h:
117552        (WebCore::ScriptWrappable::reportMemoryUsage):
117553        (ScriptWrappable):
117554        * css/StylePropertySet.h:
117555        (WebCore::StylePropertySet::reportMemoryUsage):
117556        (StylePropertySet):
117557        * dom/ContainerNode.h:
117558        (WebCore::ContainerNode::reportMemoryUsage):
117559        (ContainerNode):
117560        * dom/Element.h:
117561        (WebCore::Element::reportMemoryUsage):
117562        (Element):
117563        * dom/ElementAttributeData.h:
117564        (WebCore::ElementAttributeData::reportMemoryUsage):
117565        (ElementAttributeData):
117566        * dom/MemoryInstrumentation.h: Added.
117567        (WebCore):
117568        (MemoryInstrumentation):
117569        (WebCore::MemoryInstrumentation::~MemoryInstrumentation):
117570        (WebCore::MemoryInstrumentation::reportObject):
117571        (WebCore::MemoryInstrumentation::reportPointer):
117572        (MemoryObjectInfo):
117573        (WebCore::MemoryObjectInfo::MemoryObjectInfo):
117574        (WebCore::MemoryObjectInfo::reportInstrumentedPointer):
117575        (WebCore::MemoryObjectInfo::reportPointer):
117576        (WebCore::MemoryObjectInfo::reportInstrumentedObject):
117577        (WebCore::MemoryObjectInfo::reportObject):
117578        (WebCore::MemoryObjectInfo::reportObjectInfo):
117579        (WebCore::MemoryObjectInfo::objectType):
117580        (WebCore::MemoryObjectInfo::objectSize):
117581        (WebCore::MemoryInstrumentation::reportInstrumentedPointer):
117582        (WebCore::MemoryInstrumentation::reportInstrumentedObject):
117583        * dom/Node.cpp:
117584        (WebCore::Node::reportMemoryUsage):
117585        (WebCore):
117586        * dom/Node.h:
117587        (Node):
117588        * dom/QualifiedName.h:
117589        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
117590        (WebCore::QualifiedName::reportMemoryUsage):
117591        * inspector/InspectorMemoryAgent.cpp:
117592        (MemoryBlockName):
117593        (WebCore):
117594        (WebCore::addMemoryBlockFor):
117595        (WebCore::domTreeInfo):
117596        (WebCore::memoryCacheInfo):
117597        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
117598        * platform/TreeShared.h:
117599        (WebCore::TreeShared::reportMemoryUsage):
117600        (TreeShared):
117601
1176022012-06-22  Peter Rybin  <peter.rybin@gmail.com>
117603
117604        Web Inspector: Support 'Restart frame' in inspector frontend
117605        https://bugs.webkit.org/show_bug.cgi?id=89678
117606
117607        Reviewed by Pavel Feldman.
117608
117609        Action is added to call frame placard's context menu. Context menu is now built
117610        on a call frame level rather than on callback sidebar level.
117611
117612        * English.lproj/localizedStrings.js:
117613        * inspector/front-end/CallStackSidebarPane.js:
117614        (WebInspector.CallStackSidebarPane):
117615        (WebInspector.CallStackSidebarPane.prototype.update):
117616        (WebInspector.CallStackSidebarPane.Placard):
117617        (WebInspector.CallStackSidebarPane.Placard.prototype._update):
117618        (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
117619        (_restartFrame):
117620        * inspector/front-end/DebuggerModel.js:
117621        (WebInspector.DebuggerModel.prototype.rawLocationToUILocation):
117622        (WebInspector.DebuggerModel.prototype.callStackModified):
117623        (WebInspector.DebuggerModel.CallFrame.prototype.restart):
117624        * inspector/front-end/Script.js:
117625        (WebInspector.Script.prototype.editSource):
117626
1176272012-06-22  Jocelyn Turcotte  <turcotte.j@gmail.com>
117628
117629        [Qt] Fix the remote inspector loading problems on Mac
117630        https://bugs.webkit.org/show_bug.cgi?id=89747
117631
117632        Reviewed by Simon Hausmann.
117633
117634        Make sure that the state of a SocketStreamHandle is set properly
117635        when created from an existing QTcpSocket.
117636
117637        This fixes the inspectorserver Qt api auto test on Mac.
117638
117639        * platform/network/qt/SocketStreamHandleQt.cpp:
117640        (WebCore::SocketStreamHandle::SocketStreamHandle):
117641
1176422012-06-22  Yoshifumi Inoue  <yosin@chromium.org>
117643
117644        REGRESSION(r117738):[Forms] validationMessage IDL attribute should not have range overflow message if value isn't range overflow
117645        https://bugs.webkit.org/show_bug.cgi?id=89736
117646
117647        Reviewed by Kent Tamura.
117648
117649        Tests: fast/forms/date/input-date-validation-message.html
117650               fast/forms/number/input-number-validation-message.html
117651               fast/forms/range/input-range-validation-message.html
117652
117653        This patch changes comparison operator for range overflow message in
117654        InputType::validationMessage().
117655
117656        * html/InputType.cpp:
117657        (WebCore::InputType::validationMessage):
117658
1176592012-06-22  Taiju Tsuiki  <tzik@chromium.org>
117660
117661        Web Inspector: Add frontend-side Entry object to FileSystemModel
117662        https://bugs.webkit.org/show_bug.cgi?id=89739
117663
117664        Reviewed by Vsevolod Vlasov.
117665
117666        * inspector/front-end/FileSystemModel.js:
117667        (WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
117668        (WebInspector.FileSystemModel.prototype.requestDirectoryContent):
117669        (WebInspector.FileSystemModel.prototype._directoryContentReceived):
117670        (WebInspector.FileSystemModel.FileSystem):
117671        (WebInspector.FileSystemModel.Entry):
117672        (WebInspector.FileSystemModel.Entry.prototype.get fileSystemModel):
117673        (WebInspector.FileSystemModel.Entry.prototype.get fileSystem):
117674        (WebInspector.FileSystemModel.Entry.prototype.get url):
117675        (WebInspector.FileSystemModel.Entry.prototype.get name):
117676        (WebInspector.FileSystemModel.Entry.prototype.get isDirectory):
117677        (WebInspector.FileSystemModel.Directory):
117678        (WebInspector.FileSystemModel.Directory.prototype.requestDirectoryContent):
117679        (WebInspector.FileSystemModel.File):
117680        (WebInspector.FileSystemModel.File.prototype.get mimeType):
117681        (WebInspector.FileSystemModel.File.prototype.get resourceType):
117682
1176832012-06-22  Amy Ousterhout  <aousterh@chromium.org>
117684
117685        Renamed DeviceOrientation to DeviceOrientationData
117686        https://bugs.webkit.org/show_bug.cgi?id=88663
117687
117688        Reviewed by Steve Block.
117689
117690        No new tests because this is simply a name change.
117691
117692        Renamed DeviceOrientation to DeviceOrientationData in order to be consistent with DeviceMotionData.
117693        Updated all files that use DeviceOrientation.
117694  
117695        * CMakeLists.txt:
117696        * GNUmakefile.list.am:
117697        * Target.pri:
117698        * WebCore.exp.in:
117699        * WebCore.gypi:
117700        * WebCore.vcproj/WebCore.vcproj:
117701        * WebCore.xcodeproj/project.pbxproj:
117702        * bindings/js/JSDeviceOrientationEventCustom.cpp:
117703        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
117704        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
117705        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
117706        * dom/DOMAllInOne.cpp:
117707        * dom/DeviceOrientationClient.h:
117708        (WebCore):
117709        (DeviceOrientationClient):
117710        * dom/DeviceOrientationController.cpp:
117711        (WebCore::DeviceOrientationController::timerFired):
117712        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
117713        * dom/DeviceOrientationController.h:
117714        (WebCore):
117715        (DeviceOrientationController):
117716        * dom/DeviceOrientationData.cpp: Renamed from Source/WebCore/dom/DeviceOrientation.cpp.
117717        (WebCore):
117718        (WebCore::DeviceOrientationData::create):
117719        (WebCore::DeviceOrientationData::DeviceOrientationData):
117720        (WebCore::DeviceOrientationData::alpha):
117721        (WebCore::DeviceOrientationData::beta):
117722        (WebCore::DeviceOrientationData::gamma):
117723        (WebCore::DeviceOrientationData::absolute):
117724        (WebCore::DeviceOrientationData::canProvideAlpha):
117725        (WebCore::DeviceOrientationData::canProvideBeta):
117726        (WebCore::DeviceOrientationData::canProvideGamma):
117727        (WebCore::DeviceOrientationData::canProvideAbsolute):
117728        * dom/DeviceOrientationData.h: Renamed from Source/WebCore/dom/DeviceOrientation.h.
117729        (WebCore):
117730        (DeviceOrientationData):
117731        * dom/DeviceOrientationEvent.cpp:
117732        (WebCore::DeviceOrientationEvent::DeviceOrientationEvent):
117733        (WebCore::DeviceOrientationEvent::initDeviceOrientationEvent):
117734        * dom/DeviceOrientationEvent.h:
117735        (WebCore):
117736        (WebCore::DeviceOrientationEvent::create):
117737        (DeviceOrientationEvent):
117738        (WebCore::DeviceOrientationEvent::orientation):
117739        * loader/EmptyClients.h:
117740        (WebCore::EmptyDeviceOrientationClient::lastOrientation):
117741        * platform/mock/DeviceOrientationClientMock.cpp:
117742        (WebCore::DeviceOrientationClientMock::setOrientation):
117743        * platform/mock/DeviceOrientationClientMock.h:
117744        (WebCore::DeviceOrientationClientMock::lastOrientation):
117745        (DeviceOrientationClientMock):
117746        * platform/qt/DeviceOrientationClientQt.cpp:
117747        (DeviceOrientationClientQt):
117748        * platform/qt/DeviceOrientationClientQt.h:
117749        (DeviceOrientationClientQt):
117750        * platform/qt/DeviceOrientationProviderQt.h:
117751        (DeviceOrientationProviderQt):
117752 
1177532012-06-21  Vsevolod Vlasov  <vsevik@chromium.org>
117754
117755        Web Inspector: Support separate script compilation and execution.
117756        https://bugs.webkit.org/show_bug.cgi?id=89646
117757
117758        Reviewed by Pavel Feldman.
117759
117760        Separate script compilation and run commands added to protocol and DebuggerAgent.
117761        Separate script compilation and run implemented in v8 ScriptDebugServer, stubs added for js implementation.
117762
117763        Test: inspector/debugger/debugger-compile-and-run.html
117764
117765        * bindings/js/ScriptDebugServer.cpp:
117766        (WebCore::ScriptDebugServer::compileScript):
117767        (WebCore):
117768        (WebCore::ScriptDebugServer::clearCompiledScripts):
117769        (WebCore::ScriptDebugServer::runScript):
117770        * bindings/js/ScriptDebugServer.h:
117771        (WebCore::ScriptDebugServer::supportsSeparateScriptCompilationAndExecution):
117772        (ScriptDebugServer):
117773        * bindings/v8/PageScriptDebugServer.cpp:
117774        (WebCore::PageScriptDebugServer::compileScript):
117775        (WebCore):
117776        (WebCore::PageScriptDebugServer::clearCompiledScripts):
117777        (WebCore::PageScriptDebugServer::runScript):
117778        * bindings/v8/PageScriptDebugServer.h:
117779        (PageScriptDebugServer):
117780        * bindings/v8/ScriptDebugServer.cpp:
117781        (WebCore::ScriptDebugServer::compileScript):
117782        (WebCore):
117783        (WebCore::ScriptDebugServer::clearCompiledScripts):
117784        (WebCore::ScriptDebugServer::runScript):
117785        * bindings/v8/ScriptDebugServer.h:
117786        (WebCore):
117787        (WebCore::ScriptDebugServer::supportsSeparateScriptCompilationAndExecution):
117788        (ScriptDebugServer):
117789        * inspector/Inspector.json:
117790        * inspector/InspectorDebuggerAgent.cpp:
117791        (WebCore::InspectorDebuggerAgent::disable):
117792        (WebCore::InspectorDebuggerAgent::supportsSeparateScriptCompilationAndExecution):
117793        (WebCore):
117794        (WebCore::InspectorDebuggerAgent::compileScript):
117795        (WebCore::InspectorDebuggerAgent::runScript):
117796        * inspector/InspectorDebuggerAgent.h:
117797        (InspectorDebuggerAgent):
117798        (WebCore::InspectorDebuggerAgent::injectedScriptManager):
117799        * inspector/PageDebuggerAgent.cpp:
117800        (WebCore::PageDebuggerAgent::injectedScriptForEval):
117801        (WebCore):
117802        * inspector/PageDebuggerAgent.h:
117803        (PageDebuggerAgent):
117804        * inspector/WorkerDebuggerAgent.cpp:
117805        (WebCore::WorkerDebuggerAgent::injectedScriptForEval):
117806        (WebCore):
117807        * inspector/WorkerDebuggerAgent.h:
117808        (WorkerDebuggerAgent):
117809        * inspector/front-end/Settings.js:
117810        * inspector/front-end/inspector.js:
117811        (WebInspector.doLoadedDone):
117812
1178132012-06-22  Joseph Pecoraro  <pecoraro@apple.com>
117814
117815        Web Inspector: InspectorState::updateCookie should not do JSON serialization if unsupported
117816        https://bugs.webkit.org/show_bug.cgi?id=89743
117817
117818        Since all InspectorClient's are InspectorStateClient's provide a
117819        virtual accessor that determines whether or not InspectorClient updates
117820        are supported or not.
117821
117822        Reviewed by Yury Semikhatsky.
117823
117824        * inspector/InspectorState.cpp:
117825        (WebCore::InspectorState::updateCookie):
117826        Don't serialize and message the client if the client doesn't do anything with it.
117827
117828        * inspector/InspectorStateClient.h:
117829        * inspector/WorkerInspectorController.cpp:
117830        (WebCore::InspectorStateClient::supportsInspectorStateUpdates):
117831        Let the client say whether or not supports updates or not.
117832
1178332012-06-21  Sheriff Bot  <webkit.review.bot@gmail.com>
117834
117835        Unreviewed, rolling out r120982.
117836        http://trac.webkit.org/changeset/120982
117837        https://bugs.webkit.org/show_bug.cgi?id=89740
117838
117839        [chromium] ASSERTION FAILED:
117840        m_allocatedTextureIds.contains(textureId) (Requested by ukai
117841        on #webkit).
117842
117843        * platform/graphics/chromium/LayerRendererChromium.cpp:
117844        (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
117845        (WebCore::LayerRendererChromium::LayerRendererChromium):
117846        (WebCore::LayerRendererChromium::initialize):
117847        (WebCore::LayerRendererChromium::setVisible):
117848        (WebCore::LayerRendererChromium::swapBuffers):
117849        (WebCore::LayerRendererChromium::getFramebufferPixels):
117850        * platform/graphics/chromium/LayerRendererChromium.h:
117851        (WebCore):
117852        (LayerRendererChromium):
117853        * platform/graphics/chromium/TextureManager.cpp:
117854        * platform/graphics/chromium/TextureManager.h:
117855        (TextureAllocator):
117856        (TextureManager):
117857        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
117858        (WebCore::TrackingTextureAllocator::createTexture):
117859        (WebCore::TrackingTextureAllocator::deleteTexture):
117860        * platform/graphics/chromium/TrackingTextureAllocator.h:
117861        (TrackingTextureAllocator):
117862        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
117863        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
117864        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
117865        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
117866        (WebCore::CCLayerTreeHost::setNeedsForcedCommit):
117867        (WebCore):
117868        (WebCore::CCLayerTreeHost::setVisible):
117869        (WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
117870        (WebCore::CCLayerTreeHost::updateLayers):
117871        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
117872        (CCLayerTreeHost):
117873        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
117874        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
117875        (WebCore::CCLayerTreeHostImpl::commitComplete):
117876        (WebCore::CCLayerTreeHostImpl::canDraw):
117877        (WebCore::CCLayerTreeHostImpl::context):
117878        (WebCore::CCLayerTreeHostImpl::setContentsMemoryAllocationLimitBytes):
117879        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
117880        (CCLayerTreeHostImplClient):
117881        (WebCore::CCLayerTreeHostImpl::sourceFrameCanBeDrawn):
117882        (WebCore::CCLayerTreeHostImpl::setSourceFrameCanBeDrawn):
117883        (CCLayerTreeHostImpl):
117884        * platform/graphics/chromium/cc/CCProxy.h:
117885        (CCProxy):
117886        * platform/graphics/chromium/cc/CCRenderer.h:
117887        (CCRendererClient):
117888        * platform/graphics/chromium/cc/CCScheduler.cpp:
117889        (WebCore::CCScheduler::beginFrameComplete):
117890        (WebCore::CCScheduler::didSwapBuffersComplete):
117891        (WebCore::CCScheduler::didLoseContext):
117892        (WebCore::CCScheduler::didRecreateContext):
117893        (WebCore::CCScheduler::vsyncTick):
117894        * platform/graphics/chromium/cc/CCScheduler.h:
117895        (CCScheduler):
117896        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
117897        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
117898        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
117899        (WebCore::CCSingleThreadProxy::setNeedsForcedCommit):
117900        (WebCore):
117901        (WebCore::CCSingleThreadProxy::stop):
117902        (WebCore::CCSingleThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
117903        (WebCore::CCSingleThreadProxy::commitAndComposite):
117904        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
117905        (CCSingleThreadProxy):
117906        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
117907        (WebCore::CCThreadProxy::CCThreadProxy):
117908        (WebCore::CCThreadProxy::compositeAndReadback):
117909        (WebCore::CCThreadProxy::setNeedsForcedCommit):
117910        (WebCore):
117911        (WebCore::CCThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
117912        (WebCore::CCThreadProxy::scheduledActionBeginFrame):
117913        (WebCore::CCThreadProxy::beginFrame):
117914        (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
117915        (WebCore::CCThreadProxy::setContentsMemoryAllocationLimitBytes):
117916        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
117917        * platform/graphics/chromium/cc/CCThreadProxy.h:
117918        (CCThreadProxy):
117919        (BeginFrameAndCommitState):
117920        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
117921        (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
117922        (WebCore::CCVideoLayerImpl::willDraw):
117923        (WebCore::CCVideoLayerImpl::willDrawInternal):
117924        (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
117925        (WebCore::CCVideoLayerImpl::FramePlane::freeData):
117926        (WebCore::CCVideoLayerImpl::allocatePlaneData):
117927        (WebCore::CCVideoLayerImpl::freePlaneData):
117928        (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
117929        (WebCore::CCVideoLayerImpl::didLoseContext):
117930        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
117931        (FramePlane):
117932
1179332012-06-21  Kent Tamura  <tkent@chromium.org>
117934
117935        Make FormControlState capable to store multiple values
117936        https://bugs.webkit.org/show_bug.cgi?id=89628
117937
117938        Reviewed by Hajime Morita.
117939
117940        Make FormControlState capable to store multiple values in order to
117941        clean FileInputType.cpp up and prepare to fix Bug 89623.
117942
117943        No new tests. This doesn't change web-exposed behavior, and
117944        fast/forms/file/recover-file-input-in-unposted-form.html covers
117945        major part of this change.
117946
117947        * html/FormController.cpp:
117948        (WebCore::FormControlState::serializeTo): Support for two or more values.
117949        (WebCore::FormControlState::deserialize): ditto.
117950        (WebCore::formStateSignature):
117951        Bump up the version because the state format for <input type=file> is changed.
117952        * html/FormController.h:
117953         - String m_value -> Vector<String> m_values
117954         - Add some functions.
117955         - Remove hasValue() and value().
117956        (WebCore::FormControlState::FormControlState): m_value -> m_values.
117957        (WebCore::FormControlState::valueSize): Added.
117958        (WebCore::FormControlState::operator[]): Added.
117959        (FormControlState): Add append() declaration, etc.
117960        (WebCore::FormControlState::operator=): m_value -> m_values
117961        (WebCore::FormControlState::append): Added.
117962
117963        * html/HTMLFormControlElementWithState.cpp:
117964        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
117965        Use valueSize() instead of hasValue().
117966        * html/HTMLFormControlElementWithState.h:
117967        (HTMLFormControlElementWithState): Update the comment.
117968
117969        * html/FileInputType.cpp:
117970        (WebCore::FileInputType::saveFormControlState):
117971        Use multiple value capability of FormControlState
117972        (WebCore::FileInputType::restoreFormControlState): ditto.
117973
117974        * html/BaseCheckableInputType.cpp:
117975        (WebCore::BaseCheckableInputType::restoreFormControlState): Use [0] instead of value().
117976        * html/HTMLSelectElement.cpp:
117977        (WebCore::HTMLSelectElement::restoreFormControlState): ditto.
117978        * html/HTMLTextAreaElement.cpp:
117979        (WebCore::HTMLTextAreaElement::restoreFormControlState): ditto.
117980        * html/HiddenInputType.cpp:
117981        (WebCore::HiddenInputType::restoreFormControlState): ditto.
117982        * html/InputType.cpp:
117983        (WebCore::InputType::restoreFormControlState): ditto.
117984
1179852012-06-21  Ryosuke Niwa  <rniwa@webkit.org>
117986
117987        LabelsNodeList isn't updated properly after its owner node is adopted into a new document
117988        https://bugs.webkit.org/show_bug.cgi?id=89730
117989
117990        Reviewed by Darin Adler.
117991
117992        When a node is adopted, node lists that are invalidated at document level need to be unregistered
117993        from old document and registered to new document so that DOM mutations in new document will invalidate
117994        caches in the node lists. Done that in NodeListsNodeData::adoptTreeScope, which was extracted from
117995        TreeScopeAdopter::moveTreeToNewScope.
117996
117997        Also renamed DynamicNodeList::node() and m_node to rootNode() and m_ownerNode to better express
117998        their semantics and added ownerNode() to make m_ownerNode private to DynamicNodeList.
117999
118000        Test: fast/forms/label/labels-owner-node-adopted.html
118001
118002        * bindings/js/JSNodeListCustom.cpp:
118003        (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
118004        * dom/ChildNodeList.cpp:
118005        (WebCore::ChildNodeList::~ChildNodeList):
118006        (WebCore::ChildNodeList::length):
118007        (WebCore::ChildNodeList::item):
118008        (WebCore::ChildNodeList::nodeMatches):
118009        * dom/ClassNodeList.cpp:
118010        (WebCore::ClassNodeList::ClassNodeList):
118011        (WebCore::ClassNodeList::~ClassNodeList):
118012        * dom/DynamicNodeList.cpp:
118013        (WebCore::DynamicSubtreeNodeList::length):
118014        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
118015        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
118016        (WebCore::DynamicSubtreeNodeList::item):
118017        (WebCore::DynamicNodeList::itemWithName):
118018        * dom/DynamicNodeList.h:
118019        (WebCore::DynamicNodeList::DynamicNodeList):
118020        (WebCore::DynamicNodeList::ownerNode):
118021        (WebCore::DynamicNodeList::rootedAtDocument):
118022        (WebCore::DynamicNodeList::shouldInvalidateOnAttributeChange):
118023        (WebCore::DynamicNodeList::rootNode):
118024        (WebCore::DynamicNodeList::document):
118025        (DynamicNodeList):
118026        * dom/NameNodeList.cpp:
118027        (WebCore::NameNodeList::~NameNodeList):
118028        * dom/NodeRareData.h:
118029        (WebCore::NodeListsNodeData::adoptTreeScope):
118030        (NodeListsNodeData):
118031        * dom/TagNodeList.cpp:
118032        (WebCore::TagNodeList::~TagNodeList):
118033        * dom/TreeScopeAdopter.cpp:
118034        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
118035        * html/LabelsNodeList.cpp:
118036        (WebCore::LabelsNodeList::~LabelsNodeList):
118037        (WebCore::LabelsNodeList::nodeMatches):
118038        * html/RadioNodeList.cpp:
118039        (WebCore::RadioNodeList::~RadioNodeList):
118040        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
118041
1180422012-06-21  Alexei Filippov  <alexeif@chromium.org>
118043
118044        Web Inspector: Properly display native memory sizes bigger than 2GB
118045        https://bugs.webkit.org/show_bug.cgi?id=89661
118046
118047        Reviewed by Pavel Feldman.
118048
118049        * inspector/Inspector.json:
118050        * inspector/InspectorMemoryAgent.cpp:
118051        (WebCore::jsHeapInfo):
118052        (WebCore::inspectorData):
118053        (WebCore::renderTreeInfo):
118054        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
118055
1180562012-06-21  Abhishek Arya  <inferno@chromium.org>
118057
118058        Crash in RenderBlock::layoutPositionedObjects.
118059        https://bugs.webkit.org/show_bug.cgi?id=89599
118060
118061        Reviewed by Julien Chaffraix.
118062
118063        Test: fast/table/table-split-positioned-object-crash.html
118064
118065        * rendering/RenderBlock.cpp:
118066        (WebCore::RenderBlock::splitBlocks): no longer need to explicitly call
118067        removePositionedObjects, since it is part of moveChildrenTo.
118068        * rendering/RenderBlock.h:
118069        (WebCore::RenderBlock::hasPositionedObjects): helper to tell if we have
118070        positioned objects in our list.
118071        * rendering/RenderBox.cpp:
118072        (WebCore::RenderBox::splitAnonymousBoxesAroundChild): Like r102263, this
118073        condition was wrong and while moving children across completely different 
118074        trees, we need fullRemoveInsert as true.
118075        * rendering/RenderBoxModelObject.cpp:
118076        (WebCore::RenderBoxModelObject::moveChildTo): see code comment.
118077        (WebCore::RenderBoxModelObject::moveChildrenTo): see code comment. 
118078
1180792012-06-21  Kwang Yul Seo  <skyul@company100.net>
118080
118081        Make HTMLDocumentParser::create(DocumentFragment*,Element*, FragmentScriptingPermission) private.
118082        https://bugs.webkit.org/show_bug.cgi?id=89724
118083
118084        Reviewed by Darin Adler.
118085
118086        It is used only by HTMLDocumentParser::parseDocumentFragment. No behavioral changes.
118087
118088        * html/parser/HTMLDocumentParser.h:
118089        (WebCore::HTMLDocumentParser::create):
118090        (HTMLDocumentParser):
118091
1180922012-06-21  Kalev Lember  <kalevlember@gmail.com>
118093
118094        [GTK] Use the empty plugin support on non-X11 and non-Windows platforms
118095        https://bugs.webkit.org/show_bug.cgi?id=89501
118096
118097        Reviewed by Martin Robinson.
118098
118099        The GTK+ port doesn't currently support NPAPI plugins on platforms other
118100        than X11 or Windows. Using PluginPackageNone and PluginViewNone makes it
118101        easier to build it on other platforms and also allows us to drop some
118102        ifdefs from PluginPackageGtk and PluginViewGtk.
118103
118104        * GNUmakefile.list.am:
118105
1181062012-06-21  Shinya Kawanaka  <shinyak@chromium.org>
118107
118108        [Shadow][Editing] Assertion in VisibleSelection::adjuseSelectionToAvoidCrossingBoundaries() is triggered.
118109        https://bugs.webkit.org/show_bug.cgi?id=89081
118110
118111        Reviewed by Ryosuke Niwa.
118112
118113        firstEditablePositionAfterPositionInRoot and lastEditablePositionBeforePositionInRoot did not
118114        consider a case that an argument hiehestRoot can be in Shadow DOM. So when adjusting selection to
118115        avoid crossing editing boundaries, VisiblePosition can break shadow boundaries, and it causes
118116        an assertion trigger.
118117
118118        By this patch, firstEditablePositionAfterPositionInRoot and lastEditablePositionBeforePositionInRoot will
118119        adjust position to the tree scope of highestRoot instead of its parent tree scope.
118120
118121        Test: editing/shadow/adjusting-editing-boundary-with-table-in-shadow.html
118122
118123        * editing/htmlediting.cpp:
118124        (WebCore::firstEditablePositionAfterPositionInRoot):
118125        (WebCore::lastEditablePositionBeforePositionInRoot):
118126
1181272012-06-21  Andrey Kosyakov  <caseq@chromium.org>
118128
118129        Web Inspector: exception in TimelinePresentationModel when recording timeline
118130        https://bugs.webkit.org/show_bug.cgi?id=89716
118131
118132        Reviewed by Pavel Feldman.
118133
118134        * inspector/front-end/TimelinePanel.js:
118135        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.processRecord):
118136        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
118137        * inspector/front-end/TimelinePresentationModel.js:
118138        (WebInspector.TimelinePresentationModel.prototype.filteredRecords):
118139        (WebInspector.TimelinePresentationModel.prototype.isVisible):
118140
1181412012-06-21  Oli Lan  <olilan@chromium.org>
118142
118143        Add methods to select between offsets in an editable field.
118144        https://bugs.webkit.org/show_bug.cgi?id=89098
118145
118146        Reviewed by Ryosuke Niwa.
118147
118148        Reviewed by Ryosuke Niwa.
118149
118150        Adds a new method setSelectionOffsets to Editor. This selects between
118151        the two integer offsets provided in the node currently being edited,
118152        assuming the offsets are given relative to the rootEditableElement.
118153        If no node or field is currently being edited, the method returns false.
118154        
118155        Test: a new test has been added to the chromium port's WebViewTest that
118156        calls this via WebViewImpl::setSelectionEditableOffsets.
118157        
118158        * editing/Editor.cpp:
118159        (WebCore::Editor::setSelectionOffsets):
118160        (WebCore):
118161        * editing/Editor.h:
118162        (Editor):
118163
1181642012-06-21  Julien Chaffraix  <jchaffraix@webkit.org>
118165
118166        Add support for the grid and inline-grid display types.
118167        https://bugs.webkit.org/show_bug.cgi?id=60732
118168
118169        Reviewed by Tony Chang.
118170
118171        Tests: fast/css-grid-layout/containing-block-grids-expected.html
118172               fast/css-grid-layout/containing-block-grids.html
118173               fast/css-grid-layout/floating-empty-grids-expected.html
118174               fast/css-grid-layout/floating-empty-grids.html
118175
118176        Based on an earlier patch by David Hyatt <hyatt@apple.com>.
118177
118178        Added the first renderer for grid elements.
118179
118180        * CMakeLists.txt:
118181        * GNUmakefile.list.am:
118182        * Target.pri:
118183        * WebCore.gypi:
118184        * WebCore.vcproj/WebCore.vcproj:
118185        * WebCore.xcodeproj/project.pbxproj:
118186        Added RenderGrid files to the build systems.
118187
118188        * rendering/RenderGrid.cpp: Added.
118189        (WebCore::RenderGrid::RenderGrid):
118190        (WebCore::RenderGrid::~RenderGrid):
118191        (WebCore::RenderGrid::layoutBlock):
118192        (WebCore::RenderGrid::renderName):
118193        * rendering/RenderGrid.h: Added.
118194        (RenderGrid):
118195        Skeleton renderer for now.
118196
118197        * rendering/RenderObject.cpp:
118198        (WebCore::RenderObject::createObject):
118199        Return our new RenderGrid for our 2 new |display| values.
118200
118201        * rendering/style/RenderStyle.h:
118202        Added INLINE_GRID to the inline and replaced types.
118203
1182042012-06-21  Ryosuke Niwa  <rniwa@webkit.org>
118205
118206        Clang build fix.
118207
118208        * dom/NodeRareData.h:
118209
1182102012-06-19  James Robinson  <jamesr@chromium.org>
118211
118212        [chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.
118213        https://bugs.webkit.org/show_bug.cgi?id=89045
118214
118215        Reviewed by Adrienne Walker.
118216
118217        Based on patch by Michal Mocny <mmocny@google.com>.
118218
118219        Invariants:
118220
118221        1.) We never commit (paint, animate, any of it) when not visible on the main thread -except- for
118222        compositeAndReadback, regardless of threaded vs non-threaded mode
118223        2.) CCLayerTreeHost::m_contentsTextureManager's memory budget is only set by updateLayers() when we are going to
118224        make a frame and is always set to a non-zero value
118225        3.) Zero-sized allocations from the GPU process are always serviced immediately on the impl thread.  Non-zero
118226        allocations are met in the next frame, whenever we would produce that frame according to our usual frame
118227        scheduling logic.
118228        4.) The impl thread always knows the set of currently-allocated managed texture IDs and can delete them all
118229        whenever it likes without needing the main thread to be responsive.
118230
118231        Details:
118232
118233        There are two main changes - tweaking how the contents texture manager's budget is handled and tweaking frame
118234        scheduling for the !visible case.
118235
118236        The scheduling change is a bit more subtle but it unifies the single and multi threaded paths and is really
118237        important.  Except for compositeAndReadback (which I'll talk about below), we simply won't produce frames when
118238        not visible.  This already happens in the single threaded path thanks to render_widget so the only change is to
118239        the threaded path.  The difficulty here is we might post a beginFrame task from the impl thread and then get a
118240        setVisible(false) call on the main thread before the beginFrame task runs.  Since I'm making the setVisible()
118241        call a blocking call from main thread -> impl thread, when the beginFrame task eventually does run on the main
118242        thread we can know that the impl thread's notion of visibility is in sync with the main threads.  Thus I'm
118243        planning to simply abort the frame before doing any processing on the main thread.  The scheduler will know if
118244        it gets a beginFrameAborted and COMMIT_STATE_IDLE.
118245
118246        compositeAndReadback is special - this call currently does come in when we aren't visible (in single and
118247        threaded mode) and we need to service it.  In particular, we need to send a beginFrame over and have it
118248        not be ignored on the main thread.  For this I'm thinking of having the proxy keep track of whether it's
118249        servicing a compositeAndReadback() and use that bit on the main thread to know to process the beginFrame
118250        normally.  On the impl side, we need a few changes.  First, we have to allocate a default framebuffer
118251        (ensureFramebufferCHROMIUM) even if we've dropped it previously and remember to discard it after the
118252        readPixels().  Second, we have to provide a non-zero contents texture allocation on the beginFrame message, and
118253        again remember to delete the textures after the readPixels().  Third, we have to know that the beginFrame is a
118254        forced frame so when we get the beginFrameComplete we go ahead with the rest of the frame.  For this, I think
118255        I'll have to add ACTION_BEGIN_FORCED_FRAME and a corresponding COMMIT_STATE_FORCED_FRAME_IN_PROGRESS so the
118256        scheduler can keep track of the magicness of this frame, and then add some logic after the readpixels call to
118257        drop resources after the readback.  It's probably a good time to stop swapping on readbacks too....
118258
118259        The contents texture manager's budget is only relevant when we want to make a frame, so it's now passed in on
118260        the updateLayers().  Since we only make frames when we are visible and we never have a zero allocation when
118261        visible (thanks to the frame scheduling changes above), this value is always non-zero.  The other thing the
118262        texture manager needs to know about is if we've killed all of the underlying textures from the impl thread -
118263        this bit is passed in by the proxy before the updateLayers() call.  This means if we're running while visible
118264        and the manager wants to decrease our budget to something other than zero, we'll get a new (non-zero) allocation
118265        on the impl thread, schedule a frame, then when it's time to make the frame pass the new lower limit in to
118266        updateLayers(), then have the contents texture manager evict down to our new limit and make a frame with the new
118267        budget.  When the commit completes we'll get notified on the impl thread of which textures the contents texture
118268        manager decided to evict and issue the deleteTexture() calls on them.
118269
118270        The texture budget we pass in will be based on the most recent non-zero memory allocation we received from the
118271        GPU memory manager, or some default value I'll pull out my ass if we haven't heard anything yet.  On compositor
118272        initialization, we can't afford to wait for a round-trip through the GPU process to get a budget for the first
118273        frame.  I don't think handling a decrease to a non-zero budget on a visible tab needs to be terribly urgent - we
118274        can get to it when we get to making the next frame.  If we wanted to satisfy reduced texture budgets directly
118275        from the impl thread, we could keep a priority-list ordered set of textures once we have priorities and delete
118276        based on that.  Let's worry about that later.
118277
118278        * platform/graphics/chromium/LayerRendererChromium.cpp:
118279        (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
118280        (WebCore::LayerRendererChromium::LayerRendererChromium):
118281        (WebCore::LayerRendererChromium::initialize):
118282        (WebCore::LayerRendererChromium::setVisible):
118283        (WebCore::LayerRendererChromium::setGpuMemoryAllocation):
118284        (WebCore):
118285        (WebCore::LayerRendererChromium::swapBuffers):
118286        (WebCore::LayerRendererChromium::getFramebufferPixels):
118287        * platform/graphics/chromium/LayerRendererChromium.h:
118288        (WebCore):
118289        (LayerRendererChromium):
118290        * platform/graphics/chromium/TextureManager.cpp:
118291        (WebCore::TextureManager::evictAndRemoveAllDeletedTextures):
118292        (WebCore):
118293        * platform/graphics/chromium/TextureManager.h:
118294        (TextureAllocator):
118295        (TextureManager):
118296        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
118297        (WebCore::TrackingTextureAllocator::createTexture):
118298        (WebCore::TrackingTextureAllocator::deleteTexture):
118299        (WebCore):
118300        (WebCore::TrackingTextureAllocator::deleteAllTextures):
118301        * platform/graphics/chromium/TrackingTextureAllocator.h:
118302        (TrackingTextureAllocator):
118303        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
118304        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
118305        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
118306        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
118307        (WebCore::CCLayerTreeHost::setVisible):
118308        (WebCore::CCLayerTreeHost::evictAllContentTextures):
118309        (WebCore::CCLayerTreeHost::updateLayers):
118310        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
118311        (CCLayerTreeHost):
118312        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
118313        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
118314        (WebCore::CCLayerTreeHostImpl::commitComplete):
118315        (WebCore::CCLayerTreeHostImpl::canDraw):
118316        (WebCore::CCLayerTreeHostImpl::context):
118317        (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
118318        (WebCore):
118319        (WebCore::CCLayerTreeHostImpl::setMemoryAllocationLimitBytes):
118320        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
118321        (CCLayerTreeHostImplClient):
118322        (WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastCommit):
118323        (WebCore::CCLayerTreeHostImpl::memoryAllocationLimitBytes):
118324        (CCLayerTreeHostImpl):
118325        * platform/graphics/chromium/cc/CCProxy.h:
118326        (CCProxy):
118327        * platform/graphics/chromium/cc/CCRenderer.h:
118328        (CCRendererClient):
118329        * platform/graphics/chromium/cc/CCScheduler.cpp:
118330        (WebCore::CCScheduler::beginFrameComplete):
118331        (WebCore::CCScheduler::beginFrameAborted):
118332        (WebCore):
118333        (WebCore::CCScheduler::didSwapBuffersComplete):
118334        (WebCore::CCScheduler::didLoseContext):
118335        (WebCore::CCScheduler::didRecreateContext):
118336        (WebCore::CCScheduler::vsyncTick):
118337        * platform/graphics/chromium/cc/CCScheduler.h:
118338        (CCScheduler):
118339        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
118340        (WebCore::CCSchedulerStateMachine::beginFrameAborted):
118341        (WebCore):
118342        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
118343        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
118344        (WebCore::CCSingleThreadProxy::setVisible):
118345        (WebCore):
118346        (WebCore::CCSingleThreadProxy::stop):
118347        (WebCore::CCSingleThreadProxy::commitAndComposite):
118348        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
118349        (CCSingleThreadProxy):
118350        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
118351        (WebCore::CCThreadProxy::CCThreadProxy):
118352        (WebCore::CCThreadProxy::compositeAndReadback):
118353        (WebCore::CCThreadProxy::setVisible):
118354        (WebCore):
118355        (WebCore::CCThreadProxy::setVisibleOnImplThread):
118356        (WebCore::CCThreadProxy::scheduledActionBeginFrame):
118357        (WebCore::CCThreadProxy::beginFrame):
118358        (WebCore::CCThreadProxy::beginFrameAbortedOnImplThread):
118359        (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
118360        (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
118361        * platform/graphics/chromium/cc/CCThreadProxy.h:
118362        (CCThreadProxy):
118363        (BeginFrameAndCommitState):
118364        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
118365        (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
118366        (WebCore::CCVideoLayerImpl::willDraw):
118367        (WebCore::CCVideoLayerImpl::willDrawInternal):
118368        (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
118369        (WebCore::CCVideoLayerImpl::FramePlane::freeData):
118370        (WebCore::CCVideoLayerImpl::allocatePlaneData):
118371        (WebCore::CCVideoLayerImpl::freePlaneData):
118372        (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
118373        (WebCore::CCVideoLayerImpl::didLoseContext):
118374        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
118375        (FramePlane):
118376
1183772012-06-20  Ryosuke Niwa  <rniwa@webkit.org>
118378
118379        Shrink NodeListsNodeData
118380        https://bugs.webkit.org/show_bug.cgi?id=89036
118381
118382        Reviewed by Andreas Kling.
118383
118384        Replaced 6 hash maps of AtomicString, String, and RefPtr<QualifiedName::QualifiedNameImpl> and a raw pointer
118385        by 3 hash maps of std::pair<unsigned short, AtomicString>, std::pair<unsigned short, String>, and QualifiedName,
118386        to halve the NodeListsNodeData's size (Reduced from 7 pointers to 3 pointers). Made those hash maps private and
118387        added addCacheWith* and removeCacheWith* member functions to reduce the code duplication.
118388
118389        Also got rid of removeCached*NodeList member functions from Node and Document now that DynamicSubtreeNodeList can
118390        simply call nodeLists()->removeCacheWith* on m_node.
118391
118392        * dom/ChildNodeList.cpp:
118393        (WebCore::ChildNodeList::ChildNodeList):
118394        * dom/ClassNodeList.cpp:
118395        (WebCore::ClassNodeList::~ClassNodeList):
118396        * dom/Document.cpp:
118397        (WebCore::Document::getItems): Use addCacheWithName.
118398        * dom/Document.h: Got rid of removeCachedMicroDataItemList.
118399        (Document):
118400        * dom/DynamicNodeList.cpp:
118401        (WebCore): Moved the constructor to the header file.
118402        * dom/DynamicNodeList.h: Added NodeListType and InvalidationType to be used in NodeListsNodeData.
118403        (WebCore::DynamicNodeList::DynamicNodeList): Takes the invalidation type.
118404        (WebCore::DynamicNodeList::document): Added.
118405        (WebCore::DynamicNodeList::shouldInvalidateOnAttributeChange): Added.
118406        (WebCore::DynamicNodeList::Caches::Caches): Added shouldInvalidateOnAttributeChange to retain the invalidation type.
118407        (Caches):
118408        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
118409        * dom/MicroDataItemList.cpp:
118410        (WebCore::MicroDataItemList::~MicroDataItemList):
118411        * dom/NameNodeList.cpp:
118412        (WebCore::NameNodeList::NameNodeList):
118413        (WebCore::NameNodeList::~NameNodeList):
118414        (WebCore::NameNodeList::nodeMatches):
118415        * dom/NameNodeList.h:
118416        (WebCore):
118417        (NameNodeList):
118418        (WebCore::NameNodeList::create):
118419        * dom/Node.cpp:
118420        (WebCore::Node::nodeLists): Added so that node lists can directly call removeCacheWith*.
118421        (WebCore::Node::getElementsByTagName):
118422        (WebCore::Node::getElementsByTagNameNS):
118423        (WebCore::Node::getElementsByName):
118424        (WebCore::Node::getElementsByClassName):
118425        (WebCore::Node::radioNodeList):
118426        (WebCore::NodeListsNodeData::invalidateCaches): Merged invalidateCachesThatDependOnAttributes. The function takes
118427        the attribute name to avoid invalidating tag node lists when only attributes are modified. Also, now we have exactly
118428        three hash maps to invalidate: m_atomicNameCaches, m_nameCaches, and m_tagNodeListCacheNS.
118429        (WebCore): NodeListsNodeData::isEmpty is moved to NodeRareData.h.
118430        * dom/Node.h:
118431        (WebCore):
118432        (Node):
118433        * dom/NodeRareData.h:
118434        (NodeListsNodeData):
118435        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
118436        (WebCore::NodeListsNodeData::addCacheWithName):
118437        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
118438        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
118439        (WebCore::NodeListsNodeData::removeCacheWithName):
118440        (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
118441        (WebCore::NodeListsNodeData::isEmpty): Moved from Node.cpp now that this function is much shorter.
118442        (WebCore::NodeListsNodeData::NodeListsNodeData):
118443        (WebCore::NodeListsNodeData::namedNodeListKey): Helper member functions to obtain the key for AtomicString and
118444        String hash maps.
118445        * dom/TagNodeList.cpp:
118446        (WebCore::TagNodeList::TagNodeList):
118447        (WebCore::TagNodeList::~TagNodeList):
118448        (WebCore::HTMLTagNodeList::HTMLTagNodeList): Hard code namespaceURI = starAtom since other values are never used.
118449        (WebCore::HTMLTagNodeList::nodeMatches): Given that, assert m_namespace == starAtom.
118450        * dom/TagNodeList.h:
118451        (WebCore::TagNodeList::create): Add a new version of create that doesn't take namespace (assume starAtom) so that
118452        addCacheWithAtomicName works with this class.
118453        (WebCore::HTMLTagNodeList::create): Removed namespaceURI from the argument list since it's always starAtom.
118454        (HTMLTagNodeList):
118455        * html/LabelableElement.cpp:
118456        (WebCore::LabelableElement::labels):
118457        * html/LabelsNodeList.cpp:
118458        (WebCore::LabelsNodeList::LabelsNodeList): Removed redundant m_forNode (identical to m_node in DynamicNodeList).
118459        (WebCore::LabelsNodeList::~LabelsNodeList):
118460        (WebCore::LabelsNodeList::nodeMatches):
118461        * html/LabelsNodeList.h:
118462        (WebCore::LabelsNodeList::create):
118463        (LabelsNodeList):
118464        * html/RadioNodeList.cpp:
118465        (WebCore::RadioNodeList::RadioNodeList): Removed redundant m_baseElement (identical to m_node in DynamicNodeList).
118466        Also changed the first argument's type from Element* to Node* so that it works better with new template member
118467        functions of NodeListsNodeData.
118468        (WebCore::RadioNodeList::~RadioNodeList):
118469        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
118470        * html/RadioNodeList.h:
118471        (WebCore::RadioNodeList::create):
118472        (RadioNodeList):
118473
1184742012-06-21  Sheriff Bot  <webkit.review.bot@gmail.com>
118475
118476        Unreviewed, rolling out r120945.
118477        http://trac.webkit.org/changeset/120945
118478        https://bugs.webkit.org/show_bug.cgi?id=89703
118479
118480        editing/shadow/breaking-editing-boundaries.html started to
118481        crash (Requested by hayato on #webkit).
118482
118483        * dom/EventDispatcher.cpp:
118484        (WebCore::EventRelatedTargetAdjuster::adjust):
118485        (WebCore::EventDispatcher::ensureEventAncestors):
118486
1184872012-06-21  Philippe Normand  <pnormand@igalia.com>
118488
118489        [GStreamer] Use setGstElementClassMetadata.
118490
118491        Rubber/stamped by Martin Robinson.
118492
118493        This function was introduced in r120790 but I forgot to actually
118494        use it in that patch.
118495
118496        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
118497        (webkit_video_sink_class_init):
118498        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
118499
1185002012-06-21  Erik Arvidsson  <arv@chromium.org>
118501
118502        [V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
118503        https://bugs.webkit.org/show_bug.cgi?id=80880
118504
118505        Reviewed by Adam Barth.
118506
118507        We used to add a hidden property in the getter to the returned wrapper.
118508        With this patch we instead handle the liveness of the wrapper in the GC phase by
118509        calling v8::V8::AddHiddenReference.
118510
118511        To reduce the amount of custom code we need, the V8 code generator now supports
118512        GenerateIsReachable (as well as CustomIsReachable) which, even though different
118513        from the JSC attribute, is used in the same cases and takes the same values (even though
118514        at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
118515        also have a dependent life time (just like if V8DependentLifetime was present).
118516
118517        No new tests. Covered by existing tests.
118518
118519        * Target.pri:
118520        * UseV8.cmake:
118521        * WebCore.gypi:
118522        * bindings/scripts/CodeGeneratorJS.pm:
118523        (GetGenerateIsReachable): Abstracted GenerateIsReachable and JSGenerateIsReachable.
118524        (GetCustomIsReachable): Ditto.
118525        (GenerateHeader):
118526        (GenerateImplementation):
118527        * bindings/scripts/CodeGeneratorV8.pm:
118528        (NeedsToVisitDOMWrapper):
118529        (GetGenerateIsReachable):
118530        (GetCustomIsReachable):
118531        (GenerateVisitDOMWrapper):
118532        (GenerateHeader):
118533        (GenerateNamedConstructorCallback):
118534        (GenerateImplementation):
118535        * bindings/scripts/IDLAttributes.txt:
118536        * bindings/scripts/test/V8/V8Float64Array.cpp:
118537        (WebCore):
118538        * bindings/scripts/test/V8/V8Float64Array.h:
118539        (V8Float64Array):
118540        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
118541        (WebCore):
118542        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
118543        (V8TestActiveDOMObject):
118544        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
118545        (WebCore):
118546        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
118547        (V8TestCustomNamedGetter):
118548        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
118549        (WebCore):
118550        * bindings/scripts/test/V8/V8TestEventConstructor.h:
118551        (V8TestEventConstructor):
118552        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
118553        (WebCore):
118554        * bindings/scripts/test/V8/V8TestEventTarget.h:
118555        (V8TestEventTarget):
118556        * bindings/scripts/test/V8/V8TestException.cpp:
118557        (WebCore):
118558        * bindings/scripts/test/V8/V8TestException.h:
118559        (V8TestException):
118560        * bindings/scripts/test/V8/V8TestInterface.cpp:
118561        (WebCore):
118562        * bindings/scripts/test/V8/V8TestInterface.h:
118563        (V8TestInterface):
118564        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
118565        (WebCore):
118566        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
118567        (V8TestMediaQueryListListener):
118568        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
118569        (WebCore):
118570        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
118571        (V8TestNamedConstructor):
118572        * bindings/scripts/test/V8/V8TestNode.cpp:
118573        (WebCore):
118574        * bindings/scripts/test/V8/V8TestNode.h:
118575        (V8TestNode):
118576        * bindings/scripts/test/V8/V8TestObj.cpp:
118577        (WebCore):
118578        * bindings/scripts/test/V8/V8TestObj.h:
118579        (V8TestObj):
118580        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
118581        (WebCore):
118582        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
118583        (V8TestSerializedScriptValueInterface):
118584        * bindings/v8/NPV8Object.cpp:
118585        (WebCore::npObjectTypeInfo):
118586        * bindings/v8/V8GCController.cpp:
118587        (WebCore::GrouperVisitor::visitDOMWrapper):
118588        * bindings/v8/WrapperTypeInfo.h:
118589        (WebCore):
118590        (WrapperTypeInfo):
118591        * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
118592        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
118593        * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
118594        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
118595        (WebCore):
118596        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
118597        * bindings/v8/custom/V8StyleSheetCustom.cpp:
118598        (WebCore::toV8):
118599        * bindings/v8/custom/V8TextTrackListCustom.cpp: Removed.
118600        * css/CSSStyleSheet.idl:
118601        * css/StyleSheet.idl:
118602        * dom/DOMStringMap.idl:
118603        * dom/NamedNodeMap.idl:
118604        * html/DOMTokenList.idl:
118605        * html/track/TextTrackList.idl:
118606
1186072012-06-21  Alec Flett  <alecflett@chromium.org>
118608
118609        IndexedDB: Implement spec behavior for multiEntry indexes with invalid/duplicate subkeys
118610        https://bugs.webkit.org/show_bug.cgi?id=86123
118611
118612        Reviewed by Darin Fisher.
118613
118614        Distinguish between an actual invalid IDBKey, and an array of
118615        possibly-invalid subkeys by making IDBKey::isValid() check subkeys
118616        if the type is an array.
118617
118618        Introduce a new way to transform an IDBKey into a
118619        multiEntry-specific IDBKey, (IDBKey::createMultiEntryArray)
118620        throwing out duplicates and invalid keys. Use it when storing
118621        index entries for multiEntry indexes.
118622
118623        No new tests: existing tests have been altered to include new behavior.
118624
118625        * Modules/indexeddb/IDBCursor.cpp:
118626        (WebCore::IDBCursor::continueFunction):
118627        * Modules/indexeddb/IDBFactory.cpp:
118628        (WebCore::IDBFactory::cmp):
118629        * Modules/indexeddb/IDBIndex.cpp:
118630        (WebCore::IDBIndex::get):
118631        (WebCore::IDBIndex::getKey):
118632        * Modules/indexeddb/IDBKey.cpp:
118633        (WebCore::IDBKey::isValid):
118634        (WebCore):
118635        * Modules/indexeddb/IDBKey.h:
118636        (WebCore::IDBKey::createMultiEntryArray):
118637        (IDBKey):
118638        * Modules/indexeddb/IDBKeyRange.cpp:
118639        (WebCore::IDBKeyRange::only):
118640        (WebCore::IDBKeyRange::lowerBound):
118641        (WebCore::IDBKeyRange::upperBound):
118642        (WebCore::IDBKeyRange::bound):
118643        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
118644        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
118645        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
118646        * Modules/indexeddb/IDBLevelDBCoding.cpp:
118647        (WebCore::IDBLevelDBCoding::encodeIDBKey):
118648        * Modules/indexeddb/IDBObjectStore.cpp:
118649        (WebCore::IDBObjectStore::get):
118650        (WebCore::IDBObjectStore::add):
118651        (WebCore::IDBObjectStore::put):
118652        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
118653        (WebCore::IDBObjectStoreBackendImpl::putInternal):
118654        (WebCore):
118655        * bindings/v8/IDBBindingUtilities.cpp:
118656        (WebCore::createIDBKeyFromValue):
118657
1186582012-06-21  Ian Vollick  <vollick@chromium.org>
118659
118660        [chromium] Overlays when using the web inspector are blurry with device scale factor > 1
118661        https://bugs.webkit.org/show_bug.cgi?id=89676
118662
118663        Reviewed by James Robinson.
118664
118665        Whenever we construct a GraphicsLayerChromium, make initialize the
118666        device and page scale factors, if possible.
118667
118668        Unit test: GraphicsLayerChromiumTest.shouldStartWithCorrectContentsScale
118669
118670        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
118671        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
118672
1186732012-06-21  Philippe Normand  <pnormand@igalia.com>
118674
118675        [Qt] REGRESSION(r120790): broke video rendering
118676        https://bugs.webkit.org/show_bug.cgi?id=89619
118677
118678        Reviewed by Alexis Menard.
118679
118680        Invert the pixel components of the Image on little endian architectures.
118681
118682        * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
118683        (ImageGStreamer::ImageGStreamer):
118684
1186852012-06-21  James Simonsen  <simonjam@chromium.org>
118686
118687        [Resource Timing] Implement Resource Timing interface
118688        https://bugs.webkit.org/show_bug.cgi?id=61152
118689
118690        This patch implements the Resource Timing interface. It doesn't do anything
118691        useful, because nothing populates the timeline yet. There are also some gaps
118692        in the implementation, which have been filed as bugs.
118693
118694        http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html
118695
118696        Reviewed by Tony Gentilcore.
118697
118698        No new tests. Feature is disabled on all platforms.
118699
118700        * CMakeLists.txt:
118701        * DerivedSources.pri:
118702        * GNUmakefile.list.am:
118703        * Target.pri:
118704        * UseV8.cmake:
118705        * WebCore.gypi:
118706        * WebCore.vcproj/WebCore.vcproj:
118707        * WebCore.xcodeproj/project.pbxproj:
118708        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
118709        (WebCore):
118710        (WebCore::toV8): Support PerformanceEntry polymorphism.
118711        * dom/EventNames.h:
118712        (WebCore):
118713        * dom/EventTargetFactory.in:
118714        * page/Performance.cpp:
118715        (WebCore::Performance::~Performance):
118716        (WebCore):
118717        (WebCore::Performance::interfaceName): Reqired for EventTarget.
118718        (WebCore::Performance::scriptExecutionContext): Ditto.
118719        (WebCore::Performance::webkitGetEntries): Return "resource" entries.
118720        (WebCore::Performance::webkitGetEntriesByType): Ditto.
118721        (WebCore::Performance::webkitGetEntriesByName): Ditto.
118722        (WebCore::Performance::webkitClearResourceTimings): New.
118723        (WebCore::Performance::webkitSetResourceTimingBufferSize): New. Unimplemented.
118724        (WebCore::Performance::addResourceTiming): This is how resources in WebCore will report to the timeline.
118725        (WebCore::Performance::eventTargetData): Required for EventTarget.
118726        (WebCore::Performance::ensureEventTargetData): Ditto.
118727        * page/Performance.h:
118728        (Performance):
118729        (WebCore::Performance::refEventTarget):
118730        (WebCore::Performance::derefEventTarget):
118731        * page/Performance.idl:
118732        * page/PerformanceEntry.cpp:
118733        (WebCore::PerformanceEntry::~PerformanceEntry):
118734        (WebCore):
118735        * page/PerformanceEntry.h:
118736        (PerformanceEntry):
118737        (WebCore::PerformanceEntry::isResource):
118738        * page/PerformanceEntry.idl:
118739        * page/PerformanceResourceTiming.cpp: Added.
118740        (WebCore):
118741        (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
118742        (WebCore::PerformanceResourceTiming::initiatorType):
118743        (WebCore::PerformanceResourceTiming::redirectStart):
118744        (WebCore::PerformanceResourceTiming::redirectEnd):
118745        (WebCore::PerformanceResourceTiming::fetchStart):
118746        (WebCore::PerformanceResourceTiming::domainLookupStart):
118747        (WebCore::PerformanceResourceTiming::domainLookupEnd):
118748        (WebCore::PerformanceResourceTiming::connectStart):
118749        (WebCore::PerformanceResourceTiming::connectEnd):
118750        (WebCore::PerformanceResourceTiming::secureConnectionStart):
118751        (WebCore::PerformanceResourceTiming::requestStart):
118752        (WebCore::PerformanceResourceTiming::responseStart):
118753        (WebCore::PerformanceResourceTiming::responseEnd):
118754        (WebCore::PerformanceResourceTiming::monotonicTimeToDocumentMilliseconds):
118755        (WebCore::PerformanceResourceTiming::resourceTimeToMilliseconds):
118756        * page/PerformanceResourceTiming.h: Added.
118757        (WebCore):
118758        (PerformanceResourceTiming):
118759        (WebCore::PerformanceResourceTiming::create):
118760        (WebCore::PerformanceResourceTiming::isResource):
118761        * page/PerformanceResourceTiming.idl: Added.
118762
1187632012-06-21  Hans Wennborg  <hans@chromium.org>
118764
118765        Speech JavaScript API: Remove FIXMEs about whether events bubble and are cancelable
118766        https://bugs.webkit.org/show_bug.cgi?id=89657
118767
118768        Reviewed by Adam Barth.
118769
118770        The spec has been updated to clarify that the events do not bubble and
118771        are not cancelable.
118772
118773        No new tests, just removing comments.
118774
118775        * Modules/speech/SpeechRecognition.cpp:
118776        (WebCore::SpeechRecognition::didStartAudio):
118777        * Modules/speech/SpeechRecognitionError.cpp:
118778        (WebCore::SpeechRecognitionError::SpeechRecognitionError):
118779
1187802012-06-21  Andrey Adaikin  <aandrey@chromium.org>
118781
118782        Web Inspector: [WebGL] Rename InjectedWebGLScriptSource.js -> InjectedScriptWebGLModuleSource.js
118783        https://bugs.webkit.org/show_bug.cgi?id=89675
118784
118785        Reviewed by Pavel Feldman.
118786
118787        * CMakeLists.txt:
118788        * DerivedSources.make:
118789        * DerivedSources.pri:
118790        * GNUmakefile.am:
118791        * GNUmakefile.list.am:
118792        * WebCore.gyp/WebCore.gyp:
118793        * WebCore.gypi:
118794        * WebCore.vcproj/WebCore.vcproj:
118795        * WebCore.xcodeproj/project.pbxproj:
118796        * inspector/InjectedScriptWebGLModule.cpp:
118797        (WebCore::InjectedScriptWebGLModule::source):
118798        * inspector/InjectedScriptWebGLModuleSource.js: Renamed from Source/WebCore/inspector/InjectedWebGLScriptSource.js.
118799        (.):
118800
1188012012-06-21  Kalev Lember  <kalevlember@gmail.com>
118802
118803        [GTK] Fix NPAPI plugins on Windows
118804        https://bugs.webkit.org/show_bug.cgi?id=54531
118805
118806        Reviewed by Martin Robinson.
118807
118808        Switch to using PluginPackageWin.cpp and PluginViewWin.cpp on Windows
118809        platform, and leave plugins/gtk/ only for XP_UNIX platforms. With this
118810        we can share a lot of code with other ports and don't have to
118811        reimplement all the Windows-specific code in plugins/gtk/.
118812
118813        * GNUmakefile.am:
118814        * GNUmakefile.list.am:
118815        * platform/FileSystem.h:
118816        (WebCore):
118817        * platform/graphics/GraphicsContext.h:
118818        (GraphicsContext):
118819        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
118820        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
118821        (GraphicsContextPlatformPrivate):
118822        * platform/graphics/transforms/TransformationMatrix.h:
118823        (TransformationMatrix):
118824        * platform/graphics/win/GraphicsContextCairoWin.cpp:
118825        (WebCore):
118826        * platform/graphics/win/GraphicsContextWin.cpp:
118827        (WebCore):
118828        * platform/gtk/FileSystemGtk.cpp:
118829        (WebCore::unloadModule):
118830        * plugins/PluginView.h:
118831        (PluginView):
118832        * plugins/win/PluginViewWin.cpp:
118833        (windowHandleForPageClient):
118834        (WebCore::registerPluginView):
118835        (WebCore::PluginView::paint):
118836        (WebCore::PluginView::handleMouseEvent):
118837        (WebCore::PluginView::platformStart):
118838        (WebCore::PluginView::snapshot):
118839
1188402012-06-21  Brady Eidson  <beidson@apple.com>
118841
118842        <rdar://problem/11718988> and https://bugs.webkit.org/show_bug.cgi?id=89673
118843        showModalDialog fix creates risk of never returning from RunLoop::performWork, potentially blocking other event sources
118844
118845        In case handling a function on the queue places additional functions on the queue, we should
118846        limit the number of functions each invocation of performWork() performs so it can return and
118847        other event sources have a chance to spin.
118848
118849        The showModalDialog fix in question is http://trac.webkit.org/changeset/120879
118850
118851        Reviewed by Darin Adler and Anders Carlson.
118852
118853        * platform/RunLoop.cpp:
118854        (WebCore::RunLoop::performWork): If there are only N functions in the queue when performWork is called,
118855          only handle up to N functions before returning. Any additional functions will be handled the next time
118856          the runloop spins.
118857
1188582012-06-21  Tim Horton  <timothy_horton@apple.com>
118859
118860        SVGImageCache isn't invalidated for <img> on dynamic page scale changes
118861        https://bugs.webkit.org/show_bug.cgi?id=89621
118862        <rdar://problem/11714677>
118863
118864        Reviewed by Simon Fraser.
118865
118866        Previously, device and page scale factors were being cached as a part of the SVGImageCache's
118867        size request. However, an <img> never has a reason to update its size request when the page
118868        scale is changed via gesture zooming, as no layout occurs.
118869
118870        Instead, look up the relevant scales when the image is requested (which will occur during every
118871        repaint), allowing page scale changes to take effect without requiring an updated size request.
118872
118873        Test: svg/as-image/image-respects-pageScaleFactor-change.html
118874
118875        * loader/cache/CachedImage.cpp:
118876        (WebCore::CachedImage::lookupOrCreateImageForRenderer):
118877        (WebCore::CachedImage::setContainerSizeForRenderer):
118878        * svg/graphics/SVGImageCache.cpp:
118879        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
118880        * svg/graphics/SVGImageCache.h:
118881        (WebCore::SVGImageCache::SizeAndScales::SizeAndScales):
118882        (SizeAndScales):
118883
1188842012-06-21  Philip Rogers  <pdr@google.com>
118885
118886        Add pending resource even if others are pending
118887        https://bugs.webkit.org/show_bug.cgi?id=89633
118888
118889        Reviewed by Dirk Schulze.
118890
118891        An element can have multiple simultaneous pending resources but some of
118892        this code was legacy, before the hasPendingResource()->hasPendingResources()
118893        change (r105573). This patch continues adding a pending resource even if
118894        there are other pending resources. In some cases, this can lead to marking
118895        a resource as pending twice but the performance impact of that is negligible.
118896
118897        Other than SVGUseElement, SVGTrefElement and SVGFEImageElement are also
118898        changed. These elements are unaffected because they can only have
118899        a single resource at the moment (href), with other Style url() references
118900        being handled by their parent containers.
118901
118902        Tests: svg/custom/use-multiple-pending-resources-expected.svg
118903               svg/custom/use-multiple-pending-resources.svg
118904
118905        * svg/SVGFEImageElement.cpp:
118906        (WebCore::SVGFEImageElement::buildPendingResource):
118907        * svg/SVGTRefElement.cpp:
118908        (WebCore::SVGTRefElement::detachTarget):
118909        (WebCore::SVGTRefElement::buildPendingResource):
118910        * svg/SVGUseElement.cpp:
118911        (WebCore::SVGUseElement::buildPendingResource):
118912
1189132012-06-21  Kalev Lember  <kalevlember@gmail.com>
118914
118915        [GTK] Replace the use of "struct stat" with GStatBuf
118916        https://bugs.webkit.org/show_bug.cgi?id=89488
118917
118918        Reviewed by Martin Robinson.
118919
118920        Make sure we pass GStatBuf to g_stat(); depending on the platform, it
118921        isn't always the same as "struct stat", e.g. on Windows.
118922
118923        * platform/gtk/FileSystemGtk.cpp:
118924        (WebCore::getFileSize):
118925        (WebCore::getFileModificationTime):
118926
1189272012-06-21  Min Qin  <qinmin@chromium.org>
118928
118929        remove ENABLE_FULLSCREEN_MEDIA_CONTROL flag
118930        https://bugs.webkit.org/show_bug.cgi?id=89614
118931
118932        Reviewed by Eric Carlson.
118933
118934        Desktop chromium also starts to use fullscreen button after https://bugs.webkit.org/show_bug.cgi?id=88818
118935        we don't need this flag any more
118936        No test needed as this change just removes a flag.
118937
118938        * html/shadow/MediaControlRootElementChromium.cpp:
118939        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
118940        (WebCore::MediaControlRootElementChromium::create):
118941        (WebCore::MediaControlRootElementChromium::setMediaController):
118942        (WebCore::MediaControlRootElementChromium::reset):
118943        (WebCore::MediaControlRootElementChromium::reportedError):
118944        * html/shadow/MediaControlRootElementChromium.h:
118945        (MediaControlRootElementChromium):
118946
1189472012-06-21  Hayato Ito  <hayato@chromium.org>
118948
118949        Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
118950        https://bugs.webkit.org/show_bug.cgi?id=89073
118951
118952        Reviewed by Dimitri Glazkov.
118953
118954        Adopt a new event re-targeting algorithm in the latest Shadow DOM spec.
118955        The corresponding bug in the shadow DOM spec is:
118956        https://www.w3.org/Bugs/Public/show_bug.cgi?id=17090
118957
118958        This change is introduced to handle the following use case:
118959        1. There is an insertion point, with zero or more nodes distributed into it.
118960        2. User clicks on one of the items.
118961        3. The event handler in shadow DOM subtree wants to know which item was clicked on.
118962
118963        The new re-targeting algorithm sets an event's target to a
118964        distributed node where an event was originally fired, instead of
118965        an insertion point to where the node is distributed.
118966
118967        The similar re-targeting algorithm also applies to an event's
118968        relatedTarget.
118969
118970        Test: fast/dom/shadow/shadow-dom-event-dispatching.html
118971
118972        * dom/EventDispatcher.cpp:
118973        (WebCore::EventRelatedTargetAdjuster::adjust):
118974        (WebCore::EventDispatcher::ensureEventAncestors):
118975
1189762012-06-21  Andrei Onea  <onea@adobe.com>
118977
118978        [CSSRegions]Change WEBKIT_REGION_RULE value to 16
118979        https://bugs.webkit.org/show_bug.cgi?id=89421
118980
118981        Reviewed by Tony Chang.
118982
118983        Modified WEBKIT_REGION_RULE where applicable to match CSS Regions spec.
118984        The new value for WEBKIT_REGION_RULE is 16 (was 10).
118985
118986        * css/CSSRule.cpp:
118987        (WebCore):
118988        Added COMPILE_ASSERT to ensure StyleRule::Region and CSSRule::WEBKIT_REGION_RULE will
118989        * css/CSSRule.h:
118990        (CSSRule):
118991        Modified m_type bitfield length to 5
118992        * css/CSSRule.idl:
118993        * css/StyleRule.cpp:
118994        (SameSizeAsStyleRuleBase):
118995        (WebCore):
118996        Added COMPILE_ASSERT to ensure that StyleRuleBase will always have exactly 32bits.
118997        * css/StyleRule.h:
118998        (StyleRuleBase):
118999        Modified m_type bitfield to 5 to accommodate the new value, and modified
119000        m_sourceLine bitfield to 27 bits in order to keep StyleRule 32
119001        bits long. Consequently, any css rule longer than 67,108,863 lines will
119002        cause overflow - however, the value is large enough not to cause
119003        problems.
119004
1190052012-06-21  Silvia Pfeiffer  <silviapf@chromium.org>
119006
119007        Paint played and buffered ranges differently in Chrome video controls.
119008        https://bugs.webkit.org/show_bug.cgi?id=89284
119009
119010        Reviewed by Eric Carlson.
119011
119012        No new tests; existing video control tests cover this case.
119013
119014        The Chrome video controls are receiving a visual update. This patch changes
119015        the format in which the playback position slider displays the buffered range.
119016        It is painted in a lighter color left of the position thumb and darker right
119017        of the position thumb
119018
119019        * css/mediaControlsChromium.css:
119020        (input[type="range"]::-webkit-media-slider-container):
119021        Adjust the border color of the playback position slider.
119022        * rendering/RenderMediaControlsChromium.cpp:
119023        (WebCore::paintRoundedSliderBackground):
119024        Adjust the background color of the position slider.
119025        (WebCore::paintSliderRangeHighlight):
119026        Make the color of the range region a function parameter,
119027        provide start and end position as pixel width instead of percentage,
119028        and make sure the rounded corners at beginning and end don't turn into rectangles.
119029        (WebCore):
119030        Move the mediaSliderThumbWidth variable up to be used in paintMediaSlider().
119031        (WebCore::paintMediaSlider):
119032        Calculate start, current and end position instead of fractions,
119033        adjust the current position by half the thumb's width for improved rendering,
119034        and draw two highlight areas: one bright one before current position and
119035        one grey one after current position.
119036        (WebCore::paintMediaVolumeSlider):
119037        Adjust the paintSliderRangeHighlight function call and add the colors.
119038
1190392012-06-21  Kwang Yul Seo  <skyul@company100.net>
119040
119041        Remove unused static variable uninitializedLineNumberValue.
119042        https://bugs.webkit.org/show_bug.cgi?id=89643
119043
119044        Reviewed by Alexey Proskuryakov.
119045
119046        No behavioral changes.
119047
119048        * html/parser/HTMLTreeBuilder.cpp:
119049        (WebCore):
119050
1190512012-06-21  Kwang Yul Seo  <skyul@company100.net>
119052
119053        Remove unused static function skipComment.
119054        https://bugs.webkit.org/show_bug.cgi?id=89641
119055
119056        Reviewed by Alexey Proskuryakov.
119057
119058        No behavioral changes.
119059
119060        * loader/TextResourceDecoder.cpp:
119061
1190622012-06-21  Nico Weber  <thakis@chromium.org>
119063
119064        Remove two more member variables found by clang's Wunused-private-field
119065        https://bugs.webkit.org/show_bug.cgi?id=89672
119066
119067        Reviewed by Anders Carlsson.
119068
119069        * html/shadow/MediaControlRootElementChromium.h:
119070        (MediaControlRootElementChromium):
119071        * platform/graphics/filters/FECustomFilter.cpp:
119072        (WebCore::FECustomFilter::FECustomFilter):
119073        * platform/graphics/filters/FECustomFilter.h:
119074        (FECustomFilter):
119075
1190762012-06-21  Julien Chaffraix  <jchaffraix@webkit.org>
119077
119078        Non-fixed length margins don't work with align=center
119079        https://bugs.webkit.org/show_bug.cgi?id=89626
119080
119081        Reviewed by Levi Weintraub.
119082
119083        Tests: fast/block/negative-start-margin-align-center-percent.html
119084               fast/block/positive-margin-block-child-align-center-calc.html
119085
119086        Calling Length::value() is a bad idea as it returns the *raw* value of
119087        the length. For percent and calculated length this is a bad idea as they
119088        bear not relation to the actual computed length.
119089
119090        * rendering/RenderBox.cpp:
119091        (WebCore::RenderBox::computeInlineDirectionMargins):
119092        Fixed the code to use minimumValueForLength as this nicely takes care of the 'auto' case.
119093
1190942012-06-21  Robert Kroeger  <rjkroege@chromium.org>
119095
119096        [chromium] style improvement for setDeviceScaleFactor code
119097        https://bugs.webkit.org/show_bug.cgi?id=89665
119098
119099        Correct a coding style error committed in https://bugs.webkit.org/show_bug.cgi?id=88916
119100
119101        Reviewed by Adrienne Walker.
119102
119103        Purely code hygiene: existing tests suffice.
119104
119105        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
119106        (WebCore::CCLayerTreeHostImpl::setDeviceScaleFactor):
119107
1191082012-06-21  Shinya Kawanaka  <shinyak@chromium.org>
119109
119110        [Crash][Editing] Pressing enter on LI element triggers assertion in Shadow DOM.
119111        https://bugs.webkit.org/show_bug.cgi?id=89171
119112
119113        Reviewed by Ryosuke Niwa.
119114
119115        Since modidying Shadow DOM removes renderer of elements in Shadow DOM and shadow host,
119116        assertion to check the existence of renderer was triggered.
119117
119118        We should update layout here to create renderer again.
119119
119120        Test: editing/shadow/pressing-enter-on-list.html
119121
119122        * editing/CompositeEditCommand.cpp:
119123        (WebCore::CompositeEditCommand::appendBlockPlaceholder):
119124
1191252012-06-21  Andrey Adaikin  <aandrey@chromium.org>
119126
119127        Web Inspector: [WebGL] Add injected WebGL module class
119128        https://bugs.webkit.org/show_bug.cgi?id=89592
119129
119130        Reviewed by Pavel Feldman.
119131
119132        Adding a new InjectedScriptWebGLModule class and moving WebGL-related
119133        stuff out of InjectedScriptManager class.
119134
119135        * CMakeLists.txt:
119136        * GNUmakefile.list.am:
119137        * Target.pri:
119138        * WebCore.gypi:
119139        * WebCore.vcproj/WebCore.vcproj:
119140        * WebCore.xcodeproj/project.pbxproj:
119141        * inspector/InjectedScriptManager.cpp:
119142        * inspector/InjectedScriptManager.h:
119143        (InjectedScriptManager):
119144        * inspector/InjectedScriptModule.cpp:
119145        (WebCore::InjectedScriptModule::ensureInjected):
119146        * inspector/InjectedScriptModule.h:
119147        (InjectedScriptModule):
119148        * inspector/InjectedScriptWebGLModule.cpp: Copied from Source/WebCore/inspector/InjectedScriptModule.cpp.
119149        (WebCore):
119150        (WebCore::InjectedScriptWebGLModule::InjectedScriptWebGLModule):
119151        (WebCore::InjectedScriptWebGLModule::moduleForState):
119152        (WebCore::InjectedScriptWebGLModule::source):
119153        (WebCore::InjectedScriptWebGLModule::wrapWebGLContext):
119154        (WebCore::InjectedScriptWebGLModule::captureFrame):
119155        * inspector/InjectedScriptWebGLModule.h: Copied from Source/WebCore/inspector/InjectedScriptModule.h.
119156        (WebCore):
119157        (InjectedScriptWebGLModule):
119158        * inspector/InspectorWebGLAgent.cpp:
119159        (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
119160
1191612012-06-21  Pavel Feldman  <pfeldman@chromium.org>
119162
119163        Web Inspector: do not add separator to the end of the context menu.
119164        https://bugs.webkit.org/show_bug.cgi?id=89634
119165
119166        Reviewed by Vsevolod Vlasov.
119167
119168        Attaching separators only before menu items now.
119169
119170        * inspector/front-end/ContextMenu.js:
119171        (WebInspector.ContextSubMenuItem.prototype.appendItem):
119172        (WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
119173        (WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
119174        (WebInspector.ContextSubMenuItem.prototype.appendSeparator):
119175        (WebInspector.ContextSubMenuItem.prototype._pushItem):
119176
1191772012-06-21  Taiju Tsuiki  <tzik@chromium.org>
119178
119179        Web Inspector: Unify FileSystem callbacks
119180        https://bugs.webkit.org/show_bug.cgi?id=89420
119181
119182        Reviewed by Vsevolod Vlasov.
119183
119184        * inspector/InspectorFileSystemAgent.cpp:
119185        (WebCore):
119186
1191872012-06-20  Hans Wennborg  <hans@chromium.org>
119188
119189        Speech JavaScript API: SpeechRecognition should hook up with ActiveDOMObject more
119190        https://bugs.webkit.org/show_bug.cgi?id=89217
119191
119192        Reviewed by Adam Barth.
119193
119194        Previously, the SpeechRecognition was kept alive while waiting for
119195        pending events by making the embedder hold a reference to the object.
119196        We should do this by using ActiveDOMObject's setPendingActivity() instead.
119197
119198        Also, override ActiveDOMObject::stop() to get notified when the user
119199        leaves the page.
119200
119201        Test: fast/speech/scripted/navigate-away.html
119202
119203        * Modules/speech/SpeechRecognition.cpp:
119204        (WebCore::SpeechRecognition::start):
119205        (WebCore::SpeechRecognition::didEnd):
119206        (WebCore::SpeechRecognition::stop):
119207        (WebCore):
119208        * Modules/speech/SpeechRecognition.h:
119209        (SpeechRecognition):
119210
1192112012-06-21  Taiju Tsuiki  <tzik@chromium.org>
119212
119213        Web Inspector: Move requestId allocation from FileSystem frontend to backend
119214        https://bugs.webkit.org/show_bug.cgi?id=89555
119215
119216        Reviewed by Vsevolod Vlasov.
119217
119218        Test: http/tests/inspector/filesystem/get-filesystem-root.html:
119219              http/tests/inspector/filesystem/read-directory.html:
119220
119221        * inspector/Inspector.json:
119222        * inspector/InspectorFileSystemAgent.cpp:
119223        (WebCore):
119224        (WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
119225        (WebCore::InspectorFileSystemAgent::requestDirectoryContent):
119226        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
119227        * inspector/InspectorFileSystemAgent.h:
119228        (InspectorFileSystemAgent):
119229        * inspector/front-end/FileSystemModel.js:
119230        (WebInspector.FileSystemModel.prototype._originAdded):
119231        (WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
119232        (WebInspector.FileSystemRequestManager):
119233        (WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot.requestAccepted):
119234        (WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot):
119235        (WebInspector.FileSystemRequestManager.prototype._fileSystemRootReceived):
119236        (WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent.requestAccepted):
119237        (WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent):
119238        (WebInspector.FileSystemRequestManager.prototype._directoryContentReceived):
119239        (WebInspector.FileSystemDispatcher.prototype.fileSystemRootReceived):
119240        (WebInspector.FileSystemDispatcher.prototype.directoryContentReceived):
119241
1192422012-06-20  Arnaud Renevier  <arno@renevier.net>
119243
119244        [cairo] improve putByteArray speed by avoiding max/min checks at Color construction.
119245        https://bugs.webkit.org/show_bug.cgi?id=89138
119246
119247        Reviewed by Adam Barth.
119248
119249        Color constructor accepts integer arguments and checks if they are
119250        between 0 and 255. In some cases, we already known those numbers to be
119251        within those boundaries. For example when using unsigned chars. So
119252        this patch introduces Color::createUnChecked which return a Color
119253        object without checking for boundaries.
119254
119255        No new tests: no behaviour change
119256
119257        * platform/graphics/Color.cpp:
119258        (WebCore::colorFromPremultipliedARGB):
119259        * platform/graphics/Color.h:
119260        (WebCore::Color::createUnCheked):
119261        (Color):
119262        * platform/graphics/cairo/ImageBufferCairo.cpp:
119263        (WebCore::ImageBuffer::putByteArray):
119264
1192652012-06-20  Zeev Lieber  <zlieber@chromium.org>
119266
119267        [Chromium] Damage tracker is not used without partial swap, causing valid render passes to be removed
119268        https://bugs.webkit.org/show_bug.cgi?id=89589
119269
119270        Reviewed by Adrienne Walker.
119271
119272        When not using partial swap, the CCDamageTracker was not used, and
119273        its m_currentDamageRect was always empty. As a result,
119274        CCLayerTreeHostImpl was thinking no content was changed and was
119275        removing more textures than needed. Fixed this by turning on
119276        CCDamageTracker usage even if not using partial swap, but
119277        overwriting the rootScissorRect with viewport rect if required.
119278
119279        Added unit tests to exercise this scenario.
119280
119281        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
119282        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
119283
1192842012-06-20  Yoshifumi Inoue  <yosin@chromium.org>
119285
119286        [Forms] Make step action of SpinButtonElement replaceable
119287        https://bugs.webkit.org/show_bug.cgi?id=89439
119288
119289        Reviewed by Kent Tamura.
119290
119291        This patch introduces SpinButtonElement::Callback to specify step
119292        action by control clients for using SpinButtonElement by
119293        TextFieldInputType and future version of TimeInputField.
119294
119295        In addition to this improving flexibility of SpinButtonElement, we
119296        free HTMLInputElement from SpinButtonElement dependency on
119297        stepUpFromRenderer.
119298
119299        No new tests. This patch doesn't change behavior.
119300
119301        * html/HTMLInputElement.cpp: Removed stepUpFromRenderer().
119302        * html/HTMLInputElement.h: Removed stepUpFromRenderer().
119303        * html/TextFieldInputType.cpp:
119304        (WebCore::TextFieldInputType::~TextFieldInputType): Added to call SpinButtonElement::removeStepActionHandler.
119305        (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Changed to call spinButtonStep{Down,Up}
119306        (WebCore::TextFieldInputType::handleWheelEventForSpinButton): Changed to call spinButtonStep{Down,Up}
119307        (WebCore::TextFieldInputType::createShadowSubtree): Added SpinButtonElement::StepActionHandler parameter.
119308        (WebCore::TextFieldInputType::destroyShadowSubtree): Added to call SpinButtonElement::removeStepActionHandler.
119309        (WebCore::TextFieldInputType::spinButtonStepDown): Added for implementation of SpinButtonElement::StepActionHandler.
119310        (WebCore::TextFieldInputType::spinButtonStepUp): Added for implementation of SpinButtonElement::StepActionHandler.
119311        * html/TextFieldInputType.h:
119312        (TextFieldInputType):
119313        * html/shadow/TextControlInnerElements.cpp:
119314        (WebCore::SpinButtonElement::SpinButtonElement): Added StepActionHandler parameter.
119315        (WebCore::SpinButtonElement::defaultEventHandler): Changed to call doStepAction.
119316        (WebCore::SpinButtonElement::doStepAction): Added to call StepActionHandler if possible.
119317        (WebCore::SpinButtonElement::step): Changed to call doStepAction.
119318        * html/shadow/TextControlInnerElements.h:
119319        (StepActionHandler): Added.
119320
1193212012-06-20  Adrienne Walker  <enne@google.com>
119322
119323        [chromium] Modify CCDamageTracker hash to allow for layer id 0
119324        https://bugs.webkit.org/show_bug.cgi?id=89631
119325
119326        Reviewed by James Robinson.
119327
119328        HashMap has the bizarre property that 0 is the empty value for integer
119329        keys. Modify the damage tracking HashMap to use negative values for
119330        both the empty and the deleted key traits. Additionally, make sure we
119331        never generate negative layer IDs in practice.
119332
119333        Test: passes webkit_unit_tests with the patch in bug 89589 applied.
119334
119335        * platform/graphics/chromium/LayerChromium.cpp:
119336        (WebCore::LayerChromium::LayerChromium):
119337        * platform/graphics/chromium/cc/CCDamageTracker.h:
119338        (RectMapKeyTraits):
119339        (WebCore::CCDamageTracker::RectMapKeyTraits::emptyValue):
119340        (WebCore::CCDamageTracker::RectMapKeyTraits::constructDeletedValue):
119341        (WebCore::CCDamageTracker::RectMapKeyTraits::isDeletedValue):
119342        (CCDamageTracker):
119343        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
119344        (WebCore::CCLayerImpl::CCLayerImpl):
119345
1193462012-06-20  Adam Klein  <adamk@chromium.org>
119347
119348        Use Dictionary in MutationObserver.observe to kill custom code
119349        https://bugs.webkit.org/show_bug.cgi?id=89629
119350
119351        Reviewed by Ryosuke Niwa.
119352
119353        Move code for dictionary parsing in MutationObserver.observe
119354        that used to be duplicated (with different implementations)
119355        in JSC and V8 bindings into WebKitMutationObserver.cpp, using
119356        the new Dictionary interface.
119357
119358        No new tests, no change in behavior.
119359
119360        * bindings/js/JSWebKitMutationObserverCustom.cpp:
119361        * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
119362        * dom/WebKitMutationObserver.cpp:
119363        (WebCore::WebKitMutationObserver::observe):
119364        * dom/WebKitMutationObserver.h:
119365        (WebCore):
119366        * dom/WebKitMutationObserver.idl:
119367
1193682012-06-20  Sheriff Bot  <webkit.review.bot@gmail.com>
119369
119370        Unreviewed, rolling out r120889.
119371        http://trac.webkit.org/changeset/120889
119372        https://bugs.webkit.org/show_bug.cgi?id=89630
119373
119374        [Chromium] webkit_unit_tests didDrawNotCalledOnHiddenLayer
119375        start failing (Requested by ukai on #webkit).
119376
119377        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
119378        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
119379
1193802012-06-20  Hayato Ito  <hayato@chromium.org>
119381
119382        [Shadow][Editing] Deleting character in distributed element caused a crash.
119383        https://bugs.webkit.org/show_bug.cgi?id=88484
119384
119385        Reviewed by Ryosuke Niwa.
119386
119387        If we mutate nodes which are children of a shadow host, it causes
119388        ElementShadow::invalidateDistribution().  As a result, shadow host
119389        is detached (and lazyAttached()) and its renderer is gone.  That
119390        causes assertion error since isEditablePosition() assumes
119391        anchorNode's style was correctly calculated.
119392
119393        This patch makes isEditablePosition() call
119394        document->updateLayoutIgnorePendingStylesheets() so that it does
119395        not return a bogus result.
119396
119397        There is an exceptional caller of isEditablePosition,
119398        RenderBlock::paintCaret(), from where we can not call
119399        updateLayout() in isEditablePosition because it hits assertion,
119400        ASSERT(!isPainting). So I've added the third parameter to
119401        isEditablePosition to control updating the style.
119402
119403        Test: edition/shadow/delete-characters-in-distributed-node.html
119404
119405        * editing/FrameSelection.h:
119406        (WebCore::FrameSelection::rendererIsEditable):
119407        * editing/VisibleSelection.cpp:
119408        (WebCore::VisibleSelection::rendererIsEditable):
119409        (WebCore):
119410        * editing/VisibleSelection.h:
119411        (VisibleSelection):
119412        * editing/htmlediting.cpp:
119413        (WebCore::isEditablePosition):
119414        * editing/htmlediting.h:
119415        (WebCore):
119416        * rendering/RenderBlock.cpp:
119417        (WebCore::RenderBlock::paintCaret):
119418
1194192012-06-20  Kent Tamura  <tkent@chromium.org>
119420
119421        Unmodified form control value are overwritten by another form
119422        control value with the same name after navigating and going back
119423        https://bugs.webkit.org/show_bug.cgi?id=89409
119424
119425        Reviewed by Hajime Morita.
119426
119427        Detail of the bug:
119428        If a page had multiple form controls of which names and types were
119429        identical like the following:
119430          <input type=text name=name1 id=input1>
119431          <input type=text name=name1 id=input2>
119432        and a user updated the value of the second control, then went to
119433        another page and went back to the page again, we restored the updated
119434        value to the first element, and didn't update the second element.
119435
119436        We didn't save unmodified control state, and the form state data
119437        had no ways to represent "this control should be skipped".
119438
119439        How to resovle the bug:
119440        We need to represent "this control should be skipped" in the
119441        seriazlied form state vector.
119442
119443        - A serialized control state had three items:
119444                name, type, value.
119445          Now we change it to:
119446                name, type, flag, optional value
119447
119448        - It is definitely incompatible with serizlized state produced by
119449        older WebCore. So, we need to add the signature string to
119450        represent the version of serialized state format.
119451
119452        - Because the state for a form control is variable-length and we
119453        can't deserialize it in reverse-order, we change the on-memory
119454        representation from Vector<> to Deque<>.
119455
119456        Test: fast/forms/state-restore-to-non-edited-controls.html
119457
119458        * html/FormController.cpp:
119459        (WebCore::FormControlState::serializeTo):
119460        Added. Serialize a state for a form control to a string vector.
119461        (WebCore::FormControlState::deserialize):
119462        Added. Produce a FormControlState object from the specified string vector.
119463        It can produce a FromControlState of the failure type.
119464        (WebCore::formStateSignature): The signature string of the serialized state.
119465        (WebCore::FormController::formElementsState):
119466         - Capacity:
119467          The size of seirlized data for one form control is typically 4.
119468          +1 for the signature.
119469         - We need to store a FormControlState with no values.
119470        (WebCore::FormController::setStateForNewFormElements):
119471         - We can't iterate over the stateVector in reverse order any more
119472           because serialized control state is variable-length.
119473         - We put FormControlState objects to HashMap instead of String objects.
119474        (WebCore::FormController::takeStateForFormElement):
119475         Updated for Deque<>.
119476        * html/FormController.h:
119477        (FormControlState): Declare deserialize() and serializeTo().
119478        (WebCore::FormControlState::isFailure): Added.
119479        (WebCore::FormControlState::FormControlState):
119480        Added to create a FormControlState with failure type.
119481        (FormController):
119482        Change the value type of m_stateForNewFormElements from Vector<String>
119483        to Deque<FormControlState>.
119484
1194852012-06-20  Alexandru Chiculita  <achicu@adobe.com>
119486
119487        [CSS Shaders] Rename CustomFilterShader class name to CustomFilterCompiledProgram
119488        https://bugs.webkit.org/show_bug.cgi?id=89578
119489
119490        Reviewed by Dean Jackson.
119491
119492        I've renamed CustomFilterShader to CustomFilterCompiledProgram to make it obvious that it is the result of 
119493        calling CustomFilterProgram::compileProgramWithContext.
119494
119495        No new tests, just renamed an existing class.
119496        
119497        * CMakeLists.txt:
119498        * GNUmakefile.list.am:
119499        * Target.pri:
119500        * WebCore.gypi:
119501        * WebCore.vcproj/WebCore.vcproj:
119502        * WebCore.xcodeproj/project.pbxproj:
119503        * platform/graphics/filters/CustomFilterCompiledProgram.cpp: Renamed from Source/WebCore/platform/graphics/filters/CustomFilterShader.cpp.
119504        (WebCore):
119505        (WebCore::CustomFilterCompiledProgram::defaultVertexShaderString):
119506        (WebCore::CustomFilterCompiledProgram::defaultFragmentShaderString):
119507        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
119508        (WebCore::CustomFilterCompiledProgram::compileShader):
119509        (WebCore::CustomFilterCompiledProgram::linkProgram):
119510        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
119511        (WebCore::CustomFilterCompiledProgram::uniformLocationByName):
119512        (WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram):
119513        * platform/graphics/filters/CustomFilterCompiledProgram.h: Renamed from Source/WebCore/platform/graphics/filters/CustomFilterShader.h.
119514        (WebCore):
119515        * platform/graphics/filters/CustomFilterProgram.cpp:
119516        (WebCore::CustomFilterProgram::compileProgramWithContext): Renamed method from createShaderWithContext to compileProgramWithContext.
119517        * platform/graphics/filters/CustomFilterProgram.h:
119518        (WebCore):
119519        * platform/graphics/filters/FECustomFilter.cpp: Renamed m_shader to m_compiledProgram.
119520        (WebCore::FECustomFilter::platformApplySoftware):
119521        (WebCore::FECustomFilter::initializeContext):
119522        (WebCore::FECustomFilter::bindProgramParameters):
119523        (WebCore::FECustomFilter::bindProgramAndBuffers):
119524        * platform/graphics/filters/FECustomFilter.h:
119525        (WebCore):
119526        (FECustomFilter):
119527
1195282012-06-19  Andrey Kosyakov  <caseq@chromium.org>
119529
119530        Web Inspector: reduce timeline refresh rate
119531        https://bugs.webkit.org/show_bug.cgi?id=89548
119532
119533        Reviewed by Pavel Feldman.
119534
119535        Minimize resource contention with the inspected page during refresh:
119536
119537        - reduce refresh for both overview and main panes to 300ms
119538        - automatically limit window size to approximately one pageful of events in the lower pane
119539        - do not refresh lower pane for events that are outside of the window
119540
119541        * inspector/front-end/TimelineOverviewPane.js:
119542        (WebInspector.TimelineOverviewPane.prototype._update):
119543        (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
119544        (WebInspector.TimelineOverviewPane.prototype.setWindowTimes): Set overview window by times.
119545        (WebInspector.TimelineOverviewPane.prototype._updateWindow):
119546        (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh): Refresh once in 300ms (insted of once in 100ms).
119547        (WebInspector.TimelineOverviewWindow.prototype._setWindow):
119548        * inspector/front-end/TimelinePanel.js:
119549        (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded): Do not refresh if the new record is outside of window.
119550        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
119551        (WebInspector.TimelinePanel.prototype._resetPanel):
119552        (WebInspector.TimelinePanel.prototype._scheduleRefresh): Refresh rate: 100ms -> 300ms.
119553        (WebInspector.TimelinePanel.prototype._refreshRecords): Automatically set overview window.
119554        * inspector/front-end/TimelinePresentationModel.js: Expose filterRecords
119555        (WebInspector.TimelinePresentationModel.prototype.filteredRecords):
119556        (WebInspector.TimelinePresentationModel.prototype.filterRecords):
119557        (WebInspector.TimelinePresentationModel.prototype._innerFilterRecords):
119558
1195592012-06-20  Zeev Lieber  <zlieber@chromium.org>
119560
119561        [Chromium] Damage tracker is not used without partial swap, causing valid render passes to be removed
119562        https://bugs.webkit.org/show_bug.cgi?id=89589
119563
119564        Reviewed by Adrienne Walker.
119565
119566        When not using partial swap, the CCDamageTracker was not used, and
119567        its m_currentDamageRect was always empty. As a result,
119568        CCLayerTreeHostImpl was thinking no content was changed and was
119569        removing more textures than needed. Fixed this by turning on
119570        CCDamageTracker usage even if not using partial swap, but
119571        overwriting the rootScissorRect with viewport rect if required.
119572
119573        Added unit tests to exercise this scenario.
119574
119575        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
119576        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
119577
1195782012-06-20  Joshua Bell  <jsbell@chromium.org>
119579
119580        IndexedDB: Remove redundant IDBObjectStore.delete() overloads
119581        https://bugs.webkit.org/show_bug.cgi?id=89587
119582
119583        Reviewed by Darin Fisher.
119584
119585        The IDBObjectStore.delete(IDBKey) overload can delegate to the delete(IDBKeyRange)
119586        overload. Also cleaned up redundant checks in related overloads.
119587
119588        Test: storage/indexeddb/deleted-objects.html
119589
119590        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
119591        (WebCore::IDBCursorBackendImpl::deleteFunction): Call keyRange variant instead.
119592        * Modules/indexeddb/IDBIndex.cpp:
119593        (WebCore::IDBIndex::get): Remove redundant deleted/invalid IDBKey checks.
119594        (WebCore::IDBIndex::getKey): Remove redundant deleted/invalid IDBKey checks.
119595        * Modules/indexeddb/IDBKeyRange.cpp: Null IDBKeys are not acceptable; currently
119596        not passed in by any callers.
119597        (WebCore::IDBKeyRange::only):
119598        (WebCore::IDBKeyRange::lowerBound):
119599        (WebCore::IDBKeyRange::upperBound):
119600        (WebCore::IDBKeyRange::bound):
119601        * Modules/indexeddb/IDBObjectStore.cpp:
119602        (WebCore::IDBObjectStore::get): Was missing deleted check in IDBKeyRange overload.
119603        Removed redundant checks in IDBKey overload.
119604        (WebCore::IDBObjectStore::deleteFunction): Delegate to IDBKeyRange overload.
119605        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Remove IDBKey overload.
119606        * Modules/indexeddb/IDBObjectStoreBackendImpl.h: Remove IDBKey overload.
119607        (IDBObjectStoreBackendImpl):
119608        * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Remove IDBKey overload.
119609
1196102012-06-20  Shinya Kawanaka  <shinyak@chromium.org>
119611
119612        [Shadow][Editing] Selection will break editing boundaries in Shadow DOM.
119613        https://bugs.webkit.org/show_bug.cgi?id=89075
119614
119615        Reviewed by Antti Koivisto.
119616
119617        At the shadow boundary, some styles (e.g. user-modify, text-decoration) cannot be inherited
119618        from the shadow host. However, when style property cache is used, such styles are wrongly
119619        inherited from the cache.
119620
119621        So this patch makes not to use cache for inehrited styles at the shadow boundary.
119622
119623        Tests: editing/shadow/breaking-editing-boundary-with-table.html
119624               editing/shadow/contenteditable-propagation-at-shadow-boundary.html
119625
119626        * css/StyleResolver.cpp:
119627        (WebCore::StyleResolver::collectMatchingRulesForList):
119628
1196292012-06-20  Garret Kelly  <gdk@chromium.org>
119630
119631        Moving cookieEnabled/setCookieEnabled from Page to Settings.
119632        https://bugs.webkit.org/show_bug.cgi?id=89545
119633
119634        Reviewed by Adam Barth.
119635
119636        * dom/Document.cpp:
119637        (WebCore::Document::cookie):
119638        (WebCore::Document::setCookie):
119639        * page/Navigator.cpp:
119640        (WebCore::Navigator::cookieEnabled):
119641        * page/Page.h:
119642        (Page):
119643        * page/Settings.cpp:
119644        (WebCore::Settings::Settings):
119645        * page/Settings.h:
119646        (WebCore::Settings::setCookieEnabled):
119647        (WebCore::Settings::cookieEnabled):
119648        (Settings):
119649        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
119650        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpCookiesForQuickTime):
119651
1196522012-06-20  Adam Barth  <abarth@webkit.org>
119653
119654        internals.settings.setDeviceScaleFactor doesn't work for WebKit2 and must be removed
119655        https://bugs.webkit.org/show_bug.cgi?id=89274
119656
119657        Reviewed by James Robinson.
119658
119659        Using this window.internals API causes the apple-mac port to ASSERT in
119660        WebKit2 because WebKit2 keeps a copy of this state in the UI process.
119661        When a test uses this internals API, the WebCore state gets out of sync
119662        with the state in the UI process.
119663
119664        Tests should use setBackingScaleFactor instead.
119665
119666        * testing/InternalSettings.cpp:
119667        (WebCore):
119668        * testing/InternalSettings.h:
119669        (InternalSettings):
119670        * testing/InternalSettings.idl:
119671
1196722012-06-20  Andrey Kosyakov  <caseq@chromium.org>
119673
119674        Web Inspector: persist timeline panel overview mode
119675        https://bugs.webkit.org/show_bug.cgi?id=88711
119676
119677        Reviewed by Pavel Feldman.
119678
119679        - replace all internal methods of switching to a new mode of TimelineOverviewPane with setMode();
119680        - make current mode a persistent setting;
119681
119682        * inspector/front-end/TimelineOverviewPane.js:
119683        (WebInspector.TimelineOverviewPane):
119684        (WebInspector.TimelineOverviewPane.prototype.setMode):
119685        * inspector/front-end/TimelinePanel.js:
119686        (WebInspector.TimelinePanel):
119687
1196882012-06-20  Brady Eidson  <beidson@apple.com>
119689
119690        <rdar://problem/11653784> and https://bugs.webkit.org/show_bug.cgi?id=89590
119691        showModalDialog message handling is flaky in WebKit2
119692
119693        Because RunLoop::performWork() swaps the function queue to a temporary Vector before calling
119694        the functions an inner run-loop - such as we see with running a modal dialog - does not have
119695        a change to handle any of the functions that were queued after the WebPageProxy::RunModal message.
119696
119697        By servicing the functions in the queue one at a time we can give the RunLoop a chance to pick up
119698        where it left off if RunLoop::performWork is re-entered.
119699
119700        To guarantee RunLoop::performWork is re-entered to handle those functions we also need to signal
119701        its source before entering the modal run loop so our RunLoop is woken up.
119702
119703        Reviewed by Darin Adler.
119704
119705        * WebCore.exp.in:
119706        * platform/RunLoop.cpp:
119707        (WebCore::RunLoop::performWork): Take the first function off the queue one at a time so subsequent
119708          functions remain in the queue and can be handled by an inner modal run loop.
119709        * platform/RunLoop.h:
119710        (RunLoop): Change the function queue to be a Deque to efficiently support "takeFirst" 
119711
1197122012-06-20  Varun Jain  <varunjain@chromium.org>
119713
119714        Account for device scale factor when creating image for dragging.
119715        https://bugs.webkit.org/show_bug.cgi?id=89489
119716
119717        Reviewed by Adam Barth.
119718
119719        Manual Test: ManualTests/chromium/drag-image-accounts-for-device-scale.html
119720
119721        * page/Frame.cpp:
119722        (WebCore::Frame::nodeImage):
119723        (WebCore::Frame::dragImageForSelection):
119724
1197252012-06-20  Jacky Jiang  <zhajiang@rim.com>
119726
119727        Add a != operator to ViewportArguments
119728        https://bugs.webkit.org/show_bug.cgi?id=87505
119729
119730        Reviewed by Antonio Gomes.
119731        Patch by Jacky Jiang  <zhajiang@rim.com>
119732
119733        Add a != operator to ViewportArguments for convenience.
119734
119735        * dom/ViewportArguments.h:
119736        (ViewportArguments):
119737        (WebCore::ViewportArguments::operator!=):
119738
1197392012-06-20  Ryosuke Niwa  <rniwa@webkit.org>
119740
119741        Let Xcode have its own way.
119742
119743        * WebCore.xcodeproj/project.pbxproj:
119744
1197452012-06-20  Ryosuke Niwa  <rniwa@webkit.org>
119746
119747        Move m_listsInvalidatedAtDocument from NodeListsNodeData to Document
119748        https://bugs.webkit.org/show_bug.cgi?id=89603
119749
119750        Reviewed by Andreas Kling.
119751
119752        Moved the variable. m_listsInvalidatedAtDocument is never used in non-Document nodes
119753        so it was just wasting memory space.
119754
119755        * dom/Document.cpp:
119756        (WebCore::Document::registerDynamicSubtreeNodeList):
119757        (WebCore::Document::unregisterDynamicSubtreeNodeList):
119758        (WebCore):
119759        (WebCore::Document::clearNodeListCaches):
119760        * dom/Document.h:
119761        (Document):
119762        * dom/DynamicNodeList.h:
119763        (DynamicSubtreeNodeList):
119764        * dom/Node.cpp:
119765        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
119766        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
119767        (WebCore):
119768        (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): RadioNodeList
119769        is invalidated at document level. No need to invalidate it again here.
119770        (WebCore::NodeListsNodeData::isEmpty):
119771        * dom/NodeRareData.h:
119772        (NodeListsNodeData):
119773
1197742012-06-20  Sheriff Bot  <webkit.review.bot@gmail.com>
119775
119776        Unreviewed, rolling out r120854.
119777        http://trac.webkit.org/changeset/120854
119778        https://bugs.webkit.org/show_bug.cgi?id=89604
119779
119780        Broke Chromium WebKit Linux (dbg) (Requested by arv on
119781        #webkit).
119782
119783        * Target.pri:
119784        * UseV8.cmake:
119785        * WebCore.gypi:
119786        * bindings/scripts/CodeGeneratorJS.pm:
119787        (GenerateHeader):
119788        (GenerateImplementation):
119789        * bindings/scripts/CodeGeneratorV8.pm:
119790        (GenerateHeader):
119791        (GenerateNamedConstructorCallback):
119792        (GenerateImplementation):
119793        * bindings/scripts/IDLAttributes.txt:
119794        * bindings/scripts/test/V8/V8Float64Array.cpp:
119795        (WebCore):
119796        * bindings/scripts/test/V8/V8Float64Array.h:
119797        (V8Float64Array):
119798        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
119799        (WebCore):
119800        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
119801        (V8TestActiveDOMObject):
119802        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
119803        (WebCore):
119804        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
119805        (V8TestCustomNamedGetter):
119806        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
119807        (WebCore):
119808        * bindings/scripts/test/V8/V8TestEventConstructor.h:
119809        (V8TestEventConstructor):
119810        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
119811        (WebCore):
119812        * bindings/scripts/test/V8/V8TestEventTarget.h:
119813        (V8TestEventTarget):
119814        * bindings/scripts/test/V8/V8TestException.cpp:
119815        (WebCore):
119816        * bindings/scripts/test/V8/V8TestException.h:
119817        (V8TestException):
119818        * bindings/scripts/test/V8/V8TestInterface.cpp:
119819        (WebCore):
119820        * bindings/scripts/test/V8/V8TestInterface.h:
119821        (V8TestInterface):
119822        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
119823        (WebCore):
119824        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
119825        (V8TestMediaQueryListListener):
119826        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
119827        (WebCore):
119828        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
119829        (V8TestNamedConstructor):
119830        * bindings/scripts/test/V8/V8TestNode.cpp:
119831        (WebCore):
119832        * bindings/scripts/test/V8/V8TestNode.h:
119833        (V8TestNode):
119834        * bindings/scripts/test/V8/V8TestObj.cpp:
119835        (WebCore):
119836        * bindings/scripts/test/V8/V8TestObj.h:
119837        (V8TestObj):
119838        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
119839        (WebCore):
119840        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
119841        (V8TestSerializedScriptValueInterface):
119842        * bindings/v8/NPV8Object.cpp:
119843        (WebCore::npObjectTypeInfo):
119844        * bindings/v8/V8GCController.cpp:
119845        (WebCore::GrouperVisitor::visitDOMWrapper):
119846        * bindings/v8/WrapperTypeInfo.h:
119847        (WebCore):
119848        (WrapperTypeInfo):
119849        * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
119850        (WebCore):
119851        (WebCore::toV8):
119852        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
119853        (WebCore::toV8):
119854        (WebCore):
119855        * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
119856        (WebCore):
119857        (WebCore::toV8):
119858        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
119859        (WebCore):
119860        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
119861        (WebCore::toV8):
119862        (WebCore):
119863        * bindings/v8/custom/V8StyleSheetCustom.cpp:
119864        (WebCore::toV8):
119865        * bindings/v8/custom/V8TextTrackListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
119866        (WebCore):
119867        (WebCore::toV8):
119868        * css/CSSStyleSheet.idl:
119869        * css/StyleSheet.idl:
119870        * dom/DOMStringMap.idl:
119871        * dom/NamedNodeMap.idl:
119872        * html/DOMTokenList.idl:
119873        * html/track/TextTrackList.idl:
119874
1198752012-06-20  Abhishek Arya  <inferno@chromium.org>
119876
119877        Crash on accessing a removed renderer from percent height descendant map.
119878        https://bugs.webkit.org/show_bug.cgi?id=88017
119879
119880        Reviewed by Eric Seidel.
119881
119882        Test: fast/block/percent-height-descendant-not-removed-crash2.html
119883
119884        * rendering/RenderBlock.cpp:
119885        (WebCore::RenderBlock::hasPercentHeightContainerMap): helper to tell
119886        if we have a height container map.
119887        (WebCore):
119888        (WebCore::RenderBlock::hasPercentHeightDescendant): change from a debug
119889        only function to a regular function for use. no need to null check
119890        for a percent height container map in this function.
119891        (WebCore::RenderBlock::clearPercentHeightDescendantsFrom): helper to
119892        clear all percent height descendants under us.
119893        (WebCore::RenderBlock::removePercentHeightDescendantIfNeeded): helper to
119894        clear the box if it exists in the percent height descendant map.
119895        * rendering/RenderBlock.h:
119896        (RenderBlock):
119897        * rendering/RenderBox.cpp:
119898        (WebCore::RenderBox::willBeDestroyed): remove the assert and change the
119899        percent height detection check to use removePercentHeightDescendantIfNeeded.
119900        We shouldn't rely on logicalHeight().isPercent() as it can change when our
119901        writing mode changes. Instead, just query the map directly to see if we exist.
119902        (WebCore::RenderBox::styleDidChange): when our writing mode changes from
119903        horizontal to vertical or vice versa, we clear all our descendants from
119904        the percent height descendant map. Cache the value of isHorizontalWritingMode()
119905        before it changes in styleDidChange and compare it with the new value
119906        (can't use oldStyle->isHorizontalWritingMode() since it can be inherited
119907        and already updated).
119908
1199092012-06-20  Julien Chaffraix  <jchaffraix@webkit.org>
119910
119911        REGRESSION(r113885): Margin not properly applied to elements with align=center
119912        https://bugs.webkit.org/show_bug.cgi?id=89515
119913
119914        Reviewed by Levi Weintraub.
119915
119916        Reviewed by Levi Weintraub.
119917
119918        Tests: fast/block/negative-margin-start-positive-margin-end.html
119919               fast/block/negative-start-margin-align-center.html
119920               fast/block/positive-margin-block-child-align-center-rtl.html
119921               fast/block/positive-margin-block-child-align-center.html
119922               fast/block/positive-margin-start-align-center.html
119923               fast/block/positive-margin-start-negative-margin-end-align-center.html
119924               fast/table/table-cell-negative-start-margin-align-center.html
119925
119926        r113885 changed the code-path for elements with auto width to call computeInlineDirectionMargins.
119927        However this uncovered an existing bug in the function when dealing with align="center" (text-align: -webkit-center)
119928        where we would ignore the margin. This goes against what other browsers are doing and our previous behavior.
119929
119930        Note that align="left" and "right" are likely impacted too and will be investigated / fixed in follow-up changes.
119931
119932        * rendering/RenderBox.cpp:
119933        (WebCore::RenderBox::computeInlineDirectionMargins):
119934        To match other browsers' behavior, changed the function to include margin in our computations.
119935
1199362012-06-19  James Robinson  <jamesr@chromium.org>
119937
119938        [chromium] Separate LayerRenderer initialization from updateLayers
119939        https://bugs.webkit.org/show_bug.cgi?id=89525
119940
119941        Reviewed by Adrienne Walker.
119942
119943        This adds an explicit call to initialize the layer renderer of a given CCLayerTreeHost instead of having it be
119944        implicit in updateLayers(). This way the proxies can control the initialization sequence more closely and do
119945        useful work between the two calls.
119946
119947        Refactor, no change in behavior. Covered by existing tests.
119948
119949        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
119950        (WebCore::CCLayerTreeHost::compositeAndReadback):
119951        (WebCore::CCLayerTreeHost::initializeLayerRendererIfNeeded):
119952        (WebCore):
119953        (WebCore::CCLayerTreeHost::updateLayers):
119954        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
119955        (CCLayerTreeHost):
119956        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
119957        (WebCore::CCSingleThreadProxy::commitAndComposite):
119958        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
119959        (WebCore::CCThreadProxy::compositeAndReadback):
119960        (WebCore::CCThreadProxy::beginFrame):
119961
1199622012-06-20  Yong Li  <yoli@rim.com>
119963
119964        SecurityOrigin::canDisplay() should return true when m_universalAccess is true
119965        https://bugs.webkit.org/show_bug.cgi?id=84865
119966
119967        Reviewed by Adam Barth.
119968
119969        Add an early return (true) in canDisplay() for if (m_universalAccess),
119970        as we did for canAccess() and canRequest().
119971
119972        No new tests. We should be good as long as this change doesn't break existing
119973        tests, which means the contents supposed to be blocked are still blocked when
119974        m_universalAccess is false.
119975
119976        * page/SecurityOrigin.cpp:
119977        (WebCore::SecurityOrigin::canDisplay):
119978
1199792012-06-20  Erik Arvidsson  <arv@chromium.org>
119980
119981        [V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
119982        https://bugs.webkit.org/show_bug.cgi?id=80880
119983
119984        Reviewed by Adam Barth.
119985
119986        We used to add a hidden property in the getter to the returned wrapper.
119987        With this patch we instead handle the liveness of the wrapper in the GC phase by
119988        calling v8::V8::AddHiddenReference.
119989
119990        To reduce the amount of custom code we need, the V8 code generator now supports
119991        GenerateIsReachable (as well as CustomIsReachable) which, even though different
119992        from the JSC attribute, is used in the same cases and takes the same values (even though
119993        at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
119994        also have a dependent life time (just like if V8DependentLifetime was present).
119995
119996        Retry. Last time we got ASAN issues on some Cromium Linux bots. 
119997
119998        No new tests. Covered by existing tests.
119999
120000        * Target.pri:
120001        * UseV8.cmake:
120002        * WebCore.gypi:
120003        * bindings/scripts/CodeGeneratorJS.pm:
120004        (GetGenerateIsReachable): Abstracted GenerateIsReachable and JSGenerateIsReachable.
120005        (GetCustomIsReachable): Ditto.
120006        (GenerateHeader):
120007        (GenerateImplementation):
120008        * bindings/scripts/CodeGeneratorV8.pm:
120009        (NeedsToVisitDOMWrapper):
120010        (GetGenerateIsReachable):
120011        (GetCustomIsReachable):
120012        (GenerateVisitDOMWrapper):
120013        (GenerateHeader):
120014        (GenerateNamedConstructorCallback):
120015        (GenerateImplementation):
120016        * bindings/scripts/IDLAttributes.txt:
120017        * bindings/scripts/test/V8/V8Float64Array.cpp:
120018        (WebCore):
120019        * bindings/scripts/test/V8/V8Float64Array.h:
120020        (V8Float64Array):
120021        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
120022        (WebCore):
120023        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
120024        (V8TestActiveDOMObject):
120025        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
120026        (WebCore):
120027        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
120028        (V8TestCustomNamedGetter):
120029        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
120030        (WebCore):
120031        * bindings/scripts/test/V8/V8TestEventConstructor.h:
120032        (V8TestEventConstructor):
120033        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
120034        (WebCore):
120035        * bindings/scripts/test/V8/V8TestEventTarget.h:
120036        (V8TestEventTarget):
120037        * bindings/scripts/test/V8/V8TestException.cpp:
120038        (WebCore):
120039        * bindings/scripts/test/V8/V8TestException.h:
120040        (V8TestException):
120041        * bindings/scripts/test/V8/V8TestInterface.cpp:
120042        (WebCore):
120043        * bindings/scripts/test/V8/V8TestInterface.h:
120044        (V8TestInterface):
120045        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
120046        (WebCore):
120047        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
120048        (V8TestMediaQueryListListener):
120049        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
120050        (WebCore):
120051        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
120052        (V8TestNamedConstructor):
120053        * bindings/scripts/test/V8/V8TestNode.cpp:
120054        (WebCore):
120055        * bindings/scripts/test/V8/V8TestNode.h:
120056        (V8TestNode):
120057        * bindings/scripts/test/V8/V8TestObj.cpp:
120058        (WebCore):
120059        * bindings/scripts/test/V8/V8TestObj.h:
120060        (V8TestObj):
120061        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
120062        (WebCore):
120063        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
120064        (V8TestSerializedScriptValueInterface):
120065        * bindings/v8/NPV8Object.cpp:
120066        (WebCore::npObjectTypeInfo):
120067        * bindings/v8/V8GCController.cpp:
120068        (WebCore::GrouperVisitor::visitDOMWrapper):
120069        * bindings/v8/WrapperTypeInfo.h:
120070        (WebCore):
120071        (WrapperTypeInfo):
120072        * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
120073        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
120074        * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
120075        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
120076        (WebCore):
120077        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
120078        * bindings/v8/custom/V8StyleSheetCustom.cpp:
120079        (WebCore::toV8):
120080        * bindings/v8/custom/V8TextTrackListCustom.cpp: Removed.
120081        * css/CSSStyleSheet.idl:
120082        * css/StyleSheet.idl:
120083        * dom/DOMStringMap.idl:
120084        * dom/NamedNodeMap.idl:
120085        * html/DOMTokenList.idl:
120086        * html/track/TextTrackList.idl:
120087
1200882012-06-20  Tony Chang  <tony@chromium.org>
120089
120090        Regression(r116408): Ctrl-A (select all) on large text file hangs the tab with high CPU usage
120091        https://bugs.webkit.org/show_bug.cgi?id=89562
120092
120093        Reviewed by Ryosuke Niwa.
120094
120095        Rather than replace the newlines in-place (in O(n^2)), build a new string using StringBuilder, which takes O(n).
120096
120097        No new tests, this is a perf improvement.
120098
120099        * platform/chromium/ClipboardUtilitiesChromium.cpp:
120100        (WebCore::replaceNewlinesWithWindowsStyleNewlines):
120101        * platform/win/ClipboardUtilitiesWin.cpp:
120102        (WebCore::replaceNewlinesWithWindowsStyleNewlines):
120103
1201042012-06-20  Elliott Sprehn  <esprehn@gmail.com>
120105
120106        Add support for fit-content etc
120107        https://bugs.webkit.org/show_bug.cgi?id=38919
120108
120109        Reviewed by Tony Chang.
120110
120111        Implement the CSS3 intrinsic dimension keywords for width properties and
120112        add most of the plumbing for height properties but don't expose them
120113        yet since this patch doesn't enforce them (matching current Gecko).
120114        http://dev.w3.org/csswg/css3-writing-modes/#intrinsic-sizing
120115
120116        This patch implements -webkit-min-content, -webkit-max-content,
120117        -webkit-fill-available and -webkit-fit-content for all width
120118        properties.
120119
120120        Tests: fast/css-intrinsic-dimensions/height-dynamic-property-value.html
120121               fast/css-intrinsic-dimensions/height-property-value.html
120122               fast/css-intrinsic-dimensions/max-width-constrained.html
120123               fast/css-intrinsic-dimensions/max-width-unconstrained.html
120124               fast/css-intrinsic-dimensions/min-width.html
120125               fast/css-intrinsic-dimensions/width-avoid-floats.html
120126               fast/css-intrinsic-dimensions/width-dynamic-property-value.html
120127               fast/css-intrinsic-dimensions/width-property-value.html
120128               fast/css-intrinsic-dimensions/width.html
120129
120130        * css/CSSParser.cpp: Add parser support for the new keywords.
120131        (WebCore::CSSParser::parseValue):
120132        * css/CSSPrimitiveValue.cpp:
120133        (WebCore):
120134        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
120135        * css/CSSValueKeywords.in:
120136        * css/LengthFunctions.cpp: Implement conversion functions.
120137        (WebCore::minimumValueForLength):
120138        (WebCore::valueForLength):
120139        (WebCore::floatValueForLength):
120140        * css/StyleBuilder.cpp:
120141        (WebCore::ApplyPropertyLength::applyValue):
120142        (WebCore::StyleBuilder::StyleBuilder): Clean up the template for old
120143           intrinsic values and add new values. Rename old intrinsic to
120144           LegacyIntrinsic and add support for the new dimension keywords as
120145           Intrinsic.
120146        * platform/Length.h:
120147        (WebCore::Length::isIntrinsicOrAuto):
120148        (WebCore::Length::isLegacyIntrinsic): New method to check for old
120149            min-intrinsic and intrinsic keywords.
120150        (WebCore::Length::isIntrinsic): New method to check for CSS3 intrinsic
120151            dimension keywords like min-content.
120152        * rendering/RenderBox.cpp:
120153        (WebCore::RenderBox::computeLogicalWidthInRegionUsing): Expose the max
120154           and min logical preferred widths as the new keywords.
120155        (WebCore::RenderBox::sizesLogicalWidthToFitContent): Renamed method to
120156           be more consistent with the new MinContent naming in the spec.
120157        * rendering/RenderBox.h:
120158        (RenderBox):
120159
1201602012-06-20  Christopher Cameron  <ccameron@chromium.org>
120161
120162        [chromium] webkit-backface-visibility doesn't work with video
120163        https://bugs.webkit.org/show_bug.cgi?id=88908
120164
120165        When determining a contents layer's backface culling, use the parent
120166        layer's transform and backface-visibility properties. Track which
120167        layers need this special treatment with useParentBackfaceVisibility
120168        and setUseParentBackfaceVisibility functions in WebCore::LayerChromium,
120169        WebKit::WebLayer, and WebCore::CCLayerImpl.
120170
120171        Reviewed by Adrienne Walker.
120172
120173        Tests: compositing/backface-visibility/backface-visibility-image.html
120174               compositing/backface-visibility/backface-visibility-webgl.html
120175
120176        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
120177        (WebCore::GraphicsLayerChromium::setupContentsLayer):
120178            When a contents layer is added, tag it as inheriting its backface
120179            culling from its parent.
120180        * platform/graphics/chromium/LayerChromium.cpp:
120181            (WebCore::LayerChromium::LayerChromium):
120182                Initialize new m_useParentBackfaceVisibility member variable.
120183            (WebCore::LayerChromium::pushPropertiesTo):
120184                Propagate m_useParentBackfaceVisibility to CCLayerImpl.
120185        * platform/graphics/chromium/LayerChromium.h:
120186            (WebCore::LayerChromium::setUseParentBackfaceVisibility):
120187            (WebCore::LayerChromium::useParentBackfaceVisibility):
120188            (LayerChromium):
120189                Add m_useParentBackfaceVisibility member variable and modify
120190                and query accessors.
120191        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
120192            (WebCore::CCLayerImpl::CCLayerImpl):
120193                Initialize new m_useParentBackfaceVisibility member variable.
120194        * platform/graphics/chromium/cc/CCLayerImpl.h:
120195            (WebCore::CCLayerImpl::setUseParentBackfaceVisibility):
120196            (WebCore::CCLayerImpl::useParentBackfaceVisibility):
120197            (CCLayerImpl):
120198                Add m_useParentBackfaceVisibility member variable and modify
120199                and query accessors.
120200        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
120201            (WebCore::layerShouldBeSkipped):
120202                When examining a layer, if the layer has 
120203                useParentBackfaceVisibility set then use the layer's parent
120204                layer to determine backface culling.
120205
1202062012-06-20  Nate Chapin  <japhet@chromium.org>
120207
120208        Don't re-enter CachedResource::removeClient() if an XHR
120209        is canceled and restarted multiple times.
120210        https://bugs.webkit.org/show_bug.cgi?id=89378
120211
120212        Reviewed by Eric Seidel.
120213
120214        Test: http/tests/xmlhttprequest/reentrant-cancel.html
120215
120216        * loader/DocumentThreadableLoader.cpp:
120217        (WebCore::DocumentThreadableLoader::cancel):
120218        (WebCore::DocumentThreadableLoader::clearResource): Save off a copy of m_resource
120219           then clear it, so we don't call clearResource() multiple times for the same resource.
120220
1202212012-06-20  Robert Hogan  <robert@webkit.org>
120222
120223        Negative margin block doesn't properly clear a float enclosed by a previous sibling
120224        https://bugs.webkit.org/show_bug.cgi?id=10900
120225
120226        Reviewed by Eric Seidel.
120227
120228        Tests: fast/block/float/previous-sibling-abspos-001.html
120229               fast/block/float/previous-sibling-abspos-002.html
120230               fast/block/float/previous-sibling-float-001.html
120231               fast/block/float/previous-sibling-float-002.html
120232               fast/css/clear-float-sibling.html
120233
120234        Parent blocks keep a list of child floats that extend out of the parent block and
120235        by implication overhang into the parent's siblings. But this doesn't work if the
120236        sibling has collapsing margins - it will not find the float in the previous block's
120237        list so will ignore the float and fail to clear it.
120238
120239        RenderBlock:collapseMargins() needs to check if a child's collapsing margin has 
120240        reduced the height of the parent up past the bottom of its previous sibling's lowest float
120241        and add the now overhanging float to the parent's float list if appropriate. No need to do
120242        this if the previous sibling is a float or is positioned - the child will clear/avoid it anyway
120243        and attempting to avoid floated children of floats causes incorrect layout.
120244        
120245        * rendering/RenderBlock.cpp:
120246        (WebCore::RenderBlock::collapseMargins):
120247
1202482012-06-20  Andrey Adaikin  <aandrey@chromium.org>
120249
120250        Web Inspector: Allow module injections into the InjectedScript
120251        https://bugs.webkit.org/show_bug.cgi?id=89530
120252
120253        Add a new InjectedScriptModule abstract class that inherits InjectedScriptBase
120254        to reuse implementation, and which javascript code is injected via
120255        InjectedScript.
120256
120257        Reviewed by Pavel Feldman.
120258
120259        * CMakeLists.txt:
120260        * GNUmakefile.list.am:
120261        * Target.pri:
120262        * WebCore.gypi:
120263        * WebCore.vcproj/WebCore.vcproj:
120264        * WebCore.xcodeproj/project.pbxproj:
120265        * bindings/js/ScriptObject.cpp:
120266        (WebCore::ScriptObject::ScriptObject):
120267        (WebCore):
120268        * bindings/js/ScriptObject.h:
120269        (ScriptObject):
120270        (WebCore::ScriptObject::ScriptObject):
120271        * bindings/v8/ScriptObject.cpp:
120272        (WebCore::ScriptObject::ScriptObject):
120273        (WebCore):
120274        * bindings/v8/ScriptObject.h:
120275        (ScriptObject):
120276        (WebCore::ScriptObject::~ScriptObject):
120277        * inspector/InjectedScript.cpp:
120278        * inspector/InjectedScript.h:
120279        (WebCore):
120280        (WebCore::InjectedScript::name):
120281        (InjectedScript):
120282        * inspector/InjectedScriptBase.cpp:
120283        (WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):
120284        * inspector/InjectedScriptBase.h:
120285        (WebCore):
120286        (InjectedScriptBase):
120287        * inspector/InjectedScriptManager.h:
120288        (InjectedScriptManager):
120289        (WebCore::InjectedScriptManager::inspectedStateAccessCheck):
120290        * inspector/InjectedScriptModule.cpp: Copied from Source/WebCore/inspector/InjectedScriptBase.h.
120291        (WebCore):
120292        (WebCore::InjectedScriptModule::InjectedScriptModule):
120293        (WebCore::InjectedScriptModule::ensureInjected):
120294        * inspector/InjectedScriptModule.h: Copied from Source/WebCore/bindings/js/ScriptObject.h.
120295        (WebCore):
120296        (InjectedScriptModule):
120297        * inspector/InjectedScriptSource.js:
120298        (.):
120299
1203002012-06-20  Pavel Feldman  <pfeldman@chromium.org>
120301
120302        Web Inspector: Timeline label bar jiggles when scrolling
120303        https://bugs.webkit.org/show_bug.cgi?id=89579
120304
120305        Reviewed by Vsevolod Vlasov.
120306
120307        Adding timeline header into the timeline panel and settings its position
120308        to absolute. Drive-by fix that updates rulers on sidebar resize.
120309
120310        * inspector/front-end/TimelineGrid.js:
120311        (WebInspector.TimelineGrid):
120312        (WebInspector.TimelineGrid.prototype.get gridHeaderElement):
120313        (WebInspector.TimelineGrid.prototype.addEventDividers):
120314        (WebInspector.TimelineGrid.prototype.setScrollAndDividerTop):
120315        * inspector/front-end/TimelineOverviewPane.js:
120316        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
120317        * inspector/front-end/TimelinePanel.js:
120318        (WebInspector.TimelinePanel):
120319        (WebInspector.TimelinePanel.prototype.sidebarResized):
120320        (WebInspector.TimelinePanel.prototype.onResize):
120321        * inspector/front-end/timelinePanel.css:
120322        (#timeline-grid-header):
120323
1203242012-06-20  Ian Vollick  <vollick@chromium.org>
120325
120326        [chromium] Make sure that render surfaces are not pixel doubled with a device scale factor of 2
120327        https://bugs.webkit.org/show_bug.cgi?id=86882
120328
120329        Reviewed by Adrienne Walker.
120330
120331        To ensure that render surfaces are not pixel doubled when device scale factor is
120332        two, the render surface's owning layer's draw transform is scaled by the
120333        contents scale (in the same way that the parent matrix is scaled by the device
120334        scale factor). The transformedLayerRect's dimensions also need to be in pixel
120335        space. The surface origin transform should not scale, but needs to offset the
120336        correct number of pixels, and the replica transforms need to be modified to
120337        account for the scaling.
120338
120339        To accomplish this, CCLayerImpl's needed to be made aware of contentsScale.
120340
120341        Thanks to Adrienne Walker for the computation of the replica draw transform.
120342
120343        Unit test: CCLayerTreeHostCommonTest.verifyRenderSurfaceTranformsInHighDPI
120344
120345        * platform/graphics/chromium/LayerChromium.cpp:
120346        (WebCore::LayerChromium::pushPropertiesTo):
120347        * platform/graphics/chromium/LayerChromium.h:
120348        (LayerChromium):
120349        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
120350        (WebCore::CCLayerImpl::CCLayerImpl):
120351        * platform/graphics/chromium/cc/CCLayerImpl.h:
120352        (WebCore::CCLayerImpl::setContentsScale):
120353        (WebCore::CCLayerImpl::contentsScale):
120354        (CCLayerImpl):
120355        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
120356        (WebCore::calculateDrawTransformsInternal):
120357        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
120358        (WebCore::CCScrollbarLayerImpl::CCScrollbar::totalSize):
120359
1203602012-06-20  Alexis Menard  <alexis.menard@openbossa.org>
120361
120362        [CSS3 Backgrounds and Borders] Implement box-decoration-break rendering.
120363        https://bugs.webkit.org/show_bug.cgi?id=88228
120364
120365        Reviewed by Eric Seidel.
120366
120367        Implement the new CSS property box-decoration-break. It modifies
120368        where we decide whether the borders needs to be sliced or not by
120369        checking if the box-decoration-break is set to clone. If it's the case
120370        then we need to explicitely redraw all edges.
120371
120372        Test: fast/box-decoration-break/box-decoration-break-rendering.html
120373
120374        * rendering/InlineFlowBox.cpp:
120375        (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
120376        (WebCore::InlineFlowBox::paintFillLayer):
120377
1203782012-06-20  Julien Chaffraix  <jchaffraix@webkit.org>
120379
120380        Use IntSize in RenderLayer to represent scroll offsets
120381        https://bugs.webkit.org/show_bug.cgi?id=89154
120382
120383        Reviewed by Eric Seidel.
120384
120385        Refactoring, covered by existing tests.
120386
120387        * accessibility/AccessibilityRenderObject.cpp:
120388        (WebCore::AccessibilityRenderObject::scrollTo):
120389        * html/TextFieldInputType.cpp:
120390        (WebCore::TextFieldInputType::forwardEvent):
120391        * page/SpatialNavigation.cpp:
120392        (WebCore::scrollInDirection):
120393        * rendering/RenderMarquee.cpp:
120394        (WebCore::RenderMarquee::start):
120395        Updated those call-sites to use the IntSize variant of the scrolling function.
120396
120397        * rendering/RenderLayer.cpp:
120398        (WebCore::RenderLayer::panScrollFromPoint):
120399        Updated the signature to use IntPoint to avoid an extra round-trip to LayoutPoint
120400        (furthermore touch points should be in device pixels).
120401
120402        (WebCore::RenderLayer::clampScrollOffset):
120403        Added this function that clamps a scroll offset to the box's size. This enables more
120404        code sharing between the different functions. Also removed a NULL-check that shouldn't
120405        be needed: scrolling is a RenderBox concept so any callers should ensure that we have
120406        a RenderBox or it makes no sense to try to scroll.
120407
120408        (WebCore::RenderLayer::updateLayerPosition):
120409        (WebCore::adjustedScrollDelta):
120410        (WebCore::RenderLayer::scrollByRecursively):
120411        (WebCore::RenderLayer::scrollToOffset):
120412        (WebCore::RenderLayer::scrollRectToVisible):
120413        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
120414        Updated to do IntSize arithmetic. Reuse clampScrollOffset when applicable.
120415
120416        * rendering/RenderLayer.h:
120417        (WebCore::RenderLayer::scrollToXOffset):
120418        (WebCore::RenderLayer::scrollToYOffset):
120419        Updated the functions to take IntSize as much as possible.
120420
1204212012-06-20  Alexei Filippov  <alexeif@chromium.org>
120422
120423        Web Inspector: mark used/allocated JS heap on the native memory bar chart.
120424        https://bugs.webkit.org/show_bug.cgi?id=89476
120425
120426        Reviewed by Yury Semikhatsky.
120427
120428        * inspector/front-end/NativeMemorySnapshotView.js:
120429        (WebInspector.NativeMemoryBarChart):
120430        (WebInspector.NativeMemoryBarChart.prototype._updateView):
120431        * inspector/front-end/nativeMemoryProfiler.css:
120432        (.memory-bar-chart-bar):
120433        (.memory-bar-chart-unused):
120434        (.memory-bar-chart-percent):
120435
1204362012-06-20  Joshua Bell  <jsbell@chromium.org>
120437
120438        [Chromium] IndexedDB: Don't close database if pending connections are in flight
120439        https://bugs.webkit.org/show_bug.cgi?id=89512
120440
120441        Add a counter tracking connections between the two phases, which is used along with
120442        the completed connection count to determine the total number of connections.
120443
120444        Reviewed by Tony Chang.
120445
120446        Test: webkit_unit_tests --gtest_filter='IDBDatabaseBackendTest.ConnectionLifecycle'
120447
120448        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
120449        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
120450        (WebCore::IDBDatabaseBackendImpl::setVersion):
120451        (WebCore::IDBDatabaseBackendImpl::connectionCount):
120452        (WebCore):
120453        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
120454        (WebCore::IDBDatabaseBackendImpl::transaction):
120455        (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
120456        (WebCore::IDBDatabaseBackendImpl::openConnection):
120457        (WebCore::IDBDatabaseBackendImpl::close):
120458        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
120459        (IDBDatabaseBackendImpl):
120460        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
120461        (WebCore::IDBFactoryBackendImpl::openInternal):
120462        * inspector/InspectorIndexedDBAgent.cpp:
120463        (WebCore):
120464
1204652012-06-20  Sergey Rogulenko  <rogulenko@google.com>
120466
120467        Web Inspector: duplicating selected text when Enter key is pressed 
120468        https://bugs.webkit.org/show_bug.cgi?id=89559
120469
120470        Reviewed by Pavel Feldman.
120471
120472        * inspector/front-end/TextViewer.js:
120473        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
120474        The returned result of method normalize() should be used.
120475
1204762012-06-20  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
120477
120478        [Cairo] Fix memory leak in GraphicsContext3DCairo.cpp
120479        https://bugs.webkit.org/show_bug.cgi?id=89561
120480
120481        Reviewed by Martin Robinson.
120482
120483        Fix a memory leak in GraphicsContext3D::getImageData().
120484
120485        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
120486        (WebCore::GraphicsContext3D::getImageData): asNewNativeImage() returns a
120487        caller-owned pointer to the native image data. So, using OwnPtr to manage
120488        memory automatically.
120489
1204902012-06-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
120491
120492        Use HitTestPoint instead of LayoutPoint for nodeAtPoint.
120493        https://bugs.webkit.org/show_bug.cgi?id=89448
120494
120495        Reviewed by Eric Seidel.
120496
120497        This patch updates the API of nodeAtPoint without changing any 
120498        functionality. This is largest change necessary to support
120499        transforms in area-based hit-testing, but is only boilerplate.
120500
120501        No change in functionality. No new tests. 
120502
120503        * rendering/EllipsisBox.cpp:
120504        (WebCore::EllipsisBox::nodeAtPoint):
120505        * rendering/EllipsisBox.h:
120506        (EllipsisBox):
120507        * rendering/HitTestResult.cpp:
120508        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
120509        * rendering/HitTestResult.h:
120510        (WebCore::HitTestPoint::intersects):
120511        (HitTestPoint):
120512        (HitTestResult):
120513        * rendering/InlineBox.cpp:
120514        (WebCore::InlineBox::nodeAtPoint):
120515        * rendering/InlineBox.h:
120516        (InlineBox):
120517        * rendering/InlineFlowBox.cpp:
120518        (WebCore::InlineFlowBox::nodeAtPoint):
120519        * rendering/InlineFlowBox.h:
120520        (InlineFlowBox):
120521        * rendering/InlineTextBox.cpp:
120522        (WebCore::InlineTextBox::nodeAtPoint):
120523        * rendering/InlineTextBox.h:
120524        (InlineTextBox):
120525        * rendering/RenderBlock.cpp:
120526        (WebCore::RenderBlock::nodeAtPoint):
120527        (WebCore::RenderBlock::hitTestFloats):
120528        (WebCore::RenderBlock::hitTestColumns):
120529        (WebCore::RenderBlock::hitTestContents):
120530        * rendering/RenderBlock.h:
120531        (RenderBlock):
120532        * rendering/RenderBox.cpp:
120533        (WebCore::RenderBox::nodeAtPoint):
120534        * rendering/RenderBox.h:
120535        (RenderBox):
120536        * rendering/RenderEmbeddedObject.cpp:
120537        (WebCore::RenderEmbeddedObject::nodeAtPoint):
120538        * rendering/RenderEmbeddedObject.h:
120539        (RenderEmbeddedObject):
120540        * rendering/RenderFlowThread.cpp:
120541        (WebCore::RenderFlowThread::hitTestRegion):
120542        * rendering/RenderFlowThread.h:
120543        * rendering/RenderFrameSet.cpp:
120544        (WebCore::RenderFrameSet::nodeAtPoint):
120545        * rendering/RenderFrameSet.h:
120546        (RenderFrameSet):
120547        * rendering/RenderImage.cpp:
120548        (WebCore::RenderImage::nodeAtPoint):
120549        * rendering/RenderImage.h:
120550        (RenderImage):
120551        * rendering/RenderInline.cpp:
120552        (WebCore::RenderInline::nodeAtPoint):
120553        * rendering/RenderInline.h:
120554        (RenderInline):
120555        * rendering/RenderLayer.cpp:
120556        (WebCore::ClipRect::intersects):
120557        (WebCore::RenderLayer::hitTest):
120558        (WebCore::RenderLayer::createLocalTransformState):
120559        (WebCore::RenderLayer::hitTestLayer):
120560        (WebCore::RenderLayer::hitTestContents):
120561        (WebCore::RenderLayer::hitTestList):
120562        (WebCore::RenderLayer::hitTestPaginatedChildLayer):
120563        (WebCore::RenderLayer::hitTestChildLayerColumns):
120564        * rendering/RenderLayer.h:
120565        (ClipRect):
120566        (RenderLayer):
120567        * rendering/RenderLineBoxList.cpp:
120568        (WebCore::RenderLineBoxList::hitTest):
120569        * rendering/RenderLineBoxList.h:
120570        (RenderLineBoxList):
120571        * rendering/RenderListBox.cpp:
120572        (WebCore::RenderListBox::nodeAtPoint):
120573        * rendering/RenderListBox.h:
120574        (RenderListBox):
120575        * rendering/RenderObject.cpp:
120576        (WebCore::RenderObject::hitTest):
120577        (WebCore::RenderObject::nodeAtPoint):
120578        * rendering/RenderObject.h:
120579        (RenderObject):
120580        * rendering/RenderRegion.cpp:
120581        (WebCore::RenderRegion::nodeAtPoint):
120582        * rendering/RenderRegion.h:
120583        (RenderRegion):
120584        * rendering/RenderTable.cpp:
120585        (WebCore::RenderTable::nodeAtPoint):
120586        * rendering/RenderTable.h:
120587        (RenderTable):
120588        * rendering/RenderTableRow.cpp:
120589        (WebCore::RenderTableRow::nodeAtPoint):
120590        * rendering/RenderTableRow.h:
120591        (RenderTableRow):
120592        * rendering/RenderTableSection.cpp:
120593        (WebCore::RenderTableSection::nodeAtPoint):
120594        * rendering/RenderTableSection.h:
120595        (RenderTableSection):
120596        * rendering/RenderText.h:
120597        * rendering/RenderTextControlMultiLine.cpp:
120598        (WebCore::RenderTextControlMultiLine::nodeAtPoint):
120599        * rendering/RenderTextControlMultiLine.h:
120600        (RenderTextControlMultiLine):
120601        * rendering/RenderTextControlSingleLine.cpp:
120602        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
120603        * rendering/RenderTextControlSingleLine.h:
120604        (RenderTextControlSingleLine):
120605        * rendering/RenderWidget.cpp:
120606        (WebCore::RenderWidget::nodeAtPoint):
120607        * rendering/RenderWidget.h:
120608        (RenderWidget):
120609        * rendering/RootInlineBox.cpp:
120610        (WebCore::RootInlineBox::nodeAtPoint):
120611        * rendering/RootInlineBox.h:
120612        (RootInlineBox):
120613        * rendering/svg/RenderSVGForeignObject.cpp:
120614        (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
120615        (WebCore::RenderSVGForeignObject::nodeAtPoint):
120616        * rendering/svg/RenderSVGForeignObject.h:
120617        (RenderSVGForeignObject):
120618        * rendering/svg/RenderSVGModelObject.cpp:
120619        (WebCore::RenderSVGModelObject::nodeAtPoint):
120620        * rendering/svg/RenderSVGModelObject.h:
120621        (RenderSVGModelObject):
120622        * rendering/svg/RenderSVGRoot.cpp:
120623        (WebCore::RenderSVGRoot::nodeAtPoint):
120624        * rendering/svg/RenderSVGRoot.h:
120625        (RenderSVGRoot):
120626        * rendering/svg/RenderSVGText.cpp:
120627        (WebCore::RenderSVGText::nodeAtFloatPoint):
120628        (WebCore::RenderSVGText::nodeAtPoint):
120629        * rendering/svg/RenderSVGText.h:
120630        (RenderSVGText):
120631        * rendering/svg/SVGInlineTextBox.cpp:
120632        (WebCore::SVGInlineTextBox::nodeAtPoint):
120633        * rendering/svg/SVGInlineTextBox.h:
120634        (SVGInlineTextBox):
120635
1206362012-06-20  Yury Semikhatsky  <yurys@chromium.org>
120637
120638        Web Inspector: don't report context ids before DidCommitLoad
120639        https://bugs.webkit.org/show_bug.cgi?id=89567
120640
120641        Reviewed by Pavel Feldman.
120642
120643        When inspector state is restored only report existing context ids
120644        if "did commit load" even has already been dispatched.
120645
120646        * inspector/InspectorController.cpp:
120647        (WebCore::InspectorController::InspectorController):
120648        * inspector/PageRuntimeAgent.cpp:
120649        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
120650        (WebCore::PageRuntimeAgent::restore):
120651        * inspector/PageRuntimeAgent.h:
120652        (WebCore):
120653        (WebCore::PageRuntimeAgent::create):
120654        (PageRuntimeAgent):
120655
1206562012-06-20  Zeev Lieber  <zlieber@chromium.org>
120657
120658        [Chromium] Remove redundant #includes in compositor
120659        https://bugs.webkit.org/show_bug.cgi?id=89503
120660
120661        Reviewed by Adrienne Walker.
120662
120663        Removed some redundant #includes to clarify dependency
120664        picture. Some 90 #includes removed, some 50 less disruptive
120665        #includes added. This brings the number of class dependencies to
120666        902 from 1383.
120667
120668        No new tests are required, as this is only affects compile-time behavior.
120669
120670        * platform/graphics/chromium/AnimationTranslationUtil.h:
120671        (WebCore):
120672        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
120673        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
120674        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
120675        * platform/graphics/chromium/Canvas2DLayerBridge.h:
120676        * platform/graphics/chromium/ContentLayerChromium.cpp:
120677        * platform/graphics/chromium/ContentLayerChromium.h:
120678        * platform/graphics/chromium/DrawingBufferChromium.cpp:
120679        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
120680        * platform/graphics/chromium/GraphicsLayerChromium.h:
120681        * platform/graphics/chromium/ImageLayerChromium.cpp:
120682        * platform/graphics/chromium/LayerChromium.h:
120683        * platform/graphics/chromium/LayerRendererChromium.cpp:
120684        * platform/graphics/chromium/LayerRendererChromium.h:
120685        (WebCore):
120686        * platform/graphics/chromium/LayerTextureUpdater.h:
120687        * platform/graphics/chromium/ManagedTexture.cpp:
120688        * platform/graphics/chromium/ProgramBinding.h:
120689        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
120690        * platform/graphics/chromium/RenderSurfaceChromium.h:
120691        * platform/graphics/chromium/TextureCopier.cpp:
120692        * platform/graphics/chromium/TextureLayerChromium.cpp:
120693        * platform/graphics/chromium/TextureManager.cpp:
120694        * platform/graphics/chromium/TiledLayerChromium.cpp:
120695        * platform/graphics/chromium/TiledLayerChromium.h:
120696        * platform/graphics/chromium/cc/CCActiveAnimation.h:
120697        (WebCore):
120698        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
120699        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
120700        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
120701        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
120702        * platform/graphics/chromium/cc/CCFrameRateController.h:
120703        (WebCore):
120704        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
120705        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
120706        (WebCore):
120707        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
120708        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
120709        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
120710        * platform/graphics/chromium/cc/CCLayerImpl.h:
120711        (WebCore):
120712        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
120713        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
120714        (WebCore):
120715        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
120716        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
120717        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
120718        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
120719        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
120720        (WebCore):
120721        * platform/graphics/chromium/cc/CCProxy.cpp:
120722        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
120723        * platform/graphics/chromium/cc/CCRenderPass.h:
120724        (WebCore):
120725        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
120726        * platform/graphics/chromium/cc/CCRenderSurface.h:
120727        * platform/graphics/chromium/cc/CCRenderer.h:
120728        * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
120729        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
120730        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
120731        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
120732        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
120733        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
120734        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
120735        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
120736        * platform/graphics/chromium/cc/CCThreadProxy.h:
120737        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
120738        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
120739        (WebCore):
120740        * platform/graphics/chromium/cc/CCTimer.cpp:
120741        * platform/graphics/chromium/cc/CCTimer.h:
120742        (WebCore):
120743        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
120744
1207452012-06-20  Alexei Filippov  <alexeif@chromium.org>
120746
120747        Web Inspector: Implement native memory bar diagram
120748        https://bugs.webkit.org/show_bug.cgi?id=89106
120749
120750        Reviewed by Yury Semikhatsky.
120751
120752        * inspector/front-end/NativeMemorySnapshotView.js:
120753        (WebInspector.NativeMemoryBarChart):
120754        (WebInspector.NativeMemoryBarChart.prototype._updateStats):
120755        (WebInspector.NativeMemoryBarChart.prototype.willHide):
120756        (WebInspector.NativeMemoryBarChart.prototype.wasShown):
120757        (WebInspector.NativeMemoryBarChart.prototype._updateView):
120758        * inspector/front-end/ProfileLauncherView.js:
120759        (WebInspector.ProfileLauncherView):
120760        * inspector/front-end/Settings.js:
120761        (WebInspector.ExperimentsSettings):
120762        * inspector/front-end/nativeMemoryProfiler.css:
120763        (.memory-bar-chart-name):
120764        (.memory-bar-chart-bar):
120765        (.memory-bar-chart-size):
120766        (.memory-bar-chart-total):
120767
1207682012-06-20  Hans Wennborg  <hans@chromium.org>
120769
120770        Speech JavaScript API: add SpeechRecognition.maxAlternatives attribute
120771        https://bugs.webkit.org/show_bug.cgi?id=89459
120772
120773        Reviewed by Eric Seidel.
120774
120775        Add the SpeechRecognition.maxAlternatives attribute.
120776
120777        Test: fast/speech/scripted/basics.html:
120778
120779        * Modules/speech/SpeechRecognition.cpp:
120780        (WebCore::SpeechRecognition::start):
120781        (WebCore::SpeechRecognition::SpeechRecognition):
120782        * Modules/speech/SpeechRecognition.h:
120783        (WebCore::SpeechRecognition::maxAlternatives):
120784        (WebCore::SpeechRecognition::setMaxAlternatives):
120785        (SpeechRecognition):
120786        * Modules/speech/SpeechRecognition.idl:
120787        * Modules/speech/SpeechRecognitionClient.h:
120788        (SpeechRecognitionClient):
120789        * Modules/speech/SpeechRecognitionController.h:
120790        (WebCore::SpeechRecognitionController::start):
120791        (SpeechRecognitionController):
120792
1207932012-06-20  Takashi Sakamoto  <tasak@google.com>
120794
120795        applyAuthorStyles makes rules declared in all enclosing shadow dom subtrees applicable.
120796        https://bugs.webkit.org/show_bug.cgi?id=89061
120797
120798        Reviewed by Dimitri Glazkov.
120799
120800        Fixing apply-author-styles bug. If there exists some shadow subtree A
120801        and A has apply-author-styles flag set, whether some rules declared in
120802        a tree B is applicable in A or not depends on:
120803        - the tree B encloses the tree A, and
120804        - all trees which enclose A and are enclosed by B has
120805          apply-author-styles set.
120806        c.f.
120807        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
120808        However the second rule was not implemented.
120809
120810        Test: fast/css/style-scoped/style-scoped-apply-author-styles.html
120811
120812        * css/StyleResolver.cpp:
120813        (WebCore::StyleResolver::setupScopeStack):
120814        Modified to add a new member variable, authorStyleBoundsIndex to
120815        ScopeStackFrame used by m_scopeStack. The index means: if shadow dom
120816        subtree A and B has the same value and A encloses B, all shadow dom
120817        subtrees which enclose B and are enclosed by B have
120818        apply-author-styles set. And B also has apply-author-styles set.
120819        This means, if some element X has authorStyleBoundsIndex N, all
120820        rulesets whose scopes have authorStyleBoundsIndex N are applicable in
120821        B's tree scope. If all shadow dom subtrees have apply-author-styles
120822        unset, the index looks almost the same as treeScope(). In this case,
120823        Rules in different tree scopes have different author style bounds
120824        index.
120825        (WebCore::StyleResolver::pushScope):
120826        (WebCore::StyleResolver::popScope):
120827        Added the code for updating m_scopeStackParentBoundsIndex. The member
120828        variable keeps m_scopeStackParent's author style bounds index.
120829        (WebCore::StyleResolver::matchScopedAuthorRules):
120830        Modified to consider author style's bounds index. Firstly applying
120831        scoped styles declared in document if apply-author-styles is set.
120832        Next, applying scoped styles declared in shadow dom subtree with
120833        considering author style bounds index, i.e. considering
120834        apply-author-styles flag.
120835        * css/StyleResolver.h:
120836        (WebCore::StyleResolver::ScopeStackFrame::ScopeStackFrame):
120837        (ScopeStackFrame):
120838        Added m_authorStyleBoundsIndex to keep apply-author-styles flag
120839        information. m_authorStyleBoundsIndex increments by 1 if shadow root is
120840        given and it has apply-author-styles unset.
120841        Now rules in the same authorStyleBoundsIndex should be applied.
120842        (StyleResolver):
120843        Added m_scopeStackParentBoundsIndex.
120844        As m_scopeStackParentAuthorStyleBoundsIndex is a little long,
120845        used m_scopeStackParentBoundsIndex.
120846
1208472012-06-20  Amy Ousterhout  <aousterh@chromium.org>
120848
120849        Adds DeviceMotionClientMock
120850        https://bugs.webkit.org/show_bug.cgi?id=89220
120851
120852        Reviewed by Steve Block.
120853
120854        No new tests because DeviceMotionClientMock is designed to enable future testing and cannot be tested in itself.
120855
120856        Adds DeviceMotionClientMock in WebCore to enable testing of DeviceMotion once it is fully implemented in WebKit.
120857        This addition was originally included in https://bugs.webkit.org/show_bug.cgi?id=89197 but was split into a separate patch for easier review.
120858
120859        * CMakeLists.txt:
120860        * GNUmakefile.list.am:
120861        * Target.pri:
120862        * WebCore.gypi:
120863        * platform/mock/DeviceMotionClientMock.cpp: Added.
120864        (WebCore):
120865        (WebCore::DeviceMotionClientMock::DeviceMotionClientMock):
120866        (WebCore::DeviceMotionClientMock::setController):
120867        (WebCore::DeviceMotionClientMock::startUpdating):
120868        (WebCore::DeviceMotionClientMock::stopUpdating):
120869        (WebCore::DeviceMotionClientMock::setMotion):
120870        (WebCore::DeviceMotionClientMock::timerFired):
120871        * platform/mock/DeviceMotionClientMock.h: Added.
120872        (WebCore):
120873        (DeviceMotionClientMock):
120874
1208752012-06-19  Vivek Galatage  <vivekgalatage@gmail.com>
120876
120877        Web Inspector: Clicking "Clear all profiles" while ongoing recording should reset the ProfileLauncherView
120878        https://bugs.webkit.org/show_bug.cgi?id=89464
120879
120880        Reviewed by Yury Semikhatsky.
120881
120882        Resetting the ProfileLauncherView in order to reflect the correct states of buttons
120883
120884        No new tests as UI related minor fix.
120885
120886        * inspector/front-end/ProfilesPanel.js:
120887        (WebInspector.ProfilesPanel.prototype._reset):
120888
1208892012-06-19  Hayato Ito  <hayato@chromium.org>
120890
120891        Assertion for event's target is wrong.
120892        https://bugs.webkit.org/show_bug.cgi?id=89479
120893
120894        Reviewed by Hajime Morita.
120895
120896        Fix an assertion to ensure that event's target is reachable from a current target.
120897
120898        No new tests. Fix an assert condition.
120899
120900        * dom/EventContext.cpp:
120901        (WebCore::EventContext::EventContext):
120902        * dom/EventContext.h:
120903        (EventContext):
120904        (WebCore::EventContext::setRelatedTarget):
120905        (WebCore::EventContext::isUnreachableNode):
120906        (WebCore):
120907        (WebCore::EventContext::isReachable):
120908
1209092012-06-19  Benjamin Poulain  <bpoulain@apple.com>
120910
120911        Refactoring: Geolocation::startRequest() should not create the GeoNotifiers
120912        https://bugs.webkit.org/show_bug.cgi?id=89533
120913
120914        Reviewed by David Kilzer.
120915
120916        It was odd to create the GeoNotifiers in Geolocation::startRequest() and having
120917        assertions from the call site.
120918
120919        This patch move GeoNotifiers initialization to the exposed methods and pass them to
120920        startRequest() as needed.
120921        This will also help when adding support for dynamic permission reset and suspend/resume.
120922
120923        * Modules/geolocation/Geolocation.cpp:
120924        (WebCore::Geolocation::getCurrentPosition):
120925        (WebCore::Geolocation::watchPosition):
120926        (WebCore::Geolocation::startRequest):
120927        * Modules/geolocation/Geolocation.h:
120928        (Geolocation):
120929
1209302012-06-19  Cris Neckar  <cdn@chromium.org>
120931
120932        Fixes condition where inserting a CounterNode subtree which could result in incorrect placement.
120933        https://bugs.webkit.org/show_bug.cgi?id=88142
120934
120935        Reviewed by Adam Barth.
120936
120937        Test: fast/css/counters/counter-reset-subtree-insert-crash.html
120938
120939        * rendering/CounterNode.cpp:
120940        (WebCore::CounterNode::insertAfter):
120941
1209422012-06-19  Csaba Osztrogonác  <ossy@webkit.org>
120943
120944        [Qt] Unreviewed buildfix after r120790. Typo fix.
120945
120946        * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
120947        (ImageGStreamer::ImageGStreamer):
120948
1209492012-06-19  Takashi Sakamoto  <tasak@google.com>
120950
120951        [Shadow DOM] ShadowRoot.host should be gone
120952        https://bugs.webkit.org/show_bug.cgi?id=88387
120953
120954        According to the w3c spec change,
120955        i.e. https://www.w3.org/Bugs/Public/show_bug.cgi?id=16764
120956        Removed host attribute from ShadowRoot.idl.
120957
120958        Reviewed by Dimitri Glazkov.
120959
120960        No new tests, because this change modified only idl.
120961
120962        * dom/ShadowRoot.idl:
120963        Just removed host attribute.
120964
1209652012-06-19  Adam Klein  <adamk@chromium.org>
120966
120967        Pass ScriptValue by const ref where possible
120968        https://bugs.webkit.org/show_bug.cgi?id=89531
120969
120970        Reviewed by Kentaro Hara.
120971
120972        Previously ScriptValue was sometimes passed by value, sometimes by const ref.
120973
120974        For consistency and optimality, pass by const ref everywhere (except where
120975        ScriptValue is returned from non-accessor methods).
120976
120977        No new tests, no change in behavior.
120978
120979        * bindings/js/ScriptFunctionCall.h:
120980        (ScriptCallback):
120981        * bindings/js/ScriptProfiler.cpp:
120982        (WebCore::ScriptProfiler::getHeapObjectId):
120983        * bindings/js/ScriptProfiler.h:
120984        (ScriptProfiler):
120985        * bindings/js/WorkerScriptController.cpp:
120986        (WebCore::WorkerScriptController::setException):
120987        * bindings/js/WorkerScriptController.h:
120988        (WorkerScriptController):
120989        * bindings/v8/ScriptFunctionCall.cpp:
120990        (WebCore::ScriptCallback::ScriptCallback):
120991        * bindings/v8/ScriptFunctionCall.h:
120992        (ScriptCallback):
120993        * bindings/v8/ScriptProfiler.cpp:
120994        (WebCore::ScriptProfiler::getHeapObjectId):
120995        (WebCore):
120996        * bindings/v8/ScriptProfiler.h:
120997        (ScriptProfiler):
120998        * bindings/v8/ScriptValue.h:
120999        (WebCore::ScriptValue::operator==):
121000        (WebCore::ScriptValue::operator!=):
121001        * bindings/v8/WorkerScriptController.cpp:
121002        (WebCore::WorkerScriptController::setException):
121003        * bindings/v8/WorkerScriptController.h:
121004        (WorkerScriptController):
121005        * css/MediaQueryListListener.h:
121006        (WebCore::MediaQueryListListener::create):
121007        (WebCore::MediaQueryListListener::MediaQueryListListener):
121008        * dom/CustomEvent.cpp:
121009        (WebCore::CustomEvent::initCustomEvent):
121010        * dom/CustomEvent.h:
121011        (CustomEvent):
121012        (WebCore::CustomEvent::detail):
121013        * dom/MessageEvent.h:
121014        (WebCore::MessageEvent::dataAsScriptValue):
121015        * dom/PopStateEvent.h:
121016        (WebCore::PopStateEvent::state):
121017        * inspector/InjectedScript.cpp:
121018        (WebCore::InjectedScript::wrapObject):
121019        * inspector/InjectedScript.h:
121020        (InjectedScript):
121021
1210222012-06-18  Philippe Normand  <pnormand@igalia.com>
121023
121024        [GStreamer] 0.11 video-sink
121025        https://bugs.webkit.org/show_bug.cgi?id=77087
121026
121027        Reviewed by Martin Robinson.
121028
121029        Port the video sink to GStreamer 0.11 APIs. There is no change in
121030        functionality compared to 0.10, for now.
121031
121032        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
121033        (webkitGetVideoSizeAndFormatFromCaps):
121034        (webkitGstCreateBuffer):
121035        * platform/graphics/gstreamer/GStreamerVersioning.h:
121036        (WebCore):
121037        * platform/graphics/gstreamer/ImageGStreamer.h:
121038        (WebCore::ImageGStreamer::createImage):
121039        (WebCore::ImageGStreamer::setCropRect):
121040        (WebCore::ImageGStreamer::rect):
121041        (ImageGStreamer):
121042        * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
121043        (ImageGStreamer::ImageGStreamer):
121044        * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
121045        (ImageGStreamer::ImageGStreamer):
121046        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
121047        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
121048        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
121049        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
121050        (_WebKitVideoSinkPrivate):
121051        (webkitVideoSinkRender):
121052        (webkitVideoSinkProposeAllocation):
121053        (webkit_video_sink_class_init):
121054        * platform/graphics/gstreamer/VideoSinkGStreamer.h:
121055        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
121056
1210572012-06-19  Tony Payne  <tpayne@chromium.org>
121058
121059        Add monitor profile support for Win
121060        https://bugs.webkit.org/show_bug.cgi?id=88565
121061
121062        Reviewed by Eric Seidel.
121063
121064        Tests: fast/images/jpeg-with-color-profile.html
121065        fast/images/png-with-color-profile.html. Also covered by numerous
121066        layout tests.
121067
121068        * WebCore.gyp/WebCore.gyp:
121069        * platform/PlatformScreen.h:
121070        (WebCore):
121071        * platform/blackberry/PlatformScreenBlackBerry.cpp:
121072        (WebCore::screenColorProfile):
121073        (WebCore):
121074        * platform/chromium/PlatformScreenChromium.cpp:
121075        (WebCore::screenColorProfile):
121076        (WebCore):
121077        * platform/efl/PlatformScreenEfl.cpp:
121078        (WebCore::screenColorProfile):
121079        (WebCore):
121080        * platform/gtk/PlatformScreenGtk.cpp:
121081        (WebCore::screenColorProfile):
121082        (WebCore):
121083        * platform/image-decoders/ImageDecoder.h:
121084        (ImageFrame):
121085        (ImageDecoder):
121086        (WebCore::ImageDecoder::qcmsOutputDeviceProfile):
121087        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
121088        (turboSwizzled):
121089        (colorSpaceHasAlpha):
121090
1210912012-06-19  Erik Arvidsson  <arv@chromium.org>
121092
121093        [V8] Fix issue where a callback got a null calling context
121094        https://bugs.webkit.org/show_bug.cgi?id=89532
121095
121096        Reviewed by Kentaro Hara.
121097
121098        Test: fast/dom/Window/post-message-crash.html
121099
121100        * bindings/v8/custom/V8DOMWindowCustom.cpp:
121101        (WebCore::handlePostMessageCallback): Check the calling context and throw a type error (like JSC) if it is null.
121102
1211032012-06-19  Tony Chang  <tony@chromium.org>
121104
121105        Refactor RenderFlexibleBox terminology to use grow/shrink instead of positive/negative
121106        https://bugs.webkit.org/show_bug.cgi?id=89493
121107
121108        Reviewed by Eric Seidel.
121109
121110        The spec stopped referring to positive and negative flex and now
121111        talks about flex grow and flex shrink. Also, the preferred size is
121112        now known as the flex basis. Make the code match the terms used in
121113        the spec. http://dev.w3.org/csswg/css3-flexbox/
121114
121115        This will also make it easier to split flex into long hand notation
121116        (flex-grow, flex-shrink and flex-basis).
121117
121118        No new tests, covered by existing tests.
121119
121120        * css/CSSComputedStyleDeclaration.cpp:
121121        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
121122        * css/StyleBuilder.cpp:
121123        (WebCore::ApplyPropertyFlex::applyInheritValue):
121124        (WebCore::ApplyPropertyFlex::applyInitialValue):
121125        (WebCore::ApplyPropertyFlex::applyValue):
121126        * page/animation/CSSPropertyAnimation.cpp:
121127        (WebCore::PropertyWrapperFlex::equals):
121128        (WebCore::PropertyWrapperFlex::blend):
121129        * rendering/RenderFlexibleBox.cpp:
121130        (WebCore::RenderFlexibleBox::flexBasisForChild):
121131        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
121132        (WebCore::RenderFlexibleBox::layoutFlexItems):
121133        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
121134        (WebCore::RenderFlexibleBox::computeNextFlexLine):
121135        (WebCore::RenderFlexibleBox::freezeViolations):
121136        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
121137        * rendering/RenderFlexibleBox.h:
121138        * rendering/style/RenderStyle.h:
121139        * rendering/style/StyleFlexibleBoxData.cpp:
121140        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
121141        (WebCore::StyleFlexibleBoxData::operator==):
121142        * rendering/style/StyleFlexibleBoxData.h:
121143        (StyleFlexibleBoxData):
121144
1211452012-06-19  Steve VanDeBogart  <vandebo@chromium.org>
121146
121147        Make DOMFileSystem selectively structure clonable so it can be the body of a web intent.
121148        https://bugs.webkit.org/show_bug.cgi?id=88267
121149
121150        Reviewed by David Levin.
121151
121152        This functionality will allow FileSystem API objects to be dispatched to
121153        web content in order to enable, for instance, an intent notifying web
121154        content that a particular filesystem has been mounted by the local
121155        system. The goal at this point is not to enable across-the-board
121156        clonability, but just for handling the particular use case.
121157
121158        * bindings/v8/SerializedScriptValue.cpp:
121159        (WebCore::V8ObjectMap::Writer::writeDOMFileSystem):
121160        (WebCore::V8ObjectMap::Serializer::writeDOMFileSystem):
121161        (WebCore::V8ObjectMap::Serializer::doSerialize):
121162        (WebCore::V8ObjectMap::Reader::read):
121163        (WebCore::V8ObjectMap::Reader::readDOMFileSystem):
121164
1211652012-06-19  Kenneth Russell  <kbr@google.com>
121166
121167        Unreviewed, rolling out r120772.
121168        http://trac.webkit.org/changeset/120772
121169        https://bugs.webkit.org/show_bug.cgi?id=89503
121170
121171        Broke build on Chromium Mac
121172
121173        * platform/graphics/chromium/AnimationTranslationUtil.h:
121174        (WebCore):
121175        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
121176        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
121177        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
121178        * platform/graphics/chromium/Canvas2DLayerBridge.h:
121179        * platform/graphics/chromium/ContentLayerChromium.cpp:
121180        * platform/graphics/chromium/ContentLayerChromium.h:
121181        * platform/graphics/chromium/DrawingBufferChromium.cpp:
121182        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
121183        * platform/graphics/chromium/GraphicsLayerChromium.h:
121184        (WebCore):
121185        * platform/graphics/chromium/ImageLayerChromium.cpp:
121186        * platform/graphics/chromium/LayerChromium.h:
121187        * platform/graphics/chromium/LayerRendererChromium.cpp:
121188        * platform/graphics/chromium/LayerRendererChromium.h:
121189        (WebCore):
121190        * platform/graphics/chromium/LayerTextureUpdater.h:
121191        * platform/graphics/chromium/ManagedTexture.cpp:
121192        * platform/graphics/chromium/ProgramBinding.h:
121193        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
121194        * platform/graphics/chromium/RenderSurfaceChromium.h:
121195        * platform/graphics/chromium/TextureCopier.cpp:
121196        * platform/graphics/chromium/TextureLayerChromium.cpp:
121197        * platform/graphics/chromium/TextureManager.cpp:
121198        * platform/graphics/chromium/TiledLayerChromium.cpp:
121199        * platform/graphics/chromium/TiledLayerChromium.h:
121200        (WebCore):
121201        * platform/graphics/chromium/cc/CCActiveAnimation.h:
121202        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
121203        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
121204        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
121205        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
121206        * platform/graphics/chromium/cc/CCFrameRateController.h:
121207        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
121208        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
121209        (WebCore):
121210        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
121211        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
121212        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
121213        * platform/graphics/chromium/cc/CCLayerImpl.h:
121214        (WebCore):
121215        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
121216        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
121217        (WebCore):
121218        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
121219        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
121220        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
121221        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
121222        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
121223        * platform/graphics/chromium/cc/CCProxy.cpp:
121224        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
121225        * platform/graphics/chromium/cc/CCRenderPass.h:
121226        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
121227        * platform/graphics/chromium/cc/CCRenderSurface.h:
121228        * platform/graphics/chromium/cc/CCRenderer.h:
121229        (WebCore):
121230        * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
121231        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
121232        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
121233        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
121234        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
121235        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
121236        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
121237        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
121238        * platform/graphics/chromium/cc/CCThreadProxy.h:
121239        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
121240        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
121241        * platform/graphics/chromium/cc/CCTimer.cpp:
121242        * platform/graphics/chromium/cc/CCTimer.h:
121243        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
121244
1212452012-06-19  Zeev Lieber  <zlieber@chromium.org>
121246
121247        [Chromium] Remove redundant #includes in compositor
121248        https://bugs.webkit.org/show_bug.cgi?id=89503
121249
121250        Reviewed by Adrienne Walker.
121251
121252        Removed some redundant #includes to clarify dependency
121253        picture. Some 90 #includes removed, some 50 less disruptive
121254        #includes added. This brings the number of class dependencies to
121255        902 from 1383.
121256
121257        No new tests are required, as this is only affects compile-time behavior.
121258
121259        * platform/graphics/chromium/AnimationTranslationUtil.h:
121260        (WebCore):
121261        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
121262        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
121263        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
121264        * platform/graphics/chromium/Canvas2DLayerBridge.h:
121265        * platform/graphics/chromium/ContentLayerChromium.cpp:
121266        * platform/graphics/chromium/ContentLayerChromium.h:
121267        * platform/graphics/chromium/DrawingBufferChromium.cpp:
121268        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
121269        * platform/graphics/chromium/GraphicsLayerChromium.h:
121270        * platform/graphics/chromium/ImageLayerChromium.cpp:
121271        * platform/graphics/chromium/LayerChromium.h:
121272        * platform/graphics/chromium/LayerRendererChromium.cpp:
121273        * platform/graphics/chromium/LayerRendererChromium.h:
121274        (WebCore):
121275        * platform/graphics/chromium/LayerTextureUpdater.h:
121276        * platform/graphics/chromium/ManagedTexture.cpp:
121277        * platform/graphics/chromium/ProgramBinding.h:
121278        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
121279        * platform/graphics/chromium/RenderSurfaceChromium.h:
121280        * platform/graphics/chromium/TextureCopier.cpp:
121281        * platform/graphics/chromium/TextureLayerChromium.cpp:
121282        * platform/graphics/chromium/TextureManager.cpp:
121283        * platform/graphics/chromium/TiledLayerChromium.cpp:
121284        * platform/graphics/chromium/TiledLayerChromium.h:
121285        * platform/graphics/chromium/cc/CCActiveAnimation.h:
121286        (WebCore):
121287        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
121288        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
121289        * platform/graphics/chromium/cc/CCFontAtlas.cpp:
121290        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
121291        * platform/graphics/chromium/cc/CCFrameRateController.h:
121292        (WebCore):
121293        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
121294        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
121295        (WebCore):
121296        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
121297        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
121298        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
121299        * platform/graphics/chromium/cc/CCLayerImpl.h:
121300        (WebCore):
121301        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
121302        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
121303        (WebCore):
121304        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
121305        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
121306        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
121307        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
121308        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
121309        (WebCore):
121310        * platform/graphics/chromium/cc/CCProxy.cpp:
121311        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
121312        * platform/graphics/chromium/cc/CCRenderPass.h:
121313        (WebCore):
121314        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
121315        * platform/graphics/chromium/cc/CCRenderSurface.h:
121316        * platform/graphics/chromium/cc/CCRenderer.h:
121317        * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
121318        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
121319        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
121320        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
121321        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
121322        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
121323        * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
121324        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
121325        * platform/graphics/chromium/cc/CCThreadProxy.h:
121326        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
121327        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
121328        (WebCore):
121329        * platform/graphics/chromium/cc/CCTimer.cpp:
121330        * platform/graphics/chromium/cc/CCTimer.h:
121331        (WebCore):
121332        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
121333
1213342012-06-19  Julien Chaffraix  <jchaffraix@webkit.org>
121335
121336        Align RenderLayer's descendant dependent flags semantics
121337        https://bugs.webkit.org/show_bug.cgi?id=89241
121338
121339        Reviewed by Simon Fraser.
121340
121341        Refactoring only, covered by existing tests.
121342
121343        This change aligns the naming and implementation of the different descendant
121344        dependent flags. While aligning, I found some bugs (inefficiencies) with how
121345        the visible descendant flags was computed.
121346
121347        * rendering/RenderLayer.cpp:
121348        (WebCore::RenderLayer::setHasVisibleContent):
121349        Changed this method to not take a boolean as every callers was passing 'true'.
121350        Reworked the logic under this assumption.
121351
121352        (WebCore::RenderLayer::dirtyVisibleContentStatus):
121353        Updated after the following renaming.
121354
121355        (WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus):
121356        Renamed this function from dirtyVisibleDescendantStatus to match the hasSelfPaintingLayer
121357        naming and implementation.
121358
121359        (WebCore::RenderLayer::setAncestorChainHasVisibleDescendant):
121360        Added this function to factor the visible descendant setting out of defunct childVisibilityChanged.
121361        Also improved the efficiency of the function by clearing the dirty flag as it goes up (an unnoticed bug).
121362
121363        (WebCore::RenderLayer::addChild):
121364        (WebCore::RenderLayer::removeChild):
121365        Updated to use the new functions lieu of childVisibilityChanged.
121366        * rendering/RenderLayer.h:
121367        (RenderLayer::childVisibilityChanged):
121368        Removed this function as it wasn't adding much and it's a lot more clear to call
121369        dirtyAncestorChainVisibleDescendantStatus / setAncestorChainHasVisibleDescendant.
121370
121371        * rendering/RenderObject.cpp:
121372        (WebCore::RenderObject::styleWillChange):
121373        * rendering/RenderObjectChildList.cpp:
121374        (WebCore::RenderObjectChildList::appendChildNode):
121375        (WebCore::RenderObjectChildList::insertChildNode):
121376        Updated those callers after removing the boolean parameter from setHasVisibleContent.
121377
1213782012-06-19  Andrey Adaikin  <aandrey@chromium.org>
121379
121380        Web Inspector: Extract InjectedScriptBase class from the InjectedScript
121381        https://bugs.webkit.org/show_bug.cgi?id=89107
121382
121383        Extract methods from the InjectedScript that do not depend on
121384        the concrete InjectedScriptSource.js implementation.
121385
121386        Reviewed by Pavel Feldman.
121387
121388        * CMakeLists.txt:
121389        * GNUmakefile.list.am:
121390        * Target.pri:
121391        * WebCore.gypi:
121392        * WebCore.vcproj/WebCore.vcproj:
121393        * WebCore.xcodeproj/project.pbxproj:
121394        * inspector/InjectedScript.cpp:
121395        (WebCore::InjectedScript::InjectedScript):
121396        (WebCore::InjectedScript::evaluate):
121397        (WebCore::InjectedScript::callFunctionOn):
121398        (WebCore::InjectedScript::evaluateOnCallFrame):
121399        (WebCore::InjectedScript::getFunctionDetails):
121400        (WebCore::InjectedScript::getProperties):
121401        (WebCore::InjectedScript::nodeForObjectId):
121402        (WebCore::InjectedScript::releaseObject):
121403        (WebCore::InjectedScript::wrapCallFrames):
121404        (WebCore::InjectedScript::wrapObject):
121405        (WebCore::InjectedScript::wrapSerializedObject):
121406        (WebCore::InjectedScript::findObjectById):
121407        (WebCore::InjectedScript::inspectNode):
121408        (WebCore::InjectedScript::releaseObjectGroup):
121409        (WebCore::InjectedScript::nodeAsScriptValue):
121410        * inspector/InjectedScript.h:
121411        (WebCore):
121412        (InjectedScript):
121413        * inspector/InjectedScriptBase.cpp: Added.
121414        (WebCore):
121415        (WebCore::InjectedScriptBase::InjectedScriptBase):
121416        (WebCore::InjectedScriptBase::canAccessInspectedWindow):
121417        (WebCore::InjectedScriptBase::injectedScriptObject):
121418        (WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):
121419        (WebCore::InjectedScriptBase::makeCall):
121420        (WebCore::InjectedScriptBase::makeEvalCall):
121421        * inspector/InjectedScriptBase.h: Copied from Source/WebCore/bindings/js/ScriptObject.h.
121422        (WebCore):
121423        (InjectedScriptBase):
121424        (WebCore::InjectedScriptBase::~InjectedScriptBase):
121425        (WebCore::InjectedScriptBase::hasNoValue):
121426        (WebCore::InjectedScriptBase::scriptState):
121427        * inspector/InspectorAllInOne.cpp:
121428
1214292012-06-19  Sheriff Bot  <webkit.review.bot@gmail.com>
121430
121431        Unreviewed, rolling out r120621.
121432        http://trac.webkit.org/changeset/120621
121433        https://bugs.webkit.org/show_bug.cgi?id=89518
121434
121435        Memory graph should have been behind the experimental flag.
121436        (Requested by pfeldman on #webkit).
121437
121438        * inspector/front-end/NativeMemorySnapshotView.js:
121439        * inspector/front-end/ProfileLauncherView.js:
121440        (WebInspector.ProfileLauncherView):
121441        * inspector/front-end/nativeMemoryProfiler.css:
121442        (.memory-blocks-list .item):
121443
1214442012-06-19  Hans Muller  <hmuller@adobe.com>
121445
121446        The CSS_WRAP_SHAPE CSSWrapShape::Type is no longer needed
121447        https://bugs.webkit.org/show_bug.cgi?id=89403
121448
121449        Reviewed by Eric Seidel.
121450
121451        Removed CSS_WRAP_SHAPE_PATH definition from CSSWrapShapes.h.
121452        It's no longer required. This definition was never used or
121453        tested, no new tests are required.
121454
121455        * css/CSSWrapShapes.h:
121456
1214572012-06-19  Ken Buchanan  <kenrb@chromium.org>
121458
121459        Absolute positioned objects should not be added to anonymous block lists
121460        https://bugs.webkit.org/show_bug.cgi?id=87768
121461
121462        Reviewed by Abhishek Arya.
121463
121464        containingBlock() was returning an anonymous block for absolute
121465        positioned objects under a relative positioned inline in the case
121466        that the inline is split and the object is underneath the block
121467        continuation. Anonymous blocks should never have anything in their
121468        positioned object lists because they can be destroyed at any time
121469        for a different reasons such as anonymous block merging, which is
121470        a problem for layout if they have m_posChildNeedsLayout set.
121471
121472        This patch adds a generic check for anonymous blocks in
121473        containingBlock() to correct this problem.
121474
121475        * rendering/RenderObject.cpp:
121476        (WebCore::RenderObject::containingBlock):
121477
1214782012-06-19  Jan Keromnes  <janx@linux.com>
121479
121480        Web Inspector: extensionPanel.onSearch `action` strings should be
121481        enumerated.
121482        https://bugs.webkit.org/show_bug.cgi?id=89509
121483
121484        Reviewed by Pavel Feldman.
121485
121486        Fixed LayoutTests/inspector/extensions/extensions-api-expected.txt
121487        accordingly.
121488
121489        * inspector/front-end/ExtensionAPI.js:
121490        (defineCommonExtensionSymbols):
121491        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
121492        (injectedExtensionAPI.Panels.prototype.get SearchAction):
121493        * inspector/front-end/ExtensionPanel.js:
121494        (WebInspector.ExtensionPanel.prototype.searchCanceled):
121495        (WebInspector.ExtensionPanel.prototype.performSearch):
121496        (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
121497        (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
121498
1214992012-06-19  Dana Jansens  <danakj@chromium.org>
121500
121501        [chromium] Add an allocation step for CCRenderer before drawing a frame
121502        https://bugs.webkit.org/show_bug.cgi?id=88924
121503
121504        Reviewed by Adrienne Walker.
121505
121506        This step will be used to decide which RenderPass textures can be kept
121507        alive and do not need to be drawn again.
121508
121509        * platform/graphics/chromium/LayerRendererChromium.cpp:
121510        (WebCore):
121511        (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
121512        (WebCore::LayerRendererChromium::beginDrawingFrame):
121513        * platform/graphics/chromium/LayerRendererChromium.h:
121514        (LayerRendererChromium):
121515        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
121516        (WebCore::CCLayerTreeHostImpl::drawLayers):
121517        * platform/graphics/chromium/cc/CCRenderer.h:
121518        (CCRenderer):
121519
1215202012-06-19  Alexandru Chiculita  <achicu@adobe.com>
121521
121522        [CSS Shaders] Create a shared object between FECustomFilter objects to store the shared resources
121523        https://bugs.webkit.org/show_bug.cgi?id=87878
121524
121525        Reviewed by Dean Jackson.
121526
121527        An object called CustomFilterGlobalContext is created the first time a new FECustomFilter is needed in a document.
121528        It is used to store the GraphicsContext3D needed to render the CSS Shaders. The context is shared by all the elements
121529        in a document (no cross-domain).
121530
121531        More resources will be shared in following patches, including precompiled shaders and vertices/indices data.
121532        https://bugs.webkit.org/show_bug.cgi?id=88427
121533        https://bugs.webkit.org/show_bug.cgi?id=88429
121534
121535        The plan is to make CustomFilterGlobalContext and FECustomFilter (or a base class extracted out of it) usable from platform
121536        code in the hardware accelerated compositing layer. The only dependency of the code is on the GraphicsContext3D.
121537
121538        No new tests. No functionality is changed yet, just added the new objects.
121539
121540        * CMakeLists.txt:
121541        * GNUmakefile.list.am:
121542        * Target.pri:
121543        * WebCore.gypi:
121544        * WebCore.vcproj/WebCore.vcproj:
121545        * WebCore.xcodeproj/project.pbxproj:
121546        * platform/graphics/filters/CustomFilterGlobalContext.cpp: Added.
121547        (WebCore):
121548        (WebCore::CustomFilterGlobalContext::CustomFilterGlobalContext):
121549        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
121550        (WebCore::CustomFilterGlobalContext::prepareContextIfNeeded):
121551        * platform/graphics/filters/CustomFilterGlobalContext.h: Added.
121552        (WebCore):
121553        (CustomFilterGlobalContext):
121554        (WebCore::CustomFilterGlobalContext::context):
121555        * platform/graphics/filters/FECustomFilter.cpp:
121556        (WebCore::FECustomFilter::FECustomFilter): Changed to use the global context instead of the host window.
121557        (WebCore::FECustomFilter::create):
121558        (WebCore::FECustomFilter::initializeContext):
121559        * platform/graphics/filters/FECustomFilter.h:
121560        (WebCore):
121561        (FECustomFilter):
121562        * rendering/FilterEffectRenderer.cpp:
121563        (WebCore::FilterEffectRenderer::build): Changed to initialize the global context if needed and pass it to the FECustomFilter.
121564        * rendering/RenderView.cpp:
121565        (WebCore):
121566        (WebCore::RenderView::customFilterGlobalContext):
121567        * rendering/RenderView.h:
121568        (WebCore):
121569        (RenderView):
121570
1215712012-06-19  Dominik Röttsches  <dominik.rottsches@intel.com>
121572
121573        [cairo] Fix LayoutTests/fast/canvas/patternfill-repeat.html
121574        https://bugs.webkit.org/show_bug.cgi?id=53085
121575
121576        Reviewed by Martin Robinson.
121577
121578        Clipping previously unlimited vertical and horizontal pattern repeats with
121579        a clip rectangle similar to the Qt Graphics Context.
121580
121581        No new tests, this patch fixes
121582        canvas/philip/tests/2d.pattern.paint.repeat* tests.
121583
121584        * platform/graphics/Pattern.h:
121585        (WebCore::Pattern::getPatternSpaceTransform): Adding constant getter method to be able to map to pattern space externally, needed by PlatformContextCairo::clipForPatternFilling.
121586        * platform/graphics/cairo/PlatformContextCairo.cpp:
121587        (WebCore::PlatformContextCairo::prepareForFilling):
121588        (WebCore::PlatformContextCairo::clipForPatternFilling): Clip pattern repeats if needed.
121589        * platform/graphics/cairo/PlatformContextCairo.h:
121590
1215912012-06-19  Hayato Ito  <hayato@chromium.org>
121592
121593        [Shadow DOM] An upper boundary breaks if a child node of an insertion point is clicked.
121594        https://bugs.webkit.org/show_bug.cgi?id=89407
121595
121596        Reviewed by Dimitri Glazkov.
121597
121598        Update an event re-targeting algorithm so that it can set event's
121599        target correctly when a fallback element in an insertion point is
121600        clicked. To distinguish between distributed nodes and fallback
121601        elements in an ancestor chain of composite shadow tree, an event
121602        dispatcher checks explicitly whether a node is actually
121603        distributed or assigned to the given insertion point.
121604
121605        Test: fast/dom/shadow/shadow-dom-event-dispatching.html
121606
121607        * dom/EventDispatcher.cpp:
121608        (WebCore::isAssignedTo):
121609        (WebCore):
121610        (WebCore::EventDispatcher::ensureEventAncestors):
121611        * html/shadow/InsertionPoint.h:
121612        (WebCore::InsertionPoint::contains):
121613
1216142012-06-19  Adrienne Walker  <enne@google.com>
121615
121616        Fix scrollbar layers being misplaced with a clipped owner layer
121617        https://bugs.webkit.org/show_bug.cgi?id=89486
121618
121619        Reviewed by Simon Fraser.
121620
121621        Scrollbar layers are positioned relative to their parent layer. If
121622        that parent gets clipped, then that positioning becomes incorrect and
121623        scrollbars get positioned relative to the clipped bounds instead of
121624        the full bounds. Fix by not clipping in this case.
121625
121626        Test: compositing/overflow/scrollbars-with-clipped-owner.html
121627
121628        * rendering/RenderLayerBacking.cpp:
121629        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
121630
1216312012-06-19  Shinya Kawanaka  <shinyak@chromium.org>
121632
121633        [Shadow][Editing] applying document.execCommand('bold') twice to elements having shadow insertion points causes a crash.
121634        https://bugs.webkit.org/show_bug.cgi?id=88502
121635
121636        Reviewed by Ryosuke Niwa.
121637
121638        When inserting or removing insertion points (<shadow> or <content>) into or from Shdaow DOM,
121639        ElementShadow::invalidateDistribution() will be called immediately. It will remove all the renderers
121640        of elements in the Shadow DOM. Since Node::rendererIsEditable() returns false when an renderer does not
121641        exist, all the elements in the Shadow DOM will be considered as non-content-editable until recalculating
121642        layout, though some of them may actually be content-editable.
121643
121644        Actually the current code does not recalculate layout inside editing command, so a disaster happens.
121645        For example, performing an editing command quits before completing all the commands, because the command
121646        thinks it is adding some elements to a non-content-editable element (but actually it's content-editable).
121647
121648        So we have to recalculate layout if necessary when checking an element is content-editable or not.
121649        This can be achieved by using Node::isContentEditable() instead of Node::rendererIsEditable().
121650
121651        Test: editing/shadow/bold-twice-in-shadow.html
121652
121653        * editing/ApplyStyleCommand.cpp:
121654        (WebCore::ApplyStyleCommand::removeInlineStyleFromElement):
121655        * editing/InsertNodeBeforeCommand.cpp:
121656        (WebCore::InsertNodeBeforeCommand::doApply):
121657        (WebCore::InsertNodeBeforeCommand::doUnapply):
121658        * editing/RemoveNodeCommand.cpp:
121659        (WebCore::RemoveNodeCommand::doApply):
121660
1216612012-06-19  Kenneth Russell  <kbr@google.com>
121662
121663        Unreviewed, rolling out r120744.
121664        http://trac.webkit.org/changeset/120744
121665        https://bugs.webkit.org/show_bug.cgi?id=89220
121666
121667        Broke build on Chromium Windows canary bots
121668
121669        * CMakeLists.txt:
121670        * GNUmakefile.list.am:
121671        * Target.pri:
121672        * WebCore.gypi:
121673        * platform/mock/DeviceMotionClientMock.cpp: Removed.
121674        * platform/mock/DeviceMotionClientMock.h: Removed.
121675
1216762012-06-18  Filip Pizlo  <fpizlo@apple.com>
121677
121678        It should be possible to look at disassembly
121679        https://bugs.webkit.org/show_bug.cgi?id=89319
121680
121681        Reviewed by Sam Weinig.
121682        
121683        Just fixing EFL's build system now that JSC has a new directory.
121684
121685        * CMakeLists.txt:
121686
1216872012-06-19  Amy Ousterhout  <aousterh@chromium.org>
121688
121689        Adds DeviceMotionClientMock
121690        https://bugs.webkit.org/show_bug.cgi?id=89220
121691
121692        Reviewed by Steve Block.
121693
121694        Adds DeviceMotionClientMock in WebCore to enable testing of DeviceMotion once it is fully implemented in WebKit.
121695        This addition was originally included in https://bugs.webkit.org/show_bug.cgi?id=89197 but was split into a separate patch for easier review.
121696
121697        No new tests because DeviceMotionClientMock is designed to enable future testing and cannot be tested in itself.
121698
121699        * CMakeLists.txt:
121700        * GNUmakefile.list.am:
121701        * Target.pri:
121702        * WebCore.gypi:
121703        * platform/mock/DeviceMotionClientMock.cpp: Added.
121704        (WebCore):
121705        (WebCore::DeviceMotionClientMock::DeviceMotionClientMock):
121706        (WebCore::DeviceMotionClientMock::setController):
121707        (WebCore::DeviceMotionClientMock::startUpdating):
121708        (WebCore::DeviceMotionClientMock::stopUpdating):
121709        (WebCore::DeviceMotionClientMock::setMotion):
121710        (WebCore::DeviceMotionClientMock::timerFired):
121711        * platform/mock/DeviceMotionClientMock.h: Added.
121712        (WebCore):
121713        (DeviceMotionClientMock):
121714        
1217152012-06-19  Alexandre Elias  <aelias@google.com>
121716
121717        Fix link error with fillWithEmptyClients
121718        https://bugs.webkit.org/show_bug.cgi?id=89484
121719
121720        Reviewed by Ryosuke Niwa.
121721
121722        fillWithEmptyClients() was within #if ENABLE() guard in the .cpp file
121723        but not in the header.  There is now a caller unrelated to these ENABLEs
121724        in WebHelperPluginImpl, so linking fails if both SVG and PAGE_POPUP
121725        are disabled.
121726
121727        This function looks generic, so just remove the ENABLE guards.
121728
121729        No new tests. (Build fix.)
121730
121731        * loader/EmptyClients.cpp:
121732        (WebCore::fillWithEmptyClients):
121733
1217342012-06-19  Abhishek Arya  <inferno@chromium.org>
121735
121736        Crash in RenderInline::willBeDestroyed.
121737        https://bugs.webkit.org/show_bug.cgi?id=89386
121738
121739        Reviewed by Julien Chaffraix.
121740
121741        We were unable to find the previous continuation during the process
121742        of cleaning up empty anonymous block continuation. The reason being
121743        that we were just looking till our immediate parent and ignoring the
121744        fact that it can be enclosed in anonymous blocks. The change skips
121745        over anonymous blocks in the parent chain.
121746
121747        Test: fullscreen/empty-anonymous-block-continuation-crash.html
121748
121749        * rendering/RenderBlock.cpp:
121750        (WebCore::RenderBlock::removeChild):
121751
1217522012-06-19  Andreas Kling  <kling@webkit.org>
121753
121754        Remove the -webkit-match-nearest-mail-blockquote-color property.
121755        <http://webkit.org/b/89480>
121756
121757        Reviewed by Antti Koivisto.
121758
121759        This property does nothing except taking up a bit on StyleRareNonInheritedData.
121760        It's apparently famous for being the longest property name we support.
121761        This passes the torch to -webkit-border-bottom-right-radius.
121762
121763        * css/CSSComputedStyleDeclaration.cpp:
121764        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
121765        * css/CSSParser.cpp:
121766        (WebCore::isValidKeywordPropertyAndValue):
121767        (WebCore::isKeywordPropertyID):
121768        (WebCore::CSSParser::parseValue):
121769        * css/CSSPrimitiveValueMappings.h:
121770        * css/CSSProperty.cpp:
121771        (WebCore::CSSProperty::isInheritedProperty):
121772        * css/CSSPropertyNames.in:
121773        * css/CSSValueKeywords.in:
121774        * css/StyleBuilder.cpp:
121775        (WebCore::StyleBuilder::StyleBuilder):
121776        * css/StyleResolver.cpp:
121777        (WebCore::StyleResolver::collectMatchingRulesForList):
121778        * rendering/style/RenderStyle.h:
121779        * rendering/style/RenderStyleConstants.h:
121780        * rendering/style/StyleRareNonInheritedData.cpp:
121781        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
121782        (WebCore::StyleRareNonInheritedData::operator==):
121783        * rendering/style/StyleRareNonInheritedData.h:
121784        (StyleRareNonInheritedData):
121785
1217862012-06-19  Andrew Lo  <anlo@rim.com>
121787
121788        [BlackBerry] Animations continue to request frames after they have finished
121789        https://bugs.webkit.org/show_bug.cgi?id=89483
121790
121791        Reviewed by Rob Buis.
121792
121793        Don't report that we have running animations if all the animations
121794        are finished. This prevents unnecessary requesting of animation frames.
121795        Internal PR165119
121796        Internally Reviewed by Arvid Nilsson.
121797
121798        * platform/graphics/blackberry/LayerAnimation.cpp:
121799        (WebCore::progress):
121800        (WebCore::fetchIntervalEndpoints):
121801        (WebCore::LayerAnimation::apply):
121802        * platform/graphics/blackberry/LayerAnimation.h:
121803        (WebCore::LayerAnimation::finished):
121804        (WebCore::LayerAnimation::LayerAnimation):
121805        (LayerAnimation):
121806        * platform/graphics/blackberry/LayerCompositingThread.cpp:
121807        (WebCore::LayerCompositingThread::updateAnimations):
121808
1218092012-06-19  Abhishek Arya  <inferno@chromium.org>
121810
121811        Wrong repaintContainerSkipped in RenderObject::container()
121812        when positioned objects are enclosed in a <foreignObject>.
121813        https://bugs.webkit.org/show_bug.cgi?id=89384
121814
121815        Reviewed by Simon Fraser.
121816
121817        No new tests. The bug was found in a code audit.
121818
121819        * rendering/RenderObject.cpp:
121820        (WebCore::RenderObject::container):
121821
1218222012-06-19  Abhishek Arya  <inferno@chromium.org>
121823
121824        Crash in WebCore::RenderSVGModelObject::checkIntersection
121825        https://bugs.webkit.org/show_bug.cgi?id=89059
121826
121827        Reviewed by Rob Buis.
121828
121829        getElementCTM updates layout causing the renderer to be destroyed. We get
121830        the new renderer by storing the element pointer and later accessing it using
121831        the element pointer.
121832
121833        Test: svg/custom/intersection-list-crash.svg
121834
121835        * rendering/svg/RenderSVGModelObject.cpp:
121836        (WebCore::RenderSVGModelObject::checkIntersection):
121837        (WebCore::RenderSVGModelObject::checkEnclosure):
121838
1218392012-06-13  Eric Uhrhane  <ericu@chromium.org>
121840
121841        FileWriter progress events should be throttled to 50ms
121842        https://bugs.webkit.org/show_bug.cgi?id=89022
121843
121844        Reviewed by Kent Tamura.
121845
121846        No new tests; existing tests validate our event sequences, and testing
121847        timing is likely to be flaky.
121848
121849        * Modules/filesystem/FileWriter.cpp:
121850        (WebCore):
121851        (WebCore::FileWriter::FileWriter):
121852        (WebCore::FileWriter::didWrite): Throttle sending progress events.
121853        * Modules/filesystem/FileWriter.h:
121854        (FileWriter): Add a variable that remembers when the last event was
121855        sent.
121856
1218572012-06-19  Dan Bernstein  <mitz@apple.com>
121858
121859        WebCore part of: Paginated display API doesn’t allow setting the page progression direction
121860        https://bugs.webkit.org/show_bug.cgi?id=89394
121861
121862        Reviewed by Darin Adler.
121863
121864        Updated fast/multicol/pagination-*.html.
121865
121866        * css/StyleResolver.cpp:
121867        (WebCore::StyleResolver::styleForDocument): Changed to handle the new Pagination::Mode enum
121868        values and set the column progression in addition to the column axis.
121869        * page/Page.h: Changed the Pagination::Mode enum values to ones that specify an axis and a
121870        direction along that axis.
121871        * testing/Internals.cpp:
121872        (WebCore::Internals::setPagination): Changed to support the new Pagination::Mode enum values.
121873
1218742012-06-19  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
121875
121876        Make RenderTableSection - nodeAtPoint and paintObject reuse spanning logic.
121877        https://bugs.webkit.org/show_bug.cgi?id=88066
121878
121879        Reviewed by Julien Chaffraix.
121880
121881        Makes dirtiedRows and dirtiedColumns reuse spannedRows and spannedColumns
121882        internally. This also changes their API to accept a damage-rect flipped 
121883        by logicalRectForWritingModeAndDirection.
121884
121885        The generic code in spannedRows and spannedColumns solves a few FIXMEs 
121886        surrounding RTL tables, which should improve performance.
121887
121888        * rendering/RenderTableSection.cpp:
121889        (WebCore::RenderTableSection::dirtiedRows):
121890        (WebCore::RenderTableSection::dirtiedColumns):
121891        (WebCore::RenderTableSection::paintObject):
121892        * rendering/RenderTableSection.h:
121893        (WebCore::CellSpan::start):
121894        (WebCore::CellSpan::end):
121895        (CellSpan):
121896        (RenderTableSection):
121897
1218982012-06-19  Christophe Dumez  <christophe.dumez@intel.com>
121899
121900        [JSC] Implement support for JSDictionary::convertValue(Vector<String>& result)
121901        https://bugs.webkit.org/show_bug.cgi?id=89447
121902
121903        Reviewed by Adam Barth.
121904
121905        Add implementation for JSDictionary::convertValue(Vector<String>& result)
121906        so that IDBDatabase::createObjectStore() compiles with JSC.
121907
121908        Tests: storage/indexeddb
121909
121910        * bindings/js/JSDictionary.cpp:
121911        (WebCore::JSDictionary::convertValue):
121912        (WebCore):
121913        * bindings/js/JSDictionary.h:
121914
1219152012-06-19  Andy Estes  <aestes@apple.com>
121916
121917        [Mac] AudioFileReader::createBus() leaks an AudioBufferList if ExtAudioFileRead() returns an error
121918        https://bugs.webkit.org/show_bug.cgi?id=89429
121919
121920        Reviewed by Darin Adler.
121921
121922        * platform/audio/mac/AudioFileReaderMac.cpp:
121923        (WebCore::AudioFileReader::createBus): Call destroyAudioBufferList()
121924        before returning if ExtAudioFileRead() returns an error.
121925
1219262012-06-19  Martin Robinson  <mrobinson@igalia.com>
121927
121928        2012-06-19  Martin Robinson  <mrobinson@igalia.com>
121929
121930        Fix the GTK+ build by adding some missing source files to the source list.
121931
121932        * GNUmakefile.list.am: WebGLDepthTexture.cpp/h to the source list.
121933
1219342012-06-19  Peter Wang  <peter.wang@torchmobile.com.cn>
121935
121936        Remove the function ScriptDebugServer::supportsNativeBreakpoints()
121937        https://bugs.webkit.org/show_bug.cgi?id=88759
121938
121939        Reviewed by Pavel Feldman.
121940
121941        Since both JSC and V8 support DOM breakpoint now, remove the conditional interface and related code.
121942        So there is no new tests.
121943
121944        * bindings/js/ScriptDebugServer.h:
121945        * bindings/v8/ScriptDebugServer.h:
121946        * inspector/Inspector.json:
121947        * inspector/InspectorDebuggerAgent.cpp:
121948        * inspector/InspectorDebuggerAgent.h:
121949        (InspectorDebuggerAgent):
121950        * inspector/front-end/ElementsPanel.js:
121951        (WebInspector.ElementsPanel):
121952        (WebInspector.ElementsPanel.prototype.wasShown):
121953        (WebInspector.ElementsPanel.prototype._populateContextMenu):
121954        * inspector/front-end/NetworkPanel.js:
121955        (WebInspector.NetworkLogView.prototype._createTable):
121956        (WebInspector.NetworkLogView.prototype.switchToDetailedView):
121957        (WebInspector.NetworkLogView.prototype.switchToBriefView):
121958        (WebInspector.NetworkDataGridNode.prototype.createCells):
121959        (WebInspector.NetworkDataGridNode.prototype.refreshRequest):
121960        * inspector/front-end/ScriptsPanel.js:
121961        (WebInspector.ScriptsPanel.prototype.wasShown):
121962        (WebInspector.ScriptsPanel.prototype._clearInterface):
121963        * inspector/front-end/Settings.js:
121964        * inspector/front-end/inspector.js:
121965        (WebInspector.doLoadedDone):
121966
1219672012-06-19  Nikita Vasilyev  <me@elv1s.ru>
121968
121969        Web Inspector: Make text in WebSocket Frames tab selectable
121970        https://bugs.webkit.org/show_bug.cgi?id=89307
121971
121972        Reviewed by Yury Semikhatsky.
121973
121974        * inspector/front-end/ResourceWebSocketFrameView.js:
121975        (WebInspector.ResourceWebSocketFrameView):
121976        * inspector/front-end/networkPanel.css:
121977        (.resource-websocket-frame-view):
121978
1219792012-06-19  Peter Rybin  <peter.rybin@gmail.com>
121980
121981        Web Inspector: Support 'Restart frame' in protocol and backend
121982        https://bugs.webkit.org/show_bug.cgi?id=89147
121983
121984        Reviewed by Yury Semikhatsky.
121985
121986        Inspector.json got new command in Debugger domain.
121987        A call path from InspectorDebuggerAgent to V8 Debug.LiveEdit.RestartFrame API
121988        is built.
121989        JSC implementation is a stub with fix me (40300). 
121990
121991        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
121992        (WebCore::JSJavaScriptCallFrame::restart):
121993        (WebCore):
121994        * bindings/js/ScriptDebugServer.cpp:
121995        (WebCore):
121996        (WebCore::ScriptDebugServer::updateCallStack):
121997        * bindings/js/ScriptDebugServer.h:
121998        (ScriptDebugServer):
121999        * bindings/v8/DebuggerScript.js:
122000        (.):
122001        * bindings/v8/JavaScriptCallFrame.cpp:
122002        (WebCore::JavaScriptCallFrame::restart):
122003        (WebCore):
122004        * bindings/v8/JavaScriptCallFrame.h:
122005        (JavaScriptCallFrame):
122006        * bindings/v8/ScriptDebugServer.cpp:
122007        (WebCore):
122008        (WebCore::ScriptDebugServer::updateCallStack):
122009        * bindings/v8/ScriptDebugServer.h:
122010        * bindings/v8/ScriptFunctionCall.cpp:
122011        (WebCore::ScriptFunctionCall::call):
122012        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
122013        (WebCore::V8JavaScriptCallFrame::restartCallback):
122014        (WebCore):
122015        * inspector/InjectedScript.cpp:
122016        (WebCore::InjectedScript::restartFrame):
122017        (WebCore):
122018        * inspector/InjectedScript.h:
122019        (InjectedScript):
122020        * inspector/InjectedScriptExterns.js:
122021        (JavaScriptCallFrame.prototype.restart):
122022        * inspector/InjectedScriptSource.js:
122023        (.):
122024        * inspector/Inspector.json:
122025        * inspector/InspectorDebuggerAgent.cpp:
122026        (WebCore::InspectorDebuggerAgent::restartFrame):
122027        * inspector/InspectorDebuggerAgent.h:
122028        (InspectorDebuggerAgent):
122029        * inspector/JavaScriptCallFrame.idl:
122030
1220312012-06-19  Andrei Poenaru  <poenaru@adobe.com>
122032
122033        Replaced printf with fprintf in DEBUG_AUDIONODE_REFERENCES
122034
122035        Change printf to fprintf in DEBUG_AUDIONODE_REFERENCES
122036        https://bugs.webkit.org/show_bug.cgi?id=86564
122037
122038        Reviewed by Csaba Osztrogonác.
122039
122040        There is no need for new tests: writing data to stderr, instead of stdout.
122041
122042        * Modules/webaudio/AudioContext.cpp:
122043        (WebCore::AudioContext::~AudioContext):
122044        * Modules/webaudio/AudioNode.cpp:
122045        (WebCore::AudioNode::~AudioNode):
122046        (WebCore::AudioNode::ref):
122047        (WebCore::AudioNode::finishDeref):
122048        (WebCore::AudioNode::printNodeCounts):
122049
1220502012-06-19  Dominik Röttsches  <dominik.rottsches@intel.com>
122051
122052        [GTK] Assert failure in svg/batik/text/textDecoration.svg,textEffect3.svg for 64bit Debug bot
122053        https://bugs.webkit.org/show_bug.cgi?id=89104
122054
122055        Reviewed by Nikolas Zimmermann.
122056
122057        Adding SVGInline to assertion to fix assertion failure. Same assertion was hit on Chromium.
122058
122059        Covered by existing tests
122060        svg/batik/text/textDecoration.svg
122061        svg/batik/text/textEffect3.svg
122062        where the assertion failure was hit.
122063
122064        * rendering/svg/RenderSVGResourceContainer.cpp:
122065        (WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting):
122066
1220672012-06-19  Csaba Osztrogonác  <ossy@webkit.org>
122068
122069        [Qt] Buildfix for newer Qt5, use QPointer instead of the deprecated QWeakPointer.
122070        https://bugs.webkit.org/show_bug.cgi?id=89449
122071
122072        Reviewed by Simon Hausmann.
122073
122074        * bridge/qt/qt_instance.h:
122075        (QtInstance):
122076        * bridge/qt/qt_runtime.h:
122077        (QtField):
122078        * platform/Widget.h:
122079        (Widget):
122080
1220812012-06-19  Taiju Tsuiki  <tzik@chromium.org>
122082
122083        Web Inspector: FileSystem tree should hide uninitialized FileSystem
122084        https://bugs.webkit.org/show_bug.cgi?id=88602
122085
122086        Reviewed by Vsevolod Vlasov.
122087
122088        Test: http/tests/inspector/filesystem/get-filesystem-root.html
122089
122090        * inspector/Inspector.json:
122091        * inspector/InspectorFileSystemAgent.cpp:
122092        (WebCore):
122093        (WebCore::InspectorFileSystemAgent::getFileSystemRoot):
122094        * inspector/InspectorFileSystemAgent.h:
122095        (InspectorFileSystemAgent):
122096        * inspector/front-end/FileSystemModel.js:
122097        (WebInspector.FileSystemModel.prototype._originAdded):
122098        (WebInspector.FileSystemModel.prototype.refreshFileSystemList):
122099        (WebInspector.FileSystemModel.prototype._gotFileSystem):
122100        (WebInspector.FileSystemModel.FileSystem):
122101        (WebInspector.FileSystemRequestManager):
122102        (WebInspector.FileSystemRequestManager.prototype.getFileSystemRoot):
122103        (WebInspector.FileSystemRequestManager.prototype._gotFileSystemRoot):
122104        (WebInspector.FileSystemDispatcher.prototype.gotFileSystemRoot):
122105        * inspector/front-end/ResourcesPanel.js:
122106        (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
122107
1221082012-06-19  Mike West  <mkwst@chromium.org>
122109
122110        Introduce ENABLE_CSP_NEXT configuration flag.
122111        https://bugs.webkit.org/show_bug.cgi?id=89300
122112
122113        Reviewed by Adam Barth.
122114
122115        The 1.0 draft of the Content Security Policy spec is just about to
122116        move to Last Call. We'll hide work on the upcoming 1.1 spec behind
122117        this ENABLE flag, disabled by default.
122118
122119        Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html
122120
122121        * Configurations/FeatureDefines.xcconfig:
122122
1221232012-06-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
122124
122125        Make StylePropertySet::merge() always override on conflict
122126        https://bugs.webkit.org/show_bug.cgi?id=89348
122127
122128        Reviewed by Ryosuke Niwa.
122129
122130        merge() was only used with argOverridesOnConflict = true, which
122131        makes the extra parameter useless. It will also save a boolean check.
122132
122133        * css/StylePropertySet.cpp:
122134        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
122135        * css/StylePropertySet.h:
122136        (StylePropertySet):
122137        * editing/ApplyStyleCommand.cpp:
122138        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
122139        * editing/EditingStyle.cpp:
122140        (WebCore::EditingStyle::overrideWithStyle):
122141        (WebCore::styleFromMatchedRulesForElement):
122142        (WebCore::EditingStyle::mergeStyleFromRules):
122143        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
122144
1221452012-06-19  Yoshifumi Inoue  <yosin@chromium.org>
122146
122147        [Forms] Move isKeyboardFocusable and isMouseFocusable to InputType from HTMLInputElement
122148        https://bugs.webkit.org/show_bug.cgi?id=89425
122149
122150        Reviewed by Kent Tamura.
122151
122152        This patch moves implementation of HTMLInpueElement::isKeyboardFocusable
122153        and isMouseFocusable to InputType class to allow each implementation
122154        of InputType can decide focus-ability.
122155
122156        No new tests. This patch doesn't change behavior.
122157
122158        * html/HTMLInputElement.cpp:
122159        (WebCore::HTMLInputElement::isKeyboardFocusable): Changed to call InputType::isKeyboardFocusable.
122160        (WebCore::HTMLInputElement::isMouseFocusable): Changed to call InputType::isMouseFocusable.
122161        (WebCore::HTMLInputElement::isTextFormControlFocusable): Added to allow InputType can call a method in HTMLTextFormControlElement.
122162        (WebCore::HTMLInputElement::isTextFormControlKeyboardFocusable): Added to allow InputType can call a method in HTMLTextFormControlElement.
122163        (WebCore::HTMLInputElement::isTextFormControlMouseFocusable): Added to allow InputType can call a method in HTMLTextFormControlElement.
122164        * html/HTMLInputElement.h:
122165        (HTMLInputElement):
122166        * html/InputType.cpp:
122167        (WebCore::InputType::isKeyboardFocusable): Changed to call isTextFormControlKeyboardFocusable.
122168        (WebCore::InputType::isMouseFocusable): Added for default method of derived InputType classes.
122169        * html/InputType.h:
122170        (InputType): Chagned signature of isKeyboardFocusable.
122171        * html/RadioInputType.cpp:
122172        (WebCore::RadioInputType::isKeyboardFocusable): Changed to call isTextFormControlKeyboardFocusable which was done in HTMLInputElement.
122173        * html/RadioInputType.h:
122174        (RadioInputType):
122175        * html/TextFieldInputType.cpp:
122176        (WebCore::TextFieldInputType::isKeyboardFocusable): Moved implementation from HTMLInputElement.
122177        (WebCore::TextFieldInputType::isMouseFocusable): Moved implementation from HTMLInputElement.
122178        * html/TextFieldInputType.h:
122179        (TextFieldInputType):
122180
1221812012-06-19  Sergio Villar Senin  <svillar@igalia.com>
122182
122183        Calling nativeImageForCurrentFrame() causes assertion failure: m_verifier.isSafeToUse()
122184        https://bugs.webkit.org/show_bug.cgi?id=67582
122185
122186        Reviewed by David Levin.
122187
122188        Added a new synchronous method to the IconDatabase that returns a
122189        native image for the platform instead of a WebCore::Image*.
122190
122191        * loader/icon/IconDatabase.cpp:
122192        (WebCore::IconDatabase::synchronousNativeIconForPageURL):
122193        (WebCore):
122194        * loader/icon/IconDatabase.h:
122195        (IconDatabase):
122196        * loader/icon/IconDatabaseBase.h:
122197        (WebCore::IconDatabaseBase::synchronousNativeIconForPageURL):
122198        (IconDatabaseBase):
122199
1222002012-06-19  Andy Estes  <aestes@apple.com>
122201
122202        [Mac] Use AutodrainedPool instead of NSAutoreleasePool in AudioBus::loadPlatformResource()
122203        https://bugs.webkit.org/show_bug.cgi?id=89427
122204
122205        Reviewed by Dan Bernstein.
122206
122207        loadPlatformResource() called -[NSAutoreleasePool release] at each of
122208        its exit points, which is not only an error-prone pattern but is
122209        incorrect in garbage-collected environments. AutodrainedPool solves
122210        both these problems by automatically calling -[NSAutoreleasePool drain]
122211        when going out of scope.
122212
122213        * platform/audio/mac/AudioBusMac.mm:
122214        (WebCore::AudioBus::loadPlatformResource):
122215
1222162012-06-19  Mike West  <mkwst@chromium.org>
122217
122218        Compilation failure in StyleResolver.cpp
122219        https://bugs.webkit.org/show_bug.cgi?id=89446
122220
122221        Reviewed by Ryosuke Niwa.
122222
122223        Adding 'CSSPropertyWebkitColumnProgression' to a switch statement from
122224        which it was missing.
122225
122226        * css/StyleResolver.cpp:
122227        (WebCore::StyleResolver::collectMatchingRulesForList):
122228
1222292012-06-19  Csaba Osztrogonác  <ossy@webkit.org>
122230
122231        [Qt] Unreviewed build system fix after r120051.
122232
122233        * Target.pri:
122234
1222352012-06-19  Mike West  <mkwst@chromium.org>
122236
122237        Add a scheme registry for bypassing Content Security Policy.
122238        https://bugs.webkit.org/show_bug.cgi?id=89373
122239
122240        Reviewed by Adam Barth.
122241
122242        The Content Security Policy specification notes that "Enforcing a CSP
122243        policy should not interfere with the operation of user-supplied scripts
122244        such as third-party user-agent add-ons and JavaScript bookmarklets."
122245        (https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#processing-model)
122246        This use case can be at least partially addressed by adding a scheme
122247        registry for certain types of URLs whose resources should be loaded
122248        regardless of a page's defined policy directives.
122249
122250        See http://crbug.com/133223 for additional context.
122251
122252        Test: http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
122253
122254        * WebCore.exp.in:
122255            Exporting new symbols for use by Internals.
122256        * page/ContentSecurityPolicy.cpp:
122257        (WebCore::isAllowedByAllWithURL):
122258            Adding a check against the new SchemeRegistry method to determine
122259            whether or not we should proceed with checking the URL against the
122260            policy.
122261        * platform/SchemeRegistry.cpp:
122262        (WebCore::CSPBypassingSchemes):
122263        (WebCore):
122264        (WebCore::SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy):
122265        (WebCore::SchemeRegistry::removeURLSchemeRegisteredAsBypassingContentSecurityPolicy):
122266        (WebCore::SchemeRegistry::schemeShouldBypassContentSecurityPolicy):
122267        * platform/SchemeRegistry.h:
122268        (SchemeRegistry):
122269            Adding the scheme registry for CSP-bypassing URL schemes.
122270        * testing/Internals.cpp:
122271        (WebCore):
122272        (WebCore::Internals::registerURLSchemeAsBypassingContentSecurityPolicy):
122273        (WebCore::Internals::removeURLSchemeRegisteredAsBypassingContentSecurityPolicy):
122274        * testing/Internals.h:
122275        (Internals):
122276        * testing/Internals.idl:
122277            Adding a method to Internals so that we can write a layout test.
122278
1222792012-06-18  Andy Estes  <aestes@apple.com>
122280
122281        [Mac] Editor::fontAttributesForSelectionStart() leaks a NSShadow
122282        https://bugs.webkit.org/show_bug.cgi?id=89424
122283
122284        Reviewed by Dan Bernstein.
122285
122286        * editing/mac/EditorMac.mm:
122287        (WebCore::Editor::fontAttributesForSelectionStart): Store the NSShadow
122288        in a RetainPtr so that it's released before going out of scope.
122289
1222902012-06-18  Kent Tamura  <tkent@chromium.org>
122291
122292        Refactoring: Introduce a class to represent restoring state of a form control
122293        https://bugs.webkit.org/show_bug.cgi?id=89412
122294
122295        Reviewed by Hajime Morita.
122296
122297        HTMLFormControlElementWithState::saveFormControlState had two return
122298        values; One is a boolean to represent whether we should save the state
122299        or not, and another is form control value. This patch introduces
122300        FormControlState class representing these values.
122301
122302        We're going to extend FormControlState class so that it can contain
122303        multiple strings to fix a FileInputType issue and it have another type
122304        to fix Bug 89409.
122305
122306        No new tests. Just a refactoring.
122307
122308        * html/FormController.cpp:
122309        (WebCore::FormController::formElementsState):
122310        Gets a state string from a FormControlState instance.
122311        (WebCore::FormController::takeStateForFormElement):
122312        Creates a FormControlState instance with a state string.
122313        * html/FormController.h:
122314        (WebCore::FormControlState): Added.
122315
122316        * html/BaseCheckableInputType.cpp:
122317        (WebCore::BaseCheckableInputType::saveFormControlState):
122318        Use FormControlState class.
122319        (WebCore::BaseCheckableInputType::restoreFormControlState): ditto.
122320        * html/BaseCheckableInputType.h:
122321        (BaseCheckableInputType): ditto.
122322        * html/FileInputType.cpp:
122323        (WebCore::FileInputType::saveFormControlState): ditto.
122324        (WebCore::FileInputType::restoreFormControlState): ditto.
122325        * html/FileInputType.h:
122326        (FileInputType): ditto.
122327        * html/HTMLFormControlElementWithState.cpp:
122328        (WebCore::HTMLFormControlElementWithState::saveFormControlState): ditto.
122329        (WebCore::HTMLFormControlElementWithState::finishParsingChildren): ditto.
122330        * html/HTMLFormControlElementWithState.h:
122331        (HTMLFormControlElementWithState): ditto.
122332        (WebCore::HTMLFormControlElementWithState::restoreFormControlState): ditto.
122333        * html/HTMLInputElement.cpp:
122334        (WebCore::HTMLInputElement::saveFormControlState): ditto.
122335        (WebCore::HTMLInputElement::restoreFormControlState): ditto.
122336        * html/HTMLInputElement.h:
122337        (HTMLInputElement): ditto.
122338        * html/HTMLSelectElement.cpp:
122339        (WebCore::HTMLSelectElement::saveFormControlState): ditto.
122340        (WebCore::HTMLSelectElement::restoreFormControlState): ditto.
122341        * html/HTMLSelectElement.h:
122342        * html/HTMLTextAreaElement.cpp:
122343        (WebCore::HTMLTextAreaElement::saveFormControlState): ditto.
122344        (WebCore::HTMLTextAreaElement::restoreFormControlState): ditto.
122345        * html/HTMLTextAreaElement.h:
122346        * html/HiddenInputType.cpp:
122347        (WebCore::HiddenInputType::saveFormControlState): ditto.
122348        (WebCore::HiddenInputType::restoreFormControlState): ditto.
122349        * html/HiddenInputType.h:
122350        (HiddenInputType): ditto.
122351        * html/InputType.cpp:
122352        (WebCore::InputType::saveFormControlState): ditto.
122353        (WebCore::InputType::restoreFormControlState): ditto.
122354        * html/InputType.h:
122355        (InputType): ditto.
122356        * html/PasswordInputType.cpp:
122357        (WebCore::PasswordInputType::saveFormControlState): ditto.
122358        (WebCore::PasswordInputType::restoreFormControlState): ditto.
122359        * html/PasswordInputType.h:
122360        (PasswordInputType): ditto.
122361
1223622012-06-18  Joone Hur  <joone.hur@intel.com>
122363
122364        [EFL] Fontconfig can't be linked properly
122365        https://bugs.webkit.org/show_bug.cgi?id=89418
122366
122367        Unreviewed build fix.
122368
122369        Make Fontconfig be linked correctly.
122370
122371        No new tests. This is only a build fix.
122372
122373        * PlatformEfl.cmake: add FONTCONFIG_LIBRARIES to WebCore_LIBRARIES.
122374
1223752012-06-18  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
122376
122377        [Cairo] Fix memory leaks in GLContextGLX.cpp
122378        https://bugs.webkit.org/show_bug.cgi?id=89346
122379
122380        Reviewed by Martin Robinson.
122381
122382        Fix memory leaks found in GLContextGLX.cpp.
122383
122384        * platform/graphics/glx/GLContextGLX.cpp:
122385        (WebCore::GLContextGLX::cleanupActiveContextsAtExit): Removing element reduces
122386        size of the vector, so the loop termination condition was failing in the last
122387        iteration, when the vector contains more than one element. This patch fixes the
122388        issue by iterating the vector backwards, so the termination condition doesn't
122389        fail until the size() reaches 0.
122390        (WebCore::GLContextGLX::createPbufferContext): Delete GLXPbuffer
122391        returned by glXCreatePbuffer().
122392        (WebCore::GLContextGLX::createPixmapContext): Delete XVisualInfo
122393        returned by glXChooseVisual().
122394
1223952012-06-18  Gregg Tavares  <gman@google.com>
122396
122397        Expose WEBGL_depth_texture extension to WebGL
122398        https://bugs.webkit.org/show_bug.cgi?id=87029
122399        
122400        Reviewed by Kenneth Russell.
122401
122402        Test: fast/canvas/webgl/webgl-depth-texture.html
122403
122404        * CMakeLists.txt:
122405        * DerivedSources.make:
122406        * GNUmakefile.list.am:
122407        * Target.pri:
122408        * WebCore.gypi:
122409        * bindings/js/JSWebGLRenderingContextCustom.cpp:
122410        (WebCore::toJS):
122411        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
122412        (WebCore::toV8Object):
122413        * html/canvas/WebGLDepthTexture.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
122414        (WebCore):
122415        (WebCore::WebGLDepthTexture::WebGLDepthTexture):
122416        (WebCore::WebGLDepthTexture::~WebGLDepthTexture):
122417        (WebCore::WebGLDepthTexture::getName):
122418        (WebCore::WebGLDepthTexture::create):
122419        (WebCore::WebGLDepthTexture::supported):
122420        * html/canvas/WebGLDepthTexture.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
122421        (WebCore):
122422        (WebGLDepthTexture):
122423        * html/canvas/WebGLDepthTexture.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
122424        * html/canvas/WebGLExtension.h:
122425        * html/canvas/WebGLFramebuffer.cpp:
122426        (WebCore::WebGLFramebuffer::initializeAttachments):
122427        * html/canvas/WebGLRenderingContext.cpp:
122428        (WebCore):
122429        (WebCore::WebGLRenderingContext::validateSettableTexFormat):
122430        (WebCore::WebGLRenderingContext::copyTexImage2D):
122431        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
122432        (WebCore::WebGLRenderingContext::generateMipmap):
122433        (WebCore::WebGLRenderingContext::getExtension):
122434        (WebCore::WebGLRenderingContext::getSupportedExtensions):
122435        (WebCore::WebGLRenderingContext::texImage2DBase):
122436        (WebCore::WebGLRenderingContext::texImage2D):
122437        (WebCore::WebGLRenderingContext::texSubImage2DBase):
122438        (WebCore::WebGLRenderingContext::texSubImage2D):
122439        (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
122440        (WebCore::WebGLRenderingContext::validateTexFuncParameters):
122441        (WebCore::WebGLRenderingContext::validateTexFuncData):
122442        * html/canvas/WebGLRenderingContext.h:
122443        (WebCore):
122444        (WebGLRenderingContext):
122445        * platform/graphics/GraphicsContext3D.cpp:
122446        (WebCore::GraphicsContext3D::getClearBitsByAttachmentType):
122447        (WebCore):
122448        (WebCore::GraphicsContext3D::getClearBitsByFormat):
122449        * platform/graphics/GraphicsContext3D.h:
122450
1224512012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
122452
122453        Support File/DirectoryEntry access for <input type=file> if FileSystem API is enabled
122454        https://bugs.webkit.org/show_bug.cgi?id=88293
122455
122456        Reviewed by Tony Chang.
122457
122458        Proposal email on whatwg: http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-November/033814.html
122459        Proposal draft: http://wiki.whatwg.org/wiki/DragAndDropEntries
122460
122461        Test: fast/forms/file/input-file-entries.html
122462
122463        * Modules/filesystem/HTMLInputElementFileSystem.cpp: Added.
122464        * Modules/filesystem/HTMLInputElementFileSystem.h: Added.
122465        * Modules/filesystem/HTMLInputElementFileSystem.idl: Added.
122466        * WebCore.gypi:
122467        * html/FileInputType.cpp:
122468        (WebCore::FileInputType::receiveDroppedFiles): Retrieves dropped file
122469        system Id if the given DragData has it.
122470        (WebCore::FileInputType::droppedFileSystemId): Added. This returns
122471        dropped file system Id retrieved in receiveDroppedFiles, or an empty
122472        string if the platform does not support isolated file system for
122473        dropped files.
122474        * html/FileInputType.h:
122475        * html/HTMLInputElement.cpp:
122476        (WebCore::HTMLInputElement::droppedFileSystemId): Added.
122477        * html/HTMLInputElement.h:
122478        * html/InputType.cpp:
122479        (WebCore::InputType::droppedFileSystemId): Added.
122480        * html/InputType.h:
122481        * platform/DragData.cpp:
122482        * platform/DragData.h:
122483        * platform/chromium/DragDataChromium.cpp:
122484        (WebCore::DragData::droppedFileSystemId): Added.
122485
1224862012-06-18  Shinya Kawanaka  <shinyak@chromium.org>
122487
122488        [Crash][Editing] VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries() crashes in some Shadow DOM case.
122489        https://bugs.webkit.org/show_bug.cgi?id=88500
122490
122491        Reviewed by Ryosuke Niwa.
122492
122493        When selecting from a child of shadow host to an element in Shadow DOM, the start position of
122494        Selection comes after the end position of Selection in some cases. This caused a crash.
122495
122496        For example, let's think '<div id="host">A</div>D' and host has a Shadow DOM whose innerHTML
122497        is 'B<content></content>C'. When selecting from just after A (p1 = (PositionIsOffsetInAnchor,
122498        #text, 1)) to just before B (p2 = (PositionIsOffsetInAnchor, shadowRoot, 0)), since
122499        comparePosition always judge as p2 is before p1, m_start and m_end in VisibleSelection
122500        will be p2 and p1 respectively.
122501
122502        However, the anchorNodes of p1 and p2 have the different tree scope, we have to adjust p2 to
122503        the same tree scope as p1. Since p2 is m_start, m_start was adjusted to positionAfterNode(div).
122504        This breaks the assumption that m_start is always before (or equal to) m_end.
122505
122506        This patch keeps the assumption. When we cannot move m_start to positionAfterNode(div),
122507        we move m_start to positionBeforeNode(div). Note that we cannot always move m_start to
122508        positionBeforeNode(div), because when selecting just after D (p3 = (PositionIsOffsetInAnchor,
122509        D's parent, 2), we don't want to select A.
122510
122511        In this case, m_start should be adjusted to positionAfterNode(div).
122512
122513        Test: editing/shadow/breaking-editing-boundaries.html
122514
122515        * editing/VisibleSelection.cpp:
122516        (WebCore::adjustPositionForEnd):
122517        (WebCore):
122518        (WebCore::adjustPositionForStart):
122519        (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
122520        * editing/VisibleSelection.h:
122521        (VisibleSelection):
122522
1225232012-06-18  Mike Lawther  <mikelawther@chromium.org>
122524
122525        Crash when setting title dynamically
122526        https://bugs.webkit.org/show_bug.cgi?id=88083
122527
122528        Reviewed by Dan Bernstein.
122529
122530        Test: fast/text/title-crash.html
122531
122532        The crashing code takes a rare branch in StyleResolver::styleForElement() where
122533        m_parentStyle is set to point to m_style. Consequently, while applying properties
122534        to m_style we end up mutating m_parentStyle.
122535
122536        In this situation, we clone style() and point m_parentStyle at the clone. The
122537        clone is destroyed at the end of StyleResolver::styleForElement().
122538
122539        * css/StyleResolver.cpp:
122540        (WebCore::StyleResolver::collectMatchingRulesForList):
122541
1225422012-06-18  Adrienne Walker  <enne@google.com>
122543
122544        RenderLayerBacking sometimes doesn't attach scrollbars to graphics layer tree
122545        https://bugs.webkit.org/show_bug.cgi?id=89402
122546
122547        Reviewed by James Robinson.
122548
122549        RenderLayerBacking only attaches scrollbar layers to the graphics
122550        layer tree if there's a clip layer. This is wrong, because these
122551        scrollbars become orphans and other code expects them to handle
122552        repainting the scrollbars (which now become invisible). Fix by always
122553        attaching scrollbar layers.
122554
122555        Test: compositing/overflow/image-load-overflow-scrollbars.html
122556
122557        * rendering/RenderLayerBacking.cpp:
122558        (WebCore::RenderLayerBacking::updateInternalHierarchy):
122559
1225602012-06-18  Amy Ousterhout  <aousterh@chromium.org>
122561
122562        [Chromium] DeviceOrientation Cleanup
122563        https://bugs.webkit.org/show_bug.cgi?id=89354
122564
122565        Reviewed by Kent Tamura.
122566
122567        No new tests because there is no intended change in behavior.
122568
122569        * platform/mock/DeviceOrientationClientMock.h: added OVERRIDE specifier for virtual functions
122570        (DeviceOrientationClientMock):
122571
1225722012-06-18  Christophe Dumez  <christophe.dumez@intel.com>
122573
122574        [EFL] media/video-seek-past-end-playing.html is flaky
122575        https://bugs.webkit.org/show_bug.cgi?id=89301
122576
122577        Reviewed by Philippe Normand.
122578
122579        Switch to double for media duration and playback position
122580        calculations to avoid precision problems.
122581        This patch also removes the workaround for the precision
122582        problem in didEnd() which is no longer needed.
122583
122584        Test: media/video-seek-past-end-playing.html
122585
122586        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
122587        (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
122588        (WebCore::MediaPlayerPrivateGStreamer::duration):
122589
1225902012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
122591
122592        Unreviewed, rolling out r120593.
122593        http://trac.webkit.org/changeset/120593
122594        https://bugs.webkit.org/show_bug.cgi?id=89404
122595
122596        Caused failures in fast/forms/file/input-file-entries.html
122597        (Requested by atwilson on #webkit).
122598
122599        * Modules/filesystem/DOMFileSystem.cpp:
122600        (WebCore::DOMFileSystem::createIsolatedFileSystem):
122601        * Modules/filesystem/HTMLInputElementFileSystem.cpp: Removed.
122602        * Modules/filesystem/HTMLInputElementFileSystem.h: Removed.
122603        * Modules/filesystem/HTMLInputElementFileSystem.idl: Removed.
122604        * WebCore.gypi:
122605        * html/FileInputType.cpp:
122606        (WebCore::FileInputType::receiveDroppedFiles):
122607        * html/FileInputType.h:
122608        (FileInputType):
122609        * html/HTMLInputElement.cpp:
122610        * html/HTMLInputElement.h:
122611        (HTMLInputElement):
122612        * html/InputType.cpp:
122613        * html/InputType.h:
122614        (InputType):
122615        * platform/DragData.cpp:
122616        (WebCore::DragData::modifierKeyState):
122617        (WebCore):
122618        * platform/DragData.h:
122619        (DragData):
122620        * platform/chromium/DragDataChromium.cpp:
122621
1226222012-06-14  James Robinson  <jamesr@chromium.org>
122623
122624        [chromium] Use WebImageLayer in GraphicsLayerChromium for image layers
122625        https://bugs.webkit.org/show_bug.cgi?id=89150
122626
122627        Reviewed by Adrienne Walker.
122628
122629        Uses WebImageLayer instead of ImageLayerChromium for GraphicsLayerChromium::setContentsToImage.
122630
122631        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
122632        (WebCore::GraphicsLayerChromium::setContentsToImage):
122633
1226342012-06-14  James Robinson  <jamesr@chromium.org>
122635
122636        [chromium] GraphicsLayerChromium should use WebContentLayer directly
122637        https://bugs.webkit.org/show_bug.cgi?id=89145
122638
122639        Reviewed by Adrienne Walker.
122640
122641        Ports GraphicsLayerChromium (or more specifically OpaqueRectTrackingContentLayerDelegate) to implement
122642        WebContentLayerClient instead of ContentLayerDelegate. In addition to the mechanical changes, this requires
122643        eagerly setting drawsContent on GraphicsLayerChromium::m_layer since WebContentLayerImpl's default value is
122644        different from LayerChromium's. Covered by all of compositing/
122645
122646        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
122647        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
122648        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
122649        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
122650        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
122651        (OpaqueRectTrackingContentLayerDelegate):
122652
1226532012-06-18  David Barr  <davidbarr@chromium.org>
122654
122655        Add from-image to css3-images image-resolution
122656        https://bugs.webkit.org/show_bug.cgi?id=85451
122657
122658        Reviewed by Tony Chang.
122659
122660        The css3-images module is at candidate recommendation.
122661        http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-resolution
122662
122663        No new tests; extended fast/css/image-resolution/image-resolution.html
122664
122665        * css/CSSParser.cpp: Accept from-image identifier in image-resolution property.
122666        (WebCore::CSSParser::parseImageResolution): Map CSSValueFromImage to identifier value from cssValuePool.
122667        * css/CSSValueKeywords.in: Add from-image.
122668        * css/StyleBuilder.cpp: Extend ApplyPropertyImageResolution to apply RenderStyle::imageResolutionSource.
122669        (WebCore::ApplyPropertyImageResolution::applyInheritValue): Apply RenderStyle::imageResolutionSource.
122670        (WebCore::ApplyPropertyImageResolution::applyInitialValue): Apply RenderStyle::imageResolutionSource.
122671        (WebCore::ApplyPropertyImageResolution::applyValue): Map CSSValueFromImage to ImageResolutionFromImage.
122672        * rendering/RenderImage.cpp: Extend conditions for recalculation of intrinsic size.
122673        (WebCore::RenderImage::styleDidChange): Update intrinsic size if RenderStyle::imageResolutionSource() has changed.
122674        * rendering/style/RenderStyle.cpp: Include StyleRareInheritedData::m_imageResolutionSource in style diff.
122675        (WebCore::RenderStyle::diff): Map change in StyleRareInheritedData::m_imageResolutionSource to StyleDifferenceLayout.
122676        * rendering/style/RenderStyle.h: Add RenderStyle::imageResolutionSource, RenderStyle::setImageResolutionSource, RenderStyle::initialImageResolutionSource.
122677        * rendering/style/RenderStyleConstants.h: Add enum ImageResolutionSource.
122678        * rendering/style/StyleRareInheritedData.cpp: Add StyleRareInheritedData::m_imageResolutionSource.
122679        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageResolutionSource to default and copy constructor.
122680        (WebCore::StyleRareInheritedData::operator==): Include m_imageResolutionSource in comparison.
122681        * rendering/style/StyleRareInheritedData.h: Add StyleRareInheritedData::m_imageResolutionSource.
122682        (StyleRareInheritedData): Add 1-bit field StyleRareInheritedData::m_imageResolutionSource.
122683
1226842012-06-18  James Robinson  <jamesr@chromium.org>
122685
122686        [chromium] REGRESSION(r120346) ContentLayerPainter should clear rect to be painted
122687        https://bugs.webkit.org/show_bug.cgi?id=89376
122688
122689        Reviewed by Adrienne Walker.
122690
122691        In r120346, a refactor moved a clearRect()/clip() call from ContentLayerPainter - which all
122692        ContentLayerChromiums use - out to OpaqueRectTrackingContentLayerDelegate - which all GraphicsLayerChromium
122693        backed layers use, but which callers using WebContentLayer directly do not use. This meant that the canvas
122694        wasn't cleared/clipped as WebContentLayerClient.h claimed it would be. This moves the clear and the clip
122695        into CanvasLayerTextureUpdater which all paths use, including layers that don't use the ContentLayerPainter.
122696
122697        * platform/graphics/chromium/ContentLayerChromium.cpp:
122698        (WebCore::ContentLayerPainter::paint):
122699        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
122700        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
122701
1227022012-06-18  Igor Oliveira  <igor.o@sisa.samsung.com>
122703
122704        Unreviewed, rolling out r120119.
122705        http://trac.webkit.org/changeset/120119
122706
122707        Multiple regressions on ClusterFuzz
122708
122709        * page/animation/AnimationBase.cpp:
122710        (WebCore::AnimationBase::updateStateMachine):
122711        * page/animation/AnimationController.cpp:
122712        (WebCore::AnimationControllerPrivate::updateAnimations):
122713        (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
122714        (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
122715        (WebCore::AnimationController::cancelAnimations):
122716        (WebCore::AnimationController::updateAnimations):
122717        * page/animation/ImplicitAnimation.cpp:
122718        (WebCore::ImplicitAnimation::pauseAnimation):
122719        (WebCore::ImplicitAnimation::sendTransitionEvent):
122720        * page/animation/KeyframeAnimation.cpp:
122721        (WebCore::KeyframeAnimation::KeyframeAnimation):
122722        (WebCore::KeyframeAnimation::pauseAnimation):
122723        (WebCore::KeyframeAnimation::endAnimation):
122724        (WebCore::KeyframeAnimation::sendAnimationEvent):
122725        * rendering/RenderBlock.cpp:
122726        (WebCore::RenderBlock::updateFirstLetterStyle):
122727        (WebCore::RenderBlock::createFirstLetterRenderer):
122728        * rendering/RenderInline.cpp:
122729        (WebCore::RenderInline::clippedOverflowRectForRepaint):
122730        * rendering/RenderObject.cpp:
122731        * rendering/RenderObject.h:
122732        (RenderObject):
122733
1227342012-06-18  Ryosuke Niwa  <rniwa@webkit.org>
122735
122736        REGRESSION(r118414): some pages on concursolutions.com doesn't show up
122737        https://bugs.webkit.org/show_bug.cgi?id=89399
122738
122739        Reviewed by Adam Barth.
122740
122741        The bug was caused by insertAdjacentHTML's not passing context element to createFragmentForInnerOuterHTML.
122742
122743        Test: fast/html/adjacent-html-context-element.html
122744
122745        * html/HTMLElement.cpp:
122746        (WebCore::HTMLElement::insertAdjacentHTML):
122747
1227482012-06-18  Zhenyao Mo  <zmo@google.com>
122749
122750        Fix framebuffer-object-attachment.html failures
122751        https://bugs.webkit.org/show_bug.cgi?id=89387
122752
122753        Reviewed by Kenneth Russell.
122754
122755        * html/canvas/WebGLFramebuffer.cpp: fix detachment behavior with depth/stencil/depth_stencil conflicts
122756        (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
122757        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
122758        * html/canvas/WebGLFramebuffer.h:
122759        (WebGLFramebuffer):
122760        * html/canvas/WebGLRenderingContext.cpp:
122761        (WebCore):
122762        (WebCore::WebGLRenderingContext::framebufferRenderbuffer): move logic to WebGLFramebuffer
122763        (WebCore::WebGLRenderingContext::framebufferTexture2D): Ditto.
122764        (WebCore::WebGLRenderingContext::getParameter): Correct the wrong assumption that it's always checking the drawingbuffer's DEPTH_BITS/STENCIL_BITS
122765        * html/canvas/WebGLRenderingContext.h:
122766        (WebGLRenderingContext):
122767
1227682012-06-18  Ian Vollick  <vollick@chromium.org>
122769
122770        [chromium] Ensure that skipping frames during an accelerated animation doesn't cause starvation
122771        https://bugs.webkit.org/show_bug.cgi?id=87766
122772
122773        Reviewed by James Robinson.
122774
122775        Unit tests:
122776            CCLayerTreeHostTestCheckerboardDoesNotStarveDraws.runMultiThread
122777            CCSchedulerStateMachineTest.TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit
122778
122779        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
122780        (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
122781        (WebCore::CCSchedulerStateMachine::updateState):
122782        (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
122783        (WebCore::CCSchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced):
122784        (WebCore):
122785        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
122786        (CCSchedulerStateMachine):
122787
1227882012-06-18  Nico Weber  <thakis@chromium.org>
122789
122790        [chromium/mac] Unbreak smooth scrolling.
122791        https://bugs.webkit.org/show_bug.cgi?id=89327
122792
122793        Reviewed by Dimitri Glazkov.
122794
122795        Broken by Sam in r115589 / r115591.
122796
122797        * platform/mac/ScrollAnimatorMac.mm:
122798        (WebCore::scrollAnimationEnabledForSystem):
122799
1228002012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
122801
122802        Unreviewed, rolling out r120541, r120547, and r120548.
122803        http://trac.webkit.org/changeset/120541
122804        http://trac.webkit.org/changeset/120547
122805        http://trac.webkit.org/changeset/120548
122806        https://bugs.webkit.org/show_bug.cgi?id=89383
122807
122808        This approach doesn't work for WebKit2 (Requested by abarth on
122809        #webkit).
122810
122811        * testing/InternalSettings.cpp:
122812        (WebCore::InternalSettings::InternalSettings):
122813        (WebCore::InternalSettings::restoreTo):
122814        * testing/InternalSettings.h:
122815        (InternalSettings):
122816
1228172012-06-18  Yong Li  <yoli@rim.com>
122818
122819        [BlackBerry] NetworkJob::startNewJobWithRequest() should check the frame pointer
122820        https://bugs.webkit.org/show_bug.cgi?id=89369
122821
122822        Reviewed by Antonio Gomes.
122823
122824        NetworkJob::startNewJobWithRequest() should stop proceeding if the frame is null,
122825        which means it is a PingLoader job and should just finish now.
122826
122827        * platform/network/blackberry/NetworkJob.cpp:
122828        (WebCore::NetworkJob::startNewJobWithRequest):
122829
1228302012-06-18  Dan Bernstein  <mitz@apple.com>
122831
122832        Ideographic comma and full-stops are mishandled in linebreak
122833        https://bugs.webkit.org/show_bug.cgi?id=87041
122834
122835        Reviewed by Alexey Proskuryakov.
122836
122837        Test: fast/text/line-breaks-after-ideographic-comma-or-full-stop-2.html
122838
122839        Specifically, line breaks were always allowed after an ideographic comma or full stop, even
122840        before a closing bracket.
122841
122842        * rendering/break_lines.cpp:
122843        (WebCore::shouldBreakAfter): Removed code that unconditionally allowed line breaks after
122844        ideographic commas and full stops, which was added for <http://webkit.org/b/17411> to work
122845        around an issue in Unicode 5.0. Current line break iterator implementations are based on
122846        newer versions of Unicode, which do not have that issue, so we can use them instead of the
122847        hardcoded approximate rule.
122848
1228492012-06-18  Martin Robinson  <mrobinson@igalia.com>
122850
122851        [TextureMapper] Rename shader variables to match the naming scheme of the newer filter shaders
122852        https://bugs.webkit.org/show_bug.cgi?id=89324
122853
122854        Reviewed by Noam Rosenthal.
122855
122856        Rename shader variables to align them with those in the new filter shaders.
122857
122858        No new tests. This is just a simple refactor.
122859
122860        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
122861        Rename shader variables so that uniforms are prefixed by "u_", attributes by "a_",
122862        and texture samplers by "s_".
122863
1228642012-06-18  Alexei Filippov  <alexeif@chromium.org>
122865
122866        Web Inspector: Implement native memory bar diagram
122867        https://bugs.webkit.org/show_bug.cgi?id=89106
122868
122869        Reviewed by Pavel Feldman.
122870
122871        * inspector/front-end/NativeMemorySnapshotView.js:
122872        (WebInspector.NativeMemoryBarChart):
122873        (WebInspector.NativeMemoryBarChart.prototype._updateStats):
122874        (WebInspector.NativeMemoryBarChart.prototype.willHide):
122875        (WebInspector.NativeMemoryBarChart.prototype.wasShown):
122876        (WebInspector.NativeMemoryBarChart.prototype._updateView):
122877        * inspector/front-end/ProfileLauncherView.js:
122878        (WebInspector.ProfileLauncherView):
122879        * inspector/front-end/nativeMemoryProfiler.css:
122880        (.memory-bar-chart-name):
122881        (.memory-bar-chart-bar):
122882        (.memory-bar-chart-size):
122883        (.memory-bar-chart-total):
122884
1228852012-06-18  Mike West  <mkwst@chromium.org>
122886
122887        Crash in CSPSource::parseSource
122888        https://bugs.webkit.org/show_bug.cgi?id=89353
122889
122890        Reviewed by Adam Barth.
122891
122892        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-malformed-meta.html
122893
122894        * page/ContentSecurityPolicy.cpp:
122895        (WebCore::CSPSourceList::parseSource):
122896            Checking that we're not past the end of the string before deref.
122897
1228982012-06-18  Robert Hogan  <robert@webkit.org>
122899
122900        CSS 2.1 failure: table-height-algorithm-012 fails
122901        https://bugs.webkit.org/show_bug.cgi?id=85652
122902
122903        Reviewed by Julien Chaffraix.
122904
122905        Test: css2.1/20110323/table-height-algorithm-012.htm
122906              fast/css/vertical-align-baseline-rowspan-001.htm
122907              fast/css/vertical-align-baseline-rowspan-002.htm
122908              fast/css/vertical-align-baseline-rowspan-003.htm
122909              fast/css/vertical-align-baseline-rowspan-004.htm
122910              fast/css/vertical-align-baseline-rowspan-005.htm
122911              fast/css/vertical-align-baseline-rowspan-006.htm
122912              fast/css/vertical-align-baseline-rowspan-007.htm
122913              fast/css/vertical-align-baseline-rowspan-008.htm
122914              fast/css/vertical-align-baseline-rowspan-009.htm
122915
122916        A spanning cell with Vertical-align set to 'baseline' should align the cell's content baseline 
122917        (which is the bottom of the first line of text or in-flow content) with the baseline of the first of the rows it spans.
122918
122919        * rendering/RenderTableSection.cpp:
122920        (WebCore::RenderTableSection::calcRowLogicalHeight): Only calculate the baseline for the first row in a rowspan. This
122921          ensures that any height added to the rowspan from the baseline is only added to the first row in the span rather than
122922          to each of them.
122923        (WebCore::RenderTableSection::layoutRows): Rather than get the baseline for each row in a rowspan (with the result that
122924          only the baseline for the last row actually sticks), calculate it for the first row in the rowspan only. This function is
122925          inefficient when handling rowspans so this doesn't fix the fact that redundant calculations are performed on each subsequent
122926          row in the span - that should be done separately.
122927
1229282012-06-18  Hayato Ito  <hayato@chromium.org>
122929
122930        Event dispatcher should use InsertionPoint::hasDistribution instead of InsertinPoint::isActive in re-targeting.
122931        https://bugs.webkit.org/show_bug.cgi?id=89180
122932
122933        Reviewed by Dimitri Glazkov.
122934
122935        If an event is fired on a fallback element within a insertion
122936        point which does not select any nodes, the result of event's
122937        re-targeting will be wrong since it uses
122938        InsertionPoint::isActive() to judge an existence of a lower boundary.
122939        That must use InsertionPoint::hasDistribution().
122940
122941        Test: fast/dom/shadow/shadow-dom-event-dispatching.html
122942
122943        * dom/EventDispatcher.cpp:
122944        (WebCore::EventDispatcher::ensureEventAncestors):
122945
1229462012-06-18  Tony Payne  <tpayne@chromium.org>
122947
122948       [chromium] Add iccjpeg and qcms to chromium port
122949       https://bugs.webkit.org/show_bug.cgi?id=81974
122950
122951       Reviewed by Adam Barth.
122952
122953       Covered by existing layout tests which will be rebaselined.
122954
122955       * WebCore.gyp/WebCore.gyp: Add qcms to the build.
122956       * platform/image-decoders/ImageDecoder.h:
122957       (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Return an sRGB profile.
122958       On OSX, return the default RGB profile. Add FIXME to use the user's
122959       monitor profile and verify that profile for other platforms.
122960
122961       * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
122962       (turboSwizzled): For libjpeg-turbo, JCS_EXT_BGRA and JCS_EXT_RGBA are the
122963       two known output color spaces for which the decoder uses a data swizzle.
122964       (colorSpaceHasAlpha): JPEG's have no alpha in the output color space. For
122965       libjpeg-turbo, alpha may be present in the swizzled output color space.
122966
122967       (WebCore::JPEGImageReader::JPEGImageReader):
122968       (WebCore::JPEGImageReader::close):
122969       (WebCore::JPEGImageReader::decode): For QCMSLIB, create the color transform
122970       to use during decoding, and ensure we switch to inputing RGBA data to qcms
122971       even if the desired output data is BGRA: outputScanlines() sends BGRA data
122972       to the frame buffer following color correction if needed.
122973       (JPEGImageReader):
122974       (WebCore::JPEGImageReader::colorTransform): qcms color transform getter.
122975       (WebCore::JPEGImageReader::createColorTransform): Create color transform.
122976       Release the existing transform (if any) and assign to the color transform
122977       created from the color profile data.
122978       (WebCore::JPEGImageDecoder::outputScanlines): Minor style fix. Apply color
122979       transform to each decoded image row.
122980
122981       * platform/image-decoders/png/PNGImageDecoder.cpp:
122982       (WebCore::PNGImageReader::PNGImageReader):
122983       (WebCore::PNGImageReader::close):
122984       (WebCore::PNGImageReader::currentBufferSize): Move this adjacent to other
122985       setters and getters.
122986       (WebCore::PNGImageReader::decodingSizeOnly): Ditto.
122987       (WebCore::PNGImageReader::setHasAlpha): Ditto.
122988       (WebCore::PNGImageReader::hasAlpha): Ditto.
122989       (WebCore::PNGImageReader::interlaceBuffer): Ditto.
122990       (WebCore::PNGImageReader::createRowBuffer): Creates a temporary row buffer,
122991       used when a color transform is applied to the decoded image pixels.
122992       (WebCore::PNGImageReader::rowBuffer): Return the temporary row buffer.
122993       (WebCore::PNGImageReader::colorTransform): qcms color transform getter.
122994       (WebCore::PNGImageReader::createColorTransform): Create color transform.
122995       Release the existing transform (if any) and assign to the color transform
122996       created from the color profile data.
122997       (WebCore::PNGImageDecoder::headerAvailable): For QCMSLIB, create the color
122998       transform to use for decoding. Clear m_colorProfile (not used anymore).
122999       (WebCore::PNGImageDecoder::rowAvailable): Create temporary row buffer if
123000       a color transform is needed for decoding. Apply color transform to each
123001       decoded image row.
123002
123003       * platform/image-decoders/skia/ImageDecoderSkia.cpp:
123004       (WebCore::ImageFrame::setColorProfile): Old method of colorProfiles is no
123005       longer used. Add a FIXME to remove the old implementation.
123006       (WebCore::ImageFrame::setStatus): Remove old color correction code.
123007
1230082012-06-18  Dan Bernstein  <mitz@apple.com>
123009
123010        Column progression direction cannot be set independently of writing direction
123011        https://bugs.webkit.org/show_bug.cgi?id=89315
123012
123013        Added a column-progression property, which can have the values 'normal' and 'reverse'. When
123014        set to 'reverse', the first column is positioned at the end side of the block, and
123015        subsequent columns go from the in the start direction (in the inline column axis case; in
123016        the block column axis case, the first column coincides with the block and subsequent columns
123017        go before the block).
123018
123019        Reviewed by Darin Adler.
123020
123021        Test: fast/multicol/progression-reverse.html
123022
123023        * css/CSSComputedStyleDeclaration.cpp:
123024        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added handling of the new
123025        property.
123026
123027        * css/CSSParser.cpp:
123028        (WebCore::CSSParser::parseValue): Added validity check for the new property. The valid
123029        values are the identifiers 'normal' and 'reverse'.
123030        * css/CSSPrimitiveValueMappings.h:
123031        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added this mapping from ColumnProgression
123032        enum values to the identifiers 'normal and 'reverse'.
123033        (WebCore::CSSPrimitiveValue::operator ColumnProgression): Added this mapping from the
123034        identifiers 'normal' and 'reverse' to ColumnProgression enum values.
123035        * css/CSSProperty.cpp:
123036        (WebCore::CSSProperty::isInheritedProperty): Added the new property to the set of
123037        non-inherited properties.
123038        * css/CSSPropertyNames.in: Added -webkit-column-progression.
123039        * css/StyleBuilder.cpp:
123040        (WebCore::StyleBuilder::StyleBuilder): Added a handler for the new property.
123041        * rendering/ColumnInfo.h:
123042        (WebCore::ColumnInfo::ColumnInfo): Added an initializer for the m_progressionIsReversed
123043        member variable.
123044        (WebCore::ColumnInfo::progressionIsReversed): Added this accessor.
123045        (WebCore::ColumnInfo::setProgressionIsReversed): Ditto.
123046        (ColumnInfo): Added a m_progressionIsReversed member variable.
123047        * rendering/RenderBlock.cpp:
123048        (WebCore::RenderBlock::paintColumnRules): Changed to advance in the reverse direction if
123049        needed.
123050        (WebCore::RenderBlock::setDesiredColumnCountAndWidth): Added call to
123051        ColumnInfo::setProgressionIsReversed(), based on the new property.
123052        (WebCore::RenderBlock::columnRectAt): Changed to take the progression direction into
123053        account.
123054        * rendering/style/RenderStyle.h: Added accessors and initial value for column progression.
123055        * rendering/style/RenderStyleConstants.h: Added ColumnProgression enum.
123056        * rendering/style/StyleMultiColData.cpp:
123057        (WebCore::StyleMultiColData::StyleMultiColData): Added initializer for the m_progression
123058        member variable.
123059        (WebCore::StyleMultiColData::operator==): Added equality check for m_progression.
123060        * rendering/style/StyleMultiColData.h:
123061        (StyleMultiColData): Added m_progression member variable.
123062
1230632012-06-18  Martin Robinson  <mrobinson@igalia.com>
123064
123065        [TextureMapper] Replace the source transform with a flip uniform
123066        https://bugs.webkit.org/show_bug.cgi?id=89317
123067
123068        Reviewed by Noam Rosenthal.
123069
123070        No new tests. This should not change any observable behavior.
123071
123072        * platform/graphics/texmap/TextureMapperGL.cpp: Instead of building and passing
123073        the m4src matrix to the shader, just pass a single uniform that says whether or
123074        not the texture should be flipped.
123075        * platform/graphics/texmap/TextureMapperShaderManager.cpp: Change the shader programs
123076        to deal with a flip variable rather than a source matrix.
123077        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram): Instead of getting the location
123078        of the source matrix, get the location of the flip uniform.
123079        (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple): Ditto.
123080        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple): Ditto.
123081        (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask): Ditto.
123082        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::TextureMapperShaderProgramRectOpacityAndMask): Ditto.
123083        * platform/graphics/texmap/TextureMapperShaderManager.h:
123084        (WebCore::TextureMapperShaderProgram::flipLocation): Added this getter.
123085        (TextureMapperShaderProgram): Rename the source matrix location member to reflect above changes.
123086
1230872012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
123088
123089        Unreviewed, rolling out r120598.
123090        http://trac.webkit.org/changeset/120598
123091        https://bugs.webkit.org/show_bug.cgi?id=89359
123092
123093        Patch causes crashes on EFL and GTK release builds (Requested
123094        by zdobersek on #webkit).
123095
123096        * platform/graphics/Pattern.h:
123097        (Pattern):
123098        * platform/graphics/cairo/PlatformContextCairo.cpp:
123099        (WebCore::PlatformContextCairo::prepareForFilling):
123100        * platform/graphics/cairo/PlatformContextCairo.h:
123101
1231022012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
123103
123104        Unreviewed, rolling out r120592.
123105        http://trac.webkit.org/changeset/120592
123106        https://bugs.webkit.org/show_bug.cgi?id=89357
123107
123108        Broke v8 bindings on windows. (Requested by atwilson__ on
123109        #webkit).
123110
123111        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
123112        * bindings/js/ScriptDebugServer.cpp:
123113        * bindings/js/ScriptDebugServer.h:
123114        (ScriptDebugServer):
123115        * bindings/v8/DebuggerScript.js:
123116        (.):
123117        * bindings/v8/JavaScriptCallFrame.cpp:
123118        * bindings/v8/JavaScriptCallFrame.h:
123119        (JavaScriptCallFrame):
123120        * bindings/v8/ScriptDebugServer.cpp:
123121        * bindings/v8/ScriptDebugServer.h:
123122        * bindings/v8/ScriptFunctionCall.cpp:
123123        (WebCore::ScriptFunctionCall::call):
123124        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
123125        * inspector/InjectedScript.cpp:
123126        * inspector/InjectedScript.h:
123127        (InjectedScript):
123128        * inspector/InjectedScriptSource.js:
123129        * inspector/Inspector.json:
123130        * inspector/InspectorDebuggerAgent.cpp:
123131        (WebCore::InspectorDebuggerAgent::setScriptSource):
123132        * inspector/InspectorDebuggerAgent.h:
123133        (InspectorDebuggerAgent):
123134        * inspector/JavaScriptCallFrame.idl:
123135
1231362012-06-18  Julien Chaffraix  <jchaffraix@webkit.org>
123137
123138        RenderTableSection wastes vector capacity
123139        https://bugs.webkit.org/show_bug.cgi?id=86561
123140
123141        Reviewed by Antti Koivisto.
123142
123143        Memory optimization, covered by existing tests.
123144
123145        The issue is that addChild calls Vector::grow() which can over-allocate our row grid (especially
123146        for small tables as we allocate at least 16 entries). As we don't know if addChild is called
123147        in a loop (e.g. during parsing), we postpone the shrinkToFit call at layout time.
123148
123149        (WebCore::RenderTableSection::layout):
123150        Added a shrinkToFit call with some explanation as to why it's good trade-off to do it now.
123151
1231522012-06-18  Takashi Sakamoto  <tasak@google.com>
123153
123154        webkit fails IETC border-radius-clip-002
123155        https://bugs.webkit.org/show_bug.cgi?id=83205
123156
123157        Added addRoundedRectClip instead of just clip when clipToBorderRadius
123158        is true and bgLayer->clip() == ContentFillBox.
123159
123160        Reviewed by Simon Fraser.
123161
123162        This change is covered by the existing test: ietestcenter/css3/bordersbackgrounds/border-radius-clip-002.
123163        However expected images should be updated. I updated chromium-linux
123164        and chromium-mac's expected images and removed chromium-win,
123165        chromium-mac-leopard and chromium-mac-snowleopard's expected images.
123166
123167        * rendering/RenderBoxModelObject.cpp:
123168        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
123169        As the code for "clipping to content boxes as necessary" doesn't
123170        consider border-radius or not, added the code for checking
123171        clipToBorderRadius or not, and if so, modified to use
123172        getBackgroundRoundedRect for obtaining rounded rect and to use
123173        addRoundedRectClip by using the obtained rounded rect.
123174
1231752012-06-18  Iain Merrick  <husky@google.com>
123176
123177        Allow updateFixedElementsAfterScrolling() to run during layout.       
123178        https://bugs.webkit.org/show_bug.cgi?id=84965
123179
123180        This is needed because HistoryController restores the previous scroll
123181        position during layout (because we don't want an ugly flash of wrongly-
123182        scrolled content).
123183
123184        Reviewed by Simon Fraser.
123185
123186        Test: compositing/fixed-position-scroll-offset-history-restore.html
123187
123188        * page/FrameView.cpp:
123189        (WebCore::FrameView::updateFixedElementsAfterScrolling):
123190
1231912012-06-18  Alexander Pavlov  <apavlov@chromium.org>
123192
123193        CSSOM wrappers are not built for rules in the per-document and page group user stylesheets
123194        https://bugs.webkit.org/show_bug.cgi?id=89221
123195
123196        Reviewed by Antti Koivisto.
123197
123198        The issue manifested itself by not displaying injected page group stylesheet data in the Styles pane.
123199
123200        Test: inspector/styles/inject-stylesheet.html
123201
123202        * css/StyleResolver.cpp:
123203        (WebCore::StyleResolver::collectMatchingRulesForList):
123204
1232052012-06-18  Dominik Röttsches  <dominik.rottsches@intel.com>
123206
123207        [cairo] Fix LayoutTests/fast/canvas/patternfill-repeat.html
123208        https://bugs.webkit.org/show_bug.cgi?id=53085
123209
123210        Reviewed by Martin Robinson.
123211
123212        Clipping previously unlimited vertical and horizontal pattern repeats with
123213        a clip rectangle similar to the Qt Graphics Context.
123214
123215        No new tests, this patch fixes
123216        canvas/philip/tests/2d.pattern.paint.repeat* tests.
123217
123218        * platform/graphics/Pattern.h:
123219        (WebCore::Pattern::getPatternSpaceTransform): Adding constant getter method to be able to map to pattern space externally, needed by PlatformContextCairo::clipForPatternFilling.
123220        * platform/graphics/cairo/PlatformContextCairo.cpp:
123221        (WebCore::PlatformContextCairo::prepareForFilling):
123222        (WebCore::PlatformContextCairo::clipForPatternFilling): Clip pattern repeats if needed.
123223        * platform/graphics/cairo/PlatformContextCairo.h:
123224
1232252012-06-18  Robert Kroeger  <rjkroege@chromium.org>
123226
123227        Touch events with default actions should be handled.
123228        https://bugs.webkit.org/show_bug.cgi?id=89304.
123229
123230        Reviewed by Kent Tamura.
123231
123232        Covered by existing tests and tests in blocked bug
123233        https://bugs.webkit.org/show_bug.cgi?id=88807
123234
123235        * page/EventHandler.cpp:
123236        (WebCore::EventHandler::handleTouchEvent): Return true that the touch event
123237        was handled for either preventDefault or defaultHandled.
123238
1232392012-06-18  Silvia Pfeiffer  <silviapf@chromium.org>
123240
123241        REGRESSION introduced in bug 88623: new shadowPseudoId elements need to get default styling.
123242        https://bugs.webkit.org/show_bug.cgi?id=89280
123243
123244        Reviewed by Eric Carlson.
123245
123246        No new tests; existing tests found this bug.
123247
123248        * css/html.css:
123249        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
123250        Add -webkit-media-slider-container to the default styling.
123251        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
123252        Add -webkit-media-slider-thumb to the default styling.
123253
1232542012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
123255
123256        Support File/DirectoryEntry access for <input type=file> if FileSystem API is enabled
123257        https://bugs.webkit.org/show_bug.cgi?id=88293
123258
123259        Reviewed by Tony Chang.
123260
123261        Proposal email on whatwg: http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-November/033814.html
123262        Proposal draft: http://wiki.whatwg.org/wiki/DragAndDropEntries
123263
123264        Test: fast/forms/file/input-file-entries.html
123265
123266        * Modules/filesystem/HTMLInputElementFileSystem.cpp: Added.
123267        * Modules/filesystem/HTMLInputElementFileSystem.h: Added.
123268        * Modules/filesystem/HTMLInputElementFileSystem.idl: Added.
123269        * WebCore.gypi:
123270        * html/FileInputType.cpp:
123271        (WebCore::FileInputType::receiveDroppedFiles): Retrieves dropped file
123272        system Id if the given DragData has it.
123273        (WebCore::FileInputType::droppedFileSystemId): Added. This returns
123274        dropped file system Id retrieved in receiveDroppedFiles, or an empty
123275        string if the platform does not support isolated file system for
123276        dropped files.
123277        * html/FileInputType.h:
123278        * html/HTMLInputElement.cpp:
123279        (WebCore::HTMLInputElement::droppedFileSystemId): Added.
123280        * html/HTMLInputElement.h:
123281        * html/InputType.cpp:
123282        (WebCore::InputType::droppedFileSystemId): Added.
123283        * html/InputType.h:
123284        * platform/DragData.cpp:
123285        * platform/DragData.h:
123286        * platform/chromium/DragDataChromium.cpp:
123287        (WebCore::DragData::droppedFileSystemId): Added.
123288
1232892012-06-18  Peter Rybin  <peter.rybin@gmail.com>
123290
123291        Web Inspector: Support 'Restart frame' in protocol and backend
123292        https://bugs.webkit.org/show_bug.cgi?id=89147
123293
123294        Reviewed by Yury Semikhatsky.
123295
123296        Inspector.json got new command in Debugger domain.
123297        A call path from InspectorDebuggerAgent to V8 Debug.LiveEdit.RestartFrame API
123298        is built.
123299        JSC implementation is a stub with fix me (40300). 
123300
123301        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
123302        (WebCore::JSJavaScriptCallFrame::restart):
123303        (WebCore):
123304        * bindings/js/JavaScriptCallFrame.h:
123305        (JavaScriptCallFrame):
123306        * bindings/js/ScriptDebugServer.cpp:
123307        (WebCore):
123308        (WebCore::ScriptDebugServer::updateCallStack):
123309        * bindings/js/ScriptDebugServer.h:
123310        (ScriptDebugServer):
123311        * bindings/v8/DebuggerScript.js:
123312        (.):
123313        * bindings/v8/JavaScriptCallFrame.cpp:
123314        (WebCore::JavaScriptCallFrame::restart):
123315        (WebCore):
123316        * bindings/v8/JavaScriptCallFrame.h:
123317        (JavaScriptCallFrame):
123318        * bindings/v8/ScriptDebugServer.cpp:
123319        (WebCore):
123320        (WebCore::ScriptDebugServer::updateCallStack):
123321        * bindings/v8/ScriptDebugServer.h:
123322        * bindings/v8/ScriptFunctionCall.cpp:
123323        (WebCore::ScriptFunctionCall::call):
123324        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
123325        (WebCore::V8JavaScriptCallFrame::restartCallback):
123326        (WebCore):
123327        * inspector/InjectedScript.cpp:
123328        (WebCore::InjectedScript::restartFrame):
123329        (WebCore):
123330        * inspector/InjectedScript.h:
123331        (InjectedScript):
123332        * inspector/InjectedScriptSource.js:
123333        (.):
123334        * inspector/Inspector.json:
123335        * inspector/InspectorDebuggerAgent.cpp:
123336        (WebCore::InspectorDebuggerAgent::restartFrame):
123337        * inspector/InspectorDebuggerAgent.h:
123338        (InspectorDebuggerAgent):
123339        * inspector/JavaScriptCallFrame.idl:
123340
1233412012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
123342
123343        Unreviewed, rolling out r120485 and r120582.
123344        http://trac.webkit.org/changeset/120485
123345        http://trac.webkit.org/changeset/120582
123346        https://bugs.webkit.org/show_bug.cgi?id=89345
123347
123348        chromeos tree breakage (Requested by morrita on #webkit).
123349
123350        * WebCore.gyp/WebCore.gyp:
123351        * platform/image-decoders/ImageDecoder.h:
123352        (ImageFrame):
123353        (ImageDecoder):
123354        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
123355        (turboSwizzled):
123356        (WebCore::JPEGImageReader::JPEGImageReader):
123357        (WebCore::JPEGImageReader::close):
123358        (WebCore::JPEGImageReader::decode):
123359        (JPEGImageReader):
123360        (WebCore::JPEGImageDecoder::outputScanlines):
123361        * platform/image-decoders/png/PNGImageDecoder.cpp:
123362        (WebCore::PNGImageReader::PNGImageReader):
123363        (WebCore::PNGImageReader::close):
123364        (WebCore::PNGImageReader::currentBufferSize):
123365        (PNGImageReader):
123366        (WebCore::PNGImageReader::decodingSizeOnly):
123367        (WebCore::PNGImageReader::interlaceBuffer):
123368        (WebCore::PNGImageReader::hasAlpha):
123369        (WebCore::PNGImageReader::setHasAlpha):
123370        (WebCore::PNGImageDecoder::headerAvailable):
123371        (WebCore::PNGImageDecoder::rowAvailable):
123372        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
123373        (WebCore):
123374        (WebCore::resolveColorSpace):
123375        (WebCore::createColorSpace):
123376        (WebCore::ImageFrame::setColorProfile):
123377        (WebCore::ImageFrame::setStatus):
123378
1233792012-06-18  Alexei Filippov  <alexeif@chromium.org>
123380
123381        Web Inspector: Add heap profiler owned memory to the pie chart
123382        https://bugs.webkit.org/show_bug.cgi?id=89203
123383
123384        Heap profiler may consume considerable amount of memory
123385        which is currently falls into Unknown category.
123386        Give it a separate sector on the pie chart.
123387
123388        Reviewed by Yury Semikhatsky.
123389
123390        * bindings/js/ScriptProfiler.h:
123391        (WebCore::ScriptProfiler::profilerSnapshotsSize):
123392        * bindings/v8/ScriptProfiler.cpp:
123393        (WebCore::ScriptProfiler::profilerSnapshotsSize):
123394        (WebCore):
123395        * bindings/v8/ScriptProfiler.h:
123396        (ScriptProfiler):
123397        * inspector/InspectorMemoryAgent.cpp:
123398        (MemoryBlockName):
123399        (WebCore):
123400        (WebCore::inspectorData):
123401        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
123402        * inspector/front-end/NativeMemorySnapshotView.js:
123403        (WebInspector.MemoryBlockViewProperties._initialize):
123404
1234052012-06-18  Mario Sanchez Prada  <msanchez@igalia.com>
123406
123407        [GTK] Get rid of DumpRenderTreeSupportGtk::{in|de}crementAccessibilityValue
123408        https://bugs.webkit.org/show_bug.cgi?id=89226
123409
123410        Reviewed by Martin Robinson.
123411
123412        Implement webkitAccessibleValueGetMinimumIncrement() properly,
123413        doing something similar to what is done in AccessibilityObject's
123414        increment() and decrement() functions.
123415
123416        Also, added missing bits to webkitAccessibleValueSetCurrentValue
123417        to make sure we check the new value against range limits.
123418
123419        * accessibility/gtk/WebKitAccessibleInterfaceValue.cpp:
123420        (webkitAccessibleValueGetCurrentValue):
123421        (webkitAccessibleValueGetMaximumValue):
123422        (webkitAccessibleValueGetMinimumValue):
123423        (webkitAccessibleValueSetCurrentValue):
123424        (webkitAccessibleValueGetMinimumIncrement):
123425
1234262012-06-14  Kinuko Yasuda  <kinuko@chromium.org>
123427
123428        [chromium] Cleanup: remove PlatformSupport::createAsyncFileSystem as it's no longer used
123429        https://bugs.webkit.org/show_bug.cgi?id=89083
123430
123431        Reviewed by Kentaro Hara.
123432
123433        No new tests as this has no functional changes.
123434
123435        * platform/chromium/PlatformSupport.h:
123436        (PlatformSupport):
123437
1234382012-06-18  Taiju Tsuiki  <tzik@chromium.org>
123439
123440        Fix syntax of FileReader::readAsDataURL result
123441        https://bugs.webkit.org/show_bug.cgi?id=89330
123442
123443        When readAsDataURL generates data URL without media type, it used to omit semicolon before
123444        "base64" keyword.  But this semicolor is required in this case, according to RFC2397.
123445
123446        Reviewed by Kent Tamura.
123447
123448        Test: fast/files/read-blob-async.html
123449              fast/files/workers/worker-read-blob-async.html:
123450              fast/files/workers/worker-read-blob-sync.html:
123451
123452        * fileapi/FileReaderLoader.cpp:
123453        (WebCore::FileReaderLoader::convertToDataURL):
123454
1234552012-06-18  MORITA Hajime  <morrita@google.com>
123456
123457        Unreviewed chormium crash fix. This should be revisited.
123458
123459        * platform/image-decoders/ImageDecoder.h:
123460        (WebCore::ImageDecoder::qcmsOutputDeviceProfile):
123461
1234622012-06-18  Christophe Dumez  <christophe.dumez@intel.com>
123463
123464        [EFL] fast/files/xhr-response-blob.html is crashing
123465        https://bugs.webkit.org/show_bug.cgi?id=89334
123466
123467        Reviewed by Kentaro Hara.
123468
123469        Call wrap() instead of createWrapper() in JSBlob's toJS()
123470        to avoid hitting the !getCachedWrapper ASSERT in 
123471        createWrapper() because we fail to use the cached wrapper.
123472
123473        Test: fast/files/xhr-response-blob.html
123474
123475        * bindings/js/JSBlobCustom.cpp:
123476        (WebCore::toJS):
123477
1234782012-06-18  Ilya Tikhonovsky  <loislo@chromium.org>
123479
123480        Web Inspector: rename Unknown to Other in Native heap snapshot.
123481        https://bugs.webkit.org/show_bug.cgi?id=89306
123482
123483        Cosmetic change.
123484
123485        Reviewed by Yury Semikhatsky.
123486
123487        * inspector/front-end/NativeMemorySnapshotView.js:
123488        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
123489        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
123490        (WebInspector.MemoryBlockViewProperties._initialize):
123491
1234922012-06-18  Sergio Villar Senin  <svillar@igalia.com>
123493
123494        TextureMapperLayer: invisible layers do not let their children to be painted
123495        https://bugs.webkit.org/show_bug.cgi?id=88786
123496
123497        Reviewed by Noam Rosenthal.
123498
123499        Do not early discard recursively painting children layers if the
123500        current layer is not visible.
123501
123502        Changes already covered by compositing tests. This fixes both
123503        compositing/backface-visibility/backface-visibility-3d.html and
123504        compositing/backface-visibility/backface-visibility-non3d.html.
123505
123506        * platform/graphics/texmap/TextureMapperLayer.cpp:
123507        (WebCore::TextureMapperLayer::computeTransformsRecursive):
123508        (WebCore::TextureMapperLayer::paintSelf):
123509        (WebCore::TextureMapperLayer::isVisible):
123510
1235112012-06-15  Kinuko Yasuda  <kinuko@chromium.org>
123512
123513        XHR_RESPONSE_BLOB is not enabled on some platforms
123514        https://bugs.webkit.org/show_bug.cgi?id=88859
123515
123516        Reviewed by Adam Barth.
123517
123518        Removing XHR_RESPONSE_BLOB since the current implementation has
123519        no platform-specific part.
123520
123521        Test: http/tests/xmlhttprequest/blob-response-size.html
123522
123523        * bindings/generic/RuntimeEnabledFeatures.cpp:
123524        (WebCore):
123525        * bindings/generic/RuntimeEnabledFeatures.h:
123526        (RuntimeEnabledFeatures):
123527        * bindings/js/JSXMLHttpRequestCustom.cpp:
123528        (WebCore::JSXMLHttpRequest::visitChildren):
123529        (WebCore::JSXMLHttpRequest::response):
123530        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
123531        (WebCore::V8XMLHttpRequest::responseAccessorGetter):
123532        * platform/chromium/PlatformSupport.h:
123533        (PlatformSupport):
123534        * xml/XMLHttpRequest.cpp:
123535        (WebCore::XMLHttpRequest::responseBlob):
123536        (WebCore::XMLHttpRequest::setResponseType):
123537        (WebCore::XMLHttpRequest::clearResponseBuffers):
123538        (WebCore::XMLHttpRequest::didReceiveData):
123539        * xml/XMLHttpRequest.h:
123540        (XMLHttpRequest):
123541        * xml/XMLHttpRequest.idl:
123542
1235432012-06-17  Martin Robinson  <mrobinson@igalia.com>
123544
123545        [TextureMapper] Reduce boilerplate code in the TextureMapperShaderManager
123546        https://bugs.webkit.org/show_bug.cgi?id=89293
123547
123548        Reviewed by Noam Rosenthal.
123549
123550        Refactor TextureMapperShaderManager to reduce boilerplate code, by:
123551        1. Making fragment and shader source arguments to the superclass constructor.
123552        2. Removing virtual methods (which should not be called in constructors) with
123553           constructor implementations. This exchanges a small amount of code duplication
123554           for a lot less boilerplate.
123555        3. Standardizing on the fooLocation name instead of fooVariable.
123556        4. Removing the ::prepare() series of methods for non-filter shaders. It's betters to
123557           have all the uniform and attribute binding in the same place.
123558
123559        No new tests. This is just a refactor and shouldn't change any functionality.
123560
123561        * platform/graphics/texmap/TextureMapperGL.cpp:
123562        Handle binding the mask texture and opacity at both of the previous ::prepare callsites. Also
123563        rename "shaderInfo" to "program".
123564        * platform/graphics/texmap/TextureMapperShaderManager.cpp: Perform the refactoring described above.
123565        * platform/graphics/texmap/TextureMapperShaderManager.h: Ditto.
123566
1235672012-06-17  Gregg Tavares  <gman@google.com>
123568
123569        Fix Framebuffer restrictions
123570        https://bugs.webkit.org/show_bug.cgi?id=89320
123571
123572        Reviewed by Kenneth Russell.
123573
123574        No new tests, just fixing old ones
123575
123576        * html/canvas/WebGLFramebuffer.cpp:
123577        (WebCore::WebGLFramebuffer::checkStatus):
123578
1235792012-06-17  Yoshifumi Inoue  <yosin@chromium.org>
123580
123581        [Forms] Move search field related code to RenderSearchField from RenderTextControlSingleLine
123582        https://bugs.webkit.org/show_bug.cgi?id=88980
123583
123584        Reviewed by Kent Tamura.
123585
123586        This patch moves search field related methods in RenderTextControlSingleLine
123587        to new class RenderSearchField and changes related classes to use
123588        RenderSearchField.
123589
123590        No new tests. This patch doesn't change behavior.
123591
123592        * CMakeLists.txt: Added new file RenderSearchField.cpp
123593        * GNUmakefile.list.am: Added new file RenderSearchField.cpp and RenderSearchField.h
123594        * Target.pri: ditto
123595        * WebCore.gypi: ditto
123596        * WebCore.vcproj/WebCore.vcproj: ditto
123597        * WebCore.xcodeproj/project.pbxproj: ditto
123598        * html/HTMLInputElement.cpp:
123599        (WebCore::HTMLInputElement::subtreeHasChanged): Call RenderSearchField::updateCancelButtonVisibility
123600        (WebCore::HTMLInputElement::addSearchResult): Changed to call InputType::addSearchResult.
123601        * html/InputType.cpp:
123602        (WebCore::InputType::addSearchResult): Added.
123603        * html/InputType.h:
123604        * html/SearchInputType.cpp:
123605        (WebCore::SearchInputType::addSearchResult): Moved from HTMLInputElement.
123606        (WebCore::SearchInputType::createRenderer): Added to create RenderSearchField.
123607        (WebCore::SearchInputType::searchEventsShouldBeDispatched): Moved from HTMLInputElement.
123608        (WebCore::SearchInputType::subtreeHasChanged) Moved search related code from HTMLInputElement.
123609        * html/SearchInputType.h:
123610        * html/shadow/TextControlInnerElements.cpp:
123611        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Use RenderSearchField instead of RenderTextControlSingleLine.
123612        * loader/FormSubmission.cpp:
123613        (WebCore::FormSubmission::create): Got rid isSearchField() guard for addSearchResult().
123614        * rendering/RenderSearchField.cpp:
123615        (WebCore::RenderSearchField::RenderSearchField): Renamed to RenderSearchField.
123616        (WebCore::RenderSearchField::~RenderSearchField): ditto
123617        (WebCore::RenderSearchField::resultsButtonElement): ditto
123618        (WebCore::RenderSearchField::cancelButtonElement): ditto
123619        (WebCore::RenderSearchField::addSearchResult): ditto
123620        (WebCore::RenderSearchField::showPopup): ditto
123621        (WebCore::RenderSearchField::hidePopup): ditto
123622        (WebCore::RenderSearchField::computeControlHeight): Added.
123623        (WebCore::RenderSearchField::updateFromElement): Moved search field related code from RenderTextControlSingleLine.
123624        (WebCore::RenderSearchField::updateCancelButtonVisibility): Renamed to RenderSearchField.
123625        (WebCore::RenderSearchField::visibilityForCancelButton): ditto
123626        (WebCore::RenderSearchField::autosaveName): ditto
123627        (WebCore::RenderSearchField::valueChanged): ditto
123628        (WebCore::RenderSearchField::itemText): ditto
123629        (WebCore::RenderSearchField::itemLabel): ditto
123630        (WebCore::RenderSearchField::itemIcon): ditto
123631        (WebCore::RenderSearchField::itemIsEnabled): ditto
123632        (WebCore::RenderSearchField::itemStyle): ditto
123633        (WebCore::RenderSearchField::menuStyle): ditto
123634        (WebCore::RenderSearchField::clientInsetLeft): ditto
123635        (WebCore::RenderSearchField::clientInsetRight): ditto
123636        (WebCore::RenderSearchField::clientPaddingLeft): ditto
123637        (WebCore::RenderSearchField::clientPaddingRight): ditto
123638        (WebCore::RenderSearchField::listSize): ditto
123639        (WebCore::RenderSearchField::selectedIndex): ditto
123640        (WebCore::RenderSearchField::popupDidHide): ditto
123641        (WebCore::RenderSearchField::itemIsSeparator): ditto
123642        (WebCore::RenderSearchField::itemIsLabel): ditto
123643        (WebCore::RenderSearchField::itemIsSelected): ditto
123644        (WebCore::RenderSearchField::setTextFromItem): ditto
123645        (WebCore::RenderSearchField::fontSelector): ditto
123646        (WebCore::RenderSearchField::hostWindow): ditto
123647        (WebCore::RenderSearchField::createScrollbar): ditto
123648        (WebCore::RenderSearchField::computeHeightLimit): Added.
123649        (WebCore::RenderSearchField::centerContainerIfNeeded): Added.
123650        * rendering/RenderSearchField.h:
123651        (WebCore::toRenderSearchField): Added.
123652        * rendering/RenderTextControlSingleLine.cpp:
123653        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine): Remove search field related code.
123654        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine): ditto.
123655        (WebCore::RenderTextControlSingleLine::computeHeightLimit): Added.
123656        (WebCore::RenderTextControlSingleLine::layout): Use new methods for removing isSearchField.
123657        (WebCore::RenderTextControlSingleLine::computeControlHeight): Added.
123658        (WebCore::RenderTextControlSingleLine::updateFromElement): Remove search field related code.
123659        * rendering/RenderTextControlSingleLine.h:
123660        (RenderTextControlSingleLine):
123661        (WebCore::RenderTextControlSingleLine::centerContainerIfNeeded): Added.
123662        (WebCore::RenderTextControlSingleLine::containerElement): Exposed for RenderSearchField.
123663        (WebCore::RenderTextControlSingleLine::innerBlockElement): Exposed for RenderSearchField.
123664        * rendering/RenderingAllInOne.cpp: Added RenderSearchField.cpp
123665
1236662012-06-17  Yoshifumi Inoue  <yosin@chromium.org>
123667
123668        [Forms] Copy RenderTextControlSingleLine.{cpp,h} to RenderSearchFiled.{cpp,h}
123669        https://bugs.webkit.org/show_bug.cgi?id=89155
123670
123671        This patch copies RenderTextControlSingleLine.cpp and .h into RenderSearchField.cpp
123672        and .h with just "cp" code. New files aren't compiled until bug 88980.
123673
123674        No new tests. This patch doesn't change behavior.
123675
123676        * rendering/RenderSearchField.cpp: Added.
123677        (WebCore):
123678        (WebCore::RenderTextControlInnerBlock::positionForPoint):
123679        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
123680        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
123681        (WebCore::RenderTextControlSingleLine::containerElement):
123682        (WebCore::RenderTextControlSingleLine::innerBlockElement):
123683        (WebCore::RenderTextControlSingleLine::innerSpinButtonElement):
123684        (WebCore::RenderTextControlSingleLine::resultsButtonElement):
123685        (WebCore::RenderTextControlSingleLine::cancelButtonElement):
123686        (WebCore::RenderTextControlSingleLine::textBaseStyle):
123687        (WebCore::RenderTextControlSingleLine::addSearchResult):
123688        (WebCore::RenderTextControlSingleLine::showPopup):
123689        (WebCore::RenderTextControlSingleLine::hidePopup):
123690        (WebCore::RenderTextControlSingleLine::paint):
123691        (WebCore::RenderTextControlSingleLine::layout):
123692        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
123693        (WebCore::RenderTextControlSingleLine::styleDidChange):
123694        (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
123695        (WebCore::RenderTextControlSingleLine::hasControlClip):
123696        (WebCore::RenderTextControlSingleLine::controlClipRect):
123697        (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
123698        (WebCore::RenderTextControlSingleLine::preferredContentWidth):
123699        (WebCore::RenderTextControlSingleLine::computeControlHeight):
123700        (WebCore::RenderTextControlSingleLine::updateFromElement):
123701        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
123702        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
123703        (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
123704        (WebCore::RenderTextControlSingleLine::visibilityForCancelButton):
123705        (WebCore::RenderTextControlSingleLine::textShouldBeTruncated):
123706        (WebCore::RenderTextControlSingleLine::autosaveName):
123707        (WebCore::RenderTextControlSingleLine::valueChanged):
123708        (WebCore::RenderTextControlSingleLine::itemText):
123709        (WebCore::RenderTextControlSingleLine::itemLabel):
123710        (WebCore::RenderTextControlSingleLine::itemIcon):
123711        (WebCore::RenderTextControlSingleLine::itemIsEnabled):
123712        (WebCore::RenderTextControlSingleLine::itemStyle):
123713        (WebCore::RenderTextControlSingleLine::menuStyle):
123714        (WebCore::RenderTextControlSingleLine::clientInsetLeft):
123715        (WebCore::RenderTextControlSingleLine::clientInsetRight):
123716        (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
123717        (WebCore::RenderTextControlSingleLine::clientPaddingRight):
123718        (WebCore::RenderTextControlSingleLine::listSize):
123719        (WebCore::RenderTextControlSingleLine::selectedIndex):
123720        (WebCore::RenderTextControlSingleLine::popupDidHide):
123721        (WebCore::RenderTextControlSingleLine::itemIsSeparator):
123722        (WebCore::RenderTextControlSingleLine::itemIsLabel):
123723        (WebCore::RenderTextControlSingleLine::itemIsSelected):
123724        (WebCore::RenderTextControlSingleLine::setTextFromItem):
123725        (WebCore::RenderTextControlSingleLine::fontSelector):
123726        (WebCore::RenderTextControlSingleLine::hostWindow):
123727        (WebCore::RenderTextControlSingleLine::autoscroll):
123728        (WebCore::RenderTextControlSingleLine::scrollWidth):
123729        (WebCore::RenderTextControlSingleLine::scrollHeight):
123730        (WebCore::RenderTextControlSingleLine::scrollLeft):
123731        (WebCore::RenderTextControlSingleLine::scrollTop):
123732        (WebCore::RenderTextControlSingleLine::setScrollLeft):
123733        (WebCore::RenderTextControlSingleLine::setScrollTop):
123734        (WebCore::RenderTextControlSingleLine::scroll):
123735        (WebCore::RenderTextControlSingleLine::logicalScroll):
123736        (WebCore::RenderTextControlSingleLine::createScrollbar):
123737        (WebCore::RenderTextControlSingleLine::inputElement):
123738        * rendering/RenderSearchField.h: Added.
123739        (WebCore):
123740        (RenderTextControlSingleLine):
123741        (WebCore::RenderTextControlSingleLine::popupIsVisible):
123742        (WebCore::RenderTextControlSingleLine::isTextField):
123743        (WebCore::toRenderTextControlSingleLine):
123744        (RenderTextControlInnerBlock):
123745        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
123746        (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
123747
1237482012-06-17  Yoshifumi Inoue  <yosin@chromium.org>
123749
123750        Unreviewed, rolling out r120565.
123751        http://trac.webkit.org/changeset/120565
123752        https://bugs.webkit.org/show_bug.cgi?id=89155
123753
123754        Bad commit message
123755
123756        * rendering/RenderSearchField.cpp: Removed.
123757        * rendering/RenderSearchField.h: Removed.
123758
1237592012-06-17  Yoshifumi Inoue  <yosin@chromium.org>
123760
123761        [Forms] Copy RenderTextControlSingleLine.{cpp,h} to RenderSearchFiled.{cpp,h}
123762        https://bugs.webkit.org/show_bug.cgi?id=89155
123763
123764        This patch copies RenderTextControlSingleLine.cpp and .h into RenderSearchField.cpp
123765        and .h with just "cp" code. New files aren't compiled until bug 88980.
123766
123767        No new tests. This patch doesn't change behavior.
123768
123769        * rendering/RenderSearchField.cpp: Added.
123770        (WebCore):
123771        (WebCore::RenderTextControlInnerBlock::positionForPoint):
123772        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
123773        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
123774        (WebCore::RenderTextControlSingleLine::containerElement):
123775        (WebCore::RenderTextControlSingleLine::innerBlockElement):
123776        (WebCore::RenderTextControlSingleLine::innerSpinButtonElement):
123777        (WebCore::RenderTextControlSingleLine::resultsButtonElement):
123778        (WebCore::RenderTextControlSingleLine::cancelButtonElement):
123779        (WebCore::RenderTextControlSingleLine::textBaseStyle):
123780        (WebCore::RenderTextControlSingleLine::addSearchResult):
123781        (WebCore::RenderTextControlSingleLine::showPopup):
123782        (WebCore::RenderTextControlSingleLine::hidePopup):
123783        (WebCore::RenderTextControlSingleLine::paint):
123784        (WebCore::RenderTextControlSingleLine::layout):
123785        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
123786        (WebCore::RenderTextControlSingleLine::styleDidChange):
123787        (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
123788        (WebCore::RenderTextControlSingleLine::hasControlClip):
123789        (WebCore::RenderTextControlSingleLine::controlClipRect):
123790        (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
123791        (WebCore::RenderTextControlSingleLine::preferredContentWidth):
123792        (WebCore::RenderTextControlSingleLine::computeControlHeight):
123793        (WebCore::RenderTextControlSingleLine::updateFromElement):
123794        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
123795        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
123796        (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
123797        (WebCore::RenderTextControlSingleLine::visibilityForCancelButton):
123798        (WebCore::RenderTextControlSingleLine::textShouldBeTruncated):
123799        (WebCore::RenderTextControlSingleLine::autosaveName):
123800        (WebCore::RenderTextControlSingleLine::valueChanged):
123801        (WebCore::RenderTextControlSingleLine::itemText):
123802        (WebCore::RenderTextControlSingleLine::itemLabel):
123803        (WebCore::RenderTextControlSingleLine::itemIcon):
123804        (WebCore::RenderTextControlSingleLine::itemIsEnabled):
123805        (WebCore::RenderTextControlSingleLine::itemStyle):
123806        (WebCore::RenderTextControlSingleLine::menuStyle):
123807        (WebCore::RenderTextControlSingleLine::clientInsetLeft):
123808        (WebCore::RenderTextControlSingleLine::clientInsetRight):
123809        (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
123810        (WebCore::RenderTextControlSingleLine::clientPaddingRight):
123811        (WebCore::RenderTextControlSingleLine::listSize):
123812        (WebCore::RenderTextControlSingleLine::selectedIndex):
123813        (WebCore::RenderTextControlSingleLine::popupDidHide):
123814        (WebCore::RenderTextControlSingleLine::itemIsSeparator):
123815        (WebCore::RenderTextControlSingleLine::itemIsLabel):
123816        (WebCore::RenderTextControlSingleLine::itemIsSelected):
123817        (WebCore::RenderTextControlSingleLine::setTextFromItem):
123818        (WebCore::RenderTextControlSingleLine::fontSelector):
123819        (WebCore::RenderTextControlSingleLine::hostWindow):
123820        (WebCore::RenderTextControlSingleLine::autoscroll):
123821        (WebCore::RenderTextControlSingleLine::scrollWidth):
123822        (WebCore::RenderTextControlSingleLine::scrollHeight):
123823        (WebCore::RenderTextControlSingleLine::scrollLeft):
123824        (WebCore::RenderTextControlSingleLine::scrollTop):
123825        (WebCore::RenderTextControlSingleLine::setScrollLeft):
123826        (WebCore::RenderTextControlSingleLine::setScrollTop):
123827        (WebCore::RenderTextControlSingleLine::scroll):
123828        (WebCore::RenderTextControlSingleLine::logicalScroll):
123829        (WebCore::RenderTextControlSingleLine::createScrollbar):
123830        (WebCore::RenderTextControlSingleLine::inputElement):
123831        * rendering/RenderSearchField.h: Added.
123832        (WebCore):
123833        (RenderTextControlSingleLine):
123834        (WebCore::RenderTextControlSingleLine::popupIsVisible):
123835        (WebCore::RenderTextControlSingleLine::isTextField):
123836        (WebCore::toRenderTextControlSingleLine):
123837        (RenderTextControlInnerBlock):
123838        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
123839        (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
123840
1238412012-06-17  MORITA Hajime  <morrita@google.com>
123842
123843        Unreviewed build fix.
123844
123845        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
123846        (WebCore::CCLayerTreeHostImpl::removePassesWithCachedTextures):
123847
1238482012-06-17  Philippe Normand  <pnormand@igalia.com>
123849
123850        [GStreamer] optimize ::naturalSize()
123851        https://bugs.webkit.org/show_bug.cgi?id=89314
123852
123853        Reviewed by Martin Robinson.
123854
123855        Keep track of the video-sink sinkpad in the MediaPlayerPrivate and
123856        adapt the webkitGstGetPadCaps API accordingly. The benefit of this
123857        change is to reduce the number of calls to
123858        gst_element_get_static_pad() and the corresponding gst_pad_unref().
123859
123860        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
123861        (webkitGstGetPadCaps):
123862        * platform/graphics/gstreamer/GStreamerVersioning.h:
123863        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
123864        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
123865        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
123866        (MediaPlayerPrivateGStreamer):
123867
1238682012-06-17  Arvid Nilsson  <anilsson@rim.com>
123869
123870        Don't mark main frame layer opaque if the frame view is transparent
123871        https://bugs.webkit.org/show_bug.cgi?id=88234
123872
123873        Reviewed by Simon Fraser.
123874
123875        * rendering/RenderLayerBacking.cpp:
123876        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
123877
1238782012-06-17  Philip Rogers  <pdr@google.com>
123879
123880        Prevent crash in SVGDocumentExtensions::removeAllElementReferencesForTarget.
123881        https://bugs.webkit.org/show_bug.cgi?id=88144
123882
123883        Reviewed by Abhishek Arya.
123884
123885        When iterating over referencing elements to rebuild after a reference change in
123886        SVGDocumentExtensions::removeAllElementReferencesForTarget, we can
123887        modify the underlying toBeNotified vector, invalidating it. This change checks
123888        that a vector element is valid before rebuilding, preventing a crash.
123889
123890        Some definitions from SVGDocumentExtensions that may put this patch in context:
123891            An example of a "referenced elements" is a <path>.
123892            An example of a "referencing element" is a <textPath href='some_path_id'>.
123893            m_elementDependencies is a map from referenced elements (e.g., paths) to
123894            a set of referencing elements (e.g., textPaths).
123895
123896        The check that the vector element is valid relies on checking if the referencing
123897        element is in m_elementDependencies. This check is allowed because in the
123898        destructor of SVGTextPathElement (and SVGFeImageElement),
123899        removeAllTargetReferencesForElement() is called, removing the referencing element
123900        from m_elementDependencies.
123901
123902        Simply checking if the referencing element is anywhere in m_elementDependencies
123903        is enough to show it is valid, but that requires iterating over all referenced
123904        elements to see if the given referencing element is present. This change
123905        only checks if the textPath is still in the elements referencing the
123906        path being removed, and only removes the referenced element from
123907        m_elementDependencies after forcing the referencing elements to be rebuilt.
123908
123909        Test: svg/text/textpath-reference-crash.html
123910
123911        * svg/SVGDocumentExtensions.cpp:
123912        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
123913
1239142012-06-17  Yoshifumi Inoue  <yosin@chromium.org>
123915
123916        Unreviewed, rolling out r120390.
123917        http://trac.webkit.org/changeset/120390
123918        https://bugs.webkit.org/show_bug.cgi?id=89155
123919
123920        Failed to copy merge history to RenderSerachField.{cpp,h}
123921
123922        * rendering/RenderSearchField.cpp: Removed.
123923        * rendering/RenderSearchField.h: Removed.
123924
1239252012-06-17  Yoshifumi Inoue  <yosin@chromium.org>
123926
123927        Unreviewed, rolling out r120432.
123928        http://trac.webkit.org/changeset/120432
123929        https://bugs.webkit.org/show_bug.cgi?id=88980
123930
123931        Failed to copy merge history to RenderSerachField.{cpp,h}
123932
123933        * CMakeLists.txt:
123934        * GNUmakefile.list.am:
123935        * Target.pri:
123936        * WebCore.gypi:
123937        * WebCore.vcproj/WebCore.vcproj:
123938        * WebCore.xcodeproj/project.pbxproj:
123939        * html/HTMLInputElement.cpp:
123940        (WebCore::HTMLInputElement::subtreeHasChanged):
123941        (WebCore::HTMLInputElement::searchEventsShouldBeDispatched):
123942        (WebCore):
123943        (WebCore::HTMLInputElement::addSearchResult):
123944        * html/HTMLInputElement.h:
123945        (HTMLInputElement):
123946        * html/InputType.cpp:
123947        * html/InputType.h:
123948        (InputType):
123949        * html/SearchInputType.cpp:
123950        * html/SearchInputType.h:
123951        (SearchInputType):
123952        * html/shadow/TextControlInnerElements.cpp:
123953        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
123954        * loader/FormSubmission.cpp:
123955        (WebCore::FormSubmission::create):
123956        * rendering/RenderSearchField.cpp:
123957        (WebCore::RenderTextControlInnerBlock::positionForPoint):
123958        (WebCore):
123959        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
123960        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
123961        (WebCore::RenderTextControlSingleLine::containerElement):
123962        (WebCore::RenderTextControlSingleLine::innerBlockElement):
123963        (WebCore::RenderTextControlSingleLine::innerSpinButtonElement):
123964        (WebCore::RenderTextControlSingleLine::resultsButtonElement):
123965        (WebCore::RenderTextControlSingleLine::cancelButtonElement):
123966        (WebCore::RenderTextControlSingleLine::textBaseStyle):
123967        (WebCore::RenderTextControlSingleLine::addSearchResult):
123968        (WebCore::RenderTextControlSingleLine::showPopup):
123969        (WebCore::RenderTextControlSingleLine::hidePopup):
123970        (WebCore::RenderTextControlSingleLine::paint):
123971        (WebCore::RenderTextControlSingleLine::layout):
123972        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
123973        (WebCore::RenderTextControlSingleLine::styleDidChange):
123974        (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
123975        (WebCore::RenderTextControlSingleLine::hasControlClip):
123976        (WebCore::RenderTextControlSingleLine::controlClipRect):
123977        (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
123978        (WebCore::RenderTextControlSingleLine::preferredContentWidth):
123979        (WebCore::RenderTextControlSingleLine::computeControlHeight):
123980        (WebCore::RenderTextControlSingleLine::updateFromElement):
123981        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
123982        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
123983        (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
123984        (WebCore::RenderTextControlSingleLine::visibilityForCancelButton):
123985        (WebCore::RenderTextControlSingleLine::textShouldBeTruncated):
123986        (WebCore::RenderTextControlSingleLine::autosaveName):
123987        (WebCore::RenderTextControlSingleLine::valueChanged):
123988        (WebCore::RenderTextControlSingleLine::itemText):
123989        (WebCore::RenderTextControlSingleLine::itemLabel):
123990        (WebCore::RenderTextControlSingleLine::itemIcon):
123991        (WebCore::RenderTextControlSingleLine::itemIsEnabled):
123992        (WebCore::RenderTextControlSingleLine::itemStyle):
123993        (WebCore::RenderTextControlSingleLine::menuStyle):
123994        (WebCore::RenderTextControlSingleLine::clientInsetLeft):
123995        (WebCore::RenderTextControlSingleLine::clientInsetRight):
123996        (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
123997        (WebCore::RenderTextControlSingleLine::clientPaddingRight):
123998        (WebCore::RenderTextControlSingleLine::listSize):
123999        (WebCore::RenderTextControlSingleLine::selectedIndex):
124000        (WebCore::RenderTextControlSingleLine::popupDidHide):
124001        (WebCore::RenderTextControlSingleLine::itemIsSeparator):
124002        (WebCore::RenderTextControlSingleLine::itemIsLabel):
124003        (WebCore::RenderTextControlSingleLine::itemIsSelected):
124004        (WebCore::RenderTextControlSingleLine::setTextFromItem):
124005        (WebCore::RenderTextControlSingleLine::fontSelector):
124006        (WebCore::RenderTextControlSingleLine::hostWindow):
124007        (WebCore::RenderTextControlSingleLine::autoscroll):
124008        (WebCore::RenderTextControlSingleLine::scrollWidth):
124009        (WebCore::RenderTextControlSingleLine::scrollHeight):
124010        (WebCore::RenderTextControlSingleLine::scrollLeft):
124011        (WebCore::RenderTextControlSingleLine::scrollTop):
124012        (WebCore::RenderTextControlSingleLine::setScrollLeft):
124013        (WebCore::RenderTextControlSingleLine::setScrollTop):
124014        (WebCore::RenderTextControlSingleLine::scroll):
124015        (WebCore::RenderTextControlSingleLine::logicalScroll):
124016        (WebCore::RenderTextControlSingleLine::createScrollbar):
124017        (WebCore::RenderTextControlSingleLine::inputElement):
124018        * rendering/RenderSearchField.h:
124019        (RenderTextControlSingleLine):
124020        (WebCore::RenderTextControlSingleLine::isTextField):
124021        (WebCore::toRenderTextControlSingleLine):
124022        (WebCore):
124023        (RenderTextControlInnerBlock):
124024        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
124025        (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
124026        * rendering/RenderTextControlSingleLine.cpp:
124027        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
124028        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
124029        (WebCore):
124030        (WebCore::RenderTextControlSingleLine::containerElement):
124031        (WebCore::RenderTextControlSingleLine::innerBlockElement):
124032        (WebCore::RenderTextControlSingleLine::resultsButtonElement):
124033        (WebCore::RenderTextControlSingleLine::cancelButtonElement):
124034        (WebCore::RenderTextControlSingleLine::addSearchResult):
124035        (WebCore::RenderTextControlSingleLine::showPopup):
124036        (WebCore::RenderTextControlSingleLine::hidePopup):
124037        (WebCore::RenderTextControlSingleLine::layout):
124038        (WebCore::RenderTextControlSingleLine::computeControlHeight):
124039        (WebCore::RenderTextControlSingleLine::updateFromElement):
124040        (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
124041        (WebCore::RenderTextControlSingleLine::visibilityForCancelButton):
124042        (WebCore::RenderTextControlSingleLine::autosaveName):
124043        (WebCore::RenderTextControlSingleLine::valueChanged):
124044        (WebCore::RenderTextControlSingleLine::itemText):
124045        (WebCore::RenderTextControlSingleLine::itemLabel):
124046        (WebCore::RenderTextControlSingleLine::itemIcon):
124047        (WebCore::RenderTextControlSingleLine::itemIsEnabled):
124048        (WebCore::RenderTextControlSingleLine::itemStyle):
124049        (WebCore::RenderTextControlSingleLine::menuStyle):
124050        (WebCore::RenderTextControlSingleLine::clientInsetLeft):
124051        (WebCore::RenderTextControlSingleLine::clientInsetRight):
124052        (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
124053        (WebCore::RenderTextControlSingleLine::clientPaddingRight):
124054        (WebCore::RenderTextControlSingleLine::listSize):
124055        (WebCore::RenderTextControlSingleLine::selectedIndex):
124056        (WebCore::RenderTextControlSingleLine::popupDidHide):
124057        (WebCore::RenderTextControlSingleLine::itemIsSeparator):
124058        (WebCore::RenderTextControlSingleLine::itemIsLabel):
124059        (WebCore::RenderTextControlSingleLine::itemIsSelected):
124060        (WebCore::RenderTextControlSingleLine::setTextFromItem):
124061        (WebCore::RenderTextControlSingleLine::fontSelector):
124062        (WebCore::RenderTextControlSingleLine::hostWindow):
124063        (WebCore::RenderTextControlSingleLine::createScrollbar):
124064        * rendering/RenderTextControlSingleLine.h:
124065        (WebCore):
124066        (RenderTextControlSingleLine):
124067        (WebCore::RenderTextControlSingleLine::popupIsVisible):
124068        * rendering/RenderingAllInOne.cpp:
124069
1240702012-06-15  Darin Adler  <darin@apple.com>
124071
124072        REGRESSION (r111041): Missing element type check in RenderThemeMac::paintMediaFullscreenButton
124073        https://bugs.webkit.org/show_bug.cgi?id=89270
124074
124075        Reviewed by Oliver Hunt.
124076
124077        * rendering/RenderThemeMac.mm:
124078        (WebCore::RenderThemeMac::paintMediaFullscreenButton): Use the proper idiom for getting
124079        a media control element's type.
124080
1240812012-06-17  Zeev Lieber  <zlieber@chromium.org>
124082
124083        [Chromium] Compositor should avoid drawing quads when cached textures are available and contents unchanged
124084        https://bugs.webkit.org/show_bug.cgi?id=88482
124085
124086        Reviewed by Adrienne Walker.
124087
124088        Post-processing CCRenderPassList after it's been generated and
124089        removing all render surface quads for which there are
124090        cached textures, and whose content didn't change. Added a new
124091        flag to CCLayerImpl to differentiate surface property change and
124092        layer property change.
124093
124094        The changes are covered by new unit tests that check that
124095        the removal algorithm functions propertly. No rendering
124096        behaviour change, so no new layout tests.
124097
124098        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
124099        (WebCore::layerNeedsToRedrawOntoItsTargetSurface):
124100        (WebCore):
124101        (WebCore::CCDamageTracker::extendDamageForLayer):
124102        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
124103        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
124104        (WebCore::CCLayerImpl::CCLayerImpl):
124105        (WebCore::CCLayerImpl::layerSurfacePropertyChanged):
124106        (WebCore):
124107        (WebCore::CCLayerImpl::resetAllChangeTrackingForSubtree):
124108        (WebCore::CCLayerImpl::setOpacity):
124109        (WebCore::CCLayerImpl::setTransform):
124110        * platform/graphics/chromium/cc/CCLayerImpl.h:
124111        (CCLayerImpl):
124112        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
124113        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
124114        (WebCore::CCLayerTreeHostImpl::removeRenderPassesRecursive):
124115        (WebCore):
124116        (WebCore::CCLayerTreeHostImpl::removePassesWithCachedTextures):
124117        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
124118        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
124119        (FrameData):
124120        (CCLayerTreeHostImpl):
124121        * platform/graphics/chromium/cc/CCRenderPass.h:
124122        (CCRenderPass):
124123        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
124124        (WebCore::CCRenderSurface::prepareContentsTexture):
124125        (WebCore::CCRenderSurface::hasCachedContentsTexture):
124126        (WebCore):
124127        (WebCore::CCRenderSurface::contentsChanged):
124128        * platform/graphics/chromium/cc/CCRenderSurface.h:
124129        (CCRenderSurface):
124130
1241312012-06-17  Adam Barth  <abarth@webkit.org>
124132
124133        Attempt to fix a large number of tests I broke with http://trac.webkit.org/changeset/120547
124134
124135        We need to reset the device scale facter after each test.
124136
124137        * testing/InternalSettings.cpp:
124138        (WebCore::InternalSettings::InternalSettings):
124139        (WebCore::InternalSettings::restoreTo):
124140        * testing/InternalSettings.h:
124141        (InternalSettings):
124142
1241432012-06-16  Huang Dongsung  <luxtella@company100.net>
124144
124145        [Texmap] Share gaussian formula between shaders in TextureMapperShaderManager.
124146        https://bugs.webkit.org/show_bug.cgi?id=89277
124147
124148        This patch makes blur and drop shadow shader share gaussian formula.
124149
124150        On the other hand, blur and drop shadow filter computed a gaussian weight in
124151        pixel shader. However, a gaussian kernal has always same values, so this patch
124152        computes the gaussian kernel only one time using CPU.
124153        It is more accurate and faster.
124154
124155        Reviewed by Noam Rosenthal.
124156
124157        Covered by existing tests, particularly css3/filters/.
124158
124159        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
124160        (WebCore):
124161        (WebCore::StandardFilterProgram::StandardFilterProgram):
124162        (WebCore::gauss):
124163        (WebCore::gaussianKernel):
124164        (WebCore::StandardFilterProgram::prepare):
124165        * platform/graphics/texmap/TextureMapperShaderManager.h:
124166
1241672012-06-16  Robert Kroeger  <rjkroege@chromium.org>
124168
124169        [chromium] Make the deviceScaleFactor dynamically adjustable.
124170        https://bugs.webkit.org/show_bug.cgi?id=88916
124171
124172        Reviewed by James Robinson.
124173
124174        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Removed use of static
124175        deviceScaleFactor from settings with dyanmic m_deviceScaleFactor
124176        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
124177        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
124178        (WebCore::CCLayerTreeHost::setViewportSize):
124179        (WebCore::CCLayerTreeHost::updateLayers):
124180        (WebCore::CCLayerTreeHost::setDeviceScaleFactor): Added function to
124181        set deviceScaleFactor.
124182        (WebCore):
124183        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
124184        (WebCore::CCSettings::CCSettings): Removed static deviceScaleFactor
124185        (CCSettings):
124186        (CCLayerTreeHost): Added dynamic m_deviceScaleFactor in its place.
124187        (WebCore::CCLayerTreeHost::deviceScaleFactor):
124188        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Same as above.
124189        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
124190        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
124191        (WebCore::CCLayerTreeHostImpl::setViewportSize):
124192        (WebCore::CCLayerTreeHostImpl::setDeviceScaleFactor): Added function to
124193        set deviceScaleFactor.
124194        (WebCore):
124195        (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
124196        (WebCore::CCLayerTreeHostImpl::scrollBegin):
124197        (WebCore::CCLayerTreeHostImpl::computePinchZoomDeltas):
124198        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Added dynamic
124199        m_deviceScaleFactor instance variable.
124200        (WebCore::CCLayerTreeHostImpl::deviceScaleFactor):
124201        (CCLayerTreeHostImpl):
124202
1242032012-06-16  Sheriff Bot  <webkit.review.bot@gmail.com>
124204
124205        Unreviewed, rolling out r120536.
124206        http://trac.webkit.org/changeset/120536
124207        https://bugs.webkit.org/show_bug.cgi?id=89296
124208
124209        Does not compile on chromium-linux (Requested by abarth on
124210        #webkit).
124211
124212        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
124213        (WebCore):
124214        (WebCore::FontPlatformData::setHinting):
124215        (WebCore::FontPlatformData::setAutoHint):
124216        (WebCore::FontPlatformData::setUseBitmaps):
124217        (WebCore::FontPlatformData::setAntiAlias):
124218        (WebCore::FontPlatformData::setSubpixelRendering):
124219        (WebCore::FontPlatformData::setSubpixelPositioning):
124220        (WebCore::FontPlatformData::setupPaint):
124221        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
124222        (FontPlatformData):
124223
1242242012-06-16  Sheriff Bot  <webkit.review.bot@gmail.com>
124225
124226        Unreviewed, rolling out r120539.
124227        http://trac.webkit.org/changeset/120539
124228        https://bugs.webkit.org/show_bug.cgi?id=89295
124229
124230        Does not compile on chromium-mac (Requested by abarth on
124231        #webkit).
124232
124233        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
124234        (WebCore::CCDamageTracker::extendDamageForLayer):
124235        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
124236        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
124237        (WebCore::CCLayerImpl::CCLayerImpl):
124238        (WebCore::CCLayerImpl::resetAllChangeTrackingForSubtree):
124239        (WebCore::CCLayerImpl::setOpacity):
124240        (WebCore::CCLayerImpl::setTransform):
124241        * platform/graphics/chromium/cc/CCLayerImpl.h:
124242        (CCLayerImpl):
124243        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
124244        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
124245        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
124246        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
124247        (CCLayerTreeHostImpl):
124248        * platform/graphics/chromium/cc/CCRenderPass.h:
124249        (CCRenderPass):
124250        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
124251        (WebCore::CCRenderSurface::prepareContentsTexture):
124252        * platform/graphics/chromium/cc/CCRenderSurface.h:
124253        (CCRenderSurface):
124254
1242552012-06-16  Mike West  <mkwst@chromium.org>
124256
124257        Ignore paths in Content Security Policy sources rather than failing to parse them.
124258        https://bugs.webkit.org/show_bug.cgi?id=89281
124259
124260        Reviewed by Adam Barth.
124261
124262        In short: `script-src http://example.com/` should allow scripts from
124263        http://example.com. Currently, it allows no scripts at all, as the
124264        terminal `/` isn't accepted as part of a hostname.
124265
124266        This patch adjusts CSPSourceList::parseSource to accept paths (and
124267        discard them). Once this lands, the next step will be to keep the
124268        path, and use it when comparing source origins in the various
124269        allowXXXFromSource methods.
124270
124271        Tests: http/tests/security/contentSecurityPolicy/source-list-parsing-05.html
124272               http/tests/security/contentSecurityPolicy/source-list-parsing-06.html
124273
124274        * page/ContentSecurityPolicy.cpp:
124275        (CSPSourceList):
124276        (WebCore):
124277        (WebCore::CSPSourceList::parseSource):
124278            Reworked this method entirely to support paths.
124279        (WebCore::CSPSourceList::parsePath):
124280            More or less a no-op at the moment.
124281        (WebCore::CSPSourceList::parsePort):
124282            Moved the `:` assertion here from parseSource.
124283
1242842012-06-16  Zeev Lieber  <zlieber@chromium.org>
124285
124286        [Chromium] Compositor should avoid drawing quads when cached textures are available and contents unchanged
124287        https://bugs.webkit.org/show_bug.cgi?id=88482
124288
124289        Reviewed by Adrienne Walker.
124290
124291        Post-processing CCRenderPassList after it's been generated and
124292        removing all render surface quads for which there are
124293        cached textures, and whose content didn't change. Added a new
124294        flag to CCLayerImpl to differentiate surface property change and
124295        layer property change.
124296
124297        The changes are covered by new unit tests that check that
124298        the removal algorithm functions propertly. No rendering
124299        behaviour change, so no new layout tests.
124300
124301        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
124302        (WebCore::layerNeedsToRedrawOntoItsTargetSurface):
124303        (WebCore):
124304        (WebCore::CCDamageTracker::extendDamageForLayer):
124305        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
124306        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
124307        (WebCore::CCLayerImpl::CCLayerImpl):
124308        (WebCore::CCLayerImpl::layerSurfacePropertyChanged):
124309        (WebCore):
124310        (WebCore::CCLayerImpl::resetAllChangeTrackingForSubtree):
124311        (WebCore::CCLayerImpl::setOpacity):
124312        (WebCore::CCLayerImpl::setTransform):
124313        * platform/graphics/chromium/cc/CCLayerImpl.h:
124314        (CCLayerImpl):
124315        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
124316        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
124317        (WebCore::CCLayerTreeHostImpl::removeRenderPassesRecursive):
124318        (WebCore):
124319        (WebCore::CCLayerTreeHostImpl::removePassesWithCachedTextures):
124320        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
124321        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
124322        (FrameData):
124323        (CCLayerTreeHostImpl):
124324        * platform/graphics/chromium/cc/CCRenderPass.h:
124325        (CCRenderPass):
124326        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
124327        (WebCore::CCRenderSurface::prepareContentsTexture):
124328        (WebCore::CCRenderSurface::hasCachedContentsTexture):
124329        (WebCore):
124330        (WebCore::CCRenderSurface::contentsChanged):
124331        * platform/graphics/chromium/cc/CCRenderSurface.h:
124332        (CCRenderSurface):
124333
1243342012-06-16  Xianzhu Wang  <wangxianzhu@chromium.org>
124335
124336        [Chromium] Move chromium/public/linuxish/WebFontRendering.h out of linuxish directory
124337        https://bugs.webkit.org/show_bug.cgi?id=89228
124338
124339        Reverse the dependency originally from WebKit::WebFontRendering to WebCore::FontPlatformDataHarfBuzz
124340        so that WebKit::WebFontRendering can be platform-independent.
124341
124342        Reviewed by Tony Chang.
124343
124344        Refactory only. No new tests.
124345
124346        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
124347        (WebCore::FontPlatformData::setupPaint):
124348        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
124349        (FontPlatformData):
124350
1243512012-06-16  Adam Barth  <abarth@webkit.org>
124352
124353        Settings::devicePixelRatio doesn't do anything and is confusing
124354        https://bugs.webkit.org/show_bug.cgi?id=89272
124355
124356        Reviewed by James Robinson.
124357
124358        Settings::devicePixelRatio is yet another piece of state trying to
124359        represent the device scale factor. The canonical place to store this
124360        state is Page::m_deviceScaleFactor. Nothing in WebCore references
124361        Settings::devicePixelRatio anymore, so we can remove it.
124362
124363        * page/Settings.cpp:
124364        (WebCore::Settings::Settings):
124365        * page/Settings.h:
124366        (Settings):
124367
1243682012-06-16  Huang Dongsung  <luxtella@company100.net>
124369
124370        [Texmap] SIGSEV in WebCore::TextureMapperGL::drawTexture.
124371        https://bugs.webkit.org/show_bug.cgi?id=89113
124372
124373        TextureMapperTile::m_texture is created lazilly, so we need null check before
124374        using it.
124375
124376        Reviewed by Noam Rosenthal.
124377
124378        No new tests. This patch doesn't change behavior.
124379
124380        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
124381        (WebCore::TextureMapperTile::paint):
124382
1243832012-06-16  Huang Dongsung  <luxtella@company100.net>
124384
124385        [Texmap] Remove unused code in Texmap.
124386        https://bugs.webkit.org/show_bug.cgi?id=89265
124387
124388        Reviewed by Noam Rosenthal.
124389
124390        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
124391        (WebCore::GraphicsLayerTextureMapper::didSynchronize):
124392        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
124393        (GraphicsLayerTextureMapper):
124394        * platform/graphics/texmap/TextureMapperLayer.cpp:
124395        (WebCore::TextureMapperLayer::syncCompositingState):
124396        * platform/graphics/texmap/TextureMapperLayer.h:
124397        (TextureMapperLayer):
124398
1243992012-06-16  Igor Oliveira  <igor.o@sisa.samsung.com>
124400
124401        [TexmapGL] Reduce the number of glTexSubImage2D calls
124402        https://bugs.webkit.org/show_bug.cgi?id=83665
124403
124404        Instead of copy the pixels row by row, put the pixels in a buffer and
124405        call glTexSubImage2D just once.
124406
124407        Reviewed by Noam Rosenthal.
124408
124409        * platform/graphics/texmap/TextureMapperGL.cpp:
124410        (WebCore::BitmapTextureGL::updateContents):
124411
1244122012-06-15  Sheriff Bot  <webkit.review.bot@gmail.com>
124413
124414        Unreviewed, rolling out r120280.
124415        http://trac.webkit.org/changeset/120280
124416        https://bugs.webkit.org/show_bug.cgi?id=89273
124417
124418        Enabling CSS regions broke all Windows tests (Requested by
124419        jhomeycutt on #webkit).
124420
124421        * css/CSSPropertyNames.in:
124422
1244232012-06-15  Sheriff Bot  <webkit.review.bot@gmail.com>
124424
124425        Unreviewed, rolling out r120511.
124426        http://trac.webkit.org/changeset/120511
124427        https://bugs.webkit.org/show_bug.cgi?id=89255
124428
124429        Breaks at least Android builder (Requested by wangxianzhu on
124430        #webkit).
124431
124432        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
124433        (WebCore):
124434        (WebCore::FontPlatformData::setHinting):
124435        (WebCore::FontPlatformData::setAutoHint):
124436        (WebCore::FontPlatformData::setUseBitmaps):
124437        (WebCore::FontPlatformData::setAntiAlias):
124438        (WebCore::FontPlatformData::setSubpixelRendering):
124439        (WebCore::FontPlatformData::setSubpixelPositioning):
124440        (WebCore::FontPlatformData::setupPaint):
124441        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
124442        (FontPlatformData):
124443
1244442012-06-15  Xianzhu Wang  <wangxianzhu@chromium.org>
124445
124446        [Chromium] Move chromium/public/linuxish/WebFontRendering.h out of linuxish directory
124447        https://bugs.webkit.org/show_bug.cgi?id=89228
124448
124449        Reverse the dependency originally from WebKit::WebFontRendering to WebCore::FontPlatformDataHarfBuzz
124450        so that WebKit::WebFontRendering can be platform-independent.
124451
124452        Reviewed by Tony Chang.
124453
124454        Refactory only. No new tests.
124455
124456        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
124457        (WebCore::FontPlatformData::setupPaint):
124458        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
124459        (FontPlatformData):
124460
1244612012-06-15  Adrienne Walker  <enne@google.com>
124462
124463        [chromium] Fix composited scrollbars with transparent thumbs
124464        https://bugs.webkit.org/show_bug.cgi?id=89247
124465
124466        Reviewed by James Robinson.
124467
124468        On some platforms, the thumb of a scrollbar can be transparent. Fix by
124469        always drawing the thumb quad with blending.
124470
124471        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
124472        (WebCore::CCScrollbarLayerImpl::appendQuads):
124473        * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
124474        (WebCore::CCTextureDrawQuad::setNeedsBlending):
124475        (WebCore):
124476        * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
124477        (CCTextureDrawQuad):
124478
1244792012-06-14  James Robinson  <jamesr@chromium.org>
124480
124481        [chromium] Use SkBitmap in ImageLayerChromium
124482        https://bugs.webkit.org/show_bug.cgi?id=89134
124483
124484        Reviewed by Adrienne Walker.
124485
124486        GraphicsLayer::setContentsToImage(Image*) is called whenever an image layer's image is or might have changed.
124487        In Chromium, this used to hang on to a RefPtr<WebCore::Image> until the compositor was ready to upload texture contents.
124488        This is potentially a bit fishy since the Image itself might not be in exactly the same state when we get around
124489        to uploading textures and it also creates a bad dependency from ImageLayerChromium on WebCore::Image.
124490
124491        This patch grabs the underlying SkBitmap in the setContentsTo call and passes that into ImageLayerChromium
124492        instead. I've also removed the venerable but redundant PlatformImage concept since all of chromium's images are
124493        skia bitmaps these days.
124494
124495        Covered by existing tests, particularly compositing/images/ and compositing/color-matching/.
124496
124497        * WebCore.gypi:
124498        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
124499        (WebCore::GraphicsLayerChromium::setContentsToImage):
124500        * platform/graphics/chromium/ImageLayerChromium.cpp:
124501        (WebCore::ImageLayerTextureUpdater::updateTextureRect):
124502        (WebCore::ImageLayerTextureUpdater::setBitmap):
124503        (ImageLayerTextureUpdater):
124504        (WebCore::ImageLayerChromium::ImageLayerChromium):
124505        (WebCore::ImageLayerChromium::setBitmap):
124506        (WebCore::ImageLayerChromium::update):
124507        (WebCore::ImageLayerChromium::contentBounds):
124508        (WebCore::ImageLayerChromium::drawsContent):
124509        * platform/graphics/chromium/ImageLayerChromium.h:
124510        (ImageLayerChromium):
124511        * platform/graphics/chromium/PlatformImage.cpp: Removed.
124512        * platform/graphics/chromium/PlatformImage.h: Removed.
124513
1245142012-06-15  Eli Fidler  <efidler@rim.com>
124515
124516        [BlackBerry] Use platform font settings for the standard settings.
124517        https://bugs.webkit.org/show_bug.cgi?id=89232
124518
124519        Reviewed by Rob Buis.
124520
124521        RIM PR 159708
124522
124523        * page/blackberry/SettingsBlackBerry.cpp:
124524        (WebCore):
124525        (WebCore::Settings::initializeDefaultFontFamilies):
124526
1245272012-06-15  Joshua Bell  <jsbell@chromium.org>
124528
124529        IndexedDB: Raise exceptions when methods are called on deleted objects
124530        https://bugs.webkit.org/show_bug.cgi?id=89243
124531
124532        Reviewed by Tony Chang.
124533
124534        Implement the IDB spec requirement that InvalidStateError exceptions are 
124535        thrown when methods are called on objects (i.e. object stores and indexes)
124536        that have been deleted within a version change transaction.
124537
124538        Test: storage/indexeddb/deleted-objects.html
124539
124540        * Modules/indexeddb/IDBDatabase.cpp:
124541        (WebCore::IDBDatabase::deleteObjectStore): Don't relay to transaction if back-end failed.
124542        * Modules/indexeddb/IDBIndex.cpp: Check deleted state in methods, raise if set.
124543        (WebCore::IDBIndex::IDBIndex):
124544        (WebCore::IDBIndex::openCursor):
124545        (WebCore::IDBIndex::count):
124546        (WebCore::IDBIndex::openKeyCursor):
124547        (WebCore::IDBIndex::get):
124548        (WebCore::IDBIndex::getKey):
124549        * Modules/indexeddb/IDBIndex.h: Add flag to track deleted state, method to mark it.
124550        (WebCore::IDBIndex::markDeleted):
124551        (IDBIndex):
124552        * Modules/indexeddb/IDBObjectStore.cpp: Check deleted state in methods, raise if set.
124553        (WebCore::IDBObjectStore::IDBObjectStore):
124554        (WebCore::IDBObjectStore::get):
124555        (WebCore::IDBObjectStore::add):
124556        (WebCore::IDBObjectStore::put):
124557        (WebCore::IDBObjectStore::deleteFunction):
124558        (WebCore::IDBObjectStore::clear):
124559        (WebCore::IDBObjectStore::createIndex):
124560        (WebCore::IDBObjectStore::index):
124561        (WebCore::IDBObjectStore::deleteIndex): If the index being deleted has been instantiated,
124562        mark it as deleted.
124563        (WebCore::IDBObjectStore::openCursor):
124564        (WebCore::IDBObjectStore::count):
124565        * Modules/indexeddb/IDBObjectStore.h: Add flag to track deleted state, method to mark it.
124566        (WebCore::IDBObjectStore::markDeleted):
124567        (IDBObjectStore):
124568        * Modules/indexeddb/IDBTransaction.cpp:
124569        (WebCore::IDBTransaction::objectStore):
124570        (WebCore::IDBTransaction::objectStoreDeleted): If the store being deleted has been instantiated,
124571        mark it as deleted.
124572
1245732012-06-15  James Robinson  <jamesr@chromium.org>
124574
124575        [chromium] Fix LayoutTests/platform/chromium/compositing/accelerated-drawing/svg-filters.html
124576        https://bugs.webkit.org/show_bug.cgi?id=89126
124577
124578        Reviewed by Stephen White.
124579
124580        When drawing an image buffer into a deferred device context, we have to make a deep copy of the source (Skia
124581        can't for some reason). Stephen White fixed this in r101325 by adding a bit on PlatformContextSkia indicating if
124582        a given context is deferred, but I broke this again in r120346 by refactoring the SkCanvas creation to happen in
124583        a different location from the PlatformContextSkia construction.
124584
124585        This moves the check into ImageBufferSkia and directly queries the state of the destination SkDevice to be more
124586        robust and work without needing special PlatformContextSkia setup.
124587
124588        Covered by LayoutTests/platform/chromium/compositing/accelerated-drawing/svg-filters.html
124589
124590        * platform/graphics/skia/ImageBufferSkia.cpp:
124591        (WebCore::drawNeedsCopy):
124592        * platform/graphics/skia/PlatformContextSkia.cpp:
124593        (WebCore::PlatformContextSkia::PlatformContextSkia):
124594        * platform/graphics/skia/PlatformContextSkia.h:
124595        (PlatformContextSkia):
124596
1245972012-06-15  Ami Fischman  <fischman@chromium.org>
124598
124599        [chromium] Compositor should be aware of |flipped| status of video textures per-platform
124600        https://bugs.webkit.org/show_bug.cgi?id=89189
124601
124602        Reviewed by James Robinson.
124603
124604        No new tests (sadly HW video decode is still only being tested manually for orientation).
124605
124606        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
124607        (WebCore::CCVideoLayerImpl::appendQuads):
124608
1246092012-06-14  Ryosuke Niwa  <rniwa@webkit.org>
124610
124611        The initial value of text-align should be start instead of -webkit-auto
124612        https://bugs.webkit.org/show_bug.cgi?id=79914
124613
124614        Reviewed by Tony Chang.
124615
124616        Change the initial value of text-align CSS property from -webkit-auto to start as specified in
124617        http://www.w3.org/TR/css3-text/#text-align
124618
124619        In editing, we have to coerce start and end to left and right for now because match-parent,
124620        which is the text-align value of li in UA stylesheet is going to result in the computed values of
124621        left as supposed to start by default, and this causes editing code not being able to remove
124622        text-align: left when computing typing styles and preserving styles.
124623
124624        In the long term, we should detect this specific case and ignore match-parent but that seemed like
124625        too much work to be done in a single patch also because the test result improved because of this change.
124626
124627        This behavior change is covered by existing regression tests.
124628
124629        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
124630        (WebCore::getAttributeSetForAccessibilityObject):
124631        * css/CSSParser.cpp:
124632        (WebCore::CSSParser::parseValue):
124633        * css/CSSPrimitiveValueMappings.h:
124634        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): No longer supports TAAUTO since it's identical to TASTART.
124635        (WebCore::CSSPrimitiveValue::operator ETextAlign): Ditto. Parse -webkit-auto as start.
124636        * css/StyleResolver.cpp:
124637        (WebCore::StyleResolver::collectMatchingRulesForList): Replace TAAUTO by TASTART.
124638        * editing/EditingStyle.cpp:
124639        (WebCore):
124640        (WebCore::textAlignResolvingStartAndEnd): Coerce start and end into left and right based on the directionality
124641        for editing. Otherwise, we end up adding lots of text-align: left due to li's UA style rule having match-parent
124642        as the text alignment and its descendent inherits this style. We need to handle it better in the future
124643        since start and left or end and right are semantically different.
124644        (WebCore::EditingStyle::prepareToApplyAt):
124645        (WebCore::getPropertiesNotIn):
124646        * rendering/RenderBlockLineLayout.cpp:
124647        (WebCore::RenderBlock::textAlignmentForLine): Justified text is aligned at start by default.
124648        (WebCore::RenderBlock::updateLogicalWidthForAlignment):
124649        (WebCore::RenderBlock::startAlignedOffsetForLine):
124650        * rendering/RenderBoxModelObject.cpp:
124651        (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
124652        * rendering/RenderListBox.cpp:
124653        (WebCore::itemOffsetForAlignment):
124654        * rendering/RenderMarquee.cpp:
124655        (WebCore::RenderMarquee::updateMarqueeStyle):
124656        * rendering/RenderRubyText.cpp:
124657        (WebCore::RenderRubyText::textAlignmentForLine):
124658        (WebCore::RenderRubyText::adjustInlineDirectionLineBounds):
124659        * rendering/RenderText.cpp:
124660        (WebCore::RenderText::localCaretRect):
124661        * rendering/style/RenderStyle.h:
124662        * rendering/style/RenderStyleConstants.h:
124663
1246642012-06-15  Jian Li  <jianli@chromium.org>
124665
124666        [File API] FileReader should work in sandbox iframe
124667        https://bugs.webkit.org/show_bug.cgi?id=89242
124668
124669        Reviewed by Adam Barth.
124670
124671        Test: fast/files/file-reader-sandbox-iframe.html
124672
124673        * fileapi/ThreadableBlobRegistry.cpp: Should remove from map for all threads.
124674        (WebCore::ThreadableBlobRegistry::unregisterBlobURL):
124675        * page/SecurityOrigin.cpp:
124676        (WebCore::SecurityOrigin::canRequest): Check and use cached origin for blob URL first.
124677
1246782012-06-15  David Barton  <dbarton@mathscribe.com>
124679
124680        Inherit style changes in MathML anonymous renderers
124681        https://bugs.webkit.org/show_bug.cgi?id=88476
124682
124683        Reviewed by Julien Chaffraix.
124684
124685        A RenderObject that is not the main renderer() for a DOM node is called "anonymous".
124686        Standard WebCore practice is to mark such a renderer as isAnonymous(). For example,
124687        RenderBlock::styleDidChange calls propagateStyleToAnonymousChildren to flow style
124688        changes to such children, by re-initializing their styles and then inheriting from
124689        this->style(). A derived class' styleDidChange() can then set non-default style
124690        properties as needed.
124691        
124692        This patch implements this standard practice for RenderMathMLBlock classes, except
124693        RenderMathMLOperator which currently uses a RenderLayer, which reportedly means it
124694        should not be isAnonymous(). We also follow common practice and change
124695        isAnonymousBlock() to return false for RenderMathMLBlock classes, since
124696        isAnonymousBlock() is really used by RenderBlock to detect its own anonymous blocks for
124697        wrapping inline children, which RenderBlock then combines or deletes assuming this.
124698        
124699        Test: mathml/presentation/style-changed.html, also added to mathml/presentation/over.xhtml
124700
124701        * rendering/RenderObject.h:
124702        (WebCore::RenderObject::isAnonymousBlock):
124703        * rendering/RenderTreeAsText.cpp:
124704        (WebCore::RenderTreeAsText::writeRenderObject):
124705        * rendering/mathml/RenderMathMLBlock.cpp:
124706        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
124707        (WebCore::RenderMathMLBlock::renderName):
124708        * rendering/mathml/RenderMathMLBlock.h:
124709        * rendering/mathml/RenderMathMLFenced.cpp:
124710        (WebCore::RenderMathMLFenced::createMathMLOperator):
124711        (WebCore::RenderMathMLFenced::makeFences):
124712        (WebCore::RenderMathMLFenced::addChild):
124713        (WebCore::RenderMathMLFenced::styleDidChange):
124714        * rendering/mathml/RenderMathMLFenced.h:
124715        * rendering/mathml/RenderMathMLFraction.cpp:
124716        (WebCore::RenderMathMLFraction::RenderMathMLFraction):
124717        (WebCore::RenderMathMLFraction::fixChildStyle):
124718        (WebCore::RenderMathMLFraction::addChild):
124719        (WebCore::RenderMathMLFraction::styleDidChange):
124720        * rendering/mathml/RenderMathMLFraction.h:
124721        * rendering/mathml/RenderMathMLOperator.cpp:
124722        (WebCore::RenderMathMLOperator::styleDidChange):
124723        * rendering/mathml/RenderMathMLOperator.h:
124724        * rendering/mathml/RenderMathMLSquareRoot.h:
124725        * rendering/mathml/RenderMathMLSubSup.cpp:
124726        (WebCore::RenderMathMLSubSup::fixScriptsStyle):
124727        (WebCore::RenderMathMLSubSup::addChild):
124728        (WebCore::RenderMathMLSubSup::styleDidChange):
124729        * rendering/mathml/RenderMathMLSubSup.h:
124730        * rendering/mathml/RenderMathMLUnderOver.cpp:
124731        (WebCore::RenderMathMLUnderOver::addChild):
124732        (WebCore::RenderMathMLUnderOver::styleDidChange):
124733        * rendering/mathml/RenderMathMLUnderOver.h:
124734
1247352012-06-13  Vincent Scheib  <scheib@chromium.org>
124736
124737        Add new Pointer Lock spec webkitRequestPointerLock and webkitExitPointerLock methods.
124738        https://bugs.webkit.org/show_bug.cgi?id=88891
124739
124740        Reviewed by Dimitri Glazkov.
124741
124742        Part of a series of refactoring changes to update pointer lock API to
124743        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
124744
124745        Entering and exiting mouse lock is provided in the new webkitRequestPointerLock and
124746        webkitExitPointerLock methods.
124747
124748        Existing pointer-lock tests updated to use the new methods.
124749
124750        * dom/Document.cpp:
124751        (WebCore::Document::webkitExitPointerLock):
124752        (WebCore):
124753        * dom/Document.h:
124754        (Document):
124755        * dom/Document.idl:
124756        * dom/Element.cpp:
124757        (WebCore):
124758        (WebCore::Element::webkitRequestPointerLock):
124759        * dom/Element.h:
124760        * dom/Element.idl:
124761
1247622012-06-15  Tony Payne  <tpayne@chromium.org>
124763
124764       [chromium] Add iccjpeg and qcms to chromium port
124765       https://bugs.webkit.org/show_bug.cgi?id=81974
124766
124767       Reviewed by Adam Barth.
124768
124769       Covered by existing layout tests which will be rebaselined.
124770
124771       * WebCore.gyp/WebCore.gyp: Add qcms to the build.
124772       * platform/image-decoders/ImageDecoder.h:
124773       (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Return an sRGB profile.
124774       On OSX, return the default RGB profile. Add FIXME to use the user's
124775       monitor profile and verify that profile for other platforms.
124776
124777       * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
124778       (turboSwizzled): For libjpeg-turbo, JCS_EXT_BGRA and JCS_EXT_RGBA are the
124779       two known output color spaces for which the decoder uses a data swizzle.
124780       (colorSpaceHasAlpha): JPEG's have no alpha in the output color space. For
124781       libjpeg-turbo, alpha may be present in the swizzled output color space.
124782
124783       (WebCore::JPEGImageReader::JPEGImageReader):
124784       (WebCore::JPEGImageReader::close):
124785       (WebCore::JPEGImageReader::decode): For QCMSLIB, create the color transform
124786       to use during decoding, and ensure we switch to inputing RGBA data to qcms
124787       even if the desired output data is BGRA: outputScanlines() sends BGRA data
124788       to the frame buffer following color correction if needed.
124789       (JPEGImageReader):
124790       (WebCore::JPEGImageReader::colorTransform): qcms color transform getter.
124791       (WebCore::JPEGImageReader::createColorTransform): Create color transform.
124792       Release the existing transform (if any) and assign to the color transform
124793       created from the color profile data.
124794       (WebCore::JPEGImageDecoder::outputScanlines): Minor style fix. Apply color
124795       transform to each decoded image row.
124796
124797       * platform/image-decoders/png/PNGImageDecoder.cpp:
124798       (WebCore::PNGImageReader::PNGImageReader):
124799       (WebCore::PNGImageReader::close):
124800       (WebCore::PNGImageReader::currentBufferSize): Move this adjacent to other
124801       setters and getters.
124802       (WebCore::PNGImageReader::decodingSizeOnly): Ditto.
124803       (WebCore::PNGImageReader::setHasAlpha): Ditto.
124804       (WebCore::PNGImageReader::hasAlpha): Ditto.
124805       (WebCore::PNGImageReader::interlaceBuffer): Ditto.
124806       (WebCore::PNGImageReader::createRowBuffer): Creates a temporary row buffer,
124807       used when a color transform is applied to the decoded image pixels.
124808       (WebCore::PNGImageReader::rowBuffer): Return the temporary row buffer.
124809       (WebCore::PNGImageReader::colorTransform): qcms color transform getter.
124810       (WebCore::PNGImageReader::createColorTransform): Create color transform.
124811       Release the existing transform (if any) and assign to the color transform
124812       created from the color profile data.
124813       (WebCore::PNGImageDecoder::headerAvailable): For QCMSLIB, create the color
124814       transform to use for decoding. Clear m_colorProfile (not used anymore).
124815       (WebCore::PNGImageDecoder::rowAvailable): Create temporary row buffer if
124816       a color transform is needed for decoding. Apply color transform to each
124817       decoded image row.
124818
124819       * platform/image-decoders/skia/ImageDecoderSkia.cpp:
124820       (WebCore::ImageFrame::setColorProfile): Old method of colorProfiles is no
124821       longer used. Add a FIXME to remove the old implementation.
124822       (WebCore::ImageFrame::setStatus): Remove old color correction code.
124823
1248242012-06-15  Silvia Pfeiffer  <silviapf@chromium.org>
124825
124826        Remove volume thumb for videos without audio track.
124827        https://bugs.webkit.org/show_bug.cgi?id=89093
124828
124829        Reviewed by Eric Carlson.
124830
124831        No new tests, since this was already tested in media/video-no-audio.html.
124832
124833        * rendering/RenderMediaControlsChromium.cpp:
124834        (WebCore::paintMediaMuteButton):
124835        Change mute button when there is no audio or no source file.
124836        (WebCore::paintMediaVolumeSlider):
124837        Set volume slider to 0 when there is no audio or no source file.
124838        (WebCore::paintMediaVolumeSliderThumb):
124839        Don't paint the volume slider thumb when there is no audio or no source file.
124840
1248412012-06-15  Abhishek Arya  <inferno@chromium.org>
124842
124843        Cleanup empty anonymous block continuation.
124844        https://bugs.webkit.org/show_bug.cgi?id=74976
124845
124846        Reviewed by Julien Chaffraix.
124847
124848        Fix rendering on http://docs.google.com/demo.
124849
124850        Test: fast/inline/inline-empty-block-continuation-remove.html
124851
124852        * rendering/RenderBlock.cpp:
124853        (WebCore::RenderBlock::removeChild): If we are removing our last child,
124854        and are an anonymous block which is part of a continuation chain, then
124855        we need to first fix our continuation chain by setting our previous
124856        continuation renderer to point to the next continuation renderer. Then,
124857        we reset our continuation pointer and destroy ourselves. Since we no
124858        longer are part of continuation chain, we will be removed and previous
124859        and next anonymous block will be merged automatically.
124860        * rendering/RenderObject.cpp:
124861        (WebCore::RenderObject::previousInPreOrder): add an argument to previousInOrder
124862        - stayWithin.
124863        (WebCore):
124864        * rendering/RenderObject.h:
124865        (RenderObject):
124866
1248672012-06-15  Taiju Tsuiki  <tzik@chromium.org>
124868
124869        Web Inspector: Move FileSystem frame management from frontend to backend
124870        https://bugs.webkit.org/show_bug.cgi?id=89190
124871
124872        Reviewed by Vsevolod Vlasov.
124873
124874        Test: http/tests/inspector/filesystem/read-directory.html
124875
124876        * inspector/Inspector.json:
124877        * inspector/InspectorFileSystemAgent.cpp:
124878        (WebCore::InspectorFileSystemAgent::readDirectory):
124879        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
124880        (WebCore::InspectorFileSystemAgent::scriptExecutionContextForOrigin):
124881        (WebCore):
124882        * inspector/InspectorFileSystemAgent.h:
124883        (WebCore):
124884        (InspectorFileSystemAgent):
124885
1248862012-06-15  Alexander Pavlov  <apavlov@chromium.org>
124887
124888        Unreviewed, build fix after r120469.
124889
124890        * css/CSSPropertySourceData.h:
124891        (WebCore):
124892
1248932012-06-15  Taiju Tsuiki  <tzik@chromium.org>
124894
124895        Web Inspector: Add FileSystemRequestManager and FileSystemDispatcher
124896        https://bugs.webkit.org/show_bug.cgi?id=89191
124897
124898        Reviewed by Vsevolod Vlasov.
124899
124900        * inspector/front-end/FileSystemModel.js:
124901        (WebInspector.FileSystemModel):
124902        (WebInspector.FileSystemRequestManager):
124903        (WebInspector.FileSystemRequestManager.prototoype._requestId):
124904        (WebInspector.FileSystemRequestManager.prototoype.readDirectory):
124905        (WebInspector.FileSystemRequestManager.prototoype._didReadDirectory):
124906        (WebInspector.FileSystemDispatcher):
124907        (WebInspector.FileSystemDispatcher.prototype.gotFileSystemRoot):
124908        (WebInspector.FileSystemDispatcher.prototype.didReadDirectory):
124909
1249102012-06-15  Pavel Feldman  <pfeldman@chromium.org>
124911
124912        Web Inspector: extension's Resource.getContent always returns original revision.
124913        https://bugs.webkit.org/show_bug.cgi?id=89219
124914
124915        Reviewed by Vsevolod Vlasov.
124916
124917        Fetching proper content from the UISourceCode now.
124918
124919        * inspector/front-end/DebuggerResourceBinding.js:
124920        (WebInspector.DebuggerResourceBinding.prototype.canSetContent):
124921        (WebInspector.DebuggerResourceBinding.prototype.setContent):
124922        * inspector/front-end/DebuggerScriptMapping.js:
124923        (WebInspector.DebuggerScriptMapping.prototype._debuggerReset):
124924        * inspector/front-end/ExtensionServer.js:
124925        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
124926        * inspector/front-end/JavaScriptSource.js:
124927        (WebInspector.JavaScriptSource):
124928        * inspector/front-end/Resource.js:
124929        (WebInspector.Resource.prototype.isHidden):
124930        (WebInspector.Resource.prototype.uiSourceCode):
124931        (WebInspector.Resource.prototype.setUISourceCode):
124932        * inspector/front-end/UISourceCode.js:
124933        (WebInspector.UISourceCode):
124934
1249352012-06-15  Ilya Tikhonovsky  <loislo@chromium.org>
124936
124937        Web Inspector: CRASH when DebuggerAgent.setBreakpoint was called twice for the same location.
124938        https://bugs.webkit.org/show_bug.cgi?id=89225
124939
124940        Reviewed by Pavel Feldman.
124941
124942        * inspector/InspectorDebuggerAgent.cpp:
124943        (WebCore::InspectorDebuggerAgent::setBreakpoint):
124944
1249452012-06-08  Alexander Pavlov  <apavlov@chromium.org>
124946
124947        Web Inspector: CSSParser::parseSheet() should provide ready-to-use source data
124948        https://bugs.webkit.org/show_bug.cgi?id=88646
124949
124950        Reviewed by Antti Koivisto.
124951
124952        This change moves the post-processing step from InspectorStyleSheet into CSSParser, so that
124953        CSSParser::parseSheet() will return a ready-to-use list with style rule source code data.
124954        Also, universal data structures are introduced, which allow for the full rule source data tree building.
124955
124956        No new tests, as this is a refactoring.
124957
124958        * css/CSSParser.cpp: Use universal data structures, which can be used for building the full rule tree.
124959        (WebCore::CSSParser::CSSParser):
124960        (WebCore::CSSParser::setupParser):
124961        (WebCore::CSSParser::parseSheet): Return ready-to-use source code data entries rather than an intermediate structure.
124962        (WebCore::CSSParser::parseDeclaration):
124963        (WebCore::CSSParser::addNewRuleToSourceTree):
124964        (WebCore):
124965        (WebCore::CSSParser::popRuleData):
124966        (WebCore::CSSParser::createStyleRule):
124967        (WebCore::CSSParser::fixUnparsedPropertyRanges): Moved in from InspectorStyleSheet.
124968        (WebCore::CSSParser::markSelectorListStart):
124969        (WebCore::CSSParser::markSelectorListEnd):
124970        (WebCore::CSSParser::markRuleBodyStart):
124971        (WebCore::CSSParser::markRuleBodyEnd):
124972        (WebCore::CSSParser::markPropertyEnd):
124973        * css/CSSParser.h:
124974        (CSSParser):
124975        (WebCore::CSSParser::resetPropertyRange): Renamed.
124976        (WebCore::CSSParser::isExtractingSourceData): A convenience check.
124977        * css/CSSPropertySourceData.h: Introduce the RuleSourceDataList typedef.
124978        (WebCore):
124979        * inspector/InspectorStyleSheet.cpp: Make use of RuleSourceDataList and follow the CSSParser::parse*() API changes.
124980        (ParsedStyleSheet::sourceData):
124981        (ParsedStyleSheet):
124982        (ParsedStyleSheet::setSourceData):
124983        (WebCore::InspectorStyleSheet::ensureSourceData): Remove source data postprocessing, follow the new parseSheet() API.
124984        * inspector/InspectorStyleSheet.h:
124985        (WebCore::InspectorCSSId::InspectorCSSId): Drive-by: uninitialized field fix.
124986        (WebCore::InspectorStyleProperty::InspectorStyleProperty): Ditto.
124987        (InspectorStyleSheet):
124988
1249892012-06-15  Pavel Feldman  <pfeldman@chromium.org>
124990
124991        Web Inspector: Long frame urls make all/errors/warnings/logs buttons inaccessible.
124992        https://bugs.webkit.org/show_bug.cgi?id=88907
124993
124994        Reviewed by Vsevolod Vlasov.
124995
124996        * inspector/front-end/inspector.css:
124997        (#console-context):
124998
1249992012-06-15  Florin Malita  <fmalita@chromium.org>
125000
125001        Specular light filters produce dark results
125002        https://bugs.webkit.org/show_bug.cgi?id=89116
125003
125004        Reviewed by Dirk Schulze.
125005
125006        Tests: svg/filters/feSpecularLight-premultiplied-expected.svg
125007               svg/filters/feSpecularLight-premultiplied.svg
125008
125009        Per spec (http://www.w3.org/TR/SVG/filters.html#feSpecularLightingElement),
125010        light filters should operate on pre-multiplied RGBA. Currently, the results
125011        are stored in the unmultiplied buffer but the alpha channel is calculated
125012        for premultiplied values (which causes a darkening of the result upon the
125013        subsequent unmultiplied->premultiplied conversion). This patch updates
125014        FELighting to generate premultiplied results.
125015
125016        * platform/graphics/filters/FELighting.cpp:
125017        (WebCore::FELighting::platformApplySoftware):
125018
1250192012-06-15  Andrey Kosyakov  <caseq@chromium.org>
125020
125021        Web Inspector: incorrect filtering of async timeline events
125022        https://bugs.webkit.org/show_bug.cgi?id=89214
125023
125024        Reviewed by Vsevolod Vlasov.
125025
125026        * inspector/front-end/TimelineOverviewPane.js:
125027        (WebInspector.TimelineOverviewPane.prototype.accept):
125028
1250292012-06-15  Stephen Chenney  <schenney@chromium.org>
125030
125031        SVG Composite of Offset filters incorrectly clips
125032        https://bugs.webkit.org/show_bug.cgi?id=77660
125033
125034        Reviewed by Dirk Schulze.
125035
125036        Prior to this patch, when a group of filtered objects was used as input to another filter,
125037        the filter only operated on the stroke boundary of the group, and hence excluded the results
125038        of filtering elements within the group, or extraneously included regions clipped from the
125039        elements in the group.
125040
125041        This patch modifies the strokeBoundingBox of SVG container elements to
125042        be the union of the repaint rects for the children. This modifes the
125043        results returned for sizing filters and for absoluteRects, which will cause
125044        inline layout around the group to factor in the resources applied to
125045        the group's children.
125046
125047        The relevant spec entry is this, in Section 3.7 of the SVG 1.1 spec: "...the result must be
125048        as though the paint operations had been applied to an intermediate canvas initialized to
125049        transparent black, of a size determined by the rules given in Filter Effects then filtered
125050        by the processes defined in Filter Effects." In this case the "paint operations" is implied
125051        to include the result of applying "paint" but no resources to the group, which in turn would
125052        have resources applied to the children of the group. This makes the most sense, as the current,
125053        incorrect behavior makes it extremely diffucult to understand the actions of filters on
125054        groups of filtered content.
125055
125056        Tests: svg/filters/container-with-filters-expected.svg
125057               svg/filters/container-with-filters.svg
125058
125059        * rendering/svg/RenderSVGContainer.cpp:
125060        (WebCore::RenderSVGContainer::updateCachedBoundaries):
125061        * rendering/svg/RenderSVGRoot.cpp:
125062        (WebCore::RenderSVGRoot::updateCachedBoundaries):
125063        * rendering/svg/SVGRenderSupport.cpp:
125064        (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
125065
1250662012-06-15  David Kilzer  <ddkilzer@apple.com>
125067
125068        Sort ENABLE(INSPECTOR) section of WebCore.exp.in
125069
125070        * WebCore.exp.in: Sort ENABLE(INSPECTOR) symbols.
125071
1250722012-06-15  David Kilzer  <ddkilzer@apple.com>
125073
125074        Remove duplicate symbol from WebCore.exp.in
125075
125076        * WebCore.exp.in: Remove duplicate symbol for:
125077        WebCore::Range::textQuads(WTF::Vector<WebCore::FloatQuad, 0ul>&, bool, WebCore::Range::RangeInFixedPosition*) const
125078
1250792012-06-15  Florin Malita  <fmalita@chromium.org>
125080
125081        [Chromium] Unreviewed debug build fix for r120457
125082
125083        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
125084        (WebCore::CCDrawQuad::toYUVVideoDrawQuad):
125085
1250862012-06-15  'Pavel Feldman'  <pfeldman@chromium.org>
125087
125088        Not reviewed: remove redundant Mac-specific style rule from inspector front-end.
125089
125090        * inspector/front-end/helpScreen.css:
125091
1250922012-06-15  Pavel Feldman  <pfeldman@chromium.org>
125093
125094        Web Inspector: fix help close button appearance on Mac
125095        https://bugs.webkit.org/show_bug.cgi?id=89208
125096
125097        Reviewed by Vsevolod Vlasov.
125098
125099        * inspector/front-end/helpScreen.css:
125100        (.help-close-button):
125101        (body.platform-mac .help-close-button):
125102        (body.platform-mac .help-window-main .tabbed-pane-header-contents):
125103
1251042012-06-11  Dana Jansens  <danakj@chromium.org>
125105
125106        [chromium] Create a CCYUVVideoDrawQuad and remove the now-unused generic CCVideoDrawQuad
125107        https://bugs.webkit.org/show_bug.cgi?id=88828
125108
125109        Reviewed by Adrienne Walker.
125110
125111        The CCVideoDrawQuad is now only used for YUV video, so we remove the
125112        class and replace it with CCYUVVideoDrawQuad. This class holds what is
125113        needed to draw a YUV video frame.
125114
125115        No new tests, no change in behaviour.
125116
125117        * WebCore.gypi:
125118        * platform/graphics/chromium/LayerRendererChromium.cpp:
125119        (WebCore::LayerRendererChromium::drawQuad):
125120        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
125121        * platform/graphics/chromium/LayerRendererChromium.h:
125122        (WebCore):
125123        (LayerRendererChromium):
125124        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
125125        (WebCore::CCDrawQuad::toYUVVideoDrawQuad):
125126        * platform/graphics/chromium/cc/CCDrawQuad.h:
125127        (WebCore):
125128        (CCDrawQuad):
125129        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
125130        (WebCore::CCVideoLayerImpl::appendQuads):
125131        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.cpp.
125132        (WebCore):
125133        (WebCore::CCYUVVideoDrawQuad::create):
125134        (WebCore::CCYUVVideoDrawQuad::CCYUVVideoDrawQuad):
125135        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.h.
125136        (WebCore):
125137        (CCYUVVideoDrawQuad):
125138        (WebCore::CCYUVVideoDrawQuad::yPlane):
125139        (WebCore::CCYUVVideoDrawQuad::uPlane):
125140        (WebCore::CCYUVVideoDrawQuad::vPlane):
125141
1251422012-06-15  Ilya Tikhonovsky  <loislo@chromium.org>
125143
125144        Web Inspector: CRASH: getProfile is crashing for unknown profiles.
125145        https://bugs.webkit.org/show_bug.cgi?id=89202
125146
125147        agents' functions have to set a value to errorString if it can't assign values to the mandatory out arguments.
125148
125149        Reviewed by Pavel Feldman.
125150
125151        Test: inspector/profiler/heap-snapshot-get-profile-crash.html
125152
125153        * inspector/InspectorProfilerAgent.cpp:
125154        (WebCore::InspectorProfilerAgent::getProfile):
125155
1251562012-06-15  Max Feil  <mfeil@rim.com>
125157
125158        [BlackBerry] media volume slider in wrong position (master_38 regression)
125159        https://bugs.webkit.org/show_bug.cgi?id=89165
125160
125161        Reviewed by Antonio Gomes.
125162
125163        Due to upstream simplification of the volume slider (webkit.org
125164        bug 82150) it now appears in the wrong location below the
125165        media controls. The programmatic controls sizing we do in
125166        RenderThemeBlackBerry.cpp relies on absolute positioning of the
125167        volume slider container, so the best way to fix this is to set
125168        the bottom offset.
125169
125170        No new tests since this is a regression fix. BlackBerry media
125171        controls are manually tested.
125172
125173        * platform/blackberry/RenderThemeBlackBerry.cpp:
125174        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
125175
1251762012-06-15  'Pavel Feldman'  <pfeldman@chromium.org>
125177
125178        Not reviewed: remove garbage line from inspector view in docked-to-right mode.
125179
125180        * inspector/front-end/inspectorCommon.css:
125181        (body.docked.dock-to-right.docked):
125182        (body.docked.dock-to-right.inactive):
125183
1251842012-06-15  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
125185
125186        Buildfix for !ENABLE(BLOB) platforms after r120433.
125187        https://bugs.webkit.org/show_bug.cgi?id=78648
125188
125189        Reviewed by Csaba Osztrogonác.
125190
125191        * fileapi/ThreadableBlobRegistry.cpp:
125192        (WebCore::ThreadableBlobRegistry::registerBlobURL):
125193
1251942012-06-15  Sami Kyostila  <skyostil@chromium.org>
125195
125196        [chromium] Allow scrolling non-root layers in the compositor thread
125197        https://bugs.webkit.org/show_bug.cgi?id=73350
125198
125199        Reviewed by James Robinson.
125200
125201        This patch enables scrolling child layers in the compositor thread.
125202        Scroll deltas are accumulated for each scrolled CCLayerImpl and
125203        synchronized to the main thread.
125204
125205        If a layer has no room to scroll in a given direction, one of its
125206        ancestor layers is scrolled instead if possible.
125207
125208        Layer hit testing code by Shawn Singh.
125209
125210        Added new unit tests to verify layer scrolling behavior:
125211
125212            CCLayerTreeHostCommonTest.verifySubtreeSearch
125213            CCLayerTreeHostImplTest.clearRootRenderSurfaceAndScroll
125214            CCLayerTreeHostImplTest.inhibitScrollAndPageScaleUpdatesWhileAnimatingPageScale
125215            CCLayerTreeHostImplTest.inhibitScrollAndPageScaleUpdatesWhilePinchZooming
125216            CCLayerTreeHostImplTest.replaceTreeWhileScrolling
125217            CCLayerTreeHostImplTest.scrollBeforeRedraw
125218            CCLayerTreeHostImplTest.scrollBlockedByContentLayer
125219            CCLayerTreeHostImplTest.scrollChildAndChangePageScaleOnMainThread
125220            CCLayerTreeHostImplTest.scrollChildBeyondLimit
125221            CCLayerTreeHostImplTest.scrollChildCallsCommitAndRedraw
125222            CCLayerTreeHostImplTest.scrollEventBubbling
125223            CCLayerTreeHostImplTest.scrollMissesBackfacingChild
125224            CCLayerTreeHostImplTest.scrollMissesChild
125225            CCLayerTreeHostImplTest.scrollNonCompositedRoot
125226            CCLayerTreeHostImplTest.scrollRootAndChangePageScaleOnImplThread
125227            CCLayerTreeHostImplTest.scrollRootAndChangePageScaleOnMainThread
125228            CCLayerTreeHostImplTest.scrollRootIgnored
125229            CCLayerTreeHostImplTest.scrollWithoutRootLayer
125230            CCLayerTreeHostTestScrollChildLayer
125231            WebCompositorInputHandlerImplTest.gestureScrollOnMainThread
125232
125233        * platform/graphics/chromium/LayerChromium.cpp:
125234        (WebCore::LayerChromium::LayerChromium):
125235        (WebCore::LayerChromium::setMaxScrollPosition):
125236        (WebCore):
125237        (WebCore::LayerChromium::scrollBy):
125238        (WebCore::LayerChromium::pushPropertiesTo):
125239        * platform/graphics/chromium/LayerChromium.h:
125240        (WebCore):
125241        (LayerChromiumScrollDelegate):
125242        (WebCore::LayerChromiumScrollDelegate::~LayerChromiumScrollDelegate):
125243        (LayerChromium):
125244        (WebCore::LayerChromium::maxScrollPosition):
125245        (WebCore::LayerChromium::scrollable):
125246        (WebCore::LayerChromium::setLayerScrollDelegate):
125247        * platform/graphics/chromium/cc/CCInputHandler.h:
125248        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
125249        (WebCore::CCLayerImpl::tryScroll):
125250        (WebCore):
125251        (WebCore::sortLayers):
125252        * platform/graphics/chromium/cc/CCLayerImpl.h:
125253        (CCLayerImpl):
125254        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
125255        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
125256        (WebCore::findFirstScrollableLayer):
125257        (WebCore):
125258        (WebCore::CCLayerTreeHost::applyScrollAndScale):
125259        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
125260        (CCLayerTreeHostCommon):
125261        (WebCore):
125262        (WebCore::CCLayerTreeHostCommon::findLayerInSubtree):
125263        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
125264        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
125265        (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
125266        (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
125267        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
125268        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
125269        (WebCore::CCLayerTreeHostImpl::contentSize):
125270        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
125271        (WebCore::CCLayerTreeHostImpl::drawLayers):
125272        (WebCore::findRootScrollLayer):
125273        (WebCore):
125274        (WebCore::findScrollLayerForContentLayer):
125275        (WebCore::CCLayerTreeHostImpl::setRootLayer):
125276        (WebCore::CCLayerTreeHostImpl::detachLayerTree):
125277        (WebCore::adjustScrollsForPageScaleChange):
125278        (WebCore::applyPageScaleDeltaToScrollLayers):
125279        (WebCore::CCLayerTreeHostImpl::setPageScaleFactorAndLimits):
125280        (WebCore::CCLayerTreeHostImpl::setPageScaleDelta):
125281        (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
125282        (WebCore::CCLayerTreeHostImpl::ensureRenderSurfaceLayerList):
125283        (WebCore::CCLayerTreeHostImpl::clearCurrentlyScrollingLayer):
125284        (WebCore::CCLayerTreeHostImpl::scrollBegin):
125285        (WebCore::CCLayerTreeHostImpl::scrollBy):
125286        (WebCore::CCLayerTreeHostImpl::scrollEnd):
125287        (WebCore::CCLayerTreeHostImpl::pinchGestureUpdate):
125288        (WebCore::CCLayerTreeHostImpl::computePinchZoomDeltas):
125289        (WebCore::CCLayerTreeHostImpl::makeScrollAndScaleSet):
125290        (WebCore::collectScrollDeltas):
125291        (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
125292        (WebCore::CCLayerTreeHostImpl::animatePageScale):
125293        (WebCore::CCLayerTreeHostImpl::animateLayers):
125294        (WebCore::CCLayerTreeHostImpl::clearRenderSurfaces):
125295        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
125296        (FrameData):
125297        (CCLayerTreeHostImpl):
125298        (WebCore::CCLayerTreeHostImpl::rootScrollLayer):
125299
1253002012-06-15  Jian Li  <jianli@chromium.org>
125301
125302        FileReader is dysfunctional in documents with "null" origin string
125303        https://bugs.webkit.org/show_bug.cgi?id=78648
125304
125305        Reviewed by Adam Barth.
125306
125307        The fix is to keep in-memory map from blob URL to SecurityOrigin for the
125308        unique origin case.
125309
125310        Test: fast/files/file-reader-file-url.html
125311
125312        * fileapi/Blob.cpp:
125313        (WebCore::Blob::Blob):
125314        * fileapi/BlobURL.cpp:
125315        (WebCore::BlobURL::getOrigin): Return the origin string embeded in the blob URL.
125316        (WebCore):
125317        (WebCore::BlobURL::createBlobURL): Remove the check for null origin string since it is handled now.
125318        * fileapi/BlobURL.h:
125319        (BlobURL):
125320        * fileapi/FileReaderLoader.cpp:
125321        (WebCore::FileReaderLoader::start):
125322        * fileapi/ThreadableBlobRegistry.cpp:
125323        (WebCore):
125324        (WebCore::originMap): Thread-specific in-memory map from the blob URL to the origin.
125325        (WebCore::ThreadableBlobRegistry::registerBlobURL): Add the map from the blob URL to the origin.
125326        (WebCore::ThreadableBlobRegistry::unregisterBlobURL): Remove the map for the unregistered blob URL.
125327        (WebCore::ThreadableBlobRegistry::getCachedOrigin): Retrieve the origin associated with the blob URL.
125328        * fileapi/ThreadableBlobRegistry.h:
125329        (WebCore):
125330        (ThreadableBlobRegistry):
125331        * html/DOMURL.cpp:
125332        (WebCore::DOMURL::createObjectURL):
125333        * page/SecurityOrigin.cpp:
125334        (WebCore::getCachedOrigin): Return the cached origin for the blob URL if it exists.
125335        (WebCore):
125336        (WebCore::SecurityOrigin::create): Call getCachedOrigin to get the cached origin first.
125337
1253382012-06-15  Yoshifumi Inoue  <yosin@chromium.org>
125339
125340        [Forms] Move search field related code to RenderSearchField from RenderTextControlSingleLine
125341        https://bugs.webkit.org/show_bug.cgi?id=88980
125342
125343        Reviewed by Kent Tamura.
125344
125345        This patch moves search field related methods in RenderTextControlSingleLine
125346        to new class RenderSearchField and changes related classes to use
125347        RenderSearchField.
125348
125349        No new tests. This patch doesn't change behavior.
125350
125351        * CMakeLists.txt: Added new file RenderSearchField.cpp
125352        * GNUmakefile.list.am: Added new file RenderSearchField.cpp and RenderSearchField.h
125353        * Target.pri: ditto
125354        * WebCore.gypi: ditto
125355        * WebCore.vcproj/WebCore.vcproj: ditto
125356        * WebCore.xcodeproj/project.pbxproj: ditto
125357        * html/HTMLInputElement.cpp:
125358        (WebCore::HTMLInputElement::subtreeHasChanged): Call RenderSearchField::updateCancelButtonVisibility
125359        (WebCore::HTMLInputElement::addSearchResult): Changed to call InputType::addSearchResult.
125360        * html/InputType.cpp:
125361        (WebCore::InputType::addSearchResult): Added.
125362        * html/InputType.h:
125363        * html/SearchInputType.cpp:
125364        (WebCore::SearchInputType::addSearchResult): Moved from HTMLInputElement.
125365        (WebCore::SearchInputType::createRenderer): Added to create RenderSearchField.
125366        * html/SearchInputType.h:
125367        * html/shadow/TextControlInnerElements.cpp:
125368        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Use RenderSearchField instead of RenderTextControlSingleLine.
125369        * loader/FormSubmission.cpp:
125370        (WebCore::FormSubmission::create): Got rid isSearchField() guard for addSearchResult().
125371        * rendering/RenderSearchField.cpp:
125372        (WebCore::RenderSearchField::RenderSearchField): Renamed to RenderSearchField.
125373        (WebCore::RenderSearchField::~RenderSearchField): ditto
125374        (WebCore::RenderSearchField::resultsButtonElement): ditto
125375        (WebCore::RenderSearchField::cancelButtonElement): ditto
125376        (WebCore::RenderSearchField::addSearchResult): ditto
125377        (WebCore::RenderSearchField::showPopup): ditto
125378        (WebCore::RenderSearchField::hidePopup): ditto
125379        (WebCore::RenderSearchField::computeControlHeight): Added.
125380        (WebCore::RenderSearchField::updateFromElement): Moved search field related code from RenderTextControlSingleLine.
125381        (WebCore::RenderSearchField::updateCancelButtonVisibility): Renamed to RenderSearchField.
125382        (WebCore::RenderSearchField::visibilityForCancelButton): ditto
125383        (WebCore::RenderSearchField::autosaveName): ditto
125384        (WebCore::RenderSearchField::valueChanged): ditto
125385        (WebCore::RenderSearchField::itemText): ditto
125386        (WebCore::RenderSearchField::itemLabel): ditto
125387        (WebCore::RenderSearchField::itemIcon): ditto
125388        (WebCore::RenderSearchField::itemIsEnabled): ditto
125389        (WebCore::RenderSearchField::itemStyle): ditto
125390        (WebCore::RenderSearchField::menuStyle): ditto
125391        (WebCore::RenderSearchField::clientInsetLeft): ditto
125392        (WebCore::RenderSearchField::clientInsetRight): ditto
125393        (WebCore::RenderSearchField::clientPaddingLeft): ditto
125394        (WebCore::RenderSearchField::clientPaddingRight): ditto
125395        (WebCore::RenderSearchField::listSize): ditto
125396        (WebCore::RenderSearchField::selectedIndex): ditto
125397        (WebCore::RenderSearchField::popupDidHide): ditto
125398        (WebCore::RenderSearchField::itemIsSeparator): ditto
125399        (WebCore::RenderSearchField::itemIsLabel): ditto
125400        (WebCore::RenderSearchField::itemIsSelected): ditto
125401        (WebCore::RenderSearchField::setTextFromItem): ditto
125402        (WebCore::RenderSearchField::fontSelector): ditto
125403        (WebCore::RenderSearchField::hostWindow): ditto
125404        (WebCore::RenderSearchField::createScrollbar): ditto
125405        (WebCore::RenderSearchField::computeHeightLimit): Added.
125406        (WebCore::RenderSearchField::centerContainerIfNeeded): Added.
125407        * rendering/RenderSearchField.h:
125408        (WebCore::toRenderSearchField): Added.
125409        * rendering/RenderTextControlSingleLine.cpp:
125410        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine): Remove search field related code.
125411        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine): ditto.
125412        (WebCore::RenderTextControlSingleLine::computeHeightLimit): Added.
125413        (WebCore::RenderTextControlSingleLine::layout): Use new methods for removing isSearchField.
125414        (WebCore::RenderTextControlSingleLine::computeControlHeight): Added.
125415        (WebCore::RenderTextControlSingleLine::updateFromElement): Remove search field related code.
125416        * rendering/RenderTextControlSingleLine.h:
125417        (RenderTextControlSingleLine):
125418        (WebCore::RenderTextControlSingleLine::centerContainerIfNeeded): Added.
125419        (WebCore::RenderTextControlSingleLine::containerElement): Exposed for RenderSearchField.
125420        (WebCore::RenderTextControlSingleLine::innerBlockElement): Exposed for RenderSearchField.
125421        * rendering/RenderingAllInOne.cpp: Added RenderSearchField.cpp
125422
1254232012-06-15  Hironori Bono  <hbono@chromium.org>
125424
125425        Allow platforms to choose whether to remove markers on editing
125426        https://bugs.webkit.org/show_bug.cgi?id=88838
125427
125428        Reviewed by Hajime Morita.
125429
125430        This change allows platforms to choose whether to remove markers on a word being
125431        edited. WebKit does not remove markers when we move a selection to a markered
125432        word on platforms that shouldEraseMarkersAfterChangeSelection returns false.
125433        On such platforms, WebKit expects to set WTF_USE_MARKER_REMOVAL_UPON_EDITING to
125434        1 so Editor::updateMarkersForWordsAffectedByEditing can remove markers. This
125435        change also checks the return value of shouldEraseMarkersAfterChangeSelection so
125436        platform can choose it. This change also adds grammar markers so it can also
125437        remove grammar markers.
125438
125439        Test: editing/spelling/grammar-edit-word.html
125440
125441        * editing/Editor.cpp:
125442        (WebCore::Editor::updateMarkersForWordsAffectedByEditing):
125443
1254442012-06-15  Andrey Adaikin  <aandrey@chromium.org>
125445
125446        Web Inspector: [WebGL] Simple implementation of the InjectedWebGLScriptSource to support capturing WebGL calls for a frame
125447        https://bugs.webkit.org/show_bug.cgi?id=89088
125448
125449        Simple experimental implementation of the InjectedWebGLScriptSource.js that allows to wrap
125450        a WebGL context and capture names (for now) of the WebGL function calls for a frame being captured.
125451
125452        Reviewed by Vsevolod Vlasov.
125453
125454        * inspector/InjectedWebGLScriptSource.js:
125455        (.):
125456
1254572012-06-15  Silvia Pfeiffer  <silviapf@chromium.org>
125458
125459        Add fullscreen button to Chrome video controls for video.
125460        https://bugs.webkit.org/show_bug.cgi?id=88818
125461
125462        Reviewed by Eric Carlson.
125463
125464        No new tests, final patch will contain the rebaselined tests.
125465
125466        The Chrome video controls are receiving a visual update.
125467        This patch includes a fullscreen button for video elements and the rendering of the controls
125468        in fullscreen including hiding them after 2 seconds when the mouse is out of the controls
125469        and not moved.
125470
125471        * css/fullscreen.css:
125472        (video:-webkit-full-screen, audio:-webkit-full-screen):
125473        Add audio to the default fullscreen styling rules.
125474        * css/mediaControlsChromium.css:
125475        (video:-webkit-full-page-media::-webkit-media-controls-panel):
125476        Align controls to the bottom of the fullscreen page.
125477        (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
125478        Include styling for the fullscreen button.
125479        * html/shadow/MediaControlRootElementChromium.cpp:
125480        (WebCore):
125481        Add a constant for when to hide the controls in fullscreen.
125482        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
125483        Add member fields for fullscreen button, hiding timer and tracking of whether we are in fullscreen.
125484        (WebCore::MediaControlRootElementChromium::create):
125485        Add fullscreen button element to the visual layout.
125486        (WebCore::MediaControlRootElementChromium::setMediaController):
125487        Add fullscreen button element to the media controller.
125488        (WebCore::MediaControlRootElementChromium::reset):
125489        Show the fullscreen button if the controller supports fullscreen.
125490        (WebCore::MediaControlRootElementChromium::playbackStarted):
125491        Start the timer to hide the controls in fullscreen.
125492        (WebCore::MediaControlRootElementChromium::playbackStopped):
125493        Don't hide the controls when the video is paused in fullscreen.
125494        (WebCore::MediaControlRootElementChromium::reportedError):
125495        Hide the fullscreen button when we hit an error.
125496        (WebCore::MediaControlRootElementChromium::defaultEventHandler):
125497        Add logic for mouse events in fullscreen to start/stop the hiding timer.
125498        (WebCore::MediaControlRootElementChromium::startHideFullscreenControlsTimer):
125499        Start the fullscreen hiding timer.
125500        (WebCore::MediaControlRootElementChromium::hideFullscreenControlsTimerFired):
125501        Timer fired: hide the video controls in fullscreen.
125502        (WebCore::MediaControlRootElementChromium::stopHideFullscreenControlsTimer):
125503        Reset the fullscreen hiding timer.
125504        (WebCore::MediaControlRootElementChromium::enteredFullscreen):
125505        Add logic to enter fullscreen.
125506        (WebCore::MediaControlRootElementChromium::exitedFullscreen):
125507        Add logic to exit fullscreen.
125508        * html/shadow/MediaControlRootElementChromium.h:
125509        (MediaControlRootElementChromium):
125510        Add declaration of member functions and fields for fullscreen.
125511        * rendering/RenderMediaControlsChromium.cpp:
125512        (WebCore::paintMediaFullscreenButton):
125513        Use the new image for the fullscreen button.
125514        * rendering/RenderThemeChromiumMac.h:
125515        (RenderThemeChromiumMac):
125516        Declare the fullscreen painting function for Chrome Mac.
125517        * rendering/RenderThemeChromiumMac.mm:
125518        (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
125519        Hook up the fullscreen paining function for Chrome Mac.
125520        * rendering/RenderThemeChromiumSkia.cpp:
125521        (WebCore::RenderThemeChromiumSkia::paintMediaFullscreenButton):
125522        Hook up the fullscreen paining function for Chrome Skia.
125523        * rendering/RenderThemeChromiumSkia.h:
125524        (RenderThemeChromiumSkia):
125525        Declare the fullscreen painting function for Chrome Skia.
125526
1255272012-06-14  Kent Tamura  <tkent@chromium.org>
125528
125529        Unreviewed, rolling out r110340.
125530        http://trac.webkit.org/changeset/110340
125531        https://bugs.webkit.org/show_bug.cgi?id=88749
125532
125533        r110340 added a broken implementation of
125534        HTMLSelectElement::selectedOptions. This roll out removes
125535        HTMLSelectElement::selectedOptions.
125536
125537        * html/CollectionType.h:
125538        * html/HTMLCollection.cpp:
125539        (WebCore::HTMLCollection::shouldIncludeChildren):
125540        (WebCore::HTMLCollection::isAcceptableElement):
125541        * html/HTMLSelectElement.cpp:
125542        * html/HTMLSelectElement.h:
125543        (HTMLSelectElement):
125544        * html/HTMLSelectElement.idl:
125545
1255462012-06-14  Keishi Hattori  <keishi@webkit.org>
125547
125548        Add color property to input type=range
125549        https://bugs.webkit.org/show_bug.cgi?id=89067
125550
125551        Reviewed by Kent Tamura.
125552
125553        Adding color property to input type=range in preparation for
125554        supporting tick marks for datalist for input type=range.
125555
125556        * css/html.css:
125557        (input[type="range"]): Setting color property for input type=range.
125558        This will set the color of tick mark when we implement <datalist>.
125559        * css/themeChromiumLinux.css:
125560        (input[type=range]):
125561        * css/themeWin.css:
125562        (input[type="range"]):
125563
1255642012-06-14  Kent Tamura  <tkent@chromium.org>
125565
125566        Support file extensions in HTMLInputElement::accept
125567        https://bugs.webkit.org/show_bug.cgi?id=88298
125568
125569        Reviewed by Hajime Morita.
125570
125571        The WHATWG specification added file extensions supoprt for
125572        HTMLInputElement::accept recently.
125573
125574        In the WebCore FileChooser interface, we rejected invalid MIME type
125575        strings in HTMLInputElement::acceptMIMETypes(), and platform file
125576        choosers don't expect that it containts file extensions. So, this patch
125577        introduces additional member "acceptFileExtensions" to
125578        FileChooserSettings, and it contains only file extensions specified by
125579        an accept attribute.
125580
125581        * html/FileInputType.cpp:
125582        Sets HTMLInputElement::acceptFileExtensions() to
125583        FileChooserSettings::acceptFileExtensions.
125584        (WebCore::FileInputType::handleDOMActivateEvent):
125585        (WebCore::FileInputType::receiveDropForDirectoryUpload):
125586        * html/HTMLInputElement.cpp:
125587        (WebCore::isValidFileExtension): Added.
125588        (WebCore::parseAcceptAttribute):
125589        Common part for acceptMIMETyps() and acceptFileExtensions().
125590        (WebCore::HTMLInputElement::acceptMIMETypes):
125591        Uses parseAcceptAttribute() with isValidMIMEType().
125592        (WebCore::HTMLInputElement::acceptFileExtensions):
125593        Added. Uses parseAcceptAttribute() with isValidFileExtension().
125594        * html/HTMLInputElement.h:
125595        (HTMLInputElement): Add acceptFileExtensions().
125596        * platform/FileChooser.h:
125597        (FileChooserSettings): Add acceptFileExtensions and acceptTypes().
125598        * platform/FileChooser.cpp:
125599        (WebCore::FileChooserSettings::acceptTypes): Added.
125600
1256012012-06-14  James Robinson  <jamesr@chromium.org>
125602
125603        [chromium] Remove unused CanvasLayerChromium.h/cpp from the tree
125604        https://bugs.webkit.org/show_bug.cgi?id=89152
125605
125606        Reviewed by Adrienne Walker.
125607
125608        These files have been unused and not in the build system since r119769
125609
125610        * platform/graphics/chromium/CanvasLayerChromium.cpp: Removed.
125611        * platform/graphics/chromium/CanvasLayerChromium.h: Removed.
125612
1256132012-06-14  Emil A Eklund  <eae@chromium.org>
125614
125615        Cast paddings to int in RenderTableCell
125616        https://bugs.webkit.org/show_bug.cgi?id=88918
125617
125618        Reviewed by Levi Weintraub.
125619
125620        Table layout uses integers throughout yet the TableCell paddingLeft/
125621        Right/Top/Bottom methods returns LayoutUnits. This causes inconsistent
125622        rounding as some call sites cast the numbers to ints before doing
125623        computation and others do computation before casting.
125624
125625        By changing the methods to always cast the padding values to int we
125626        ensure consistent padding calculations.
125627
125628        Ideally we'd change the type of the return value for the methods but as
125629        they are overriden that would likely cause more confusion.
125630
125631        Test: fast/sub-pixel/table-cells-with-padding-do-not-wrap.html
125632
125633        * rendering/RenderTableCell.cpp:
125634        (WebCore::RenderTableCell::paddingTop):
125635        (WebCore::RenderTableCell::paddingBottom):
125636        (WebCore::RenderTableCell::paddingLeft):
125637        (WebCore::RenderTableCell::paddingRight):
125638        (WebCore::RenderTableCell::paddingBefore):
125639        (WebCore::RenderTableCell::paddingAfter):
125640
1256412012-06-14  Kenichi Ishibashi  <bashi@chromium.org>
125642
125643        [Chromium] Check the result of FontCache::getCachedFontPlatformData()
125644        https://bugs.webkit.org/show_bug.cgi?id=89141
125645
125646        Reviewed by Kent Tamura.
125647
125648        The value of FontCache::getCachedFontPlatformData() could be invalid,
125649        so we should check the value before use it.
125650
125651        No new tests. No new functionality.
125652
125653        * platform/graphics/skia/FontCacheSkia.cpp:
125654        (WebCore::FontCache::getFontDataForCharacters):
125655
1256562012-06-14  Gregg Tavares  <gman@google.com>
125657
125658        Fix framebuffer completeness test
125659        https://bugs.webkit.org/show_bug.cgi?id=89127
125660
125661        Reviewed by Kenneth Russell.
125662
125663        No new tests just fixing failing tests.
125664
125665        * html/canvas/WebGLFramebuffer.cpp:
125666        (WebCore::WebGLFramebuffer::initializeAttachments):
125667        * html/canvas/WebGLRenderingContext.cpp:
125668        (WebCore):
125669        (WebCore::WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid):
125670        * platform/graphics/GraphicsContext3D.cpp:
125671        (WebCore::GraphicsContext3D::getClearBitsByAttachmentType):
125672        (WebCore):
125673        (WebCore::GraphicsContext3D::getClearBitsByFormat):
125674        (WebCore::GraphicsContext3D::getChannelBitsByFormat):
125675        * platform/graphics/GraphicsContext3D.h:
125676
1256772012-06-14  Adrienne Walker  <enne@google.com>
125678
125679        [chromium] Make TiledLayerChromium robust to unexpected null tiles
125680        https://bugs.webkit.org/show_bug.cgi?id=89143
125681
125682        Reviewed by James Robinson.
125683
125684        Although there shouldn't ever be null tiles in the map, it appears to
125685        be occurring frequently enough to show up in crash reports. In the
125686        short term, be robust to this so the tiler doesn't crash. This should
125687        eventually be reverted.
125688
125689        * platform/graphics/chromium/TiledLayerChromium.cpp:
125690        (WebCore::TiledLayerChromium::pushPropertiesTo):
125691        (WebCore::TiledLayerChromium::setLayerTreeHost):
125692        (WebCore::TiledLayerChromium::invalidateRect):
125693        (WebCore::TiledLayerChromium::updateTiles):
125694        (WebCore::TiledLayerChromium::resetUpdateState):
125695
1256962012-06-14  Kent Tamura  <tkent@chromium.org>
125697
125698        Validate form state strings in FormController::setStateForNewFormElements()
125699        https://bugs.webkit.org/show_bug.cgi?id=88768
125700
125701        Reviewed by Hajime Morita.
125702
125703        Reject invalid form state vectors. This state vectors are generated by
125704        WebKit itself. However it can be invalid because
125705        - Serialized state vectors can be corrupted
125706        - A future version of WebKit might change the format
125707
125708        So we had better reject unexpected state vectors as possible.
125709
125710        Test: fast/forms/state-restore-broken-state.html
125711
125712        * WebCore.exp.in: Expose some symbols used by Internals.cpp.
125713        * html/FormController.cpp:
125714        (WebCore::isNotFormControlTypeCharacter): A helper for state validation.
125715        (WebCore::FormController::setStateForNewFormElements):
125716        Reject state vectors of which size is not a multiple of 3, or a type name is invalid.
125717        * testing/Internals.cpp:
125718        (WebCore::Internals::formControlStateOfPreviousHistoryItem):
125719        Returns a form state vector of the previous document.
125720        (WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
125721        Sets a form state vector for the previous document.
125722        * testing/Internals.h: Declare new functions.
125723        * testing/Internals.idl: ditto.
125724
1257252012-06-14  Sheriff Bot  <webkit.review.bot@gmail.com>
125726
125727        Unreviewed, rolling out r120393.
125728        http://trac.webkit.org/changeset/120393
125729        https://bugs.webkit.org/show_bug.cgi?id=89163
125730
125731        breaks cr-mac build (Requested by morrita on #webkit).
125732
125733        * WebCore.gyp/WebCore.gyp:
125734        * platform/image-decoders/ImageDecoder.h:
125735        (ImageFrame):
125736        (ImageDecoder):
125737        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
125738        (turboSwizzled):
125739        (WebCore::JPEGImageReader::JPEGImageReader):
125740        (WebCore::JPEGImageReader::close):
125741        (WebCore::JPEGImageReader::decode):
125742        (JPEGImageReader):
125743        (WebCore::JPEGImageDecoder::outputScanlines):
125744        * platform/image-decoders/png/PNGImageDecoder.cpp:
125745        (WebCore::PNGImageReader::PNGImageReader):
125746        (WebCore::PNGImageReader::close):
125747        (WebCore::PNGImageReader::currentBufferSize):
125748        (PNGImageReader):
125749        (WebCore::PNGImageReader::decodingSizeOnly):
125750        (WebCore::PNGImageReader::interlaceBuffer):
125751        (WebCore::PNGImageReader::hasAlpha):
125752        (WebCore::PNGImageReader::setHasAlpha):
125753        (WebCore::PNGImageDecoder::headerAvailable):
125754        (WebCore::PNGImageDecoder::rowAvailable):
125755        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
125756        (WebCore):
125757        (WebCore::resolveColorSpace):
125758        (WebCore::createColorSpace):
125759        (WebCore::ImageFrame::setColorProfile):
125760        (WebCore::ImageFrame::setStatus):
125761
1257622012-06-14  Julien Chaffraix  <jchaffraix@webkit.org>
125763
125764        RenderLayer subtrees without any self-painting layer shouldn't be walked during painting
125765        https://bugs.webkit.org/show_bug.cgi?id=88888
125766
125767        Reviewed by Simon Fraser.
125768
125769        Performance optimization, covered by existing tests.
125770
125771        The gist of this change is to add a has-self-painting-layer-descendant flag (including an
125772        invalidation logic) that is used to avoid walking subtrees without any self-painting layer.
125773
125774        On http://dglazkov.github.com/performance-tests/biggrid.html with a 100,000 rows
125775        by 100 columns table, it brings the paint time during scrolling from ~45ms to ~6ms
125776        on my machine. The test case is a pathologic example here but the optimization should
125777        apply in other cases.
125778
125779        The new update logic piggy-backs on top of the existing updateVisibilityStatus() one that
125780        got repurposed and renamed as part of this change.
125781
125782        * rendering/RenderLayer.cpp:
125783        (WebCore::RenderLayer::RenderLayer):
125784        (WebCore::RenderLayer::addChild):
125785        (WebCore::RenderLayer::removeChild):
125786        (WebCore::RenderLayer::styleChanged):
125787        These functions were updated to dirty / set the new flag.
125788
125789        (WebCore::RenderLayer::dirtyAncestorChainHasSelfPaintingLayerDescendantStatus):
125790        (WebCore::RenderLayer::setAncestorChainHasSelfPaintingLayerDescendant):
125791        Added those functions to handle setting / invalidating the new flag.
125792
125793        (WebCore::RenderLayer::updateSelfPaintingLayerAfterStyleChange):
125794        Added this function to handle style update.
125795
125796        (WebCore::RenderLayer::paintLayer):
125797        (WebCore::RenderLayer::paintLayerContentsAndReflection):
125798        (WebCore::RenderLayer::paintLayerContents):
125799        (WebCore::RenderLayer::paintList):
125800        Changed this logic to bail out if we have no self-painting descendants. This is what
125801        is giving the performance improvement. Also added some performance ASSERTs to ensure
125802        the methods are not called when they shouldn't.
125803
125804        (WebCore::RenderLayer::updateDescendantDependentFlags):
125805        Renamed from updateVisibilityStatus to account for the new usage.
125806
125807        (WebCore::RenderLayer::updateLayerPositions):
125808        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
125809        (WebCore::RenderLayer::collectLayers):
125810        * rendering/RenderLayerBacking.cpp:
125811        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
125812        Updated after updateVisibilityStatus rename.
125813
125814        * rendering/RenderLayer.h:
125815        (WebCore::RenderLayer::hasSelfPaintingLayerDescendant):
125816        Added the declaration of the new functions as well as the new flag and dirty bit.
125817
1258182012-06-14  Tony Payne  <tpayne@chromium.org>
125819
125820       [chromium] Add iccjpeg and qcms to chromium port
125821       https://bugs.webkit.org/show_bug.cgi?id=81974
125822
125823       Reviewed by Adam Barth.
125824
125825       Covered by existing layout tests which will be rebaselined.
125826
125827       * WebCore.gyp/WebCore.gyp: Add qcms to the build.
125828       * platform/image-decoders/ImageDecoder.h:
125829       (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Return an sRGB profile.
125830       On OSX, return the default RGB profile. Add FIXME to use the user's
125831       monitor profile and verify that profile for other platforms.
125832
125833       * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
125834       (turboSwizzled): For libjpeg-turbo, JCS_EXT_BGRA and JCS_EXT_RGBA are the
125835       two known output color spaces for which the decoder uses a data swizzle.
125836       (colorSpaceHasAlpha): JPEG's have no alpha in the output color space. For
125837       libjpeg-turbo, alpha may be present in the swizzled output color space.
125838
125839       (WebCore::JPEGImageReader::JPEGImageReader):
125840       (WebCore::JPEGImageReader::close):
125841       (WebCore::JPEGImageReader::decode): For QCMSLIB, create the color transform
125842       to use during decoding, and ensure we switch to inputing RGBA data to qcms
125843       even if the desired output data is BGRA: outputScanlines() sends BGRA data
125844       to the frame buffer following color correction if needed.
125845       (JPEGImageReader):
125846       (WebCore::JPEGImageReader::colorTransform): qcms color transform getter.
125847       (WebCore::JPEGImageReader::createColorTransform): Create color transform.
125848       Release the existing transform (if any) and assign to the color transform
125849       created from the color profile data.
125850       (WebCore::JPEGImageDecoder::outputScanlines): Minor style fix. Apply color
125851       transform to each decoded image row.
125852
125853       * platform/image-decoders/png/PNGImageDecoder.cpp:
125854       (WebCore::PNGImageReader::PNGImageReader):
125855       (WebCore::PNGImageReader::close):
125856       (WebCore::PNGImageReader::currentBufferSize): Move this adjacent to other
125857       setters and getters.
125858       (WebCore::PNGImageReader::decodingSizeOnly): Ditto.
125859       (WebCore::PNGImageReader::setHasAlpha): Ditto.
125860       (WebCore::PNGImageReader::hasAlpha): Ditto.
125861       (WebCore::PNGImageReader::interlaceBuffer): Ditto.
125862       (WebCore::PNGImageReader::createRowBuffer): Creates a temporary row buffer,
125863       used when a color transform is applied to the decoded image pixels.
125864       (WebCore::PNGImageReader::rowBuffer): Return the temporary row buffer.
125865       (WebCore::PNGImageReader::colorTransform): qcms color transform getter.
125866       (WebCore::PNGImageReader::createColorTransform): Create color transform.
125867       Release the existing transform (if any) and assign to the color transform
125868       created from the color profile data.
125869       (WebCore::PNGImageDecoder::headerAvailable): For QCMSLIB, create the color
125870       transform to use for decoding. Clear m_colorProfile (not used anymore).
125871       (WebCore::PNGImageDecoder::rowAvailable): Create temporary row buffer if
125872       a color transform is needed for decoding. Apply color transform to each
125873       decoded image row.
125874
125875       * platform/image-decoders/skia/ImageDecoderSkia.cpp:
125876       (WebCore::ImageFrame::setColorProfile): Old method of colorProfiles is no
125877       longer used. Add a FIXME to remove the old implementation.
125878       (WebCore::ImageFrame::setStatus): Remove old color correction code.
125879
1258802012-06-14  Sheriff Bot  <webkit.review.bot@gmail.com>
125881
125882        Unreviewed, rolling out r120384.
125883        http://trac.webkit.org/changeset/120384
125884        https://bugs.webkit.org/show_bug.cgi?id=89157
125885
125886        breaks create-blob-url-from-data-url.html (Requested by
125887        morrita on #webkit).
125888
125889        * fileapi/Blob.cpp:
125890        (WebCore::Blob::Blob):
125891        * fileapi/BlobURL.cpp:
125892        (WebCore::BlobURL::createBlobURL):
125893        * fileapi/BlobURL.h:
125894        (BlobURL):
125895        * fileapi/FileReaderLoader.cpp:
125896        (WebCore::FileReaderLoader::start):
125897        * fileapi/ThreadableBlobRegistry.cpp:
125898        (WebCore):
125899        (WebCore::ThreadableBlobRegistry::registerBlobURL):
125900        (WebCore::ThreadableBlobRegistry::unregisterBlobURL):
125901        * fileapi/ThreadableBlobRegistry.h:
125902        (WebCore):
125903        (ThreadableBlobRegistry):
125904        * html/DOMURL.cpp:
125905        (WebCore::DOMURL::createObjectURL):
125906        * page/SecurityOrigin.cpp:
125907        (WebCore::SecurityOrigin::create):
125908
1259092012-06-14  Yoshifumi Inoue  <yosin@chromium.org>
125910
125911        [Forms] Copy RenderTextControlSingleLine.{cpp,h} to RenderSearchFiled.{cpp,h}
125912        https://bugs.webkit.org/show_bug.cgi?id=89155
125913
125914        Reviewed by Kent Tamura.
125915
125916        This patch copies RenderTextControlSingleLine.cpp and .h into RenderSearchField.cpp
125917        and .h with just "cp" code. New files aren't compiled until bug 88980.
125918
125919        No new tests. This patch doesn't change behavior.
125920
125921        * rendering/RenderSearchField.cpp: Added.
125922        (WebCore::RenderTextControlInnerBlock::positionForPoint):
125923        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
125924        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
125925        (WebCore::RenderTextControlSingleLine::containerElement):
125926        (WebCore::RenderTextControlSingleLine::innerBlockElement):
125927        (WebCore::RenderTextControlSingleLine::innerSpinButtonElement):
125928        (WebCore::RenderTextControlSingleLine::resultsButtonElement):
125929        (WebCore::RenderTextControlSingleLine::cancelButtonElement):
125930        (WebCore::RenderTextControlSingleLine::textBaseStyle):
125931        (WebCore::RenderTextControlSingleLine::addSearchResult):
125932        (WebCore::RenderTextControlSingleLine::showPopup):
125933        (WebCore::RenderTextControlSingleLine::hidePopup):
125934        (WebCore::RenderTextControlSingleLine::paint):
125935        (WebCore::RenderTextControlSingleLine::layout):
125936        (WebCore::RenderTextControlSingleLine::nodeAtPoint):
125937        (WebCore::RenderTextControlSingleLine::styleDidChange):
125938        (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
125939        (WebCore::RenderTextControlSingleLine::hasControlClip):
125940        (WebCore::RenderTextControlSingleLine::controlClipRect):
125941        (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
125942        (WebCore::RenderTextControlSingleLine::preferredContentWidth):
125943        (WebCore::RenderTextControlSingleLine::computeControlHeight):
125944        (WebCore::RenderTextControlSingleLine::updateFromElement):
125945        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
125946        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
125947        (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
125948        (WebCore::RenderTextControlSingleLine::visibilityForCancelButton):
125949        (WebCore::RenderTextControlSingleLine::textShouldBeTruncated):
125950        (WebCore::RenderTextControlSingleLine::autosaveName):
125951        (WebCore::RenderTextControlSingleLine::valueChanged):
125952        (WebCore::RenderTextControlSingleLine::itemText):
125953        (WebCore::RenderTextControlSingleLine::itemLabel):
125954        (WebCore::RenderTextControlSingleLine::itemIcon):
125955        (WebCore::RenderTextControlSingleLine::itemIsEnabled):
125956        (WebCore::RenderTextControlSingleLine::itemStyle):
125957        (WebCore::RenderTextControlSingleLine::menuStyle):
125958        (WebCore::RenderTextControlSingleLine::clientInsetLeft):
125959        (WebCore::RenderTextControlSingleLine::clientInsetRight):
125960        (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
125961        (WebCore::RenderTextControlSingleLine::clientPaddingRight):
125962        (WebCore::RenderTextControlSingleLine::listSize):
125963        (WebCore::RenderTextControlSingleLine::selectedIndex):
125964        (WebCore::RenderTextControlSingleLine::popupDidHide):
125965        (WebCore::RenderTextControlSingleLine::itemIsSeparator):
125966        (WebCore::RenderTextControlSingleLine::itemIsLabel):
125967        (WebCore::RenderTextControlSingleLine::itemIsSelected):
125968        (WebCore::RenderTextControlSingleLine::setTextFromItem):
125969        (WebCore::RenderTextControlSingleLine::fontSelector):
125970        (WebCore::RenderTextControlSingleLine::hostWindow):
125971        (WebCore::RenderTextControlSingleLine::autoscroll):
125972        (WebCore::RenderTextControlSingleLine::scrollWidth):
125973        (WebCore::RenderTextControlSingleLine::scrollHeight):
125974        (WebCore::RenderTextControlSingleLine::scrollLeft):
125975        (WebCore::RenderTextControlSingleLine::scrollTop):
125976        (WebCore::RenderTextControlSingleLine::setScrollLeft):
125977        (WebCore::RenderTextControlSingleLine::setScrollTop):
125978        (WebCore::RenderTextControlSingleLine::scroll):
125979        (WebCore::RenderTextControlSingleLine::logicalScroll):
125980        (WebCore::RenderTextControlSingleLine::createScrollbar):
125981        (WebCore::RenderTextControlSingleLine::inputElement):
125982        * rendering/RenderSearchField.h: Added.
125983        (RenderTextControlSingleLine):
125984        (WebCore::RenderTextControlSingleLine::popupIsVisible):
125985        (WebCore::RenderTextControlSingleLine::isTextField):
125986        (WebCore::toRenderTextControlSingleLine):
125987        (RenderTextControlInnerBlock):
125988        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
125989        (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
125990
1259912012-06-14  Kent Tamura  <tkent@chromium.org>
125992
125993        [JSC/V8] "DOMString[]" for function return values should not be null
125994        https://bugs.webkit.org/show_bug.cgi?id=89151
125995
125996        Reviewed by Kentaro Hara.
125997
125998        jsArray and v8Array are used for "DOMString[]", not "DOMString[]?". So
125999        we should not return JavaScript null object.
126000
126001        No new tests. We have no plan to use this code in production code for
126002        now. It will be used for window.internals functions.
126003
126004        * bindings/js/JSDOMBinding.cpp:
126005        (WebCore::jsArray): For null input, returns an empty array, not null.
126006        * bindings/v8/V8Binding.cpp:
126007        (WebCore::v8Array): Implement DOMStringList -> JavaScript array conversion.
126008        Like jsArray(), we don't return null object.
126009        * bindings/v8/V8Binding.h:
126010        (WebCore): Declare v8Array().
126011
1260122012-06-14  Dale Curtis  <dalecurtis@chromium.org>
126013
126014        Disable click/dbl-click on MediaDocument for Chromium. Fix layout test for all platforms.
126015        https://bugs.webkit.org/show_bug.cgi?id=89129
126016
126017        As titled, click-to-pause and double-click-to-play behavior are unwanted on Chromium.  A
126018        long standing issue (~3 years) has been to disable this feature.
126019
126020        Reviewed by Eric Carlson.
126021
126022        Uses existing click/double-click test.
126023
126024        * html/MediaDocument.cpp:
126025        (WebCore::MediaDocument::defaultEventHandler):
126026
1260272012-06-14  Jian Li  <jianli@chromium.org>
126028
126029        FileReader is dysfunctional in documents with "null" origin string
126030        https://bugs.webkit.org/show_bug.cgi?id=78648
126031
126032        Reviewed by Adam Barth.
126033
126034        The fix is to keep in-memory map from blob URL to SecurityOrigin for the
126035        unique origin case.
126036
126037        Test: fast/files/file-reader-file-url.html
126038
126039        * fileapi/Blob.cpp:
126040        (WebCore::Blob::Blob):
126041        * fileapi/BlobURL.cpp:
126042        (WebCore::BlobURL::getOrigin): Return the origin string embeded in the blob URL.
126043        (WebCore):
126044        (WebCore::BlobURL::createBlobURL): Remove the check for null origin string since it is handled now.
126045        * fileapi/BlobURL.h:
126046        (BlobURL):
126047        * fileapi/FileReaderLoader.cpp:
126048        (WebCore::FileReaderLoader::start):
126049        * fileapi/ThreadableBlobRegistry.cpp:
126050        (WebCore):
126051        (WebCore::originMap): Thread-specific in-memory map from the blob URL to the origin.
126052        (WebCore::ThreadableBlobRegistry::registerBlobURL): Add the map from the blob URL to the origin.
126053        (WebCore::ThreadableBlobRegistry::unregisterBlobURL): Remove the map for the unregistered blob URL.
126054        (WebCore::ThreadableBlobRegistry::cachedOrigin): Retrieve the origin associated with the blob URL.
126055        * fileapi/ThreadableBlobRegistry.h:
126056        (WebCore):
126057        (ThreadableBlobRegistry):
126058        * html/DOMURL.cpp:
126059        (WebCore::DOMURL::createObjectURL):
126060        * page/SecurityOrigin.cpp:
126061        (WebCore::cachedOrigin): Return the cached origin for the blob URL if it exists.
126062        (WebCore):
126063        (WebCore::SecurityOrigin::create): Call cachedOrigin to get the cached origin first.
126064
1260652012-06-14  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
126066
126067        [CMAKE] Move JSDeprecatedPeerConnectionCustom.cpp from CMakeLists.txt to UseJSC.cmake
126068        https://bugs.webkit.org/show_bug.cgi?id=89015
126069
126070        Reviewed by Antonio Gomes.
126071
126072        Include JSDeprecatedPeerConnectionCustom.cpp in UseJSC.cmake
126073        instead of CMakeLists.txt.
126074
126075        No change in functionality so no new tests.
126076
126077        * CMakeLists.txt:
126078        * UseJSC.cmake:
126079
1260802012-06-14  Xianzhu Wang  <wangxianzhu@chromium.org>
126081
126082        [Chromium] Add setAutoHint() and setUseBitmaps() in WebFontRendering
126083        https://bugs.webkit.org/show_bug.cgi?id=89014
126084
126085        Reviewed by James Robinson.
126086
126087        No new tests because of no change of functionality.
126088
126089        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
126090        (WebCore):
126091        (WebCore::FontPlatformData::setAutoHint):
126092        (WebCore::FontPlatformData::setUseBitmaps):
126093        (WebCore::FontPlatformData::setAntiAlias):
126094        (WebCore::FontPlatformData::setupPaint):
126095        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
126096        (FontPlatformData):
126097
1260982012-06-14  Ryuan Choi  <ryuan.choi@samsung.com>
126099
126100        [EFL] Move cursor related code from WidgetEfl to ewk_view and EflScreenUtilities.
126101        https://bugs.webkit.org/show_bug.cgi?id=88803
126102
126103        Reviewed by Chang Shu.
126104
126105        Because WebProcess can not control cursor,
126106        setCursor should be passed to ChromeClient like other ports.
126107
126108        * platform/Widget.h:
126109        (Widget):
126110        * platform/efl/EflScreenUtilities.cpp:
126111        (WebCore::applyFallbackCursor): Moved from WidgetEfl.cpp.
126112        (WebCore):
126113        (WebCore::isUsingEcoreX): Moved from WidgetEfl.cpp.
126114        * platform/efl/EflScreenUtilities.h:
126115        (WebCore):
126116        * platform/efl/WidgetEfl.cpp: Removes cursor related codes.
126117        (WebCore::WidgetPrivate::WidgetPrivate):
126118        (WebCore::Widget::~Widget):
126119        (WebCore::Widget::setCursor): Redirect to HostWindow.
126120        (WebCore::Widget::setEvasObject):
126121
1261222012-06-14  Ryosuke Niwa  <rniwa@webkit.org>
126123
126124        Radio node lists do not get updated when inserted back into a document
126125        https://bugs.webkit.org/show_bug.cgi?id=88825
126126
126127        Reviewed by Darin Adler.
126128
126129        The bug was caused by RadioNodeList's m_node not being adjusted back to a document after
126130        it was removed from the document and inserted back. While we could be doing this adjustment again
126131        when the HTMLFormElement is inserted back into the document, this whole approach is fragile
126132        because adds a maintenance burden on root elements of RadioNodeList.
126133
126134        Change the approach to the problem instead and detect when m_node is detached from the document.
126135        Now RadioNodeList and LabelsNodeList will always use its root element as m_node and
126136        DynamicSubtreeNodeList's node() will then determine whether it should use its document or not based
126137        on the flag (rootedAtDocument) passed by the constructor of the node list and m_node->inDocument().
126138
126139        Also invalidate node lists rooted at the document level regardless where the DOM mutation took place.
126140
126141        * dom/ClassNodeList.cpp:
126142        (WebCore::ClassNodeList::~ClassNodeList):
126143        * dom/Document.cpp:
126144        (WebCore::Document::registerDynamicSubtreeNodeList): Moved from Node.
126145        (WebCore::Document::unregisterDynamicSubtreeNodeList): Ditto.
126146        * dom/Document.h:
126147        (Document):
126148        * dom/DynamicNodeList.cpp:
126149        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Takes DynamicNodeListRootType which tell us
126150        whether node() should return m_node's document by default or not.
126151        (WebCore::DynamicSubtreeNodeList::length): Refactor code to avoid node() multiple times.
126152        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent): Ditto.
126153        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent): Ditto.
126154        (WebCore::DynamicNodeList::itemWithName): Ditto.
126155        * dom/DynamicNodeList.h:
126156        (WebCore::DynamicNodeList::DynamicNodeList):
126157        (WebCore::DynamicNodeList::node): Returns m_node->document() if m_node is still in the document and
126158        the node list was rooted at document.
126159        (WebCore::DynamicNodeList::Caches::Caches):
126160        (Caches):
126161        (DynamicNodeList):
126162        (DynamicSubtreeNodeList):
126163        * dom/NameNodeList.cpp:
126164        (WebCore::NameNodeList::~NameNodeList):
126165        * dom/Node.cpp:
126166        (WebCore):
126167        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Invalidate m_listsInvalidatedAtDocument
126168        at document instead of trying to invalidate it on every ancestor we traverse.
126169        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Ditto.
126170        (WebCore::NodeListsNodeData::invalidateCachesForDocument): Extracted from
126171        invalidateCachesThatDependOnAttributes.
126172        (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
126173        (WebCore::Node::radioNodeList):
126174        * dom/Node.h:
126175        (Node):
126176        * dom/NodeRareData.h:
126177        (NodeListsNodeData):
126178        * dom/TagNodeList.cpp:
126179        (WebCore::TagNodeList::~TagNodeList):
126180        * html/HTMLFormElement.cpp:
126181        (WebCore::HTMLFormElement::removedFrom):
126182        * html/LabelsNodeList.cpp:
126183        (WebCore::LabelsNodeList::LabelsNodeList):
126184        * html/RadioNodeList.cpp:
126185        (WebCore::RadioNodeList::RadioNodeList): Takes Element* first since that's the order we use elsewhere.
126186        * html/RadioNodeList.h:
126187        (WebCore::RadioNodeList::create):
126188        (RadioNodeList):
126189
1261902012-06-14  Tony Chang  <tony@chromium.org>
126191
126192        Fix bit packing of StyleRareInheritedData on Windows
126193        https://bugs.webkit.org/show_bug.cgi?id=89112
126194
126195        Reviewed by Ryosuke Niwa.
126196
126197        On my machine (64 bit Chromium Linux), StyleRareInheritedData is 168 bytes.
126198
126199        No new tests, added a compile assert to ensure correctness going forward.
126200
126201        * rendering/style/StyleRareInheritedData.cpp:
126202        (SameSizeAsStyleRareInheritedData):
126203        (WebCore):
126204        * rendering/style/StyleRareInheritedData.h:
126205        (StyleRareInheritedData):
126206
1262072012-06-14  Andreas Kling  <kling@webkit.org>
126208
126209        Crashes below IconDatabase::performPendingRetainAndReleaseOperations().
126210        <http://webkit.org/b/88846>
126211        <rdar://problem/11629106>
126212
126213        Reviewed by Brady Eidson.
126214
126215        Put isolatedCopy() strings in the retain/release operation queues to make sure it's safe
126216        for secondary threads to ref/deref them in performPendingRetainAndReleaseOperations().
126217        Also added assertions as appropriate.
126218
126219        * loader/icon/IconDatabase.cpp:
126220        (WebCore::IconDatabase::retainIconForPageURL):
126221        (WebCore::IconDatabase::releaseIconForPageURL):
126222        (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
126223
1262242012-06-14  Shawn Singh  <shawnsingh@chromium.org>
126225
126226        [chromium] For hit testing in CCLayerTreeHostCommon, need to check that the transform is invertible before inverting it.
126227        https://bugs.webkit.org/show_bug.cgi?id=89049
126228
126229        Reviewed by Adrienne Walker.
126230
126231        Unit test added to CCLayerTreeHostCommonTest.cpp:
126232          CCLayerTreeHostCommonTest.verifyHitTestingForUninvertibleTransform
126233
126234        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
126235        (WebCore::pointHitsRect):
126236
1262372012-06-14  Maciej Stachowiak  <mjs@apple.com>
126238
126239        The whole world rebuilds when you touch any IDL file
126240        https://bugs.webkit.org/show_bug.cgi?id=89125
126241
126242        Reviewed by Sam Weinig.
126243
126244        No new tests; this only changes the build system and its dependencies.
126245
126246        * bindings/scripts/preprocess-idls.pl: Optionally generate the
126247        dependencies for supplemental IDLs in Makefile format.
126248        * DerivedSources.make: Use the new feature of preprocess-idls.pl to generate
126249        the correct IDL dependencies created by Supplemental, then include it. This way,
126250        we avoid the situation where every bindings file implicitly depends on every single
126251        IDL file in the project.
126252
1262532012-06-14  Ian Vollick  <vollick@chromium.org>
126254
126255        [chromium] Certain settings in CCSettings could be global
126256        https://bugs.webkit.org/show_bug.cgi?id=88384
126257
126258        Reviewed by James Robinson.
126259
126260        No new tests. No new functionality.
126261
126262        * WebCore.gypi:
126263        * page/Settings.cpp:
126264        (WebCore::Settings::Settings):
126265        * page/Settings.h:
126266        (Settings):
126267        * platform/graphics/chromium/ContentLayerChromium.cpp:
126268        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
126269        * platform/graphics/chromium/LayerChromium.cpp:
126270        (WebCore::LayerChromium::addAnimation):
126271        * platform/graphics/chromium/LayerRendererChromium.cpp:
126272        (WebCore::LayerRendererChromium::initialize):
126273        * platform/graphics/chromium/TiledLayerChromium.cpp:
126274        (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
126275        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
126276        (WebCore::CCDebugRectHistory::enabled):
126277        (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
126278        * platform/graphics/chromium/cc/CCDebugRectHistory.h:
126279        (WebCore):
126280        (CCDebugRectHistory):
126281        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
126282        (WebCore::CCHeadsUpDisplay::enabled):
126283        (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
126284        (WebCore::CCHeadsUpDisplay::showDebugRects):
126285        (WebCore::CCHeadsUpDisplay::draw):
126286        (WebCore::CCHeadsUpDisplay::drawHudContents):
126287        (WebCore::CCHeadsUpDisplay::drawDebugRects):
126288        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
126289        (WebCore):
126290        (CCHeadsUpDisplay):
126291        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
126292        (WebCore::CCLayerTreeHost::create):
126293        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
126294        (WebCore::CCLayerTreeHost::animateLayers):
126295        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
126296        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
126297        (CCLayerTreeSettings):
126298        (CCLayerTreeHost):
126299        (WebCore::CCLayerTreeHost::settings):
126300        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
126301        (WebCore::CCLayerTreeHostImpl::create):
126302        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
126303        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
126304        (WebCore::CCLayerTreeHostImpl::animateLayers):
126305        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
126306        (CCLayerTreeHostImpl):
126307        * platform/graphics/chromium/cc/CCRenderer.h:
126308        (CCRendererClient):
126309        (WebCore::CCRenderer::settings):
126310        * platform/graphics/chromium/cc/CCSettings.cpp: Added.
126311        (WebCore):
126312        (WebCore::CCSettings::perTilePaintingEnabled):
126313        (WebCore::CCSettings::setPerTilePaintingEnabled):
126314        (WebCore::CCSettings::partialSwapEnabled):
126315        (WebCore::CCSettings::setPartialSwapEnabled):
126316        (WebCore::CCSettings::acceleratedAnimationEnabled):
126317        (WebCore::CCSettings::setAcceleratedAnimationEnabled):
126318        (WebCore::CCSettings::reset):
126319        * platform/graphics/chromium/cc/CCSettings.h: Added.
126320        (WebCore):
126321        (CCSettings):
126322        * testing/InternalSettings.cpp:
126323        * testing/InternalSettings.h:
126324        (InternalSettings):
126325
1263262012-06-14  Alejandro G. Castro  <alex@igalia.com>
126327
126328        [GTK] Add TextureMapper ImageBuffer support as a fallback from the hardware accelerated path
126329        https://bugs.webkit.org/show_bug.cgi?id=73634
126330
126331        Remove the TextureMapperCairo classes, now we use
126332        TextureMapperImageBuffer to implement the software fallback. Add
126333        implementation for the 3D transformations in the 2D cairo graphics
126334        context.
126335
126336        Reviewed by Martin Robinson.
126337
126338        This patch adds a new implementation of already tested cases.
126339
126340        * GNUmakefile.list.am:
126341        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
126342        (WebCore):
126343        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
126344        Required for compilation when WebGL is enabled.
126345        * platform/graphics/cairo/GraphicsContextCairo.cpp:
126346        (WebCore::GraphicsContext::get3DTransform):
126347        (WebCore::GraphicsContext::concat3DTransform):
126348        (WebCore::GraphicsContext::set3DTransform):
126349        * platform/graphics/cairo/TextureMapperCairo.cpp: Removed.
126350        * platform/graphics/cairo/TextureMapperCairo.h: Removed.
126351        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
126352        (WebCore::BitmapTextureImageBuffer::updateContents):
126353
1263542012-06-14  Jia Pu  <jpu@apple.com>
126355
126356        Mark text with text alternative with blue underline.
126357        https://bugs.webkit.org/show_bug.cgi?id=83047
126358
126359        Reviewed by Enrica Casucci.
126360
126361        Tests: platform/mac/editing/input/edit-dictated-text-with-alternative.html
126362               platform/mac/editing/input/insert-dictated-text.html
126363
126364        This patch implements visual indication on dictated text with alternatives, and provides UI
126365        to show alternative text on OS X. Majority of the changes is for generalizing existing AlternativeTextController
126366        class to handle dictation alternatives. The two new classes, AlternativeTextUIController and
126367        TextAlternativeWithRange, are used by both WebKit and WK2. So WebCore seems to be the natural place
126368        for them.
126369
126370        * WebCore.exp.in:
126371        * WebCore.xcodeproj/project.pbxproj:
126372        * editing/AlternativeTextController.cpp: Expanded exising class interface to support dictation alternatives.
126373        (DictationAlternativeDetails): Marker detail class for dictation alternative mark.
126374        (WebCore::DictationAlternativeDetails::create):
126375        (WebCore::DictationAlternativeDetails::dictationContext):
126376        (WebCore::DictationAlternativeDetails::DictationAlternativeDetails):
126377        (WebCore::markerTypesForAppliedDictationAlternative):
126378        (WebCore::AlternativeTextController::applyAlternativeTextToRange): Generalized existing applyAlternativeTextToRange() to handle dictation alternatives.
126379        (WebCore::AlternativeTextController::timerFired): Expanded existing code to handle dictation alternatives.
126380        (WebCore::AlternativeTextController::handleAlternativeTextUIResult): Expanded existing code to handle dictation alternatives.
126381        (WebCore::AlternativeTextController::respondToChangedSelection): Moved part of the function into respondToMarkerAtEndOfWord() to improve readability.
126382        (WebCore::AlternativeTextController::shouldStartTimerFor):
126383        (WebCore::AlternativeTextController::respondToMarkerAtEndOfWord):
126384        (WebCore::AlternativeTextController::markerDescriptionForAppliedAlternativeText):
126385        (WebCore::AlternativeTextController::removeDictationAlternativesForMarker):
126386        (WebCore::AlternativeTextController::dictationAlternativesForMarker):
126387        (WebCore::AlternativeTextController::applyDictationAlternative):
126388        * editing/AlternativeTextController.h:
126389        * editing/Editor.cpp:
126390        (WebCore::Editor::notifyComponentsOnChangedSelection): Renamed existing respondToChangedSelection() function to avoid naming collision.
126391        (WebCore::Editor::appliedEditing):
126392        (WebCore::Editor::unappliedEditing):
126393        (WebCore::Editor::reappliedEditing):
126394        (WebCore::Editor::updateMarkersForWordsAffectedByEditing):
126395        (WebCore::Editor::changeSelectionAfterCommand):
126396        (WebCore::Editor::respondToChangedSelection):
126397        (WebCore::Editor::dictationAlternativesForMarker):
126398        (WebCore::Editor::applyDictationAlternativelternative):
126399        * editing/Editor.h:
126400        * editing/FrameSelection.h:
126401        * editing/mac/AlternativeTextUIController.h: Added. WK1 and WK2 use this class to keep track of text alternatives objects.
126402        (AlternativeTextUIController):
126403        (WebCore::AlternativeTextUIController::AlternativeTextUIController):
126404        (AlernativeTextContextController):
126405        (WebCore::AlternativeTextUIController::AlernativeTextContextController::AlernativeTextContextController):
126406        * editing/mac/AlternativeTextUIController.mm: Added.
126407        (WebCore::AlternativeTextUIController::AlernativeTextContextController::addAlternatives):
126408        (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
126409        (WebCore::AlternativeTextUIController::AlernativeTextContextController::removeAlternativesForContext):
126410        (WebCore::AlternativeTextUIController::AlernativeTextContextController::clear):
126411        (WebCore::AlternativeTextUIController::addAlternatives):
126412        (WebCore::AlternativeTextUIController::alternativesForContext):
126413        (WebCore::AlternativeTextUIController::clear):
126414        (WebCore::AlternativeTextUIController::showAlternatives):
126415        (WebCore::AlternativeTextUIController::handleAcceptedAlternative):
126416        (WebCore::AlternativeTextUIController::dismissAlternatives):
126417        (WebCore::AlternativeTextUIController::removeAlternatives):
126418        * editing/mac/TextAlternativeWithRange.h: Added.  A simple struct to make it easier to pass around a pair of text alternatives object and range.
126419        * editing/mac/TextAlternativeWithRange.mm: Added.
126420        (WebCore::TextAlternativeWithRange::TextAlternativeWithRange):
126421        (WebCore::collectDictationTextAlternatives):
126422        * page/AlternativeTextClient.h:
126423        * page/ContextMenuController.cpp: Added code to show alternative dictated text in context menu.
126424        (WebCore::ContextMenuController::contextMenuItemSelected):
126425        (WebCore::ContextMenuController::populate):
126426        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
126427        * platform/ContextMenuItem.h:
126428        * rendering/HitTestResult.cpp:
126429        (WebCore::HitTestResult::dictationAlternatives):
126430        * rendering/HitTestResult.h:
126431        * rendering/InlineTextBox.cpp:
126432        (WebCore::InlineTextBox::paintDocumentMarker):
126433
1264342012-06-14  Emil A Eklund  <eae@chromium.org>
126435
126436        Change RenderTableSection::calcRowLogicalHeight to round rather than floor height
126437        https://bugs.webkit.org/show_bug.cgi?id=88813
126438
126439        Reviewed by Julien Chaffraix.
126440
126441        Change RenderTableSection::calcRowLogicalHeight to round the
126442        logicalHeight instead of flooring it. This matches our rounding logic
126443        elsewhere and results in table rows better matching the expected height.
126444
126445        Test: fast/sub-pixel/table-rows-have-stable-height.html
126446
126447        * rendering/RenderTableSection.cpp:
126448        (WebCore::RenderTableSection::calcRowLogicalHeight):
126449
1264502012-06-14  Andrey Adaikin  <aandrey@chromium.org>
126451
126452        Web Inspector: Remove devtoolsInjectedScript hidden property
126453        https://bugs.webkit.org/show_bug.cgi?id=89087
126454
126455        We use the devtoolsInjectedScript hidden property to reference a InjectedScript object
126456        for a given ScriptState, but we also have the same reference in the InjectedScriptManager's
126457        hash maps. Just use the hash maps and remove the hidden property from the global object.
126458
126459        Reviewed by Pavel Feldman.
126460
126461        * bindings/js/JSDOMGlobalObject.cpp:
126462        (WebCore::JSDOMGlobalObject::visitChildren):
126463        * bindings/js/JSDOMGlobalObject.h:
126464        (JSDOMGlobalObject):
126465        * bindings/js/JSInjectedScriptManager.cpp:
126466        (WebCore::InjectedScriptManager::createInjectedScript):
126467        * bindings/v8/V8HiddenPropertyName.h:
126468        (WebCore):
126469        * bindings/v8/custom/V8InjectedScriptManager.cpp:
126470        * inspector/InjectedScriptManager.cpp:
126471        (WebCore::InjectedScriptManager::discardInjectedScripts):
126472        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
126473        (WebCore::InjectedScriptManager::injectedScriptFor):
126474        (WebCore):
126475        (WebCore::InjectedScriptManager::wrapWebGLRenderingContextForInstrumentation):
126476        * inspector/InjectedScriptManager.h:
126477        (InjectedScriptManager):
126478
1264792012-06-14  James Robinson  <jamesr@chromium.org>
126480
126481        [chromium] Move opaque rectangle tracking logic out of compositor core
126482        https://bugs.webkit.org/show_bug.cgi?id=89031
126483
126484        Reviewed by Adrienne Walker.
126485
126486        This moves the opaque paint tracking logic from the compositor (specifically CanvasLayerTextureUpdater) out to a
126487        dedicated class used by GraphicsLayerChromium for GraphicsContext-painted content. This changes the interface
126488        exposed by the compositor to pass a SkCanvas and let the user fill in an opaque rect if needed. Callers that are
126489        using GraphicsContext to paint can instantiate a PlatformContextSkia / GraphicsContext around this SkCanvas if
126490        they choose to, or use some other strategy, or not fill it in at all. This avoids creating extra wrapper classes
126491        if the eventual caller is going to use the underlying SkCanvas anyway (such as WebContentLayer) and breaks the
126492        dependency from the compositor code on GraphicsContext / PlatformContextSkia.
126493
126494        OpaqueRectTrackingContentLayerDelegate is a helper class that wraps a ContentLayerDelegate implementation with
126495        PlatformContextSkia's opaque region tracking logic.
126496
126497        * WebCore.gypi:
126498        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
126499        (WebCore::BitmapCanvasLayerTextureUpdater::BitmapCanvasLayerTextureUpdater):
126500        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
126501        (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
126502        (WebCore::BitmapCanvasLayerTextureUpdater::setOpaque):
126503        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
126504        (WebCore):
126505        (BitmapCanvasLayerTextureUpdater):
126506        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
126507        (WebCore::CanvasLayerTextureUpdater::paintContents):
126508        * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
126509        (WebCore):
126510        (CanvasLayerTextureUpdater):
126511        * platform/graphics/chromium/ContentLayerChromium.cpp:
126512        (WebCore::ContentLayerPainter::paint):
126513        * platform/graphics/chromium/ContentLayerChromium.h:
126514        (ContentLayerDelegate):
126515        (WebCore):
126516        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
126517        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
126518        (WebCore::GraphicsLayerChromium::paint):
126519        * platform/graphics/chromium/GraphicsLayerChromium.h:
126520        (GraphicsLayerChromium):
126521        * platform/graphics/chromium/LayerPainterChromium.h:
126522        (LayerPainterChromium):
126523        * platform/graphics/chromium/LinkHighlight.cpp:
126524        (WebCore::LinkHighlight::paintContents):
126525        * platform/graphics/chromium/LinkHighlight.h:
126526        (LinkHighlight):
126527        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp: Added.
126528        (WebCore):
126529        (WebCore::OpaqueRectTrackingContentLayerDelegate::OpaqueRectTrackingContentLayerDelegate):
126530        (WebCore::OpaqueRectTrackingContentLayerDelegate::~OpaqueRectTrackingContentLayerDelegate):
126531        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
126532        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h: Added.
126533        (WebCore):
126534        (GraphicsContextPainter):
126535        (WebCore::GraphicsContextPainter::~GraphicsContextPainter):
126536        (OpaqueRectTrackingContentLayerDelegate):
126537        (WebCore::OpaqueRectTrackingContentLayerDelegate::setOpaque):
126538        * platform/graphics/chromium/PlatformCanvas.cpp:
126539        (WebCore::PlatformCanvas::Painter::Painter):
126540        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
126541        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
126542        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
126543        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
126544        (WebCore):
126545
1265462012-06-14  Justin Novosad  <junov@chromium.org>
126547
126548        [Chromium] webkitImageSmoothingEnabled canvas property does not work on redraw
126549        https://bugs.webkit.org/show_bug.cgi?id=89018
126550
126551        Reviewed by Stephen White.
126552
126553        Test: fast/canvas/canvas-imageSmoothingEnabled-repaint.html
126554
126555        When an accelerated canvas layer prepares its texture for the
126556        compositor, it must send a notification to skia to invalidate texture
126557        proprties that are cached by skia, since the compositor may modify them.
126558        The use case this fixes is when a canvas to canvas copy is performed
126559        with webkitImageSmoothingEnabled=false on the destination canvas.
126560        The backing texture of the source canvas will be set to "nearest"
126561        filtering by skia in order to perform the copy.  Then, the compositor
126562        sets filtering back to "linear" when the source canvas is drawn.
126563        Skia is designed to only update GL attributes when required, so errors
126564        occur when the skia-side GL state cache is out of sync.
126565
126566        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
126567        (WebCore::Canvas2DLayerBridge::prepareTexture):
126568
1265692012-06-14  Jon Honeycutt  <jhoneycutt@apple.com>
126570
126571        Fix some failing tests on Windows by resetting the page scale factor
126572        between tests.
126573        https://bugs.webkit.org/show_bug.cgi?id=89078
126574
126575        Reviewed by Dirk Pranke.
126576
126577        * testing/Internals.cpp:
126578        (WebCore::Internals::reset):
126579        Set the scale factor to 1.0.
126580
1265812012-06-14  Sami Kyostila  <skyostil@chromium.org>
126582
126583        Register fixed position layers with ScrollingCoordinator
126584        https://bugs.webkit.org/show_bug.cgi?id=78864
126585
126586        Reviewed by James Robinson.
126587
126588        This patch makes ScrollingCoordinator aware of page elements that are
126589        either fixed positioned directly or through their ancestors and that
126590        also have their own composited backing layers. This allows the
126591        ScrollingCoordinator implementation to potentially enable fast
126592        scrolling even if there are fixed elements on the page, because the
126593        compositor can automatically reposition the fixed element layers after
126594        scrolling.
126595
126596        Since fixed position layers need to be explicitly supported by the
126597        ScrollingCoordinator implementation, we add a new
126598        supportsFixedPositionLayers() query for checking this.
126599
126600        * page/FrameView.cpp:
126601        (WebCore::FrameView::FrameView):
126602        (WebCore::FrameView::useSlowRepaints):
126603        (WebCore::FrameView::addFixedObject):
126604        (WebCore::FrameView::removeFixedObject):
126605        * page/FrameView.h:
126606        (FrameView):
126607        (WebCore::FrameView::fixedObjects):
126608        (WebCore::FrameView::hasFixedObjects):
126609        * page/scrolling/ScrollingCoordinator.cpp:
126610        (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
126611        (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
126612        (WebCore):
126613        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
126614        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPosition):
126615        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
126616        * page/scrolling/ScrollingCoordinator.h:
126617        (ScrollingCoordinator):
126618        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
126619        (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPosition):
126620        (WebCore):
126621        (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
126622        * rendering/RenderBox.cpp:
126623        (WebCore::RenderBox::willBeDestroyed):
126624        (WebCore::RenderBox::styleWillChange):
126625        * rendering/RenderLayerBacking.cpp:
126626        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
126627        * rendering/RenderLayerCompositor.cpp:
126628        (WebCore::RenderLayerCompositor::updateBacking):
126629        (WebCore):
126630        (WebCore::RenderLayerCompositor::fixedPositionedByAncestor):
126631        (WebCore::RenderLayerCompositor::ensureRootLayer):
126632        * rendering/RenderLayerCompositor.h:
126633
1266342012-06-14  Alexey Proskuryakov  <ap@apple.com>
126635
126636        [CFNetwork] XMLHttpRequest incorrectly returns cached responses even when there is a Vary header field
126637        https://bugs.webkit.org/show_bug.cgi?id=88925
126638
126639        Reviewed by David Kilzer.
126640
126641        Test: http/tests/cache/xhr-vary-header.html
126642
126643        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse): Don't
126644        cache the response at all if there is a Vary header field. CFNetwork won't look at
126645        it if we allowed the response cached.
126646
126647        * platform/network/mac/ResourceHandleMac.mm:
126648        (WebCore::ResourceHandle::createNSURLConnection): [NSURLResponse copy] is mutable
126649        in practice, but we should be nice, and use -mutableCopy.
126650        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Same fix as in
126651        CFNet code.
126652
1266532012-06-13  Andrey Kosyakov  <caseq@chromium.org>
126654
126655        Web Inspector: use CSS gradients instead of images for timeline bars, checkboxes & bullets
126656        https://bugs.webkit.org/show_bug.cgi?id=89024
126657
126658        Reviewed by Pavel Feldman.
126659
126660        This brings a bunch of UI changes to the way Timeline bars and related controls are rendered:
126661
126662        - introduce new color palette for categories;
126663        - replace images used to render timeline bars, list bullets and categories checkboxes with CSS gradients;
126664        - "flatten" timeline bars
126665        - make square list bullets, sharpen corners for lower pane bars;
126666        - make links on the list sidebar grey
126667        - add more space between categories checkboxes, make labels lighter.
126668
126669        * WebCore.gypi: Remove old images, add tickMark.png.
126670        * inspector/front-end/Images/timelineBarBlue.png: Removed.
126671        * inspector/front-end/Images/timelineBarDarkGreen.png: Removed.
126672        * inspector/front-end/Images/timelineBarGray.png: Removed.
126673        * inspector/front-end/Images/timelineBarGreen.png: Removed.
126674        * inspector/front-end/Images/timelineBarLightPurple.png: Removed.
126675        * inspector/front-end/Images/timelineBarOrange.png: Removed.
126676        * inspector/front-end/Images/timelineBarPurple.png: Removed.
126677        * inspector/front-end/Images/timelineBarRed.png: Removed.
126678        * inspector/front-end/Images/timelineBarYellow.png: Removed.
126679        * inspector/front-end/Images/timelineCheckmarks.png: Removed.
126680        * inspector/front-end/Images/timelineDots.png: Removed.
126681        * inspector/front-end/TimelinePanel.js:
126682        (WebInspector.TimelinePanel.prototype.wasShown): 
126683        (WebInspector.TimelinePanel.prototype._closeRecordDetails): Fixed trailing spaces;
126684        (WebInspector.TimelinePanel.prototype._injectCategoryStyles): Inject generated styles for categories, if necessary.
126685        * inspector/front-end/TimelinePresentationModel.js:
126686        (WebInspector.TimelinePresentationModel.categories):
126687        (WebInspector.TimelinePresentationModel.createFillStyle):
126688        (WebInspector.TimelinePresentationModel.createStyleRuleForCategory):
126689        * inspector/front-end/WebKit.qrc: Remove old images, add tickMark.png
126690        * inspector/front-end/inspector.css:
126691        (.sidebar-tree-section):
126692        * inspector/front-end/timelinePanel.css:
126693        (#timeline-container .webkit-html-resource-link):
126694        (.timeline-category-statusbar-item):
126695        (.timeline-category-statusbar-item .timeline-category-checkbox):
126696        (.timeline-category-statusbar-item .timeline-category-checkbox:checked::before):
126697        (.timeline-tree-item):
126698        (.timeline-tree-item .timeline-tree-icon):
126699        (.timeline-graph-bar):
126700        (.timeline-graph-bar.with-children):
126701        (.timeline-graph-bar.cpu):
126702        (.timeline-aggregated-category):
126703        * inspector/front-end/utilities.js:
126704        (Object.values): Return an array of object field's values.
126705
1267062012-06-14  Silvia Pfeiffer  <silviapf@chromium.org>
126707
126708        Change mute button and volume slider behaviour for new Chromium video controls.
126709        https://bugs.webkit.org/show_bug.cgi?id=88743
126710
126711        Reviewed by Eric Carlson.
126712
126713        No new tests, final patch will contain the rebaselined tests.
126714
126715        The Chrome video controls are receiving a visual update. This patch makes the mute button and
126716        the volume slider interact with each other. When the user mutes the video through clicking the
126717        mute button, the volume slider animates to 0% volume. Upon unmute, the previous volume level
126718        is restored. Further, when the user drags the volume slider thumb or clicks on the slider and
126719        the video is muted, the video unmutes and sets the volume to the user's chosen level.
126720
126721        * html/shadow/MediaControlElements.cpp:
126722        (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
126723        Add a member field to the volume slider to allow user interaction to unmute the video.
126724        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
126725        Add the logic to unmute the video if the m_clearMutedOnUserInteraction member field is true.
126726        (WebCore::MediaControlVolumeSliderElement::setClearMutedOnUserInteraction):
126727        Add a member function to change the value of the m_clearMutedOnUserInteraction member field.
126728        * html/shadow/MediaControlElements.h:
126729        (MediaControlVolumeSliderElement):
126730        Add the setClearMutedOnUserInteraction member function and the m_clearMutedOnUserInteraction member field.
126731        * html/shadow/MediaControlRootElementChromium.cpp:
126732        (WebCore::MediaControlRootElementChromium::create):
126733        Activate unmute on user interaction on the Chromium video volume slider.
126734        (WebCore::MediaControlRootElementChromium::changedMute):
126735        Add logic to set volume slider to 0 when muted and reset to volume when unmuted.
126736        * rendering/RenderMediaControlsChromium.cpp:
126737        (WebCore::paintMediaVolumeSlider):
126738        Add logic to paint the volume slider active area as 0 when muted.
126739
1267402012-06-14  Vsevolod Vlasov  <vsevik@chromium.org>
126741
126742        Web Inspector: Breakpoints should not be set when UISourceCode content is diverged from VM version of the script.
126743        https://bugs.webkit.org/show_bug.cgi?id=89109
126744
126745        Reviewed by Pavel Feldman.
126746
126747        * inspector/front-end/BreakpointManager.js:
126748        (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
126749        * inspector/front-end/JavaScriptSource.js:
126750        (WebInspector.JavaScriptSource.prototype.isDivergedFromVM):
126751        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
126752
1267532012-06-14  Vsevolod Vlasov  <vsevik@chromium.org>
126754
126755        Web Inspector: DebuggerModel should support setting breakpoints without script by sourceURL only.
126756        https://bugs.webkit.org/show_bug.cgi?id=88988
126757
126758        Reviewed by Pavel Feldman.
126759
126760        This change allows setting all saved breakpoints in debugger model by url before the site
126761        with corresponding scripts was loaded (allows breaking in onload handler on first load).
126762        This change also simplifies implementation of snippets debugging.
126763
126764        * inspector/front-end/BreakpointManager.js:
126765        * inspector/front-end/DebuggerModel.js:
126766        (WebInspector.DebuggerModel.prototype.setBreakpointByScriptLocation):
126767
1267682012-06-14  Pavel Feldman  <pfeldman@chromium.org>
126769
126770        Web Inspector: refactor settings screen to move user agent and experiments out of general tab.
126771        https://bugs.webkit.org/show_bug.cgi?id=89101
126772
126773        Reviewed by Vsevolod Vlasov.
126774
126775        See image attached to the bug.
126776
126777        * English.lproj/localizedStrings.js:
126778        * inspector/front-end/SettingsScreen.js:
126779        (WebInspector.SettingsScreen.prototype.selectTab):
126780        (WebInspector.SettingsScreen.prototype._tabSelected):
126781        (WebInspector.SettingsScreen.prototype.set wasShown):
126782        (WebInspector.SettingsScreen.prototype.willHide):
126783        (WebInspector.SettingsTab):
126784        (WebInspector.SettingsTab.prototype._appendSection):
126785        (WebInspector.SettingsTab.prototype._createCustomSetting):
126786        (WebInspector.GenericSettingsTab):
126787        (WebInspector.GenericSettingsTab.prototype._showPaintRectsChanged):
126788        (WebInspector.GenericSettingsTab.prototype.get _updateScriptDisabledCheckbox):
126789        (WebInspector.GenericSettingsTab.prototype._javaScriptDisabledChanged):
126790        (WebInspector.UserAgentSettingsTab):
126791        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
126792        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.textDoubleClicked):
126793        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.textChanged):
126794        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
126795        (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
126796        (WebInspector.ExperimentsSettingsTab):
126797        (WebInspector.ExperimentsSettingsTab.prototype._createExperimentsWarningSubsection):
126798        (WebInspector.ExperimentsSettingsTab.prototype._createExperimentCheckbox.listener):
126799        (WebInspector.ExperimentsSettingsTab.prototype._createExperimentCheckbox):
126800        * inspector/front-end/ShortcutsScreen.js:
126801        * inspector/front-end/TabbedPane.js:
126802        (WebInspector.TabbedPane.prototype.get headerContentsElement):
126803        * inspector/front-end/helpScreen.css:
126804        (.settings-tab.help-container):
126805        (.settings-tab .help-block):
126806        (.help-content fieldset):
126807        (#settings-screen .tabbed-pane-header-tabs):
126808        (#settings-screen .tabbed-pane-header-tab):
126809
1268102012-06-13  Mark Hahnenberg  <mhahnenberg@apple.com>
126811
126812        Worker tear-down can re-enter JSC during GC finalization pt. 2
126813        https://bugs.webkit.org/show_bug.cgi?id=88601
126814
126815        Reviewed by David Levin.
126816
126817        No new tests. Current regression tests are sufficient.
126818
126819        * workers/WorkerMessagingProxy.cpp:
126820        (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
126821        (WebCore::WorkerMessagingProxy::workerObjectDestroyed): We clear the m_workerObject here because 
126822        we don't want anybody else trying to send messages to the Worker now that it has been destroyed.
126823        We also queue the asynchronous task for the various other cleanup that still needs to be done. 
126824        This allows us to avoid the problem of re-entrant JS code execution during GC.
126825        (WebCore):
126826        (WebCore::WorkerMessagingProxy::workerObjectDestroyedInternal): Here we set m_mayBeDestroyed to true.
126827        This is the point after which deleting the WorkerMessagingProxy in workerContextDestroyedInternal()
126828        is okay. It could happen during this function call if the worker thread has been shutdown already, or 
126829        it could be called later after we shut down the worker thread.
126830        (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal): We check m_mayBeDestroyed here 
126831        instead of checking m_workerObject. This change effectively orthogonalizes the roles that m_workerObject 
126832        was filling. Since we were eagerly clearing m_workerObject, but we wanted to asynchronously call 
126833        workerObjectDestroyed(), we needed to make sure we didn't accidentally try to delete the WorkerMessagingProxy
126834        twice (once from destroying the Worker and once from destroying the WorkerContext). This boolean field 
126835        should fix that issue--we set it lazily like we wanted to do without being in danger of causing use-after-free
126836        issues with m_workerObject.
126837        * workers/WorkerMessagingProxy.h: Added the new field and function.
126838        (WorkerMessagingProxy):
126839
1268402012-06-14  Alexander Pavlov  <apavlov@chromium.org>
126841
126842        Web Inspector: Selector list start position is not extracted for style rules inside @media rules
126843        https://bugs.webkit.org/show_bug.cgi?id=89094
126844
126845        Reviewed by Pavel Feldman.
126846
126847        Selector list start is now marked inside the "ruleset" rule rather than separately, before its invocation(s).
126848
126849        * css/CSSGrammar.y:
126850
1268512012-06-14  Eric Penner  <epenner@google.com>
126852
126853        [chromium] Fix race condition where animations start, finish and are deleted on the composite thread, all before the start even arrives on the main thread.
126854        https://bugs.webkit.org/show_bug.cgi?id=88439
126855
126856        Reviewed by James Robinson.
126857
126858        Scheduling behavior covered by existing tests.
126859
126860        * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
126861        (WebCore::CCActiveAnimation::isFinishedAt):
126862        * platform/graphics/chromium/cc/CCActiveAnimation.h:
126863        (WebCore::CCActiveAnimation::isFinished):
126864        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
126865        (WebCore::CCLayerAnimationController::suspendAnimations):
126866        (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
126867        (WebCore::CCLayerAnimationController::animate):
126868        (WebCore::CCLayerAnimationController::hasActiveAnimation):
126869        (WebCore):
126870        (WebCore::CCLayerAnimationController::markAnimationsForDeletion):
126871        (WebCore::CCLayerAnimationController::purgeAnimationsMarkedForDeletion):
126872        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
126873        (CCLayerAnimationController):
126874
1268752012-06-14  Vsevolod Vlasov  <vsevik@chromium.org>
126876
126877        Web Inspector: ConsoleView.evaluateUsingTextPrompt should evaluate without command line API.
126878        https://bugs.webkit.org/show_bug.cgi?id=89096
126879
126880        Reviewed by Pavel Feldman.
126881
126882        * inspector/front-end/ConsoleView.js:
126883
1268842012-06-14  Silvia Pfeiffer  <silviapf@chromium.org>
126885
126886        Update the time display of the new Chromium media controls.
126887        https://bugs.webkit.org/show_bug.cgi?id=88724
126888
126889        Reviewed by Eric Carlson.
126890
126891        No new tests, final patch will contain the rebaselined tests.
126892
126893        The Chrome video controls are receiving a visual update. This patch changes
126894        the format of the time digits that are displayed. They are different for media
126895        files of different duration. For non-autoplaying videos, the duration is shown
126896        before playback is started.
126897
126898        * css/mediaControlsChromium.css:
126899        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
126900        Format the new duration display the same as the current time display.
126901        * html/shadow/MediaControlRootElementChromium.cpp:
126902        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
126903        Add a member field for the duration display.
126904        (WebCore::MediaControlRootElementChromium::create):
126905        Add an element for the duration display and initially hide the current time display.
126906        (WebCore::MediaControlRootElementChromium::setMediaController):
126907        Add the duration display to the controller.
126908        (WebCore::MediaControlRootElementChromium::reset):
126909        Add reset functionality for the duration display.
126910        (WebCore::MediaControlRootElementChromium::playbackStarted):
126911        Show the current time display and hide the duration display upon playback start.
126912        (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
126913        Show the current time display and hide the duration display when current time is non-zero.
126914        * html/shadow/MediaControlRootElementChromium.h:
126915        (WebCore):
126916        Add the MediaControlTimeRemainingDisplayElement which provides use with the duration display.
126917        (MediaControlRootElementChromium):
126918        Add a duration member field, reusing the existing MediaControlTimeRemainingDisplayElement.
126919        * rendering/RenderMediaControlsChromium.cpp:
126920        (WebCore::formatChromiumMediaControlsTime):
126921        Formats a given time under the condition of a given duration.
126922        (WebCore::RenderMediaControlsChromium::formatMediaControlsTime):
126923        When formatting a single time, assume it to also provide the duration conditions.
126924        (WebCore::RenderMediaControlsChromium::formatMediaControlsCurrentTime):
126925        Format the current time given the duration.
126926        (WebCore::RenderMediaControlsChromium::formatMediaControlsRemainingTime):
126927        Format the remaining time from the current time given the duration.
126928        * rendering/RenderMediaControlsChromium.h:
126929        (RenderMediaControlsChromium):
126930        Declare the time formatting member functions.
126931        * rendering/RenderThemeChromiumMac.h:
126932        (RenderThemeChromiumMac):
126933        Declare the time formatting member functions for Chromium on the Mac.
126934        * rendering/RenderThemeChromiumMac.mm:
126935        (WebCore::RenderThemeChromiumMac::formatMediaControlsTime):
126936        (WebCore::RenderThemeChromiumMac::formatMediaControlsCurrentTime):
126937        (WebCore::RenderThemeChromiumMac::formatMediaControlsRemainingTime):
126938        Call the time formatting member functions of RenderMediaControlsChromium on the Mac.
126939        * rendering/RenderThemeChromiumSkia.cpp:
126940        (WebCore::formatMediaControlsTime):
126941        (WebCore::formatMediaControlsCurrentTime):
126942        (WebCore::formatMediaControlsRemainingTime):
126943        Call the time formatting member functions of RenderMediaControlsChromium on Skia.
126944        * rendering/RenderThemeChromiumSkia.h:
126945        (RenderThemeChromiumSkia):
126946        Declare the time formatting member functions for Chromium Skia.
126947
1269482012-06-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
126949
126950        Web Inspector: Refactor message loop instrumentation.
126951        https://bugs.webkit.org/show_bug.cgi?id=88978
126952
126953        Reviewed by Pavel Feldman.
126954
126955        1) Remove "messageLoop" term
126956        2) Reuse WebThread::TaskObserver interface
126957        3) Move implementation (from embedder) to platform code.
126958
126959        * inspector/InspectorClient.h:
126960        (WebCore::InspectorClient::startMainThreadMonitoring): Renamed method.
126961        (WebCore::InspectorClient::stopMainThreadMonitoring): Ditto.
126962        * inspector/InspectorTimelineAgent.cpp:
126963        (WebCore::InspectorTimelineAgent::start):
126964        (WebCore::InspectorTimelineAgent::stop):
126965
1269662012-06-14  Dominik Röttsches  <dominik.rottsches@intel.com>
126967
126968        [svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations
126969        https://bugs.webkit.org/show_bug.cgi?id=64966
126970
126971        Reviewed by Nikolas Zimmermann.
126972
126973        SVGInlineTextBox::paintTextWithShadows for non-CG implementations resets the scale aspect
126974        of the currently applied CTM. This leads to patterns and gradients being incorrectly downscaled.
126975        This way of resetting the CTM and drawing fonts "natively" scaled was introduced
126976        in r77485 to fix a number of issues with SVG font scaling.
126977        Unfortunately, this breaks scaling of patterns and gradients. To fix it,
126978        we need to push the transformation back into the pattern/gradient space transformation.
126979
126980        Tests: svg/transforms/transformed-text-fill-gradient.html
126981               svg/transforms/transformed-text-fill-pattern.html
126982
126983        * rendering/svg/RenderSVGInlineText.cpp:
126984        (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle): Moving the scaling factor calculation out into SVGRenderingContext.
126985        * rendering/svg/RenderSVGResourceContainer.cpp:
126986        (WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting): Reusing the scaling factor calculation from SVGRenderingContext.
126987        (WebCore):
126988        * rendering/svg/RenderSVGResourceContainer.h:
126989        (RenderSVGResourceContainer):
126990        * rendering/svg/RenderSVGResourceGradient.cpp:
126991        (WebCore::RenderSVGResourceGradient::applyResource): If needed, push down transformation into gradient space.
126992        * rendering/svg/RenderSVGResourcePattern.cpp:
126993        (WebCore::RenderSVGResourcePattern::applyResource): If needed, push transformation into pattern space.
126994        * rendering/svg/SVGRenderingContext.cpp:
126995        (WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor): Common scaling factor calculation for RenderSVGInlineText and RenderSVGResourceContainer.
126996        * rendering/svg/SVGRenderingContext.h:
126997        (SVGRenderingContext):
126998
1269992012-06-14  Yoshifumi Inoue  <yosin@chromium.org>
127000
127001        [Form] Replace InputNumber type to Decimal type and drop InputNumber
127002        https://bugs.webkit.org/show_bug.cgi?id=88746
127003
127004        Reviewed by Kent Tamura.
127005
127006        This patch removes InputNumber introduced by r119540 by replacing
127007        InputNumber type to Decimal type and changing convertDoubleToDecimal
127008        and convertDecimalToDouble to Decimal::fromDouble and
127009        Decimal::toDouble, respectively.
127010
127011        No new tests. This patch doesn't change behavior.
127012
127013        * html/BaseDateAndTimeInputType.cpp:
127014        (WebCore::BaseDateAndTimeInputType::setValueAsDecimal):
127015        (WebCore::BaseDateAndTimeInputType::defaultValueForStepUp):
127016        (WebCore::BaseDateAndTimeInputType::parseToNumber):
127017        (WebCore::BaseDateAndTimeInputType::serialize):
127018        (WebCore::BaseDateAndTimeInputType::serializeWithComponents):
127019        (WebCore::BaseDateAndTimeInputType::serializeWithMilliseconds):
127020        * html/BaseDateAndTimeInputType.h:
127021        (BaseDateAndTimeInputType):
127022        * html/DateInputType.cpp:
127023        (WebCore::DateInputType::createStepRange):
127024        * html/DateTimeInputType.cpp:
127025        (WebCore::DateTimeInputType::defaultValueForStepUp):
127026        (WebCore::DateTimeInputType::createStepRange):
127027        * html/DateTimeInputType.h:
127028        (DateTimeInputType):
127029        * html/DateTimeLocalInputType.cpp:
127030        (WebCore::DateTimeLocalInputType::createStepRange):
127031        * html/HTMLInputElement.cpp:
127032        (WebCore::HTMLInputElement::getAllowedValueStep):
127033        * html/HTMLInputElement.h:
127034        (HTMLInputElement):
127035        * html/InputType.cpp:
127036        (WebCore::InputType::setValueAsDouble):
127037        (WebCore::InputType::setValueAsDecimal):
127038        (WebCore::InputType::rangeUnderflow):
127039        (WebCore::InputType::rangeOverflow):
127040        (WebCore::InputType::defaultValueForStepUp):
127041        (WebCore::InputType::minimum):
127042        (WebCore::InputType::maximum):
127043        (WebCore::InputType::isInRange):
127044        (WebCore::InputType::isOutOfRange):
127045        (WebCore::InputType::stepMismatch):
127046        (WebCore::InputType::validationMessage):
127047        (WebCore::InputType::parseToNumber):
127048        (WebCore::InputType::parseToNumberOrNaN):
127049        (WebCore::InputType::serialize):
127050        (WebCore::InputType::applyStep):
127051        (WebCore::InputType::getAllowedValueStep):
127052        (WebCore::InputType::stepUpFromRenderer):
127053        * html/InputType.h:
127054        (InputType):
127055        * html/MonthInputType.cpp:
127056        (WebCore::MonthInputType::defaultValueForStepUp):
127057        (WebCore::MonthInputType::createStepRange):
127058        (WebCore::MonthInputType::parseToNumber):
127059        * html/MonthInputType.h:
127060        (MonthInputType):
127061        * html/NumberInputType.cpp:
127062        (WebCore::NumberInputType::setValueAsDecimal):
127063        (WebCore::NumberInputType::createStepRange):
127064        (WebCore::NumberInputType::parseToNumber):
127065        (WebCore::NumberInputType::serialize):
127066        * html/NumberInputType.h:
127067        (NumberInputType):
127068        * html/RangeInputType.cpp:
127069        (WebCore::ensureMaximum):
127070        (WebCore::RangeInputType::setValueAsDecimal):
127071        (WebCore::RangeInputType::createStepRange):
127072        (WebCore::RangeInputType::handleKeydownEvent):
127073        (WebCore::RangeInputType::parseToNumber):
127074        (WebCore::RangeInputType::serialize):
127075        (WebCore::RangeInputType::sanitizeValue):
127076        * html/RangeInputType.h:
127077        (RangeInputType):
127078        * html/StepRange.cpp:
127079        (WebCore::StepRange::StepRange):
127080        (WebCore::StepRange::acceptableError):
127081        (WebCore::StepRange::alignValueForStep):
127082        (WebCore::StepRange::clampValue):
127083        (WebCore::StepRange::parseStep):
127084        (WebCore::StepRange::roundByStep):
127085        (WebCore::StepRange::stepMismatch):
127086        * html/StepRange.h:
127087        (WebCore::StepRange::StepDescription::defaultValue):
127088        (StepRange):
127089        (WebCore::StepRange::maximum):
127090        (WebCore::StepRange::minimum):
127091        (WebCore::StepRange::step):
127092        (WebCore::StepRange::stepBase):
127093        (WebCore::StepRange::defaultValue):
127094        (WebCore::StepRange::proportionFromValue):
127095        (WebCore::StepRange::valueFromProportion):
127096        * html/TimeInputType.cpp:
127097        (WebCore::TimeInputType::defaultValueForStepUp):
127098        (WebCore::TimeInputType::createStepRange):
127099        * html/TimeInputType.h:
127100        (TimeInputType):
127101        * html/WeekInputType.cpp:
127102        (WebCore::WeekInputType::createStepRange):
127103        * html/shadow/CalendarPickerElement.cpp:
127104        (WebCore::CalendarPickerElement::writeDocument):
127105        * html/shadow/SliderThumbElement.cpp:
127106        (WebCore::sliderPosition):
127107        (WebCore::RenderSliderThumb::layout):
127108        (WebCore::SliderThumbElement::setPositionFromPoint):
127109
1271102012-06-14  Jan Keromnes  <janx@linux.com>
127111
127112        Web Inspector: Implement ExtensionPanel.show() method
127113        https://bugs.webkit.org/show_bug.cgi?id=88473
127114
127115        Implemented ExtensionPanel.show() API method to allow extension
127116        developers to show their panel when needed.
127117
127118        Reviewed by Pavel Feldman.
127119
127120        Tests for this method are in:
127121        LayoutTests/inspector/extensions/extensions-panel.html
127122
127123        * inspector/front-end/ExtensionAPI.js:
127124        (defineCommonExtensionSymbols):
127125        (injectedExtensionAPI.ExtensionPanelImpl.prototype.createStatusBarButton):
127126        (injectedExtensionAPI.ExtensionPanelImpl.prototype.show):
127127        * inspector/front-end/ExtensionServer.js:
127128        (WebInspector.ExtensionServer):
127129        (WebInspector.ExtensionServer.prototype._onShowPanel):
127130
1271312012-06-14  Kent Tamura  <tkent@chromium.org>
127132
127133        Fix a typo in r120304.
127134        https://bugs.webkit.org/show_bug.cgi?id=89070
127135
127136        * bindings/scripts/CodeGeneratorV8.pm:
127137        (NativeToJSValue):
127138        * bindings/scripts/test/V8/V8TestObj.cpp:
127139
1271402012-06-14  David Barr  <davidbarr@chromium.org>
127141
127142        Add dpcm to css3-images image-resolution
127143        https://bugs.webkit.org/show_bug.cgi?id=85442
127144
127145        Reviewed by Tony Chang.
127146
127147        The css3-images module is at candidate recommendation.
127148        http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-resolution
127149
127150        No new tests; extended fast/css/image-resolution/image-resolution.html
127151
127152        * css/CSSGrammar.y: Add DPCM token and unary term.
127153        * css/CSSParser.cpp: Extend range of units accepted for resolution and tokenize "dpcm".
127154        (WebCore::CSSParser::validUnit): Accept CSSPrimitiveValue::CSS_DPCM.
127155        (WebCore::CSSParser::createPrimitiveNumericValue): Accept CSSPrimitiveValue::CSS_DPCM.
127156        (WebCore::unitFromString): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
127157        (WebCore::CSSParser::parseValidPrimitive): Accept CSSPrimitiveValue::CSS_DPCM.
127158        (WebCore::CSSParser::detectNumberToken): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
127159        * css/CSSPrimitiveValue.cpp: Add CSSPrimitiveValue::CSS_DPCM as a numeric unit.
127160        (WebCore::isValidCSSUnitTypeForDoubleConversion): Accept CSSPrimitiveValue::CSS_DPCM.
127161        (WebCore::unitCategory): Map CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::UResolution.
127162        (WebCore::conversionToCanonicalUnitsScaleFactor): Scale CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::CSS_DPPX.
127163        (WebCore::CSSPrimitiveValue::customCssText): Format CSSPrimitiveValue::CSS_DPCM as "<num>dpcm".
127164        (WebCore::CSSPrimitiveValue::cloneForCSSOM): Accept CSSPrimitiveValue::CSS_DPCM as numeric unit.
127165        * css/CSSPrimitiveValue.h: Add CSSPrimitiveValue::CSS_DPCM.
127166
1271672012-06-14  Ilya Tikhonovsky  <loislo@chromium.org>
127168
127169        Web Inspector: REGRESSION HeapProfiler can't remove heap snapshot from the list if Dominators view has been opened.
127170        https://bugs.webkit.org/show_bug.cgi?id=89080
127171
127172        There was no dispose method on artificial ShowMoreDataGrid node.
127173
127174        Reviewed by Pavel Feldman.
127175
127176        * inspector/front-end/ShowMoreDataGridNode.js:
127177        (WebInspector.ShowMoreDataGridNode.prototype.nodeHeight):
127178        (WebInspector.ShowMoreDataGridNode.prototype.dispose):
127179
1271802012-06-14  Kent Tamura  <tkent@chromium.org>
127181
127182        [JSC/V8] Improve DOMString[] support
127183        https://bugs.webkit.org/show_bug.cgi?id=89070
127184
127185        Reviewed by Kentaro Hara.
127186
127187        Tests: new test case in TestObj.idl
127188
127189        * bindings/js/JSDOMBinding.cpp:
127190        (WebCore::jsArray): Implement jsArray() for DOMStringList.
127191        * bindings/js/JSDOMBinding.h: Declare jsArray() for DOMStringList.
127192        * bindings/scripts/CodeGeneratorJS.pm:
127193        (NativeToJSValue): Avoid to include JSDOMString.h and DOMString.h.
127194        * bindings/scripts/CodeGeneratorV8.pm:
127195        (GetNativeType): Move a check for DOMString[] because it's a RefPtr type
127196        and we'd like to avoid to generate RefPtr<DOMString[]>
127197        (%non_wrapper_types): DOMString[] is not a wrapper type. This is needed
127198        to avoid to generate unnecessary custom function template.
127199        (NativeToJSValue): Avoid to include V8DOMString.h and DOMString.h.
127200
127201        * bindings/scripts/test/TestObj.idl: Add non-overload function using DOMString[].
127202        * bindings/scripts/test/JS/JSTestObj.cpp: Update expectation.
127203        * bindings/scripts/test/JS/JSTestObj.h: ditto.
127204        * bindings/scripts/test/V8/V8TestObj.cpp: ditto.
127205
1272062012-06-14  Matt Falkenhagen  <falken@chromium.org>
127207
127208        LocaleToScriptMappingDefault.cpp should also do what scriptCodeForFontSelection does in LocaleToScriptMappingICU.cpp
127209        https://bugs.webkit.org/show_bug.cgi?id=88845
127210
127211        Reviewed by Kent Tamura.
127212
127213        Test: fast/text/international/jpan-script-equivalence.html
127214
127215        * platform/text/LocaleToScriptMappingDefault.cpp:
127216        (WebCore::scriptNameToCode):
127217
1272182012-06-14  Pavel Feldman  <pfeldman@chromium.org>
127219
127220        Web Inspector: render dock-to-right icon in status bar.
127221        https://bugs.webkit.org/show_bug.cgi?id=89040
127222
127223        Reviewed by Vsevolod Vlasov.
127224
127225        Today we render dock to bottom icon for both actions (dock to bottom and dock to right).
127226
127227        * inspector/front-end/Images/statusbarButtonGlyphs.png:
127228        * inspector/front-end/inspector.css:
127229        (button.dock-status-bar-item.status-bar-item.toggled-undock .glyph):
127230        (button.dock-status-bar-item.status-bar-item.toggled-bottom .glyph):
127231        (button.dock-status-bar-item.status-bar-item.toggled-right .glyph):
127232        * inspector/front-end/inspector.js:
127233        (WebInspector._createGlobalStatusBarItems):
127234        (WebInspector._installDockToRight.listener):
127235        (windowLoaded):
127236        (WebInspector.setDockingUnavailable):
127237
1272382012-06-14  Pavel Feldman  <pfeldman@chromium.org>
127239
127240        Web Inspector: clear execution live before the text edit.
127241        https://bugs.webkit.org/show_bug.cgi?id=89016
127242
127243        Reviewed by Vsevolod Vlasov.
127244
127245        Otherwise we can't remove them after committing the edit.
127246
127247        * inspector/front-end/JavaScriptSourceFrame.js:
127248        (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
127249        (WebInspector.JavaScriptSourceFrame.prototype.clearExecutionLine):
127250
1272512012-06-14  Min Qin  <qinmin@google.com>
127252
127253        Remove the const keyword from MediaPlayerPrivate::enterFullscreen()
127254        https://bugs.webkit.org/show_bug.cgi?id=89044
127255
127256        Reviewed by Adam Barth.
127257
127258        enterFullscreen() and exitFullscreen() could both modify the player state.
127259        This change reverts the change we made in r120213.
127260
127261        Just function declaration change, no test needed.
127262
127263        * platform/graphics/MediaPlayerPrivate.h:
127264        (WebCore::MediaPlayerPrivateInterface::enterFullscreen):
127265
1272662012-06-14  Edaena Salinas Jasso  <edaena@apple.com>
127267
127268        el.getAttribute('type') returns 'null' when setting el.type to null
127269        https://bugs.webkit.org/show_bug.cgi?id=89030
127270
127271        Reviewed by Alexey Proskuryakov.
127272
127273        Test: fast/dom/HTMLButtonElement/change-type.html
127274
127275        * html/HTMLButtonElement.cpp:
127276        (WebCore::HTMLButtonElement::setType): Changed parameter to be AtomicString to 
127277        address an unrelated review comment from bug 14439 for slightly better performance.
127278        * html/HTMLButtonElement.h:
127279        (HTMLButtonElement): Changed parameter to be AtomicString to address an unrelated 
127280        review comment from bug 14439 for slightly better performance.
127281        * html/HTMLButtonElement.idl: Specified TreatNullAs NullString for the type attribute.
127282
1272832012-06-14  Alec Flett  <alecflett@chromium.org>
127284
127285        IndexedDB: Creating a transaction from within a transaction callback should fail
127286        https://bugs.webkit.org/show_bug.cgi?id=80547
127287
127288        Reviewed by Tony Chang.
127289
127290        Prevent creation of a transaction, via IDBDatabase.transaction()
127291        or IDBDatabase.setVersion(), from inside a setVersion()
127292        transaction, as per spec. Update many tests to deal with this.
127293
127294        Test restructuring uncovered some inconsistencies in transaction
127295        mode handling. So also do some minor cleanup in the way the
127296        transaction mode is passed between the frontend and backend
127297        transaction objects, and add additional asserts.
127298
127299        * Modules/indexeddb/IDBCursor.cpp:
127300        (WebCore::IDBCursor::update):
127301        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
127302        (WebCore::IDBCursorBackendImpl::update):
127303        * Modules/indexeddb/IDBDatabase.cpp:
127304        (WebCore::IDBDatabase::setVersion):
127305        (WebCore::IDBDatabase::transaction):
127306        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
127307        (WebCore::IDBObjectStoreBackendImpl::putInternal):
127308        * Modules/indexeddb/IDBRequest.cpp:
127309        (WebCore::IDBRequest::onSuccess):
127310        * Modules/indexeddb/IDBTransaction.cpp:
127311        (WebCore::IDBTransaction::create):
127312        (WebCore::IDBTransaction::IDBTransaction):
127313        (WebCore::IDBTransaction::stringToMode):
127314        (WebCore::IDBTransaction::modeToString):
127315        * Modules/indexeddb/IDBTransaction.h:
127316        (IDBTransaction):
127317
1273182012-06-14  Li Yin  <li.yin@intel.com>
127319
127320        [WebSocket] WebSocket object in Worker Context should fire error event when it fails connection.
127321        https://bugs.webkit.org/show_bug.cgi?id=88744
127322
127323        Reviewed by Kent Tamura.
127324
127325        Spec:http://dev.w3.org/html5/websockets/#feedback-from-the-protocol
127326        The behavior of firing error event in Document has been implemented in Committed r117944.
127327        WebSocket in WorkerContext is also required to fire error event.
127328
127329        Test: http/tests/websocket/tests/hybi/workers/close.html
127330
127331        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
127332        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
127333        (WebCore):
127334        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback):
127335        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
127336        (ThreadableWebSocketChannelClientWrapper):
127337        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
127338        (WebCore::workerContextDidReceiveMessageError):
127339        (WebCore):
127340        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
127341        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
127342        (Peer):
127343
1273442012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
127345
127346        Unreviewed build fix attempt for r120285
127347
127348        * Modules/filesystem/DOMFileSystemBase.cpp:
127349        (WebCore):
127350
1273512012-06-13  MORITA Hajime <morrita@google.com>
127352
127353        Unreviewed expectation update.
127354
127355        * bindings/scripts/test/V8/V8Float64Array.cpp:
127356        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
127357        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
127358        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
127359        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
127360        * bindings/scripts/test/V8/V8TestException.cpp:
127361        * bindings/scripts/test/V8/V8TestInterface.cpp:
127362        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
127363        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
127364        * bindings/scripts/test/V8/V8TestNode.cpp:
127365        * bindings/scripts/test/V8/V8TestObj.cpp:
127366        (WebCore::V8TestObj::installPerContextProperties):
127367        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
127368
1273692012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
127370
127371        Move isolated file system code out of chromium-specific directory
127372        https://bugs.webkit.org/show_bug.cgi?id=88997
127373
127374        Reviewed by Adam Barth.
127375
127376        The code does not need to be chromium-specific.  Any platforms that
127377        have file system implementation and manage mappings from file system
127378        id to a set of files should share the code.
127379
127380        No new tests as this has no functional/behavioral changes.
127381
127382        * Modules/filesystem/DOMFileSystem.cpp:
127383        (WebCore::DOMFileSystem::createIsolatedFileSystem):
127384        (WebCore):
127385        * Modules/filesystem/DOMFileSystem.h:
127386        (DOMFileSystem):
127387        * Modules/filesystem/DOMFileSystemBase.h:
127388        (DOMFileSystemBase):
127389        * Modules/filesystem/FileSystemType.h:
127390        * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
127391        * Modules/filesystem/chromium/DOMFileSystemChromium.h: Removed.
127392        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
127393        (WebCore::DraggedIsolatedFileSystem::getDOMFileSystem):
127394        * WebCore.gypi:
127395
1273962012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
127397
127398        File::lastModifiedDate should use NaN or separate boolean flag for null Date value
127399        https://bugs.webkit.org/show_bug.cgi?id=87826
127400
127401        Reviewed by Kent Tamura.
127402
127403        Test: http/tests/local/fileapi/file-last-modified-after-delete.html
127404
127405        * fileapi/File.cpp:
127406        (WebCore::File::File):
127407        (WebCore::File::captureSnapshot):
127408        (WebCore::File::lastModifiedDate):
127409        (WebCore::File::lastModifiedDateForBinding): Removed.
127410        * fileapi/File.h:
127411        (File):
127412        * fileapi/File.idl:
127413        * platform/FileMetadata.h:
127414        (WebCore::FileMetadata::FileMetadata):
127415        * platform/FileSystem.h:
127416        * platform/FileStream.cpp:
127417        (WebCore::FileStream::getSize):
127418        * platform/chromium/support/WebHTTPBody.cpp:
127419        (WebKit::WebHTTPBody::elementAt):
127420        * platform/network/BlobData.h:
127421        (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
127422        * platform/network/BlobData.cpp:
127423        * platform/network/cf/FormDataStreamCFNet.cpp:
127424        (WebCore::advanceCurrentStream):
127425        * platform/network/soup/ResourceHandleSoup.cpp:
127426        (WebCore::blobIsOutOfDate):
127427
1274282012-06-13  Eli Fidler  <efidler@rim.com>
127429
127430        Fix CMake build with SMOOTH_SCROLLING enabled
127431        https://bugs.webkit.org/show_bug.cgi?id=89032
127432
127433        Reviewed by Antonio Gomes.
127434
127435        SMOOTH_SCROLLING pulls in ScrollAnimatorNone.cpp, which has
127436        dependencies on platform/ActivePlatformGestureAnimation.cpp and
127437        platform/TouchpadFlingPlatformGestureCurve.cpp
127438
127439        * CMakeLists.txt:
127440
1274412012-06-13  Mihai Balan  <mibalan@adobe.com>
127442
127443        Touched CSSPropertyNames.in to trigger a proper rebuild
127444
127445        [CSS Regions] Adding feature defines for CSS Regions & exclusions for Windows
127446        https://bugs.webkit.org/show_bug.cgi?id=88645
127447
127448        Reviewed by Sam Weinig.
127449
127450        Previous work on #87442 added feature defines to allow proper disabling of CSS Regions and
127451        exclusions (previously even with the feature disabled, parsing still worked). However, the
127452        feature defines were enabled on Mac only - they were broken on Windows. This
127453        patch adds the feature defines to (re)enable regions and exclusions on Windows.
127454
127455        * css/CSSPropertyNames.in: Touched to trigger a proper rebuild. Incremental builds were broken on Windows.
127456
1274572012-06-13  Arnaud Renevier  <arno@renevier.net>
127458
127459        make sure headers are included only once per file
127460        https://bugs.webkit.org/show_bug.cgi?id=88931
127461
127462        Reviewed by Darin Adler.
127463
127464        * Modules/indexeddb/IDBDatabase.cpp:
127465        * WebCorePrefix.h:
127466        * bindings/js/JSHTMLAllCollectionCustom.cpp:
127467        * bindings/v8/V8Utilities.cpp:
127468        * bindings/v8/custom/V8LocationCustom.cpp:
127469        * bridge/NP_jsobject.cpp:
127470        * editing/Editor.cpp:
127471        * html/HTMLMediaElement.cpp:
127472        * platform/graphics/cairo/PlatformContextCairo.cpp:
127473        * rendering/InlineFlowBox.cpp:
127474
1274752012-06-13  MORITA Hajime  <morrita@google.com>
127476
127477        Unreviewed typo fix.
127478
127479        * platform/RefCountedSupplement.h:
127480
1274812012-06-13  Sheriff Bot  <webkit.review.bot@gmail.com>
127482
127483        Unreviewed, rolling out r120268.
127484        http://trac.webkit.org/changeset/120268
127485        https://bugs.webkit.org/show_bug.cgi?id=89060
127486
127487        WebCompositor::setPerTilePaintingEnabled hits an assertion in
127488        DEBUG (Requested by dominicc|work on #webkit).
127489
127490        * WebCore.gypi:
127491        * page/Settings.cpp:
127492        (WebCore::Settings::Settings):
127493        * page/Settings.h:
127494        (WebCore::Settings::setPerTileDrawingEnabled):
127495        (WebCore::Settings::perTileDrawingEnabled):
127496        (Settings):
127497        (WebCore::Settings::setPartialSwapEnabled):
127498        (WebCore::Settings::partialSwapEnabled):
127499        (WebCore::Settings::setThreadedAnimationEnabled):
127500        (WebCore::Settings::threadedAnimationEnabled):
127501        * platform/graphics/chromium/ContentLayerChromium.cpp:
127502        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
127503        * platform/graphics/chromium/LayerChromium.cpp:
127504        (WebCore::LayerChromium::addAnimation):
127505        * platform/graphics/chromium/LayerRendererChromium.cpp:
127506        (WebCore::LayerRendererChromium::initialize):
127507        * platform/graphics/chromium/TiledLayerChromium.cpp:
127508        (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
127509        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
127510        (WebCore::CCDebugRectHistory::enabled):
127511        (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
127512        * platform/graphics/chromium/cc/CCDebugRectHistory.h:
127513        (WebCore):
127514        (CCDebugRectHistory):
127515        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
127516        (WebCore::CCHeadsUpDisplay::enabled):
127517        (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
127518        (WebCore::CCHeadsUpDisplay::showDebugRects):
127519        (WebCore::CCHeadsUpDisplay::draw):
127520        (WebCore::CCHeadsUpDisplay::drawHudContents):
127521        (WebCore::CCHeadsUpDisplay::drawDebugRects):
127522        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
127523        (WebCore):
127524        (CCHeadsUpDisplay):
127525        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
127526        (WebCore::CCLayerTreeHost::create):
127527        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
127528        (WebCore::CCLayerTreeHost::animateLayers):
127529        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
127530        (WebCore::CCSettings::CCSettings):
127531        (CCSettings):
127532        (CCLayerTreeHost):
127533        (WebCore::CCLayerTreeHost::settings):
127534        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
127535        (WebCore::CCLayerTreeHostImpl::create):
127536        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
127537        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
127538        (WebCore::CCLayerTreeHostImpl::animateLayers):
127539        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
127540        (CCLayerTreeHostImpl):
127541        * platform/graphics/chromium/cc/CCRenderer.h:
127542        (CCRendererClient):
127543        (WebCore::CCRenderer::settings):
127544        * platform/graphics/chromium/cc/CCSettings.cpp: Removed.
127545        * platform/graphics/chromium/cc/CCSettings.h: Removed.
127546        * testing/InternalSettings.cpp:
127547        (WebCore::InternalSettings::setPerTileDrawingEnabled):
127548        (WebCore):
127549        * testing/InternalSettings.h:
127550        (InternalSettings):
127551
1275522012-06-13  Ian Vollick  <vollick@chromium.org>
127553
127554        [chromium] Certain settings in CCSettings could be global
127555        https://bugs.webkit.org/show_bug.cgi?id=88384
127556
127557        Reviewed by James Robinson.
127558
127559        No new tests. No new functionality.
127560
127561        * WebCore.gypi:
127562        * page/Settings.cpp:
127563        (WebCore::Settings::Settings):
127564        * page/Settings.h:
127565        (Settings):
127566        * platform/graphics/chromium/ContentLayerChromium.cpp:
127567        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
127568        * platform/graphics/chromium/LayerChromium.cpp:
127569        (WebCore::LayerChromium::addAnimation):
127570        * platform/graphics/chromium/LayerRendererChromium.cpp:
127571        (WebCore::LayerRendererChromium::initialize):
127572        * platform/graphics/chromium/TiledLayerChromium.cpp:
127573        (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
127574        * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
127575        (WebCore::CCDebugRectHistory::enabled):
127576        (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
127577        * platform/graphics/chromium/cc/CCDebugRectHistory.h:
127578        (WebCore):
127579        (CCDebugRectHistory):
127580        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
127581        (WebCore::CCHeadsUpDisplay::enabled):
127582        (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
127583        (WebCore::CCHeadsUpDisplay::showDebugRects):
127584        (WebCore::CCHeadsUpDisplay::draw):
127585        (WebCore::CCHeadsUpDisplay::drawHudContents):
127586        (WebCore::CCHeadsUpDisplay::drawDebugRects):
127587        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
127588        (WebCore):
127589        (CCHeadsUpDisplay):
127590        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
127591        (WebCore::CCLayerTreeHost::create):
127592        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
127593        (WebCore::CCLayerTreeHost::animateLayers):
127594        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
127595        (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
127596        (CCLayerTreeSettings):
127597        (CCLayerTreeHost):
127598        (WebCore::CCLayerTreeHost::settings):
127599        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
127600        (WebCore::CCLayerTreeHostImpl::create):
127601        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
127602        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
127603        (WebCore::CCLayerTreeHostImpl::animateLayers):
127604        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
127605        (CCLayerTreeHostImpl):
127606        * platform/graphics/chromium/cc/CCRenderer.h:
127607        (CCRendererClient):
127608        (WebCore::CCRenderer::settings):
127609        * platform/graphics/chromium/cc/CCSettings.cpp: Added.
127610        (WebCore):
127611        (WebCore::CCSettings::perTilePaintingEnabled):
127612        (WebCore::CCSettings::setPerTilePaintingEnabled):
127613        (WebCore::CCSettings::partialSwapEnabled):
127614        (WebCore::CCSettings::setPartialSwapEnabled):
127615        (WebCore::CCSettings::acceleratedAnimationEnabled):
127616        (WebCore::CCSettings::setAcceleratedAnimationEnabled):
127617        (WebCore::CCSettings::reset):
127618        * platform/graphics/chromium/cc/CCSettings.h: Added.
127619        (WebCore):
127620        (CCSettings):
127621        * testing/InternalSettings.cpp:
127622        * testing/InternalSettings.h:
127623        (InternalSettings):
127624
1276252012-06-13  Crystal Zhang  <haizhang@rim.com>
127626
127627        [BlackBerry] Apply New Style and JS for Select Popup
127628        https://bugs.webkit.org/show_bug.cgi?id=89020
127629
127630        Reviewed by Rob Buis.
127631
127632        PR 162854
127633
127634        Use new python script for data generating, as the old one is too simple and problematic.
127635
127636        * PlatformBlackBerry.cmake:
127637
1276382012-06-13  Dana Jansens  <danakj@chromium.org>
127639
127640        [chromium] Assert if iterating an invalid RenderSurfaceLayerList, where a layer in the list has no RenderSurface
127641        https://bugs.webkit.org/show_bug.cgi?id=89004
127642
127643        Reviewed by Adrienne Walker.
127644
127645        A RenderSurfaceLayerList expects that all layers in the list own a
127646        RenderSurface. If an invalid RSLL is iterated over, the
127647        CCLayerIterator class will now ASSERT in debug mode, as well as
127648        considering the list empty in release mode.
127649
127650        We will be adding code to CCLayerTreeHostImpl to save a RSLL across
127651        frames, so adding a clearRenderSurfaces() method with a FIXME comment
127652        to make it clear that we should clear the RSLL when we remove
127653        RenderSurfaces from the layers in the saved RSLL.
127654
127655        * platform/graphics/chromium/cc/CCLayerIterator.h:
127656        (WebCore::CCLayerIterator::CCLayerIterator):
127657        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
127658        (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
127659        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
127660        (WebCore::clearRenderSurfacesOnCCLayerImplRecursive):
127661        (WebCore::CCLayerTreeHostImpl::clearRenderSurfaces):
127662        (WebCore):
127663        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
127664        (CCLayerTreeHostImpl):
127665
1276662012-06-13  Yael Aharon  <yael.aharon@nokia.com>
127667
127668        Remove redundant code from RenderView and RenderBlock
127669        https://bugs.webkit.org/show_bug.cgi?id=89019
127670
127671        Reviewed by Abhishek Arya.
127672
127673        As pointed out in https://bugs.webkit.org/show_bug.cgi?id=83981#c7 , RenderView::insertFixedPositionedObject()
127674        is redundant and should be removed.
127675        No new tests.
127676
127677        * rendering/RenderBlock.cpp:
127678        (WebCore::RenderBlock::insertPositionedObject):
127679        (WebCore::RenderBlock::removePositionedObject):
127680        * rendering/RenderView.cpp:
127681        (WebCore):
127682        * rendering/RenderView.h:
127683        (RenderView):
127684
1276852012-06-13  Dana Jansens  <danakj@chromium.org>
127686
127687        [chromium] Create a CCStreamVideoDrawQuad used for StreamTexture video output
127688        https://bugs.webkit.org/show_bug.cgi?id=88826
127689
127690        Reviewed by Adrienne Walker.
127691
127692        Remove the matrix from the CCVideoDrawQuad, and create a new quad
127693        specifically for StreamTexture video decoder output. This quad
127694        contains only the fields needed for display - textureId and the
127695        matrix to be applied to texture coords.
127696
127697        Removes the (0, 0, 1, 1) "transform" from the shader used for these
127698        quads, as it was a no-op.
127699
127700        No new tests, no change in behaviour.
127701
127702        * WebCore.gypi:
127703        * platform/graphics/chromium/LayerRendererChromium.cpp:
127704        (WebCore::LayerRendererChromium::drawQuad):
127705        (WebCore::LayerRendererChromium::drawStreamVideoQuad):
127706        (WebCore::LayerRendererChromium::drawVideoQuad):
127707        * platform/graphics/chromium/LayerRendererChromium.h:
127708        (WebCore):
127709        (LayerRendererChromium):
127710        * platform/graphics/chromium/ShaderChromium.cpp:
127711        (WebCore::VertexShaderVideoTransform::VertexShaderVideoTransform):
127712        (WebCore::VertexShaderVideoTransform::init):
127713        (WebCore::VertexShaderVideoTransform::getShaderString):
127714        * platform/graphics/chromium/ShaderChromium.h:
127715        (VertexShaderVideoTransform):
127716        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
127717        (WebCore::CCDrawQuad::toStreamVideoDrawQuad):
127718        (WebCore):
127719        * platform/graphics/chromium/cc/CCDrawQuad.h:
127720        (WebCore):
127721        (CCDrawQuad):
127722        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Added.
127723        (WebCore):
127724        (WebCore::CCStreamVideoDrawQuad::create):
127725        (WebCore::CCStreamVideoDrawQuad::CCStreamVideoDrawQuad):
127726        * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h: Added.
127727        (WebCore):
127728        (CCStreamVideoDrawQuad):
127729        (WebCore::CCStreamVideoDrawQuad::textureId):
127730        (WebCore::CCStreamVideoDrawQuad::matrix):
127731        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
127732        (WebCore::CCVideoLayerImpl::appendQuads):
127733
1277342012-06-13  Martin Robinson  <mrobinson@igalia.com>
127735
127736        [GTK] Add an accelerated compositing implementation for WebKit2
127737        https://bugs.webkit.org/show_bug.cgi?id=86037
127738
127739        Reviewed by Alejandro G. Castro.
127740
127741        No new tests. These changes are covered by the compositing tests, which
127742        we will gradually try to turn on for the bots.
127743
127744        Add a new GLContext method for getting to current default framebuffer size, which
127745        is quite useful for preventing composited content quivering while resizing.
127746
127747        * platform/graphics/cairo/GLContext.h:
127748        * platform/graphics/glx/GLContextGLX.cpp:
127749        (WebCore::GLContextGLX::defaultFrameBufferSize): Added this implementation for X11
127750        which asks the X server for the window size.
127751        * platform/graphics/glx/GLContextGLX.h:
127752
1277532012-06-13  Shawn Singh  <shawnsingh@chromium.org>
127754
127755        [chromium] Implement hit-testing for impl-side input handling in accelerated compositor
127756        https://bugs.webkit.org/show_bug.cgi?id=88972
127757
127758        Reviewed by Adrienne Walker.
127759
127760        The original hit testing code by Sami Kyostila.
127761
127762        This patch implements a simple impl-side hit-testing helper
127763        function. At this time, the main motivation for this is so that
127764        composited scrollable layers can be scrolled by the impl thread --
127765        and a prerequisite for that is the ability to hit-test on the impl
127766        thread, to determine where the scrolling action should be applied.
127767
127768        To implement the actual hit test, it's possible to compute the hit
127769        test in two equivalent ways: (a) inverse-project the point into
127770        local space, or (b) forward-transform the rect to screen space
127771        It's not obvious which one would perform better, or which one
127772        would be more robust to w < 0 homogeneous clipping issues. For
127773        this patch, we simply opt for the inverse-projection approach.
127774
127775        10 unit tests added to CCLayerTreeHostCommonTest.cpp:
127776          CCLayerTreeHostCommonTest.verifyHitTestingForEmptyLayerList
127777          CCLayerTreeHostCommonTest.verifyHitTestingForSingleLayer
127778          CCLayerTreeHostCommonTest.verifyHitTestingForSinglePositionedLayer
127779          CCLayerTreeHostCommonTest.verifyHitTestingForSingleRotatedLayer
127780          CCLayerTreeHostCommonTest.verifyHitTestingForSinglePerspectiveLayer
127781          CCLayerTreeHostCommonTest.verifyHitTestingForSingleLayerWithScaledContents
127782          CCLayerTreeHostCommonTest.verifyHitTestingForSimpleClippedLayer
127783          CCLayerTreeHostCommonTest.verifyHitTestingForMultiClippedRotatedLayer
127784          CCLayerTreeHostCommonTest.verifyHitTestingForMultipleLayers
127785          CCLayerTreeHostCommonTest.verifyHitTestingForMultipleLayerLists
127786        
127787        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
127788        (WebCore::pointHitsRect):
127789        (WebCore):
127790        (WebCore::pointIsClippedBySurfaceOrClipRect):
127791        (WebCore::CCLayerTreeHostCommon::findLayerThatIsHitByPoint):
127792        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
127793        (CCLayerTreeHostCommon):
127794        * platform/graphics/chromium/cc/CCMathUtil.cpp:
127795        (WebCore::projectHomogeneousPoint):
127796        (WebCore::mapHomogeneousPoint):
127797        (WebCore::CCMathUtil::mapClippedRect):
127798        (WebCore::CCMathUtil::projectClippedRect):
127799        (WebCore::CCMathUtil::mapClippedQuad):
127800        (WebCore::CCMathUtil::mapQuad):
127801        (WebCore::CCMathUtil::projectPoint):
127802        (WebCore):
127803        * platform/graphics/chromium/cc/CCMathUtil.h:
127804        (WebCore):
127805        (CCMathUtil):
127806
1278072012-06-13  Charles Wei  <charles.wei@torchmobile.com.cn>
127808
127809        Need customized toDOMStringList for IndexedDB JSC binding.
127810        https://bugs.webkit.org/show_bug.cgi?id=87965
127811
127812        Reviewed by Kentaro Hara.
127813
127814        IndexedDB database interface uses DOMStringList as the input parameter.
127815        The generated toDOMStringList() can't convert an JSArray of Strings to
127816        native DOMStringList. We need a custom function to do this.
127817
127818        Because this patch adds one new file (JSDOMStringList.cpp), all build systems
127819        are updated accordingly to pick up this file.
127820
127821         Tests: Corresponding bindings/scripts/test/JS files have been updated accordingly.
127822
127823        * GNUmakefile.list.am:
127824        * Target.pri:
127825        * UseJSC.cmake:
127826        * WebCore.gypi:
127827        * WebCore.vcproj/WebCore.vcproj:
127828        * WebCore.xcodeproj/project.pbxproj:
127829        * bindings/js/JSBindingsAllInOne.cpp:
127830        * bindings/js/JSDOMStringListCustom.cpp: Added.
127831        (WebCore):
127832        (WebCore::toDOMStringList):
127833        * bindings/scripts/CodeGeneratorJS.pm:
127834        (IndexGetterReturnsStrings):
127835        (GenerateHeader):
127836        (GetNativeType):
127837        (GetNativeTypeForCallbacks):
127838        (JSValueToNative):
127839        * bindings/scripts/test/JS/JSTestCallback.cpp:
127840        (WebCore::JSTestCallback::callbackWithStringList):
127841        * bindings/scripts/test/JS/JSTestCallback.h:
127842        (JSTestCallback):
127843        * bindings/scripts/test/JS/JSTestObj.cpp:
127844        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
127845        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
127846        * dom/DOMStringList.idl:
127847
1278482012-06-13  Jeffrey Pfau  <jpfau@apple.com>
127849
127850        Padding and borders can cause integer overflow in block layouts
127851        https://bugs.webkit.org/show_bug.cgi?id=88820
127852        <rdar://problem/11328762>
127853
127854        Reviewed by Tony Chang.
127855
127856        Tests: fast/block/block-size-integer-overflow.html
127857               fast/flexbox/box-size-integer-overflow.html
127858               fast/table/table-size-integer-overflow.html
127859
127860        * rendering/AutoTableLayout.cpp: Decreased max int.
127861        (WebCore::AutoTableLayout::computePreferredLogicalWidths):
127862        * rendering/FixedTableLayout.cpp: Use shared constant.
127863        (WebCore::FixedTableLayout::computePreferredLogicalWidths):
127864        * rendering/RenderBlock.cpp: Removed unused constant.
127865        * rendering/TableLayout.h: Add shared constant.
127866        (TableLayout):
127867
1278682012-06-13  Gregg Tavares  <gman@google.com>
127869
127870        Refactor WebGLFramebuffer to handle texture attachments
127871        https://bugs.webkit.org/show_bug.cgi?id=88697
127872
127873        Reviewed by Adrienne Walker.
127874        
127875        In order to add support for depth textures WebGLFramebuffer
127876        needed to be refactored to handle textures as attachments.
127877
127878        No new tests as no new functionality. 
127879
127880        * html/canvas/WebGLFramebuffer.cpp:
127881        (WebCore::WebGLFramebuffer::WebGLAttachment::WebGLAttachment):
127882        (WebCore):
127883        (WebCore::WebGLFramebuffer::WebGLAttachment::~WebGLAttachment):
127884        (WebCore::WebGLFramebuffer::WebGLFramebuffer):
127885        (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
127886        (WebCore::WebGLFramebuffer::attach):
127887        (WebCore::WebGLFramebuffer::getAttachmentObject):
127888        (WebCore::WebGLFramebuffer::getAttachment):
127889        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
127890        (WebCore::WebGLFramebuffer::getColorBufferWidth):
127891        (WebCore::WebGLFramebuffer::getColorBufferHeight):
127892        (WebCore::WebGLFramebuffer::getColorBufferFormat):
127893        (WebCore::WebGLFramebuffer::checkStatus):
127894        (WebCore::WebGLFramebuffer::onAccess):
127895        (WebCore::WebGLFramebuffer::hasStencilBuffer):
127896        (WebCore::WebGLFramebuffer::deleteObjectImpl):
127897        (WebCore::WebGLFramebuffer::initializeAttachments):
127898        * html/canvas/WebGLFramebuffer.h:
127899        (WebGLAttachment):
127900        (WebGLFramebuffer):
127901        * html/canvas/WebGLRenderingContext.cpp:
127902        (WebCore):
127903        (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
127904        (WebCore::WebGLRenderingContext::reattachDepthStencilAttachments):
127905        (WebCore::WebGLRenderingContext::framebufferTexture2D):
127906        (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
127907        * html/canvas/WebGLRenderingContext.h:
127908        (WebGLRenderingContext):
127909
1279102012-06-13  Konrad Piascik  <kpiascik@rim.com>
127911
127912        Remove return statement in void method
127913        https://bugs.webkit.org/show_bug.cgi?id=88998
127914
127915        Reviewed by Andreas Kling
127916
127917        * html/HTMLInputElement.cpp:
127918        (WebCore::HTMLInputElement::collectStyleForAttribute):
127919
1279202012-06-13  Benjamin Poulain  <benjamin@webkit.org>
127921
127922        Implement the simple constructors WTFURL's KURL
127923        https://bugs.webkit.org/show_bug.cgi?id=85724
127924
127925        Reviewed by Adam Barth.
127926
127927        This patch implement the correct initialization of KURL from an absolute URL.
127928        The URL correctness is also relaxed in order to have KURLWTFURL works similarily to KURL.
127929
127930        * platform/KURLWTFURL.cpp:
127931        (WebCore::KURL::KURL):
127932        (WebCore::KURL::isValid):
127933        (WebCore::KURL::string):
127934        (WebCore::KURL::protocol):
127935        (WebCore::KURL::host):
127936        (WebCore::KURL::port): Fix a bug where invalidPortNumber was returned if no port was defined.
127937        (WebCore::KURL::hasFragmentIdentifier):
127938        (WebCore::KURL::fragmentIdentifier):
127939        (WebCore::KURL::protocolIs):
127940        (WebCore::KURL::removeFragmentIdentifier):
127941        (WebCore):
127942        (WebCore::KURL::print):
127943        * platform/cf/KURLCFNet.cpp:
127944        (WebCore::KURL::KURL):
127945        (WebCore::KURL::createCFURL):
127946        (WebCore):
127947        * platform/mac/KURLMac.mm:
127948        (WebCore::KURL::KURL):
127949        (WebCore::KURL::createCFURL):
127950        (WebCore):
127951        Use the code of KURL to make the conversion from WTFURL to NSURL.
127952
1279532012-06-12  Vincent Scheib  <scheib@chromium.org>
127954
127955        Remove duplicate webkitpointerlockchange events when unlocking.
127956        https://bugs.webkit.org/show_bug.cgi?id=88917
127957
127958        Reviewed by Dimitri Glazkov.
127959
127960        Subsequent patches adding the new API for entering and exiting
127961        pointer lock would be burdened by handling multiple change events
127962        when the lock target is changed. This change introduces
127963        temporary code to suppress duplicate change events.
127964
127965        Existing tests simplified by removing the duplicate change events.
127966
127967        * page/PointerLockController.cpp:
127968        (WebCore::PointerLockController::requestPointerLock):
127969        (WebCore::PointerLockController::didLosePointerLock):
127970        * page/PointerLockController.h:
127971        (PointerLockController):
127972
1279732012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
127974
127975        Update range sliders rendering for volume and playback position of new Chrome video controls.
127976        https://bugs.webkit.org/show_bug.cgi?id=88623
127977
127978        Reviewed by Eric Carlson.
127979
127980        No new tests, final patch will contain the rebaselined tests.
127981
127982        The Chrome video controls are receiving a visual update. This patch contains updates to the
127983        rendering of the range sliders for the playback position and the volume. This includes the
127984        creation of a shadowPseudoId to be able to style the range sliders via CSS, the rendering
127985        of the slider background and the highlighted ranges.
127986
127987        * css/mediaControlsChromium.css:
127988        (input[type="range"]::-webkit-media-slider-container):
127989        Adjust the styling of the slider container backgrounds.
127990        (input[type="range"]::-webkit-media-slider-thumb):
127991        Adjust the styling of the slider thumbs.
127992        * html/shadow/SliderThumbElement.cpp:
127993        (WebCore::sliderThumbShadowPseudoId):
127994        Add an accessor function for the slider thumb shadowPseudoId.
127995        (WebCore::mediaSliderThumbShadowPseudoId):
127996        Add an accessor function for the media slider thumb shadowPseudoId.
127997        (WebCore::SliderThumbElement::shadowPseudoId):
127998        Add a different CSS pseudo-class name to the media slider thumbs.
127999        (WebCore::TrackLimiterElement::shadowPseudoId):
128000        Add a different CSS pseudo-class name to the media slider thumbs.
128001        (WebCore::SliderContainerElement::shadowPseudoId):
128002        Add a different CSS pseudo-class name to the media slider background container.
128003        * rendering/RenderMediaControlsChromium.cpp:
128004        (WebCore::paintRoundedSliderBackground):
128005        Add function to draw rounded background of sliders in a dark color.
128006        (WebCore::paintSliderRangeHighlight):
128007        Add function to draw a highlighted grey region on the sliders, which is rounded only at
128008        its ends.
128009        (WebCore::paintMediaSlider):
128010        Update the background and buffered range renderings on the playback position slider by making
128011        use of the new helper functions.
128012        (WebCore::paintMediaVolumeSlider):
128013        Update the background and buffered range renderings on the volume slider by making
128014        use of the new helper functions.
128015
1280162012-06-13  Christopher Hutten-Czapski  <chutten@rim.com>
128017
128018        2012-06-13  Christopher Hutten-Czapski  <chutten@rim.com>
128019
128020        [BlackBerry] Update Select Popup's styling
128021        https://bugs.webkit.org/show_bug.cgi?id=89005
128022
128023        Reviewed by Rob Buis.
128024
128025        Add in some nicely-styled CSS and JS for the BlackBerry port's <select>
128026
128027        * Resources/blackberry/popupControlBlackBerry.css:
128028        (body):
128029        (.popup-area):
128030        (.popup-area>:first-child):
128031        (.popup-buttons):
128032        (.popup-button-divider):
128033        (.popup-button):
128034        (.popup-button:active):
128035        (.popup-button:first-child:active):
128036        (.popup-button:last-child:active):
128037        (.popup-button:only-child:active):
128038        * Resources/blackberry/selectControlBlackBerry.css: Added.
128039        (.select-area):
128040        (.select-area:last-child):
128041        (.option):
128042        (.optgroup:last-child):
128043        (.selected):
128044        (.optgroup):
128045        (.optgroup .option):
128046        * Resources/blackberry/selectControlBlackBerry.js: Added.
128047
1280482012-06-13  Alec Flett  <alecflett@chromium.org>
128049
128050        [V8] IndexedDB: Cursor value modifications should be preserved until cursor iterates
128051        https://bugs.webkit.org/show_bug.cgi?id=83526
128052
128053        Reviewed by Kentaro Hara.
128054
128055        Cache the 'value' attribute of IDBCursorWithValue with policy
128056        determined by IDBCursor.cpp, to follow spec behavior of keeping a
128057        consistent script object until the cursor advances. See
128058        http://www.w3.org/TR/IndexedDB/#widl-IDBCursorWithValueSync-value
128059        for details.
128060
128061        Test: storage/indexeddb/cursor-value.html
128062
128063        * Modules/indexeddb/IDBCursor.cpp:
128064        (WebCore::IDBCursor::IDBCursor):
128065        (WebCore::IDBCursor::value):
128066        (WebCore::IDBCursor::setValueReady):
128067        * Modules/indexeddb/IDBCursor.h:
128068        (IDBCursor):
128069        (WebCore::IDBCursor::valueIsDirty):
128070        * Modules/indexeddb/IDBCursorWithValue.idl:
128071        * WebCore.gypi:
128072        * bindings/v8/IDBCustomBindings.cpp: Added.
128073        (WebCore):
128074        (WebCore::V8IDBCursorWithValue::valueAccessorGetter):
128075
1280762012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
128077
128078        Code cleanup from bug 88881 to share the SliderVerticalPart code.
128079        https://bugs.webkit.org/show_bug.cgi?id=88930
128080
128081        Reviewed by Eric Carlson.
128082
128083        No new tests - this is just code cleanup.
128084
128085        * html/shadow/SliderThumbElement.cpp:
128086        (WebCore::hasVerticalAppearance):
128087        Avoid having two ifdef-ed returns in the code depending on ENABLE(VIDEO).
128088
1280892012-06-13  Mark Mentovai  <mark@chromium.org>
128090
128091        [chromium mac] Don't include things in subframeworks of
128092        ApplicationServices.framework.
128093
128094        A CoreText #include (with quotes instead of brackets, even) sprung up
128095        in r120506, bug 69826.
128096
128097        https://bugs.webkit.org/show_bug.cgi?id=88569
128098
128099        Reviewed by Stephen White.
128100
128101        No new tests.
128102
128103        * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp:
128104
1281052012-06-13  Eriq Augustine  <eaugusti@chromium.org>
128106
128107        Removing an extra HandleScope in V8Proxy::evaluateInIsolatedWorld
128108        https://bugs.webkit.org/show_bug.cgi?id=88451
128109
128110        Reviewed by Adam Barth.
128111
128112        Any values retuned by the evaluation will get destroyed with the extra
128113        HandleScope.
128114
128115        I was unable to cause a test failure, however this feature is tested by:
128116        platform/chromium/http/tests/misc/execute-and-return-value.html
128117
128118        * bindings/v8/V8Proxy.cpp:
128119        (WebCore::V8Proxy::evaluateInIsolatedWorld):
128120
1281212012-06-13  Zan Dobersek  <zandobersek@gmail.com>
128122
128123        [Gtk] Enable link prefetch support in the developer builds
128124        https://bugs.webkit.org/show_bug.cgi?id=89011
128125
128126        Reviewed by Martin Robinson.
128127
128128        Handle the ENABLE_LINK_PREFETCH conditional in standard way.
128129
128130        No new tests - covered by existing link prefetch tests.
128131
128132        * GNUmakefile.am:
128133
1281342012-06-13  Amy Ousterhout  <aousterh@chromium.org>
128135
128136        Rename currentDeviceMotion to lastMotion in DeviceMotionClient
128137        https://bugs.webkit.org/show_bug.cgi?id=88854
128138
128139        Reviewed by Adam Barth.
128140
128141        Rename the function currentDeviceMotion to lastMotion in DeviceMotionClient.
128142        This makes it consistent with the similar function lastOrientation in DeviceOrientationClient.
128143
128144        Just a rename, so does not require any new tests.
128145
128146        * dom/DeviceMotionClient.h:
128147        (DeviceMotionClient):
128148        * dom/DeviceMotionController.cpp:
128149        (WebCore::DeviceMotionController::timerFired):
128150        (WebCore::DeviceMotionController::addListener):
128151        * loader/EmptyClients.h:
128152        (WebCore::EmptyDeviceMotionClient::lastMotion):
128153        * platform/qt/DeviceMotionClientQt.cpp:
128154        (WebCore::DeviceMotionClientQt::lastMotion):
128155        * platform/qt/DeviceMotionClientQt.h:
128156        (DeviceMotionClientQt):
128157        * platform/qt/DeviceMotionProviderQt.h:
128158        (WebCore::DeviceMotionProviderQt::lastMotion):
128159
1281602012-06-13  Vsevolod Vlasov  <vsevik@chromium.org>
128161
128162        Web Inspector: Breakpoint's _uiLocationRemoved() method is never called.
128163        https://bugs.webkit.org/show_bug.cgi?id=89003
128164
128165        Reviewed by Pavel Feldman.
128166
128167        * inspector/front-end/BreakpointManager.js:
128168        (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
128169        (WebInspector.BreakpointManager.Breakpoint):
128170        (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
128171        (WebInspector.BreakpointManager.Breakpoint.prototype._resetLocations):
128172        (WebInspector.BreakpointManager.Breakpoint.prototype._fakeBreakpointAtPrimaryLocation):
128173        * inspector/front-end/FileSystemModel.js: Drive by compilation fix.
128174        (WebInspector.FileSystemModel):
128175
1281762012-06-13  David Grogan  <dgrogan@chromium.org>
128177
128178        IndexedDB: Add tests, an assert, and some comments around open/close/setVersion call sequencing
128179        https://bugs.webkit.org/show_bug.cgi?id=88829
128180
128181        Reviewed by Tony Chang.
128182
128183        Test: storage/indexeddb/three-setversion-calls.html
128184
128185        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
128186        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
128187
1281882012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
128189
128190        Web Inspector: Errors when pending console messages are attached to JavaScriptSourceFrame.
128191        https://bugs.webkit.org/show_bug.cgi?id=88712
128192
128193        Reviewed by Pavel Feldman.
128194
128195        * inspector/front-end/PresentationConsoleMessageHelper.js:
128196        (WebInspector.PresentationConsoleMessageHelper):
128197        (WebInspector.PresentationConsoleMessageHelper.prototype._addPendingConsoleMessage):
128198        (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
128199
1282002012-06-13  Alexander Pavlov  <apavlov@chromium.org>
128201
128202        Web Inspector: Support user attributes in DOMNode
128203        https://bugs.webkit.org/show_bug.cgi?id=88706
128204
128205        Reviewed by Pavel Feldman.
128206
128207        This change allows clients to store arbitrary properties on DOMNodes and know if there are descendants
128208        (and how many of them) having a certain property set.
128209
128210        Test: inspector/elements/user-attributes.html
128211
128212        * inspector/front-end/DOMAgent.js:
128213        (WebInspector.DOMNode.prototype._removeChild):
128214        (WebInspector.DOMNode.prototype._updateChildUserPropertyCountsOnRemoval):
128215        (WebInspector.DOMNode.prototype._updateDescendantUserPropertyCount):
128216        (WebInspector.DOMNode.prototype.setUserProperty):
128217        (WebInspector.DOMNode.prototype.removeUserProperty):
128218        (WebInspector.DOMNode.prototype.getUserProperty):
128219        (WebInspector.DOMNode.prototype.descendantUserPropertyCount):
128220
1282212012-06-13  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
128222
128223        REGRESSION:Bindings sequence<T> in Console.idl, Internals.idl and ScriptProfileNode.idl should be T[]
128224        https://bugs.webkit.org/show_bug.cgi?id=84863
128225
128226        Reviewed by Kentaro Hara.
128227
128228        With reference to http://www.w3.org/TR/WebIDL/#idl-sequence
128229        "Sequences must not be used as the type of an attribute, constant or exception field."
128230        So we should use T[] instead of sequence<T>.
128231
128232        Tests: bindings/scripts/test/TestObj.idl
128233               fast/harness/user-preferred-language.html
128234               inspector/profiler/cpu-profiler-profiling-without-inspector.html
128235               media/track/track-language-preference.html
128236
128237        * bindings/scripts/CodeGenerator.pm:
128238        (GetSequenceType): Getter for getting sequence type.
128239        (GetArrayType): Getter for getting array type.
128240        (AssertNotSequenceType): Check sequences must not be used as the type of an attribute,
128241        constant or exception field.
128242        * bindings/scripts/CodeGeneratorCPP.pm:
128243        (SkipFunction): Exclude bindings code for type sequence.
128244        (SkipAttribute): Check for sequences must not be used as the type of an attribute,
128245        constant or exception field.
128246        (AddIncludesForType): Exclude header inclusion code for type array/sequence.
128247        * bindings/scripts/CodeGeneratorGObject.pm:
128248        (SkipAttribute): Check for sequences must not be used as the type of an attribute,
128249        constant or exception field.
128250        (SkipFunction): Exclude bindings code for type sequence.
128251        * bindings/scripts/CodeGeneratorJS.pm:
128252        (AddIncludesForType): Exclude header inclusion code for type array/sequence.
128253        (GenerateImplementation):  Check for sequences must not be used as the type of an attribute,
128254        constant or exception field.
128255        (GetNativeType):
128256        (JSValueToNative):
128257        (NativeToJSValue):
128258        * bindings/scripts/CodeGeneratorObjC.pm:
128259        (SkipFunction): Exclude bindings code for type sequence.
128260        (SkipAttribute): Exclude bindings code for type array.
128261        (AddForwardDeclarationsForType):
128262        (AddIncludesForType):
128263        * bindings/scripts/CodeGeneratorV8.pm:
128264        (GenerateNormalAttrGetter):
128265        (GetNativeType):
128266        (JSValueToNative):
128267        (CreateCustomSignature):
128268        (NativeToJSValue):
128269        * bindings/scripts/test/JS/JSTestObj.cpp: Updated code from run-bindings-tests.
128270        (WebCore):
128271        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
128272        * bindings/scripts/test/JS/JSTestObj.h: Updated code from run-bindings-tests.
128273        (WebCore):
128274        * bindings/scripts/test/TestObj.idl: Tests.
128275        * bindings/scripts/test/V8/V8TestObj.cpp:  Updated code from run-bindings-tests.
128276        (TestObjV8Internal):
128277        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
128278        (WebCore):
128279        * inspector/ScriptProfileNode.idl: Using sequence<T> for children().
128280        * page/Console.idl: Using Array[T] for profiles attribute.
128281        * testing/Internals.idl: Using sequence<T> for userPreferredLanguages().
128282
1282832012-06-13  Simon Hausmann  <simon.hausmann@nokia.com>
128284
128285        [Qt] Remove dependency to QtScript for the Qt 5 build
128286        https://bugs.webkit.org/show_bug.cgi?id=88993
128287
128288        Reviewed by Kenneth Rohde Christiansen.
128289
128290        Replace the use of QScriptEngine::ValueOwnership with an enum local
128291        to the class where it is used (QtInstance).
128292
128293        * Target.pri:
128294        * bindings/js/ScriptControllerQt.cpp:
128295        (WebCore::ScriptController::createScriptInstanceForWidget):
128296        * bridge/qt/qt_instance.cpp:
128297        (JSC::Bindings::QtInstance::QtInstance):
128298        (JSC::Bindings::QtInstance::~QtInstance):
128299        (JSC::Bindings::QtInstance::getQtInstance):
128300        * bridge/qt/qt_instance.h:
128301        (QtInstance):
128302        (JSC::Bindings::QtInstance::create):
128303        * bridge/qt/qt_runtime.cpp:
128304        (JSC::Bindings::convertQVariantToValue):
128305        * bridge/qt/qt_runtime_qt4.cpp:
128306        (JSC::Bindings::convertQVariantToValue):
128307
1283082012-06-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
128309
128310        [Qt] Save a JSGlobalContextRef instead of a JSContextRef in QtConnectionObject
128311        https://bugs.webkit.org/show_bug.cgi?id=88905
128312
128313        Make QtConnectionObject use JSContextGetGlobalContext and store the
128314        JSGlobalContextRef. Previous code was working but saving JSContextRef was wrong in terms of
128315        API.
128316
128317        There's an assumption that JSGlobalContextRef will outlive the connection objects, and
128318        because of it no JSGlobalContextRetain/Release calls were added.
128319
128320        Reviewed by Noam Rosenthal.
128321
128322        * bridge/qt/qt_runtime.cpp:
128323        (JSC::Bindings::QtRuntimeConnectionMethod::call):
128324        (JSC::Bindings::QtConnectionObject::QtConnectionObject):
128325        * bridge/qt/qt_runtime.h:
128326        (QtConnectionObject):
128327        * bridge/qt/qt_runtime_qt4.cpp:
128328        (JSC::Bindings::QtRuntimeConnectionMethod::call):
128329        (JSC::Bindings::QtConnectionObject::QtConnectionObject):
128330
1283312012-06-13  David Barr  <davidbarr@chromium.org>
128332
128333        Add dpi to css3-images image-resolution
128334        https://bugs.webkit.org/show_bug.cgi?id=85439
128335
128336        Reviewed by Tony Chang.
128337
128338        No new tests; extended fast/css/image-resolution/image-resolution.html
128339
128340        * css/CSSGrammar.y:
128341        * css/CSSParser.cpp:
128342        (WebCore::CSSParser::validUnit):
128343        (WebCore::CSSParser::createPrimitiveNumericValue):
128344        (WebCore::unitFromString):
128345        (WebCore::CSSParser::parseValidPrimitive):
128346        (WebCore::CSSParser::detectNumberToken):
128347        * css/CSSPrimitiveValue.cpp:
128348        (WebCore::isValidCSSUnitTypeForDoubleConversion):
128349        (WebCore::unitCategory):
128350        (WebCore::conversionToCanonicalUnitsScaleFactor):
128351        (WebCore::CSSPrimitiveValue::customCssText):
128352        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
128353        * css/CSSPrimitiveValue.h:
128354
1283552012-06-13  Li Yin  <li.yin@intel.com>
128356
128357        FileAPI: type should be converted to be lower case in Blob constructor.
128358        https://bugs.webkit.org/show_bug.cgi?id=88696
128359
128360        Reviewed by Kentaro Hara.
128361
128362        Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-BlobPropertyBag
128363        Spec: http://dev.w3.org/2006/webapi/FileAPI/#attributes-blob
128364        The ASCII-encoded string in lower case representing the media type of the Blob.
128365
128366        Test: fast/files/blob-constructor.html
128367
128368        * bindings/js/JSBlobCustom.cpp:
128369        (WebCore::JSBlobConstructor::constructJSBlob):
128370        * bindings/v8/custom/V8BlobCustom.cpp:
128371        (WebCore::V8Blob::constructorCallback):
128372
1283732012-06-13  Robin Cao  <robin.cao@torchmobile.com.cn>
128374
128375        [BlackBerry] Enable MEDIA_STREAM by default
128376        https://bugs.webkit.org/show_bug.cgi?id=88849
128377
128378        Reviewed by Antonio Gomes.
128379
128380        Covered by existing test cases.
128381
128382        * CMakeLists.txt:
128383        * PlatformBlackBerry.cmake:
128384        * platform/mediastream/blackberry/DeprecatedPeerConnectionHandler.cpp: Added.
128385        (WebCore):
128386        (WebCore::DeprecatedPeerConnectionHandler::create):
128387        (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
128388        (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
128389        (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
128390        (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
128391        (WebCore::DeprecatedPeerConnectionHandler::processSDP):
128392        (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
128393        (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
128394        (WebCore::DeprecatedPeerConnectionHandler::stop):
128395        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp: Added.
128396        (WebCore):
128397        (WebCore::MediaStreamCenter::instance):
128398        (WebCore::MediaStreamCenterBlackBerry::MediaStreamCenterBlackBerry):
128399        (WebCore::MediaStreamCenterBlackBerry::~MediaStreamCenterBlackBerry):
128400        (WebCore::MediaStreamCenterBlackBerry::queryMediaStreamSources):
128401        (WebCore::MediaStreamCenterBlackBerry::didSetMediaStreamTrackEnabled):
128402        (WebCore::MediaStreamCenterBlackBerry::didStopLocalMediaStream):
128403        (WebCore::MediaStreamCenterBlackBerry::didCreateMediaStream):
128404        (WebCore::MediaStreamCenterBlackBerry::constructSDP):
128405        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h: Added.
128406        (WebCore):
128407        (MediaStreamCenterBlackBerry):
128408
1284092012-06-13  Pavel Feldman  <pfeldman@chromium.org>
128410
128411        Web Inspector: working copy should be committed even if domain binding returns error.
128412        https://bugs.webkit.org/show_bug.cgi?id=88884
128413
128414        Reviewed by Vsevolod Vlasov.
128415
128416        Committing working copy is about saving file. It should always succeed.
128417
128418        * inspector/front-end/UISourceCode.js:
128419        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
128420
1284212012-06-12  Pavel Feldman  <pfeldman@chromium.org>
128422
128423        Web Inspector: show revisions of all modified files in local modifications view
128424        https://bugs.webkit.org/show_bug.cgi?id=88864
128425
128426        Reviewed by Vsevolod Vlasov.
128427
128428        This change allows all local modifications to be seen in a single view. View is now
128429        singleton, listening to all revisions being added. Revert captions were reworked
128430        (see the screenshot).
128431
128432        * English.lproj/localizedStrings.js:
128433        * inspector/front-end/Resource.js:
128434        * inspector/front-end/RevisionHistoryView.js:
128435        (WebInspector.RevisionHistoryView.populateRevisions):
128436        (WebInspector.RevisionHistoryView):
128437        (WebInspector.RevisionHistoryView.showHistory):
128438        (WebInspector.RevisionHistoryView.reset):
128439        (WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
128440        (WebInspector.RevisionHistoryView.prototype._createResourceItem):
128441        (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
128442        (WebInspector.RevisionHistoryView.prototype._revisionAdded):
128443        (WebInspector.RevisionHistoryView.prototype._revealResource.get if):
128444        (WebInspector.RevisionHistoryView.prototype._revealResource):
128445        (WebInspector.RevisionHistoryView.prototype._reset):
128446        (WebInspector.RevisionHistoryTreeElement):
128447        (WebInspector.RevisionHistoryTreeElement.prototype.onattach):
128448        (WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
128449        * inspector/front-end/ScriptsPanel.js:
128450        (WebInspector.ScriptsPanel.prototype._reset):
128451        (WebInspector.ScriptsPanel.prototype._editorSelected):
128452        * inspector/front-end/revisionHistory.css:
128453        (.revision-history-link-row):
128454        (.revision-history-drawer li.revision-history-revision):
128455
1284562012-06-13  Pavel Feldman  <pfeldman@chromium.org>
128457
128458        Web Inspector: Make "Go to source and line" possible with "go to file" dialog
128459        https://bugs.webkit.org/show_bug.cgi?id=88740
128460
128461        Reviewed by Vsevolod Vlasov.
128462
128463        Selection dialog now allows search query rewrite and uses line number
128464        suffix to go to a particular line.
128465
128466        * inspector/front-end/FilteredItemSelectionDialog.js:
128467        (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
128468        (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
128469        (WebInspector.SelectionDialogContentProvider.prototype.selectItem):
128470        (WebInspector.SelectionDialogContentProvider.prototype.rewriteQuery):
128471        (WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
128472        (WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery):
128473        (WebInspector.OpenResourceDialog.prototype.selectItem):
128474        (WebInspector.OpenResourceDialog.prototype.rewriteQuery):
128475        * inspector/front-end/ScriptsPanel.js:
128476        (WebInspector.ScriptsPanel.prototype.showUISourceCode):
128477        * inspector/front-end/StylesPanel.js:
128478        (WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
128479        (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):
128480
1284812012-06-12  Hans Wennborg  <hans@chromium.org>
128482
128483        Speech JavaScript API: Add test for constructing SpeechRecognitionError events
128484        https://bugs.webkit.org/show_bug.cgi?id=88868
128485
128486        Reviewed by Adam Barth.
128487
128488        This adds a test for constructing SpeechRecognitionError events, and
128489        code to make it work.
128490
128491        Test: fast/events/constructors/speech-recognition-error-constructor.html
128492
128493        * Modules/speech/SpeechRecognitionError.cpp:
128494        (WebCore::SpeechRecognitionError::create):
128495        (WebCore):
128496        (WebCore::SpeechRecognitionError::SpeechRecognitionError):
128497        (WebCore::SpeechRecognitionErrorInit::SpeechRecognitionErrorInit):
128498        * Modules/speech/SpeechRecognitionError.h:
128499        (SpeechRecognitionErrorInit):
128500        (WebCore):
128501        (SpeechRecognitionError):
128502        (WebCore::SpeechRecognitionError::code):
128503        * Modules/speech/SpeechRecognitionError.idl:
128504
1285052012-06-13  Taiju Tsuiki  <tzik@chromium.org>
128506
128507        Implement InspectorFileSystemAgent::readDirectory for FileSystem support.
128508        https://bugs.webkit.org/show_bug.cgi?id=87724
128509
128510        Reviewed by Vsevolod Vlasov.
128511
128512        Test: http/tests/inspector/filesystem/read-directory.html
128513
128514        * inspector/Inspector.json:
128515        * inspector/InspectorController.cpp:
128516        (WebCore::InspectorController::InspectorController):
128517        * inspector/InspectorFileSystemAgent.cpp:
128518        (InspectorFileSystemAgent::FrontendProvider):
128519        (WebCore):
128520        (WebCore::InspectorFileSystemAgent::create):
128521        (WebCore::InspectorFileSystemAgent::readDirectory):
128522        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
128523        * inspector/InspectorFileSystemAgent.h:
128524        (WebCore):
128525        (InspectorFileSystemAgent):
128526
1285272012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
128528
128529        Change the styling of the Chromium video controls.
128530        https://bugs.webkit.org/show_bug.cgi?id=88297
128531
128532        Reviewed by Eric Carlson.
128533
128534        No new tests, final patch will contain the rebaselined tests.
128535
128536        The Chrome video controls are receiving a visual update. This patch includes CSS changes,
128537        the removal of the now no longer needed controls background div, and the introduction of
128538        new images for the buttons.
128539
128540        * css/mediaControlsChromium.css:
128541        (audio):
128542        Adjust height of audio controls.
128543        (::-webkit-media-controls):
128544        Use flexbox on media controls shadow DOM.
128545        (audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
128546        Adjust height, max-width, text-indent and box-sizing, and reset padding to 0.
128547        (video::-webkit-media-controls-enclosure):
128548        Use 5px padding only for video controls and adjust height accordingly.
128549        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
128550        Use flexbox on panel, adjust bottom alignment, height, background color and border radius.
128551        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
128552        Display buttons inline with fixed width and height, vertically centered, no padding and
128553        6px space to next controls element (this will be 15px incl the space in the image).
128554        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
128555        Display buttons inline with fixed width and height, vertically centered, no padding and
128556        9px space to next controls element (this will be 15px incl the space in the image).
128557        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
128558        Display text as block, without broder, adjusted height, font-family, font-size and 9px space
128559        to next controls element (this will be 15px incl the space in the image).
128560        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
128561        Adjust height, padding, background-color, min-wdith and 15px space to next controls element.
128562        (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
128563        Adjust height, max- and min-width, background-color and 15px space to next controls element.
128564        * html/shadow/MediaControlRootElementChromium.cpp:
128565        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
128566        Remove timeline container, which is not necessary any longer because of the use of flexbox.
128567        (WebCore::MediaControlRootElementChromium::create):
128568        Remove timeline container, which is not necessary any longer because of the use of flexbox.
128569        (WebCore::MediaControlRootElementChromium::setMediaController):
128570        Remove timeline container, which is not necessary any longer because of the use of flexbox.
128571        (WebCore::MediaControlRootElementChromium::reset):
128572        Show the timeline instead of the timeline container when resetting.
128573        (WebCore::MediaControlRootElementChromium::reportedError):
128574        Hide the timeline instead of the timeline container when running into an error.
128575        * rendering/RenderMediaControlsChromium.cpp:
128576        (WebCore::paintMediaMuteButton):
128577        Introduce new image resources for the mute button and adjust it based on volume levels.
128578        (WebCore::paintMediaPlayButton):
128579        Introduce new image resources for the play button.
128580        (WebCore::getMediaSliderThumb):
128581        Introduce new image resources for the position slider thumb.
128582        (WebCore::paintMediaVolumeSliderThumb):
128583        Introduce new image resources for the volume slider thumb.
128584        Remove timeline container rendering.
128585        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
128586        Add timeline container painting to the "not reached" elements.
128587        (WebCore):
128588        Provide size settings for the position and volume sliders.
128589        (WebCore::RenderMediaControlsChromium::adjustMediaSliderThumbSize):
128590        Calculate correct width and height settings for the new image resources of the position and volume
128591        slider thumbs.
128592        * rendering/RenderThemeChromiumMac.h:
128593        (RenderThemeChromiumMac):
128594        Remove timeline container rendering (i.e. the media controls background).
128595        * rendering/RenderThemeChromiumMac.mm:
128596        Remove timeline container rendering (i.e. the media controls background).
128597        * rendering/RenderThemeChromiumSkia.cpp:
128598        Remove timeline container rendering (i.e. the media controls background).
128599        * rendering/RenderThemeChromiumSkia.h:
128600        (RenderThemeChromiumSkia):
128601        Remove timeline container rendering (i.e. the media controls background).
128602
1286032012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
128604
128605        Unreviewed, fixing English nits suggested by review for r120165.
128606
128607        * fileapi/Blob.cpp:
128608        (WebCore::Blob::webkitSlice):
128609        * fileapi/Blob.h:
128610        (Blob):
128611
1286122012-06-13  MORITA Hajime  <morrita@google.com>
128613
128614        REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
128615        https://bugs.webkit.org/show_bug.cgi?id=88148
128616
128617        Reviewed by Dimitri Glazkov.
128618
128619        The shadow DOM availability was decided through FrameLoaderClient.
128620        But there are documents which don't have any associated frames, in
128621        which any shadow DOM related elements cannot be constructed.  That
128622        resulsted the regression.
128623
128624        This change introduces a Page-based client called
128625        ContextFeaturesClient which takes the role from FrameLoaderClient
128626        to decide the feature availability, and ContextFeatures which is a
128627        proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
128628        replaced with ContextFeatures.
128629
128630        Each ContextFeatures object is owned by a Page, and is attached to
128631        each Document in the page even if the page itself has no referenct
128632        to Frames or Pages. With ContextFeatures, each Document can decide
128633        the feature availability even if it cannot reach Page or Frame.
128634
128635        On RefCountedSupplement: Document instance can live longer than a
128636        Page where it is shwon. This means that ContextFeatures instance
128637        needs to survive after owner Page destruction because it's
128638        referenced from possibly surviving Documents. RefCountedSupplement
128639        is introduced to cover this scenario: It allows supplement classes
128640        to live after Page's destruction.
128641
128642        RefCountedSupplement::hostDestroyed() is notified when the hosting
128643        page is gone. ContextFeatures clears its reference to the client
128644        using this notification.
128645
128646        Test: fast/dom/shadow/elements-in-frameless-document.html
128647
128648        * CMakeLists.txt:
128649        * GNUmakefile.list.am:
128650        * Target.pri:
128651        * WebCore.gypi:
128652        * WebCore.vcproj/WebCore.vcproj:
128653        * WebCore.xcodeproj/project.pbxproj:
128654        * bindings/scripts/CodeGeneratorV8.pm:
128655        (GenerateImplementation):
128656        * css/StyleResolver.cpp:
128657        (WebCore::StyleResolver::determineScope):
128658        * dom/ContextFeatures.cpp: Added.
128659        (WebCore):
128660        (WebCore::ContextFeaturesClient::empty):
128661        (WebCore::ContextFeatures::supplementName):
128662        (WebCore::ContextFeatures::defaultSwitch):
128663        (WebCore::ContextFeatures::shadowDOMEnabled):
128664        (WebCore::ContextFeatures::styleScopedEnabled):
128665        (WebCore::ContextFeatures::pagePopupEnabled):
128666        (WebCore::provideContextFeaturesTo):
128667        (WebCore::provideContextFeaturesToDocumentFrom):
128668        * dom/ContextFeatures.h: Added.
128669        (WebCore):
128670        (ContextFeatures):
128671        (WebCore::ContextFeatures::ContextFeatures):
128672        (WebCore::ContextFeatures::hostDestroyed):
128673        (ContextFeaturesClient):
128674        (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
128675        (WebCore::ContextFeaturesClient::isEnabled):
128676        (WebCore::ContextFeatures::create):
128677        (WebCore::ContextFeatures::isEnabled):
128678        * dom/DOMAllInOne.cpp:
128679        * dom/DOMImplementation.cpp:
128680        (WebCore::DOMImplementation::createDocument):
128681        (WebCore::DOMImplementation::createHTMLDocument):
128682        * dom/Document.h:
128683        (WebCore::Document::contextFeatures):
128684        * dom/Document.cpp:
128685        (WebCore::Document::Document):
128686        (WebCore::Document::setContextFeatures):
128687        * dom/Position.cpp:
128688        (WebCore::Position::Position):
128689        (WebCore::Position::findParent):
128690        * dom/TreeScope.cpp:
128691        (WebCore::TreeScope::getSelection):
128692        * dom/make_names.pl:
128693        (printConstructorInterior):
128694        (printFactoryCppFile):
128695        (printWrapperFunctions):
128696        (printWrapperFactoryCppFile):
128697        * editing/markup.cpp:
128698        (WebCore::createFragmentFromMarkupWithContext):
128699        * html/HTMLStyleElement.cpp:
128700        (WebCore::HTMLStyleElement::registerWithScopingNode):
128701        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
128702        * html/shadow/HTMLContentElement.cpp:
128703        (WebCore::contentTagName):
128704        * inspector/DOMPatchSupport.cpp:
128705        (WebCore::DOMPatchSupport::patchDocument):
128706        * loader/FrameLoaderClient.h:
128707        * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
128708        (WebCore):
128709        (RefCountedSupplement):
128710        (WebCore::RefCountedSupplement::hostDestroyed):
128711        (Wrapper):
128712        (WebCore::RefCountedSupplement::Wrapper::Wrapper):
128713        (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
128714        (WebCore::RefCountedSupplement::Wrapper::wrapped):
128715        (WebCore::RefCountedSupplement::provideTo):
128716        (WebCore::RefCountedSupplement::from):
128717        * platform/Supplementable.h:
128718        (WebCore::Supplement::isRefCountedWrapper):
128719        * xml/XMLHttpRequest.cpp:
128720        (WebCore::XMLHttpRequest::responseXML):
128721
1287222012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
128723
128724        Unprefix Blob.webkitSlice
128725        https://bugs.webkit.org/show_bug.cgi?id=78111
128726
128727        Reviewed by Adam Barth.
128728
128729        Add unprefixed Blob.slice and start showing a deprecation message when webkitSlice is called.
128730
128731        No new tests: existing tests that call webkitSlice() are converted to slice(). They should keep running.
128732
128733        * bindings/gobject/WebKitDOMCustom.cpp:
128734        (webkit_dom_blob_slice): Removed.
128735        (webkit_dom_blob_webkit_slice): Added.
128736        * fileapi/Blob.cpp:
128737        (WebCore::Blob::slice):
128738        (WebCore):
128739        (WebCore::Blob::webkitSlice):
128740        (WebCore::Blob::sliceInternal): Added.
128741        * fileapi/Blob.h:
128742        (WebCore):
128743        (Blob):
128744        * fileapi/Blob.idl:
128745
1287462012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
128747
128748        Unreviewed, rolling out r120036.
128749        http://trac.webkit.org/changeset/120036
128750        https://bugs.webkit.org/show_bug.cgi?id=88965
128751
128752        "assert failed in debug build" (Requested by maryw on
128753        #webkit).
128754
128755        * platform/network/blackberry/NetworkJob.cpp:
128756        (WebCore::NetworkJob::handleNotifyDataReceived):
128757
1287582012-06-12  Wei James  <james.wei@intel.com>
128759
128760        webcore should depend on webcore_arm_neon for only arm target_arch
128761        https://bugs.webkit.org/show_bug.cgi?id=88839
128762
128763        Reviewed by Adam Barth.
128764
128765        * WebCore.gyp/WebCore.gyp:
128766
1287672012-06-12  Edaena Salinas Jasso  <edaena@apple.com>
128768
128769        Can't set el.type on a <button> element
128770        https://bugs.webkit.org/show_bug.cgi?id=14439
128771
128772        Reviewed by Darin Adler.
128773
128774        Test: fast/dom/HTMLButtonElement/change-type.html
128775
128776        * bindings/objc/PublicDOMInterfaces.h:
128777        * html/HTMLButtonElement.cpp:
128778        (WebCore::HTMLButtonElement::setType): Added implementation of setType method.
128779        (WebCore):
128780        * html/HTMLButtonElement.h:
128781        (HTMLButtonElement): Added setType method.
128782        * html/HTMLButtonElement.idl: Removed readonly restriction to the type variable.
128783
1287842012-06-12  Kenichi Ishibashi  <bashi@chromium.org>
128785
128786        [Chromium] Implement font shaping with font-feature-settings on Mac
128787        https://bugs.webkit.org/show_bug.cgi?id=69826
128788
128789        Reviewed by Tony Chang.
128790
128791        Add HarfBuzz-ng text shaper.
128792        Chromium mac port uses it as secondary text shaper to support OpenType features.
128793        HarfBuzz-ng is only used when -webkit-font-feature-settings is specified and
128794        corresponding font is not an AAT font.
128795
128796        No new tests. css3/font-feature-settings-rendering.html should pass on Chromium mac port.
128797
128798        * WebCore.gyp/WebCore.gyp: Added harfbuzz-ng dependencies.
128799        * WebCore.gypi: Added harfbuzz-ng files.
128800        * platform/graphics/FontPlatformData.h:
128801        (FontPlatformData): Added m_harfbuzzFace.
128802        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
128803        (WebCore::FontPlatformData::platformDataInit): Copy m_harfbuzzFace.
128804        (WebCore::FontPlatformData::platformDataAssign): Ditto.
128805        (WebCore):
128806        (WebCore::isAATFont):
128807        (WebCore::FontPlatformData::harfbuzzFace):
128808        * platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp: Added.
128809        (WebCore):
128810        (WebCore::harfbuzzFaceCache):
128811        (WebCore::HarfBuzzFace::HarfBuzzFace):
128812        (WebCore::HarfBuzzFace::~HarfBuzzFace):
128813        * platform/graphics/harfbuzz/ng/HarfBuzzFace.h: Added.
128814        (WebCore):
128815        (HarfBuzzFace):
128816        (WebCore::HarfBuzzFace::create):
128817        * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp: Added.
128818        (WebCore):
128819        (WebCore::floatToHarfBuzzPosition):
128820        (WebCore::getGlyph):
128821        (WebCore::getGlyphHorizontalAdvance):
128822        (WebCore::getGlyphHorizontalOrigin):
128823        (WebCore::getGlyphExtents):
128824        (WebCore::harfbuzzCoreTextGetFontFuncs):
128825        (WebCore::releaseTableData):
128826        (WebCore::harfbuzzCoreTextGetTable):
128827        (WebCore::HarfBuzzFace::createFace):
128828        (WebCore::HarfBuzzFace::createFont):
128829        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
128830        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: Added.
128831        (WebCore):
128832        (WebCore::harfbuzzPositionToFloat):
128833        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
128834        (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
128835        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
128836        (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
128837        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
128838        (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
128839        (WebCore::HarfBuzzShaper::setFontFeatures):
128840        (WebCore::HarfBuzzShaper::shape):
128841        (WebCore::HarfBuzzShaper::setupHarfBuzzRun):
128842        (WebCore::HarfBuzzShaper::shapeHarfBuzzRun):
128843        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
128844        (WebCore::HarfBuzzShaper::offsetForPosition):
128845        (WebCore::HarfBuzzShaper::selectionRect):
128846        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: Added.
128847        (WebCore):
128848        (HarfBuzzShaper):
128849        (WebCore::HarfBuzzShaper::totalWidth):
128850        (HarfBuzzRun):
128851        (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
128852        (WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
128853        (WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
128854        (WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
128855        (WebCore::HarfBuzzShaper::HarfBuzzRun::width):
128856        (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
128857        * platform/graphics/mac/FontComplexTextMac.cpp:
128858        (WebCore):
128859        (WebCore::preferHarfBuzz): Added.
128860        (WebCore::Font::selectionRectForComplexText): Use HarfBuzzShaper if font-feature-settings exists.
128861        (WebCore::Font::drawComplexText): Ditto.
128862        (WebCore::Font::floatWidthForComplexText): Ditto.
128863        (WebCore::Font::offsetForPositionForComplexText): Ditto.
128864
1288652012-06-12  Luke Macpherson  <macpherson@chromium.org>
128866
128867        WIP: Implement CSS Variables Standard.
128868        https://bugs.webkit.org/show_bug.cgi?id=85580
128869
128870        Reviewed by Ojan Vafai.
128871
128872        Implement CSS Variables Module Level 1. (See http://www.w3.org/TR/css-variables/)
128873
128874        A HashMap of properties is referenced by RenderStyle, and used to store variables as strings.
128875        That HashMap is copy-on-write, and unless new variables are defined is simply a pointer to the
128876        parent's definitions. At usage time the variable's value is parsed according to the CSS property
128877        where it is used.
128878        Variables can:
128879               Define lists of values (ie. entire shorthand values).
128880               Define individual values.
128881               Refer to other variables. (Cycle detection is implemented).
128882        Please see the supplied test cases for example usage.
128883
128884        Missing features:
128885               CSS variables cannot yet be used inside some functions such as -webkit-calc.
128886
128887        Covered by existing test suite under fast/css/variables.
128888
128889        * GNUmakefile.list.am:
128890        * Target.pri:
128891        * WebCore.gypi:
128892        * WebCore.vcproj/WebCore.vcproj:
128893        * WebCore.xcodeproj/project.pbxproj:
128894        * css/CSSComputedStyleDeclaration.cpp:
128895        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
128896        * css/CSSGrammar.y:
128897        * css/CSSParser.cpp:
128898        (WebCore):
128899        (WebCore::filterProperties):
128900        (WebCore::CSSParser::createStylePropertySet):
128901        (WebCore::CSSParser::validUnit):
128902        (WebCore::CSSParser::createPrimitiveNumericValue):
128903        (WebCore::CSSParser::parseValue):
128904        (WebCore::CSSParser::storeVariableDeclaration):
128905        (WebCore::CSSParser::detectDashToken):
128906        (WebCore::CSSParser::lex):
128907        * css/CSSParser.h:
128908        (CSSParser):
128909        * css/CSSParserValues.cpp:
128910        (WebCore::CSSParserValue::createCSSValue):
128911        * css/CSSPrimitiveValue.cpp:
128912        (WebCore::isValidCSSUnitTypeForDoubleConversion):
128913        (WebCore::CSSPrimitiveValue::getStringValue):
128914        (WebCore::CSSPrimitiveValue::customSerializeResolvingVariables):
128915        (WebCore):
128916        * css/CSSPrimitiveValue.h:
128917        (CSSPrimitiveValue):
128918        (WebCore::CSSPrimitiveValue::isVariableName):
128919        * css/CSSProperty.cpp:
128920        (WebCore::CSSProperty::isInheritedProperty):
128921        * css/CSSValue.cpp:
128922        (WebCore::CSSValue::serializeResolvingVariables):
128923        (WebCore):
128924        (WebCore::CSSValue::destroy):
128925        * css/CSSValue.h:
128926        (CSSValue):
128927        (WebCore::CSSValue::isVariableValue):
128928        * css/CSSValueList.cpp:
128929        (WebCore):
128930        (WebCore::CSSValueList::customSerializeResolvingVariables):
128931        * css/CSSValueList.h:
128932        (CSSValueList):
128933        * css/CSSVariableValue.h: Added.
128934        (WebCore):
128935        (CSSVariableValue):
128936        (WebCore::CSSVariableValue::create):
128937        (WebCore::CSSVariableValue::name):
128938        (WebCore::CSSVariableValue::value):
128939        (WebCore::CSSVariableValue::CSSVariableValue):
128940        * css/StyleResolver.cpp:
128941        (WebCore::StyleResolver::collectMatchingRulesForList):
128942        * css/StyleResolver.h:
128943        * css/WebKitCSSTransformValue.cpp:
128944        (WebCore):
128945        (WebCore::WebKitCSSTransformValue::customSerializeResolvingVariables):
128946        * css/WebKitCSSTransformValue.h:
128947        (WebKitCSSTransformValue):
128948        * css/makeprop.pl:
128949        * rendering/style/RenderStyle.h:
128950        * rendering/style/StyleVariableData.h: Added.
128951        (WebCore):
128952        (StyleVariableData):
128953        (WebCore::StyleVariableData::create):
128954        (WebCore::StyleVariableData::copy):
128955        (WebCore::StyleVariableData::operator==):
128956        (WebCore::StyleVariableData::operator!=):
128957        (WebCore::StyleVariableData::setVariable):
128958        (WebCore::StyleVariableData::StyleVariableData):
128959
1289602012-06-12  MORITA Hajime  <morrita@google.com>
128961
128962        Shadow Pseudo ID should be able to nest to point nested shadow DOM.
128963        https://bugs.webkit.org/show_bug.cgi?id=62218
128964
128965        Reviewed by Dimitri Glazkov.
128966
128967        - updateSpecifiersWithElementName() didn't take nesting into account.
128968          tag history can contain selector entries which isn't marked as ShadowDescendant yet.
128969          such entry can be found by investigating isUnknownPseudoElement().
128970        - SelectorChecker::checkSelector() was too strict. Unknown pseudo elements are essentially a kind of class or id
128971          in implementation perspective. For such, rejecting by missing elementStyle doesn't make sense:
128972          It isn't a pseudo but a real element for WebCore after all.
128973        - Added Internals::setShadowPseudoId() to create a test harness whose DOM tree contains pseudo shadow ids.
128974
128975        Before this change, following selecdtor chain is created for "p::-shadow-child::-nested-shadow-child":
128976
128977          [both tag name and -shadow-id are set] <-(ShadowDescendant)- [-nested-shadow-id]
128978
128979        What we want, which is created by this change is:
128980
128981          [tag] <-(ShadowDescendant)- [-shadow-id is set] <-(ShadowdescenDant)- [-nested-shadow-id]
128982
128983        Test: fast/dom/shadow/shadow-nested-pseudo-id.html
128984
128985        * WebCore.exp.in:
128986        * css/CSSParser.cpp:
128987        (WebCore::CSSParser::updateSpecifiersWithElementName):
128988        * css/SelectorChecker.cpp:
128989        (WebCore::SelectorChecker::checkOneSelector):
128990        * testing/Internals.cpp:
128991        (WebCore::Internals::setShadowPseudoId):
128992        (WebCore):
128993        * testing/Internals.h:
128994        (Internals):
128995        * testing/Internals.idl:
128996
1289972012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
128998
128999        [soup] Prevent setting or editing httpOnly cookies from JavaScript
129000        https://bugs.webkit.org/show_bug.cgi?id=88760
129001
129002        Reviewed by Gustavo Noronha Silva.
129003
129004        Prevent setting or overwriting httpOnly cookies from JavaScript.
129005        Fix setCookies() so that it parses all the cookies and not just
129006        the first one.
129007
129008        Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
129009
129010        * platform/network/soup/CookieJarSoup.cpp:
129011        (WebCore::httpOnlyCookieExists):
129012        (WebCore):
129013        (WebCore::setCookies):
129014
1290152012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
129016
129017        [EFL] Enable SHADOW_DOM flag
129018        https://bugs.webkit.org/show_bug.cgi?id=87732
129019
129020        Reviewed by Kentaro Hara.
129021
129022        Test: fast/dom/shadow/shadow-root-innerHTML.html
129023
129024        * dom/ShadowRoot.idl: Add JSGenerateToJSObject extended attribute so
129025        that the ShadowRoot properties are accessible on JS side.
129026        * testing/Internals.idl: Fix SHADOW_DOM ifdef check.
129027
1290282012-06-12  Leo Yang  <leo.yang@torchmobile.com.cn>
129029
129030        Dynamic hash table in DOMObjectHashTableMap is wrong in multiple threads
129031        https://bugs.webkit.org/show_bug.cgi?id=87334
129032
129033        Reviewed by Geoffrey Garen.
129034
129035        Adapt to JSC::HashTable::copy to avoid copy dynamic table member of a HashTable.
129036        The dynamic table may be allocated on other thread and contains thread specific
129037        identifiers. For example, a hash table of JSEntryArray was first initialized on a
129038        worker thread, and then the user reloaded the page, another worker thread is
129039        created due to reload, the dynamic allocated table in *staticTable* is specific
129040        to the first worker thread which has died. If the user reload the page again,
129041        the dynamic table will be freed and memory corruption will occur.
129042
129043        No functionalities changed, no new tests.
129044
129045        * bindings/js/DOMObjectHashTableMap.h:
129046        (WebCore::DOMObjectHashTableMap::get):
129047
1290482012-06-12  James Robinson  <jamesr@chromium.org>
129049
129050        [chromium] Port Canvas2DLayerBridge over to WebExternalTextureLayer
129051        https://bugs.webkit.org/show_bug.cgi?id=88597
129052
129053        Reviewed by Adrienne Walker.
129054
129055        This converts Canvas2DLayerBridge to using public WebLayer API types instead of LayerChromium types.
129056
129057        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
129058        (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
129059        (WebCore::AcceleratedDeviceContext::prepareForDraw):
129060        (AcceleratedDeviceContext):
129061        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
129062        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
129063        (WebCore::Canvas2DLayerBridge::skCanvas):
129064        (WebCore::Canvas2DLayerBridge::prepareTexture):
129065        (WebCore::Canvas2DLayerBridge::context):
129066        (WebCore::Canvas2DLayerBridge::layer):
129067        (WebCore::Canvas2DLayerBridge::contextAcquired):
129068        * platform/graphics/chromium/Canvas2DLayerBridge.h:
129069        (WebCore):
129070        (Canvas2DLayerBridge):
129071
1290722012-06-12  Alexis Menard  <alexis.menard@openbossa.org>
129073
129074        Fix packing in StyleBoxData for Windows.
129075        https://bugs.webkit.org/show_bug.cgi?id=88858
129076
129077        Reviewed by Tony Chang.
129078
129079        MSVC doesn't pack bitfields if the types are mixed.
129080        We can safely change the bool type to an unsigned so
129081        the packing will happen. I have added a compile assert
129082        for future regressions.
129083
129084        No new tests : we should not see any regressions.
129085
129086        * rendering/style/StyleBoxData.h:
129087        * rendering/style/StyleBoxData.cpp:
129088        (StyleBoxData):
129089
1290902012-06-12  Adrienne Walker  <enne@google.com>
129091
129092        [chromium] Paint scrollbars on WebKit thread and composite those textures
129093        https://bugs.webkit.org/show_bug.cgi?id=88145
129094
129095        Reviewed by James Robinson.
129096
129097        Scrollbars were previously painted and uploaded on the compositor
129098        thread. This isn't possible to do for many scrollbar themes. This
129099        patch changes ScrollbarLayerChromium to paint the scrollbar into two
129100        parts: the thumb, and everything else. These are uploaded into
129101        textures and synced over to the CCScrollbarImpl where they are
129102        composited and drawn.
129103
129104        Mac and overlay scrollbars are still not enabled to have compositor
129105        thread-updated scrollbars.
129106
129107        As a bonus, fix LayerRendererChromium::drawTextureQuad to draw quads
129108        that do not fill the entire layer bounds.
129109
129110        Tested by existing layout and unit tests by removing the condition
129111        that these scrollbar layers are only created when the threaded proxy
129112        exists.
129113
129114        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
129115        (WebCore::scrollbarLayerDidChange):
129116        * platform/ScrollbarThemeComposite.cpp:
129117        (WebCore::ScrollbarThemeComposite::thumbRect):
129118        (WebCore):
129119        * platform/ScrollbarThemeComposite.h:
129120        (ScrollbarThemeComposite):
129121        * platform/graphics/chromium/LayerRendererChromium.cpp:
129122        (WebCore::LayerRendererChromium::drawTextureQuad):
129123        * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
129124        (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
129125        (WebCore::ScrollbarLayerChromium::theme):
129126        (WebCore):
129127        (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
129128        (ScrollbarBackgroundPainter):
129129        (WebCore::ScrollbarBackgroundPainter::create):
129130        (WebCore::ScrollbarBackgroundPainter::paint):
129131        (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
129132        (ScrollbarThumbPainter):
129133        (WebCore::ScrollbarThumbPainter::create):
129134        (WebCore::ScrollbarThumbPainter::paint):
129135        (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
129136        (WebCore::ScrollbarLayerChromium::setLayerTreeHost):
129137        (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
129138        (WebCore::ScrollbarLayerChromium::updatePart):
129139        (WebCore::ScrollbarLayerChromium::update):
129140        * platform/graphics/chromium/ScrollbarLayerChromium.h:
129141        (WebCore):
129142        (ScrollbarLayerChromium):
129143        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
129144        (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
129145        (WebCore::CCScrollbarLayerImpl::appendQuads):
129146        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
129147        (WebCore::CCScrollbarLayerImpl::setBackgroundTextureId):
129148        (WebCore::CCScrollbarLayerImpl::setThumbTextureId):
129149        (CCScrollbarLayerImpl):
129150
1291512012-06-12  Tony Chang  <tony@chromium.org>
129152
129153        Replaced items in a flexbox should be coerced to display:block
129154        https://bugs.webkit.org/show_bug.cgi?id=87068
129155
129156        Reviewed by Ojan Vafai.
129157
129158        The flexbox spec lists HTML tags that should automatically be converted
129159        to display:block when a flex child. It also says that atomic inline-level
129160        children should become block (e.g., inline-table should be treated as table).
129161        http://dev.w3.org/csswg/css3-flexbox/#flex-items
129162
129163        Test: css3/flexbox/flexitem.html
129164
129165        * css/StyleResolver.cpp:
129166        (WebCore::StyleResolver::collectMatchingRulesForList):
129167
1291682012-06-12  Joshua Bell  <jsbell@chromium.org>
129169
129170        IndexedDB: ObjectStore/Index shouldn't hold reference to backing store
129171        https://bugs.webkit.org/show_bug.cgi?id=83074
129172
129173        Reviewed by Tony Chang.
129174
129175        We should be able to collect and close the leveldb backing store as soon as the database
129176        connection is closed, but the IDBObjectStoreBackendImpl and IDBIndexBackendImpl were
129177        holding RefPtrs, and those objects are kept alive by script references.
129178
129179        Replaced RefPtrs to the IDBBackingStore with pointers to the IDBDatabase. On the back end,
129180        IDBDatabaseBackendImpl maintains a RefPtr to the IDBObjectStoreBackendImpl object, so
129181        a raw pointer back is safe. On the front end, the IDBObjectStore maintains a RefPtr to
129182        the IDBDatabase so script can navigate upwards. Ditto on both ends for the ObjectStore/Index
129183        relationship. The frontend objects maintain RefPtrs to the backend objects, so the backend
129184        objects and their owners are maintained as long as there's a script reference. To ensure
129185        that all LevelDB objects are destructed in the right order, transactions indirectly track all
129186        open cursors and ensure they are closed when the transaction finishes, and database closing
129187        is explicitly prevented from occurring until transactions are complete.
129188
129189        Also made IDBDatabaseBackendImpl handle a null IDBFactoryBackendImpl pointer, for testing.
129190
129191        Tests: storage/indexeddb/database-close.html
129192               storage/indexeddb/persistence.html
129193               [Chromium] webkit_unit_tests --gtest_filter=IDBDatabaseBackendTest.BackingStoreRetention
129194
129195        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
129196        (WebCore::IDBCursorBackendImpl::close): Release LevelDB resources when closed to allow backing store to close.
129197        * Modules/indexeddb/IDBCursorBackendImpl.h:
129198        (WebCore):
129199        * Modules/indexeddb/IDBDatabase.cpp: Ensure connection close deferred until all transactions are finished.
129200        (WebCore::IDBDatabase::transactionCreated): Accounting.
129201        (WebCore::IDBDatabase::transactionFinished): Accounting.
129202        (WebCore::IDBDatabase::close):
129203        (WebCore):
129204        (WebCore::IDBDatabase::closeConnection):
129205        * Modules/indexeddb/IDBDatabase.h:
129206        (IDBDatabase):
129207        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Track outstanding transactions for forced-close scenarios.
129208        (WebCore::IDBDatabaseBackendImpl::~IDBDatabaseBackendImpl):
129209        (WebCore::IDBDatabaseBackendImpl::createObjectStore): Don't pass in backing store reference.
129210        (WebCore::IDBDatabaseBackendImpl::setVersion): Use transaction() for consistent accounting.
129211        (WebCore::IDBDatabaseBackendImpl::transactionFinished): Accounting.
129212        (WebCore::IDBDatabaseBackendImpl::transaction): Accounting.
129213        (WebCore::IDBDatabaseBackendImpl::close): Unregister from factory when last connection is closed.
129214        (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Don't pass in backing store reference.
129215        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
129216        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
129217        (WebCore):
129218        (IDBDatabaseBackendImpl):
129219        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
129220        (WebCore::IDBFactoryBackendImpl::deleteDatabase): Don't hang on to deleted databases eternally.
129221        * Modules/indexeddb/IDBFactoryBackendImpl.h: Backend map controls IDBDatabaseBackend lifetimes.
129222        (IDBFactoryBackendImpl):
129223        * Modules/indexeddb/IDBIndexBackendImpl.cpp: Don't hold backing store references.
129224        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
129225        * Modules/indexeddb/IDBIndexBackendImpl.h:
129226        (WebCore::IDBIndexBackendImpl::create):
129227        (IDBIndexBackendImpl):
129228        (WebCore::IDBIndexBackendImpl::backingStore):
129229        (WebCore::IDBIndexBackendImpl::databaseId):
129230        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Don't hold backing store references.
129231        (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
129232        (WebCore::IDBObjectStoreBackendImpl::createIndex):
129233        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
129234        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
129235        (WebCore::IDBObjectStoreBackendImpl::create):
129236        (IDBObjectStoreBackendImpl):
129237        (WebCore::IDBObjectStoreBackendImpl::backingStore):
129238        (WebCore::IDBObjectStoreBackendImpl::databaseId):
129239        * Modules/indexeddb/IDBRequest.cpp:
129240        (WebCore::IDBRequest::onSuccess):
129241        * Modules/indexeddb/IDBTransaction.cpp:
129242        (WebCore::IDBTransaction::IDBTransaction): For IDBDatabase accounting, allow ref during ctor.
129243        (WebCore::IDBTransaction::onAbort): Accounting.
129244        (WebCore::IDBTransaction::onComplete): Accounting.
129245        * Modules/indexeddb/IDBTransaction.h:
129246        (WebCore::IDBTransaction::isVersionChange): Convenience function.
129247        (IDBTransaction):
129248        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
129249        (WebCore::IDBTransactionBackendImpl::abort): Cleanup ordering to allow backing store to close.
129250        (WebCore::IDBTransactionBackendImpl::commit): Cleanup ordering to allow backing store to close.
129251
1292522012-06-12  Adrienne Walker  <enne@google.com>
129253
129254        [chromium] Don't set visible layer rect in CCLayerTreeHost paint iteration
129255        https://bugs.webkit.org/show_bug.cgi?id=88895
129256
129257        Reviewed by James Robinson.
129258
129259        We should only set visible layer rects during the recursion in
129260        CClayerTreeHostCommon and not while we're painting. This is one last
129261        straggling piece of code that never got moved.
129262
129263        Tested by existing mask-related layout tests.
129264
129265        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
129266        (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
129267        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
129268        (WebCore::calculateVisibleAndScissorRectsInternal):
129269
1292702012-06-12  Dana Jansens  <danakj@chromium.org>
129271
129272        [chromium] Return empty visibleLayerRect for layers with empty content bounds
129273        https://bugs.webkit.org/show_bug.cgi?id=88901
129274
129275        Reviewed by Adrienne Walker.
129276
129277        This change should only affect tests. Currently if you set up a
129278        CCLayerImpl with some bounds, but don't set the contentBounds, then
129279        they are empty by default. In this case the visibleLayerRect gets
129280        set inappropriately to the layer's target surface contentRect which
129281        in a completely different coordinate space.
129282
129283        Fixed up tests that were passing bogusly and failed after this change.
129284
129285        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
129286        (WebCore::calculateVisibleLayerRect):
129287
1292882012-06-12  Adrienne Walker  <enne@google.com>
129289
129290        [chromium] ScrollingCoordinator::setScrollLayer should update scroll layer ids
129291        https://bugs.webkit.org/show_bug.cgi?id=88882
129292
129293        Reviewed by James Robinson.
129294
129295        Tested manually, as scrollbar layers are currently only created when
129296        threaded compositing is enabled and none of those layout tests trigger
129297        this bug.
129298
129299        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
129300        (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
129301        (ScrollingCoordinatorPrivate):
129302        (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
129303        (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
129304        (WebCore::createScrollbarLayer):
129305        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
129306        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
129307        * platform/graphics/chromium/ScrollbarLayerChromium.h:
129308        (WebCore::ScrollbarLayerChromium::setScrollLayerId):
129309        (ScrollbarLayerChromium):
129310        * platform/graphics/chromium/TreeSynchronizer.cpp:
129311        (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
129312
1293132012-06-12  Mark Mentovai  <mark@chromium.org>
129314
129315        [chromium mac] Don't include things in subframeworks of
129316        ApplicationServices.framework.
129317
129318        Subframeworks move around from SDK to SDK and OS release to OS
129319        release, but just using the top-level umbrella framework guarantees
129320        forward compatibility. When building for Chromium Mac, just #include
129321        <ApplicationServices/ApplicationServices.h> instead of reaching in to
129322        subframeworks.
129323
129324        https://bugs.webkit.org/show_bug.cgi?id=88569
129325
129326        Reviewed by Stephen White.
129327
129328        No new tests.
129329
129330        * platform/graphics/GlyphBuffer.h:
129331        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
129332        * platform/graphics/skia/GraphicsContextSkia.cpp:
129333
1293342012-06-12  Igor Oliveira  <igor.o@sisa.samsung.com>
129335
129336        Apply animations and transitions for first-letter element
129337        https://bugs.webkit.org/show_bug.cgi?id=85253
129338
129339        Add animations and transitions support for the first-letter
129340        pseudo element.
129341        Instead of calling RenderOject::node() in the animations code,
129342        now we need to call RenderObject::styledGeneratingNode() because
129343        pseudo elements does not have a Node associated with the
129344        RenderObject.
129345
129346        Initial patch by Simon Fraser
129347
129348        Reviewed by Simon Fraser.
129349
129350        Tests: animations/first-letter-animation.html
129351               animations/first-letter-play-state.html
129352               transitions/first-letter-color-transition.html
129353               transitions/first-letter-transition.html
129354
129355        * page/animation/AnimationBase.cpp:
129356        (WebCore::AnimationBase::updateStateMachine):
129357        * page/animation/AnimationController.cpp:
129358        (WebCore::AnimationControllerPrivate::updateAnimations):
129359        (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
129360        (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
129361        (WebCore::AnimationController::cancelAnimations):
129362        (WebCore::AnimationController::updateAnimations):
129363        * page/animation/ImplicitAnimation.cpp:
129364        (WebCore::ImplicitAnimation::pauseAnimation):
129365        (WebCore::ImplicitAnimation::sendTransitionEvent):
129366        * page/animation/KeyframeAnimation.cpp:
129367        (WebCore::KeyframeAnimation::KeyframeAnimation):
129368        (WebCore::KeyframeAnimation::pauseAnimation):
129369        (WebCore::KeyframeAnimation::endAnimation):
129370        (WebCore::KeyframeAnimation::sendAnimationEvent):
129371        * rendering/RenderBlock.cpp:
129372        (WebCore::RenderBlock::updateFirstLetterStyle):
129373        (WebCore::RenderBlock::createFirstLetterRenderer):
129374        * rendering/RenderInline.cpp:
129375        (WebCore::RenderInline::clippedOverflowRectForRepaint):
129376        * rendering/RenderObject.cpp:
129377        (WebCore::RenderObject::setAnimatableStyle):
129378        (WebCore::RenderObject::styledGeneratingNode):
129379        (WebCore):
129380        * rendering/RenderObject.h:
129381        (RenderObject):
129382
1293832012-06-12  Kent Tamura  <tkent@chromium.org>
129384
129385        Checking a radio button doesn't uncheck other buttons in the same group in some cases.
129386        https://bugs.webkit.org/show_bug.cgi?id=88835
129387
129388        Reviewed by Ryosuke Niwa.
129389
129390        This change fixes a bug that checking a radio button in a radio button
129391        group in a form detached from a document tree doesn't uncheck another
129392        checked radio button in the radio button group.
129393
129394        A radio button participates in a radio button group in the following
129395        conditions:
129396        - If it is owned by a form element regardless of the form is in a
129397        document tree or not, or
129398
129399        - If it is not owned by any form elements and it is in a document tree.
129400        A radio button group for the radio button is owned by the document.
129401
129402        For HTMLInputElement::removedFrom():
129403        The old code always unregistered the radio button if it was removed from
129404        the document tree. It was incorrect because we don't need to unregister
129405        it if it has an owner form and the owner form is not changed by
129406        removedFrom().
129407        If the owner form is cleared by removedFrom(), willChangeForm()
129408        unregisters the radio button. So what we should do in removedFrom() is
129409        to unregister the radio button only if the radio button group is owned
129410        by the document.
129411
129412        For HTMLInputElement::insertedInto():
129413        The old code always registered the radio button if it is inserted into
129414        the document tree. It was incorrect because we don't need to register it
129415        if it has an owner form and the owner form is not changed by
129416        insertedInto().
129417        If the owner form is changed by insertedInto(), didChangeForm()
129418        registers the radio button. So We should register the radio button only
129419        if its radio button group will be owned by the document.
129420
129421        Test: Add test cases to fast/forms/radio/radio-group.html
129422
129423        * html/HTMLInputElement.cpp:
129424        (WebCore::HTMLInputElement::insertedInto):
129425        Register this to CheckedRadioButtons only if new group owner is Document.
129426        (WebCore::HTMLInputElement::removedFrom):
129427        Unregister this from CheckedRadioButtons only if old group owner was Document.
129428
1294292012-06-12  James Robinson  <jamesr@chromium.org>
129430
129431        [chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
129432        https://bugs.webkit.org/show_bug.cgi?id=88910
129433
129434        Reviewed by Adrienne Walker.
129435
129436        Unregister the bridge as its TextureLayerChromium client when going away.
129437
129438        Covered by new unit test in Canvas2DLayerBridgeTest.cpp.
129439
129440        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
129441        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
129442
1294432012-06-12  Alec Flett  <alecflett@chromium.org>
129444
129445        IndexedDB: Error codes, phase two
129446        https://bugs.webkit.org/show_bug.cgi?id=88690
129447
129448        Reviewed by Tony Chang.
129449
129450        Update the next phase of IndexedDB error codes to match the spec.
129451        This update is mostly focused on DATA_ERR vs CONSTRAINT_ERR.
129452
129453        Also moves some of the error checking for the transaction mode
129454        into the frontend and replaces the backend checks with asserts, so that
129455        we can consolidate error checking in one place.
129456
129457        This also removes a few FIXME's that are no longer true (about 
129458        I/O errors - the spec was updated and our implementation was
129459        already correct)
129460
129461        No new tests, existing tests cover changed behavior.
129462
129463        * Modules/indexeddb/IDBCursor.cpp:
129464        (WebCore::IDBCursor::deleteFunction):
129465        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
129466        (WebCore::IDBCursorBackendImpl::deleteFunction):
129467        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
129468        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
129469        * Modules/indexeddb/IDBObjectStore.cpp:
129470        (WebCore::IDBObjectStore::add):
129471        (WebCore::IDBObjectStore::put):
129472        (WebCore::IDBObjectStore::deleteFunction):
129473        (WebCore::IDBObjectStore::clear):
129474        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
129475        (WebCore::IDBObjectStoreBackendImpl::put):
129476        (WebCore::IDBObjectStoreBackendImpl::putInternal):
129477        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
129478        (WebCore::IDBObjectStoreBackendImpl::clear):
129479        * Modules/indexeddb/IDBTransaction.h:
129480        (WebCore::IDBTransaction::enumMode):
129481        * Modules/indexeddb/IDBTransactionBackendImpl.h:
129482
1294832012-06-12  Min Qin  <qinmin@google.com>
129484
129485        Disable autoplay when user gesture is required for media playback
129486        https://bugs.webkit.org/show_bug.cgi?id=88897
129487
129488        Reviewed by Adam Barth.
129489
129490        When user gesture is required for media playback, we should block autoplay.
129491        Otherwise, people will use autoplay instead of video.play() to bypass the gesture requirement.
129492        Test: media/no-autoplay-with-user-gesture-requirement.html
129493
129494        * html/HTMLMediaElement.cpp:
129495        (WebCore::HTMLMediaElement::setReadyState):
129496
1294972012-06-12  Shrey Banga  <banga@chromium.org>
129498
129499        HTML parser should yield more to improve perceived page load time
129500        https://bugs.webkit.org/show_bug.cgi?id=86165
129501
129502        Reviewed by Tony Gentilcore.
129503
129504        Test: fast/events/event-yield-timing.html
129505
129506        We want the parser to yield at least every 500ms to keep the page somewhat responsive and allow painting.
129507        Since it would be too expensive to check the time after each token, the previous heuristic was to check every 4,096 tokens.
129508        That works fine for most tokens, but a script may spend an arbitrary amount of time executing.
129509
129510        This patch fixes the issue by causing the parser to check the elapsed time immediately after executing a script.
129511
129512        * html/parser/HTMLParserScheduler.cpp:
129513        (WebCore::HTMLParserScheduler::checkForYieldBeforeScript):
129514        * html/parser/HTMLParserScheduler.h:
129515        (WebCore::PumpSession::PumpSession):
129516        (PumpSession):
129517        (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
129518
1295192012-06-12  Sami Kyostila  <skyostil@chromium.org>
129520
129521        [chromium] Don't crash in CCLayerIterator if the root layer doesn't have a render surface
129522        https://bugs.webkit.org/show_bug.cgi?id=88886
129523
129524        Reviewed by James Robinson.
129525
129526        If we are iterating over a render render surface layer list where the
129527        root layer does not have a render surface, fail gracefully instead of
129528        crashing.
129529
129530        Tests: CCLayerIteratorTest.{emptyTree,rootLayerWithoutRenderSurface}
129531
129532        * platform/graphics/chromium/cc/CCLayerIterator.h:
129533        (WebCore::CCLayerIterator::CCLayerIterator):
129534
1295352012-06-06  Ojan Vafai  <ojan@chromium.org>
129536
129537        Change default for flex-grow back to 0
129538        https://bugs.webkit.org/show_bug.cgi?id=88443
129539
129540        Reviewed by Tony Chang.
129541
129542        * rendering/style/RenderStyle.h:
129543
1295442012-06-12  Brady Eidson  <beidson@apple.com>
129545
129546        <rdar://problem/11593686> and https://bugs.webkit.org/show_bug.cgi?id=88683
129547        Garbage collection of an <img> element can cause reentrant event dispatch.
129548
129549        Reviewed by Darin Adler.
129550
129551        The most straightforward solution is for ImageLoader to keep its Element alive
129552        with ref/deref any time the Image is actually loading.
129553
129554        ImageLoader should always do this for all Elements, and if those Elements want/need
129555        different behavior for when they are detached then they need to manually stop their
129556        loads.
129557
129558        Tests: http/tests/loading/embed-image-load-outlives-gc-without-crashing.html
129559               http/tests/loading/image-input-type-outlives-gc-without-crashing.html
129560               http/tests/loading/image-load-outlives-gc-without-crashing.html
129561               http/tests/loading/object-image-load-outlives-gc-without-crashing.html
129562               http/tests/loading/svg-image-load-outlives-gc-without-crashing.html
129563               http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html
129564
129565        * loader/ImageLoader.cpp:
129566        (WebCore::ImageLoader::ImageLoader):
129567        (WebCore::ImageLoader::~ImageLoader):
129568        (WebCore::ImageLoader::setImage):
129569        (WebCore::ImageLoader::updateFromElement):
129570        (WebCore::ImageLoader::notifyFinished):
129571        (WebCore::ImageLoader::updatedHasPendingLoadEvent):
129572        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
129573        (WebCore::ImageLoader::dispatchPendingLoadEvent):
129574        * loader/ImageLoader.h:
129575        (ImageLoader):
129576
1295772012-06-12  Shawn Singh  <shawnsingh@chromium.org>
129578
129579        [chromium] Make damage tracking more robust to early exits
129580        https://bugs.webkit.org/show_bug.cgi?id=84803
129581
129582        Reviewed by James Robinson.
129583
129584        All CCDamageTrackerTest unit tests updated;
129585        One new unit test added:
129586           CCDamageTrackerTest.verifyDamageAccumulatesUntilReset
129587
129588        Damage tracking inherently needs to be aware of all changes that
129589        occur for every frame. Before this patch, anyone modifying details
129590        of CCLayerTreeHostImpl and the drawing phases of the compositor
129591        needed to be careful to avoid early exiting once draw is
129592        initiated, otherwise running the risk of damage tracking's state
129593        getting out-of-sync from actual changes. This patch makes the
129594        damage tracker API more asynchronous-like, so that damage will
129595        continue to accumulate until it is explicitly notified that
129596        damaged areas have been drawn. This will allow more freedom in
129597        designing and restructuing drawing code in the compositor, without
129598        worrying as much about damage tracking getting out-of-sync.
129599
129600        * platform/graphics/chromium/cc/CCDamageTracker.h:
129601        (WebCore::CCDamageTracker::didDrawDamagedArea):
129602        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
129603        (WebCore::CCLayerTreeHostImpl::drawLayers):
129604        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
129605        (CCLayerTreeHostImpl):
129606
1296072012-06-12  Mike West  <mkwst@chromium.org>
129608
129609        Make document.documentURI readonly from JavaScript
129610        https://bugs.webkit.org/show_bug.cgi?id=65187
129611
129612        Reviewed by Alexey Proskuryakov.
129613
129614        The DOM4 working draft marks the documentURI attribute as read only
129615        (http://www.w3.org/TR/dom/#document). Firefox has shipped with this
129616        behavior since https://hg.mozilla.org/mozilla-central/rev/3bc751906409
129617        landed in October 2011, IE9 doesn't support the property, and
129618        Opera throws a NO_MODIFICATION_ALLOWED_ERR. This patch changes WebKit
129619        to silently fail (matching Firefox's behavior) by setting the property
129620        to readonly in the IDL.
129621
129622        Document::setDocumentURI and the m_documentURI property are retained
129623        for compatibility with ObjC clients, and the readonly attribute is
129624        ifdeffed out for ObjC.
129625
129626        This patch adds a single test to verify the behavior, and removes a
129627        variety of tests that depended on the writable behavior. In particular,
129628        potential security issues involving the document.baseURL property are
129629        avoided completely as long as this property can't be changed.
129630
129631        Test: fast/dom/documenturi-readonly.html
129632
129633        * dom/Document.cpp:
129634        (WebCore::Document::setDocumentURI):
129635            Adds a comment explaining that the fallback is necessary only to
129636            support ObjC, not for JS calls.
129637        * dom/Document.cpp:
129638        (WebCore::Document::updateBaseURL):
129639            Ditto.
129640        (Document):
129641        * dom/Document.idl:
129642            Add readonly to the attribute and drop null value when not in
129643            LANGUAGE_OBJECTIVE_C.
129644
1296452012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
129646
129647        Support !ENABLE(VIDEO) builds with horizontally layed out video controls.
129648        https://bugs.webkit.org/show_bug.cgi?id=88881
129649
129650        Reviewed by Csaba Osztrogonác.
129651
129652        No new tests as this is a regression from WK87835.
129653
129654        * html/shadow/SliderThumbElement.cpp:
129655        (WebCore::hasVerticalAppearance):
129656        Ifdef out video related functionality, since usesVerticalVolumeSlider
129657        does not exist in that case.
129658
1296592012-06-12  Pavel Feldman  <pfeldman@chromium.org>
129660
129661        Web Inspector: show revisions of all modified files in local modifications view
129662        https://bugs.webkit.org/show_bug.cgi?id=88864
129663
129664        Reviewed by Vsevolod Vlasov.
129665
129666        This change allows all local modifications to be seen in a single view. View is now
129667        singleton, listening to all revisions being added. Revert captions were reworked
129668        (see the screenshot).
129669
129670        * English.lproj/localizedStrings.js:
129671        * inspector/front-end/Resource.js:
129672        * inspector/front-end/RevisionHistoryView.js:
129673        (WebInspector.RevisionHistoryView.populateRevisions):
129674        (WebInspector.RevisionHistoryView):
129675        (WebInspector.RevisionHistoryView.showHistory):
129676        (WebInspector.RevisionHistoryView.reset):
129677        (WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
129678        (WebInspector.RevisionHistoryView.prototype._createResourceItem):
129679        (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
129680        (WebInspector.RevisionHistoryView.prototype._revisionAdded):
129681        (WebInspector.RevisionHistoryView.prototype._revealResource.get if):
129682        (WebInspector.RevisionHistoryView.prototype._revealResource):
129683        (WebInspector.RevisionHistoryView.prototype._reset):
129684        (WebInspector.RevisionHistoryTreeElement):
129685        (WebInspector.RevisionHistoryTreeElement.prototype.onattach):
129686        (WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
129687        * inspector/front-end/ScriptsPanel.js:
129688        (WebInspector.ScriptsPanel.prototype._reset):
129689        (WebInspector.ScriptsPanel.prototype._editorSelected):
129690        * inspector/front-end/revisionHistory.css:
129691        (.revision-history-link-row):
129692        (.revision-history-drawer li.revision-history-revision):
129693
1296942012-06-12  Pavel Feldman  <pfeldman@chromium.org>
129695
129696        Web Inspector: allow clearing revision history.
129697        https://bugs.webkit.org/show_bug.cgi?id=88847
129698
129699        Reviewed by Vsevolod Vlasov.
129700
129701        This change also renames "Revision history" to "Local modifications".
129702        I intend to list modifications to all files in that view in the subsequent change.
129703
129704        * English.lproj/localizedStrings.js:
129705        * inspector/front-end/Resource.js:
129706        (WebInspector.Resource._clearResourceHistory):
129707        * inspector/front-end/RevisionHistoryView.js:
129708        (WebInspector.RevisionHistoryView.else.clearHistory):
129709        (WebInspector.RevisionHistoryView):
129710        (WebInspector.RevisionHistoryView.prototype._revisionAdded):
129711        (WebInspector.RevisionHistoryTreeElement):
129712        (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
129713        (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert):
129714        * inspector/front-end/ScriptsPanel.js:
129715        (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
129716
1297172012-06-12  Pavel Feldman  <pfeldman@chromium.org>
129718
129719        Web Inspector: use jsdifflib for revision diff calculation.
129720        https://bugs.webkit.org/show_bug.cgi?id=88791
129721
129722        Reviewed by Vsevolod Vlasov.
129723
129724        Present diff calculation is incomplete, it does not properly handle the following case:
129725            [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
129726        We should not be implementing diff by ourselves. I imported jsdifflib from
129727        https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
129728
129729        * WebCore.gypi:
129730        * WebCore.vcproj/WebCore.vcproj:
129731        * inspector/front-end/RevisionHistoryView.js:
129732        (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
129733        (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
129734        (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
129735        (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
129736        * inspector/front-end/WebKit.qrc:
129737        * inspector/front-end/externs.js:
129738        (difflib.stringAsLines):
129739        (difflib.SequenceMatcher):
129740        (difflib.SequenceMatcher.prototype.get_opcodes):
129741        * inspector/front-end/inspector.html:
129742        * inspector/front-end/jsdifflib.js: Added.
129743        (difflib.defaultJunkFunction):
129744        (difflib.stripLinebreaks):
129745        (difflib.stringAsLines):
129746        (difflib.__reduce):
129747        (difflib.__ntuplecomp):
129748        (difflib.__calculate_ratio):
129749        (difflib.__dictget):
129750        (difflib.SequenceMatcher.this.set_seqs):
129751        (difflib.SequenceMatcher.this.set_seq1):
129752        (difflib.SequenceMatcher.this.set_seq2):
129753        (difflib.SequenceMatcher.this.__chain_b):
129754        (difflib.SequenceMatcher.this.find_longest_match):
129755        (difflib.SequenceMatcher.this.get_matching_blocks):
129756        (difflib.SequenceMatcher.this.get_opcodes):
129757        (difflib.SequenceMatcher.this.get_grouped_opcodes):
129758        (difflib.SequenceMatcher.this.quick_ratio):
129759        (difflib.SequenceMatcher.this.real_quick_ratio):
129760        * inspector/front-end/revisionHistory.css:
129761        (.revision-history-line-separator .webkit-line-number):
129762
1297632012-06-12  Pavel Feldman  <pfeldman@chromium.org>
129764
129765        Web Inspector: use jsdifflib for revision diff calculation.
129766        https://bugs.webkit.org/show_bug.cgi?id=88791
129767
129768        Reviewed by Vsevolod Vlasov.
129769
129770        Present diff calculation is incomplete, it does not properly handle the following case:
129771            [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
129772        We should not be implementing diff by ourselves. I imported jsdifflib from
129773        https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
129774
129775        * WebCore.gypi:
129776        * WebCore.vcproj/WebCore.vcproj:
129777        * inspector/front-end/RevisionHistoryView.js:
129778        (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
129779        (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
129780        (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
129781        (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
129782        * inspector/front-end/WebKit.qrc:
129783        * inspector/front-end/externs.js:
129784        (difflib.stringAsLines):
129785        (difflib.SequenceMatcher):
129786        (difflib.SequenceMatcher.prototype.get_opcodes):
129787        * inspector/front-end/inspector.html:
129788        * inspector/front-end/jsdifflib.js: Added.
129789        (difflib.defaultJunkFunction):
129790        (difflib.stripLinebreaks):
129791        (difflib.stringAsLines):
129792        (difflib.__reduce):
129793        (difflib.__ntuplecomp):
129794        (difflib.__calculate_ratio):
129795        (difflib.__dictget):
129796        (difflib.SequenceMatcher.this.set_seqs):
129797        (difflib.SequenceMatcher.this.set_seq1):
129798        (difflib.SequenceMatcher.this.set_seq2):
129799        (difflib.SequenceMatcher.this.__chain_b):
129800        (difflib.SequenceMatcher.this.find_longest_match):
129801        (difflib.SequenceMatcher.this.get_matching_blocks):
129802        (difflib.SequenceMatcher.this.get_opcodes):
129803        (difflib.SequenceMatcher.this.get_grouped_opcodes):
129804        (difflib.SequenceMatcher.this.quick_ratio):
129805        (difflib.SequenceMatcher.this.real_quick_ratio):
129806        * inspector/front-end/revisionHistory.css:
129807        (.revision-history-line-separator .webkit-line-number):
129808
1298092012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
129810
129811        [GStreamer] http/tests/media/video-buffered-range-contains-currentTime.html is failing
129812        https://bugs.webkit.org/show_bug.cgi?id=87575
129813
129814        Reviewed by Philippe Normand.
129815
129816        When EOS is reached in forward playback, the position does not necessarily
129817        match the duration. This confuses HTMLMediaElement and causes the "ended"
129818        event not to be fired. To avoid this, we synchronize position and duration
129819        values in this case.
129820
129821        Test: http/tests/media/video-buffered-range-contains-currentTime.html
129822
129823        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
129824
1298252012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
129826
129827        Refactor InputType::receiveDroppedFiles to take DragData
129828        https://bugs.webkit.org/show_bug.cgi?id=88860
129829
129830        Reviewed by Kent Tamura.
129831
129832        So that we can centralize the file paths related code into FileInputType
129833        and makes it easier to extract more data from DragData for
129834        <input type=file> (like bug 88293 for directory drag-and-drop).
129835
129836        No new tests as this has no behavioral changes.
129837
129838        * html/FileInputType.cpp:
129839        (WebCore::FileInputType::receiveDroppedFiles):
129840        * html/FileInputType.h:
129841        * html/HTMLInputElement.cpp:
129842        (WebCore::HTMLInputElement::receiveDroppedFiles):
129843        * html/HTMLInputElement.h:
129844        * html/InputType.cpp:
129845        (WebCore::InputType::receiveDroppedFiles):
129846        * html/InputType.h:
129847        * page/DragController.cpp:
129848        (WebCore::DragController::concludeEditDrag):
129849
1298502012-06-12  Thiago Marcos P. Santos  <thiago.santos@intel.com>
129851
129852        Generate -webkit-box-decoration-break property only when the feature is enabled
129853        https://bugs.webkit.org/show_bug.cgi?id=88861
129854
129855        Reviewed by Alexis Menard.
129856
129857        Otherwise it will hit an assertion if the property is present on the
129858        style but the feature disabled. Also fixes a compilation warning when
129859        the feature is disabled.
129860
129861        * css/CSSPropertyNames.in:
129862        * css/StyleResolver.cpp:
129863        (WebCore::StyleResolver::collectMatchingRulesForList):
129864
1298652012-06-12  Darin Adler  <darin@apple.com>
129866
129867        Tweaked the Mac export file a bit more, adding more-correct iOS cases.
129868
129869        Reviewed by David Kilzer.
129870
129871        * WebCore.exp.in: Rearrangement.
129872
1298732012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
129874
129875        Using extrernal ICU library on case unsensitive drives will not work
129876        https://bugs.webkit.org/show_bug.cgi?id=70913
129877
129878        Reviewed by Csaba Osztrogonác.
129879
129880        * platform/graphics/surfaces/GraphicsSurface.h:
129881
1298822012-06-11  Dana Jansens  <danakj@chromium.org>
129883
129884        [chromium] Use TextureDrawQuad for video layer output when it produces a single GL texture
129885        https://bugs.webkit.org/show_bug.cgi?id=88814
129886
129887        Reviewed by Adrienne Walker.
129888
129889        When a CCVideLayerImpl produces quads for a frame that is contained
129890        in a single GL texture, then use the TextureDrawQuad instead of the
129891        VideoDrawQuad. Moves the computation for the RGBA(software) and
129892        NativeTexture (hardware) cases from LayerRendererChromium into
129893        CCVideoLayerImpl, so it can embed these values in the TextureDrawQuad.
129894
129895        No new tests, behaviour should be the same.
129896
129897        * platform/graphics/chromium/LayerRendererChromium.cpp:
129898        (WebCore::LayerRendererChromium::drawStreamTexture):
129899        (WebCore::LayerRendererChromium::drawVideoQuad):
129900        * platform/graphics/chromium/LayerRendererChromium.h:
129901        (LayerRendererChromium):
129902        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
129903        (WebCore::CCVideoLayerImpl::appendQuads):
129904
1299052012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
129906
129907        Change the volume slider to horizontal rendering for Chrome video controls.
129908        https://bugs.webkit.org/show_bug.cgi?id=87835
129909
129910        Reviewed by Eric Carlson.
129911
129912        No new tests - final patch in the Chrome controls update series will contain rebaselined tests.
129913
129914        The Chrome video controls are receiving a visual update. The volume slider is moved into
129915        the controls with horizontal rendering, the volume slider container is removed. The visual
129916        update itself is in a separate patch.
129917
129918        * css/mediaControlsChromium.css:
129919        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
129920        Removed relative positioning to render all controls elements equally in DOM order.
129921        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
129922        Removed absolute positioning to render all controls elements equally in DOM order.
129923        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
129924        Removed absolute positioning to render all controls elements equally in DOM order.
129925        (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
129926        Removed volume slider container - it's not necessary any more.
129927        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
129928        Remove flexbox and introduce inline display to always display this field.
129929        (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
129930        Removed absolute positioning to render all controls elements equally in DOM order.
129931        * html/shadow/MediaControlRootElementChromium.cpp:
129932        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
129933        Removed volume slider container - it's not necessary any more.
129934        (WebCore::MediaControlRootElementChromium::create):
129935        Appended the volume slider and the mute button directly to the panel, removed volume slider container.
129936        (WebCore::MediaControlRootElementChromium::setMediaController):
129937        Removed volume slider container.
129938        (WebCore::MediaControlRootElementChromium::reportedError):
129939        Removed volume slider container.
129940        (WebCore::MediaControlRootElementChromium::showVolumeSlider):
129941        Removed volume slider container.
129942        * html/shadow/MediaControlRootElementChromium.h:
129943        (WebCore):
129944        (MediaControlRootElementChromium):
129945        Removed volume slider container.
129946        * html/shadow/SliderThumbElement.cpp:
129947        (WebCore::hasVerticalAppearance):
129948        Allow use of horizontal media volume slider.
129949        (WebCore::RenderSliderThumb::layout):
129950        Reuse hasVerticalAppearance function.
129951        * rendering/RenderMediaControlsChromium.cpp:
129952        (WebCore::RenderMediaControlsChromium::paintMediaVolumeSlider):
129953        Change line drawing from vertical to horizontal.
129954        * rendering/RenderTheme.h:
129955        (WebCore::RenderTheme::usesVerticalVolumeSlider):
129956        Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
129957        * rendering/RenderThemeChromiumMac.h:
129958        (WebCore::RenderThemeChromiumMac::usesVerticalVolumeSlider):
129959        Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
129960        Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
129961        * rendering/RenderThemeChromiumSkia.h:
129962        (WebCore::RenderThemeChromiumSkia::usesVerticalVolumeSlider):
129963        Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
129964
1299652012-06-12  Andrei Bucur  <abucur@adobe.com>
129966
129967        [CSSRegions]NamedFlow::overset should return true when there's no region chain attached
129968        https://bugs.webkit.org/show_bug.cgi?id=88515
129969
129970        The CSS Regions specifies that the "overset" attribute needs to return true if the content overflows, there's no region attached to the flow
129971        or if the NamedFlow is in the NULL state:
129972        http://www.w3.org/TR/css3-regions/#dom-named-flow-overset
129973
129974        This patch updates WebKit's behavior in the last two situations to match the one in the spec.
129975
129976        Reviewed by Andreas Kling.
129977
129978        Test: fast/regions/webkit-named-flow-overset.html was updated
129979
129980        * rendering/RenderFlowThread.cpp:
129981        (WebCore::RenderFlowThread::RenderFlowThread):
129982        (WebCore::RenderFlowThread::computeOverflowStateForRegions): If the last valid region is null, the flow has not region chain attached or it's in the NULL state.
129983
1299842012-06-12  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
129985
129986        Web Inspector: Provide context menu for deleting recorded profile on Profiles Panel
129987        https://bugs.webkit.org/show_bug.cgi?id=88286
129988
129989        Added the context menu to delete the selected profile.
129990
129991        Reviewed by Pavel Feldman.
129992
129993        No new tests required as UI related change
129994
129995        * English.lproj/localizedStrings.js: Removed property svn:mime-type.
129996        * inspector/front-end/ProfilesPanel.js:
129997        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
129998
1299992012-06-12  Pavel Feldman  <pfeldman@chromium.org>
130000
130001        Not reviewed: removed svn:mime-type property from English.lproj/localizedStrings.js
130002
130003        * English.lproj/localizedStrings.js
130004
1300052012-06-12  Dan Bernstein  <mitz@apple.com>
130006
130007        Tried to fix the notification-enabled build after r120044.
130008
130009        * notifications/NotificationController.cpp:
130010        (WebCore::NotificationController::NotificationController):
130011        (WebCore::NotificationController::create):
130012        (WebCore::provideNotification):
130013        * notifications/NotificationController.h:
130014        (NotificationController):
130015
1300162012-06-12  Huang Dongsung  <luxtella@company100.net>
130017
130018        [Qt][Texmap] Falling leaves demo missing clipping.
130019        https://bugs.webkit.org/show_bug.cgi?id=88704
130020
130021        The bug originated from begining native painting mode of QPainter after enabling
130022        scissor test, because begining native painting mode disables scissor test.
130023
130024        Covered by existing compositing tests.
130025
130026        Reviewed by Noam Rosenthal.
130027
130028        * platform/graphics/texmap/TextureMapperGL.cpp:
130029        (WebCore::TextureMapperGL::beginPainting):
130030
1300312012-06-12  Csaba Osztrogonác  <ossy@webkit.org>
130032
130033        [Qt][Win] Buildfix related to fromWinHBITMAP
130034        https://bugs.webkit.org/show_bug.cgi?id=88863
130035
130036        Reviewed by Jocelyn Turcotte.
130037
130038        * platform/graphics/qt/GraphicsContextQt.cpp: Add qt_pixmapFromWinHBITMAP and HBitmapFormat enum.
130039        (WebCore):
130040        (WebCore::GraphicsContext::releaseWindowsContext):
130041        * platform/graphics/qt/ImageQt.cpp:
130042        (WebCore): Move qt_pixmapFromWinHBITMAP to outside of WebCore namespace. (Fix after r119924.)
130043
1300442012-06-12  Takashi Sakamoto  <tasak@google.com>
130045
130046        [Shadow DOM] <style> inside Shadow subtree should be scoped inside the subtree.
130047        https://bugs.webkit.org/show_bug.cgi?id=87805
130048
130049        Modified HTMLStyleElement to be treated as a scoped style independent
130050        of its "scoped" attribute's value if HTMLStyleElement is in shadow
130051        subtree. HTMLStyleElement has the following four cases talking about
130052        "scoped" attribute and whether is in shadow subtree or not:
130053        1, HTMLStyleElement is "scoped" and is in document tree,
130054        2, HTMLStyleElement is "scoped" and is in shadow subtree,
130055        3, HTMLStyleElement is not "scoped" and is in document tree, and
130056        4, HTMLStyleElement is not "scoped" and is in shadow subtree.
130057        The case 1 and 2 are not changed. This patch affected the case 4.
130058        At the case 4, the HTMLStyleElement's scoping node is the shadow root.
130059        This change is the first step for fixing style scope bug,
130060        i.e. HTMLStyleElements in shadow subtree are applied to any element
130061        in document tree.
130062
130063        Reviewed by Dimitri Glazkov.
130064
130065        Test: fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html
130066
130067        * css/StyleResolver.cpp:
130068        (WebCore::StyleResolver::determineScope):
130069        Modified to return a shadow root if a targeted stylesheet owner node is
130070        not scoped but in some shadow DOM subtree.
130071        * html/HTMLStyleElement.cpp:
130072        (WebCore::HTMLStyleElement::HTMLStyleElement):
130073        (WebCore::HTMLStyleElement::parseAttribute):
130074        Modified to use the below scopedAttributeChanged when a changed
130075        attribute's name is "scoped".
130076        (WebCore::HTMLStyleElement::scopedAttributeChanged):
130077        Newly added. According to new scoped value and isInShadowTree,
130078        add or remove style rules to/from scopedAuthorRules via
130079        registerWithScopingNode or unregisterWithScopingNode.
130080        (WebCore::HTMLStyleElement::registerWithScopingNode):
130081        Added one boolean argument to determine whether HTMLStyleElement is
130082        scoped or not. The reason why not using scoped() is the comment:
130083        "We cannot rely on the scoped element already being present when this
130084        method is invoked. Therefore we cannot rely on scoped()"
130085        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
130086        Changed the code for updating m_isRegisteredWithScopingNode. Now
130087        set m_scopedStyleRegistrationState to be NotRegistered.
130088        (WebCore::HTMLStyleElement::insertedInto):
130089        Modified to invoke registerWithScopingNode when an element is not
130090        scoped but in some shadow subtree.
130091        (WebCore::HTMLStyleElement::removedFrom):
130092        Modified to invoke unregisterWithScopingNode when an element is not
130093        scoped but in some shadow subtree.
130094        * html/HTMLStyleElement.h:
130095        (HTMLStyleElement):
130096        Modified the type of m_isRegisteredWithScopingNode from bool to
130097        enum and renamed to m_scopedStyleRegistrationState. Now the member
130098        variable keeps what HTMLStyleElement's scoping node is, i.e.
130099        none (this means, not in shadow subtree and not scoped), shadow root or
130100        parent node.
130101        Added one new method scopedAttributeChanged's declaration and
130102        modified the declaration of registerWithScopingNode.
130103
1301042012-06-12  Amy Ousterhout  <aousterh@chromium.org>
130105
130106        Removing unused parameter Page
130107        https://bugs.webkit.org/show_bug.cgi?id=88848
130108
130109        Reviewed by Kentaro Hara.
130110
130111        Removed the unused parameter Page* supplied to the create function
130112        and constructor in DeviceOrientationController.
130113
130114        The parameter Page* was previously stored in an instance variable
130115        m_page, but this was removed (see https://bugs.webkit.org/show_bug.cgi?id=88812).
130116
130117        No new tests because the removed parameter was unused and untested.
130118
130119        * dom/DeviceOrientationController.cpp:
130120        (WebCore::DeviceOrientationController::DeviceOrientationController):
130121        (WebCore::DeviceOrientationController::create):
130122        (WebCore::provideDeviceOrientationTo):
130123        * dom/DeviceOrientationController.h:
130124        (DeviceOrientationController):
130125
1301262012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
130127
130128        Unreviewed, rolling out r120051.
130129        http://trac.webkit.org/changeset/120051
130130        https://bugs.webkit.org/show_bug.cgi?id=88852
130131
130132        some tests are crashing (Requested by morrita on #webkit).
130133
130134        * CMakeLists.txt:
130135        * GNUmakefile.list.am:
130136        * Target.pri:
130137        * WebCore.gypi:
130138        * WebCore.vcproj/WebCore.vcproj:
130139        * WebCore.xcodeproj/project.pbxproj:
130140        * bindings/generic/ContextEnabledFeatures.cpp: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp.
130141        (WebCore):
130142        (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
130143        (WebCore::ContextEnabledFeatures::styleScopedEnabled):
130144        (WebCore::ContextEnabledFeatures::pagePopupEnabled):
130145        * bindings/generic/ContextEnabledFeatures.h: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.h.
130146        (WebCore):
130147        (ContextEnabledFeatures):
130148        * bindings/scripts/CodeGeneratorV8.pm:
130149        (GenerateImplementation):
130150        * css/StyleResolver.cpp:
130151        (WebCore::StyleResolver::determineScope):
130152        * dom/ContextFeatures.cpp: Removed.
130153        * dom/ContextFeatures.h: Removed.
130154        * dom/DOMAllInOne.cpp:
130155        * dom/DOMImplementation.cpp:
130156        (WebCore::DOMImplementation::createDocument):
130157        (WebCore::DOMImplementation::createHTMLDocument):
130158        * dom/Document.cpp:
130159        (WebCore::Document::Document):
130160        * dom/Document.h:
130161        (WebCore):
130162        (Document):
130163        * dom/Position.cpp:
130164        (WebCore::Position::Position):
130165        (WebCore::Position::findParent):
130166        * dom/TreeScope.cpp:
130167        (WebCore::TreeScope::getSelection):
130168        * dom/make_names.pl:
130169        (printConstructorInterior):
130170        (printFactoryCppFile):
130171        (printWrapperFunctions):
130172        (printWrapperFactoryCppFile):
130173        * editing/markup.cpp:
130174        (WebCore::createFragmentFromMarkupWithContext):
130175        * html/HTMLStyleElement.cpp:
130176        (WebCore::HTMLStyleElement::registerWithScopingNode):
130177        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
130178        * html/shadow/HTMLContentElement.cpp:
130179        (WebCore::contentTagName):
130180        * inspector/DOMPatchSupport.cpp:
130181        (WebCore::DOMPatchSupport::patchDocument):
130182        * loader/FrameLoaderClient.h:
130183        (WebCore::FrameLoaderClient::allowShadowDOM):
130184        (WebCore::FrameLoaderClient::allowStyleScoped):
130185        (FrameLoaderClient):
130186        (WebCore::FrameLoaderClient::allowPagePopup):
130187        * platform/RefCountedSupplement.h: Removed.
130188        * platform/Supplementable.h:
130189        * xml/XMLHttpRequest.cpp:
130190        (WebCore::XMLHttpRequest::responseXML):
130191
1301922012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
130193
130194        [DRT] LTC:: counterValueForElementById() could be moved to Internals.
130195        https://bugs.webkit.org/show_bug.cgi?id=84406
130196
130197        Reviewed by Hajime Morita.
130198
130199        Move the counterValueForElementById from LayoutTestCotroller to Internals and
130200        remove the old platform specific implementations as it exclusively tests WebCore functionality.
130201
130202        Covered by existing test cases.
130203
130204        * testing/Internals.cpp:
130205        (WebCore::Internals::counterValue):
130206        (WebCore):
130207        * testing/Internals.h:
130208        (Internals):
130209        * testing/Internals.idl:
130210
1302112012-06-11  Hans Wennborg  <hans@chromium.org>
130212
130213        Speech JavaScript API: Make SpeechRecognitionError an Event
130214        https://bugs.webkit.org/show_bug.cgi?id=88784
130215
130216        Reviewed by Adam Barth.
130217
130218        Make SpeechRecognitionError an Event. The spec was updated to make it
130219        an event in its own right, rather than an attribute of
130220        SpeechRecognitionEvent.
130221
130222        Test: fast/speech/scripted/speechrecognition-errors.html
130223
130224        * Modules/speech/SpeechRecognition.cpp:
130225        (WebCore::SpeechRecognition::didReceiveError):
130226        * Modules/speech/SpeechRecognitionError.cpp:
130227        (WebCore::SpeechRecognitionError::SpeechRecognitionError):
130228        (WebCore::SpeechRecognitionError::interfaceName):
130229        (WebCore):
130230        * Modules/speech/SpeechRecognitionError.h:
130231        (WebCore::SpeechRecognitionError::create):
130232        (SpeechRecognitionError):
130233        * Modules/speech/SpeechRecognitionError.idl:
130234        * Modules/speech/SpeechRecognitionEvent.cpp:
130235        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
130236        * Modules/speech/SpeechRecognitionEvent.h:
130237        (SpeechRecognitionEventInit):
130238        (SpeechRecognitionEvent):
130239        * Modules/speech/SpeechRecognitionEvent.idl:
130240        * dom/EventNames.in:
130241
1302422012-06-12  MORITA Hajime  <morrita@google.com>
130243
130244        REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
130245        https://bugs.webkit.org/show_bug.cgi?id=88148
130246
130247        Reviewed by Dimitri Glazkov.
130248
130249        The shadow DOM availability was decided through FrameLoaderClient.
130250        But there are documents which don't have any associated frames, in
130251        which any shadow DOM related elements cannot be constructed.  That
130252        resulsted the regression.
130253
130254        This change introduces a Page-based client called
130255        ContextFeaturesClient which takes the role from FrameLoaderClient
130256        to decide the feature availability, and ContextFeatures which is a
130257        proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
130258        replaced with ContextFeatures.
130259
130260        Each ContextFeatures object is owned by a Page, and is attached to
130261        each Document in the page even if the page itself has no referenct
130262        to Frames or Pages. With ContextFeatures, each Document can decide
130263        the feature availability even if it cannot reach Page or Frame.
130264
130265        On RefCountedSupplement: Document instance can live longer than a
130266        Page where it is shwon. This means that ContextFeatures instance
130267        needs to survive after owner Page destruction because it's
130268        referenced from possibly surviving Documents. RefCountedSupplement
130269        is introduced to cover this scenario: It allows supplement classes
130270        to live after Page's destruction.
130271
130272        RefCountedSupplement::hostDestroyed() is notified when the hosting
130273        page is gone. ContextFeatures clears its reference to the client
130274        using this notification.
130275
130276        Test: fast/dom/shadow/elements-in-frameless-document.html
130277
130278        * CMakeLists.txt:
130279        * GNUmakefile.list.am:
130280        * Target.pri:
130281        * WebCore.gypi:
130282        * WebCore.vcproj/WebCore.vcproj:
130283        * WebCore.xcodeproj/project.pbxproj:
130284        * bindings/scripts/CodeGeneratorV8.pm:
130285        (GenerateImplementation):
130286        * css/StyleResolver.cpp:
130287        (WebCore::StyleResolver::determineScope):
130288        * dom/ContextFeatures.cpp: Added.
130289        (WebCore):
130290        (WebCore::ContextFeaturesClient::empty):
130291        (WebCore::ContextFeatures::supplementName):
130292        (WebCore::ContextFeatures::defaultSwitch):
130293        (WebCore::ContextFeatures::shadowDOMEnabled):
130294        (WebCore::ContextFeatures::styleScopedEnabled):
130295        (WebCore::ContextFeatures::pagePopupEnabled):
130296        (WebCore::provideContextFeaturesTo):
130297        (WebCore::provideContextFeaturesToDocumentFrom):
130298        * dom/ContextFeatures.h: Added.
130299        (WebCore):
130300        (ContextFeatures):
130301        (WebCore::ContextFeatures::ContextFeatures):
130302        (WebCore::ContextFeatures::hostDestroyed):
130303        (ContextFeaturesClient):
130304        (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
130305        (WebCore::ContextFeaturesClient::isEnabled):
130306        (WebCore::ContextFeatures::create):
130307        (WebCore::ContextFeatures::isEnabled):
130308        * dom/DOMAllInOne.cpp:
130309        * dom/DOMImplementation.cpp:
130310        (WebCore::DOMImplementation::createDocument):
130311        (WebCore::DOMImplementation::createHTMLDocument):
130312        * dom/Document.h:
130313        (WebCore::Document::contextFeatures):
130314        * dom/Document.cpp:
130315        (WebCore::Document::Document):
130316        (WebCore::Document::setContextFeatures):
130317        * dom/Position.cpp:
130318        (WebCore::Position::Position):
130319        (WebCore::Position::findParent):
130320        * dom/TreeScope.cpp:
130321        (WebCore::TreeScope::getSelection):
130322        * dom/make_names.pl:
130323        (printConstructorInterior):
130324        (printFactoryCppFile):
130325        (printWrapperFunctions):
130326        (printWrapperFactoryCppFile):
130327        * editing/markup.cpp:
130328        (WebCore::createFragmentFromMarkupWithContext):
130329        * html/HTMLStyleElement.cpp:
130330        (WebCore::HTMLStyleElement::registerWithScopingNode):
130331        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
130332        * html/shadow/HTMLContentElement.cpp:
130333        (WebCore::contentTagName):
130334        * inspector/DOMPatchSupport.cpp:
130335        (WebCore::DOMPatchSupport::patchDocument):
130336        * loader/FrameLoaderClient.h:
130337        * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
130338        (WebCore):
130339        (RefCountedSupplement):
130340        (WebCore::RefCountedSupplement::hostDestroyed):
130341        (Wrapper):
130342        (WebCore::RefCountedSupplement::Wrapper::Wrapper):
130343        (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
130344        (WebCore::RefCountedSupplement::Wrapper::wrapped):
130345        (WebCore::RefCountedSupplement::provideTo):
130346        (WebCore::RefCountedSupplement::from):
130347        * platform/Supplementable.h:
130348        (WebCore::Supplement::isRefCountedWrapper):
130349        * xml/XMLHttpRequest.cpp:
130350        (WebCore::XMLHttpRequest::responseXML):
130351
1303522012-06-12  Kent Tamura  <tkent@chromium.org>
130353
130354        Remove unnecessary functions: setName() and formControlName()
130355        https://bugs.webkit.org/show_bug.cgi?id=88392
130356
130357        Reviewed by Kentaro Hara.
130358
130359        'name' IDL attributes of form-related elements should be [Reflected],
130360        and we don't need to have setName(). We used formControlName() for
130361        name() implementation, and formControlName() is not needed because it
130362        just converts a null attribute to an empty string. Our binding code does it.
130363
130364        We don't remove FormAssociatedElement::name() because many C++ code use it.
130365
130366        FormAssociatedElement::name() is virtual, and HTMLInputElement overrides
130367        it so that it returns a cache of the name attribtue value because
130368        CheckedRadioButtons class needs to know an old name attribute value when
130369        the name attribtue is changed.
130370
130371        References:
130372        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-object-name
130373        http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-name
130374        http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-fe-name
130375
130376        Test: fast/forms/name-attribute.html
130377
130378        * dom/Element.h: Remove formControlName().
130379        * html/FormAssociatedElement.cpp:
130380        (WebCore::FormAssociatedElement::name):
130381        Copied from formControlName() implementation of HTMLFormControlElement.
130382        * html/FormAssociatedElement.h:
130383        (FormAssociatedElement): Make name() virtual, remove formControlName().
130384        * html/FormController.cpp:
130385        (WebCore::FormController::formElementsState):
130386        Use name() instead of formControlName().
130387        * html/HTMLFormControlElement.cpp:
130388        Remove formControlName() and setName().
130389        * html/HTMLFormControlElement.h: ditto.
130390        * html/HTMLInputElement.cpp:
130391        (WebCore::HTMLInputElement::name): Renamed from formControlName().
130392        * html/HTMLInputElement.h:
130393        (HTMLInputElement): Renamed formControlName() to name(), and make it public.
130394        * html/HTMLKeygenElement.idl: Make 'name' [Reflected].
130395        * html/HTMLObjectElement.cpp: Remove formControlName().
130396        * html/HTMLObjectElement.h: ditto.
130397        * html/HTMLSelectElement.cpp:
130398        (WebCore::HTMLSelectElement::appendFormData):
130399        Use name() instead of formControlName().
130400        * html/HTMLSelectElement.idl: Make 'name' [Reflected].
130401        * html/HTMLTextAreaElement.idl: Make 'name' [Reflected].
130402
1304032012-06-11  Nico Weber  <thakis@chromium.org>
130404
130405        Remove unused member variables found by clang's -Wunused-private-field
130406        https://bugs.webkit.org/show_bug.cgi?id=88812
130407
130408        Reviewed by Anders Carlsson.
130409
130410        Change a few |class|s that were used only to pin down the size of
130411        existing classes to |struct|, so that clang doesn't warn about these
130412        memvars.
130413
130414        No intended behavior change.
130415
130416        * Modules/geolocation/GeolocationController.cpp:
130417        (WebCore::GeolocationController::GeolocationController):
130418        * Modules/geolocation/GeolocationController.h:
130419        (GeolocationController):
130420        * Modules/webaudio/AudioContext.h:
130421        (AudioContext):
130422        * Modules/webaudio/AudioParamTimeline.h:
130423        (AudioParamTimeline):
130424        * accessibility/AccessibilityScrollbar.h:
130425        (AccessibilityScrollbar):
130426        * bindings/v8/ScriptScope.cpp:
130427        (WebCore::ScriptScope::ScriptScope):
130428        * bindings/v8/ScriptScope.h:
130429        (ScriptScope):
130430        * css/CSSValue.cpp:
130431        * css/StylePropertySet.cpp:
130432        * dom/DeviceOrientationController.cpp:
130433        (WebCore::DeviceOrientationController::DeviceOrientationController):
130434        * dom/DeviceOrientationController.h:
130435        (DeviceOrientationController):
130436        * editing/ReplaceSelectionCommand.cpp:
130437        (ReplacementFragment):
130438        (WebCore::ReplacementFragment::ReplacementFragment):
130439        * editing/TextIterator.cpp:
130440        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
130441        * editing/TextIterator.h:
130442        (SimplifiedBackwardsTextIterator):
130443        (BackwardsCharacterIterator):
130444        * html/HTMLFormCollection.cpp:
130445        (WebCore::HTMLFormCollection::HTMLFormCollection):
130446        * html/HTMLFormCollection.h:
130447        (HTMLFormCollection):
130448        * html/shadow/MediaControlElements.cpp:
130449        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
130450        * html/shadow/MediaControlElements.h:
130451        (MediaControlFullscreenButtonElement):
130452        * html/shadow/MediaControlRootElementChromium.cpp:
130453        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
130454        * html/shadow/MediaControlRootElementChromium.h:
130455        (MediaControlRootElementChromium):
130456        * html/track/LoadableTextTrack.cpp:
130457        (WebCore::LoadableTextTrack::LoadableTextTrack):
130458        * html/track/LoadableTextTrack.h:
130459        (LoadableTextTrack):
130460        * inspector/CodeGeneratorInspector.py:
130461        (Generator.go):
130462        * inspector/InspectorCSSAgent.cpp:
130463        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
130464        * inspector/InspectorCSSAgent.h:
130465        (InspectorCSSAgent):
130466        * inspector/InspectorDOMDebuggerAgent.cpp:
130467        (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
130468        * inspector/InspectorDOMDebuggerAgent.h:
130469        (InspectorDOMDebuggerAgent):
130470        * inspector/InspectorMemoryAgent.cpp:
130471        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
130472        * inspector/InspectorMemoryAgent.h:
130473        (InspectorMemoryAgent):
130474        * notifications/NotificationController.cpp:
130475        (WebCore::NotificationController::NotificationController):
130476        * notifications/NotificationController.h:
130477        (NotificationController):
130478        * page/animation/CompositeAnimation.h:
130479        (WebCore::CompositeAnimation::CompositeAnimation):
130480        (CompositeAnimation):
130481        * platform/Length.cpp:
130482        * platform/audio/ReverbConvolver.cpp:
130483        (WebCore::ReverbConvolver::ReverbConvolver):
130484        * platform/audio/ReverbConvolver.h:
130485        (ReverbConvolver):
130486        * platform/audio/ReverbConvolverStage.cpp:
130487        (WebCore::ReverbConvolverStage::ReverbConvolverStage):
130488        * platform/audio/ReverbConvolverStage.h:
130489        (ReverbConvolverStage):
130490        * platform/graphics/TextRun.cpp:
130491        (ExpectedTextRunSize):
130492        * platform/graphics/chromium/cc/CCThreadProxy.h:
130493        (CCThreadProxy):
130494        * platform/graphics/filters/FECustomFilter.cpp:
130495        (WebCore::FECustomFilter::FECustomFilter):
130496        * platform/graphics/filters/FECustomFilter.h:
130497        (FECustomFilter):
130498        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
130499        (JPEGImageReader):
130500        * platform/leveldb/LevelDBTransaction.cpp:
130501        (WebCore::LevelDBTransaction::TreeIterator::next):
130502        * platform/text/TextCodecICU.cpp:
130503        (WebCore::TextCodecICU::TextCodecICU):
130504        * platform/text/TextCodecICU.h:
130505        (TextCodecICU):
130506        * rendering/InlineBox.cpp:
130507        * rendering/InlineFlowBox.cpp:
130508        * rendering/RenderText.cpp:
130509        * rendering/style/KeyframeList.h:
130510        (WebCore::KeyframeList::KeyframeList):
130511        (KeyframeList):
130512        * rendering/svg/RenderSVGTextPath.cpp:
130513        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
130514        * rendering/svg/RenderSVGTextPath.h:
130515        * rendering/svg/SVGInlineTextBox.cpp:
130516        * svg/SVGPathByteStreamSource.cpp:
130517        * svg/SVGPathByteStreamSource.h:
130518        * svg/SVGPathTraversalStateBuilder.cpp:
130519        (WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):
130520        * svg/SVGPathTraversalStateBuilder.h:
130521        (SVGPathTraversalStateBuilder):
130522        * xml/XSLStyleSheet.h:
130523
1305242012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
130525
130526        XHR returns size==0 Blob
130527        https://bugs.webkit.org/show_bug.cgi?id=88750
130528
130529        Reviewed by Alexey Proskuryakov.
130530
130531        Response Blob's .size field must have the correct response size.
130532
130533        Test: http/tests/xmlhttprequest/response-blob-size.html
130534
130535        * xml/XMLHttpRequest.cpp:
130536        (WebCore::XMLHttpRequest::responseBlob):
130537
1305382012-06-11  Silvia Pfeiffer  <silviapf@chromium.org>
130539
130540        Introduce an Enclosure Element for Chromium video controls.
130541        https://bugs.webkit.org/show_bug.cgi?id=87683
130542
130543        Reviewed by Eric Carlson.
130544
130545        Updated tests.
130546
130547        The Chrome video controls are receiving a visual update. A new enclosure div is required
130548        to provide for a offset space from the video's boundaries. The visual update itself is in
130549        a separate patch.
130550
130551        * css/mediaControlsChromium.css:
130552        (video::-webkit-media-controls-enclosure):
130553        Introduce CSS for enclosure div so it doesn't show yet.
130554        * html/shadow/MediaControlRootElementChromium.cpp:
130555        (WebCore::MediaControlChromiumEnclosureElement::MediaControlChromiumEnclosureElement):
130556        Definition of the new enclosure element.
130557        (WebCore::MediaControlChromiumEnclosureElement::create):
130558        Definition of a create operator for the new enclosure element.
130559        (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
130560        Definition of the shadowPseudoId of -webkit-media-controls-enclosure for the enclosure div.
130561        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
130562        Initialize member element for enclosure div.
130563        (WebCore::MediaControlRootElementChromium::create):
130564        Instantiate enclosure div and add into DOM between controls and panel elements.
130565        (WebCore::MediaControlRootElementChromium::setMediaController):
130566        Set media controller for enclosure div.
130567        (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
130568        Insert text track display container to enclosure rather than panel.
130569        * html/shadow/MediaControlRootElementChromium.h:
130570        (WebCore):
130571        (MediaControlChromiumEnclosureElement):
130572        (WebCore::MediaControlChromiumEnclosureElement::setMediaController):
130573        (WebCore::MediaControlChromiumEnclosureElement::mediaController):
130574        (WebCore::MediaControlChromiumEnclosureElement::isMediaControlElement):
130575        Add declaration of the new enclosure element and its member functions.
130576        (MediaControlRootElementChromium):
130577        Add member variable to controls root element to hold the enclosure element.
130578
1305792012-06-11  Elliott Sprehn  <esprehn@gmail.com>
130580
130581        WebKit doesn't allow replacing the document element with a DocumentFragment containing one element
130582        https://bugs.webkit.org/show_bug.cgi?id=88681
130583
130584        Reviewed by Ojan Vafai.
130585
130586        Fix bug where replacing an immediate child of a Document with a DocumentFragment
130587        would throw a HIERARCHY_REQUEST_ERR instead of replacing the node as required by DOM4.
130588        http://www.w3.org/TR/domcore/#mutation-algorithms
130589
130590        * dom/Document.cpp:
130591        (WebCore::Document::canReplaceChild):
130592            When the newChild was a DocumentFragment we incorrectly
130593            iterated over the document's children twice instead of the
130594            fragment when counting the total number of elements and
130595            doctypes to enfoce that there's only one of each.
130596
1305972012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
130598
130599        [BlackBerry] Add handling of notifyDataReceived in NetworkJob even there's no data inside
130600        https://bugs.webkit.org/show_bug.cgi?id=88773
130601
130602        Reviewed by Rob Buis.
130603
130604        Handling notifyDataReceived event even if there is no data inside.
130605        This event was critical because it gives downloadFilterStream a chance
130606        to follow up NetworkStream close event, and it also make pluginView in
130607        FrameLoaderBlackBerry return normal logic.
130608
130609        RIM PR# 164563
130610
130611        Reviewed internally by Leo Yang.
130612
130613        * platform/network/blackberry/NetworkJob.cpp:
130614        (WebCore::NetworkJob::handleNotifyDataReceived):
130615
1306162012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
130617
130618        [BlackBerry] Wrong mimetype for empty file link
130619        https://bugs.webkit.org/show_bug.cgi?id=88642
130620
130621        Reviewed by Rob Buis.
130622
130623        RIM PR# 164164
130624
130625        For empty file link, we shouldn't give "application/octet-stream"
130626        which will lead to download.
130627
130628        Reviewed internally by Charles Wei.
130629
130630        * platform/network/blackberry/NetworkJob.cpp:
130631        (WebCore::NetworkJob::sendResponseIfNeeded):
130632
1306332012-06-11  Jin Yang  <jin.a.yang@intel.com>
130634
130635        GeneratorGeneratedImage should cache images for the non-tiled case
130636        https://bugs.webkit.org/show_bug.cgi?id=87094
130637
130638        Reviewed by Simon Fraser.
130639
130640        We cache the generated image if generator is not changed. By compared
130641        with generating image on the fly, it will lose a little pixel precision
130642        and several layout tests should be rebaselined. With this patch, the IE test
130643        drive benchmark "Bayou" can gain about 50%.
130644
130645        No new tests. Performance optimization.
130646
130647        * platform/graphics/GeneratorGeneratedImage.cpp:
130648        (WebCore::GeneratorGeneratedImage::draw):
130649
1306502012-06-11  Vincent Scheib  <scheib@chromium.org>
130651
130652        Add new Pointer Lock spec attribute webkitPointerLockElement.
130653        https://bugs.webkit.org/show_bug.cgi?id=88799
130654
130655        Reviewed by Dimitri Glazkov.
130656
130657        Part of a series of refactoring changes to update pointer lock API to
130658        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
130659
130660        New attribute webkitPointerLockElement added. Follow up patches
130661        will remove the previous isLocked attribute. Tests updated to use
130662        the new attribute.
130663
130664        * bindings/generic/RuntimeEnabledFeatures.h:
130665        (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled):
130666        * dom/Document.cpp:
130667        (WebCore):
130668        (WebCore::Document::webkitPointerLockElement):
130669        * dom/Document.h:
130670        (Document):
130671        * dom/Document.idl:
130672        * page/PointerLockController.h:
130673        (WebCore::PointerLockController::element):
130674
1306752012-06-11  Vincent Scheib  <scheib@chromium.org>
130676
130677        Consolidate Pointer Lock runtime enabled flags to just one.
130678        https://bugs.webkit.org/show_bug.cgi?id=88810
130679
130680        Reviewed by Dimitri Glazkov.
130681
130682        No new tests.
130683
130684        * bindings/generic/RuntimeEnabledFeatures.h:
130685        (WebCore::RuntimeEnabledFeatures::pointerLockEnabled):
130686        (WebCore::RuntimeEnabledFeatures::setPointerLockEnabled):
130687        * dom/MouseEvent.idl:
130688        * page/Navigator.idl:
130689
1306902012-06-11  Alexis Menard  <alexis.menard@openbossa.org>
130691
130692        [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
130693        https://bugs.webkit.org/show_bug.cgi?id=88804
130694
130695        Reviewed by Tony Chang.
130696
130697        Protect box-decoration-break behind a feature flag enabled by default.
130698
130699        No new tests : no behavior change here.
130700
130701        * Configurations/FeatureDefines.xcconfig:
130702        * GNUmakefile.am:
130703        * css/CSSComputedStyleDeclaration.cpp:
130704        (WebCore):
130705        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
130706        * css/CSSParser.cpp:
130707        (WebCore::isValidKeywordPropertyAndValue):
130708        (WebCore::isKeywordPropertyID):
130709        (WebCore::CSSParser::parseValue):
130710        * css/CSSPrimitiveValueMappings.h:
130711        (WebCore):
130712        * css/CSSProperty.cpp:
130713        (WebCore::CSSProperty::isInheritedProperty):
130714        * css/CSSValueKeywords.in:
130715        * css/StyleBuilder.cpp:
130716        (WebCore::StyleBuilder::StyleBuilder):
130717        * rendering/style/RenderStyle.h:
130718        * rendering/style/StyleBoxData.cpp:
130719        (WebCore::StyleBoxData::StyleBoxData):
130720        (WebCore::StyleBoxData::operator==):
130721        * rendering/style/StyleBoxData.h:
130722        (StyleBoxData):
130723
1307242012-06-11  James Robinson  <jamesr@chromium.org>
130725
130726        [chromium] Port DrawingBufferChromium from TextureLayerChromium over to WebExternalTextureLayer
130727        https://bugs.webkit.org/show_bug.cgi?id=86273
130728
130729        Reviewed by Adrienne Walker.
130730
130731        This converts more WebCore code over to using public APIs instead of internal compositor layer types.
130732
130733        Refactor only, no change in behavior thus no new tests.
130734
130735        * platform/graphics/chromium/DrawingBufferChromium.cpp:
130736        (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
130737        (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
130738        (WebCore::DrawingBufferPrivate::layer):
130739        (DrawingBufferPrivate):
130740        * platform/graphics/chromium/TextureLayerChromium.cpp:
130741        (WebCore::TextureLayerChromium::~TextureLayerChromium):
130742        (WebCore::TextureLayerChromium::setRateLimitContext):
130743        (WebCore::TextureLayerChromium::setNeedsDisplayRect):
130744        (WebCore::TextureLayerChromium::update):
130745        * platform/graphics/chromium/TextureLayerChromium.h:
130746        (WebKit):
130747        (TextureLayerChromiumClient):
130748
1307492012-06-11  Max Feil  <mfeil@rim.com>
130750
130751        [BlackBerry] Seek calls are being unnecessarily delayed
130752        https://bugs.webkit.org/show_bug.cgi?id=88732
130753
130754        Reviewed by Antonio Gomes.
130755
130756        There is a problem with the way the m_userDrivenSeekTimer is
130757        implemented. When MediaPlayerPrivate::seek() is called, there
130758        is always a 100ms delay even if the timer is not running. The
130759        timer is supposed to space out (i.e. throttle) repeated seeks
130760        that come in too soon after a previous seek, but currently it
130761        is slowing down even single seeks and seeks that come in with
130762        adequate delay after a previous seek. I fixed this in my patch
130763        by improving the way the timer fired function is called.
130764        
130765        A note on the new m_lastSeekTimePending flag: This flag is
130766        needed so that userDrivenSeekTimerFired() knows whether or not
130767        to perform the seek. The only case where this flag will not be
130768        set is if no MediaPlayerPrivate::seek() call came in while the
130769        timer was active, in which case it's important to do nothing.
130770        I could encode this flag's information into the m_lastSeekTime
130771        float, for example by initializing it and resetting it to NAN
130772        and using isnan(). But I feel that using a separate bool is a
130773        more portable approach.
130774
130775        No new tests. I would like to propose not including a layout test
130776        with this fix. Doing timing tests for 100ms delays is tricky
130777        from Javascript, and I don't think the benefit of such a test
130778        outweighs the extra time it would take to develop one. The test
130779        would also be a problem to maintain as it may give different
130780        results over different runs and across different target hardware.
130781
130782        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
130783        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
130784        (WebCore::MediaPlayerPrivate::seek):
130785        (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
130786        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
130787        (MediaPlayerPrivate):
130788
1307892012-06-11  Max Feil  <mfeil@rim.com>
130790
130791        [BlackBerry] Unexpected repeats of short media
130792        https://bugs.webkit.org/show_bug.cgi?id=88733
130793
130794        Reviewed by Antonio Gomes.
130795
130796        The m_userDrivenSeekTimer is causing unwanted repeats of short
130797        media such as sound effects because it is causing the current
130798        time to not reflect that the media has finished playing.
130799        This problem only affects media whose duration is close to
130800        or less than the SeekSubmissionDelay, which is currently
130801        set to 100ms. My fix is to ignore the userDrivenSeekTimer in
130802        MediaPlayerPrivate::currentTime() if the duration of the media
130803        is within twice the SeekSubmissionDelay. Seek drag smoothness
130804        is a non-issue for such short media.
130805
130806        Test: platform/blackberry/media/short-media-repeats-correctly.html
130807
130808        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
130809        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
130810        (WebCore):
130811        (WebCore::MediaPlayerPrivate::currentTime):
130812        (WebCore::MediaPlayerPrivate::seek):
130813        (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
130814        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
130815        (MediaPlayerPrivate):
130816
1308172012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>
130818
130819        Account for margin after when laying out <legend> element
130820        https://bugs.webkit.org/show_bug.cgi?id=35981
130821
130822        Reviewed by Abhishek Arya.
130823
130824        Tests: fast/forms/legend-after-margin-horizontal-writing-mode.html
130825               fast/forms/legend-after-margin-vertical-writing-mode.html
130826               fast/forms/legend-after-margin-with-before-border-horizontal-mode.html
130827               fast/forms/legend-small-after-margin-before-border-horizontal-mode.html
130828
130829        The existing code would ignore margin after when layouting out the <legend>. This
130830        change only adds the code to handle the margin after, the margin before is still
130831        ignored as it's not obvious how it should be working.
130832
130833        * rendering/RenderFieldset.cpp:
130834        (WebCore::RenderFieldset::layoutSpecialExcludedChild):
130835        Split the code in 2 code paths to reflect how we position and size. Those are covered by the
130836        tests above.
130837
1308382012-06-11  James Robinson  <jamesr@chromium.org>
130839
130840        [chromium] Use WebGraphicsContext3D in rate limiting logic inside compositor
130841        https://bugs.webkit.org/show_bug.cgi?id=86259
130842
130843        Reviewed by Adrienne Walker.
130844
130845        This refactors the compositor's rate limiting implementation to use the Platform API's WebGraphicsContext3D
130846        directly instead of WebCore::GraphicsContext3D to cut down on the number of spurious WebCore dependencies in the
130847        compositor.  The one change in contract is that the caller to CCLayerTreeHost::startRateLimit() now has to call
130848        CCLayerTreeHost::stopRateLimit() before allowing the referenced context to go away since CCLayerTreeHost no
130849        longer retains a reference, but this was always happening already.
130850
130851        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
130852        (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
130853        (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
130854        * platform/graphics/chromium/RateLimiter.cpp:
130855        (WebCore::RateLimiter::create):
130856        (WebCore::RateLimiter::RateLimiter):
130857        (WebCore::RateLimiter::start):
130858        (WebCore::RateLimiter::rateLimitContext):
130859        * platform/graphics/chromium/RateLimiter.h:
130860        (WebKit):
130861        (RateLimiter):
130862        * platform/graphics/chromium/TextureLayerChromium.cpp:
130863        (WebCore::TextureLayerChromium::~TextureLayerChromium):
130864        (WebCore::TextureLayerChromium::setRateLimitContext):
130865        (WebCore::TextureLayerChromium::setNeedsDisplayRect):
130866        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
130867        (WebCore::CCLayerTreeHost::startRateLimiter):
130868        (WebCore::CCLayerTreeHost::stopRateLimiter):
130869        (WebCore::CCLayerTreeHost::rateLimit):
130870        (WebCore):
130871        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
130872        (CCLayerTreeHost):
130873
1308742012-06-11  Dana Jansens  <danakj@chromium.org>
130875
130876        [chromium] Separate CCVideoDrawQuad and from the layer tree and video provider by removing ManagedTexture and WebVideoFrame pointers from the quad
130877        https://bugs.webkit.org/show_bug.cgi?id=88363
130878
130879        Reviewed by Adrienne Walker.
130880
130881        CCVideoDrawQuad should not contain any pointers to data in the layer
130882        tree so we are able to serialize it across process boundaries. This
130883        patch removes the ManagedTexture pointers from the quad class,
130884        replacing them with texture ids. It removes the WebVideoFrame* from
130885        the quad, replacing it with the frame provider's texture id included
130886        in the WebVideoFrame structure. And it uses a WebTransformationMatrix
130887        instead of a pointer to an array of floats.
130888
130889        Texture allocation is done in CCVideoLayerImpl via the
130890        contentsTextureAllocator, so that the memory usage can be tracked.
130891
130892        We move the copyPlaneToTextures() method back from LayerRendererChromium
130893        to CCVideoLayerImpl, as this method uses the texture data pointer in the
130894        WebVideoFrame, and we do not want to give this pointer to the quad
130895        class. Instead, this method makes use of the LayerTextureSubImage class
130896        to copy the pixel data into the texture.
130897
130898        LayerTextureSubImage is updated to allow non-4byte texture formats.
130899
130900        * platform/graphics/chromium/LayerRendererChromium.cpp:
130901        (WebCore::LayerRendererChromium::drawYUV):
130902        (WebCore::LayerRendererChromium::drawRGBA):
130903        (WebCore::LayerRendererChromium::drawNativeTexture2D):
130904        (WebCore::LayerRendererChromium::drawStreamTexture):
130905        (WebCore::LayerRendererChromium::drawVideoQuad):
130906        * platform/graphics/chromium/LayerTextureSubImage.cpp:
130907        (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
130908        (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
130909        * platform/graphics/chromium/TextureCopier.cpp:
130910        * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
130911        (WebCore::CCVideoDrawQuad::create):
130912        (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
130913        * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
130914        (CCVideoDrawQuad):
130915        (WebCore::CCVideoDrawQuad::planes):
130916        (WebCore::CCVideoDrawQuad::frameProviderTextureId):
130917        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
130918        (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
130919        (WebCore::CCVideoLayerImpl::willDraw):
130920        (WebCore::CCVideoLayerImpl::willDrawInternal):
130921        (WebCore::CCVideoLayerImpl::appendQuads):
130922        (WebCore::CCVideoLayerImpl::didDraw):
130923        (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
130924        (WebCore):
130925        (WebCore::CCVideoLayerImpl::FramePlane::freeData):
130926        (WebCore::CCVideoLayerImpl::allocatePlaneData):
130927        (WebCore::CCVideoLayerImpl::copyPlaneData):
130928        (WebCore::CCVideoLayerImpl::freePlaneData):
130929        (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
130930        (WebCore::CCVideoLayerImpl::didLoseContext):
130931        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
130932        (FramePlane):
130933        (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
130934
1309352012-06-11  Joshua Bell  <jsbell@chromium.org>
130936
130937        IndexedDB: Object stores are not successfully deleted
130938        https://bugs.webkit.org/show_bug.cgi?id=88788
130939
130940        Reviewed by Tony Chang.
130941
130942        Discovered while working on http://webkit.org/b/83074 - object stores are not
130943        being deleted from the backing store. Deletion would succeed in the in-memory
130944        data structures, but after closing/re-opening the backing store the object store
130945        (but not its indexes/data) would reappear. Due to 83074, this isn't detectable
130946        by DRT without a full restart.
130947
130948        Test: [chromium] webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
130949
130950        * Modules/indexeddb/IDBLevelDBCoding.cpp:
130951        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
130952
1309532012-06-05  Eric Uhrhane <ericu@chromium.org>
130954
130955        Crash in fast/files/read tests during Garbage Collection
130956        https://bugs.webkit.org/show_bug.cgi?id=87165
130957
130958        Reviewed by Michael Saboff
130959
130960        Fix previous fix for hasPendingActivity, and fix a bug in a complex
130961        abort case as well--abort during the final progress event of a write
130962        would hang the writer.
130963
130964        * Modules/filesystem/FileWriter.cpp:
130965        (WebCore::FileWriter::stop):
130966        (WebCore::FileWriter::write):
130967        (WebCore::FileWriter::truncate):
130968        (WebCore::FileWriter::didWrite):
130969        (WebCore::FileWriter::didTruncate):
130970        (WebCore::FileWriter::didFail):
130971        (WebCore::FileWriter::completeAbort):
130972        (WebCore::FileWriter::doOperation):
130973        (WebCore::FileWriter::signalCompletion):
130974
1309752012-06-11  Shawn Singh  <shawnsingh@chromium.org>
130976
130977        [chromium] Implement position:fixed in compositor thread
130978        https://bugs.webkit.org/show_bug.cgi?id=70103
130979
130980        Reviewed by Adrienne Walker.
130981
130982        Significant contributions to this patch by Alpha Lam and Sami Kyostila.
130983
130984        This patch is the compositor-side change that adds support for
130985        fixed-position layers to be composited layers. Before this patch,
130986        fixed-position elements were positioned only by WebCore (i.e. main
130987        thread when painting), and the compositor did not have enough
130988        knowledge on its own to position it properly. This patch adds the
130989        necessary math and plumbs the necessary layer information so that
130990        the impl thread can properly position fixed-position elements on
130991        its own. This support is necessary for correctness of composited
130992        fixed-position elements, which can greatly help to avoid
130993        repainting container layers when scrolling with a fixed-position
130994        layer.
130995
130996        There also needs to be WebCore-side support for this, which is
130997        addressed in https://bugs.webkit.org/show_bug.cgi?id=78864
130998
130999        Unit tests added to CCLayerTreeHostCommonTest:
131000          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDirectContainer
131001          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithTransformedDirectContainer
131002          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainer
131003          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainerAndTransforms
131004          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleScrollDeltas
131005          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithIntermediateSurfaceAndTransforms
131006          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleIntermediateSurfaces
131007          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface
131008          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatIsAlsoFixedPositionContainer
131009          CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatHasNoContainer
131010
131011        * platform/graphics/chromium/LayerChromium.cpp:
131012        (WebCore::LayerChromium::LayerChromium):
131013        (WebCore::LayerChromium::pushPropertiesTo):
131014        * platform/graphics/chromium/LayerChromium.h:
131015        (WebCore::LayerChromium::setIsContainerForFixedPositionLayers):
131016        (WebCore::LayerChromium::isContainerForFixedPositionLayers):
131017        (LayerChromium):
131018        (WebCore::LayerChromium::setFixedToContainerLayerVisibleRect):
131019        (WebCore::LayerChromium::fixedToContainerLayerVisibleRect):
131020        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
131021        (WebCore::CCLayerImpl::CCLayerImpl):
131022        * platform/graphics/chromium/cc/CCLayerImpl.h:
131023        (WebCore::CCLayerImpl::setIsContainerForFixedPositionLayers):
131024        (WebCore::CCLayerImpl::isContainerForFixedPositionLayers):
131025        (CCLayerImpl):
131026        (WebCore::CCLayerImpl::setFixedToContainerLayerVisibleRect):
131027        (WebCore::CCLayerImpl::fixedToContainerLayerVisibleRect):
131028        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
131029        (WebCore::computeScrollCompensationForThisLayer):
131030        (WebCore):
131031        (WebCore::computeScrollCompensationMatrixForChildren):
131032        (WebCore::calculateDrawTransformsInternal):
131033        (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
131034
1310352012-06-11  Sam Weinig  <sam@webkit.org>
131036
131037        Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
131038        https://bugs.webkit.org/show_bug.cgi?id=88723
131039
131040        Reviewed by Dan Bernstein.
131041
131042        * WebCore.exp.in:
131043        Update export.
131044        * editing/Editor.cpp:
131045        (WebCore::Editor::rangeOfString):
131046        (WebCore::Editor::countMatchesForText):
131047        * editing/Editor.h:
131048        (Editor):
131049        * loader/FrameLoader.cpp:
131050        (WebCore::FrameLoader::findFrameForNavigation):
131051        * page/DOMWindow.cpp:
131052        (WebCore::DOMWindow::parent):
131053        (WebCore::DOMWindow::top):
131054        * page/EventHandler.cpp:
131055        (WebCore::EventHandler::hitTestResultAtPoint):
131056        * page/Frame.cpp:
131057        (WebCore::Frame::Frame):
131058        * page/Frame.h:
131059        (Frame):
131060        * page/FrameTree.cpp:
131061        (WebCore::FrameTree::parent):
131062        (WebCore::FrameTree::top):
131063        * page/FrameTree.h:
131064        (FrameTree):
131065        * page/Location.cpp:
131066        (WebCore::Location::ancestorOrigins):
131067        * xml/XMLTreeViewer.cpp:
131068        (WebCore::XMLTreeViewer::hasNoStyleInformation):
131069        Update for the removal of disconnected frames and text search exclusions concepts.
131070
1310712012-06-11  Xianzhu Wang  <wangxianzhu@chromium.org>
131072
131073        SVGImageCache leaks image data
131074        https://bugs.webkit.org/show_bug.cgi?id=87792
131075
131076        There are two functions to remove a client from a CachedImage:
131077        - CachedResource::removeClient()
131078        - CachedImage::removeClientForRenderer().
131079        It's easy to make error to call the former which will leak the cached
131080        image buffers in SVGImageCache.
131081
131082        This change combined the two by adding the virtual 
131083        CachedResource::didRemoveClient(). CachedImage will do SVGImageCache
131084        cleanup in the function.
131085
131086        Reviewed by Nikolas Zimmermann.
131087
131088        Test: svg/as-image/svg-image-leak-cached-data.html
131089
131090        * loader/cache/CachedFont.h:
131091        (WebCore::CachedFontClient::resourceClientType): Added 'const'.
131092        * loader/cache/CachedImage.cpp:
131093        (WebCore):
131094        (WebCore::CachedImage::didRemoveClient): Removes the client from SVGImageCache.
131095        (WebCore::CachedImage::lookupOrCreateImageForRenderer):
131096        * loader/cache/CachedImage.h:
131097        (CachedImage):
131098        (WebCore::CachedImageClient::resourceClientType): Added 'const'.
131099        * loader/cache/CachedRawResource.h:
131100        (WebCore::CachedRawResourceClient::resourceClientType): Added 'const'.
131101        * loader/cache/CachedResource.cpp:
131102        (WebCore::CachedResource::removeClient): Added invocation of didRemoveClient().
131103        * loader/cache/CachedResource.h:
131104        (WebCore::CachedResource::didRemoveClient): Added for subclasses to do additional works.
131105        * loader/cache/CachedResourceClient.h:
131106        (WebCore::CachedResourceClient::resourceClientType): Added 'const'.
131107        * loader/cache/CachedSVGDocument.h:
131108        (WebCore::CachedSVGDocumentClient::resourceClientType): Added 'const'.
131109        * loader/cache/CachedStyleSheetClient.h:
131110        (WebCore::CachedStyleSheetClient::resourceClientType): Added 'const'.
131111        * rendering/style/StyleCachedImage.cpp:
131112        (WebCore::StyleCachedImage::removeClient):
131113        * rendering/style/StyleCachedImageSet.cpp:
131114        (WebCore::StyleCachedImageSet::removeClient):
131115        * svg/graphics/SVGImageCache.cpp:
131116        (WebCore::SVGImageCache::~SVGImageCache): Added checking for leaks.
131117        (WebCore::SVGImageCache::removeClientFromCache):
131118        (WebCore::SVGImageCache::setRequestedSizeAndScales): 
131119        (WebCore::SVGImageCache::requestedSizeAndScales):
131120        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForClient):
131121        * svg/graphics/SVGImageCache.h:
131122        (WebCore):
131123        (SVGImageCache):
131124
1311252012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
131126
131127        [Chromium] Call shared timer functions directly
131128        https://bugs.webkit.org/show_bug.cgi?id=88781
131129
131130        Reviewed by Adam Barth.
131131
131132        Part of a refactoring series. See tracking bug 82948.
131133
131134        * platform/chromium/PlatformSupport.h:
131135        (PlatformSupport):
131136        * platform/chromium/SharedTimerChromium.cpp:
131137        (WebCore::setSharedTimerFiredFunction):
131138        (WebCore::setSharedTimerFireInterval):
131139
1311402012-06-11  Pravin D  <pravind.2k4@gmail.com>
131141
131142        Relative pos. input fields in columns vanish when you start typing in them
131143        https://bugs.webkit.org/show_bug.cgi?id=76834
131144
131145        Reviewed by Julien Chaffraix.
131146
131147        Test: fast/multicol/multicol-with-child-renderLayer-for-input.html
131148
131149        * page/FrameView.cpp:
131150        (WebCore::updateLayerPositionFlags):
131151        Helper function to prepare the UpdateLayerPositionsFlags based on the input parameters.
131152        If didFullRepaint flag is set, then CheckForRepaints flag is removed from the default flags.
131153        Also during a relayout of a subtree, if the RenderLayer of the subtree root is paginated then updatePagination flag is
131154        included in the flags. 
131155
131156        (WebCore):
131157        (WebCore::FrameView::layout):
131158        Now uses the helper function updateLayerPositionFlags() to get the final set of UpdateLayerPositionsFlags.
131159
131160        * rendering/RenderLayer.h:
131161        (WebCore::RenderLayer::isPaginated):
131162        (RenderLayer):
131163        isPaginated function is made public so that FrameView class can use it prepare UpdateLayerPositionsFlags.
131164
1311652012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
131166
131167        [Chromium] Remove some dead code in PasteboardChromium
131168        https://bugs.webkit.org/show_bug.cgi?id=88782
131169
131170        Reviewed by Adam Barth.
131171
131172        Part of a refactoring series. See tracking bug 82948.
131173        Leftover detritus from bug 88038.
131174
131175        * platform/chromium/PasteboardChromium.cpp:
131176        (WebCore::Pasteboard::documentFragment):
131177
1311782012-06-11  Peter Beverloo  <peter@chromium.org>
131179
131180        [Chromium] Theme updates for Android in menu list rendering and selection backgrounds
131181        https://bugs.webkit.org/show_bug.cgi?id=88775
131182
131183        Reviewed by Adam Barth.
131184
131185        For Chrome on Android, use the width of the scrollbar down arrow instead
131186        of the scrollbar's width for determining the arrow padding to apply for
131187        menu list rendering, as WebKit isn't drawing a scrollbar (thus width=0).
131188
131189        Furthermore, change the default active selection background color to be
131190        equal to the tap highlighting color.
131191
131192        These changes should be covered by existing layout tests.
131193
131194        * rendering/RenderThemeChromiumAndroid.cpp:
131195        (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
131196        (WebCore): Retrieve the scrollbar down arrow's size via PlatformSupport.
131197        * rendering/RenderThemeChromiumAndroid.h: Override the menuListArrowPadding
131198            and platformActiveSelectionBackgroundColor methods, and add a static
131199            static RGBA32 color for the default active selection bg color.
131200        * rendering/RenderThemeChromiumSkia.cpp:
131201        (WebCore::RenderThemeChromiumSkia::menuListArrowPadding): Default to
131202            the scrollbar thickness, not changing behavior for non-Android.
131203        (WebCore::RenderThemeChromiumSkia::menuListInternalPadding): Instead
131204            of polling the scrollbar thickness, call menuListArrowPadding().
131205        * rendering/RenderThemeChromiumSkia.h: 
131206        (RenderThemeChromiumSkia): Add the menuListArrowPadding() as a protected method.
131207
1312082012-06-11  David Barr  <davidbarr@chromium.org>
131209
131210        Add css3-images image-resolution (dppx only)
131211        https://bugs.webkit.org/show_bug.cgi?id=85332
131212
131213        Reviewed by Tony Chang.
131214
131215        The css3-images module is at candidate recommendation.
131216        http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution
131217
131218        Test: fast/css/image-resolution.html
131219
131220        * css/CSSComputedStyleDeclaration.cpp:
131221        (WebCore):
131222        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
131223        * css/CSSGrammar.y:
131224        * css/CSSParser.cpp:
131225        (WebCore::CSSParser::validUnit):
131226        (WebCore::CSSParser::createPrimitiveNumericValue):
131227        (WebCore::unitFromString):
131228        (WebCore::CSSParser::parseValidPrimitive):
131229        (WebCore::CSSParser::parseValue):
131230        (WebCore):
131231        (WebCore::CSSParser::parseImageResolution):
131232        (WebCore::CSSParser::detectNumberToken):
131233        * css/CSSParser.h:
131234        * css/CSSPrimitiveValue.cpp:
131235        (WebCore::isValidCSSUnitTypeForDoubleConversion):
131236        (WebCore::unitCategory):
131237        (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
131238        (WebCore::CSSPrimitiveValue::customCssText):
131239        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
131240        * css/CSSPrimitiveValue.h:
131241        * css/CSSProperty.cpp:
131242        (WebCore::CSSProperty::isInheritedProperty):
131243        * css/CSSPropertyNames.in:
131244        * css/StyleBuilder.cpp:
131245        (WebCore):
131246        (ApplyPropertyImageResolution):
131247        (WebCore::ApplyPropertyImageResolution::applyInheritValue):
131248        (WebCore::ApplyPropertyImageResolution::applyInitialValue):
131249        (WebCore::ApplyPropertyImageResolution::applyValue):
131250        (WebCore::ApplyPropertyImageResolution::createHandler):
131251        (WebCore::StyleBuilder::StyleBuilder):
131252        * css/StyleResolver.cpp:
131253        (WebCore::StyleResolver::collectMatchingRulesForList):
131254        * rendering/RenderImage.cpp:
131255        (WebCore::RenderImage::styleDidChange):
131256        (WebCore::RenderImage::imageDimensionsChanged):
131257        * rendering/style/RenderStyle.cpp:
131258        (WebCore::RenderStyle::diff):
131259        * rendering/style/RenderStyle.h:
131260        * rendering/style/StyleRareInheritedData.cpp:
131261        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
131262        (WebCore::StyleRareInheritedData::operator==):
131263        * rendering/style/StyleRareInheritedData.h:
131264        (StyleRareInheritedData):
131265
1312662012-06-05  Dana Jansens  <danakj@chromium.org>
131267
131268        [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
131269        https://bugs.webkit.org/show_bug.cgi?id=88371
131270
131271        Reviewed by James Robinson.
131272
131273        Unit test: CCLayerTreeHostImplTest.layersFreeTextures
131274
131275        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
131276        (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
131277        (WebCore::CCIOSurfaceLayerImpl::willDraw):
131278
1312792012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
131280
131281        Unreviewed. Fix make distcheck issues.
131282
131283        * GNUmakefile.am: Add idl files in editing dir to EXTRA_DIST.
131284        * GNUmakefile.list.am: Add missing header file.
131285
1312862012-06-11  Dan Bernstein  <mitz@apple.com>
131287
131288        Reverted r119940 because it caused multiple media tests to fail on Lion.
131289
131290        * html/HTMLMediaElement.cpp:
131291        (WebCore::HTMLMediaElement::prepareForLoad):
131292        (WebCore):
131293        (WebCore::HTMLMediaElement::userCancelledLoad):
131294        * html/HTMLMediaElement.h:
131295        (HTMLMediaElement):
131296        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
131297        (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
131298
1312992012-06-11  Zoltan Horvath  <zoltan@webkit.org>
131300
131301        [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...)$
131302        https://bugs.webkit.org/show_bug.cgi?id=87841
131303
131304        Reviewed by Simon Hausmann.
131305
131306        No new tests were needed.
131307
131308        * Target.pri:
131309        * WebCore.pri:
131310        * platform/image-decoders/ImageDecoder.cpp:
131311        (WebCore::ImageDecoder::create):
131312
1313132012-06-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
131314
131315        Add QML api for setting device width and height
131316        https://bugs.webkit.org/show_bug.cgi?id=88777
131317
131318        Reviewed by Simon Hausmann.
131319
131320        Change the default values for deviceWidth/Height to be 0 (unset). The
131321        original values were introduced by Qt and 0 makes it possible to
131322        detect if a value has never been set and therefore fall back.
131323
131324        Only Qt depended on the former values.
131325
131326        * page/Settings.cpp:
131327        (WebCore::Settings::Settings):
131328
1313292012-06-11  Csaba Osztrogonác  <ossy@webkit.org>
131330
131331        [Qt][Win] Fix UString related build problem in Source/WebCore/bridge/qt/qt_instance.cpp
131332        https://bugs.webkit.org/show_bug.cgi?id=88310
131333
131334        Reviewed by Simon Hausmann.
131335
131336        * bridge/qt/qt_instance.cpp:
131337        (JSC::Bindings::QtInstance::getPropertyNames):
131338
1313392012-06-11  Michael Brüning  <michael.bruning@nokia.com>
131340
131341        [Qt][WK2] Compute and set cache capacities using the current CacheModel
131342        https://bugs.webkit.org/show_bug.cgi?id=73918
131343
131344        Unreviewed build fix.
131345
131346        No new tests added as this is a build fix.
131347
131348        * platform/qt/FileSystemQt.cpp:
131349
1313502012-06-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
131351
131352        Rect-based hittesting doesn't work in tables.
131353        https://bugs.webkit.org/show_bug.cgi?id=86605
131354
131355        Reviewed by Julien Chaffraix.
131356
131357        The existing code only performed a single binary lookup for the central
131358        hit-test point. This meant area-based hit-testing did not work across
131359        table-cell borders. All cells spanned by a hit-test area must be hit
131360        tested.
131361
131362        This patch introduces three auxilary functions to help calculate rows
131363        and columns spanned by an rect. These are intended to also be used by
131364        repaint logic in a later patch.
131365
131366        For point-based hit-testing we maintain unchanged behavior and still
131367        only hit test a single column in a single row.
131368
131369        Test: fast/dom/nodesFromRect-table.html
131370
131371        * rendering/RenderTableSection.cpp:
131372        (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
131373        (WebCore::RenderTableSection::spannedRows):
131374        (WebCore::RenderTableSection::spannedColumns):
131375        (WebCore::RenderTableSection::nodeAtPoint):
131376        * rendering/RenderTableSection.h:
131377        (RenderTableSection):
131378
1313792012-06-11  Min Qin  <qinmin@google.com>
131380
131381        Adding a flag to show fullscreen media controls in chromium
131382        https://bugs.webkit.org/show_bug.cgi?id=88266
131383
131384        Reviewed by Adam Barth.
131385
131386        The default chromium shadow DOM for media element does not contain fullscreen button.
131387        This change adds a flag to display the fullscreen button.
131388        It will be used by the android port.
131389
131390        No new tests needed. We will use the same layout tests as desktop chromium.
131391        However, new test result expections will be added later.
131392
131393        * html/shadow/MediaControlRootElementChromium.cpp:
131394        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
131395        (WebCore::MediaControlRootElementChromium::create):
131396        (WebCore::MediaControlRootElementChromium::setMediaController):
131397        (WebCore::MediaControlRootElementChromium::reset):
131398        (WebCore::MediaControlRootElementChromium::reportedError):
131399        * html/shadow/MediaControlRootElementChromium.h:
131400        (MediaControlRootElementChromium):
131401
1314022012-06-11  Michael Brüning  <michael.bruning@nokia.com>
131403
131404        [Qt][WK2] Compute and set cache capacities using the current CacheModel
131405        https://bugs.webkit.org/show_bug.cgi?id=73918
131406
131407        Reviewed by Kenneth Rohde Christiansen.
131408
131409        No new tests needed / applicable (using operating system functionality).
131410
131411        Added method to read free file system space for a path to support cache model
131412        implementation in Qt WK 2.
131413
131414        * platform/FileSystem.h:
131415        (WebCore):
131416        * platform/qt/FileSystemQt.cpp:
131417        (WebCore::getVolumeFreeSizeForPath): Added for Qt ports.
131418        (WebCore):
131419
1314202012-06-11  Peter Wang  <peter.wang@torchmobile.com.cn>
131421
131422        [JSC] Web Inspector: implement breaking from native callback
131423        https://bugs.webkit.org/show_bug.cgi?id=43332
131424
131425        Reviewed by Pavel Feldman.
131426
131427        These test cases were enabled:
131428        LayoutTests/inspector/debugger/dom-breakpoints.html
131429        LayoutTests/inspector/debugger/event-listener-breakpoints.html
131430        LayoutTests/inspector/debugger/step-through-event-listeners.html
131431        LayoutTests/inspector/debugger/xhr-breakpoints.html
131432
131433        * bindings/js/ScriptDebugServer.cpp:
131434        (WebCore::ScriptDebugServer::breakProgram):
131435        * bindings/js/ScriptDebugServer.h:
131436        (WebCore::supportsNativeBreakpoints):
131437
1314382012-06-11  MORITA Hajime  <morrita@google.com>
131439
131440        Spellchecker crash in async scenario.
131441        https://bugs.webkit.org/show_bug.cgi?id=88617
131442
131443        Reviewed by Tony Chang.
131444
131445        SpellCheckRequest::invokeRequest() can be reached after the frame is detached.
131446        SpellCheckRequest should ignore such a request since TextCheckerClient is not available
131447        for detached Frames.
131448
131449        No new tests. It's hard to reproduce this.
131450
131451        * editing/SpellChecker.cpp:
131452        (WebCore::SpellChecker::invokeRequest):
131453
1314542012-06-11  Ryuan Choi  <ryuan.choi@samsung.com>
131455
131456        [EFL] Extract CursorMap from WidgetEfl.cpp.
131457        https://bugs.webkit.org/show_bug.cgi?id=88633
131458
131459        Reviewed by Ryosuke Niwa.
131460
131461        In order to share CursorMap in WebKit/efl and UIProcess of WebKit2/Efl,
131462        extract it and expose getEcoreCursor.
131463
131464        No new tests, refactoring only.
131465
131466        * platform/efl/EflScreenUtilities.cpp:
131467        (WebCore):
131468        (CursorMap):
131469        (WebCore::CursorMap::cursor):
131470        (WebCore::CursorMap::CursorMap):
131471        (WebCore::getEcoreCursor):
131472        * platform/efl/EflScreenUtilities.h:
131473        (WebCore):
131474        * platform/efl/WidgetEfl.cpp:
131475        (WebCore::Widget::applyFallbackCursor):
131476
1314772012-06-10  Sheriff Bot  <webkit.review.bot@gmail.com>
131478
131479        Unreviewed, rolling out r119955.
131480        http://trac.webkit.org/changeset/119955
131481        https://bugs.webkit.org/show_bug.cgi?id=88758
131482
131483        Breaks Chromium compile - Chromium depends on removed API
131484        (Requested by dominicc on #webkit).
131485
131486        * WebCore.exp.in:
131487        * editing/Editor.cpp:
131488        (WebCore::Editor::insideVisibleArea):
131489        (WebCore):
131490        (WebCore::Editor::firstVisibleRange):
131491        (WebCore::Editor::lastVisibleRange):
131492        (WebCore::Editor::nextVisibleRange):
131493        (WebCore::Editor::rangeOfString):
131494        (WebCore::Editor::countMatchesForText):
131495        * editing/Editor.h:
131496        (Editor):
131497        * loader/FrameLoader.cpp:
131498        (WebCore::FrameLoader::findFrameForNavigation):
131499        * page/DOMWindow.cpp:
131500        (WebCore::DOMWindow::parent):
131501        (WebCore::DOMWindow::top):
131502        * page/EventHandler.cpp:
131503        (WebCore::EventHandler::hitTestResultAtPoint):
131504        * page/Frame.cpp:
131505        (WebCore::Frame::Frame):
131506        * page/Frame.h:
131507        (Frame):
131508        (WebCore::Frame::isDisconnected):
131509        (WebCore):
131510        (WebCore::Frame::setIsDisconnected):
131511        (WebCore::Frame::excludeFromTextSearch):
131512        (WebCore::Frame::setExcludeFromTextSearch):
131513        * page/FrameTree.cpp:
131514        (WebCore::FrameTree::parent):
131515        (WebCore::FrameTree::top):
131516        * page/FrameTree.h:
131517        (FrameTree):
131518        * page/Location.cpp:
131519        (WebCore::Location::ancestorOrigins):
131520        * xml/XMLTreeViewer.cpp:
131521        (WebCore::XMLTreeViewer::hasNoStyleInformation):
131522
1315232012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
131524
131525        Using BlobBuilder should show a deprecation warning message (if it is enabled)
131526        https://bugs.webkit.org/show_bug.cgi?id=88644
131527
131528        Reviewed by Jian Li.
131529
131530        Mac has already disabled BlobBuilder, but Chromium still has it.
131531        We should start showing a warning to let people migrate to using Blob constructor.
131532
131533        Tests: fast/files/blob-builder-crash.html
131534
131535        * fileapi/WebKitBlobBuilder.cpp:
131536        (WebCore):
131537        (WebCore::WebKitBlobBuilder::create):
131538        * fileapi/WebKitBlobBuilder.h:
131539        (WebCore):
131540        (WebKitBlobBuilder):
131541        * fileapi/WebKitBlobBuilder.idl:
131542
1315432012-06-10  Sam Weinig  <sam@webkit.org>
131544
131545        Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
131546        https://bugs.webkit.org/show_bug.cgi?id=88723
131547
131548        Reviewed by Dan Bernstein.
131549
131550        * WebCore.exp.in:
131551        Update export.
131552        * editing/Editor.cpp:
131553        (WebCore::Editor::rangeOfString):
131554        (WebCore::Editor::countMatchesForText):
131555        * editing/Editor.h:
131556        (Editor):
131557        * loader/FrameLoader.cpp:
131558        (WebCore::FrameLoader::findFrameForNavigation):
131559        * page/DOMWindow.cpp:
131560        (WebCore::DOMWindow::parent):
131561        (WebCore::DOMWindow::top):
131562        * page/EventHandler.cpp:
131563        (WebCore::EventHandler::hitTestResultAtPoint):
131564        * page/Frame.cpp:
131565        (WebCore::Frame::Frame):
131566        * page/Frame.h:
131567        (Frame):
131568        * page/FrameTree.cpp:
131569        (WebCore::FrameTree::parent):
131570        (WebCore::FrameTree::top):
131571        * page/FrameTree.h:
131572        (FrameTree):
131573        * page/Location.cpp:
131574        (WebCore::Location::ancestorOrigins):
131575        * xml/XMLTreeViewer.cpp:
131576        (WebCore::XMLTreeViewer::hasNoStyleInformation):
131577        Update for the removal of disconnected frames and text search exclusions concepts.
131578
1315792012-06-07  Kinuko Yasuda  <kinuko@google.com>
131580
131581        Move Quota related code out of DOMWindow and into the quota/ folder
131582        https://bugs.webkit.org/show_bug.cgi?id=88512
131583
131584        Reviewed by Adam Barth.
131585
131586        No new tests: no visible changes.
131587
131588        * CMakeLists.txt:
131589        * DerivedSources.cpp:
131590        * DerivedSources.make:
131591        * DerivedSources.pri:
131592        * Modules/quota/DOMWindowQuota.cpp: Added.
131593        * Modules/quota/DOMWindowQuota.h: Added.
131594        * Modules/quota/DOMWindowQuota.idl: Added.
131595        * Modules/quota/StorageInfo.cpp: Renamed from Source/WebCore/storage/StorageInfo.cpp.
131596        * Modules/quota/StorageInfo.h: Renamed from Source/WebCore/storage/StorageInfo.h.
131597        * Modules/quota/StorageInfo.idl: Renamed from Source/WebCore/storage/StorageInfo.idl.
131598        * Modules/quota/StorageInfoErrorCallback.h: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.h.
131599        * Modules/quota/StorageInfoErrorCallback.idl: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.idl.
131600        * Modules/quota/StorageInfoQuotaCallback.h: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.h.
131601        * Modules/quota/StorageInfoQuotaCallback.idl: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.idl.
131602        * Modules/quota/StorageInfoUsageCallback.h: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.h.
131603        * Modules/quota/StorageInfoUsageCallback.idl: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.idl.
131604        * Target.pri:
131605        * WebCore.gyp/WebCore.gyp:
131606        * WebCore.gypi:
131607        * WebCore.pri:
131608        * WebCore.vcproj/WebCore.vcproj:
131609        * WebCore.vcproj/WebCoreCommon.vsprops:
131610        * WebCore.vcproj/copyForwardingHeaders.cmd:
131611        * WebCore.xcodeproj/project.pbxproj:
131612        * page/DOMWindow.cpp:
131613        * page/DOMWindow.h:
131614        * page/DOMWindow.idl:
131615
1316162012-06-10  Hayato Ito  <hayato@chromium.org>
131617
131618        An inheritance of '-webkit-user-modify' does not stop at shadow boundary.
131619        https://bugs.webkit.org/show_bug.cgi?id=88514
131620
131621        Reviewed by Ryosuke Niwa.
131622
131623        In StyleResolver::styleForElement(), we reset '-webkit-user-modify'
131624        CSS property after inheriting a parent style, but that is not
131625        enough.  We also have to reset '-webkit-user-modify' when we use a
131626        cached result in applying matched properties.
131627
131628        Test: fast/dom/shadow/user-modify-inheritance.html
131629
131630        * css/StyleResolver.cpp:
131631        (WebCore::StyleResolver::applyMatchedProperties):
131632        (WebCore::StyleResolver::styleForElement):
131633        * css/StyleResolver.h:
131634        (StyleResolver):
131635        * rendering/style/RenderStyle.cpp:
131636        (WebCore::RenderStyle::inheritFrom):
131637        * rendering/style/RenderStyle.h:
131638
1316392012-06-10  Yoshifumi Inoue  <yosin@chromium.org>
131640
131641        [Forms] Introduce Decimal behind the InputNumber type
131642        https://bugs.webkit.org/show_bug.cgi?id=88383
131643
131644        Reviewed by Kent Tamura.
131645
131646        This patch introduces decimal arithmetic for steppable input types,
131647        e.g. date, datetime, number, range, and so on, to avoid rounding error
131648        caused by base 2 floating point representation, e.g. C/C++ double type.
131649
131650        Most of decimal arithmetic calculations are implemented in StepRange
131651        class, replacing "double" with "Decimal", InputType::applyStep, and
131652        InputType::stepFromRenderer.
131653
131654        Changes introduced by this patch are still intermediate state.
131655        Following patch will replace InputNumber type to Decimal type for
131656        completion of introducing decimal arithmetic.
131657
131658        Test: fast/forms/range/range-value-rounding.html
131659
131660        * html/BaseDateAndTimeInputType.cpp:
131661        (WebCore::BaseDateAndTimeInputType::serialize): Changed for Decimal type.
131662        (WebCore::BaseDateAndTimeInputType::serializeWithComponents): ditto.
131663        * html/DateInputType.cpp:
131664        (WebCore::DateInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
131665        * html/DateTimeInputType.cpp:
131666        (WebCore::DateTimeInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
131667        * html/DateTimeLocalInputType.cpp:
131668        (WebCore::DateTimeLocalInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
131669        * html/InputType.cpp:
131670        (WebCore::InputType::rangeUnderflow): Changed for Decimal type.
131671        (WebCore::InputType::rangeOverflow): Changed for Decimal type.
131672        (WebCore::InputType::minimum): Changed for Decimal type.
131673        (WebCore::InputType::maximum): ditto.
131674        (WebCore::InputType::isInRange): ditto.
131675        (WebCore::InputType::isOutOfRange): ditto.
131676        (WebCore::InputType::stepMismatch): ditto.
131677        (WebCore::InputType::validationMessage): ditto.
131678        (WebCore::InputType::parseToNumberOrNaN): ditto.
131679        (WebCore::InputType::applyStep): ditto.
131680        (WebCore::InputType::stepUpFromRenderer): ditto.
131681        * html/InputType.h:
131682        (InputType): Removed parseToNumberWIthDecimaplPlaces.
131683        * html/MonthInputType.cpp:
131684        (WebCore::MonthInputType::createStepRange): Changed for Decimal type.
131685        * html/NumberInputType.cpp:
131686        (WebCore::RealNumberRenderSize): Added for calculateRenderSize.
131687        (WebCore::calculateRenderSize): Added. This function replacess lengthBeforeDecimalPoint.
131688        (WebCore::NumberInputType::createStepRange): Changed for Decimal type.
131689        (WebCore::NumberInputType::sizeShouldIncludeDecoration): Changed to use calculateRenderSize.
131690        (WebCore::NumberInputType::parseToNumber): Changed for Decimal type.
131691        (WebCore::NumberInputType::serialize): ditto.
131692        * html/NumberInputType.h:
131693        (NumberInputType): Removed parseToNumberWIthDecimaplPlaces.
131694        * html/RangeInputType.cpp:
131695        (WebCore::RangeInputType::createStepRange): Changed for Decimal type.
131696        (WebCore::RangeInputType::handleKeydownEvent): ditto.
131697        (WebCore::RangeInputType::parseToNumber): ditto.
131698        (WebCore::RangeInputType::serialize): ditto.
131699        * html/StepRange.cpp:
131700        (WebCore::StepRange::StepRange): Removed decimal places and changed for Decimal type.
131701        (WebCore::StepRange::acceptableError): Changed for Decimal type.
131702        (WebCore::StepRange::alignValueForStep): ditto.
131703        (WebCore::StepRange::clampValue): Changed for Decimal type and std::min/max.
131704        (WebCore::StepRange::parseStep): Changed for Decimal type and removed NumberWithDecimalPlaces.
131705        (WebCore::StepRange::stepMismatch): Changed for Decimal type.
131706        (WebCore::convertDoubleToInputNumber): Changed to real implementation.
131707        (WebCore::convertInputNumberToDouble):  Changed to real implementation.
131708        * html/StepRange.h:
131709        (InputNumber): Replacement of NumberWithDecimalPlaces.
131710        (WebCore::StepRange::InputNumber::InputNumber):
131711        * html/TimeInputType.cpp:
131712        (WebCore::TimeInputType::createStepRange): Changed for Decimal type.
131713        * html/WeekInputType.cpp:
131714        (WebCore::WeekInputType::createStepRange): Changed for Decimal type.
131715        * html/parser/HTMLParserIdioms.cpp:
131716        (WebCore::serializeForNumberType): Added Decimal version.
131717        (WebCore::parseToDecimalForNumberType): Added.
131718        * html/parser/HTMLParserIdioms.h: Updated comments for parseToDoubleForNumberType.
131719        * html/shadow/SliderThumbElement.cpp:
131720        (WebCore::sliderPosition): Changed for Decimal type.
131721
1317222012-06-10  Jason Liu  <jason.liu@torchmobile.com.cn>
131723
131724        [BlackBerry] Possible to clobber httponly cookie.
131725        https://bugs.webkit.org/show_bug.cgi?id=86067
131726
131727        Reviewed by Rob Buis.
131728
131729        If a cookie is set by javaScript and there is already a same httpOnly cookie in cookieManager,
131730        we should reject it. If it has a httpOnly property, we reject it, too.
131731
131732        Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
131733
131734        * platform/blackberry/CookieJarBlackBerry.cpp:
131735        (WebCore::setCookies):
131736        * platform/blackberry/CookieManager.cpp:
131737        (WebCore::CookieManager::setCookies):
131738        (WebCore::CookieManager::checkAndTreatCookie):
131739        (WebCore::CookieManager::addCookieToMap):
131740        (WebCore::CookieManager::setPrivateMode):
131741        * platform/blackberry/CookieManager.h:
131742        * platform/blackberry/CookieMap.cpp:
131743        (WebCore::CookieMap::addOrReplaceCookie):
131744        (WebCore::CookieMap::removeCookie):
131745        * platform/blackberry/CookieMap.h:
131746        (CookieMap):
131747
1317482012-06-10  Pablo Flouret  <pablof@motorola.com>
131749
131750        Access control allow lists starting with a comma are parsed incorrectly (CORS)
131751        https://bugs.webkit.org/show_bug.cgi?id=88461
131752
131753        Reviewed by Adam Barth.
131754
131755        The parsing algorithm would stop parsing at the first comma (being an
131756        empty entry, of sorts) and bail out, effectively ignoring the whole
131757        header.
131758
131759        Test: http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html
131760
131761        * loader/CrossOriginPreflightResultCache.cpp:
131762        (WebCore::parseAccessControlAllowList):
131763
1317642012-06-10  Darin Adler  <darin@apple.com>
131765
131766        Some additional tweaks to keep TreeShared code simple/clean
131767        https://bugs.webkit.org/show_bug.cgi?id=88738
131768
131769        Reviewed by Adam Barth.
131770
131771        * platform/TreeShared.h: Make constructor and destructor both protected.
131772        It's slightly dangerous to have a public non-virtual destructor, and there
131773        is no reason it needs to be public.
131774        (WebCore::TreeShared::~TreeShared): Make debug-only destructor non-virtual;
131775        we were getting no value from it being virtual. Now that it's non-virtual,
131776        there is no need to use an #if on it since it's an empty inline destructor
131777        in non-debug builds.
131778
1317792012-06-06  Jer Noble  <jer.noble@apple.com>
131780
131781        REGRESSION: Setting invalid media "src" does not cause "error" event
131782        https://bugs.webkit.org/show_bug.cgi?id=88423
131783
131784        Reviewed by Eric Carlson.
131785
131786        Test: http/tests/media/video-src-invalid-error.html
131787
131788        Two problems here.  When the loadTimer is scheduled, the m_pendingLoadFlags
131789        variable is set to specify what type of load is scheduled.  It is cleared
131790        when the loadTimer fires. But, when prepareForLoad() stops the loadTimer,
131791        it does not clear the m_pendingLoadFlags variable, so the next time
131792        scheduleLoad() is called (when the src is changed to an invalid URL)
131793        prepareForLoad() is not called again.
131794
131795        Second problem: Due to a bug in QTKit (<rdar://problem/11606415>), the
131796        QTMovieLoadStateChangedNotification is never fired for an invalid http
131797        URL if QTMovieOpenAsyncRequiredAttribute:YES is not passed when creating
131798        the QTMovie.
131799
131800        Add a new utility method which both stops the m_loadTimer and clears the 
131801        m_pendingLoadFlags, and use it in all the places where m_loadTimer was 
131802        stopped explicitly:
131803
131804        * html/HTMLMediaElement.cpp:
131805        (WebCore::HTMLMediaElement::prepareForLoad):
131806        (WebCore::HTMLMediaElement::stopLoadTimer): Added
131807        (WebCore::HTMLMediaElement::userCancelledLoad):
131808        * html/HTMLMediaElement.h:
131809
131810        And pass QTMovieOpenAsyncRequiredAttribute:YES when creating the QTMovie:
131811
131812        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
131813        (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
131814
1318152012-06-06  Jer Noble  <jer.noble@apple.com>
131816
131817        Add logging functions to MediaPlayerPrivateQTKit.
131818        https://bugs.webkit.org/show_bug.cgi?id=88425
131819
131820        Reviewed by Eric Carlson.
131821
131822        No new tests; adds logging functions to aide debugging.
131823
131824        MediaPlayerPrivateQTKit should emit the same kind of logging messages as 
131825        other MediaPlayerPrivate engines to aide in debugging.
131826
131827        Distinguish between loadedRangesChanged() and loadStateChanged() for logging
131828        purposes:
131829        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
131830        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
131831        (WebCore::MediaPlayerPrivateQTKit::loadedRangesChanged):
131832        (-[WebCoreMovieObserver loadedRangesChanged:]):
131833
131834        Add LOG messages for each of the following functions:
131835        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
131836        (WebCore::MediaPlayerPrivateQTKit::~MediaPlayerPrivateQTKit):
131837        (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
131838        (WebCore::MediaPlayerPrivateQTKit::createQTMovieView):
131839        (WebCore::MediaPlayerPrivateQTKit::detachQTMovieView):
131840        (WebCore::MediaPlayerPrivateQTKit::createQTVideoRenderer):
131841        (WebCore::MediaPlayerPrivateQTKit::destroyQTVideoRenderer):
131842        (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
131843        (WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
131844        (WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
131845        (WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
131846        (WebCore::MediaPlayerPrivateQTKit::load):
131847        (WebCore::MediaPlayerPrivateQTKit::prepareToPlay):
131848        (WebCore::MediaPlayerPrivateQTKit::play):
131849        (WebCore::MediaPlayerPrivateQTKit::pause):
131850        (WebCore::MediaPlayerPrivateQTKit::seek):
131851        (WebCore::MediaPlayerPrivateQTKit::cancelSeek):
131852        (WebCore::MediaPlayerPrivateQTKit::setVolume):
131853        (WebCore::MediaPlayerPrivateQTKit::setRate):
131854        (WebCore::MediaPlayerPrivateQTKit::setPreservesPitch):
131855        (WebCore::MediaPlayerPrivateQTKit::cancelLoad):
131856        (WebCore::MediaPlayerPrivateQTKit::prepareForRendering):
131857        (WebCore::MediaPlayerPrivateQTKit::updateStates):
131858        (WebCore::MediaPlayerPrivateQTKit::loadStateChanged):
131859        (WebCore::MediaPlayerPrivateQTKit::rateChanged):
131860        (WebCore::MediaPlayerPrivateQTKit::sizeChanged):
131861        (WebCore::MediaPlayerPrivateQTKit::timeChanged):
131862        (WebCore::MediaPlayerPrivateQTKit::didEnd):
131863        (WebCore::MediaPlayerPrivateQTKit::clearMediaCache):
131864        (WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForSite):
131865        (WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks):
131866
1318672012-06-07  Jer Noble  <jer.noble@apple.com>
131868
131869        WebCore should use a single definition of an invalid media time.
131870        https://bugs.webkit.org/show_bug.cgi?id=88572
131871
131872        Reviewed by Eric Carlson.
131873
131874        No new tests; no change in functionality, so covered by existing tests.
131875
131876        Add a new, universal definition for an invalid media time:
131877        * platform/graphics/MediaPlayer.h:
131878        (WebCore::MediaPlayer::invalidTime):
131879
131880        Use this new definition instead of the hodge podge of (identical) local
131881        definitions for an invalid media time:
131882        * html/HTMLMediaElement.cpp:
131883        (WebCore::HTMLMediaElement::HTMLMediaElement):
131884        (WebCore::HTMLMediaElement::invalidateCachedTime):
131885        (WebCore::HTMLMediaElement::currentTime):
131886        (WebCore::HTMLMediaElement::initialTime):
131887        (WebCore::HTMLMediaElement::playbackProgressTimerFired):
131888        (WebCore::HTMLMediaElement::prepareMediaFragmentURI):
131889        (WebCore::HTMLMediaElement::applyMediaFragmentURI):
131890        * html/MediaFragmentURIParser.cpp:
131891        (WebCore::MediaFragmentURIParser::invalidTimeValue):
131892        (WebCore::MediaFragmentURIParser::MediaFragmentURIParser):
131893        (WebCore::MediaFragmentURIParser::startTime):
131894        (WebCore::MediaFragmentURIParser::endTime):
131895        (WebCore::MediaFragmentURIParser::parseTimeFragment):
131896        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
131897        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
131898        (WebCore::MediaPlayerPrivateAVFoundation::duration):
131899        (WebCore::MediaPlayerPrivateAVFoundation::seeking):
131900        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
131901        (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration):
131902        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
131903        (MediaPlayerPrivateAVFoundation):
131904        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
131905        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
131906        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
131907        (WebCore::MediaPlayerPrivateQTKit::duration):
131908        (WebCore::MediaPlayerPrivateQTKit::updateStates):
131909        (WebCore::MediaPlayerPrivateQTKit::timeChanged):
131910
1319112012-06-10  Darin Adler  <darin@apple.com>
131912
131913        Remove unneeded callRemovedLastRef function from TreeShared refactoring
131914        https://bugs.webkit.org/show_bug.cgi?id=88653
131915
131916        Reviewed by Sam Weinig.
131917
131918        * WebCore.exp.in: Updated to remove callRemovedLastRef and add removedLastRef.
131919
131920        * dom/ContainerNode.cpp: Removed callRemovedLastRef, which is no longer
131921        needed and also had a bad cast in it.
131922
131923        * dom/Document.h: Made removedLastRef private and non-virtual and made Node
131924        a friend so it can call the private function.
131925
131926        * dom/Node.cpp:
131927        (WebCore::Node::removedLastRef): Moved here. This should not be an inline
131928        function. Added comments explaining why it should not be inlined. Also added
131929        explicit code to call to Document::removedLastRef, and added a comment why
131930        that's the right thing to do here.
131931        * dom/Node.h: Inherit from TreeShared<Node, ContainerNode>. Made the
131932        removedLastRef function non-virtual and removed it from the header file.
131933        Updated TreeShared using statements. Made the TreeShared template class a
131934        friend so it can call the private removedLastRef.
131935
131936        * html/HTMLFormControlElement.h: Updated TreeShared using statements to specify
131937        Node instead, which accomplishes the same thing.
131938        * html/HTMLObjectElement.h: Ditto.
131939
131940        * platform/TreeShared.h: Made TreeShared take two template arguments for the
131941        node type and the parent node type. Removed the callRemovedLastRef functions and
131942        the extra forward declarations it required. Removed the private unused
131943        removedLastRef function; not sure why it was left in here at all.
131944        (WebCore::TreeShared::deref): Call removedLastRef instead of callRemovedLastRef.
131945        (WebCore::TreeShared::setParent): Use ParentNodeType.
131946        (WebCore::TreeShared::parent): Ditto.
131947        (WebCore::adopted): Updated to have both template arguments.
131948
131949        * svg/SVGElementInstance.cpp:
131950        (WebCore::SVGElementInstance::removedLastRef): Replaced callRemovedLastRef with
131951        this. Moved the body out of the header and added a comment explaining why the
131952        function should not be inlined.
131953        * svg/SVGElementInstance.h: Made removedLastRef non-virtual, non-inline, and
131954        private. Made TreeShared a friend so it can call the private removedLastRef.
131955        Updated TreeShared using statements.
131956
1319572012-06-10  Darin Adler  <darin@apple.com>
131958
131959        * WebCore.exp.in: Re-sorted and alphabetized the file.
131960
1319612012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
131962
131963        [Qt][Win] Fix building Source/WebCore/plugins/win/PluginViewWin.cpp
131964        https://bugs.webkit.org/show_bug.cgi?id=88308
131965
131966        Reviewed by Simon Hausmann.
131967
131968        No new tests, just a build fix.
131969
131970        Use ownerWindow() from page client. It has been
131971        introduced for x11 plugins to solve exactly the
131972        same problem.
131973
131974        * plugins/win/PluginViewWin.cpp:
131975        (windowHandleForPageClient):
131976
1319772012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
131978
131979        [Qt][Win] Fix building ImageQt.cpp
131980        https://bugs.webkit.org/show_bug.cgi?id=88306
131981
131982        Reviewed by Simon Hausmann.
131983
131984        No new tests, this is just a build fix.
131985
131986        * platform/graphics/qt/ImageQt.cpp:
131987        (WebCore):
131988        (WebCore::BitmapImage::create):
131989        Adapt to the "API" changes in Qt.
131990
1319912012-06-09  Gregg Tavares  <gman@google.com>
131992
131993        Make WebGL mark draws for compositing even if the draw count is zero
131994        https://bugs.webkit.org/show_bug.cgi?id=88718
131995
131996        Reviewed by Kenneth Russell.
131997
131998        No new tests as no new functionality.
131999
132000        * html/canvas/WebGLRenderingContext.cpp:
132001        (WebCore):
132002        (WebCore::WebGLRenderingContext::drawArrays):
132003        (WebCore::WebGLRenderingContext::drawElements):
132004
1320052012-06-09  Dominic Cooney  <dominicc@chromium.org>
132006
132007        [Chromium] Remove JavaScriptCore dependencies from gyp
132008        https://bugs.webkit.org/show_bug.cgi?id=88510
132009
132010        Reviewed by Adam Barth.
132011
132012        Chromium doesn't support JSC any more and there doesn't seem to be
132013        a strong interest in using GYP as the common build system in other
132014        ports.
132015
132016        No new functionality => No new tests.
132017
132018        * gyp/WebCore.gyp: Removed.
132019        * gyp/copy-forwarding-and-icu-headers.sh: Removed.
132020        * gyp/copy-inspector-resources.sh: Removed.
132021        * gyp/generate-derived-sources.sh: Removed.
132022        * gyp/generate-webcore-export-file-generator.sh: Removed.
132023        * gyp/gtk.gyp: Removed.
132024        * gyp/run-if-exists.sh: Removed.
132025        * gyp/streamline-inspector-source.sh: Removed.
132026        * gyp/update-info-plist.sh: Removed.
132027
1320282012-06-07  Darin Adler  <darin@apple.com>
132029
132030        Refactor and improve code style in TextResourceDecoder to prepare for buffering improvement
132031        https://bugs.webkit.org/show_bug.cgi?id=88566
132032
132033        Reviewed by Alexey Proskuryakov.
132034
132035        * loader/TextResourceDecoder.cpp:
132036        (WebCore::bytesEqual): Added helper function to make comparing against sequences of bytes
132037        easier to read at the call site.
132038        (WebCore::KanjiCode::judge): Changed to use bytesEqual in a few places, merged multiple if
132039        statements, got rid of else after goto.
132040        (WebCore::TextResourceDecoder::checkForCSSCharset): Changed to use early return instead of
132041        nesting the whole function. Changed to use bytesEqual.
132042        (WebCore::skipComment): Changed to use early return for more cases. Changed to use bytesEqual.
132043        (WebCore::TextResourceDecoder::checkForHeadCharset): Changed to use bytesEqual.
132044        (WebCore::TextResourceDecoder::decode): Changed to use emptyString() instead of "", since
132045        the former is more efficient.
132046
1320472012-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>
132048
132049        Unreviewed, rolling out r118618 and r119353.
132050        http://trac.webkit.org/changeset/118618
132051        http://trac.webkit.org/changeset/119353
132052        https://bugs.webkit.org/show_bug.cgi?id=88720
132053
132054        Caused at least 30 different crashes on ClusterFuzz (Requested
132055        by inferno-sec on #webkit).
132056
132057        * loader/SubresourceLoader.cpp:
132058        (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
132059        * loader/cache/CachedCSSStyleSheet.cpp:
132060        (WebCore::CachedCSSStyleSheet::allClientsRemoved):
132061        * loader/cache/CachedFont.cpp:
132062        (WebCore::CachedFont::allClientsRemoved):
132063        * loader/cache/CachedFont.h:
132064        (WebCore::CachedFontClient::resourceClientType):
132065        * loader/cache/CachedImage.cpp:
132066        (WebCore::CachedImage::removeClientForRenderer):
132067        (WebCore):
132068        (WebCore::CachedImage::allClientsRemoved):
132069        (WebCore::CachedImage::lookupOrCreateImageForRenderer):
132070        * loader/cache/CachedImage.h:
132071        (CachedImage):
132072        (WebCore::CachedImageClient::resourceClientType):
132073        * loader/cache/CachedRawResource.cpp:
132074        (WebCore::CachedRawResource::allClientsRemoved):
132075        (WebCore):
132076        * loader/cache/CachedRawResource.h:
132077        (CachedRawResource):
132078        (WebCore::CachedRawResourceClient::resourceClientType):
132079        * loader/cache/CachedResource.cpp:
132080        (WebCore::CachedResource::removeClient):
132081        * loader/cache/CachedResource.h:
132082        (WebCore::CachedResource::allClientsRemoved):
132083        * loader/cache/CachedResourceClient.h:
132084        (WebCore::CachedResourceClient::resourceClientType):
132085        * loader/cache/CachedSVGDocument.h:
132086        (WebCore::CachedSVGDocumentClient::resourceClientType):
132087        * loader/cache/CachedScript.cpp:
132088        (WebCore::CachedScript::allClientsRemoved):
132089        * loader/cache/CachedStyleSheetClient.h:
132090        (WebCore::CachedStyleSheetClient::resourceClientType):
132091        * rendering/style/StyleCachedImage.cpp:
132092        (WebCore::StyleCachedImage::removeClient):
132093        * rendering/style/StyleCachedImageSet.cpp:
132094        (WebCore::StyleCachedImageSet::removeClient):
132095        * svg/graphics/SVGImageCache.cpp:
132096        (WebCore::SVGImageCache::~SVGImageCache):
132097        (WebCore::SVGImageCache::removeRendererFromCache):
132098        (WebCore::SVGImageCache::setRequestedSizeAndScales):
132099        (WebCore::SVGImageCache::requestedSizeAndScales):
132100        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
132101        * svg/graphics/SVGImageCache.h:
132102        (WebCore):
132103        (SVGImageCache):
132104
1321052012-06-09  Florin Malita  <fmalita@chromium.org>
132106
132107        Fixed-position foreignObject descendants should be relative to the foreignObject viewport
132108        https://bugs.webkit.org/show_bug.cgi?id=88547
132109
132110        Reviewed by Abhishek Arya.
132111
132112        Tests: svg/foreignObject/fO-fixed-position-crash.html
132113               svg/foreignObject/fixed-position-expected.svg
132114               svg/foreignObject/fixed-position.svg
132115
132116        Fixed position elements are currently registered with the top level
132117        RenderView even when embedded within an SVG foreignOject. This patch
132118        changes containingBlock() & container() to return the containing
132119        foreignObject renderer instead.
132120
132121        The new foreignObject fixed position behavior matches that of current
132122        FireFox and Opera versions and is consistent with the spec:
132123        http://www.w3.org/TR/CSS2/visuren.html#fixed-positioning
132124        http://www.w3.org/TR/SVG/coords.html#EstablishingANewViewport
132125
132126        * rendering/RenderObject.cpp:
132127        (WebCore::RenderObject::containingBlock):
132128        (WebCore::RenderObject::container):
132129
1321302012-06-09  Adam Barth  <abarth@webkit.org>
132131
132132        Can't use eval in iframes sanbdoxed via CSP header
132133        https://bugs.webkit.org/show_bug.cgi?id=88450
132134
132135        Reviewed by Mihai Parparita.
132136
132137        The initial empty document in a frame inherits the security context of
132138        its parent (including the CSP policy).  When we load the real document,
132139        in some cases we'll do a "secure transition" to the new document.  That
132140        means that we leave the global object in place in case the parent
132141        document has created any properties that it expects will be visible to
132142        the new document.
132143
132144        If the parent document has a CSP policy that blocks eval, the "no eval"
132145        bit will be set on the global object of the initial document.  When we
132146        perform a "secure transition" to the new document, we'll keep the bit,
132147        which is wrong.  In this patch, we reset the bit by always enabling
132148        eval when clearing the context, regardless of whether we're performing
132149        a "secure transition".
132150
132151        Test: http/tests/security/contentSecurityPolicy/iframe-inside-csp.html
132152
132153        * bindings/js/ScriptController.cpp:
132154        (WebCore::ScriptController::enableEval):
132155        (WebCore):
132156        * bindings/js/ScriptController.h:
132157        (ScriptController):
132158        * bindings/v8/ScriptController.cpp:
132159        (WebCore::ScriptController::enableEval):
132160        (WebCore):
132161        (WebCore::ScriptController::disableEval):
132162        * bindings/v8/ScriptController.h:
132163        (ScriptController):
132164        * loader/FrameLoader.cpp:
132165        (WebCore::FrameLoader::clear):
132166
1321672012-06-09  Pablo Flouret  <pablof@motorola.com>
132168
132169        The value in Access-Control-Allow-Origin is not being matched correctly for CORS-enabled requests
132170        https://bugs.webkit.org/show_bug.cgi?id=88139
132171
132172        Reviewed by Adam Barth.
132173
132174        Compare a request's origin with the value given in any
132175        Access-Control-Allow-Origin headers in an exact, case-sensitive manner,
132176        instead of using SecurityOrigin::isSameSchemeHostPort(). Per step 3 of
132177        the resource sharing check algorithm in
132178        http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#resource-sharing-check
132179
132180        Test: http/tests/xmlhttprequest/origin-exact-matching.html
132181
132182        * loader/CrossOriginAccessControl.cpp:
132183        (WebCore::passesAccessControlCheck):
132184
1321852012-06-09  Huang Dongsung  <luxtella@company100.net>
132186
132187        [Qt][Texmap] All layers with backingStore are opaque when using TextureMapperGL.
132188        https://bugs.webkit.org/show_bug.cgi?id=88703
132189
132190        The bug originated from StillImage that is not override
132191        Image::currentFrameHasAlpha(), so it always returns false.
132192        StillImage is used by ImageBuffer, and if Texmap draws contents on ImageBuffer,
132193        TextureMapperBackingStore thinks contents does not have alpha.
132194
132195        Covered by existing compositing tests.
132196
132197        Reviewed by Noam Rosenthal.
132198
132199        * platform/graphics/qt/StillImageQt.cpp:
132200        (WebCore::StillImage::currentFrameHasAlpha):
132201        (WebCore):
132202        * platform/graphics/qt/StillImageQt.h:
132203        (StillImage):
132204
1322052012-06-09  Victor Carbune  <victor@rosedu.org>
132206
132207        Basic support for timestamps within a TextTrackCue
132208        https://bugs.webkit.org/show_bug.cgi?id=88187
132209
132210        Implemented support for timestamps within a TextTrackCue.
132211        This enables rendering functionality for Karaoke and Paint-on captions.
132212
132213        Reviewed by Eric Carlson.
132214
132215        Test: media/track/track-cue-rendering-inner-timestamps.html
132216
132217        * css/mediaControls.css: Remove the background shadow pseudo-id and
132218        added two others, which can be further used for styling past / future
132219        contents of the cue.
132220        (video::-webkit-media-text-track-past-nodes): Used to style elements
132221        within the cue that are before the current movie time.
132222        (video::-webkit-media-text-track-future-nodes): Used to style elements
132223        within the cue that are after the current movie time.
132224        * html/HTMLMediaElement.cpp:
132225        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Regardless of whether
132226        the active set changed or not, the current cues need to be informed of the current
132227        movie time.
132228        * html/track/TextTrackCue.cpp:
132229        (WebCore::TextTrackCue::TextTrackCue): Initiliazed past and future containers.
132230        (WebCore::TextTrackCue::getCueAsHTML): Checked whether the current cue text has
132231        inner timestamps or not, in order to render faster if no timestamps are there.
132232        (WebCore::TextTrackCue::updateDisplayTree): Added method that keeps the past and future
132233        containers up to date, given a current movie time.
132234        (WebCore):
132235        (WebCore::TextTrackCue::getDisplayTree): Replaced the cue background container with the
132236        past cues container. The *internal* display tree of the cue now has two containers,
132237        representing past and future elements.
132238        * html/track/TextTrackCue.h: Added several variables to support the new functionality.
132239        (TextTrackCue):
132240        * html/track/WebVTTParser.cpp:
132241        (WebCore::WebVTTParser::constructTreeFromToken): Updated representation for this patch.
132242        * html/track/WebVTTParser.h:
132243        (WebVTTParser): Made public the collectTimeStamp method, as this is required for
132244        parsing timestamps within a cue as well.
132245
1322462012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
132247
132248        Web Inspector: Open links in Sources panel by default and fallback to Resources and Network panel otherwise.
132249        https://bugs.webkit.org/show_bug.cgi?id=88710
132250
132251        Reviewed by Pavel Feldman.
132252
132253        * inspector/front-end/inspector.js:
132254        (WebInspector.documentClick.followLink):
132255        (WebInspector.documentClick):
132256        (WebInspector._showAnchorLocation):
132257
1322582012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
132259
132260        Web Inspector: Only expand root domain in Sources/Scripts panel
132261        https://bugs.webkit.org/show_bug.cgi?id=88135
132262
132263        Reviewed by Pavel Feldman.
132264
132265        * inspector/front-end/NavigatorView.js:
132266        (WebInspector.NavigatorTreeOutline._treeElementsCompare.compare.typeWeight):
132267        (WebInspector.NavigatorTreeOutline._treeElementsCompare):
132268        (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
132269
1322702012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
132271
132272        Web Inspector: Pretty print should respect text editor indent setting.
132273        https://bugs.webkit.org/show_bug.cgi?id=88713
132274
132275        Reviewed by Pavel Feldman.
132276
132277        * inspector/front-end/ScriptFormatter.js:
132278
1322792012-06-09  Dan Bernstein  <mitz@apple.com>
132280
132281        Fixed the build after r119895.
132282
132283        * WebCore.xcodeproj/project.pbxproj:
132284
1322852012-06-09  Andrey Kosyakov  <caseq@chromium.org>
132286
132287        Web Inspector: [refactoring] rename TimelineVerticalOverview into TimelineFrameOverview
132288        https://bugs.webkit.org/show_bug.cgi?id=88708
132289
132290        Reviewed by Vsevolod Vlasov.
132291
132292        - rename TimelineVerticalOverview to TimelineFrameOverview;
132293        - rename associated fields, parameters, CSS classes etc;
132294        - rename overview mode designators to match the UI;
132295        - drop unused CSS rules for old-style mode selector;
132296
132297        * inspector/front-end/TimelineOverviewPane.js:
132298        (WebInspector.TimelineOverviewPane):
132299        (WebInspector.TimelineOverviewPane.prototype._showEvents):
132300        (WebInspector.TimelineOverviewPane.prototype._showFrames):
132301        (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
132302        (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
132303        (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
132304        (WebInspector.TimelineOverviewPane.prototype._update):
132305        (WebInspector.TimelineOverviewPane.prototype.addFrame):
132306        (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
132307        (WebInspector.TimelineOverviewPane.prototype._reset):
132308        (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
132309        (WebInspector.TimelineFrameOverview):
132310        * inspector/front-end/TimelinePanel.js:
132311        (WebInspector.TimelinePanel):
132312        (WebInspector.TimelinePanel.prototype._shouldShowFrames):
132313        (WebInspector.TimelinePanel.prototype.revealRecordAt):
132314        * inspector/front-end/timelinePanel.css:
132315        (.timeline-frame-overview #timeline-overview-grid):
132316        (.timeline-frame-overview .timeline-overview-window):
132317        (.timeline-frame-overview .timeline-overview-dividers-background):
132318        (.timeline-frame-overview #timeline-overview-memory):
132319        (.timeline-frame-overview-status-bar-item.toggled-on .glyph):
132320        (.timeline-frame-overview-bars):
132321        (.timeline.timeline-frame-overview .resources-divider):
132322        (.sidebar-tree-item .timeline-frame-overview-status-bar-item):
132323
1323242012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
132325
132326        IndexedDB: Inspector should handle null, string, and array keyPaths
132327        https://bugs.webkit.org/show_bug.cgi?id=84303
132328
132329        Reviewed by Pavel Feldman.
132330
132331        Supported different key path types and updated tests to cover each case.
132332        Key path strings are now highlighted in the DataGrid column headers.
132333
132334        * inspector/Inspector.json:
132335        * inspector/InspectorIndexedDBAgent.cpp:
132336        (WebCore):
132337        * inspector/front-end/IndexedDBModel.js:
132338        (WebInspector.IndexedDBModel.idbKeyPathFromKeyPath):
132339        (WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath):
132340        (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
132341        (WebInspector.IndexedDBModel.prototype._loadDatabase):
132342        (WebInspector.IndexedDBModel.ObjectStore.prototype.get keyPathString):
132343        (WebInspector.IndexedDBModel.Index.prototype.get keyPathString):
132344        * inspector/front-end/IndexedDBViews.js:
132345        (WebInspector.IDBDataView.prototype._createDataGrid):
132346        (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
132347        (WebInspector.IDBDataView.prototype._keyPathStringFragment):
132348        (WebInspector.IDBDataGridNode.prototype.createCell):
132349        * inspector/front-end/ResourcesPanel.js:
132350        (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
132351        (WebInspector.IDBIndexTreeElement.prototype._updateTooltip):
132352
1323532012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
132354
132355        Web Inspector: Increase size limits for resource content cached in InspectorResourceAgent.
132356        https://bugs.webkit.org/show_bug.cgi?id=88674
132357
132358        Reviewed by Pavel Feldman.
132359
132360        * inspector/NetworkResourcesData.cpp:
132361
1323622012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>
132363
132364        Web Inspector: Limit DebuggerAgent.Location use to DebuggerModel only, introduce WebInspector.RawLocation to be used elsewhere.
132365        https://bugs.webkit.org/show_bug.cgi?id=87270
132366
132367        Reviewed by Pavel Feldman.
132368
132369        Introduced WebInspector.RawLocation interface, a generic raw location independent from concrete domain (Styles, Debugger).
132370        Made WebInspector.DebuggerModel.Location implement it and switched all debugger related methods to it.
132371
132372        * inspector/front-end/BreakpointManager.js:
132373        (WebInspector.BreakpointManager.prototype._breakpointResolved):
132374        * inspector/front-end/CompilerScriptMapping.js:
132375        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
132376        * inspector/front-end/DebuggerModel.js:
132377        (WebInspector.DebuggerModel.Location):
132378        (WebInspector.DebuggerModel.prototype.continueToLocation):
132379        (WebInspector.DebuggerModel.prototype.setBreakpointByScriptLocation):
132380        (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
132381        (WebInspector.DebuggerModel.prototype.setBreakpoint):
132382        (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
132383        (WebInspector.DebuggerModel.prototype._breakpointResolved):
132384        (WebInspector.DebuggerModel.prototype.createRawLocation):
132385        (WebInspector.DebuggerModel.prototype.createRawLocationByURL):
132386        (WebInspector.DebuggerModel.prototype.setSelectedCallFrame):
132387        (WebInspector.DebuggerModel.prototype.createLiveLocation):
132388        (WebInspector.DebuggerModel.CallFrame.prototype.get location):
132389        (WebInspector.DebuggerModel.CallFrame.prototype.createLiveLocation):
132390        * inspector/front-end/DebuggerResourceBinding.js:
132391        (WebInspector.DebuggerResourceBinding.setScriptSource.didEditScriptSource):
132392        (WebInspector.DebuggerResourceBinding.setScriptSource):
132393        (WebInspector.DebuggerResourceBinding.prototype.setContent.get if):
132394        (WebInspector.DebuggerResourceBinding.prototype.setContent):
132395        (WebInspector.DebuggerResourceBinding.prototype._setContentWithInitialContent):
132396        * inspector/front-end/JavaScriptSource.js:
132397        (WebInspector.JavaScriptSource.prototype.uiLocationToRawLocation):
132398        * inspector/front-end/Linkifier.js:
132399        * inspector/front-end/ObjectPopoverHelper.js:
132400        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
132401        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
132402        * inspector/front-end/PresentationConsoleMessageHelper.js:
132403        * inspector/front-end/RawSourceCode.js:
132404        * inspector/front-end/ResourceScriptMapping.js:
132405        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
132406        * inspector/front-end/Script.js:
132407        (WebInspector.Script.prototype.rawLocationToUILocation):
132408        * inspector/front-end/ScriptSnippetModel.js:
132409        (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
132410        * inspector/front-end/SourceMapping.js:
132411        * inspector/front-end/UISourceCode.js:
132412        (WebInspector.RawLocation):
132413
1324142012-06-09  Eugene Klyuchnikov  <eustas.bug@gmail.com>
132415
132416        Web Inspector: Add message loop instrumentation to public API and timeline agent
132417        https://bugs.webkit.org/show_bug.cgi?id=88639
132418
132419        Reviewed by Vsevolod Vlasov.
132420
132421        Message loop instrumentation will show when the render thread is busy.
132422        That way developer can discover if a render thread business causes low fps, or not.
132423
132424        * inspector/InspectorClient.h:
132425        (WebCore::InspectorClient::startMessageLoopMonitoring): Starts observer.
132426        (WebCore::InspectorClient::stopMessageLoopMonitoring): Stops observer.
132427        * inspector/InspectorController.cpp:
132428        (WebCore::InspectorController::InspectorController):
132429        Changed timeline agent constructor parameters.
132430        * inspector/InspectorInstrumentation.cpp:
132431        (WebCore::InspectorInstrumentation::willProcessTaskImpl):
132432        Forwards observer notification.
132433        (WebCore):
132434        (WebCore::InspectorInstrumentation::didProcessTaskImpl):
132435        Ditto.
132436        * inspector/InspectorInstrumentation.h:
132437        (InspectorInstrumentation):
132438        (WebCore::InspectorInstrumentation::willProcessTask):
132439        Ditto.
132440        (WebCore):
132441        (WebCore::InspectorInstrumentation::didProcessTask):
132442        Ditto.
132443        * inspector/InspectorTimelineAgent.cpp:
132444        (WebCore::InspectorTimelineAgent::start):
132445        Starts observer.
132446        (WebCore::InspectorTimelineAgent::stop):
132447        Stops observer.
132448        (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
132449        Changed result origin.
132450        (WebCore::InspectorTimelineAgent::willProcessTask):
132451        Noop implementqation.
132452        (WebCore):
132453        (WebCore::InspectorTimelineAgent::didProcessTask):
132454        Noop implementqation.
132455        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
132456        Changed constructor parameters.
132457        * inspector/InspectorTimelineAgent.h:
132458        (WebCore::InspectorTimelineAgent::create):
132459        Ditto.
132460        (InspectorTimelineAgent):
132461        * inspector/WorkerInspectorController.cpp:
132462        (WebCore::WorkerInspectorController::WorkerInspectorController):
132463        Changed timeline agent constructor parameters.
132464
1324652012-06-08  Andrey Kosyakov  <caseq@chromium.org>
132466
132467        Web Inspector: optimize timeline's frame mode overview appearance for 30fps
132468        https://bugs.webkit.org/show_bug.cgi?id=88556
132469
132470        Reviewed by Vsevolod Vlasov.
132471
132472        - adjust frame overview scale to 30fps == full height by default;
132473        - provide a fall-back auto-scale mode when median frame is longer than 1/30s;
132474        - add horizontal lines for 30 and 60fps;
132475        - drive-by fix: always use same order of categories in frame bars.
132476
132477        * inspector/front-end/TimelineOverviewPane.js:
132478        (WebInspector.TimelineVerticalOverview.prototype.update):
132479        (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
132480        (WebInspector.TimelineVerticalOverview.prototype._renderBars):
132481        (WebInspector.TimelineVerticalOverview.prototype._drawFPSMarks):
132482        (WebInspector.TimelineVerticalOverview.prototype._renderBar):
132483
132484
1324852012-06-09  Sukolsak Sakshuwong  <sukolsak@google.com>
132486
132487        Add UNDO_MANAGER flag
132488        https://bugs.webkit.org/show_bug.cgi?id=87908
132489
132490        Reviewed by Tony Chang.
132491
132492        Add undoManager property to document behind the UNDO_MANAGER flag and
132493        add placeholders for some methods of undoManager.
132494
132495        Test: editing/undomanager/document-has-undomanager.html
132496
132497        * CMakeLists.txt:
132498        * Configurations/FeatureDefines.xcconfig:
132499        * DerivedSources.cpp:
132500        * DerivedSources.make:
132501        * DerivedSources.pri:
132502        * GNUmakefile.am:
132503        * GNUmakefile.list.am:
132504        * WebCore.gypi:
132505        * WebCore.xcodeproj/project.pbxproj:
132506        * dom/Document.cpp:
132507        (WebCore::Document::Document):
132508        (WebCore):
132509        (WebCore::Document::undoManager):
132510        * dom/Document.h:
132511        (WebCore):
132512        (Document):
132513        * dom/Document.idl:
132514        * editing/UndoManager.cpp: Added.
132515        (WebCore):
132516        (WebCore::UndoManager::create):
132517        (WebCore::UndoManager::UndoManager):
132518        (WebCore::UndoManager::undo):
132519        (WebCore::UndoManager::redo):
132520        (WebCore::UndoManager::clearUndo):
132521        (WebCore::UndoManager::clearRedo):
132522        * editing/UndoManager.h: Added.
132523        (WebCore):
132524        (UndoManager):
132525        * editing/UndoManager.idl: Added.
132526
1325272012-06-08  Levi Weintraub  <leviw@chromium.org>
132528
132529        RenderLayer::paintChildLayerIntoColumns doesn't properly pixel snap
132530        https://bugs.webkit.org/show_bug.cgi?id=88554
132531
132532        Reviewed by Darin Adler.
132533
132534        Column handling code in RenderLayer and RenderBlock was improperly clipping and translating
132535        using floats derived from FractionalLayoutUnits without pixel snapping. RenderLayer also
132536        improperly stored render tree offsets in ints instead of LayoutUnits. This corrects this
132537        issue.
132538
132539        Test: fast/sub-pixel/column-clipping.html
132540
132541        * rendering/RenderBlock.cpp:
132542        (WebCore::RenderBlock::paintColumnContents):
132543        * rendering/RenderLayer.cpp:
132544        (WebCore::RenderLayer::paintChildLayerIntoColumns):
132545
1325462012-06-08  Rakesh KN  <rakesh.kn@motorola.com>
132547
132548        REGRESSION(r116487?): HTMLFormElement::elements['name'] is empty if the form is detached from the document tree
132549        https://bugs.webkit.org/show_bug.cgi?id=88632
132550
132551        Reviewed by Ryosuke Niwa.
132552
132553        Update root node of RadioNodeList when the form element is detached from dom tree.
132554
132555        Test: fast/forms/radionodelist-whose-form-element-detached-from-domtree.html
132556
132557        * dom/Node.cpp:
132558        (WebCore::Node::resetCachedRadioNodeListRootNode):
132559        New function to update the root node of RadioNodeLists to form element from document.
132560        * dom/Node.h: Ditto.
132561        * html/HTMLFormElement.cpp:
132562        (WebCore::HTMLFormElement::removedFrom):
132563        On detach, we update the root node of all RadioNodeLists of this form element.
132564        * html/RadioNodeList.cpp:
132565        (WebCore::RadioNodeList::setRootElement):
132566        Setter for updating root node.
132567        * html/RadioNodeList.h:
132568        (RadioNodeList): Ditto.
132569
1325702012-06-08  David Reveman  <reveman@chromium.org>
132571
132572        [Chromium] Compositor doesn't support translucent root layers.
132573        https://bugs.webkit.org/show_bug.cgi?id=87821
132574
132575        Reviewed by James Robinson.
132576
132577        Forward the isTransparent WebView setting to WebLayerTreeView,
132578        CCLayerTreeHost and CCLayerTreeHostImpl as hasTransparentBackground.
132579        Use hasTransparentBackground setting to determine how to clear the
132580        root render pass and draw the background. Set opaque flag correctly
132581        on the NonCompositedContentHost's graphics layer to make sure
132582        sub-pixel rendering is not used with a transparent WebView.
132583
132584        Unit tests: CCLayerTreeHostImplTest.hasTransparentBackground
132585                    LayerRendererChromiumTest2.opaqueRenderPass
132586                    LayerRendererChromiumTest2.transparentRenderPass
132587
132588        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
132589        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
132590        * platform/graphics/chromium/LayerRendererChromium.cpp:
132591        (WebCore::LayerRendererChromium::clearRenderPass):
132592        (WebCore::LayerRendererChromium::drawRenderPass):
132593        (WebCore::LayerRendererChromium::drawBackgroundFilters):
132594        * platform/graphics/chromium/LayerRendererChromium.h:
132595        (LayerRendererChromium):
132596        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
132597        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
132598        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
132599        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
132600        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
132601        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
132602        (WebCore::CCLayerTreeHost::setHasTransparentBackground):
132603        (CCLayerTreeHost):
132604        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
132605        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
132606        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
132607        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
132608        (WebCore::CCLayerTreeHostImpl::hasTransparentBackground):
132609        (WebCore::CCLayerTreeHostImpl::setHasTransparentBackground):
132610        (CCLayerTreeHostImpl):
132611        * platform/graphics/chromium/cc/CCRenderPass.cpp:
132612        (WebCore::CCRenderPass::CCRenderPass):
132613        * platform/graphics/chromium/cc/CCRenderPass.h:
132614        (WebCore::CCRenderPass::hasTransparentBackground):
132615        (WebCore::CCRenderPass::setHasTransparentBackground):
132616        (CCRenderPass):
132617
1326182012-06-08  Ian Vollick  <vollick@chromium.org>
132619
132620        [chromium] Single thread proxy's animation timer should short circuit if the layer renderer has not been initialized
132621        https://bugs.webkit.org/show_bug.cgi?id=88668
132622
132623        Reviewed by James Robinson.
132624
132625        Unit test: CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer.runSingleThreaded
132626
132627        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
132628        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
132629
1326302012-06-08  Shezan Baig  <shezbaig.wk@gmail.com>
132631
132632        Caret is not rendered in empty inline contenteditable elements
132633        https://bugs.webkit.org/show_bug.cgi?id=85793
132634
132635        Reviewed by Ryosuke Niwa.
132636
132637        Override localCaretRect in RenderInline. The implementation was almost
132638        identical to localCaretRect in RenderBlock for empty block elements, so
132639        I refactored RenderBlock::localCaretRect and moved the logic to a new
132640        method 'localCaretRectForEmptyElement' in RenderBoxModelObject. The
132641        implementation of 'localCaretRect' in RenderBlock and RenderInline both
132642        use this helper method in RenderBoxModelObject.
132643
132644        Tests: editing/selection/caret-in-empty-inline-1.html
132645               editing/selection/caret-in-empty-inline-2.html
132646
132647        * rendering/RenderBlock.cpp:
132648        (WebCore::RenderBlock::localCaretRect):
132649        Modified to use RenderBoxModelObject::localCaretRectForEmptyElement.
132650        * rendering/RenderBoxModelObject.cpp:
132651        (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
132652        (WebCore):
132653        * rendering/RenderBoxModelObject.h:
132654        (RenderBoxModelObject):
132655        Add localCaretRectForEmptyElement helper method.
132656        * rendering/RenderInline.cpp:
132657        (WebCore::RenderInline::localCaretRect):
132658        (WebCore):
132659        * rendering/RenderInline.h:
132660        (RenderInline):
132661        Override localCaretRect using localCaretRectForEmptyElement.
132662
1326632012-06-08  Mike West  <mkwst@chromium.org>
132664
132665        Treat blob: and filesystem: URLs generated via secure origins as secure.
132666        https://bugs.webkit.org/show_bug.cgi?id=84054
132667
132668        Loading a blob: or filesystem: URL into an iframe or image that's
132669        contained on an HTTPS page shouldn't generate a mixed content warning.
132670        This change adds a SecurityOrigin::isSecure to check both against a
132671        URLs protocol, and the protocol of it's so-called "inner URL" if it's
132672        the type of URL that has such a thing. These sorts of URLs which are
132673        generated from secure sources will themselves be treated as secure.
132674
132675        Reviewed by Adam Barth.
132676
132677        Tests: http/tests/security/mixedContent/blob-url-in-iframe.html
132678               http/tests/security/mixedContent/filesystem-url-in-iframe.html
132679
132680        * loader/FrameLoader.cpp:
132681        (WebCore::FrameLoader::isMixedContent):
132682        * page/SecurityOrigin.cpp:
132683        (WebCore):
132684        (WebCore::SecurityOrigin::isSecure):
132685        * page/SecurityOrigin.h:
132686        (SecurityOrigin):
132687
1326882012-06-08  Martin Robinson  <mrobinson@igalia.com>
132689
132690        [Cairo] [TextureMapperGL] Nvidia card does not update WebGL texture when interacting with canvas
132691        https://bugs.webkit.org/show_bug.cgi?id=87797
132692
132693        Reviewed by Philippe Normand.
132694
132695        No new tests. WebGL is already covered by WebGL tests and this
132696        bug is only present on certain hardware.
132697
132698        After resolving multisampling before drawing the texture via the
132699        TextureMapper, first rebind the multisampling framebuffer. This ensures
132700        that the texture isn't active in two framebuffers at a time.
132701
132702        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
132703        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Rebind the multisampling
132704        framebuffer.
132705
1327062012-06-08  Alexey Proskuryakov  <ap@apple.com>
132707
132708        <rdar://problem/11412294> Add appropriate iOS default font settings
132709
132710        Reviewed by Dan Bernstein.
132711
132712        * page/mac/SettingsMac.mm: (WebCore::Settings::initializeDefaultFontFamilies):
132713
1327142012-06-08  Charles Wei  <charles.wei@torchmobile.com.cn>
132715
132716        IndexedDB: Transactions without any request scheduled should abort itself.
132717        https://bugs.webkit.org/show_bug.cgi?id=88052
132718
132719        Reviewed by Kentaro Hara.
132720
132721        This is needed for indexedDB to make it work for JSC. We need to clean up all the
132722        pending transactions(transactions without any request scheduled) when leaving Javascript context.
132723
132724        Manually tested using the existing test LayoutTests/storage/indexeddb/tutorial.html
132725
132726        * bindings/js/JSMainThreadExecState.cpp:
132727        (WebCore):
132728        (WebCore::JSMainThreadExecState::didLeaveScriptContext):
132729        * bindings/js/JSMainThreadExecState.h:
132730        (WebCore::JSMainThreadExecState::~JSMainThreadExecState):
132731        (JSMainThreadExecState):
132732
1327332012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
132734
132735        Crash in WebCore::CompositeEditCommand::breakOutOfEmptyListItem
132736        https://bugs.webkit.org/show_bug.cgi?id=88361
132737
132738        Reviewed by Levi Weintraub.
132739
132740        Use RefPtr instead of raw pointers across DOM mutations.
132741
132742        No tests are added for the lack of a reliable reduction.
132743
132744        * editing/CompositeEditCommand.cpp:
132745        (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
132746
1327472012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
132748
132749        Unreviewed, rolling out r119514.
132750        http://trac.webkit.org/changeset/119514
132751        https://bugs.webkit.org/show_bug.cgi?id=88664
132752
132753        Broke JSFiddle.net (Requested by arv on #webkit).
132754
132755        * bindings/v8/V8DOMWindowShell.cpp:
132756        (WebCore::V8DOMWindowShell::initContextIfNeeded):
132757        * bindings/v8/WorkerContextExecutionProxy.cpp:
132758        (WebCore::WorkerContextExecutionProxy::initIsolate):
132759
1327602012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
132761
132762        Crash in WebCore::InsertParagraphSeparatorCommand::doApply
132763        https://bugs.webkit.org/show_bug.cgi?id=88108
132764
132765        Reviewed by Levi Weintraub.
132766
132767        Use NodeVector instead of walking through siblings as we mutate the DOM.
132768
132769        No new tests are added since there is no reliable reduction.
132770
132771        * editing/BreakBlockquoteCommand.cpp:
132772        (WebCore::BreakBlockquoteCommand::doApply):
132773        * editing/CompositeEditCommand.cpp:
132774        (WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent):
132775        (WebCore):
132776        * editing/CompositeEditCommand.h:
132777        (CompositeEditCommand):
132778        * editing/InsertParagraphSeparatorCommand.cpp:
132779        (WebCore::InsertParagraphSeparatorCommand::doApply):
132780
1327812012-06-08  David Grogan  <dgrogan@chromium.org>
132782
132783        IndexedDB: rename some instances of open to registerFrontendCallbacks
132784        https://bugs.webkit.org/show_bug.cgi?id=88611
132785
132786        We should still make the change in the WebKit API.
132787
132788        Reviewed by Tony Chang.
132789
132790        No new tests, just a method rename.
132791
132792        * Modules/indexeddb/IDBDatabase.cpp:
132793        (WebCore::IDBDatabase::registerFrontendCallbacks):
132794        * Modules/indexeddb/IDBDatabase.h:
132795        (IDBDatabase):
132796        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
132797        (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
132798        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
132799        (IDBDatabaseBackendImpl):
132800        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
132801        (IDBDatabaseBackendInterface):
132802        * Modules/indexeddb/IDBRequest.cpp:
132803        (WebCore::IDBRequest::onSuccess):
132804
1328052012-06-08  Dana Jansens  <danakj@chromium.org>
132806
132807        [chromium] Skip willDraw() and didDraw() on fully occluded layers
132808        https://bugs.webkit.org/show_bug.cgi?id=88435
132809
132810        Reviewed by Adrienne Walker.
132811
132812        Current willDraw() is called on all layers with non-empty
132813        visibleLayerRect and non-empty scissorRect. This excludes
132814        layers outside the viewport, but does not exclude occluded
132815        layers. We add a check for occlusion to calculateRenderPasses
132816        in order to avoid willDraw() when it will be culled anyway.
132817
132818        We prevent didDraw() from being called for occluded layers, for
132819        which we did not call didDraw() by holding a vector of layers
132820        for which we did call willDraw(). This lets us avoid storing a
132821        flag on the layers, or computing occlusion again in
132822        didDrawAllLayers.
132823
132824        Unit test: CCLayerTreeHostImplTest.willDrawNotCalledOnOccludedLayer
132825
132826        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
132827        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
132828        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
132829        (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
132830        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
132831        (FrameData):
132832        (CCLayerTreeHostImpl):
132833
1328342012-06-08  Antonio Gomes  <agomes@rim.com>
132835
132836        EventHandler shouldn't schedule the fake mousemove event timer when scrolling on devices that don't have a mouse
132837        https://bugs.webkit.org/show_bug.cgi?id=88379
132838
132839        Reviewed by James Robinson.
132840
132841        Paraphrasing Andy Estes:
132842        "In <http://trac.webkit.org/changeset/119465> we stopped dispatching fake
132843        mousemove events when scrolling on devices that don't support mice. This event
132844        is dispatched on a timer, so one better would be to not even schedule the
132845        timer (rather than scheduling the timer but making it a no-op).
132846
132847        No new tests, as no functionality has changed. We basically do not
132848        start a timer under a given circumstance instead of fire it, it times out,
132849        and we make the callback no-op when under the given circumstance.
132850
132851        It is still possible though that we have the following scenario:
132852        - Setting::deviceSupportsMouse set as true;
132853        - we fire the timer;
132854        - before its callback gets executed (timed out) the setting gets toggled.
132855        So for sakeness, lets keep the check in both places.
132856
132857        * page/EventHandler.cpp:
132858        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
132859        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
132860
1328612012-06-08  James Robinson  <jamesr@chromium.org>
132862
132863        [chromium] Clean up some unnecessary LayerChromium.h includes
132864        https://bugs.webkit.org/show_bug.cgi?id=88599
132865
132866        Reviewed by Adam Barth.
132867
132868        Reworks test code slightly to use WebCore interfaces.
132869
132870        * testing/Internals.cpp:
132871        (WebCore::Internals::setBackgroundBlurOnNode):
132872
1328732012-06-08  Erik Arvidsson  <arv@chromium.org>
132874
132875        [V8] Keep TextTrackList alive as long as its owner is alive
132876        https://bugs.webkit.org/show_bug.cgi?id=88541
132877
132878        Reviewed by Adam Barth.
132879
132880        Add a hidden reference from the owner to the text track list.
132881
132882        Covered by existing tests.
132883
132884        * Target.pri: Add V8TextTrackListCustom.cpp.
132885        * UseV8.cmake: Ditto.
132886        * WebCore.gypi: Ditto.
132887        * bindings/v8/V8HiddenPropertyName.h:
132888        (WebCore):
132889        * bindings/v8/custom/V8TextTrackListCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
132890        (WebCore):
132891        (WebCore::toV8): When the wrapper is created add a reference to the owner of the TextTrackList to the TextTrackList.
132892        * html/track/TextTrackList.idl:
132893
1328942012-06-08  Ian Vollick  <vollick@chromium.org>
132895
132896        [chromium] Accelerated animations should use WebTransformOperations
132897        https://bugs.webkit.org/show_bug.cgi?id=87686
132898
132899        Reviewed by James Robinson.
132900
132901        CCTransformKeyframe new owns a WebTransformOperations rather than a
132902        TransformOperations. LayerChromium's API has been changed so that
132903        LayerChromium::addAnimation should take only a CCActiveAnimation.
132904        GraphicsLayerChromium is new responsible for translating to
132905        WebTransformOperations and creating CCActiveAnimations. Tests that use
132906        the public API (that is, they call addAnimation with KeyframeValueList
132907        and Animation arguments) have been moved to GraphicsLayerChromiumTest.
132908
132909         Unit tests:
132910            GraphicsLayerChromiumTest.createOpacityAnimation
132911            GraphicsLayerChromiumTest.createTransformAnimation
132912            GraphicsLayerChromiumTest.createTransformAnimationWithBigRotation
132913            GraphicsLayerChromiumTest.createTransformAnimationWithSingularMatrix
132914            GraphicsLayerChromiumTest.createReversedAnimation
132915            GraphicsLayerChromiumTest.createAlternatingAnimation
132916            GraphicsLayerChromiumTest.createReversedAlternatingAnimation
132917
132918        * WebCore.gypi:
132919        * platform/graphics/chromium/AnimationTranslationUtil.cpp: Added.
132920        (WebCore):
132921        (WebCore::toWebTransformOperations):
132922        (WebCore::appendKeyframe):
132923        (WebCore::CCKeyframedTransformAnimationCurve):
132924        (WebCore::createActiveAnimation):
132925        * platform/graphics/chromium/AnimationTranslationUtil.h: Added.
132926        (WebCore):
132927        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
132928        (WebCore::GraphicsLayerChromium::addAnimation):
132929        * platform/graphics/chromium/LayerChromium.cpp:
132930        (WebCore::LayerChromium::addAnimation):
132931        * platform/graphics/chromium/LayerChromium.h:
132932        (WebCore):
132933        (WebCore::LayerChromium::bounds):
132934        (LayerChromium):
132935        * platform/graphics/chromium/LinkHighlight.cpp:
132936        (WebCore::LinkHighlight::LinkHighlight):
132937        * platform/graphics/chromium/cc/CCAnimationCurve.h:
132938        (CCTransformAnimationCurve):
132939        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
132940        (WebCore::CCTransformKeyframe::create):
132941        (WebCore::CCTransformKeyframe::CCTransformKeyframe):
132942        (WebCore::CCTransformKeyframe::value):
132943        (WebCore::CCTransformKeyframe::clone):
132944        (WebCore::CCKeyframedTransformAnimationCurve::getValue):
132945        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
132946        (CCTransformKeyframe):
132947        (CCKeyframedTransformAnimationCurve):
132948        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
132949        (WebCore::CCLayerAnimationController::removeAnimation):
132950        (WebCore):
132951        (WebCore::CCLayerAnimationController::addAnimation):
132952        (WebCore::CCLayerAnimationController::getActiveAnimation):
132953        (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
132954        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
132955        (WebCore::CCLayerAnimationController::tickAnimations):
132956        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
132957        (CCLayerAnimationControllerClient):
132958        (CCLayerAnimationController):
132959        * platform/graphics/chromium/cc/CCLayerImpl.h:
132960        (WebCore::CCLayerImpl::bounds):
132961
1329622012-06-08  No'am Rosenthal  <noam.rosenthal@nokia.com>
132963
132964        [Texmap] Accelerated versions of drop-shadow and blur filters
132965        https://bugs.webkit.org/show_bug.cgi?id=87695
132966
132967        Reviewed by Kenneth Rohde Christiansen.
132968
132969        Added shaders for blur and drop-shadow effects.
132970        The shaders use sampling of multiple coordinates and averaging them with normal-
132971        distribution to create a fast gaussian blur effect.
132972
132973        Covered by existing tests in css3/filters.
132974
132975        * platform/graphics/texmap/TextureMapperGL.cpp:
132976        (WebCore::TextureMapperGL::drawFiltered):
132977            Call the prepare function explicitly, with a size argument that's used to calculate
132978            some of the uniform values.
132979
132980        * platform/graphics/texmap/TextureMapperLayer.cpp:
132981        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
132982            The outsets of the effect have to be considered when calculating the intermediate rect.
132983            Otherwise the resulting image is scaled instead of outsetted.
132984
132985        (WebCore::applyFilters):
132986        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
132987        (WebCore::StandardFilterProgram::StandardFilterProgram):
132988            Added the new shaders.
132989
132990        (WebCore::StandardFilterProgram::prepare):
132991        (WebCore::TextureMapperShaderManager::getShaderForFilter):
132992        * platform/graphics/texmap/TextureMapperShaderManager.h:
132993        (StandardFilterProgram):
132994
1329952012-06-08  Dan Bernstein  <mitz@apple.com>
132996
132997        Tried to fix the build after r119844.
132998
132999        * bindings/js/GCController.cpp:
133000        (WebCore::GCController::discardAllCompiledCode):
133001
1330022012-06-08  Mike West  <mkwst@chromium.org>
133003
133004        Add COMPILE_ASSERT to StyledElement to ensure it doesn't accidentally grow larger.
133005        https://bugs.webkit.org/show_bug.cgi?id=88627
133006
133007        Reviewed by Adam Barth.
133008
133009        No change in user-facing behavior.
133010
133011        * dom/StyledElement.cpp:
133012        (WebCore):
133013
1330142012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
133015
133016        Web Inspector: Fix several compiler warnings and errors.
133017        https://bugs.webkit.org/show_bug.cgi?id=88660
133018
133019        Reviewed by Pavel Feldman.
133020
133021        Fixed several compiler warnings and errors.
133022        Removed isEmpty method from Object.prototype and made it static method on Object.
133023
133024        * inspector/InjectedScriptExterns.js:
133025        * inspector/front-end/FileSystemModel.js:
133026        (WebInspector.FileSystemModel.prototype._detachFrame):
133027        * inspector/front-end/HeapSnapshot.js:
133028        (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
133029        * inspector/front-end/utilities.js:
133030        (Object.isEmpty):
133031
1330322012-06-08  Max Feil  <mfeil@rim.com>
133033
133034        [BlackBerry] Fix assertion failure introduced by bug 87551
133035        https://bugs.webkit.org/show_bug.cgi?id=88659
133036
133037        Reviewed by Antonio Gomes.
133038
133039        The determineRenderSlider() convenience function added in bug
133040        87551 made an assumption that wasn't always true. This didn't
133041        cause a functional error but it caused an assertion failure,
133042        which indicates a problem with the code. PR164142.
133043
133044        No new tests because this case is already covered by ASSERT's.
133045
133046        * platform/blackberry/RenderThemeBlackBerry.cpp:
133047        (WebCore::determineRenderSlider):
133048
1330492012-06-08  Ion Rosca  <rosca@adobe.com>
133050
133051        Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
133052        https://bugs.webkit.org/show_bug.cgi?id=74111
133053
133054        Reviewed by Simon Fraser.
133055
133056        Added zero-delay timer for AppKit scroll notification that can be called during layout.
133057        Manual test: ManualTests/scrollbar-crash-on-hide-scrolled-area.html
133058        This assertion does not fire when running layout tests. It can be easly reproduced using a debug build by loading the manual test page.
133059
133060        * platform/mac/ScrollAnimatorMac.h:
133061        (ScrollAnimatorMac):
133062        * platform/mac/ScrollAnimatorMac.mm:
133063        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
133064        (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
133065        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
133066        (WebCore):
133067        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
133068
1330692012-06-08  Renata Hodovan  <reni@webkit.org>
133070
133071        Adding few already supported features to the FeatureSet in DOMImplementation
133072        https://bugs.webkit.org/show_bug.cgi?id=86482
133073
133074        Text, Filter and View features are already implemented but they
133075        are not added to the SVG11 feature set. This is corrected in this patch.
133076
133077        Reviewed by Nikolas Zimmermann.
133078
133079        No new testcase is needed because we already have one what checks the svg features via
133080        DOMImplementation (svg/custom/svg-features.html).
133081
133082        * dom/DOMImplementation.cpp:
133083        (WebCore::isSVG11Feature):
133084
1330852012-06-08  Stephen Chenney  <schenney@chromium.org>
133086
133087        WebCore::ImageBuffer.cpp has broken color table code
133088        https://bugs.webkit.org/show_bug.cgi?id=80321
133089
133090        Reviewed by Dirk Schulze.
133091
133092        The code in ImageBuffer::transformColorSpace had two problems that are
133093        fixed by this patch.
133094
133095        First, it was using member variables for data
133096        that is static constant. This is incredibly wasteful, as every
133097        ImageBuffer that is created (and we make a lot of them) gets its own
133098        copy of the LUT and the table is initialized again and again. The
133099        patch replaces this with a static local, with lazy evaluation, in
133100        the method that uses the tables.
133101
133102        Second, the code for filling the table was mapping 255 to 254, thus
133103        reducing the intensity and alpha of every image it pushed through a
133104        color transform.
133105
133106        Test: svg/filters/color-space-conversion.svg
133107
133108        * platform/graphics/ImageBuffer.cpp:
133109        (WebCore::ImageBuffer::transformColorSpace):
133110        * platform/graphics/ImageBuffer.h:
133111        (ImageBuffer):
133112
1331132012-06-08  Alexei Filippov  <alexeif@chromium.org>
133114
133115        Web Inspector: Better labels positioning on the memory pie chart
133116        https://bugs.webkit.org/show_bug.cgi?id=88652
133117
133118        Reviewed by Vsevolod Vlasov.
133119
133120        * inspector/front-end/NativeMemorySnapshotView.js:
133121        (WebInspector.NativeMemoryPieChart.prototype._paint.paintPercentAndLabel):
133122        (WebInspector.NativeMemoryPieChart.prototype._paint):
133123
1331242012-06-08  Bryan McQuade  <bmcquade@google.com>
133125
133126        Web Inspector: Annotate timeline records with a frame identifier
133127        https://bugs.webkit.org/show_bug.cgi?id=86406
133128
133129        Reviewed by Vsevolod Vlasov.
133130
133131        Tests: Updated existing layout tests.
133132
133133        * inspector/InspectorController.cpp:
133134        (WebCore::InspectorController::InspectorController):
133135        * inspector/InspectorInstrumentation.cpp:
133136        (WebCore::frameForScriptExecutionContext):
133137        (WebCore):
133138        (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl):
133139        (WebCore::InspectorInstrumentation::didInstallTimerImpl):
133140        (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
133141        (WebCore::InspectorInstrumentation::willCallFunctionImpl):
133142        (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl):
133143        (WebCore::InspectorInstrumentation::willDispatchEventImpl):
133144        (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
133145        (WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
133146        (WebCore::InspectorInstrumentation::willFireTimerImpl):
133147        (WebCore::InspectorInstrumentation::willLayoutImpl):
133148        (WebCore::InspectorInstrumentation::willLoadXHRImpl):
133149        (WebCore::InspectorInstrumentation::willPaintImpl):
133150        (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
133151        (WebCore::InspectorInstrumentation::willSendRequestImpl):
133152        (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
133153        (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
133154        (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
133155        (WebCore::InspectorInstrumentation::didFailLoadingImpl):
133156        (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
133157        (WebCore::InspectorInstrumentation::loadEventFiredImpl):
133158        (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
133159        (WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
133160        (WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
133161        (WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
133162        * inspector/InspectorInstrumentation.h:
133163        (InspectorInstrumentation):
133164        (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
133165        (WebCore::InspectorInstrumentation::didInstallTimer):
133166        (WebCore::InspectorInstrumentation::didRemoveTimer):
133167        (WebCore::InspectorInstrumentation::willCallFunction):
133168        (WebCore::InspectorInstrumentation::willChangeXHRReadyState):
133169        (WebCore::InspectorInstrumentation::willDispatchEvent):
133170        (WebCore::InspectorInstrumentation::willEvaluateScript):
133171        (WebCore::InspectorInstrumentation::willFireTimer):
133172        (WebCore::InspectorInstrumentation::willLayout):
133173        (WebCore::InspectorInstrumentation::willLoadXHR):
133174        (WebCore::InspectorInstrumentation::willPaint):
133175        (WebCore::InspectorInstrumentation::willRecalculateStyle):
133176        (WebCore::InspectorInstrumentation::willReceiveResourceData):
133177        (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
133178        (WebCore::InspectorInstrumentation::willWriteHTML):
133179        (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
133180        (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
133181        (WebCore::InspectorInstrumentation::willFireAnimationFrame):
133182        * inspector/InspectorTimelineAgent.cpp:
133183        (WebCore::InspectorTimelineAgent::pushGCEventRecords):
133184        (WebCore::InspectorTimelineAgent::didBeginFrame):
133185        (WebCore::InspectorTimelineAgent::willCallFunction):
133186        (WebCore::InspectorTimelineAgent::willDispatchEvent):
133187        (WebCore::InspectorTimelineAgent::willLayout):
133188        (WebCore::InspectorTimelineAgent::willRecalculateStyle):
133189        (WebCore::InspectorTimelineAgent::willPaint):
133190        (WebCore::InspectorTimelineAgent::willComposite):
133191        (WebCore::InspectorTimelineAgent::willWriteHTML):
133192        (WebCore::InspectorTimelineAgent::didInstallTimer):
133193        (WebCore::InspectorTimelineAgent::didRemoveTimer):
133194        (WebCore::InspectorTimelineAgent::willFireTimer):
133195        (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
133196        (WebCore::InspectorTimelineAgent::willLoadXHR):
133197        (WebCore::InspectorTimelineAgent::willEvaluateScript):
133198        (WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
133199        (WebCore::InspectorTimelineAgent::willSendResourceRequest):
133200        (WebCore::InspectorTimelineAgent::willReceiveResourceData):
133201        (WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
133202        (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
133203        (WebCore::InspectorTimelineAgent::didTimeStamp):
133204        (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
133205        (WebCore::InspectorTimelineAgent::didMarkLoadEvent):
133206        (WebCore::InspectorTimelineAgent::didRequestAnimationFrame):
133207        (WebCore::InspectorTimelineAgent::didCancelAnimationFrame):
133208        (WebCore::InspectorTimelineAgent::willFireAnimationFrame):
133209        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
133210        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
133211        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
133212        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
133213        (WebCore::InspectorTimelineAgent::appendRecord):
133214        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
133215        (WebCore::InspectorTimelineAgent::pushCancelableRecord):
133216        (WebCore::InspectorTimelineAgent::commitCancelableRecords):
133217        * inspector/InspectorTimelineAgent.h:
133218        (WebCore):
133219        (WebCore::InspectorTimelineAgent::create):
133220        (InspectorTimelineAgent):
133221        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
133222        (TimelineRecordEntry):
133223        * inspector/WorkerInspectorController.cpp:
133224        (WebCore::WorkerInspectorController::WorkerInspectorController):
133225        * inspector/front-end/TimelinePresentationModel.js:
133226        (WebInspector.TimelinePresentationModel.isEventDivider):
133227        (WebInspector.TimelinePresentationModel.Record):
133228
1332292012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
133230
133231        Unreviewed, rolling out r119821.
133232        http://trac.webkit.org/changeset/119821
133233        https://bugs.webkit.org/show_bug.cgi?id=88648
133234
133235        Seems to have regression on Mac (Requested by kinuko on
133236        #webkit).
133237
133238        * fileapi/File.cpp:
133239        (WebCore::File::File):
133240        (WebCore::File::lastModifiedDate):
133241        (WebCore::File::lastModifiedDateForBinding):
133242        (WebCore):
133243        (WebCore::File::captureSnapshot):
133244        * fileapi/File.h:
133245        (File):
133246        * fileapi/File.idl:
133247        * platform/FileMetadata.h:
133248        (WebCore::FileMetadata::FileMetadata):
133249        * platform/FileSystem.h:
133250        * platform/chromium/support/WebHTTPBody.cpp:
133251        (WebKit::WebHTTPBody::elementAt):
133252        * platform/network/BlobData.cpp:
133253        (WebCore):
133254        * platform/network/BlobData.h:
133255        (BlobDataItem):
133256        (WebCore::BlobDataItem::BlobDataItem):
133257        * platform/network/FormData.cpp:
133258        (WebCore::FormData::appendFile):
133259        * platform/network/cf/FormDataStreamCFNet.cpp:
133260        (WebCore::advanceCurrentStream):
133261        * platform/network/soup/ResourceHandleSoup.cpp:
133262        (WebCore::blobIsOutOfDate):
133263
1332642012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
133265
133266        Unreviewed, removing duplicated entries in gyp.
133267
133268        * WebCore.gypi:
133269
1332702012-06-08  Arko Saha  <arko@motorola.com>
133271
133272        Microdata: An element with an empty itemprop='' should not get listed in the .properties list.
133273        https://bugs.webkit.org/show_bug.cgi?id=88235
133274
133275        Reviewed by Ryosuke Niwa.
133276
133277        As per the specification change http://html5.org/r/6854, an element should be listed in .properties
133278        if the elelement has an attribute itemprop specified and the element has one or more property names.
133279
133280        Test: fast/dom/MicroData/element-with-empty-itemprop.html
133281
133282        * html/HTMLPropertiesCollection.cpp:
133283        (WebCore::HTMLPropertiesCollection::itemAfter):
133284
1332852012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
133286
133287        File::lastModifiedDate should use NaN or separate boolean flag for null Date value
133288        https://bugs.webkit.org/show_bug.cgi?id=87826
133289
133290        Reviewed by Kent Tamura.
133291
133292        Test: http/tests/local/fileapi/file-last-modified-after-delete.html
133293
133294        * fileapi/File.cpp:
133295        (WebCore::File::File):
133296        (WebCore::File::captureSnapshot):
133297        (WebCore::File::lastModifiedDate):
133298        (WebCore::File::lastModifiedDateForBinding): Removed.
133299        * fileapi/File.h:
133300        (File):
133301        * fileapi/File.idl:
133302        * platform/FileMetadata.h:
133303        (WebCore::FileMetadata::FileMetadata):
133304        * platform/FileSystem.h:
133305        * platform/chromium/support/WebHTTPBody.cpp:
133306        (WebKit::WebHTTPBody::elementAt):
133307        * platform/network/BlobData.h:
133308        (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
133309        * platform/network/BlobData.cpp:
133310        * platform/network/cf/FormDataStreamCFNet.cpp:
133311        (WebCore::advanceCurrentStream):
133312        * platform/network/soup/ResourceHandleSoup.cpp:
133313        (WebCore::blobIsOutOfDate):
133314
1333152012-06-08  Kent Tamura  <tkent@chromium.org>
133316
133317        Move form-related functions of Document to FormController
133318        https://bugs.webkit.org/show_bug.cgi?id=88497
133319
133320        Reviewed by Hajime Morita.
133321
133322        A lot of files depend on Document.h. We had to build many files when we
133323        touched form-related features in Document.h or
133324        CheckedRadioButtons.h. This patch reduces such pain.
133325
133326        No new tests. Just a refactoring.
133327
133328        * CMakeLists.txt: Add FormController.cpp and/or FormController.h.
133329        * GNUmakefile.list.am: ditto.
133330        * Target.pri: ditto.
133331        * WebCore.gypi: ditto.
133332        * WebCore.vcproj/WebCore.vcproj: ditto.
133333        * WebCore.xcodeproj/project.pbxproj: ditto.
133334
133335        * dom/Document.cpp: Removed form-releated features except the followings.
133336        (WebCore::Document::formController): Accessor for a FormController.
133337        (WebCore::Document::formElementsState):
133338        Just returns FormController::formElementsState().
133339        We don't create new FormController.
133340        (WebCore::Document::setStateForNewFormElements):
133341        Just returns FormController::setStateForNewFormElements().
133342        We don't create new FormController if the specified vector is empty.
133343        * dom/Document.h:
133344        Moved form-related functions to FormController.
133345
133346        * html/FormController.cpp: Added. Moved from Document.cpp.
133347        * html/FormController.h: Added. Moved from Document.h
133348
133349        * html/FormAssociatedElement.cpp: Use Document::formController().
133350        (WebCore::FormAssociatedElement::didMoveToNewDocument):
133351        (WebCore::FormAssociatedElement::insertedInto):
133352        (WebCore::FormAssociatedElement::removedFrom):
133353        (WebCore::FormAssociatedElement::formAttributeChanged):
133354        * html/HTMLFormControlElementWithState.cpp: Use Document::formController().
133355        (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
133356        (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
133357        (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
133358        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
133359        * html/HTMLFormElement.cpp: Use Document::formController().
133360        (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
133361        (WebCore::HTMLFormElement::removedFrom):
133362        * html/HTMLInputElement.cpp: Use Document::formController().
133363        (WebCore::HTMLInputElement::~HTMLInputElement):
133364        (WebCore::HTMLInputElement::didMoveToNewDocument):
133365        (WebCore::HTMLInputElement::checkedRadioButtons):
133366        * html/HTMLInputElement.h:
133367        Declare CheckedRadioButtons. It was provided by Document.h.
133368        * html/parser/HTMLConstructionSite.h:
133369        Declare HTMLFormElement. It was provided by Document.h
133370
1333712012-06-08  Taiju Tsuiki  <tzik@chromium.org>
133372
133373        Add FileSystem item to storage tree.
133374        https://bugs.webkit.org/show_bug.cgi?id=72691
133375
133376        Reviewed by Vsevolod Vlasov.
133377
133378        * WebCore.gypi:
133379        * WebCore.vcproj/WebCore.vcproj:
133380        * inspector/compile-front-end.py:
133381        * inspector/front-end/FileSystemModel.js: Added.
133382        * inspector/front-end/Images/fileSystem.png: Added.
133383        * inspector/front-end/ResourcesPanel.js:
133384        (WebInspector.FileSystemListTreeElement):
133385        (WebInspector.FileSystemListTreeElement.prototype.onexpand):
133386        (WebInspector.FileSystemListTreeElement.prototype.onattach):
133387        (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
133388        (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
133389        (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
133390        (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
133391        (WebInspector.FileSystemListTreeElement.prototype._refreshFileSystem):
133392        (WebInspector.FileSystemTreeElement):
133393        (WebInspector.FileSystemTreeElement.prototype.get fileSystemName):
133394        (WebInspector.FileSystemTreeElement.prototype.get itemURL):
133395        * inspector/front-end/Settings.js:
133396        (WebInspector.ExperimentsSettings):
133397        * inspector/front-end/WebKit.qrc:
133398        * inspector/front-end/inspector.html:
133399        * inspector/front-end/resourcesPanel.css:
133400        (.file-system-storage-tree-item .icon):
133401        * inspector/front-end/utilities.js:
133402
1334032012-06-08  Kentaro Hara  <haraken@chromium.org>
133404
133405        REGRESSION r119802: Remove unnecessary ASSERT(!m_deletionHasBegun) from Document.h
133406        https://bugs.webkit.org/show_bug.cgi?id=88528
133407
133408        Reviewed by Ryosuke Niwa.
133409
133410        m_deletionHasBegun should become true just before 'delete this'.
133411
133412        No tests. No change in behavior.
133413
133414        * dom/Document.h:
133415        (WebCore::Document::guardRef):
133416        (WebCore::Document::guardDeref):
133417
1334182012-06-08  Adam Barth  <abarth@webkit.org>
133419
133420        HTTP 204 No Content responses shouldn't trigger MIME type warnings in the web inspector
133421        https://bugs.webkit.org/show_bug.cgi?id=88603
133422
133423        Reviewed by Pavel Feldman.
133424
133425        A 204 response doesn't have an entity body, so its MIME type is kind of
133426        meaningless.  We shouldn't spam the console with a warning about MIME
133427        types.
133428
133429        * inspector/front-end/NetworkManager.js:
133430        (WebInspector.NetworkDispatcher.prototype._mimeTypeIsConsistentWithType):
133431
1334322012-06-08  Yoshifumi Inoue  <yosin@chromium.org>
133433
133434        [Forms] Drop StepRange::NumberWithDecimalPlacesOrMissing
133435        https://bugs.webkit.org/show_bug.cgi?id=88621
133436
133437        Reviewed by Kent Tamura.
133438
133439        This patch changes NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
133440        We use NaN as indication of having value or not.
133441
133442        No new tests, because this patch doesn't change behavior.
133443
133444        * html/DateInputType.cpp:
133445        (WebCore::DateInputType::createStepRange): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
133446        * html/DateTimeInputType.cpp:
133447        (WebCore::DateTimeInputType::createStepRange): ditto.
133448        * html/DateTimeLocalInputType.cpp:
133449        (WebCore::DateTimeLocalInputType::createStepRange): ditto.
133450        * html/MonthInputType.cpp:
133451        (WebCore::MonthInputType::createStepRange): ditto.
133452        * html/NumberInputType.cpp:
133453        (WebCore::NumberInputType::createStepRange): ditto.
133454        * html/RangeInputType.cpp:
133455        (WebCore::RangeInputType::createStepRange): ditto.
133456        * html/StepRange.cpp:
133457        (WebCore::StepRange::StepRange): Checks value is finite or not.
133458        (WebCore::StepRange::parseStep): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
133459        * html/StepRange.h:
133460        (StepRange): Removed NumberWithDecimalPlacesOrMissing.
133461        * html/TimeInputType.cpp:
133462        (WebCore::TimeInputType::createStepRange):  NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
133463        * html/WeekInputType.cpp:
133464        (WebCore::WeekInputType::createStepRange): ditto.
133465
1334662012-06-08  Kentaro Hara  <haraken@chromium.org>
133467
133468        Unreviewed. Fixed a comment, pointed out by ap@.
133469
133470        * platform/TreeShared.h:
133471        (WebCore):
133472
1334732012-06-08  Noel Gordon  <noel.gordon@gmail.com>
133474
133475        [chromium] WEBP image blue and red color channels reversed on Android
133476        https://bugs.webkit.org/show_bug.cgi?id=88613
133477
133478        Reviewed by Kent Tamura.
133479
133480        No new tests. Covered by test fast/images/webp-image-decoding.html though I'm
133481        not sure where/how the Androids run their layout tests.
133482
133483        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
133484        (outputMode): Detect little-endian Skia with a blue pixel shift (aka Android)
133485        which seems to be the way for them per bug 75861.
133486
1334872012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
133488
133489        Remove the assertion that has been moved to TreeScope after r119802.
133490
133491        * dom/Document.cpp:
133492        (WebCore::Document::removedLastRef):
133493
1334942012-06-07  Kentaro Hara  <haraken@chromium.org>
133495
133496        Reduce Node object size from 72 byte to 64 byte
133497        https://bugs.webkit.org/show_bug.cgi?id=88528
133498
133499        Reviewed by Ryosuke Niwa.
133500
133501        This patch removes all virtual methods from TreeShared.h,
133502        by which we can remove a virtual method table pointer (8 byte
133503        in a 64bit architechture) from each Node object. Consequently,
133504        this patch reduces the Node object size from 72 byte to 64 byte.
133505
133506        e.g. The HTML spec (http://www.whatwg.org/specs/web-apps/current-work/)
133507        contains 325640 Node objects. Thus this patch saves 325640 * 8 byte = 2.6 MB.
133508
133509        e.g. sizeof(Element) is reduced from 104 byte to 96 byte.
133510
133511        - In multiple inheritance, a virtual method table pointer is allocated
133512        for each base class that has virtual methods. For example, for
133513        'class A : public B, C {};' where B and C have virtual methods,
133514        two virtual method table pointers are allocated for each A object.
133515        In this patch, A = Node, B = EventTarget, and C = TreeShared.
133516        By removing the virtual methods from TreeShared, we can save the virtual
133517        method table pointer for TreeShared. 8 byte saving.
133518
133519        - Node and SVGElementInstance are the only classes that inherit TreeShared.
133520
133521        - This patch removes virtual TreeShared::removeLastRef() and implements
133522        virtual Node::removeLastRef() and virtual SVGElementInstance::removeLastRef().
133523        Node::removeLastRef() calls 'delete this' for 'this' of type Node*,
133524        and SVGElementInstance::removeLastRef() calls 'delete this' for 'this' of type
133525        SVGElementInstance*.
133526
133527        - This patch removes the virtual destructor of TreeShared. This removal is safe
133528        because (1) no one calls 'delete this' for 'this' of type TreeShared*,
133529        and (2) both Node and SVGElementInstance have virtual destructor.
133530
133531        No change in behavior. Confirm no regression in existing tests.
133532
133533        * dom/ContainerNode.cpp:
133534        (WebCore::callRemovedLastRef):
133535        (WebCore):
133536        * dom/Node.h:
133537        (WebCore::Node::removedLastRef):
133538        * platform/TreeShared.h:
133539        (WebCore):
133540        (TreeShared):
133541        (WebCore::TreeShared::deref):
133542        * svg/SVGElementInstance.cpp:
133543        (WebCore::callRemovedLastRef):
133544        (WebCore):
133545        * svg/SVGElementInstance.h:
133546        (WebCore::SVGElementInstance::removedLastRef):
133547
133548        * WebCore.order: Added a symbol for callRemovedLastRef().
133549        * WebCore.exp.in: Ditto.
133550
1335512012-06-07  Takashi Sakamoto  <tasak@google.com>
133552
133553        ShadowRoot needs resetStyleInheritance
133554        https://bugs.webkit.org/show_bug.cgi?id=84048
133555
133556        Added resetStyleInheritance API to ShadowRoot. The spec URL is
133557        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes
133558        To implement the API, modified StyleResolver to use empty style
133559        instead of parent style if resetStyleInheritance is true,
133560        and a node and its parent node are placed in different shadow trees.
133561
133562        Reviewed by Hajime Morita.
133563
133564        Test: fast/dom/shadow/shadow-root-resetStyleInheritance.html
133565              fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html
133566
133567        * css/StyleResolver.cpp:
133568        (WebCore::StyleResolver::initForStyleResolve):
133569        Set m_parentStyle to NULL when resetStyleInheritance.
133570        (WebCore::StyleResolver::documentSettings):
133571        Added a new method to obtain current document's settings.
133572        (WebCore::StyleResolver::initializeFontStyle):
133573        Initialize m_style by using document settings. Its code was move
133574        from the code initializing font style in applyProperty.
133575        (WebCore::StyleResolver::styleForElement):
133576        Initialize font style if m_parentStyle is NULL. The old code just
133577        used style() and don't touch font style. The new code uses the above
133578        initializeFontStyle.
133579        (WebCore::StyleResolver::applyProperty):
133580        Moved a code for initializing font style as "initial" to
133581        a new method: initializeFontStyle and modified to use the method.
133582        Modified to use documentSettings().
133583        (WebCore::StyleResolver::checkForGenericFamilyChange):
133584        Modified to use documentSettings().
133585        * css/StyleResolver.h:
133586        (WebCore::StyleResolver::documentSettings):
133587        (WebCore::StyleResolver::initializeFontStyle):
133588        Added two new methods to class StyleResolver.
133589        * dom/NodeRenderingContext.cpp:
133590        (WebCore::NodeRenderingContext::NodeRenderingContext):
133591        Modified to calculate m_resetStyleInheritance in its constructor.
133592        * dom/NodeRenderingContext.h:
133593        (WebCore::NodeRenderingContext::resetStyleInheritance):
133594        Implemented a new method, just returning m_resetStyleInheritance.
133595        * dom/ShadowRoot.cpp:
133596        (WebCore::ShadowRoot::setResetStyleInheritance):
133597        Modified to force to recalculate children's styles if
133598        resetStyleInheritance is changed.
133599        * dom/ShadowRoot.h:
133600        (ShadowRoot):
133601        Added resetStyleInheritance getter and setter.
133602        * dom/ShadowRoot.idl:
133603        Added an attribute, resetStyleInheritance.
133604        * dom/TreeScope.cpp:
133605        (WebCore::TreeScope::resetStyleInheritance):
133606        * dom/TreeScope.h:
133607        (TreeScope):
133608        Added resetStyleInheritance's default getter.
133609        The getter will be overrided by class ShadowRoot's getter.
133610
1336112012-06-07  Victor Carbune  <victor@rosedu.org>
133612
133613        addTextTrack should set track mode to HIDDEN
133614        https://bugs.webkit.org/show_bug.cgi?id=88317
133615
133616        Reviewed by Eric Carlson.
133617
133618        Updated existing test.
133619
133620        * html/HTMLMediaElement.cpp:
133621        (WebCore::HTMLMediaElement::addTextTrack): Set the default parameters
133622        for the newly created TextTrack.
133623        * html/track/TextTrack.cpp:
133624        (WebCore::TextTrack::TextTrack):
133625
1336262012-06-07  Li Yin  <li.yin@intel.com>
133627
133628        FileAPI: Blob should support ArrayBufferView instead of ArrayBuffer for Constructor Parameters
133629        https://bugs.webkit.org/show_bug.cgi?id=88294
133630
133631        Reviewed by Jian Li.
133632
133633        From Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
133634        Currently we add the support for ArrayBufferView, while still keeping ArrayBuffer for
133635        backward compatibility. We will remove it in the near future.
133636
133637        Test: fast/files/blob-constructor.html
133638
133639        * bindings/js/JSBlobCustom.cpp:
133640        (WebCore::JSBlobConstructor::constructJSBlob):
133641        * bindings/v8/custom/V8BlobCustom.cpp:
133642        (WebCore::V8Blob::constructorCallback):
133643        * fileapi/WebKitBlobBuilder.cpp:
133644        (WebCore::WebKitBlobBuilder::append):
133645        (WebCore):
133646        * fileapi/WebKitBlobBuilder.h:
133647        (WebCore):
133648        (WebKitBlobBuilder):
133649        * fileapi/WebKitBlobBuilder.idl: Add support for ArrayBufferView in append method
133650
1336512012-06-07  MORITA Hajime  <morrita@google.com>
133652
133653        A style in an older shadow subtree causes assert when composing with <shadow>
133654        https://bugs.webkit.org/show_bug.cgi?id=88299
133655
133656        Reviewed by Dimitri Glazkov.
133657
133658        InsertionPoint::attach() assumes its distributed content not being attach()-ed.
133659        But this assumption can break. This change added a guard for that.
133660        This can happen for shadow boundaries in general. But ShadowRoot already handles that case.
133661
133662        Test: fast/dom/shadow/insertion-point-shadow-crash.html
133663
133664        * html/shadow/InsertionPoint.cpp:
133665        (WebCore::InsertionPoint::attach):
133666
1336672012-06-07  Max Feil  <mfeil@rim.com>
133668
133669        [BlackBerry] Show correct fullscreen button image (media controls)
133670        https://bugs.webkit.org/show_bug.cgi?id=88563
133671
133672        Reviewed by Antonio Gomes.
133673
133674        PR159306: Show "exit" fullscreen button image instead of "enter"
133675        fullscreen button image when in fullscreen mode (HTML5 media
133676        controls).
133677
133678        I am not providing a test due to the simplicity of this patch
133679        and the relative difficulty and maintainability issues associated
133680        with testing how an image is rendered.
133681
133682        * platform/blackberry/RenderThemeBlackBerry.cpp:
133683        (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
133684
1336852012-06-07  Noel Gordon  <noel.gordon@gmail.com>
133686
133687        [chromium] Use WEBPImportPictureRGBX|BGRX to import picture data
133688        https://bugs.webkit.org/show_bug.cgi?id=88218
133689
133690        Reviewed by Kent Tamura.
133691
133692        Stop using the RGBA and RGBA variants of the picture import routines (since
133693        these will import alpha channel data in a future libwebp). Use the RGBX and
133694        BGRX variants to import picture data for encoding to make it clear that the
133695        alpha channel is (and must be) ignored.
133696
133697        Test: fast/canvas/canvas-toDataURL-webp.html
133698
133699        * platform/image-encoders/skia/WEBPImageEncoder.cpp:
133700        (WebCore::rgbPictureImport):
133701        (WebCore::importPictureBGRX): Use WEBPImportPictureBGRX for picture imports
133702        that must ignore the alpha channel. Change the template parameter to be the
133703        premultiplied alpha state of the input image data.
133704        (WebCore::importPictureRGBX): Use WEBPImportPictureRGBX, ditto.
133705        (WebCore::encodePixels): Invert the sense of the template parameter to make
133706        it now indicate the premultiplied alpha state of the input image data.
133707
1337082012-06-07  Takashi Sakamoto  <tasak@google.com>
133709
133710        Improve the performance of pushScope in StyleResolver
133711        https://bugs.webkit.org/show_bug.cgi?id=88222
133712
133713        Reviewed by Hajime Morita.
133714
133715        As setupScopeStack always sets m_scopeStackParent to be NULL,
133716        m_scopeStack is never reused. m_scopeStackParent should be the last
133717        element of m_scopeStack.
133718
133719        No new tests, because fast/css/style-scoped/ uses pushScope,
133720        popScope and setupScopeStack and checks whether there exists
133721        any crash bug or not. And this patch doesn't change any behavior
133722        of scoped author syltes.
133723
133724        * css/StyleResolver.cpp:
133725        (WebCore::StyleResolver::setupScopeStack):
133726        Modified to set m_scopeSackParent to be the last element of
133727        m_scopeStack.
133728        (WebCore::StyleResolver::popScope):
133729        Modified to remove the last element if m_scopeStack is not empty and
133730        the last element of m_scopeStack has the same scope as the scoping
133731        element given by the argument.
133732
1337332012-06-07  Mark Pilgrim  <pilgrim@chromium.org>
133734
133735        [Chromium] Move didStartWorkerRunLoop to Platform.h
133736        https://bugs.webkit.org/show_bug.cgi?id=88562
133737
133738        Reviewed by Adam Barth.
133739
133740        Part of a refactoring series. See tracking bug 82948.
133741
133742        * WebCore.gyp/WebCore.gyp:
133743        * bindings/v8/WorkerScriptController.cpp:
133744        (WebCore::WorkerScriptController::~WorkerScriptController):
133745        * platform/chromium/PlatformSupport.h:
133746        (WebCore):
133747        * workers/WorkerThread.cpp:
133748        (WebCore::WorkerThread::workerThread):
133749
1337502012-06-07  Mike West  <mkwst@chromium.org>
133751
133752        Dropping m_startingLineNumber property from StyledElement.
133753        https://bugs.webkit.org/show_bug.cgi?id=86848
133754
133755        Reviewed by Adam Barth.
133756
133757        We can have the same effect by moving the line-number calculation
133758        directly into StyledElement::styleAttributeChanged. This means that
133759        subsequent changes to the style attribute (via script) won't generate
133760        error messages with line numbers, but that's an acceptable tradeoff.
133761
133762        Behavior is covered by existing CSP tests.
133763
133764        * dom/StyledElement.cpp:
133765        (WebCore::StyledElement::StyledElement):
133766        (WebCore::StyledElement::styleAttributeChanged):
133767        * dom/StyledElement.h:
133768        (WebCore::StyledElement::destroyInlineStyle):
133769
1337702012-06-07  Peter Beverloo  <peter@chromium.org>
133771
133772        Initialize m_document in AXObjectCache's constructor for !HAVE(ACCESSIBILITY) builds
133773        https://bugs.webkit.org/show_bug.cgi?id=88527
133774
133775        Reviewed by Adam Barth.
133776
133777        Initialize the m_document member with the passed on document in the stubbed
133778        AXObjectCache constructor. No behavioral changes.
133779
133780        * accessibility/AXObjectCache.h:
133781        (WebCore::AXObjectCache::AXObjectCache):
133782
1337832012-06-05  James Robinson  <jamesr@chromium.org>
133784
133785        [chromium] Move deferral-related logic out of Canvas2DLayerChromium
133786        https://bugs.webkit.org/show_bug.cgi?id=86050
133787
133788        Reviewed by Stephen White.
133789
133790        This removes Canvas2DLayerChromium and puts the deferral and double-buffering related logic in a new class,
133791        Canvas2DLayerBridge, that uses TextureLayerChromium for compositing.  The bridge is responsible for managing the
133792        front texture when double buffering is active, inserting the correct makeContextCurrent() and flush() calls on
133793        the GraphicsContext3D and SkCanvas when appropriate, and owning the lifetime of the layer.
133794
133795        * WebCore.gypi:
133796        * platform/graphics/chromium/Canvas2DLayerBridge.cpp: Added.
133797        (WebCore):
133798        (AcceleratedDeviceContext):
133799        (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
133800        (WebCore::AcceleratedDeviceContext::prepareForDraw):
133801        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
133802        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
133803        (WebCore::Canvas2DLayerBridge::skCanvas):
133804        (WebCore::Canvas2DLayerBridge::prepareTexture):
133805        (WebCore::Canvas2DLayerBridge::context):
133806        (WebCore::Canvas2DLayerBridge::layer):
133807        (WebCore::Canvas2DLayerBridge::contextAcquired):
133808        * platform/graphics/chromium/Canvas2DLayerBridge.h: Added.
133809        (WebCore):
133810        (Canvas2DLayerBridge):
133811        (WebCore::Canvas2DLayerBridge::create):
133812        * platform/graphics/chromium/Canvas2DLayerChromium.cpp: Removed.
133813        * platform/graphics/chromium/Canvas2DLayerChromium.h: Removed.
133814        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
133815        * platform/graphics/chromium/ImageBufferDataSkia.h:
133816        (WebCore):
133817        (ImageBufferData):
133818        * platform/graphics/chromium/TextureLayerChromium.cpp:
133819        (WebCore::TextureLayerChromium::willModifyTexture):
133820            willModifyTexture() is called whenever the texture currently owned by the TextureLayerChromium will be
133821            modified by a system out of the compositor's control. It makes sure that the compositor does not attempt to
133822            draw with the potentially-modified texture until the next commit. For canvas, this is used when threading is
133823            enabled and a non-deferrable drawing command is invoked from JS.
133824        (WebCore):
133825        * platform/graphics/chromium/TextureLayerChromium.h:
133826        (TextureLayerChromium):
133827        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
133828        (WebCore::CCTextureUpdater::hasMoreUpdates):
133829        (WebCore::CCTextureUpdater::update):
133830        (WebCore::CCTextureUpdater::clear):
133831        * platform/graphics/chromium/cc/CCTextureUpdater.h:
133832        (CCTextureUpdater):
133833        * platform/graphics/skia/ImageBufferSkia.cpp:
133834        (WebCore::createAcceleratedCanvas):
133835        (WebCore::ImageBuffer::~ImageBuffer):
133836        (WebCore::ImageBuffer::context):
133837        (WebCore::ImageBuffer::platformLayer):
133838
1338392012-06-07  Patrick Gansterer  <paroga@webkit.org>
133840
133841        Remove HAVE(PATH_BASED_BORDER_RADIUS_DRAWING)
133842        https://bugs.webkit.org/show_bug.cgi?id=87931
133843
133844        Reviewed by Beth Dakin.
133845
133846        r62035 added HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until all ports implement
133847        GraphicsContext::clipConvexPolygon(). All major ports define HAVE_PATH_BASED_BORDER_RADIUS_DRAWING in the
133848        meantime and the alternative path has unnecessary maintainace costs and even don't compile at the moment.
133849
133850        * rendering/RenderBoxModelObject.cpp:
133851        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
133852        * rendering/RenderObject.cpp:
133853        (WebCore::RenderObject::paintFocusRing):
133854        * rendering/RenderObject.h:
133855        (RenderObject):
133856
1338572012-06-06  Vincent Scheib  <scheib@chromium.org>
133858
133859        Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror
133860        https://bugs.webkit.org/show_bug.cgi?id=88377
133861
133862        Reviewed by Dimitri Glazkov.
133863
133864        Part of a series of refactoring changes to update pointer lock API to
133865        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
133866
133867        New change and error events added. Follow up patches will remove
133868        the previous callbacks and pointerlocklost event. Tests updated
133869        to include the new events, and a new test added specifically for
133870        the new events, pointerlockchange-pointerlockerror-events.html.
133871
133872        Test: pointer-lock/pointerlockchange-pointerlockerror-events.html
133873
133874        * dom/Document.h:
133875        (Document):
133876        * dom/Document.idl:
133877        * dom/EventNames.h:
133878        (WebCore):
133879        * page/PointerLockController.cpp:
133880        (WebCore::PointerLockController::requestPointerLock):
133881        (WebCore::PointerLockController::didAcquirePointerLock):
133882        (WebCore::PointerLockController::didNotAcquirePointerLock):
133883        (WebCore::PointerLockController::didLosePointerLock):
133884        (WebCore::PointerLockController::enqueueEvent):
133885        (WebCore):
133886        * page/PointerLockController.h:
133887        (PointerLockController):
133888
1338892012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
133890
133891        Unreviewed, rolling out r119744.
133892        http://trac.webkit.org/changeset/119744
133893        https://bugs.webkit.org/show_bug.cgi?id=88584
133894
133895        Fails assertions in debug builds (Requested by jamesr_ on
133896        #webkit).
133897
133898        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
133899        (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
133900        (WebCore::CCIOSurfaceLayerImpl::willDraw):
133901
1339022012-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
133903
133904        Cache RenderLayer::isRootLayer for better performance
133905        https://bugs.webkit.org/show_bug.cgi?id=88570
133906
133907        Reviewed by Ojan Vafai.
133908
133909        Caching covered by existing tests.
133910
133911        RenderLayer::isRootLayer()'s answer will be the same during the RenderLayer's
133912        lifetime as a RenderLayer is tied to a RenderBoxModelObject. This change caches
133913        isRootLayer value in the constructor.
133914
133915        On http://dglazkov.github.com/performance-tests/biggrid.html with a 100,000 rows
133916        by 100 columns table, it saves about 10% on the paint time during scrolling on
133917        my machine (going from 50ms to 45ms). It would expect all code paths to see some
133918        improvement as checking renderer()->isRenderView() was pretty common.
133919
133920        * rendering/RenderLayer.cpp:
133921        (WebCore::RenderLayer::RenderLayer):
133922        Added code to cache the result of renderer()->isRenderView() here.
133923
133924        (WebCore::RenderLayer::stackingContext):
133925        (WebCore::isPositionedContainer):
133926        (WebCore::isFixedPositionedContainer):
133927        (WebCore::RenderLayer::enclosingTransformedAncestor):
133928        (WebCore::RenderLayer::clippingRootForPainting):
133929        (WebCore::shouldSuppressPaintingLayer):
133930        (WebCore::RenderLayer::hitTest):
133931        (WebCore::RenderLayer::intersectsDamageRect):
133932        * rendering/RenderLayer.h:
133933        (WebCore::RenderLayer::isStackingContext):
133934        Updated all the call sites to use isRootLayer() instead of renderer()->isRenderView()
133935        as it is faster.
133936
133937        (WebCore::RenderLayer::isRootLayer):
133938        Added our caching here. Also made m_canSkipRepaintRectsUpdateOnScroll to follow
133939        m_isRootLayer example.
133940
1339412012-06-07  Takashi Sakamoto  <tasak@google.com>
133942
133943        Incorrect border rendering when border radius is above 2px.
133944        https://bugs.webkit.org/show_bug.cgi?id=88046
133945
133946        Fixing findInnerVertex's logic to decide which is the better line
133947        to find an inner vertex, x=center point's x of a rendering box or
133948        y=center point's y of a rendering box.
133949
133950        Reviewed by Simon Fraser.
133951
133952        Test: fast/borders/border-radius-valid-border-clipping.html
133953
133954        * rendering/RenderBoxModelObject.cpp:
133955        (WebCore::findInnerVertex):
133956
1339572012-06-07  Edaena Salinas Jasso  <edaena@apple.com>
133958
133959        Should fire error event for empty 404 script
133960        https://bugs.webkit.org/show_bug.cgi?id=50589
133961        
133962        Reviewed by Brady Eidson.
133963
133964        Tests: 
133965        http/tests/loading/fire-error-event-empty-404-script.html
133966        http/tests/loading/fire-error-script-no-content-type.html
133967
133968        * loader/SubresourceLoader.cpp:
133969        (WebCore::SubresourceLoader::didReceiveResponse): We should check for http status 
133970        codes here to stop depending on the response being non-empty.
133971        (WebCore::SubresourceLoader::didReceiveData): Moved the http status check but
133972        avoid messing with multipart responses.
133973        (WebCore::SubresourceLoader::checkForHTTPStatusCodeError): Renamed from 
133974        errorLoadingResource for clarity.
133975
133976        * loader/SubresourceLoader.h:
133977        * loader/cf/SubresourceLoaderCF.cpp:
133978        (WebCore::SubresourceLoader::didReceiveDataArray):
133979        Updated for errorLoadingResource renaming.
133980
1339812012-06-07  Konrad Piascik  <kpiascik@rim.com>
133982
133983        [BlackBerry] Update PlayBook's User Agent String for Web Inspector
133984        https://bugs.webkit.org/show_bug.cgi?id=88543
133985
133986        Reviewed by Antonio Gomes.
133987
133988        We expect users to upgrade their devices so developers only need the latest UA String.
133989
133990        No tests needed.
133991
133992        * inspector/front-end/SettingsScreen.js:
133993        (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
133994
1339952012-06-07  Shawn Singh  <shawnsingh@chromium.org>
133996
133997        [chromium] Remove obsolete FIXME comment about a layer sorting bug.
133998        https://bugs.webkit.org/show_bug.cgi?id=88546
133999
134000        Reviewed by James Robinson.
134001
134002        No tests needed, only comment changed. The comment referred to a
134003        potential bug that actually will not occur. The W3C spec on CSS 3d
134004        transforms indicates that layers that do not share the same "3d
134005        rendering context" do not sort together, and our existing code
134006        sorts this way already.
134007
134008        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
134009        (WebCore::subtreeShouldRenderToSeparateSurface):
134010
1340112012-06-07  Adam Barth  <abarth@webkit.org>
134012
134013        Settings::defaultDeviceScaleFactor is redundant with Page::deviceScaleFactor
134014        https://bugs.webkit.org/show_bug.cgi?id=88375
134015
134016        Reviewed by James Robinson.
134017
134018        This patch removes Settings::defaultDeviceScaleFactor because it is
134019        redundant with Page::deviceScaleFactor now that we no longer support
134020        target-densitydpi.  Page::deviceScaleFactor is the canonical place to
134021        store the device scale factor.
134022
134023        * WebCore.exp.in:
134024        * page/Settings.cpp:
134025        (WebCore::Settings::Settings):
134026        (WebCore):
134027        * page/Settings.h:
134028        (Settings):
134029        * testing/InternalSettings.cpp:
134030        (WebCore::InternalSettings::setDeviceScaleFactor):
134031
1340322012-06-07  Alec Flett  <alecflett@chromium.org>
134033
134034        IndexedDB: Error codes, phase one
134035        https://bugs.webkit.org/show_bug.cgi?id=88459
134036
134037        Reviewed by Tony Chang.
134038
134039        This phase gets rid of the now-deprecated NOT_ALLOWED_ERR and
134040        NON_TRANSIENT_ERR from earlier versions of the spec, and
134041        normalizes the place where TypeError should be thrown so that it's
134042        easier to update when the bindings change.
134043
134044        No new tests: existing tests cover these changes and have been updated.
134045
134046        * Modules/indexeddb/IDBCursor.cpp:
134047        (WebCore::IDBCursor::advance):
134048        (WebCore::IDBCursor::continueFunction):
134049        (WebCore::IDBCursor::stringToDirection):
134050        (WebCore::IDBCursor::directionToString):
134051        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
134052        (WebCore::IDBCursorBackendImpl::update):
134053        (WebCore::IDBCursorBackendImpl::deleteFunction):
134054        * Modules/indexeddb/IDBDatabase.cpp:
134055        (WebCore::IDBDatabase::createObjectStore):
134056        (WebCore::IDBDatabase::deleteObjectStore):
134057        (WebCore::IDBDatabase::setVersion):
134058        (WebCore::IDBDatabase::transaction):
134059        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
134060        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
134061        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
134062        (WebCore::IDBDatabaseBackendImpl::setVersion):
134063        * Modules/indexeddb/IDBDatabaseException.cpp:
134064        (WebCore):
134065        * Modules/indexeddb/IDBDatabaseException.h:
134066        * Modules/indexeddb/IDBDatabaseException.idl:
134067        * Modules/indexeddb/IDBFactory.cpp:
134068        (WebCore::IDBFactory::open):
134069        (WebCore::IDBFactory::deleteDatabase):
134070        * Modules/indexeddb/IDBObjectStore.cpp:
134071        (WebCore::IDBObjectStore::index):
134072        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
134073        (WebCore::IDBObjectStoreBackendImpl::createIndex):
134074        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
134075        * Modules/indexeddb/IDBRequest.cpp:
134076        (WebCore::IDBRequest::result):
134077        (WebCore::IDBRequest::errorCode):
134078        (WebCore::IDBRequest::webkitErrorMessage):
134079        * Modules/indexeddb/IDBTransaction.cpp:
134080        (WebCore::IDBTransaction::objectStore):
134081        (WebCore::IDBTransaction::stringToMode):
134082        (WebCore::IDBTransaction::modeToString):
134083        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
134084        (WebCore::IDBTransactionBackendImpl::objectStore):
134085
1340862012-06-07  Dana Jansens  <danakj@chromium.org>
134087
134088        [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
134089        https://bugs.webkit.org/show_bug.cgi?id=88371
134090
134091        Reviewed by James Robinson.
134092
134093        Unit test: CCLayerTreeHostImplTest.layersFreeTextures
134094
134095        * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
134096        (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
134097        (WebCore::CCIOSurfaceLayerImpl::willDraw):
134098
1340992012-06-07  Peter Beverloo  <peter@chromium.org>
134100
134101        Buildfix for ENABLE_OVERFLOW_SCROLLING=0 (though defined)
134102        https://bugs.webkit.org/show_bug.cgi?id=88564
134103
134104        Reviewed by Adam Barth.
134105
134106        Where ENABLE(X) mandates that X both has to be defined and evaluates to
134107        true as a lone preprocessor statement, there were two places in the CSS
134108        property and value input files where only was checked whether is has
134109        been defined. This also goes against other #ifdefs in those files.
134110
134111        * css/CSSPropertyNames.in:
134112        * css/CSSValueKeywords.in:
134113
1341142012-06-07  Ami Fischman  <fischman@chromium.org>
134115
134116        Plumb CORS attribute information from HTMLMediaElement to media players so it can be used
134117        https://bugs.webkit.org/show_bug.cgi?id=88349
134118
134119        Reviewed by Adam Barth.
134120
134121        Test: http/tests/security/video-cross-origin-readback.html
134122
134123        * html/HTMLMediaElement.cpp:
134124        (WebCore::HTMLMediaElement::mediaPlayerCORSMode):
134125        (WebCore):
134126        * html/HTMLMediaElement.h:
134127        (HTMLMediaElement):
134128        * html/canvas/CanvasRenderingContext.cpp:
134129        (WebCore::CanvasRenderingContext::wouldTaintOrigin):
134130        * platform/graphics/MediaPlayer.cpp:
134131        (WebCore::MediaPlayer::didPassCORSAccessCheck):
134132        (WebCore):
134133        * platform/graphics/MediaPlayer.h:
134134        (WebCore::MediaPlayerClient::mediaPlayerCORSMode):
134135        (MediaPlayer):
134136        * platform/graphics/MediaPlayerPrivate.h:
134137        (WebCore::MediaPlayerPrivateInterface::didPassCORSAccessCheck):
134138        (MediaPlayerPrivateInterface):
134139
1341402012-06-07  Mark Hahnenberg  <mhahnenberg@apple.com>
134141
134142        Worker tear-down can re-enter JSC during GC finalization
134143        https://bugs.webkit.org/show_bug.cgi?id=88449
134144
134145        Reviewed by Geoffrey Garen.
134146
134147        No new tests. 
134148
134149        This is the first of two patches to fix this issue with Workers.
134150
134151        * workers/AbstractWorker.cpp:
134152        (WebCore::AbstractWorker::~AbstractWorker): We don't need to call onDestroyWorker() here, it 
134153        will be called elsewhere in contextDestroyed().
134154
1341552012-06-07  Jer Noble  <jer.noble@apple.com>
134156
134157        sometimes all slaved videos don't start playing
134158        https://bugs.webkit.org/show_bug.cgi?id=88553
134159
134160        Reviewed by Darin Adler.
134161
134162        Test: media/media-controller-time-clamp.html
134163
134164        Some PlatformClock classes will occasionally return times < 0 and will
134165        always return times slightly > duration() when playback has ended.  Clamp
134166        the value of currentTime() to the specified [0..duration] range.
134167
134168        * html/MediaController.cpp:
134169        (MediaController::currentTime):
134170
1341712012-06-07  Simon Fraser  <simon.fraser@apple.com>
134172
134173        Optimize FrameView::scrollXForFixedPosition() / scrollYForFixedPosition()
134174        https://bugs.webkit.org/show_bug.cgi?id=88475
134175
134176        Reviewed by Sam Weinig.
134177        
134178        FrameView's scrollXForFixedPosition() and scrollYForFixedPosition()
134179        methods were often called together, but they do duplicate work,
134180        including calling into platform widget code which might be slow.
134181        
134182        Fix by converting scrollOffsetForFixedPosition() from being a wrapper
134183        that just calls scrollXForFixedPosition() and scrollYForFixedPosition()
134184        to the method that does all the work, calling just once into platform
134185        widget code.
134186        
134187        Changed callers to use scrollOffsetForFixedPosition() rather than make
134188        two separate method calls.
134189        
134190        Added ScrollView::layoutSize() and visibleSize() methods for
134191        convenience.
134192        
134193        Removed FrameView::scrollXForFixedPosition and FrameView::scrollYForFixedPosition
134194        to avoid inefficient callers in future.
134195
134196        No new tests; refactoring only.
134197
134198        * page/FrameView.cpp:
134199        (WebCore::fixedPositionScrollOffset):
134200        (WebCore::FrameView::scrollOffsetForFixedPosition):
134201        * page/FrameView.h: Removed scrollXForFixedPosition and scrollYForFixedPosition.
134202        * platform/ScrollView.cpp:
134203        (WebCore::ScrollView::layoutSize):
134204        * platform/ScrollView.h:
134205        (WebCore::ScrollView::visibleSize):
134206        * rendering/RenderLayer.cpp:
134207        (WebCore::RenderLayer::backgroundClipRect):
134208        * rendering/RenderLayer.h:
134209        (WebCore::ClipRect::move):
134210        * rendering/RenderLayerCompositor.cpp:
134211        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
134212        * rendering/RenderView.cpp:
134213        (WebCore::RenderView::computeRectForRepaint):
134214
1342152012-06-07  Raymes Khoury  <raymes@chromium.org>
134216
134217        Incorrect rect-based hit-test result for culled-inline elements
134218        https://bugs.webkit.org/show_bug.cgi?id=85849
134219
134220        Reviewed by Levi Weintraub.
134221
134222        Modified code which blindly adds culled inlines to rect-based hit-test
134223        results so that it only does so if the child node does not fully cover
134224        the hit-test region.
134225
134226        Test: fast/dom/nodesFromRect-culled-inline.html
134227
134228        * rendering/HitTestResult.cpp:
134229        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
134230
1342312012-06-07  Daniel Erat  <derat@chromium.org>
134232
134233        Make Skia backend honor requests for subpixel-positioned text.
134234        https://bugs.webkit.org/show_bug.cgi?id=88263
134235
134236        Reviewed by Tony Chang.
134237
134238        Add subpixel positioning field to FontRenderStyle and rename
134239        subpixel rendering field.
134240
134241        Pass setting to SkPaint in FontPlatformDataHarfBuzz and remove
134242        round() call when computing glyph widths in SimpleFontDataSkia.
134243
134244        Test: platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning.html
134245
134246        * platform/graphics/blackberry/skia/PlatformSupport.cpp:
134247        (WebCore::setFontRenderStyleDefaults):
134248        (WebCore::PlatformSupport::getRenderStyleForStrike):
134249        * platform/graphics/chromium/FontRenderStyle.h:
134250        (WebCore::FontRenderStyle::FontRenderStyle):
134251        (WebCore::FontRenderStyle::operator==):
134252        (FontRenderStyle):
134253        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
134254        (WebCore):
134255        (WebCore::FontPlatformData::setSubpixelRendering):
134256        (WebCore::FontPlatformData::setSubpixelPositioning):
134257        (WebCore::FontPlatformData::setupPaint):
134258        (WebCore::FontPlatformData::querySystemForRenderStyle):
134259        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
134260        (FontPlatformData):
134261        * platform/graphics/skia/SimpleFontDataSkia.cpp:
134262        (WebCore::SimpleFontData::platformWidthForGlyph):
134263
1342642012-06-06  Dana Jansens  <danakj@chromium.org>
134265
134266        [chromium] In each composited frame, didDraw() should only be called on layers for which willDraw() was called
134267        https://bugs.webkit.org/show_bug.cgi?id=88469
134268
134269        Reviewed by James Robinson.
134270
134271        Unit test: CCLayerTreeHostImplTest.didDrawNotCalledOnScissoredLayer
134272
134273        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
134274        (WebCore::shouldDrawLayer):
134275        (WebCore):
134276        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
134277        (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
134278
1342792012-06-07  Alexei Filippov  <alexeif@chromium.org>
134280
134281        Web Inspector: sorting of object fields is broken in heap profiler
134282        https://bugs.webkit.org/show_bug.cgi?id=88532
134283
134284        A recent change to heap profiler has replaced getters with functions.
134285        Function calls were missing in couple places after that change.
134286
134287        Reviewed by Vsevolod Vlasov.
134288
134289        Tests: inspector/profiler/heap-snapshot-summary-sorting-fields.html
134290               inspector/profiler/heap-snapshot-summary-sorting-instances.html
134291
134292        * inspector/front-end/HeapSnapshot.js:
134293        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeField):
134294
1342952012-06-07  Alexander Pavlov  <apavlov@chromium.org>
134296
134297        Web Inspector: Consider Ctrl+Shift+key as valid zoom change combinations
134298        https://bugs.webkit.org/show_bug.cgi?id=88520
134299
134300        Reviewed by Vsevolod Vlasov.
134301
134302        * inspector/front-end/inspector.js:
134303        (WebInspector.documentKeyDown):
134304
1343052012-06-07  Arvid Nilsson  <anilsson@rim.com>
134306
134307        [BlackBerry] Allow WebPageCompositor to blend a transparent web page
134308        https://bugs.webkit.org/show_bug.cgi?id=88233
134309
134310        Reviewed by Rob Buis.
134311
134312        RIM PR #159998
134313
134314        Add a parameter to LayerRenderer::compositeBuffer() indicating whether
134315        the buffer contents are opaque, and set the GL blend mode accordingly.
134316
134317        This is not currently testable using BlackBerry testing infrastructure.
134318
134319        Reviewed internally by Jakob Petsovits.
134320
134321        * platform/graphics/blackberry/LayerRenderer.cpp:
134322        (WebCore::LayerRenderer::compositeBuffer):
134323        * platform/graphics/blackberry/LayerRenderer.h:
134324        (LayerRenderer):
134325
1343262012-06-07  Alexei Filippov  <alexeif@chromium.org>
134327
134328        Web Inspector: reuse edge_count field of heap snapshot to store retained size
134329        https://bugs.webkit.org/show_bug.cgi?id=88416
134330
134331        The edge_count field is unused after node first edge indexes have been built.
134332        Store node retained size in there instead of allocating an extra array for it.
134333
134334        Reviewed by Vsevolod Vlasov.
134335
134336        * inspector/front-end/HeapSnapshot.js:
134337        (WebInspector.HeapSnapshotNode.prototype.retainedSize):
134338        (WebInspector.HeapSnapshot.prototype._calculateRetainedSizes):
134339
1343402012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
134341
134342        Unreviewed, rolling out r119694.
134343        http://trac.webkit.org/changeset/119694
134344        https://bugs.webkit.org/show_bug.cgi?id=88529
134345
134346        it broke PrerenderBrowserTest.PrerenderHTML5VideoNetwork
134347        (Requested by loislo on #webkit).
134348
134349        * html/HTMLMediaElement.cpp:
134350        * html/HTMLMediaElement.h:
134351        (HTMLMediaElement):
134352        * html/canvas/CanvasRenderingContext.cpp:
134353        (WebCore::CanvasRenderingContext::wouldTaintOrigin):
134354        * platform/graphics/MediaPlayer.cpp:
134355        * platform/graphics/MediaPlayer.h:
134356        (MediaPlayer):
134357        * platform/graphics/MediaPlayerPrivate.h:
134358
1343592012-06-07  Shinya Kawanaka  <shinyak@chromium.org>
134360
134361        Delete a contenteditable element having a Shadow DOM causes a crash.
134362        https://bugs.webkit.org/show_bug.cgi?id=86345
134363
134364        Reviewed by Ryosuke Niwa.
134365
134366        In VisibleSelection::validate(), m_start.downstream() or m_end.upstream() might cross
134367        editing boundaries. So we adjust selection after calling them again.
134368
134369        Test: editing/shadow/select-contenteditable-shadowhost.html
134370
134371        * editing/VisibleSelection.cpp:
134372        (WebCore::VisibleSelection::validate):
134373
1343742012-06-07  Vivek Galatage  <vivekgalatage@gmail.com>
134375
134376        No new line at the end for SVGCSSPropertyNames.in causes compilation warning
134377        https://bugs.webkit.org/show_bug.cgi?id=88503
134378
134379        Reviewed by Ryosuke Niwa.
134380
134381        Added new line at the end of the file.
134382
134383        No new tests required.
134384
134385        * css/SVGCSSPropertyNames.in:
134386
1343872012-06-07  Csaba Osztrogonác  <ossy@webkit.org>
134388
134389        [Qt][Win] Use OS(WINDOWS) instead of Q_WS_WIN in WebCore/platform/graphics/GraphicsContext.h
134390        https://bugs.webkit.org/show_bug.cgi?id=88305
134391
134392        Reviewed by Simon Hausmann.
134393
134394        * platform/graphics/GraphicsContext.h: Buildfix.
134395        (GraphicsContext):
134396
1343972012-06-07  Shinya Kawanaka  <shinyak@chromium.org>
134398
134399        Incorrect data retrieved in calls to get selection data in client->textWillBeReplaced from CharacterData::setDataAndUpdate
134400        https://bugs.webkit.org/show_bug.cgi?id=66120
134401
134402        Reviewed by Ryosuke Niwa.
134403
134404        Since FrameSelection::textWillBeReplaced was called before replacing text, updated Selection became
134405        temporarily invalid. The invalid selection was set to updateSelection(), so client will have
134406        invalid selection.
134407
134408        This patch makes calling updateSelection() after updating selection.
134409
134410        No new tests, it's too hard to create a correct test cases in DRT.
134411
134412        * dom/CharacterData.cpp:
134413        (WebCore::CharacterData::setDataAndUpdate):
134414        * editing/FrameSelection.cpp:
134415        (WebCore::updatePositionAfterAdoptingTextReplacement):
134416        (WebCore::FrameSelection::textWasReplaced):
134417        * editing/FrameSelection.h:
134418        (FrameSelection):
134419
1344202012-06-07  Li Yin  <li.yin@intel.com>
134421
134422        FileAPI: If type consists of non-ASCII characters in Blob constructor, it should throw a SyntaxError.
134423        https://bugs.webkit.org/show_bug.cgi?id=88411
134424
134425        Reviewed by Kentaro Hara.
134426
134427        From spec: http://dev.w3.org/2006/webapi/FileAPI/#constructorBlob
134428        If type consists of any non-ASCII characters, throw a SyntaxError and
134429        return from this algorithm.
134430        This patch checks the String is ASCii or not, if not, throw SyntaxError.
134431
134432        Test: fast/files/blob-constructor.html
134433
134434        * bindings/js/JSBlobCustom.cpp:
134435        (WebCore::JSBlobConstructor::constructJSBlob):
134436        * bindings/v8/custom/V8BlobCustom.cpp:
134437        (WebCore::V8Blob::constructorCallback):
134438
1344392012-06-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
134440
134441        InsertUnorderedList and InsertOrderedList (execCommand) do not remove bullets
134442        https://bugs.webkit.org/show_bug.cgi?id=84597
134443
134444        Reviewed by Ryosuke Niwa.
134445
134446        Comparison between start and end VisiblePositions will fail when a position inside
134447        a paragraph is compared with one at the start of the paragraph.
134448        
134449        This fix thus converts the end VisiblePosition (which could be inside the paragraph)
134450        to the start of the paragraph thereby enabling a proper comparison of start and end
134451        positions.
134452
134453        Test: editing/execCommand/remove-list-from-multi-list-items.html
134454
134455        * editing/InsertListCommand.cpp:
134456        (WebCore::InsertListCommand::selectionHasListOfType):
134457
1344582012-06-07  Li Yin  <li.yin@intel.com>
134459
134460        [FileAPI] FileReader should throw an InvalidStateError exception when readyState is LOADING
134461        https://bugs.webkit.org/show_bug.cgi?id=88212
134462
134463        Reviewed by Jian Li.
134464
134465        From Spec: http://www.w3.org/TR/FileAPI/#readAsBinaryString
134466        FileReader should throw an InvalidStateError exception instead of NOT_ALLOWED_ERR
134467        when the readyState is LOADING.
134468        Also delete OperationNotAllowedException related code, because it is not longer needed.
134469
134470        Tests: fast/files/read-file-async.html
134471               fast/files/workers/worker-read-file-async.html
134472
134473        * CMakeLists.txt:
134474        * DerivedSources.cpp:
134475        * DerivedSources.make:
134476        * DerivedSources.pri:
134477        * GNUmakefile.list.am:
134478        * Target.pri:
134479        * WebCore.gypi:
134480        * WebCore.vcproj/WebCore.vcproj:
134481        * WebCore.xcodeproj/project.pbxproj:
134482        * dom/DOMExceptions.in:
134483        * fileapi/FileReader.cpp:
134484        (WebCore::FileReader::readInternal): Changed it to throw INVALID_STATE_ERR.
134485        * fileapi/FileReader.idl: Changed it to raise DOMException for all read methods.
134486        * fileapi/OperationNotAllowedException.cpp: Removed.
134487        * fileapi/OperationNotAllowedException.h: Removed.
134488        * fileapi/OperationNotAllowedException.idl: Removed.
134489
1344902012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
134491
134492        Unreviewed, rolling out r119689.
134493        http://trac.webkit.org/changeset/119689
134494        https://bugs.webkit.org/show_bug.cgi?id=88516
134495
134496        it broke didDrawNotCalledOnScissoredLayer webkit_unit_test
134497        (Requested by loislo on #webkit).
134498
134499        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
134500        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
134501        (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
134502
1345032012-06-07  Ami Fischman  <fischman@chromium.org>
134504
134505        Plumb CORS attribute information from HTMLMediaElement to media players so it can be used
134506        https://bugs.webkit.org/show_bug.cgi?id=88349
134507
134508        Reviewed by Adam Barth.
134509
134510        Test: http/tests/security/video-cross-origin-readback.html
134511
134512        * html/HTMLMediaElement.cpp:
134513        (WebCore::HTMLMediaElement::mediaPlayerCORSMode):
134514        (WebCore):
134515        * html/HTMLMediaElement.h:
134516        (HTMLMediaElement):
134517        * platform/graphics/MediaPlayer.h:
134518        (WebCore::MediaPlayerClient::mediaPlayerCORSMode):
134519
1345202012-06-07  Hironori Bono  <hbono@chromium.org>
134521
134522        Use light gray for grammar markers on Windows and Linux
134523        https://bugs.webkit.org/show_bug.cgi?id=88398
134524
134525        Reviewed by Ryosuke Niwa.
134526
134527        This change changes the color of grammar markers from dark gray to light gray
134528        and rebaselines a couple of pixel tests affected by this change.
134529
134530        No new tests because it changes the marker color of an existing test 'grammar-markers.html'.
134531
134532        * platform/graphics/skia/GraphicsContextSkia.cpp: Change dark gray to light gray.
134533
1345342012-06-07  Yoshifumi Inoue  <yosin@chromium.org>
134535
134536        [Platform] Introduce conversion from/to Deciaml to/from double
134537        https://bugs.webkit.org/show_bug.cgi?id=88480
134538
134539        Reviewed by Kent Tamura.
134540
134541        This patch added functions for Decimal/Double conversion and isInfinity
134542        for reducing patch size of introducing Decimal arithmetic, bug 88383.
134543
134544        Tests: WebKit/chromium/tests/DecimalTest.cpp
134545
134546        * platform/Decimal.cpp:
134547        (WebCore::Decimal::fromDouble): Added.
134548        (WebCore::Decimal::toDouble): Added.
134549        * platform/Decimal.h:
134550        (WebCore::Decimal::EncodedData::isInfinity): Added for isinf()
134551        (WebCore::Decimal::isInfinity): Added.
134552
1345532012-06-06  Xianzhu Wang  <wangxianzhu@chromium.org>
134554
134555        Element.getBoundingClientRect() and Element.getClientRects() return incorrect values in frames in a scaled page
134556        https://bugs.webkit.org/show_bug.cgi?id=88430
134557
134558        Element.getBoudingClientRect() and Element.getClientRects() should not scale back the rects
134559        if the element is in a frame because page scale only apply to elements in the main frame.
134560
134561        Reviewed by James Robinson.
134562
134563        Tests: fast/dom/Element/scale-page-bounding-client-rect-in-frame.html
134564               fast/dom/Element/scale-page-client-rects-in-frame.html
134565
134566        * dom/Document.cpp:
134567        (WebCore):
134568        (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale): Extracted from Element.cpp and Range.cpp and fixed issue of pageScale in frames.
134569        (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale): Extracted from Element.cpp and fixed issue of pageScale in frames.
134570        * dom/Document.h:
134571        (WebCore):
134572        (Document):
134573        * dom/Element.cpp:
134574        (WebCore::Element::getClientRects):
134575        (WebCore::Element::getBoundingClientRect):
134576        * dom/Range.cpp:
134577        (WebCore):
134578        (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale): Moved into Document and fixed issue of pageScale in frames.
134579        (WebCore::Range::getBorderAndTextQuads):
134580        * rendering/RenderObject.h: Removed adjustFloatQuadForPageScale and adjustFloatRectForPageScale because they seem unrelated to RenderObject.
134581        (WebCore):
134582
1345832012-06-06  Dana Jansens  <danakj@chromium.org>
134584
134585        [chromium] In each composited frame, didDraw() should only be called on layers for which willDraw() was called
134586        https://bugs.webkit.org/show_bug.cgi?id=88469
134587
134588        Reviewed by James Robinson.
134589
134590        Unit test: CCLayerTreeHostImplTest.didDrawNotCalledOnScissoredLayer
134591
134592        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
134593        (WebCore::shouldDrawLayer):
134594        (WebCore):
134595        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
134596        (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
134597
1345982012-06-06  Andy Estes  <aestes@apple.com>
134599
134600        Wrap uppercaseWord, lowercaseWord, and capitalizeWord with USE(APPKIT)
134601        https://bugs.webkit.org/show_bug.cgi?id=88504
134602
134603        Reviewed by Dan Bernstein.
134604
134605        uppercaseWord, lowercaseWord, and capitalizeWord are methods declared
134606        by NSResponder that subclasses are expected to implement. WebKit should
134607        only support these implementations on platforms that use AppKit.
134608
134609        * WebCore.exp.in:
134610        * editing/Editor.cpp:
134611        * editing/Editor.h:
134612        * loader/EmptyClients.h:
134613        * page/ContextMenuController.cpp:
134614        * page/EditorClient.h:
134615
1346162012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
134617
134618        Unreviewed, rolling out r119683.
134619        http://trac.webkit.org/changeset/119683
134620        https://bugs.webkit.org/show_bug.cgi?id=88505
134621
134622        it broke webkit-unit-test
134623        WebLayerTreeViewThreadedTest.InstrumentationCallbacks on mac
134624        (Requested by loislo on #webkit).
134625
134626        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
134627        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
134628        (WebCore::CCLayerTreeHost::setVisible):
134629
1346302012-06-06  Robert Kroeger  <rjkroege@chromium.org>
134631
134632        [Chromium] Re-enable handling of smooth scrolling on Chromium Linux/Windows
134633        https://bugs.webkit.org/show_bug.cgi?id=87535 by adding support for
134634        m_hasPreciseScrollingDelta on all Chromium platforms and adjusting ScrollAnimator
134635        and ScrollAnimatorNone accordingly to let m_hasPreciseScrollingDelta == true
134636        force exact (non-animated) scrolling.
134637
134638        Reviewed by James Robinson.
134639
134640        Updated WebKit unit tests to validate change.
134641
134642        * platform/PlatformWheelEvent.h:
134643        (WebCore::PlatformWheelEvent::PlatformWheelEvent): Adjusted #ifdefs to
134644        make m_hasPreciseScrollingDelta available on all Chromium platforms.
134645        (PlatformWheelEvent):
134646        * platform/ScrollAnimator.cpp:
134647        (WebCore::ScrollAnimator::handleWheelEvent): Default scroll type is set based on 
134648        m_hasPreciseScrollingDelta value.
134649        * platform/ScrollAnimatorNone.cpp:
134650        (WebCore::ScrollAnimatorNone::scroll): Scroll precisely when necessary.
134651        * platform/ScrollTypes.h: Added additional pixel scrolling subtype.
134652        * platform/ScrollableArea.cpp:
134653        (WebCore::ScrollableArea::scroll): Updated for additional pixel scroll subtype.
134654
1346552012-06-06  Michal Mocny  <mmocny@google.com>
134656
134657        [chromium] Stop dropping texture limits when the layer tree host becomes invisible, and initialize with 0 allocation.
134658        https://bugs.webkit.org/show_bug.cgi?id=87747
134659
134660        Reviewed by Adrienne Walker.
134661
134662        GpuMemoryManager manages texture memory allocation limits. It will send a 0 allocation when a renderer becomes
134663        invisible, and an appropriate allocation after a renderer is initialized.  These numbers will change
134664        depending on the state of memory across devices and other renderers, so we would like to remove all explicit
134665        management by the renderers themselves.
134666
134667        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
134668        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
134669        (WebCore::CCLayerTreeHost::setVisible):
134670
1346712012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
134672
134673        Unreviewed, rolling out r119680.
134674        http://trac.webkit.org/changeset/119680
134675        https://bugs.webkit.org/show_bug.cgi?id=88498
134676
134677        It broke mac build (Requested by kinuko on #webkit).
134678
134679        * fileapi/File.cpp:
134680        (WebCore::File::File):
134681        (WebCore::File::lastModifiedDate):
134682        (WebCore::File::lastModifiedDateForBinding):
134683        (WebCore):
134684        (WebCore::File::captureSnapshot):
134685        * fileapi/File.h:
134686        (File):
134687        * fileapi/File.idl:
134688        * platform/FileMetadata.h:
134689        (WebCore::FileMetadata::FileMetadata):
134690        * platform/FileSystem.h:
134691        * platform/chromium/support/WebHTTPBody.cpp:
134692        (WebKit::WebHTTPBody::elementAt):
134693        * platform/network/BlobData.cpp:
134694        (WebCore):
134695
1346962012-06-06  Kinuko Yasuda  <kinuko@chromium.org>
134697
134698        File::lastModifiedDate should use NaN or separate boolean flag for null Date value
134699        https://bugs.webkit.org/show_bug.cgi?id=87826
134700
134701        Reviewed by Kent Tamura.
134702
134703        Test: http/tests/local/fileapi/file-last-modified-after-delete.html
134704
134705        * fileapi/File.cpp:
134706        (WebCore::File::File):
134707        (WebCore::File::captureSnapshot):
134708        (WebCore::File::lastModifiedDate):
134709        (WebCore::File::lastModifiedDateForBinding): Removed.
134710        * fileapi/File.h:
134711        (File):
134712        * fileapi/File.idl:
134713        * platform/FileMetadata.h:
134714        (WebCore::FileMetadata::FileMetadata):
134715        * platform/FileSystem.h:
134716        * platform/chromium/support/WebHTTPBody.cpp:
134717        (WebKit::WebHTTPBody::elementAt):
134718        * platform/network/BlobData.cpp:
134719        (WebCore):
134720
1347212012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
134722
134723        Unreviewed, rolling out r119668.
134724        http://trac.webkit.org/changeset/119668
134725        https://bugs.webkit.org/show_bug.cgi?id=88493
134726
134727        Hitting assertions in debug builds (Requested by rniwa on
134728        #webkit).
134729
134730        * rendering/RenderBlock.cpp:
134731        (WebCore::RenderBlock::localCaretRect):
134732        * rendering/RenderBoxModelObject.cpp:
134733        * rendering/RenderBoxModelObject.h:
134734        (RenderBoxModelObject):
134735        * rendering/RenderInline.cpp:
134736        * rendering/RenderInline.h:
134737        (RenderInline):
134738
1347392012-06-06  Julien Chaffraix  <jchaffraix@webkit.org>
134740
134741        Cache isSelfPaintingLayer() for better performance
134742        https://bugs.webkit.org/show_bug.cgi?id=88464
134743
134744        Reviewed by Simon Fraser.
134745
134746        Covered by existing tests (repaint tests among them).
134747
134748        isSelfPaintingLayer() has shown up several times on some scrolling benchmarks due
134749        to the function being called several time per paint phase. This change caches the
134750        boolean at style change time.
134751        
134752        On http://dglazkov.github.com/performance-tests/biggrid.html, this nearly speed-up
134753        painting by 2 (lowering the time taken to paint the newly exposed area when scrolling
134754        on a 10,000 * 100 table from 95ms to 50ms).
134755
134756        * rendering/RenderLayer.cpp:
134757        (WebCore::RenderLayer::RenderLayer):
134758        Initialized m_isSelfPaintingLayer here.
134759
134760        (WebCore::RenderLayer::paintLayer):
134761        Changed the order of the checks to get the more likely check first.
134762
134763        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
134764        Renamed from isSelfPaintingLayer to make m_isNormalFlowOnly.
134765
134766        (WebCore::RenderLayer::styleChanged):
134767        Added code to update our cached m_isSelfPaintingLayer.
134768
134769        * rendering/RenderLayer.h:
134770        (WebCore::RenderLayer::isSelfPaintingLayer):
134771        Changed to return m_isSelfPaintingLayer.
134772
1347732012-06-06  Yoshifumi Inoue  <yosin@chromium.org>
134774
134775        REGRESSION(r109729) [Form] Rendering of select/optgroup/option combination is too slow.
134776        https://bugs.webkit.org/show_bug.cgi?id=88059
134777
134778        Reviewed by Kent Tamura.
134779
134780        This patch changes not to share RenderStyle object for option and
134781        optgroup element regardless attributes.
134782
134783        When we tried to shared RenderStyle object, rendering performance was
134784        good but we had issue in selected option and text transform, see
134785        https://bugs.webkit.org/show_bug.cgi?id=88405 for details.
134786
134787        No new tests. This patch doesn't change behavior but rendering performance.
134788
134789        * css/StyleResolver.cpp:
134790        (WebCore::StyleResolver::canShareStyleWithElement): Changed to always
134791        return false for option and optgroup.
134792
1347932012-06-06  Alec Flett  <alecflett@chromium.org>
134794
134795        IndexedDB: Optimize single-key get()
134796        https://bugs.webkit.org/show_bug.cgi?id=85288
134797
134798        Reviewed by Tony Chang.
134799
134800        No new tests, this is just an optimization.
134801
134802        After a recent refactoring, we started creating
134803        an internal cursor with every call to get(). The
134804        most common use of get() is with a single key,
134805        so provide a fast-path to avoid creating the cursor.
134806
134807        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
134808        (WebCore::IDBIndexBackendImpl::getByRangeInternal):
134809        * Modules/indexeddb/IDBKeyRange.h:
134810        (WebCore::IDBKeyRange::isOnlyKey):
134811        (IDBKeyRange):
134812        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
134813        (WebCore::IDBObjectStoreBackendImpl::getByRangeInternal):
134814
1348152012-06-06  Shezan Baig  <shezbaig.wk@gmail.com>
134816
134817        Caret is not rendered in empty inline contenteditable elements
134818        https://bugs.webkit.org/show_bug.cgi?id=85793
134819
134820        Reviewed by Ryosuke Niwa.
134821
134822        Override localCaretRect in RenderInline. The implementation was almost
134823        identical to localCaretRect in RenderBlock for empty block elements, so
134824        I refactored RenderBlock::localCaretRect and moved the logic to a new
134825        method 'localCaretRectForEmptyElement' in RenderBoxModelObject. The
134826        implementation of 'localCaretRect' in RenderBlock and RenderInline both
134827        use this helper method in RenderBoxModelObject.
134828
134829        Tests: editing/selection/caret-in-empty-inline-1.html
134830               editing/selection/caret-in-empty-inline-2.html
134831
134832        * rendering/RenderBlock.cpp:
134833        (WebCore::RenderBlock::localCaretRect):
134834        Modified to use RenderBoxModelObject::localCaretRectForEmptyElement.
134835        * rendering/RenderBoxModelObject.cpp:
134836        (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
134837        (WebCore):
134838        * rendering/RenderBoxModelObject.h:
134839        (RenderBoxModelObject):
134840        Add localCaretRectForEmptyElement helper method.
134841        * rendering/RenderInline.cpp:
134842        (WebCore::RenderInline::localCaretRect):
134843        (WebCore):
134844        * rendering/RenderInline.h:
134845        (RenderInline):
134846        Override localCaretRect using localCaretRectForEmptyElement.
134847
1348482012-06-06  Alexis Menard  <alexis.menard@openbossa.org>
134849
134850        Fix border-image-slice failures on http://css3test.com.
134851        https://bugs.webkit.org/show_bug.cgi?id=88328
134852
134853        Reviewed by Tony Chang.
134854
134855        The old parsing code was assuming that the fill keyword comes after the
134856        numbers or the percentage values. http://www.w3.org/TR/css3-background/#the-border-image-slice
134857        defines the property like this : [<number> | <percentage>]{1,4} && fill? where the fill
134858        keyword is not mandatory. But according to http://www.w3.org/TR/CSS2/about.html "&&" 
134859        separates two or more components, all of which must occur, in any order. So the previous
134860        code was wrong the fill can come first following by the percentages or the numbers. http://css3test.com
134861        was covering this particular case. I took the opportunity to extend our coverage 
134862        by adding tests on many different values the boder-image-slice property could take. I
134863        also did a small cleanup by removing unused functions in BorderImageSliceParseContext.
134864
134865        Test: fast/css/getComputedStyle/getComputedStyle-border-image-slice.html
134866
134867        * css/CSSParser.cpp:
134868        (WebCore::BorderImageSliceParseContext::BorderImageSliceParseContext):
134869        (WebCore::BorderImageSliceParseContext::commitNumber):
134870        (WebCore::BorderImageSliceParseContext::commitFill):
134871
1348722012-06-06  Levi Weintraub  <leviw@chromium.org>
134873
134874        Use enclosingIntRect instead of pixelSnappedIntRect in RenderFileUploadControl
134875        https://bugs.webkit.org/show_bug.cgi?id=88454
134876
134877        Reviewed by Kent Tamura.
134878
134879        Properly clipping the file upload control to avoid clipping out the top of the file upload button
134880        when the control is positioned at a sub-pixel offset that rounds up.
134881
134882        Test: fast/sub-pixel/file-upload-control-at-fractional-offset.html
134883
134884        * rendering/RenderFileUploadControl.cpp:
134885        (WebCore::RenderFileUploadControl::paintObject):
134886
1348872012-06-06  Filip Pizlo  <fpizlo@apple.com>
134888
134889        Global object variable accesses should not require an extra load
134890        https://bugs.webkit.org/show_bug.cgi?id=88385
134891
134892        Reviewed by Gavin Barraclough and Geoffrey Garen.
134893
134894        Updated JSDOMWindowBase.cpp to use the new symbol table API. this->symbolTableFoo(...)
134895        becomes symbolTableFoo(this, ...).
134896                
134897        No new tests because no change in behavior.
134898
134899        * bindings/js/JSDOMWindowBase.cpp:
134900        (WebCore::JSDOMWindowBase::updateDocument):
134901
1349022012-06-06  James Robinson  <jamesr@chromium.org>
134903
134904        [chromium] Move implementation of WebCore::GraphicsContext3D and related from WebKit/chromium/src to WebCore/platform/chromium/support
134905        https://bugs.webkit.org/show_bug.cgi?id=86257
134906
134907        Reviewed by Kenneth Russell.
134908
134909        The WebCore platform interfaces GraphicsContext3D and Extensions3DChromium are implemented in chromium
134910        on top of the Platform interface WebGraphicsContext3D. This moves the implementation support code from
134911        WebKit/chromium/src to WebCore/platform/chromium/support, which avoids having code in WebKit/ implementing WebCore
134912        interfaces and allows code in WebCore/platform to use this support code directly where appropriate.
134913
134914        Refactor only, no new functionality or tests.
134915
134916        * WebCore.gypi:
134917        * platform/chromium/support/Extensions3DChromium.cpp: Renamed from Source/WebKit/chromium/src/Extensions3DChromium.cpp.
134918        (WebCore):
134919        (WebCore::Extensions3DChromium::Extensions3DChromium):
134920        (WebCore::Extensions3DChromium::~Extensions3DChromium):
134921        (WebCore::Extensions3DChromium::supports):
134922        (WebCore::Extensions3DChromium::ensureEnabled):
134923        (WebCore::Extensions3DChromium::isEnabled):
134924        (WebCore::Extensions3DChromium::getGraphicsResetStatusARB):
134925        (WebCore::Extensions3DChromium::blitFramebuffer):
134926        (WebCore::Extensions3DChromium::renderbufferStorageMultisample):
134927        (WebCore::Extensions3DChromium::postSubBufferCHROMIUM):
134928        (WebCore::Extensions3DChromium::mapBufferSubDataCHROMIUM):
134929        (WebCore::Extensions3DChromium::unmapBufferSubDataCHROMIUM):
134930        (WebCore::Extensions3DChromium::mapTexSubImage2DCHROMIUM):
134931        (WebCore::Extensions3DChromium::unmapTexSubImage2DCHROMIUM):
134932        (WebCore::Extensions3DChromium::setVisibilityCHROMIUM):
134933        (WebCore::Extensions3DChromium::discardFramebufferEXT):
134934        (WebCore::Extensions3DChromium::ensureFramebufferCHROMIUM):
134935        (WebCore::Extensions3DChromium::setGpuMemoryAllocationChangedCallbackCHROMIUM):
134936        (WebCore::Extensions3DChromium::createVertexArrayOES):
134937        (WebCore::Extensions3DChromium::deleteVertexArrayOES):
134938        (WebCore::Extensions3DChromium::isVertexArrayOES):
134939        (WebCore::Extensions3DChromium::bindVertexArrayOES):
134940        (WebCore::Extensions3DChromium::getTranslatedShaderSourceANGLE):
134941        (WebCore::Extensions3DChromium::setSwapBuffersCompleteCallbackCHROMIUM):
134942        (WebCore::Extensions3DChromium::rateLimitOffscreenContextCHROMIUM):
134943        (WebCore::Extensions3DChromium::paintFramebufferToCanvas):
134944        (WebCore::Extensions3DChromium::texImageIOSurface2DCHROMIUM):
134945        (WebCore::Extensions3DChromium::texStorage2DEXT):
134946        (WebCore::Extensions3DChromium::createQueryEXT):
134947        (WebCore::Extensions3DChromium::deleteQueryEXT):
134948        (WebCore::Extensions3DChromium::isQueryEXT):
134949        (WebCore::Extensions3DChromium::beginQueryEXT):
134950        (WebCore::Extensions3DChromium::endQueryEXT):
134951        (WebCore::Extensions3DChromium::getQueryivEXT):
134952        (WebCore::Extensions3DChromium::getQueryObjectuivEXT):
134953        * platform/chromium/support/GraphicsContext3DChromium.cpp: Renamed from Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp.
134954        (WebCore):
134955        (WebCore::GraphicsContext3D::GraphicsContext3D):
134956        (WebCore::GraphicsContext3D::~GraphicsContext3D):
134957        (WebCore::GraphicsContext3D::setContextLostCallback):
134958        (WebCore::GraphicsContext3D::setErrorMessageCallback):
134959        (WebCore::GraphicsContext3D::create):
134960        (WebCore::GraphicsContext3D::platformGraphicsContext3D):
134961        (WebCore::GraphicsContext3D::platformTexture):
134962        (WebCore::GraphicsContext3D::grContext):
134963        (WebCore::GraphicsContext3D::platformLayer):
134964        (WebCore::GraphicsContext3D::isGLES2Compliant):
134965        (WebCore::GraphicsContext3D::isResourceSafe):
134966        (WebCore::GraphicsContext3D::bindAttribLocation):
134967        (WebCore::GraphicsContext3D::bufferData):
134968        (WebCore::GraphicsContext3D::getActiveAttrib):
134969        (WebCore::GraphicsContext3D::getActiveUniform):
134970        (WebCore::GraphicsContext3D::getAttribLocation):
134971        (WebCore::GraphicsContext3D::getContextAttributes):
134972        (WebCore::GraphicsContext3D::getProgramInfoLog):
134973        (WebCore::GraphicsContext3D::getShaderInfoLog):
134974        (WebCore::GraphicsContext3D::getShaderSource):
134975        (WebCore::GraphicsContext3D::getString):
134976        (WebCore::GraphicsContext3D::getUniformLocation):
134977        (WebCore::GraphicsContext3D::shaderSource):
134978        (WebCore::GraphicsContext3D::texImage2D):
134979        (WebCore::GraphicsContext3D::texSubImage2D):
134980        (WebCore::GraphicsContext3D::reshape):
134981        (WebCore::GraphicsContext3D::markContextChanged):
134982        (WebCore::GraphicsContext3D::layerComposited):
134983        (WebCore::GraphicsContext3D::markLayerComposited):
134984        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
134985        (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
134986        (WebCore::GraphicsContext3D::paintCompositedResultsToCanvas):
134987        (WebCore::GraphicsContext3D::getExtensions):
134988        (WebCore::GraphicsContext3D::getInternalFramebufferSize):
134989        * platform/chromium/support/GraphicsContext3DPrivate.cpp: Renamed from Source/WebKit/chromium/src/GraphicsContext3DPrivate.cpp.
134990        (WebCore):
134991        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
134992        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
134993        (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromWebContext):
134994        (WebCore::GraphicsContext3DPrivate::extractWebGraphicsContext3D):
134995        (GrMemoryAllocationChangedCallback):
134996        (WebCore::GrMemoryAllocationChangedCallback::GrMemoryAllocationChangedCallback):
134997        (WebCore::GrMemoryAllocationChangedCallback::onGpuMemoryAllocationChanged):
134998        (WebCore::GraphicsContext3DPrivate::grContext):
134999        (WebCore::GraphicsContext3DPrivate::markContextChanged):
135000        (WebCore::GraphicsContext3DPrivate::layerComposited):
135001        (WebCore::GraphicsContext3DPrivate::markLayerComposited):
135002        (WebCore::GraphicsContext3DPrivate::paintFramebufferToCanvas):
135003        (GraphicsContext3DContextLostCallbackAdapter):
135004        (WebCore::GraphicsContext3DContextLostCallbackAdapter::GraphicsContext3DContextLostCallbackAdapter):
135005        (WebCore::GraphicsContext3DContextLostCallbackAdapter::~GraphicsContext3DContextLostCallbackAdapter):
135006        (WebCore::GraphicsContext3DContextLostCallbackAdapter::onContextLost):
135007        (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
135008        (GraphicsContext3DErrorMessageCallbackAdapter):
135009        (WebCore::GraphicsContext3DErrorMessageCallbackAdapter::GraphicsContext3DErrorMessageCallbackAdapter):
135010        (WebCore::GraphicsContext3DErrorMessageCallbackAdapter::~GraphicsContext3DErrorMessageCallbackAdapter):
135011        (WebCore::GraphicsContext3DErrorMessageCallbackAdapter::onErrorMessage):
135012        (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
135013        (WebCore::GraphicsContext3DPrivate::getExtensions):
135014        (WebCore::GraphicsContext3DPrivate::initializeExtensions):
135015        (WebCore::GraphicsContext3DPrivate::supportsExtension):
135016        (WebCore::GraphicsContext3DPrivate::ensureExtensionEnabled):
135017        (WebCore::GraphicsContext3DPrivate::isExtensionEnabled):
135018        (WebCore::GraphicsContext3DPrivate::isResourceSafe):
135019        (GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
135020        (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
135021        (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::~GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
135022        (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::onMemoryAllocationChanged):
135023        (WebCore::GraphicsContext3DPrivate::setGpuMemoryAllocationChangedCallbackCHROMIUM):
135024        (GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
135025        (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
135026        (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::~GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
135027        (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::onSwapBuffersComplete):
135028        (WebCore::GraphicsContext3DPrivate::setSwapBuffersCompleteCallbackCHROMIUM):
135029        * platform/chromium/support/GraphicsContext3DPrivate.h: Renamed from Source/WebKit/chromium/src/GraphicsContext3DPrivate.h.
135030        (WebKit):
135031        (WebCore):
135032        (GraphicsContext3DPrivate):
135033        (WebCore::GraphicsContext3DPrivate::webContext):
135034        (WebCore::GraphicsContext3DPrivate::preserveDrawingBuffer):
135035
1350362012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
135037
135038        Unreviewed, rolling out r119624.
135039        http://trac.webkit.org/changeset/119624
135040        https://bugs.webkit.org/show_bug.cgi?id=88472
135041
135042        Caused worker tests to become flaky (Requested by mhahnenberg
135043        on #webkit).
135044
135045        * workers/AbstractWorker.cpp:
135046        (WebCore::AbstractWorker::~AbstractWorker):
135047        * workers/WorkerMessagingProxy.cpp:
135048        (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
135049
1350502012-06-06  Brady Eidson  <beidson@apple.com>
135051
135052        <rdar://problem/11575112> and https://bugs.webkit.org/show_bug.cgi?id=88428
135053        REGRESSION (r115654): Opening many non-English WebArchives shows obvious encoding issues
135054
135055        Reviewed by Nate Chapin.
135056
135057        Test: fast/loader/webarchive-encoding-respected.html
135058
135059        * loader/DocumentLoader.cpp:
135060        (WebCore::DocumentLoader::commitData): Properly set the main resource encoding from the webarchive.
135061
1350622012-06-06  Mark Hahnenberg  <mhahnenberg@apple.com>
135063
135064        Worker tear-down can re-enter JSC during GC finalization
135065        https://bugs.webkit.org/show_bug.cgi?id=88449
135066
135067        Reviewed by Geoffrey Garen.
135068
135069        No new tests. Current regression tests cover these changes.
135070
135071        * workers/AbstractWorker.cpp: 
135072        (WebCore::AbstractWorker::~AbstractWorker): We don't need to call onDestroyWorker() here, it 
135073        will be called elsewhere in contextDestroyed().
135074        * workers/WorkerMessagingProxy.cpp:
135075        (WebCore::WorkerMessagingProxy::workerObjectDestroyed): We make the call to terminateWorkerContext()
135076        and workerContextDestroyed() asynchronous to avoid entering JSC during GC finalization.
135077
1350782012-06-06  Tony Chang  <tony@chromium.org>
135079
135080        webkit crashes on debug builds when running IETC flexbox-ordinal-group-001.htm
135081        https://bugs.webkit.org/show_bug.cgi?id=85832
135082
135083        Reviewed by Ojan Vafai.
135084
135085        We were using a HashSet<unsigned>, which can't hold the value of 0.
135086        According to the spec, 0 isn't a valid value, so at CSS parse time,
135087        reject the value 0. This lets us pass the test, although that's kind
135088        of by accident.
135089
135090        We could allow 0 for box-ordinal-group, but there are some perf implications
135091        to having allowing a value below the initial value (1 in this case).
135092
135093        We still allow 0 for box-flex-group, because that's what the existing code
135094        does and there are tests expecting this behavior.
135095
135096        No new tests, covered by ietestcenter/css3/flexbox/flexbox-ordinal-group-001.htm
135097        which was crashing.
135098
135099        * css/CSSParser.cpp:
135100        (WebCore::CSSParser::parseValue): Reject 0 for -webkit-box-ordinal-group.
135101
1351022012-06-06  Ojan Vafai  <ojan@chromium.org>
135103
135104        Remove some magic from the -webkit-flex shorthand parsing to match the changes in the spec
135105        https://bugs.webkit.org/show_bug.cgi?id=88444
135106
135107        Reviewed by Tony Chang.
135108
135109        -Unset positive flex defaults to 0.
135110        -Unset negative flex defaults to 1. No magic of doing something different if positive flex was set.
135111
135112        * css/CSSParser.cpp:
135113        (WebCore::CSSParser::parseFlex):
135114
1351152012-06-06  Ryosuke Niwa  <rniwa@webkit.org>
135116
135117        Revert r119440 now that I have a time to rebaseline them all!
135118
135119        * platform/ScrollbarThemeComposite.cpp:
135120        (WebCore::ScrollbarThemeComposite::thumbLength):
135121
1351222012-06-06  Joshua Bell  <jsbell@chromium.org>
135123
135124        IndexedDB: Infinite recursion in IDBObjectStore.openCursor(key, legacy_constant)
135125        https://bugs.webkit.org/show_bug.cgi?id=88431
135126
135127        Reviewed by Tony Chang.
135128
135129        Function was calling itself, rather than delegating to the correct (IDBKeyRange) overload.
135130
135131        Test: storage/indexeddb/legacy-constants.html
135132
135133        * Modules/indexeddb/IDBObjectStore.cpp:
135134        (WebCore::IDBObjectStore::openCursor):
135135
1351362012-06-06  Joshua Bell  <jsbell@chromium.org>
135137
135138        IndexedDB: Rename IDBFactory.getDatabaseNames() to webkitGetDatabaseNames()
135139        https://bugs.webkit.org/show_bug.cgi?id=86874
135140
135141        Reviewed by Ojan Vafai.
135142
135143        The function is non-standard, and should be prefixed.
135144
135145        Test: storage/indexeddb/factory-basics.html
135146
135147        * Modules/indexeddb/IDBFactory.idl:
135148
1351492012-06-06  Julien Chaffraix  <jchaffraix@webkit.org>
135150
135151        Add support for direction on table row group with collapsing borders
135152        https://bugs.webkit.org/show_bug.cgi?id=87900
135153
135154        Reviewed by Ojan Vafai.
135155
135156        Tests: fast/table/border-collapsing/first-cell-left-border-hidden-table-ltr-section-rtl.html
135157               fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html
135158               fast/table/border-collapsing/left-border-table-ltr-section-rtl.html
135159               fast/table/border-collapsing/left-border-table-rtl-section-ltr.html
135160               fast/table/border-collapsing/left-border-table-rtl-section-rtl.html
135161               fast/table/border-collapsing/left-border-vertical-lr-table-ltr-section-rtl.html
135162               fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-ltr.html
135163               fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-rtl.html
135164               fast/table/border-collapsing/rtl-table-left-border-hidden.html
135165               fast/table/border-collapsing/top-border-vertical-rl-table-ltr-section-rtl.html
135166               fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-ltr.html
135167               fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-rtl.html
135168               fast/table/table-ltr-section-rtl.html
135169               fast/table/table-rtl-section-ltr.html
135170               fast/table/table-rtl-section-rtl.html
135171
135172        This change enables proper support for direction on table row group.
135173        The current code would allow people to set direction on the row group but would still
135174        use the table's code for directionality checks (with surprising consequences).
135175
135176        The main change involve swapping end / start borders in case of mixed directionality
135177        as those 2 are not in sync.
135178        
135179        Example: <table dir="ltr"><tbody dir="rtl"><td id="cell0"></td><td id="cell1"></td></tbody></table>
135180
135181        Visually:
135182        Table: Start ---------------------> End
135183        Tbody: End <---------------------- Start
135184        Cell:  | #cell0        |           #cell1 |
135185
135186        In this example, the end table border should be compared with the tbody's start border
135187        and the last cell's (in DOM order) start border.
135188
135189        * rendering/RenderTable.cpp:
135190        (WebCore::RenderTable::tableStartBorderAdjoiningCell):
135191        (WebCore::RenderTable::tableEndBorderAdjoiningCell):
135192        Same as the other adjoining functions.
135193
135194        * rendering/RenderTable.h:
135195        (WebCore::RenderTable::lastColumnIndex):
135196        Helper function to get the last column index.
135197
135198        * rendering/RenderTableCell.cpp:
135199        (WebCore::RenderTableCell::computeCollapsedStartBorder):
135200        (WebCore::RenderTableCell::computeCollapsedEndBorder):
135201        Updated to call the table's adjoining border helpers.
135202
135203        * rendering/RenderTableCell.h:
135204        (WebCore::RenderTableCell::styleForCellFlow):
135205        Updated to use the table row group's style now that we properly support it.
135206
135207        (WebCore::RenderTableCell::isFirstOrLastCellInRow):
135208        Debug only helper to make sure we don't call the border adjoining function
135209        on non-terminal cells.
135210
135211        (WebCore::RenderTableCell::borderAdjoiningTableStart):
135212        (WebCore::RenderTableCell::borderAdjoiningTableEnd):
135213        * rendering/RenderTableRow.h:
135214        (WebCore::RenderTableRow::borderAdjoiningTableStart):
135215        (WebCore::RenderTableRow::borderAdjoiningTableEnd):
135216        * rendering/RenderTableSection.cpp:
135217        (WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
135218        (WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
135219        Updated the previous function to account for mixed directionality.
135220
135221        (WebCore::RenderTableSection::layoutRows):
135222        Move some of the code to setLogicalPositionForCell to match RenderBlock.
135223
135224        (WebCore::RenderTableSection::setLogicalPositionForCell):
135225        Switched direction checks to styleForCellFlow (this doesn't change anything as we
135226        were already properly flipping already but ensure better).
135227
135228        * rendering/RenderTableSection.h:
135229        (WebCore::RenderTableSection::hasSameDirectionAsTable):
135230        Added this helper to know if we have a mixed direction.
135231
135232        (WebCore::RenderTableSection::borderAdjoiningTableStart):
135233        (WebCore::RenderTableSection::borderAdjoiningTableEnd):
135234        Updated to account for mixed directionality.
135235
1352362012-06-06  Keyar Hood  <keyar@chromium.org>
135237
135238        [Chromium] imageSmoothingEnabled should apply to patterns
135239        https://bugs.webkit.org/show_bug.cgi?id=88103
135240
135241        Reviewed by Stephen White.
135242
135243        Test: fast/canvas/canvas-imageSmoothingEnabled-patterns.html
135244
135245        When drawing patterns on a Canvas, the imageSmoothingEnabled flag is
135246        respected.
135247        * platform/graphics/skia/PlatformContextSkia.cpp:
135248        (WebCore::PlatformContextSkia::setupShader):
135249
1352502012-06-06  Andrey Adaikin  <aandrey@chromium.org>
135251
135252        Web Inspector: [JSC] Add WebGL instrumentation support
135253        https://bugs.webkit.org/show_bug.cgi?id=87975
135254
135255        Reviewed by Vsevolod Vlasov.
135256
135257        * bindings/js/JSInjectedScriptManager.cpp:
135258        (WebCore::injectAndExecuteFunction):
135259        (WebCore::InjectedScriptManager::createInjectedScript):
135260        (WebCore):
135261        (WebCore::InjectedScriptManager::injectWebGLScript):
135262        * bindings/v8/custom/V8InjectedScriptManager.cpp:
135263        (WebCore::InjectedScriptManager::injectWebGLScript):
135264        * inspector/InjectedScriptManager.cpp:
135265        (WebCore::InjectedScriptManager::wrapWebGLRenderingContextForInstrumentation):
135266        * inspector/InjectedScriptManager.h:
135267        (InjectedScriptManager):
135268        * inspector/InspectorInstrumentation.h:
135269        (InspectorInstrumentation):
135270        * inspector/InspectorWebGLAgent.cpp:
135271        (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
135272        * inspector/InspectorWebGLAgent.h:
135273        (InspectorWebGLAgent):
135274        * inspector/InspectorWebGLInstrumentation.h:
135275        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
135276
1352772012-06-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
135278
135279        Fix a few spelling mistakes in IconDatabase logging
135280
135281        Makes debugging harder if the logging is confusing.
135282
135283        Reviewed by Jocelyn Turcotte.
135284
135285        * loader/icon/IconDatabase.cpp:
135286        (WebCore::IconDatabase::notifyPendingLoadDecisions):
135287        (WebCore::IconDatabase::readFromDatabase):
135288
1352892012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>
135290
135291        Web Inspector: [Compiler] Remove compile-front-end.sh and fix InjectedScriptSource errors.
135292        https://bugs.webkit.org/show_bug.cgi?id=87512
135293
135294        Reviewed by Yury Semikhatsky.
135295
135296        Removed compile-front-end.sh, compile-front-end.py should be used instead now.
135297        Made generate_protocol_externs a python module to call it from compile-front-end.py.
135298        Temporary copy of InjectedScriptSource.js is created and modified to
135299        avoid "This code lacks side effects" warning.
135300
135301        * inspector/compile-front-end.py:
135302        * inspector/compile-front-end.sh: Removed.
135303        * inspector/generate-protocol-externs: Removed.
135304        * inspector/generate_protocol_externs.py: Added.
135305        (full_qualified_type_id):
135306        (param_type):
135307        (generate_protocol_externs):
135308
1353092012-06-06  Zoltan Herczeg  <zherczeg@webkit.org>
135310
135311        [Qt] REGRESSION(r118616): It made all tests crash in debug mode
135312        https://bugs.webkit.org/show_bug.cgi?id=87701
135313
135314        Reviewed by Csaba Osztrogonác.
135315
135316        Replace WriteBarrier<JSObject> to Weak<JSObject> by introducing a new
135317        QtWeakObjectReference sub class. Rewrite all affected type definitions.
135318
135319        All existing test in debug mode cover this issue.
135320
135321        * bridge/qt/qt_class.cpp:
135322        (JSC::Bindings::QtClass::fallbackObject):
135323        * bridge/qt/qt_instance.cpp:
135324        (QtRuntimeObject):
135325        (JSC::Bindings::QtInstance::removeUnusedMethods):
135326        * bridge/qt/qt_instance.h:
135327        (QtInstance):
135328        (QtWeakObjectReference):
135329        (JSC::Bindings::QtInstance::QtWeakObjectReference::QtWeakObjectReference):
135330        (JSC::Bindings::QtInstance::QtWeakObjectReference::operator=):
135331        (JSC::Bindings::QtInstance::QtWeakObjectReference::get):
135332        * bridge/qt/qt_runtime.cpp:
135333        (JSC::Bindings::QtRuntimeMethodData::finalize):
135334        * bridge/qt/qt_runtime_qt4.cpp:
135335        (JSC::Bindings::QtRuntimeMethodData::finalize):
135336
1353372012-06-06  Eugene Klyuchnikov  <eustas.bug@gmail.com>
135338
135339        Web Inspector: help/settings screen does not overlay console in split screen mode
135340        https://bugs.webkit.org/show_bug.cgi?id=88352
135341
135342        Reviewed by Pavel Feldman.
135343
135344        * inspector/front-end/HelpScreen.js:
135345        (WebInspector.HelpScreen): Mark view as root.
135346        (WebInspector.HelpScreen.prototype.showModal): Change view parent.
135347        * inspector/front-end/helpScreen.css:
135348        (.help-window-outer): Add panel and status bar indent.
135349        (body.compact .help-window-outer): Ditto.
135350
1353512012-06-06  Yoshifumi Inoue  <yosin@chromium.org>
135352
135353        [Form] Changes for InputNumber type
135354        https://bugs.webkit.org/show_bug.cgi?id=88394
135355
135356        Reviewed by Kent Tamura.
135357
135358        This patch changes codes for consitency of InputNumber usage for
135359        reducing size of patch when we change InputNumber type alias from
135360        double to Decimal.
135361
135362        No new tests. This patch doesn't change behavior.
135363
135364        * html/BaseDateAndTimeInputType.cpp:
135365        (WebCore::BaseDateAndTimeInputType::serializeWithComponents): Fixed parameter type for getAllowedValueStep.
135366        * html/InputType.cpp:
135367        (WebCore::InputType::minimum): Fixed return value type to InputNumber.
135368        (WebCore::InputType::maximum): ditto.
135369        * html/MonthInputType.cpp:
135370        (WebCore::MonthInputType::defaultValueForStepUp): Fix return value type to InputNumber.
135371        (WebCore::MonthInputType::parseToNumber): ditto.
135372        * html/NumberInputType.cpp:
135373        (WebCore::NumberInputType::setValueAsDouble): Removed extra convertDoubleToInputNumber.
135374        * html/StepRange.cpp:
135375        (WebCore::StepRange::alignValueForStep): Use roundByStep for code sharing.
135376        (WebCore::StepRange::clampValue): ditto.
135377        (WebCore::StepRange::roundByStep): Added.
135378        * html/StepRange.h:
135379        (StepRange): Added a declaration of roundByStep.
135380
1353812012-06-06  Michael Brüning  <michael.bruning@nokia.com>
135382
135383        [Qt] Fix harmattan builds broken by r119247.
135384        https://bugs.webkit.org/show_bug.cgi?id=88330
135385
135386        Reviewed by Jocelyn Turcotte.
135387
135388        Fix Harmattan build break caused by undefined constant
135389        GL_TEXTURE_RECTANGLE_ARB by adding defined(GL_ARB_texture_rectangle)
135390        guards around TextureMapperGL::drawTextureRectangleARB.
135391
135392        * platform/graphics/texmap/TextureMapperGL.cpp: Added defined(GL_ARB_texture_rectangle) guards around drawTextureRectangleARB.
135393        (WebCore):
135394        * platform/graphics/texmap/TextureMapperGL.h: Added definded(GL_ARB_texture_rectangle) guards around drawTextureRectangleARB.
135395
1353962012-06-06  Shinya Kawanaka  <shinyak@chromium.org>
135397
135398        PositionIterator:;setOffsetInLeafNode() is not used anywhere.
135399        https://bugs.webkit.org/show_bug.cgi?id=88397
135400
135401        Reviewed by Ryosuke Niwa.
135402
135403        It's not used anywhere. We can remove it safely.
135404
135405        No new tests, no change in behavior.
135406
135407        * WebCore.order:
135408        * dom/PositionIterator.cpp:
135409        * dom/PositionIterator.h:
135410
1354112012-06-06  Andrey Adaikin  <aandrey@chromium.org>
135412
135413        Web Inspector: [WebGL] Add WebGL instrumentation support on the backend
135414        https://bugs.webkit.org/show_bug.cgi?id=87960
135415
135416        Adds a WebGLAgent, injects a WebGL script upon calling the getContext
135417        method of a HTMLCanvasElement that will wrap the WebGL rendering context
135418        for instrumentation purposes.
135419
135420        Reviewed by Yury Semikhatsky.
135421
135422        * CMakeLists.txt:
135423        * DerivedSources.make:
135424        * DerivedSources.pri:
135425        * GNUmakefile.am:
135426        * GNUmakefile.list.am:
135427        * Target.pri:
135428        * WebCore.gyp/WebCore.gyp:
135429        * WebCore.gypi:
135430        * WebCore.vcproj/WebCore.vcproj:
135431        * WebCore.xcodeproj/project.pbxproj:
135432        * bindings/js/JSHTMLCanvasElementCustom.cpp:
135433        (WebCore::JSHTMLCanvasElement::getContext):
135434        (WebCore::JSHTMLCanvasElement::toDataURL):
135435        * bindings/js/JSInjectedScriptManager.cpp:
135436        (WebCore):
135437        (WebCore::InjectedScriptManager::injectWebGLScript):
135438        * bindings/v8/ScriptState.cpp:
135439        (WebCore::ScriptState::forContext):
135440        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
135441        (WebCore::V8HTMLCanvasElement::getContextCallback):
135442        * bindings/v8/custom/V8InjectedScriptManager.cpp:
135443        (WebCore::InjectedScriptManager::createInjectedScript):
135444        (WebCore):
135445        (WebCore::InjectedScriptManager::injectWebGLScript):
135446        (WebCore::InjectedScriptManager::discardInjectedScript):
135447        (WebCore::InjectedScriptManager::injectedScriptFor):
135448        * inspector/CodeGeneratorInspector.py:
135449        * inspector/InjectedScriptManager.cpp:
135450        (WebCore):
135451        (WebCore::InjectedScriptManager::wrapWebGLRenderingContextForInstrumentation):
135452        (WebCore::InjectedScriptManager::injectedWebGLScriptSource):
135453        * inspector/InjectedScriptManager.h:
135454        (InjectedScriptManager):
135455        * inspector/InjectedWebGLScriptSource.js: Added.
135456        * inspector/Inspector.json:
135457        * inspector/InspectorAllInOne.cpp:
135458        * inspector/InspectorController.cpp:
135459        (WebCore::InspectorController::InspectorController):
135460        * inspector/InspectorInstrumentation.h:
135461        (WebCore):
135462        (InspectorInstrumentation):
135463        (WebCore::InspectorInstrumentation::markResourceAsCached):
135464        * inspector/InspectorWebGLAgent.cpp: Added.
135465        (WebCore):
135466        (WebGLAgentState):
135467        (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
135468        (WebCore::InspectorWebGLAgent::~InspectorWebGLAgent):
135469        (WebCore::InspectorWebGLAgent::setFrontend):
135470        (WebCore::InspectorWebGLAgent::clearFrontend):
135471        (WebCore::InspectorWebGLAgent::restore):
135472        (WebCore::InspectorWebGLAgent::enable):
135473        (WebCore::InspectorWebGLAgent::disable):
135474        (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
135475        * inspector/InspectorWebGLAgent.h: Added.
135476        (WebCore):
135477        (InspectorWebGLAgent):
135478        (WebCore::InspectorWebGLAgent::create):
135479        (WebCore::InspectorWebGLAgent::enabled):
135480        * inspector/InspectorWebGLInstrumentation.h: Added.
135481        (WebCore):
135482        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
135483        * inspector/InstrumentingAgents.h:
135484        (WebCore):
135485        (WebCore::InstrumentingAgents::InstrumentingAgents):
135486        (InstrumentingAgents):
135487        (WebCore::InstrumentingAgents::inspectorWebGLAgent):
135488        (WebCore::InstrumentingAgents::setInspectorWebGLAgent):
135489
1354902012-06-06  Joone Hur  <joone.hur@intel.com>
135491
135492        [GTK] Build fix for Accelerated Compositing with OpenGL
135493        https://bugs.webkit.org/show_bug.cgi?id=88292
135494
135495        Reviewed by Martin Robinson.
135496
135497        Build fix after r119247.
135498        Do not include GraphicsSurface.h when not building
135499        with GRAPHICS_SURFACE.
135500
135501        No new tests. This is only a build fix.
135502
135503        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
135504        * platform/graphics/texmap/TextureMapperBackingStore.h:
135505        * platform/graphics/texmap/TextureMapperGL.cpp:
135506
1355072012-06-05  Joe Thomas  <joethomas@motorola.com>
135508
135509        ASSERTION FAILED: ASSERT(!isPercentageIntrinsicSize) in RenderReplaced::computeIntrinsicRatioInformationForRenderBox
135510        https://bugs.webkit.org/show_bug.cgi?id=88197
135511
135512        Reviewed by Daniel Bates.
135513
135514        RenderSVGRoot extends RenderReplaced and it overrides the computeIntrinsicRatioInformation() 
135515        method of RenderReplaced. RenderSVGRoot::computeIntrinsicRatioInformation
135516        sets isPercentageIntrinsicSize to true while it handles width and height of percentage types.
135517        So this assertion should be fired only if intrinsicRatio is non-zero.
135518
135519        Test: svg/in-html/svg-assert-failure-percentage.html
135520
135521        * rendering/RenderReplaced.cpp:
135522        (WebCore::RenderReplaced::computeIntrinsicRatioInformationForRenderBox):
135523
1355242012-06-05  Tony Chang  <tony@chromium.org>
135525
135526        Changing flexbox justify/alignment doesn't update their positioning
135527        https://bugs.webkit.org/show_bug.cgi?id=88366
135528
135529        Reviewed by Ojan Vafai.
135530
135531        Test: css3/flexbox/style-change.html
135532
135533        * rendering/style/RenderStyle.cpp:
135534        (WebCore::RenderStyle::diff): Since these member variables were moved
135535        out of StyleFlexibleBoxData, we have to compare them in RenderStyle::diff.
135536
1355372012-06-05  Charles Wei  <charles.wei@torchmobile.com.cn>
135538
135539        JSC implementation of SerializedScriptValue for IndexedDB
135540        https://bugs.webkit.org/show_bug.cgi?id=88048
135541
135542        Reviewed by George Staikos.
135543
135544        No new tests. All the current indexeddb test cases apply when indexeddb works for JSC.
135545
135546        * bindings/js/SerializedScriptValue.cpp:
135547        (WebCore::CloneSerializer::serializeNumber):
135548        (CloneSerializer):
135549        (WebCore::CloneDeserializer::toWireString):
135550        (CloneDeserializer):
135551        (WebCore::SerializedScriptValue::create):
135552        (WebCore::SerializedScriptValue::toWireString):
135553        (WebCore):
135554        (WebCore::SerializedScriptValue::createFromWire):
135555        (WebCore::SerializedScriptValue::numberValue):
135556        (WebCore::SerializedScriptValue::deserialize):
135557
1355582012-06-05  Ojan Vafai  <ojan@chromium.org>
135559
135560        Nested CSS flexbox renders incorrectly
135561        https://bugs.webkit.org/show_bug.cgi?id=87679
135562
135563        Reviewed by Julien Chaffraix.
135564
135565        If the containing block with a perpendicular writing mode has an overrideHeight,
135566        then its logical height should be based off that instead of its RenderStyle.
135567
135568        Test: css3/flexbox/perpendicular-writing-modes-inside-flex-item.html
135569
135570        * rendering/RenderBox.cpp:
135571        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
135572
1355732012-06-05  Charles Wei  <charles.wei@torchmobile.com.cn>
135574
135575        Need special-case toJS(IDBAny) for IDBCursorWithValue
135576        https://bugs.webkit.org/show_bug.cgi?id=87963
135577
135578        Reviewed by George Staikos.
135579
135580        No new tests, this is for indexedDB, which is not working for JSC binding.
135581        When indexedDB working for JSC, all the indexdb test cases should apply.
135582
135583        * bindings/js/JSIDBAnyCustom.cpp:
135584        (WebCore::toJS):
135585
1355862012-06-05  Michal Mocny  <mmocny@google.com>
135587
135588        [chromium] Set default memory allocation limit bytes when GL_CHROMIUM_gpu_memory_manager is not supported by graphics context.
135589        https://bugs.webkit.org/show_bug.cgi?id=87996
135590
135591        Reviewed by James Robinson.
135592
135593        Soon we hope to have renderers not manage there own memory allocation limits, and rely exclusively on the
135594        allocation given by GpuMemoryManager.  However, when the graphics context does not support the
135595        GL_CHROMIUM_gpu_memory_manager extension, such as the one used by DumpRenderTree, we must default the
135596        memory allocation limit to some non-0 value.
135597
135598        * platform/graphics/chromium/LayerRendererChromium.cpp:
135599        (WebCore::LayerRendererChromium::initialize):
135600        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
135601        (WebCore::CCSingleThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
135602        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
135603        (WebCore):
135604        (DebugScopedSetMainThreadFromEither):
135605        (WebCore::DebugScopedSetMainThreadFromEither::DebugScopedSetMainThreadFromEither):
135606        (WebCore::DebugScopedSetMainThreadFromEither::~DebugScopedSetMainThreadFromEither):
135607
1356082012-06-05  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
135609
135610        [Qt] Use GraphicsContext3DOpenGLES.cpp when using OpenGL ES
135611        https://bugs.webkit.org/show_bug.cgi?id=78720
135612
135613        Reviewed by Noam Rosenthal.
135614
135615        Functions are removed from GraphicsContext3DQt that already implemented
135616        in GraphicsContext3DCommon. Macros that not supported at GLES have been
135617        changed to their appropriate pair that found in GraphicsContext3D
135618        (e.g. GL_FRAMEBUFFER_EXT to GraphicsContext3D::FRAMEBUFFER).
135619        It was needed because OpenGLES does not support these macros.
135620        Extensions3DQt is removed beceause it has never been used.
135621        Some functions have been moved fron GraphicsContext3DCommon to *OpenGL
135622        and *OpenGLES to provide specialization.
135623        The "m_depthStencilBuffer" member is added to Qt port because it uses
135624        "m_depthStencilBuffer" like the other platforms.
135625
135626        * Target.pri:
135627        * platform/graphics/GraphicsContext3D.h:
135628        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
135629        (WebCore::GraphicsContext3D::depthRange):
135630        (WebCore):
135631        (WebCore::GraphicsContext3D::clearDepth):
135632        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
135633        (WebCore::GraphicsContext3D::prepareTexture):
135634        (WebCore::GraphicsContext3D::readRenderingResults):
135635        (WebCore::GraphicsContext3D::reshape):
135636        (WebCore::GraphicsContext3D::copyTexImage2D):
135637        (WebCore::GraphicsContext3D::copyTexSubImage2D):
135638        (WebCore::GraphicsContext3D::readPixels):
135639        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
135640        (WebCore::GraphicsContext3D::reshapeFBOs):
135641        (WebCore::GraphicsContext3D::depthRange):
135642        (WebCore):
135643        (WebCore::GraphicsContext3D::clearDepth):
135644        * platform/graphics/qt/GraphicsContext3DQt.cpp:
135645        (WebCore::GraphicsContext3D::isGLES2Compliant):
135646        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebuffer):
135647        (WebCore::GraphicsContext3D::GraphicsContext3D):
135648        (WebCore::GraphicsContext3D::~GraphicsContext3D):
135649        (WebCore):
135650
1356512012-06-05  Vitaly Buka  <vitalybuka@chromium.org>
135652
135653        Special layout handler should be done on top frame being printed.
135654        https://bugs.webkit.org/show_bug.cgi?id=88201
135655
135656        Reviewed by Brady Eidson.
135657
135658        No new tests. Root case is already covered by tests.
135659        Case described in the issue can be reproduced only by direct call
135660        to Frame::setPrinting of subframe. Probably it's not possible with
135661        layout tests.
135662
135663        * page/Frame.cpp:
135664        (WebCore::Frame::setPrinting):
135665        Use shouldUsePrintingLayout to choose proper version of forceLayout().
135666        (WebCore::Frame::shouldUsePrintingLayout):
135667        Checks if current frame is the top frame being printed.
135668        * rendering/RenderView.cpp:
135669        (WebCore::RenderView::shouldUsePrintingLayout): Forward to Frame.
135670
1356712012-06-05  Max Feil  <mfeil@rim.com>
135672
135673        [BlackBerry] Conditionally enlarge HTML5 video controls in fullscreen mode
135674        https://bugs.webkit.org/show_bug.cgi?id=87551
135675
135676        Reviewed by Antonio Gomes.
135677
135678        Changes to make media controls larger in fullscreen mode. The
135679        BlackBerry media controls used to be sized by a combination
135680        of CSS styles specified in mediaControlsBlackBerry.css and
135681        hard coded constants in RenderThemeBlackBerry.cpp. This patch
135682        moves all the dimensional sizes to a common location, i.e.
135683        RenderThemeBlackBerry.cpp. Having all the logic in C++ code allows
135684        more complex decision making for when and how much to enlarge the
135685        media controls. Currently the controls are enlarged by a factor
135686        of 2 if the document is in fullscreen mode, the video element
135687        is the current fullscreen element, and the deviceScaleFactor of
135688        the page is less than 2.0. This avoids overly large controls
135689        on pages which are already at least doubling the size of the
135690        controls via viewport meta tag device-width settings. In other
135691        words, if the CSS pixels are already enlarged compared to device
135692        pixels by a factor of at least 2 in length and width.
135693
135694        In order to accomplish this, I had to add a new Element* parameter
135695        to RenderTheme::adjustSliderThumbSize(). This is needed so
135696        that fullscreen mode can be checked and the deviceScaleFactor
135697        retrieved. I feel that this does not have a big impact on the
135698        code and the other ports, for which I will simply be adding the
135699        additional parameter in their platform code.
135700
135701        Tests:
135702        video-controls-enlarged-fullscreen-meta.html
135703        video-controls-enlarged-fullscreen-nometa.html
135704
135705        * css/mediaControlsBlackBerry.css:
135706        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
135707        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
135708        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
135709        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
135710        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
135711        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
135712        (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
135713        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
135714        (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
135715        (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
135716        * html/shadow/SliderThumbElement.cpp:
135717        (WebCore::RenderSliderThumb::updateAppearance):
135718        * platform/blackberry/RenderThemeBlackBerry.cpp:
135719        (WebCore):
135720        (WebCore::determineRenderSlider):
135721        (WebCore::determineFullScreenMultiplier):
135722        (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
135723        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
135724        (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
135725        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
135726        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
135727        * platform/blackberry/RenderThemeBlackBerry.h:
135728        (RenderThemeBlackBerry):
135729        * platform/efl/RenderThemeEfl.cpp:
135730        (WebCore::RenderThemeEfl::adjustSliderThumbSize):
135731        * platform/efl/RenderThemeEfl.h:
135732        (RenderThemeEfl):
135733        * platform/gtk/RenderThemeGtk.h:
135734        * platform/gtk/RenderThemeGtk2.cpp:
135735        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
135736        * platform/gtk/RenderThemeGtk3.cpp:
135737        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
135738        * platform/qt/RenderThemeQt.cpp:
135739        (WebCore::RenderThemeQt::adjustSliderThumbSize):
135740        * platform/qt/RenderThemeQt.h:
135741        (RenderThemeQt):
135742        * platform/qt/RenderThemeQtMobile.cpp:
135743        (WebCore::RenderThemeQtMobile::adjustSliderThumbSize):
135744        * platform/qt/RenderThemeQtMobile.h:
135745        (RenderThemeQtMobile):
135746        * rendering/RenderThemeChromiumLinux.cpp:
135747        (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
135748        * rendering/RenderThemeChromiumLinux.h:
135749        (RenderThemeChromiumLinux):
135750        * rendering/RenderThemeChromiumSkia.cpp:
135751        (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize):
135752        * rendering/RenderThemeChromiumSkia.h:
135753        (RenderThemeChromiumSkia):
135754        * rendering/RenderThemeChromiumWin.cpp:
135755        (WebCore):
135756        (WebCore::RenderThemeChromiumWin::adjustSliderThumbSize):
135757        * rendering/RenderThemeChromiumWin.h:
135758        (RenderThemeChromiumWin):
135759        * rendering/RenderThemeMac.h:
135760        (RenderThemeMac):
135761        * rendering/RenderThemeSafari.cpp:
135762        (WebCore::RenderThemeSafari::adjustSliderThumbSize):
135763        * rendering/RenderThemeSafari.h:
135764        (RenderThemeSafari):
135765        * rendering/RenderThemeWin.cpp:
135766        (WebCore::RenderThemeWin::adjustSliderThumbSize):
135767        * rendering/RenderThemeWin.h:
135768        (RenderThemeWin):
135769        * rendering/RenderThemeWinCE.cpp:
135770        (WebCore::RenderThemeWinCE::adjustSliderThumbSize):
135771        * rendering/RenderThemeWinCE.h:
135772        (RenderThemeWinCE):
135773        * rendering/RenderTheme.cpp:
135774        (WebCore::RenderTheme::adjustStyle):
135775        (WebCore::RenderTheme::adjustMediaControlStyle):
135776        (WebCore):
135777        (WebCore::RenderTheme::adjustSliderThumbStyle):
135778        (WebCore::RenderTheme::adjustSliderThumbSize):
135779        * rendering/RenderTheme.h:
135780        (RenderTheme):
135781
1357822012-06-05  Stephanie Lewis  <slewis@apple.com>
135783
135784        https://bugs.webkit.org/show_bug.cgi?id=88370
135785        Memory sampler should trigger low memory signal
135786
135787        Reviewed by Geoff Garen.
135788
135789        No new tests. Verify by running stress test which crashes 
135790        in a few minutes without the fix.
135791
135792        Fix assumption in block code.  We could get in a state where timer_event_source
135793        had already been released before the block ran.
135794
135795        * platform/mac/MemoryPressureHandlerMac.mm:
135796        (WebCore::MemoryPressureHandler::holdOff):
135797
1357982012-06-05  Yoshifumi Inoue  <yosin@chromium.org>
135799
135800        [Forms] Introduce InputNumber type as an alias of double for replacing it to Decimal
135801        https://bugs.webkit.org/show_bug.cgi?id=88275
135802
135803        Reviewed by Kent Tamura.
135804
135805        This patch introduced InputNumber type as alias of double to be
135806        replaced to Decimal and convertDoubleToInputNumber and 
135807        convertToInputNumberToDouble for reducing size of patch when we
135808        introduce Decimal type.
135809
135810        This patch added new vairables to use const variable to reduce
135811        copy operation when introducing Decimal type.
135812
135813        In the implementation, we use InputNumber, will be Decimal, however some methods in IDL
135814        use double. To clarify internal usage of value and external usage, thit patch renamed
135815        following functions:
135816
135817        - parseToDouble => parseNumber
135818        - setValueAsNumber => setValueAsDouble and setValueAsInputNumber
135819        - valueAsNumber => valueAsDouble
135820
135821        This patch is a part of introducing Decimal, https://bugs.webkit.org/show_bug.cgi?id=80009
135822
135823        No new tests. This patch doesn't change behavior.
135824
135825        * html/BaseDateAndTimeInputType.cpp:
135826        (WebCore::BaseDateAndTimeInputType::valueAsDate): Replaced parseToNumber() to valueAsDouble()
135827        (WebCore::BaseDateAndTimeInputType::setValueAsDate): Inserted convertDoubleToInputNumber.
135828        (WebCore::BaseDateAndTimeInputType::valueAsDouble): Use new function parseToDouble().
135829        (WebCore::BaseDateAndTimeInputType::setValueAsInputNumber): Added.
135830        (WebCore::BaseDateAndTimeInputType::defaultValueForStepUp): Changed return type to InputNumber.
135831        (WebCore::BaseDateAndTimeInputType::parseToNumber): This is replacement of parseToDouble().
135832        (WebCore::BaseDateAndTimeInputType::parseToDouble): Added for valueAsDate and valueAsDouble.
135833        (WebCore::BaseDateAndTimeInputType::serialize): Changed parameter type to InputNumber.
135834        (WebCore::BaseDateAndTimeInputType::serializeWithComponents): Replace double to InputNumber for getAllowdStep.
135835        * html/BaseDateAndTimeInputType.h:
135836        (BaseDateAndTimeInputType):
135837        * html/DateInputType.cpp:
135838        (WebCore::DateInputType::createStepRange): Replaced double to InputNumber.
135839        * html/DateInputType.h:
135840        (DateInputType):
135841        * html/DateTimeInputType.cpp:
135842        (WebCore::DateTimeInputType::defaultValueForStepUp): Changed return type to InputNumber.
135843        (WebCore::DateTimeInputType::createStepRange): Replaced double to InputNumber.
135844        * html/DateTimeInputType.h:
135845        (DateTimeInputType):
135846        * html/DateTimeLocalInputType.cpp:
135847        (WebCore::DateTimeLocalInputType::createStepRange): Replaced double to InputNumber.
135848        * html/DateTimeLocalInputType.h:
135849        (DateTimeLocalInputType):
135850        * html/HTMLInputElement.cpp:
135851        (WebCore::HTMLInputElement::getAllowedValueStep): Changed parameter type to InputNumber.
135852        (WebCore::HTMLInputElement::valueAsNumber): Use InputType::valueAsDouble.
135853        (WebCore::HTMLInputElement::setValueAsNumber): Use InputType::valueAsDouble.
135854        * html/HTMLInputElement.h:
135855        (HTMLInputElement):
135856        * html/InputType.cpp:
135857        (WebCore::InputType::valueAsDouble): Replacement of valueAsNumber.
135858        (WebCore::InputType::setValueAsDouble): Replacement of valueAsNumber.
135859        (WebCore::InputType::setValueAsInputNumber): Replacement of valueAsNumber.
135860        (WebCore::InputType::rangeUnderflow): Replaced double to InputNumber.
135861        (WebCore::InputType::rangeOverflow): Replaced double to InputNumber.
135862        (WebCore::InputType::defaultValueForStepUp): Changed return type to InputNumber.
135863        (WebCore::InputType::isInRange): Replaced double to InputNumber.
135864        (WebCore::InputType::isOutOfRange): Replaced double to InputNumber.
135865        (WebCore::InputType::stepMismatch): Replaced double to InputNumber.
135866        (WebCore::InputType::validationMessage): Replaced double to InputNumber.
135867        (WebCore::InputType::parseToNumber): Replacement of parseToDouble.
135868        (WebCore::InputType::parseToNumberOrNaN): Added for reducing number of std::numeric_limits<double>::quiet_NaN().
135869        (WebCore::InputType::parseToNumberWithDecimalPlaces): Replaced double to InputNumber.
135870        (WebCore::InputType::serialize): Changed parameter type to InputNumber.
135871        (WebCore::InputType::applyStep): Replaced double to InputNumber.
135872        (WebCore::InputType::getAllowedValueStep): Changed parameter type to InputNumber.
135873        (WebCore::InputType::stepUpFromRenderer): Replaced double to InputNumber.
135874        * html/InputType.h:
135875        (InputType):
135876        * html/MonthInputType.cpp:
135877        (WebCore::MonthInputType::defaultValueForStepUp): Changed return type to InputNumber.
135878        (WebCore::MonthInputType::createStepRange): Replaced double to InputNumber.
135879        (WebCore::MonthInputType::parseToNumber): Replacement of parseToDouble.
135880        * html/MonthInputType.h:
135881        (MonthInputType):
135882        * html/NumberInputType.cpp:
135883        (WebCore::NumberInputType::valueAsDouble): Replacement of valueAsNumber. Changed to use parseToDoubleForNumberType.
135884        (WebCore::NumberInputType::setValueAsDouble):  Replacement of setValueAsNumber.  Changed to use serializeForNumberType.
135885        (WebCore::NumberInputType::setValueAsInputNumber): Replacement of setValueAsNumber.
135886        (WebCore::NumberInputType::createStepRange): Replaced double to InputNumber.
135887        (WebCore::NumberInputType::parseToNumber): Replacement of parseToDouble.
135888        (WebCore::NumberInputType::parseToNumberWithDecimalPlaces): Replaced double to InputNumber.
135889        (WebCore::NumberInputType::serialize):
135890        * html/NumberInputType.h:
135891        (NumberInputType):
135892        * html/RangeInputType.cpp:
135893        (WebCore::ensureMaximum): Replaced double to InputNumber.
135894        (WebCore::RangeInputType::valueAsDouble): Replacement of valueAsNumber.
135895        (WebCore::RangeInputType::setValueAsInputNumber):  Replacement of setValueAsNumber.
135896        (WebCore::RangeInputType::createStepRange): Replaced double to InputNumber.
135897        (WebCore::RangeInputType::handleKeydownEvent): Replaced double to InputNumber.
135898        (WebCore::RangeInputType::parseToNumber): Replacement of parseToDouble.
135899        (WebCore::RangeInputType::serialize): Changed parameter type to InputNumber.
135900        (WebCore::RangeInputType::sanitizeValue): Replaced double to InputNumber.
135901        * html/RangeInputType.h:
135902        (RangeInputType):
135903        * html/StepRange.cpp:
135904        (WebCore::StepRange::StepRange): Replaced double to InputNumber.
135905        (WebCore::StepRange::acceptableError): Replaced double to InputNumber.
135906        (WebCore::StepRange::alignValueForStep): Replaced double to InputNumber.
135907        (WebCore):
135908        (WebCore::StepRange::clampValue): Replaced double to InputNumber.
135909        (WebCore::StepRange::stepMismatch): Replaced double to InputNumber.
135910        * html/StepRange.h:
135911        (WebCore::convertDoubleToInputNumber): Added.
135912        (WebCore::convertInputNumberToDouble): Added.
135913        (WebCore::StepRange::NumberWithDecimalPlaces::NumberWithDecimalPlaces): Replaced double to InputNumber.
135914        (WebCore::StepRange::StepDescription::defaultValue): Replaced double to InputNumber.
135915        (StepRange):
135916        (WebCore::StepRange::maximum): Replaced double to InputNumber.
135917        (WebCore::StepRange::minimum): Replaced double to InputNumber.
135918        (WebCore::StepRange::step): Replaced double to InputNumber.
135919        (WebCore::StepRange::stepBase): Replaced double to InputNumber.
135920        (WebCore::StepRange::defaultValue): Replaced double to InputNumber.
135921        (WebCore::StepRange::proportionFromValue): Replaced double to InputNumber.
135922        (WebCore::StepRange::valueFromProportion): Replaced double to InputNumber.
135923        * html/TimeInputType.cpp:
135924        (WebCore::TimeInputType::defaultValueForStepUp): Replaced double to InputNumber.
135925        (WebCore::TimeInputType::createStepRange): Replaced double to InputNumber.
135926        * html/TimeInputType.h:
135927        (TimeInputType):
135928        * html/WeekInputType.cpp:
135929        (WebCore::WeekInputType::createStepRange): Replaced double to InputNumber.
135930        * html/WeekInputType.h:
135931        (WeekInputType):
135932        * html/shadow/CalendarPickerElement.cpp:
135933        (WebCore::CalendarPickerElement::writeDocument): Replaced double to InputNumber.
135934        * html/shadow/SliderThumbElement.cpp:
135935        (WebCore::sliderPosition): Replaced double to InputNumber.
135936        (WebCore::RenderSliderThumb::layout): Replaced double to InputNumber.
135937        (WebCore::SliderThumbElement::setPositionFromPoint): Replaced double to InputNumber.
135938
1359392012-06-05  Ryosuke Niwa  <rniwa@webkit.org>
135940
135941        Build fix after r119527.
135942
135943        * dom/ViewportArguments.cpp:
135944        (WebCore::computeViewportAttributes):
135945
1359462012-06-05  Martin Robinson  <mrobinson@igalia.com>
135947
135948        [Cairo] [OpenGL] Enable GL_OES_standard_derivatives
135949        https://bugs.webkit.org/show_bug.cgi?id=87583
135950
135951        Reviewed by Alejandro G. Castro.
135952
135953        No new tests. This is covered by oes-standard-derivatives.html
135954        in the Khronos WebGL conformance tests, which may one day be part
135955        of the WebKit test suite.
135956
135957        Activate the GL_OES_standard_derivatives on Cairo along with
135958        Qt and Mac.
135959
135960        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
135961        (WebCore::Extensions3DOpenGL::ensureEnabled):
135962        (WebCore::Extensions3DOpenGL::isEnabled):
135963
1359642012-06-05  Simon Fraser  <simon.fraser@apple.com>
135965
135966        Avoid creating compositing layers for preserve-3d without transformed descendants
135967        https://bugs.webkit.org/show_bug.cgi?id=88115
135968
135969        Reviewed by Antti Koivisto.
135970        
135971        Avoid creating compositing layers, and therefore using excess backing store,
135972        for elements that have -webkit-transform-style: preserve-3d, but no 3D-transformed
135973        descendants that would be affected by that preserve-3d.
135974        
135975        Test: compositing/layer-creation/no-compositing-for-preserve-3d.html
135976
135977        * rendering/RenderLayer.h: Replace the "mustOverlap" flag with a enum
135978        that describes the different reasons for indirect compositing, so that
135979        we can use that information to decide whether to allocate backing store.
135980        (WebCore::RenderLayer::setIndirectCompositingReason):
135981        (WebCore::RenderLayer::indirectCompositingReason):
135982        (WebCore::RenderLayer::mustCompositeForIndirectReasons):
135983        * rendering/RenderLayer.cpp:
135984        (WebCore::RenderLayer::RenderLayer): Initialize m_indirectCompositingReason
135985
135986        * rendering/RenderLayerCompositor.h: New out param for computeCompositingRequirements()
135987        that is uses to indicate that a 3d-transformed descendant has been encountered.
135988        Rename requiresCompositingWhenDescendantsAreCompositing() to requiresCompositingForIndirectReason(),
135989        and return the reason as an out param.
135990        
135991        * rendering/RenderLayerCompositor.cpp:
135992        (WebCore::RenderLayerCompositor::updateCompositingLayers): Pass in the saw3DTransform
135993        param to computeCompositingRequirements().
135994        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Return a flag
135995        from computeCompositingRequirements() that is set to true if we've seen descendants
135996        that have 3d transforms. This is later used to decide whether to composite for
135997        perspective or preserve-3d.
135998        Change the "mustOverlapCompositedLayers" code to use the new "indirect compositing"
135999        enum flags.
136000        After enumerating children, call requiresCompositingForIndirectReason() and 
136001        record the reason in the layer.
136002        (WebCore::RenderLayerCompositor::needsToBeComposited): Use mustCompositeForIndirectReasons() now.
136003        (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Consult the indirect compositing
136004        reason rather than just looking for the overlap flag.
136005        (WebCore::RenderLayerCompositor::reasonForCompositing): Now that we have more information
136006        about indirect compositing reasons, the logging can be more detailed.
136007        (WebCore::RenderLayerCompositor::requiresCompositingForTransform): This now only looks
136008        for 3d transforms. We now treat perspective and perserve-3d as "indirect" reasons, because
136009        whether they composite depends on descendants having non-affine transforms.
136010        (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): Includes the logic
136011        previously in requiresCompositingWhenDescendantsAreCompositing(), and now determines
136012        whether to composite for preserve-3d and perspective, based on whether we have transformed descendants.
136013
1360142012-06-05  Levi Weintraub  <leviw@chromium.org>
136015
136016        Block selection gaps painted not properly pixel snapped
136017        https://bugs.webkit.org/show_bug.cgi?id=88000
136018
136019        Reviewed by Ryosuke Niwa.
136020
136021        Fixes for selection painting in both inline line heights and block gaps. We were unintentionally
136022        flooring inline and block offsets in RenderBlock, but actually need to intentionally floor the
136023        logical left and right values in logical(Left|Right)SelectionGap to properly align our block
136024        selection gaps. This is to properly mirror the behavior in pixelSnappedLogicalRightOffsetForLine.
136025
136026        We were also unintentionally upcasting LayoutUnits to floats in InlineTextBox's selection painting
136027        routine. Now we're properly rounding.
136028
136029        Test: fast/sub-pixel/selection/selection-gaps-at-fractional-offsets.html
136030
136031        * rendering/InlineTextBox.cpp:
136032        (WebCore::InlineTextBox::paintSelection): Move paint values to integers and do proper rounding.
136033        * rendering/RenderBlock.cpp:
136034        (WebCore::blockDirectionOffset): Fix incorrect flooring in return value.
136035        (WebCore::inlineDirectionOffset): Ditto.
136036        (WebCore): Removing previous attempt to properly mirror inline box selection pixel alignment. This
136037        implementation rounded the final x value instead of properly rounding our block offset then flooring
136038        the offset that corresponds to the behavior in InlineTextBox. It also didn't properly pixel snap
136039        the y offset and height.
136040        (WebCore::RenderBlock::blockSelectionGap): Properly pixel snapping the gap rect before painting.
136041        (WebCore::RenderBlock::logicalLeftSelectionGap): Correctly match InlineTextBox's selection pixel
136042        alignment by flooring the logicalLeft and pixel snapping the subsequent rect. We do this in order
136043        to maintain proper render tree pixel snapping while simultaneously mirroring the flooring in the
136044        inline direction that occurs in InlineTextBox.cpp's alignSelectionRectToDevicePixels method.
136045        (WebCore::RenderBlock::logicalRightSelectionGap): Ditto with the right.
136046
1360472012-06-05  Adam Barth  <abarth@webkit.org>
136048
136049        Remove support for target-densitydpi in the viewport meta tag
136050        https://bugs.webkit.org/show_bug.cgi?id=88047
136051
136052        Reviewed by Kenneth Rohde Christiansen.
136053
136054        The target-densitydpi parameter was originally implemented on Android,
136055        but it does not appear to be widely used and introduces significant
136056        implementation complexity because it forces us to track three scale
136057        factors (defaultDeviceScaleFactor, deviceScaleFactor, and
136058        pageScaleFactor) rather than just two (deviceScaleFactor and
136059        pageScaleFactor).
136060
136061        There don't appear to be many web sites that use target-densitydpi
136062        because it is not supported on iOS.  There are also concerns from the
136063        standards community about the design of the feature.  It seems our best
136064        course of action is to remove target-densitydpi and address these use
136065        cases via other mechanisms, such as responsive images and device units
136066        in CSS because those approaches are likely to be implemented broadly.
136067
136068        * dom/ViewportArguments.cpp:
136069        (WebCore::computeViewportAttributes):
136070        (WebCore):
136071        (WebCore::setViewportFeature):
136072        (WebCore::viewportErrorMessageTemplate):
136073        (WebCore::viewportErrorMessageLevel):
136074        * dom/ViewportArguments.h:
136075        (WebCore::ViewportArguments::ViewportArguments):
136076        (ViewportArguments):
136077        (WebCore::ViewportArguments::operator==):
136078
1360792012-06-05  Erik Arvidsson  <arv@chromium.org>
136080
136081        [V8] Improve variable resolution order on window
136082        https://bugs.webkit.org/show_bug.cgi?id=84247
136083
136084        Reviewed by Ojan Vafai.
136085
136086        This changes the V8 flag to turn on es52_globals and updates the layout tests to reflect the fixed behavior.
136087
136088        Test: fast/dom/Window/window-property-shadowing-onclick.html
136089
136090        * bindings/v8/V8DOMWindowShell.cpp:
136091        (WebCore::V8DOMWindowShell::initContextIfNeeded): Set the flag as we initialize V8.
136092        * bindings/v8/WorkerContextExecutionProxy.cpp:
136093        (WebCore::WorkerContextExecutionProxy::initIsolate): Ditto.
136094
1360952012-06-05  Ojan Vafai  <ojan@chromium.org>
136096
136097        Delete dead code from RenderBox::computeLogicalWidthInRegion
136098        https://bugs.webkit.org/show_bug.cgi?id=88353
136099
136100        Reviewed by Tony Chang.
136101
136102        No new tests obviously since this is dead code.
136103
136104        * rendering/RenderBox.cpp:
136105        (WebCore::RenderBox::computeLogicalWidthInRegion):
136106
1361072012-06-05  Greg Billock  <gbillock@google.com>
136108
136109        New constructor for WebIntent to be used for delivery
136110        https://bugs.webkit.org/show_bug.cgi?id=87143
136111
136112        Reviewed by Darin Fisher.
136113
136114        * Modules/intents/Intent.cpp:
136115        (WebCore::Intent::setExtras):
136116        (WebCore):
136117        * Modules/intents/Intent.h:
136118        (Intent):
136119
1361202012-06-01  Ojan Vafai  <ojan@chromium.org>
136121
136122        Change overrideSizes to be content-box instead of border-box
136123        https://bugs.webkit.org/show_bug.cgi?id=88116
136124
136125        Reviewed by Tony Chang.
136126
136127        Previously, the code used border-box everywhere except for one place
136128        where it used content-box when setting the override size. Conversely,
136129        it subtracted the borderAndPaddingSize everywhere it grabbed the override
136130        size except for one.
136131
136132        Instead, make the override size override the content-box size.
136133        Converging on using the border-box size would be tricky given RenderTableCell's
136134        tricky management of intrinsic padding.
136135
136136        There is no behavior change except in RenderBox::availableLogicalHeightUsing,
136137        which fixes a table test.
136138
136139        * rendering/RenderBox.cpp:
136140        (WebCore::RenderBox::setOverrideLogicalContentHeight):
136141        (WebCore::RenderBox::setOverrideLogicalContentWidth):
136142        (WebCore::RenderBox::overrideLogicalContentWidth):
136143        (WebCore::RenderBox::overrideLogicalContentHeight):
136144        (WebCore::RenderBox::computeLogicalWidthInRegion):
136145        (WebCore::RenderBox::computeLogicalHeight):
136146        (WebCore::RenderBox::computePercentageLogicalHeight):
136147        (WebCore::RenderBox::availableLogicalHeightUsing):
136148        We were incorrectly subtracting the borderAndPaddingLogicalWidth instead
136149        of the borderAndPaddingLogicalHeight.
136150
136151        * rendering/RenderBox.h:
136152        (RenderBox):
136153        * rendering/RenderDeprecatedFlexibleBox.cpp:
136154        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
136155        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
136156        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
136157        (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
136158        * rendering/RenderFlexibleBox.cpp:
136159        (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
136160        (WebCore::RenderFlexibleBox::setLogicalOverrideSize):
136161        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
136162        * rendering/RenderTableCell.cpp:
136163        (WebCore::RenderTableCell::setOverrideHeightFromRowHeight):
136164
1361652012-06-05  Andy Estes  <aestes@apple.com>
136166
136167        REGRESSION (r118197): PluginStrategy should be used even if ENABLE(NETSCAPE_PLUGIN_API) is false
136168        https://bugs.webkit.org/show_bug.cgi?id=88296
136169
136170        Reviewed by Dan Bernstein.
136171
136172        refresh() and initPlugins() should call into PluginStrategy even if
136173        ENABLE(NETSCAPE_PLUGIN_API) is false. Some ports support non-Netscape
136174        plug-ins, so PluginStrategy should be consulted even if Netscape
136175        plug-ins specifically are disabled.
136176
136177        Ports that support platform strategies but not Netscape plug-ins should
136178        handle this inside their PluginStrategy rather than modifying generic
136179        plug-in code.
136180
136181        * plugins/PluginData.cpp:
136182        (WebCore::PluginData::refresh):
136183        (WebCore::PluginData::initPlugins):
136184
1361852012-06-05  Douglas Stockwell  <dstockwell@chromium.org>
136186
136187        Crash when modifying fixed-position elements in a detached frame
136188        https://bugs.webkit.org/show_bug.cgi?id=88288
136189
136190        Reviewed by James Robinson.
136191
136192        Test: fast/block/positioning/fixed-position-detached-frame.html
136193
136194        * css/StyleResolver.cpp:
136195        (WebCore::StyleResolver::collectMatchingRulesForList):
136196
1361972012-06-05  Andrey Kosyakov  <caseq@chromium.org>
136198
136199        Web Inspector: render timeline paint category dark green
136200        https://bugs.webkit.org/show_bug.cgi?id=88333
136201
136202        Reviewed by Pavel Feldman.
136203
136204        - Added a new, dark-green color for timeline events.
136205
136206        * WebCore.gypi: Added timelineBarDarkGreen.png
136207        * inspector/front-end/Images/timelineBarDarkGreen.png: Added.
136208        * inspector/front-end/Images/timelineCheckmarks.png: Added a dark-green checkbox.
136209        * inspector/front-end/Images/timelineDots.png: Added a dark-green dot.
136210        * inspector/front-end/TimelinePresentationModel.js:
136211        (WebInspector.TimelinePresentationModel.categories):
136212        * inspector/front-end/WebKit.qrc: Added timelineBarDarkGreen.png.
136213        * inspector/front-end/timelinePanel.css:
136214        (.timeline-category-statusbar-item.timeline-category-painting .timeline-category-checkbox):
136215        (.timeline-category-painting .timeline-graph-bar):
136216        (.popover .timeline-painting):
136217        (.timeline-category-painting .timeline-tree-icon):
136218
1362192012-06-05  Alexei Filippov  <alexeif@chromium.org>
136220
136221        Web Inspector: serialize edge counts instead of indexes in heap snapshot
136222        https://bugs.webkit.org/show_bug.cgi?id=88324
136223
136224        The serialized node structure currently holds an index
136225        of its first containment edge in the edges array.
136226        The index can be quite big (up to 7 digits for large snapshots).
136227        The patch changes the serialization format to pass
136228        node containment edge count instead. For most nodes the count
136229        is just a single digit number.
136230        This reduces serialized snapshot size and therefore its transfer time.
136231
136232        Reviewed by Yury Semikhatsky.
136233
136234        * inspector/front-end/HeapSnapshot.js:
136235        (WebInspector.HeapSnapshotNode.prototype._edgeIndexesStart):
136236        (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
136237        (WebInspector.HeapSnapshotNode.prototype._ordinal):
136238        (WebInspector.HeapSnapshotNodeIterator):
136239        (WebInspector.HeapSnapshot.prototype._init):
136240        (WebInspector.HeapSnapshot.prototype._buildEdgeIndexes):
136241        (WebInspector.HeapSnapshot.prototype._buildRetainers):
136242        (WebInspector.HeapSnapshot.prototype._bfs):
136243        (WebInspector.HeapSnapshot.prototype._buildAggregates):
136244        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
136245        (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
136246        (WebInspector.HeapSnapshot.prototype._markPageOwnedNodes):
136247        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
136248
1362492012-06-05  Arpita Bahuguna  <arpitabahuguna@gmail.com>
136250
136251        CSS 2.1 failure: border-conflict-element-021a
136252        https://bugs.webkit.org/show_bug.cgi?id=86885
136253
136254        Reviewed by Julien Chaffraix.
136255
136256        When two adjacent table row groups (thead, tbody, tfoot) have the same border-width
136257        and the same border-style in a 'border-collapse: collapse' table the color of the border
136258        from the top-most table row wins.
136259
136260        Tests: fast/table/border-collapsing/adjacent-row-groups-multi.html
136261               fast/table/border-collapsing/adjacent-row-groups.html
136262
136263        * rendering/RenderTable.cpp:
136264        (WebCore::RenderTable::paintObject):
136265        Currently each row group is sent for paint from top (firstChild) to bottom thereby causing
136266        the borders of the bottom-most row group (which is painted last) to overlap over the
136267        previous row-group. This breaks the precedence for collapsed borders between adjacent cells.
136268
136269        This fix thus reverses the order in which the row-groups/sections are passed for painting.
136270        Additional change has been done to iterate over the RenderTableSections directly.
136271
136272        (WebCore):
136273        (WebCore::RenderTable::bottomSection):
136274        * rendering/RenderTable.h:
136275        New function has been added to obtain the last section of the table.
136276
136277        (RenderTable):
136278        * rendering/RenderTableSection.h:
136279        (RenderTableSection):
136280        RenderTableSection's paint() method has now been made public so as to make it accessible
136281        from RenderTable.
136282
1362832012-06-05  Csaba Osztrogonác  <ossy@webkit.org>
136284
136285        [Qt][Win] Fix IDL dependency generation
136286        https://bugs.webkit.org/show_bug.cgi?id=88304
136287
136288        Reviewed by Tor Arne Vestbø.
136289
136290        * DerivedSources.pri:
136291
1362922012-06-05  Sheriff Bot  <webkit.review.bot@gmail.com>
136293
136294        Unreviewed, rolling out r119467, r119471, and r119476.
136295        http://trac.webkit.org/changeset/119467
136296        http://trac.webkit.org/changeset/119471
136297        http://trac.webkit.org/changeset/119476
136298        https://bugs.webkit.org/show_bug.cgi?id=88332
136299
136300        it broke chromium-mac static initializers test.\ (Requested by
136301        loislo on #webkit).
136302
136303        * WebCore.gyp/WebCore.gyp:
136304        * WebCore.gypi:
136305        * platform/graphics/FontPlatformData.h:
136306        (FontPlatformData):
136307        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
136308        (WebCore::FontPlatformData::platformDataInit):
136309        (WebCore::FontPlatformData::platformDataAssign):
136310        * platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp: Removed.
136311        * platform/graphics/harfbuzz/ng/HarfBuzzFace.h: Removed.
136312        * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp: Removed.
136313        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: Removed.
136314        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: Removed.
136315        * platform/graphics/mac/FontComplexTextMac.cpp:
136316        (WebCore::Font::selectionRectForComplexText):
136317        (WebCore::Font::drawComplexText):
136318        (WebCore::Font::floatWidthForComplexText):
136319        (WebCore::Font::offsetForPositionForComplexText):
136320
1363212012-06-05  Alexander Pavlov  <apavlov@chromium.org>
136322
136323        Web Inspector: SHIFT key as helper to color adjustment in color picker
136324        https://bugs.webkit.org/show_bug.cgi?id=88319
136325
136326        Reviewed by Pavel Feldman.
136327
136328        With Shift depressed, the dragger in the color picker will snap to the horizontal
136329        or vertical axis while dragging, depending on which axis offset is greater.
136330
136331        * inspector/front-end/Spectrum.js:
136332        (WebInspector.Spectrum.colorDragStart):
136333        (WebInspector.Spectrum.colorDrag):
136334        (WebInspector.Spectrum.draggable.move):
136335        (WebInspector.Spectrum.draggable.start):
136336
1363372012-06-05  Andrey Kosyakov  <caseq@chromium.org>
136338
136339        Web Inspector: aggregate all events before first frame into a fake frame
136340        https://bugs.webkit.org/show_bug.cgi?id=88229
136341
136342        - in Timeline's frame mode, start aggregating events by frame even before we get first frame marker.
136343
136344        * inspector/front-end/TimelineFrameController.js:
136345        (WebInspector.TimelineFrameController.prototype._addRecord):
136346        (WebInspector.TimelineFrameController.prototype._flushFrame):
136347        (WebInspector.TimelineFrameController.prototype._createFrame):
136348
1363492012-06-05  Charles Wei  <charles.wei@torchmobile.com.cn>
136350
136351        JSC:need to implement Dictionary::getWithUndefinedOrNullCheck for IDB
136352        https://bugs.webkit.org/show_bug.cgi?id=88283
136353
136354        Reviewed by Kentaro Hara.
136355
136356        No new tests, idb not working for JSC yet.
136357
136358        * bindings/js/Dictionary.cpp:
136359        (WebCore::Dictionary::getWithUndefinedOrNullCheck):
136360        * bindings/js/Dictionary.h:
136361        (Dictionary):
136362        * bindings/js/JSDictionary.cpp:
136363        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
136364        (WebCore):
136365        * bindings/js/JSDictionary.h:
136366        (JSDictionary):
136367
1363682012-06-05  Dongwoo Im  <dw.im@samsung.com>
136369
136370        Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
136371        https://bugs.webkit.org/show_bug.cgi?id=73176
136372
136373        Reviewed by Adam Barth.
136374
136375        Two more APIs are added in Custom Scheme Handler specification.
136376        http://dev.w3.org/html5/spec/Overview.html#custom-handlers
136377        One is 'isProtocolHandlerRegistered' to query whether the specific URL
136378        is registered or not.
136379        The other is 'unregisterProtocolHandler' to remove the registered URL.
136380
136381        Test: fast/dom/unregister-protocol-handler.html
136382
136383        * Configurations/FeatureDefines.xcconfig: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
136384        * loader/EmptyClients.h: Add prototypes.
136385        (EmptyChromeClient):
136386        (WebCore::EmptyChromeClient::isProtocolHandlerRegistered):
136387        (WebCore::EmptyChromeClient::unregisterProtocolHandler):
136388        * page/ChromeClient.h:
136389        (ChromeClient):
136390        * page/NavigatorRegisterProtocolHandler.cpp:
136391        (WebCore):
136392        (WebCore::customHandlersStateString):
136393        (WebCore::NavigatorRegisterProtocolHandler::isProtocolHandlerRegistered): Query if the handler is registered.
136394        (WebCore::NavigatorRegisterProtocolHandler::unregisterProtocolHandler): Unregister the registered handler.
136395        * page/NavigatorRegisterProtocolHandler.h:
136396        (NavigatorRegisterProtocolHandler):
136397        * page/NavigatorRegisterProtocolHandler.idl:
136398
1363992012-06-04  Kinuko Yasuda  <kinuko@chromium.org>
136400
136401        Chromium tests: "Add support for the Blob constructor" [r115582] regressed blob layout tests
136402        https://bugs.webkit.org/show_bug.cgi?id=85174
136403
136404        Reviewed by Kentaro Hara.
136405
136406        This fixes a crash problem which could happen when the constructor is
136407        given an array which contains String-type item(s).
136408
136409        There're still some Text mismatches between v8 results and
136410        JSC results, most of them are v8 not throwing exception
136411        when it is given an object whose toString() method throws
136412        exception.  (The issue will be addresse in a separate patch.)
136413
136414        Test: fast/files/blob-constructor.html
136415
136416        * bindings/v8/custom/V8BlobCustom.cpp:
136417        (WebCore::V8Blob::constructorCallback):
136418
1364192012-06-05  Kentaro Hara  <haraken@chromium.org>
136420
136421        Remove unnecessary constructor of SelectorQueryCache
136422        https://bugs.webkit.org/show_bug.cgi?id=87942
136423
136424        Reviewed by Ryosuke Niwa.
136425
136426        Per the comment from darin@ (https://bugs.webkit.org/show_bug.cgi?id=87942#c27),
136427        this patch removes an inline constructor that has no arguments.
136428        To have the compiler generate the constructor,
136429        this patch also removes WTF_MAKE_NONCOPYABLE().
136430
136431        No tests. No change in behavior.
136432
136433        * dom/SelectorQuery.h:
136434        (SelectorQueryCache):
136435
1364362012-06-05  Kentaro Hara  <haraken@chromium.org>
136437
136438        Remove unused methods from SelectorQuery.h
136439        https://bugs.webkit.org/show_bug.cgi?id=88289
136440
136441        Reviewed by Antti Koivisto.
136442
136443        This patch removes SelectorDataList::size() and
136444        SelectorDataList::SelectorDataList().
136445        SelectorDataList::size() is not used by anybody.
136446        SelectorDataList::SelectorDataList() can be auto-generated
136447        by a compiler.
136448
136449        No tests. No change in behavior.
136450
136451        * dom/SelectorQuery.cpp:
136452        * dom/SelectorQuery.h:
136453        (SelectorDataList):
136454
1364552012-06-05  Kent Tamura  <tkent@chromium.org>
136456
136457        Build fix for r119470.
136458
136459        * loader/EmptyClients.cpp: Add #include "IntentRequest.h".
136460
1364612012-06-05  Kent Tamura  <tkent@chromium.org>
136462
136463        Remove unused function: Document::formElements
136464        https://bugs.webkit.org/show_bug.cgi?id=88272
136465
136466        Reviewed by Kentaro Hara.
136467
136468        No new tests. No behavior change.
136469
136470        * dom/Document.h:
136471        (Document): remove formElements(). It was used for radio group
136472        validation, but the current code doesn't use it any more.
136473
1364742012-06-05  Kenichi Ishibashi  <bashi@chromium.org>
136475
136476        Unreviewed build fix on Chromium mac
136477
136478        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
136479        (WebCore::isAATFont):
136480
1364812012-06-05  Kent Tamura  <tkent@chromium.org>
136482
136483        Move some function definitions in EmptyClients.h to EmptyClients.cpp
136484        https://bugs.webkit.org/show_bug.cgi?id=88285
136485
136486        Reviewed by Ryosuke Niwa.
136487
136488        If we have definitions of functions with RefPtr<> in EmptyClients.h like
136489
136490            virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { }
136491
136492        and a source file includes EmptyClient.h, the source file needs to
136493        include FileChooser.h though the source file doesn't use FileChooser
136494        class explicitly because the definition of runOpenPanel() needs to call
136495        FileChooser::deref().
136496        To avoid this, we had better move such functions to EmptyClients.cpp.
136497
136498        No new tests. No behavior changes.
136499
136500        * loader/EmptyClients.cpp: Move such functions from EmptyClients.h to
136501        here, and move EmptyPopupMenu and EmptySearchPopupMenu too because
136502        they're used only by EmptyChromeClient.
136503        (WebCore):
136504        (EmptyPopupMenu):
136505        (WebCore::EmptyPopupMenu::show):
136506        (WebCore::EmptyPopupMenu::hide):
136507        (WebCore::EmptyPopupMenu::updateFromElement):
136508        (WebCore::EmptyPopupMenu::disconnectClient):
136509        (EmptySearchPopupMenu):
136510        (WebCore::EmptySearchPopupMenu::popupMenu):
136511        (WebCore::EmptySearchPopupMenu::saveRecentSearches):
136512        (WebCore::EmptySearchPopupMenu::loadRecentSearches):
136513        (WebCore::EmptySearchPopupMenu::enabled):
136514        (WebCore::EmptyChromeClient::createPopupMenu):
136515        (WebCore::EmptyChromeClient::createSearchPopupMenu):
136516        (WebCore::EmptyChromeClient::createColorChooser):
136517        (WebCore::EmptyChromeClient::runOpenPanel):
136518        (WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
136519        (WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
136520        (WebCore::EmptyFrameLoaderClient::dispatchWillSendSubmitEvent):
136521        (WebCore::EmptyFrameLoaderClient::dispatchWillSubmitForm):
136522        (WebCore::EmptyFrameLoaderClient::createDocumentLoader):
136523        (WebCore::EmptyFrameLoaderClient::createFrame):
136524        (WebCore::EmptyFrameLoaderClient::createPlugin):
136525        (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget):
136526        (WebCore::EmptyFrameLoaderClient::createMediaPlayerProxyPlugin):
136527        (WebCore::EmptyFrameLoaderClient::createNetworkingContext):
136528        (WebCore::EmptyFrameLoaderClient::dispatchIntent):
136529        (WebCore::EmptyTextCheckerClient::requestCheckingOfString):
136530        (WebCore::EmptyEditorClient::registerUndoStep):
136531        (WebCore::EmptyEditorClient::registerRedoStep):
136532        (WebCore::EmptyContextMenuClient::customizeMenu):
136533        * loader/EmptyClients.h: Move such function definitions to
136534        EmptyClient.cpp, and append OVERRIDE.
136535        (EmptyChromeClient):
136536        (EmptyFrameLoaderClient):
136537        (EmptyTextCheckerClient):
136538        (EmptyEditorClient):
136539        (EmptyContextMenuClient):
136540        * svg/graphics/SVGImage.cpp: Remove unnecessary #includes.
136541
1365422012-06-05  Alexander Pavlov  <apavlov@chromium.org>
136543
136544        Web Inspector: "-webkit"-prefixed properties are considered inherited in the Computed Style pane
136545        https://bugs.webkit.org/show_bug.cgi?id=88257
136546
136547        Reviewed by Pavel Feldman.
136548
136549        Canonical names for properties should be used when checking if they are inherited (since only canonical names
136550        are put into the usedProperties set).
136551
136552        * inspector/front-end/StylesSidebarPane.js:
136553        (WebInspector.ComputedStylePropertiesSection.prototype._isPropertyInherited):
136554
1365552012-06-05  Kenichi Ishibashi  <bashi@chromium.org>
136556
136557        [Chromium] Implement font shaping with font-feature-settings on Mac
136558        https://bugs.webkit.org/show_bug.cgi?id=69826
136559
136560        Reviewed by Tony Chang.
136561
136562        Add HarfBuzz-ng text shaper.
136563        Chromium mac port uses it as secondary text shaper to support OpenType features.
136564        HarfBuzz-ng is only used when -webkit-font-feature-settings is specified and
136565        corresponding font is not an AAT font.
136566
136567        No new tests. css3/font-feature-settings-rendering.html should pass on Chromium mac port.
136568
136569        * WebCore.gyp/WebCore.gyp: Added harfbuzz-ng dependencies.
136570        * WebCore.gypi: Added harfbuzz-ng files.
136571        * platform/graphics/FontPlatformData.h:
136572        (FontPlatformData): Added m_harfbuzzFace.
136573        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
136574        (WebCore::FontPlatformData::platformDataInit): Copy m_harfbuzzFace.
136575        (WebCore::FontPlatformData::platformDataAssign): Ditto.
136576        (WebCore):
136577        (WebCore::isAATFont):
136578        (WebCore::FontPlatformData::harfbuzzFace):
136579        * platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp: Added.
136580        (WebCore):
136581        (WebCore::harfbuzzFaceCache):
136582        (WebCore::HarfBuzzFace::HarfBuzzFace):
136583        (WebCore::HarfBuzzFace::~HarfBuzzFace):
136584        * platform/graphics/harfbuzz/ng/HarfBuzzFace.h: Added.
136585        (WebCore):
136586        (HarfBuzzFace):
136587        (WebCore::HarfBuzzFace::create):
136588        * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp: Added.
136589        (WebCore):
136590        (WebCore::floatToHarfBuzzPosition):
136591        (WebCore::getGlyph):
136592        (WebCore::getGlyphHorizontalAdvance):
136593        (WebCore::getGlyphHorizontalOrigin):
136594        (WebCore::getGlyphExtents):
136595        (WebCore::harfbuzzCoreTextGetFontFuncs):
136596        (WebCore::releaseTableData):
136597        (WebCore::harfbuzzCoreTextGetTable):
136598        (WebCore::HarfBuzzFace::createFace):
136599        (WebCore::HarfBuzzFace::createFont):
136600        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
136601        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: Added.
136602        (WebCore):
136603        (WebCore::harfbuzzPositionToFloat):
136604        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
136605        (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
136606        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
136607        (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
136608        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
136609        (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
136610        (WebCore::HarfBuzzShaper::setFontFeatures):
136611        (WebCore::HarfBuzzShaper::shape):
136612        (WebCore::HarfBuzzShaper::setupHarfBuzzRun):
136613        (WebCore::HarfBuzzShaper::shapeHarfBuzzRun):
136614        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
136615        (WebCore::HarfBuzzShaper::offsetForPosition):
136616        (WebCore::HarfBuzzShaper::selectionRect):
136617        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: Added.
136618        (WebCore):
136619        (HarfBuzzShaper):
136620        (WebCore::HarfBuzzShaper::totalWidth):
136621        (HarfBuzzRun):
136622        (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
136623        (WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
136624        (WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
136625        (WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
136626        (WebCore::HarfBuzzShaper::HarfBuzzRun::width):
136627        (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
136628        * platform/graphics/mac/FontComplexTextMac.cpp:
136629        (WebCore):
136630        (WebCore::preferHarfBuzz): Added.
136631        (WebCore::Font::selectionRectForComplexText): Use HarfBuzzShaper if font-feature-settings exists.
136632        (WebCore::Font::drawComplexText): Ditto.
136633        (WebCore::Font::floatWidthForComplexText): Ditto.
136634        (WebCore::Font::offsetForPositionForComplexText): Ditto.
136635
1366362012-06-05  Li Yin  <li.yin@intel.com>
136637
136638        IETC: FileList.item(-1) should return null instead of raising
136639        https://bugs.webkit.org/show_bug.cgi?id=77899
136640
136641        Reviewed by Kentaro Hara.
136642
136643        IETC: http://samples.msdn.microsoft.com/ietestcenter/fileapi/filelist.htm
136644        Accroding to http://es5.github.com/#x9.6
136645        When the index is negative, it should not raise exception.
136646        Firefox and IE returns null when there is not indexth File object.
136647
136648        Test: fast/files/file-list-test.html
136649
136650        * fileapi/FileList.idl:
136651
1366522012-06-05  Adam Barth  <abarth@webkit.org>
136653
136654        EventHandler shouldn't dispatch fake mousemove events when scrolling on devices that don't have a mouse
136655        https://bugs.webkit.org/show_bug.cgi?id=88270
136656
136657        Reviewed by James Robinson.
136658
136659        This patch adds a setting analogous to deviceSupportsTouch to determine
136660        whether the device supports mouse. We then don't dispatch fake mouse
136661        events on devices that don't have a mouse in the first place.
136662
136663        Test: fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html
136664
136665        * page/EventHandler.cpp:
136666        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
136667        * page/Settings.cpp:
136668        (WebCore::Settings::Settings):
136669        * page/Settings.h:
136670        (WebCore::Settings::setDeviceSupportsMouse):
136671        (WebCore::Settings::deviceSupportsMouse):
136672        (Settings):
136673        * testing/InternalSettings.cpp:
136674        (WebCore::InternalSettings::InternalSettings):
136675        (WebCore::InternalSettings::restoreTo):
136676        (WebCore::InternalSettings::setDeviceSupportsMouse):
136677        (WebCore):
136678        * testing/InternalSettings.h:
136679        (InternalSettings):
136680        * testing/InternalSettings.idl:
136681
1366822012-06-04  Simon Fraser  <simon.fraser@apple.com>
136683
136684        Leaking ClipRects
136685        https://bugs.webkit.org/show_bug.cgi?id=88282
136686
136687        Reviewed by Dan Bernstein.
136688
136689        In r118562 I made the ClipRectsCache use RefPtr<ClipRects>. However, ClipRects
136690        was initialized with m_refCnt=0, not 1 as adoptRef() and friends expect. Also,
136691        there was a manual ref() in RenderLayer::updateClipRects() which this patch removes.
136692
136693        * rendering/RenderLayer.cpp:
136694        (WebCore::RenderLayer::updateClipRects):
136695        * rendering/RenderLayer.h:
136696        (WebCore::ClipRects::ClipRects):
136697
1366982012-06-04  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>
136699
136700        Add missing FractionalLayoutUnit += operator and move LineWidth to use all floats
136701        https://bugs.webkit.org/show_bug.cgi?id=88259
136702
136703        Reviewed by Ryosuke Niwa.
136704
136705        Fix two rounding bugs in LineLayout and RenderBlock that caused inlines
136706        and floats to wrap incorrectly.
136707
136708        Tests: fast/sub-pixel/float-containing-block-with-margin.html
136709               fast/sub-pixel/float-with-right-margin-zoom.html
136710               fast/sub-pixel/inline-block-with-padding.html
136711
136712        * platform/FractionalLayoutUnit.h:
136713        (WebCore::operator+=):
136714        Add missing float version of += operator thus avoiding a silent cast to
136715        int loosing precision.
136716        
136717        * rendering/RenderBlockLineLayout.cpp:
136718        (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
136719        (WebCore::LineWidth::updateAvailableWidth):
136720        Change LineWidth left/right to floating point and instead of rounding the
136721        left and right edge separately.
136722        
136723        * rendering/RenderFlexibleBox.cpp:
136724        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
136725        Use explicit cast to avoid compiler ambiguity warning.
136726
1367272012-06-04  Tony Chang  <tony@chromium.org>
136728
136729        CSS property 'order' should be a number rather than an int
136730        https://bugs.webkit.org/show_bug.cgi?id=88111
136731
136732        Reviewed by Ojan Vafai.
136733
136734        This changed in the spec:
136735        http://dev.w3.org/csswg/css3-flexbox/#order
136736
136737        I also fixed the compile with CSS3_FLEXBOX disabled.
136738
136739        No new tests, covered by existing tests.
136740
136741        * css/CSSComputedStyleDeclaration.cpp:
136742        (WebCore):
136743        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
136744        * css/CSSParser.cpp:
136745        (WebCore::CSSParser::parseValue):
136746        * css/CSSProperty.cpp: Parse as float, remove clamping for HashMap<int>.
136747        (WebCore::CSSProperty::isInheritedProperty):
136748        * css/StyleBuilder.cpp:
136749        (WebCore::StyleBuilder::StyleBuilder):
136750        * css/StyleResolver.cpp:
136751        (WebCore::StyleResolver::collectMatchingRulesForList):
136752        * rendering/RenderFlexibleBox.cpp: Remove traits for HashMap<int>.
136753        (RenderFlexibleBox::OrderIterator):
136754        * rendering/RenderFlexibleBox.h:
136755        * rendering/style/RenderStyle.h:
136756        * rendering/style/StyleRareNonInheritedData.h:
136757        (StyleRareNonInheritedData):
136758
1367592012-06-04  Hugo Parente Lima  <hugo.lima@openbossa.org>
136760
136761        Turn LEGACY_VIEWPORT_ADAPTION USE flag into an ENABLE flag.
136762        https://bugs.webkit.org/show_bug.cgi?id=88243
136763
136764        Reviewed by Adam Barth.
136765
136766        No new tests needed, this just rename a compiler flag.
136767
136768        * dom/Document.cpp:
136769        (WebCore::Document::setDocType):
136770        * dom/ViewportArguments.h:
136771        * html/HTMLMetaElement.cpp:
136772        (WebCore::HTMLMetaElement::process):
136773
1367742012-06-04  Dana Jansens  <danakj@chromium.org>
136775
136776        [chromium] Remove redundant setNeedsCommit when prepareToDraw fails
136777        https://bugs.webkit.org/show_bug.cgi?id=88246
136778
136779        Reviewed by James Robinson.
136780
136781        When prepareToDraw fails it explicitly calls setNeedsCommit, but the
136782        scheduler already takes care of this for it. When a frame is not
136783        successfully drawn, the scheduler state machine sets the needsCommit
136784        bit itself.
136785
136786        This behaviour is covered by CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
136787
136788        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
136789        (WebCore::CCLayerTreeHostImpl::prepareToDraw):
136790
1367912012-06-04  Takashi Toyoshima  <toyoshim@chromium.org>
136792
136793        [WebSocket] Send requires super linear time against data size
136794        https://bugs.webkit.org/show_bug.cgi?id=87383
136795
136796        Reviewed by Kent Tamura.
136797
136798        WebSocket send operation requires super linear time to send data
136799        against data size. This is because removing sent data in Vector<char>
136800        always requires data copy.
136801        Introduced wtf/StreamBuffer realizes O(n) buffer operations.
136802        This patch is only for optimization. No new tests are needed.
136803
136804        * platform/network/SocketStreamHandleBase.cpp:
136805        (WebCore::SocketStreamHandleBase::sendPendingData):
136806        * platform/network/SocketStreamHandleBase.h:
136807        (SocketStreamHandleBase):
136808
1368092012-06-04  Tim Horton  <timothy_horton@apple.com>
136810
136811        Mock scrollbars differ by 1px in DRT vs. WKTR
136812        https://bugs.webkit.org/show_bug.cgi?id=80879
136813
136814        Rubber-stamped by Ryosuke Niwa.
136815
136816        Disable r119431 except for Apple Mac port.
136817
136818        * platform/ScrollbarThemeComposite.cpp:
136819        (WebCore::ScrollbarThemeComposite::thumbLength):
136820
1368212012-06-04  Jeffrey Pfau  <jpfau@apple.com>
136822
136823        Document cleanup can get confused if parser still exists
136824        https://bugs.webkit.org/show_bug.cgi?id=88250
136825
136826        Reviewed by Geoffrey Garen.
136827
136828        No new tests; no behavior changes.
136829
136830        * dom/Document.cpp:
136831        (WebCore::Document::removedLastRef): Detach parser earlier
136832
1368332012-06-04  Andrew Lo  <anlo@rim.com>
136834
136835        [BlackBerry] Split AnimationFrameRateController into its own file
136836        https://bugs.webkit.org/show_bug.cgi?id=88242
136837
136838        Reviewed by Antonio Gomes.
136839
136840        Include new header file to reflect re-organization of platform animation
136841        header files.
136842
136843        * platform/graphics/DisplayRefreshMonitor.h:
136844
1368452012-06-04  Dana Jansens  <danakj@chromium.org>
136846
136847        [chromium] Allow CCLayerImpl to find its layer tree host, and use this for CCVideoLayerImpl instead of always-null pointer.
136848        https://bugs.webkit.org/show_bug.cgi?id=88252
136849
136850        Reviewed by James Robinson.
136851
136852        CCVideoLayerImpl has a pointer to its CCLayerTreeHostImpl which is never
136853        set to be non-null currently. Instead of making this a special case, we
136854        move the CCLayerTreeHostImpl* up to the CCLayerImpl base class, and set
136855        the pointer on every layer during commit via the TreeSynchronizer's walk
136856        through the layer tree.
136857
136858        Unit tests: Tested by TreeSynchronizer tests.
136859
136860        * platform/graphics/chromium/TreeSynchronizer.cpp:
136861        (WebCore::TreeSynchronizer::synchronizeTrees):
136862        (WebCore::TreeSynchronizer::synchronizeTreeRecursive):
136863        * platform/graphics/chromium/TreeSynchronizer.h:
136864        (WebCore):
136865        (TreeSynchronizer):
136866        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
136867        (WebCore::CCLayerImpl::CCLayerImpl):
136868        * platform/graphics/chromium/cc/CCLayerImpl.h:
136869        (WebCore):
136870        (WebCore::CCLayerImpl::layerTreeHostImpl):
136871        (WebCore::CCLayerImpl::setLayerTreeHostImpl):
136872        (CCLayerImpl):
136873        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
136874        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
136875        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
136876        (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
136877        (WebCore::CCVideoLayerImpl::setNeedsRedraw):
136878        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
136879
1368802012-06-04  Tim Horton  <timothy_horton@apple.com>
136881
136882        Mock scrollbars differ by 1px in DRT vs. WKTR
136883        https://bugs.webkit.org/show_bug.cgi?id=80879
136884
136885        Reviewed by Simon Fraser.
136886
136887        Round the length of the scrollbar thumb instead of truncating it.
136888
136889        No new tests, fixes a mismatch between pixel results from DRT and WKTR.
136890        Change is covered by all existing tests with scrollbars run with low tolerance.
136891
136892        * platform/ScrollbarThemeComposite.cpp:
136893        (WebCore::ScrollbarThemeComposite::thumbLength):
136894
1368952012-06-04  Anders Carlsson  <andersca@apple.com>
136896
136897        Fix an unused result warning when building with clang.
136898
136899        * platform/cf/BinaryPropertyList.cpp:
136900        (WebCore::BinaryPropertyListWriter::writePropertyList):
136901
1369022012-06-04  Ami Fischman  <fischman@chromium.org>
136903
136904        Don't crash when re-parenting a removed HTMLMediaElement
136905        https://bugs.webkit.org/show_bug.cgi?id=88058
136906
136907        Reviewed by Eric Carlson.
136908
136909        Test: media/media-reparent.html
136910
136911        * html/HTMLMediaElement.cpp:
136912        (WebCore::HTMLMediaElement::userCancelledLoad): Clear the pending load flags because any pending load has been cancelled.
136913
1369142012-06-04  Sheriff Bot  <webkit.review.bot@gmail.com>
136915
136916        Unreviewed, rolling out r119421 and r119425.
136917        http://trac.webkit.org/changeset/119421
136918        http://trac.webkit.org/changeset/119425
136919        https://bugs.webkit.org/show_bug.cgi?id=88256
136920
136921        not reliable, let's have a do-over (Requested by kling on
136922        #webkit).
136923
136924        * dom/Element.cpp:
136925        (WebCore::Element::detachAttribute):
136926        (WebCore::Element::removeAttribute):
136927        (WebCore::Element::attributes):
136928        (WebCore::Element::setAttributeInternal):
136929        (WebCore::Element::parserSetAttributes):
136930        (WebCore::Element::hasEquivalentAttributes):
136931        (WebCore::Element::createAttributeData):
136932        (WebCore):
136933        (WebCore::Element::setAttributeNode):
136934        (WebCore::Element::removeAttributeNode):
136935        (WebCore::Element::getAttributeNode):
136936        (WebCore::Element::getAttributeNodeNS):
136937        (WebCore::Element::hasAttribute):
136938        (WebCore::Element::hasAttributeNS):
136939        (WebCore::Element::normalizeAttributes):
136940        (WebCore::Element::cloneAttributesFromElement):
136941        * dom/Element.h:
136942        (WebCore::Element::attributeData):
136943        (Element):
136944        (WebCore::Element::ensureAttributeData):
136945        (WebCore::Element::updatedAttributeData):
136946        (WebCore::Element::ensureUpdatedAttributeData):
136947        * dom/ElementAttributeData.cpp:
136948        (WebCore::ElementAttributeData::attrIfExists):
136949        (WebCore::ElementAttributeData::ensureAttr):
136950        (WebCore::ElementAttributeData::setAttr):
136951        (WebCore::ElementAttributeData::removeAttr):
136952        (WebCore::ElementAttributeData::setClass):
136953        (WebCore):
136954        (WebCore::ElementAttributeData::ensureInlineStyle):
136955        (WebCore::ElementAttributeData::ensureMutableInlineStyle):
136956        (WebCore::ElementAttributeData::destroyInlineStyle):
136957        (WebCore::ElementAttributeData::addAttribute):
136958        (WebCore::ElementAttributeData::removeAttribute):
136959        (WebCore::ElementAttributeData::isEquivalent):
136960        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
136961        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
136962        (WebCore::ElementAttributeData::cloneDataFrom):
136963        (WebCore::ElementAttributeData::clearAttributes):
136964        (WebCore::ElementAttributeData::replaceAttribute):
136965        (WebCore::ElementAttributeData::getAttributeNode):
136966        * dom/ElementAttributeData.h:
136967        (WebCore::ElementAttributeData::create):
136968        (ElementAttributeData):
136969        (WebCore::ElementAttributeData::setIdForStyleResolution):
136970        (WebCore::ElementAttributeData::setAttributeStyle):
136971        (WebCore::ElementAttributeData::length):
136972        (WebCore::ElementAttributeData::isEmpty):
136973        (WebCore::ElementAttributeData::attributeItem):
136974        (WebCore::ElementAttributeData::getAttributeItem):
136975        (WebCore::ElementAttributeData::ElementAttributeData):
136976        (WebCore::ElementAttributeData::attributeVector):
136977        (WebCore::ElementAttributeData::clonedAttributeVector):
136978        (WebCore::ElementAttributeData::getAttributeItemIndex):
136979        * dom/StyledElement.cpp:
136980        (WebCore::StyledElement::style):
136981        (WebCore::StyledElement::classAttributeChanged):
136982        (WebCore::StyledElement::removeInlineStyleProperty):
136983        (WebCore::StyledElement::addSubresourceAttributeURLs):
136984        * html/parser/HTMLConstructionSite.cpp:
136985        (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
136986        * xml/parser/XMLDocumentParserQt.cpp:
136987        (WebCore::XMLDocumentParser::XMLDocumentParser):
136988
1369892012-06-04  Andreas Kling  <kling@webkit.org>
136990
136991        Unreviewed build fixes for cr-android and Qt.
136992
136993        * dom/ElementAttributeData.h:
136994        (WebCore::ElementAttributeData::setClass):
136995        Change ElementAttributeData::setClass() to take an AtomicString instead of a String.
136996        The only call site has an AtomicString anyway.
136997        * xml/parser/XMLDocumentParserQt.cpp:
136998        (WebCore::XMLDocumentParser::XMLDocumentParser): Add missing const.
136999
1370002012-06-04  Sadrul Habib Chowdhury  <sadrul@chromium.org>
137001
137002        [chromium] Fix software rendering for device-scale-factor > 1
137003        https://bugs.webkit.org/show_bug.cgi?id=88136
137004
137005        Reviewed by Darin Fisher.
137006
137007        Test: fast/hidpi/device-scale-factor-paint.html
137008
137009        * WebCore.exp.in:
137010        * testing/InternalSettings.cpp:
137011        (WebCore::InternalSettings::setDeviceScaleFactor):
137012        (WebCore):
137013        * testing/InternalSettings.h:
137014        (InternalSettings):
137015        * testing/InternalSettings.idl:
137016
1370172012-06-04  Andreas Kling  <kling@webkit.org>
137018
137019        Make ElementAttributeData a variable-sized object to reduce memory use.
137020        <http://webkit.org/b/88240>
137021
137022        Reviewed by Antti Koivisto.
137023
137024        Take advantage of the fact that we know at ElementAttributeData construction time how many attributes
137025        it needs to accomodate and allocate exactly as much space as needed instead of using a Vector.
137026        For elements that never have their attribute list mutated (the vast majority), this saves a lot of
137027        memory and removes the indirection to Vector<Attribute>'s heap-allocated storage.
137028
137029        Introduced a mutability flag to ElementAttributeData and sprinkled assertions all over to make sure
137030        that nothing tries to mutate an element with a raw attribute array.
137031
137032        When an Element's attribute(s) are mutated, we reconstruct the ElementAttributeData, this time using
137033        a Vector as backing instead. This is triggered when calling Element::mutableAttributeData().
137034
137035        This reduces memory consumption by 3.2MB when viewing the full HTML5 spec at <http://whatwg.org/c/>.
137036        This is a 35% reduction in DOM attribute memory use.
137037
137038        Furthermore, that page ends up promoting 27% of the elements to mutable attribute storage due to dynamic
137039        adding of "class" attributes. For more static pages, savings are even greater.
137040
137041        * dom/Element.cpp:
137042        (WebCore::Element::detachAttribute):
137043        (WebCore::Element::removeAttribute):
137044        (WebCore::Element::attributes):
137045        (WebCore::Element::setAttributeInternal):
137046        (WebCore::Element::parserSetAttributes):
137047        (WebCore::Element::hasEquivalentAttributes):
137048        (WebCore::Element::setAttributeNode):
137049        (WebCore::Element::removeAttributeNode):
137050        (WebCore::Element::getAttributeNode):
137051        (WebCore::Element::getAttributeNodeNS):
137052        (WebCore::Element::hasAttribute):
137053        (WebCore::Element::hasAttributeNS):
137054        (WebCore::Element::normalizeAttributes):
137055        (WebCore::Element::cloneAttributesFromElement):
137056        (WebCore::Element::createMutableAttributeData):
137057        * dom/Element.h:
137058        (WebCore::Element::attributeData):
137059        (Element):
137060        (WebCore::Element::updatedAttributeData):
137061        (WebCore::Element::ensureAttributeData):
137062        (WebCore::Element::ensureUpdatedAttributeData):
137063        (WebCore::Element::mutableAttributeData):
137064        * dom/ElementAttributeData.cpp:
137065        (WebCore::ElementAttributeData::createImmutable):
137066        (WebCore::ElementAttributeData::ElementAttributeData):
137067        (WebCore::ElementAttributeData::~ElementAttributeData):
137068        (WebCore::ElementAttributeData::attrIfExists):
137069        (WebCore::ElementAttributeData::ensureAttr):
137070        (WebCore::ElementAttributeData::setAttr):
137071        (WebCore::ElementAttributeData::removeAttr):
137072        (WebCore::ElementAttributeData::ensureInlineStyle):
137073        (WebCore::ElementAttributeData::ensureMutableInlineStyle):
137074        (WebCore::ElementAttributeData::destroyInlineStyle):
137075        (WebCore::ElementAttributeData::addAttribute):
137076        (WebCore::ElementAttributeData::removeAttribute):
137077        (WebCore::ElementAttributeData::isEquivalent):
137078        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
137079        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
137080        (WebCore::ElementAttributeData::cloneDataFrom):
137081        (WebCore::ElementAttributeData::clearAttributes):
137082        (WebCore::ElementAttributeData::replaceAttribute):
137083        (WebCore::ElementAttributeData::getAttributeNode):
137084        * dom/ElementAttributeData.h:
137085        (ElementAttributeData):
137086        (WebCore::ElementAttributeData::setClass):
137087        (WebCore::ElementAttributeData::setIdForStyleResolution):
137088        (WebCore::ElementAttributeData::inlineStyle):
137089        (WebCore::ElementAttributeData::setAttributeStyle):
137090        (WebCore::ElementAttributeData::isMutable):
137091        (WebCore::ElementAttributeData::makeMutable):
137092        (WebCore::ElementAttributeData::length):
137093        (WebCore::ElementAttributeData::isEmpty):
137094        (WebCore::ElementAttributeData::array):
137095        (WebCore::ElementAttributeData::attributeItem):
137096        (WebCore::ElementAttributeData::getAttributeItem):
137097        (WebCore::ElementAttributeData::getAttributeItemIndex):
137098        * dom/StyledElement.cpp:
137099        (WebCore::StyledElement::style):
137100        (WebCore::StyledElement::classAttributeChanged):
137101        (WebCore::StyledElement::removeInlineStyleProperty):
137102        (WebCore::StyledElement::addSubresourceAttributeURLs):
137103        * html/parser/HTMLConstructionSite.cpp:
137104        (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
137105        * xml/parser/XMLDocumentParserQt.cpp:
137106        (WebCore::XMLDocumentParser::XMLDocumentParser):
137107
1371082012-06-04  Sadrul Habib Chowdhury  <sadrul@chromium.org>
137109
137110        [chromium] Combobox options and autofill options should not be scaled for device-scale factor
137111        https://bugs.webkit.org/show_bug.cgi?id=87921
137112
137113        Reviewed by Darin Fisher.
137114
137115        Chrome takes care of scaling the combobox/autofill lists in the browser side. So it is not
137116        necessary to scale here. This change reverts parts of changes in r111539.
137117
137118        Manually tested with different scale factors.
137119
137120        * platform/chromium/PopupListBox.cpp:
137121        (WebCore::PopupListBox::paint):
137122        (WebCore::PopupListBox::paintRow):
137123        (WebCore::PopupListBox::getRowHeight):
137124        * platform/chromium/PopupListBox.h:
137125        (PopupContainerSettings):
137126        * platform/chromium/PopupMenuChromium.cpp:
137127        (WebCore::PopupMenuChromium::show):
137128        * rendering/RenderMenuList.cpp:
137129        (WebCore::RenderMenuList::showPopup):
137130
1371312012-06-04  Dana Jansens  <danakj@chromium.org>
137132
137133        [chromium] Make LayerRendererChromium use RenderPasses instead of RenderSurfaces
137134        https://bugs.webkit.org/show_bug.cgi?id=88132
137135
137136        Reviewed by Adrienne Walker.
137137
137138        This patch is partly renaming, partly moving data into CCRenderPass
137139        and CCRenderPassDrawQuad. LayerRendererChromium should accept as input
137140        a set of RenderPasses and this should be sufficient for drawing. It
137141        should have no notion of RenderSurfaces at all.
137142
137143        First, what isn't done: RenderSurfaces still hold the textures
137144        where RenderPasses are drawn to/from, so that these textures can
137145        persist across frames. This will be addressed separately.
137146
137147        Otherwise, this completely removes the concept of RenderSurface from
137148        LayerRenderChromium and the CCDrawQuad, replacing it with RenderPass.
137149        The "renderSurfaceTextureManager" is renamed to the "implTextureManager"
137150        and like-wise for the TextureAllocator, as these are not used
137151        exclusively for render surfaces (passes), and a texture manager for
137152        render passes that does not require a RenderSurface* will be the focus
137153        of future changes.
137154
137155        Covered by existing tests.
137156
137157        * WebCore.gypi:
137158        * platform/graphics/chromium/LayerRendererChromium.cpp:
137159        (WebCore::LayerRendererChromium::LayerRendererChromium):
137160        (WebCore::LayerRendererChromium::setVisible):
137161        (WebCore::LayerRendererChromium::releaseRenderPassTextures):
137162        (WebCore::LayerRendererChromium::viewportChanged):
137163        (WebCore::LayerRendererChromium::clearRenderPass):
137164        (WebCore::LayerRendererChromium::beginDrawingFrame):
137165        (WebCore::LayerRendererChromium::drawRenderPass):
137166        (WebCore::LayerRendererChromium::drawQuad):
137167        (WebCore::LayerRendererChromium::drawBackgroundFilters):
137168        (WebCore::LayerRendererChromium::drawRenderPassQuad):
137169        (WebCore::LayerRendererChromium::copyPlaneToTexture):
137170        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
137171        (WebCore::LayerRendererChromium::finishDrawingFrame):
137172        (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
137173        (WebCore::LayerRendererChromium::getFramebufferTexture):
137174        (WebCore::LayerRendererChromium::isCurrentRenderPass):
137175        (WebCore::LayerRendererChromium::useRenderPass):
137176        (WebCore::LayerRendererChromium::useManagedTexture):
137177        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
137178        (WebCore::LayerRendererChromium::setScissorToRect):
137179        (WebCore::LayerRendererChromium::setDrawFramebufferRect):
137180        (WebCore::LayerRendererChromium::initializeSharedObjects):
137181        (WebCore::LayerRendererChromium::renderPassProgram):
137182        (WebCore::LayerRendererChromium::renderPassProgramAA):
137183        (WebCore::LayerRendererChromium::renderPassMaskProgram):
137184        (WebCore::LayerRendererChromium::renderPassMaskProgramAA):
137185        (WebCore::LayerRendererChromium::cleanupSharedObjects):
137186        * platform/graphics/chromium/LayerRendererChromium.h:
137187        (WebCore):
137188        (LayerRendererChromium):
137189        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
137190        (WebCore::CCDrawQuad::toRenderPassDrawQuad):
137191        * platform/graphics/chromium/cc/CCDrawQuad.h:
137192        (WebCore):
137193        (CCDrawQuad):
137194        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
137195        (WebCore::CCHeadsUpDisplay::draw):
137196        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
137197        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
137198        (WebCore::CCLayerTreeHostImpl::drawLayers):
137199        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
137200        * platform/graphics/chromium/cc/CCRenderPass.cpp:
137201        (WebCore::CCRenderPass::CCRenderPass):
137202        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
137203        * platform/graphics/chromium/cc/CCRenderPass.h:
137204        (CCRenderPass):
137205        (WebCore::CCRenderPass::framebufferOutputRect):
137206        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.cpp.
137207        (WebCore):
137208        (WebCore::CCRenderPassDrawQuad::create):
137209        (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
137210        * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.h.
137211        (WebCore):
137212        (CCRenderPassDrawQuad):
137213        (WebCore::CCRenderPassDrawQuad::renderPass):
137214        (WebCore::CCRenderPassDrawQuad::isReplica):
137215        (WebCore::CCRenderPassDrawQuad::maskTextureId):
137216        (WebCore::CCRenderPassDrawQuad::filters):
137217        (WebCore::CCRenderPassDrawQuad::backgroundFilters):
137218        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
137219        (WebCore::CCRenderSurface::prepareContentsTexture):
137220        (WebCore::CCRenderSurface::prepareBackgroundTexture):
137221        (WebCore::CCRenderSurface::appendQuads):
137222        * platform/graphics/chromium/cc/CCRenderSurface.h:
137223        (WebCore):
137224        (CCRenderSurface):
137225        * platform/graphics/chromium/cc/CCRenderer.h:
137226        (CCRenderer):
137227        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
137228        (WebCore::CCScrollbarLayerImpl::willDraw):
137229        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
137230        (WebCore::CCVideoLayerImpl::reserveTextures):
137231
1372322012-06-04  Abhishek Arya  <inferno@chromium.org>
137233
137234        Crash in multi-column layout.
137235        https://bugs.webkit.org/show_bug.cgi?id=88022
137236
137237        Reviewed by Ojan Vafai.
137238
137239        The patch addresses two problems::
137240        1. |this| in RenderBlock::splitBlocks can get destroyed when we
137241        move its children to the clone and later call updateBeforeAfterContent
137242        on the parent. So, we stop accessing its member variables and cache
137243        it in a local.
137244        2. Positioned objects were not getting cleared from our grand parents.
137245        This will happen if our immediate children got moved to a clone tree,
137246        however at our parent nothing was moved. So, we make sure to remove
137247        the positioned objects at every level while we are doing the cloning.
137248
137249        Tests: fast/multicol/span/empty-anonymous-block-split-crash.html
137250               fast/multicol/span/positioned-objects-not-removed-crash.html
137251
137252        * rendering/RenderBlock.cpp:
137253        (WebCore::RenderBlock::splitBlocks):
137254
1372552012-06-04  Tim Horton  <timothy_horton@apple.com>
137256
137257        Mac build fails with SVG disabled
137258        https://bugs.webkit.org/show_bug.cgi?id=88165
137259
137260        Reviewed by Dirk Schulze.
137261
137262        Wrap all of SVGCSSPropertyNames in #if ENABLE(SVG),
137263        and mark an unused argument in collectMatchingRulesForList.
137264
137265        * css/SVGCSSPropertyNames.in:
137266        * css/StyleResolver.cpp:
137267        (WebCore::StyleResolver::collectMatchingRulesForList):
137268
1372692012-06-04  David Kilzer  <ddkilzer@apple.com>
137270
137271        BUILD FIX: Unused variable with ENABLE(CONTEXT_MENUS) off
137272
137273        This broke in r118374.
137274
137275        * bindings/js/JSInspectorFrontendHostCustom.cpp:
137276        (WebCore::JSInspectorFrontendHost::showContextMenu): Add
137277        UNUSED_PARAM(exec) when ENABLE(CONTEXT_MENUS) is off.
137278
1372792012-06-04  Sheriff Bot  <webkit.review.bot@gmail.com>
137280
137281        Unreviewed, rolling out r119393.
137282        http://trac.webkit.org/changeset/119393
137283        https://bugs.webkit.org/show_bug.cgi?id=88236
137284
137285        Test is incorrect (duplicate content) and is causing Chromium
137286        failures (Requested by schenney on #webkit).
137287
137288        * html/canvas/CanvasRenderingContext2D.cpp:
137289        (WebCore::CanvasRenderingContext2D::drawImage):
137290
1372912012-06-04  Zeev Lieber  <zlieber@chromium.org>
137292
137293        [chromium] Cleanup scissor rect computation/use with damage
137294        https://bugs.webkit.org/show_bug.cgi?id=87167
137295
137296        Reviewed by Adrienne Walker.
137297
137298        Performing scissorRect computation during
137299        calculateRenderPasses. Storing scissorRect in shared quad state
137300        instead of computing it during drawQuad. Added scissorRect fields
137301        into layers and render surfaces.
137302
137303        Covered by existing layout tests. Introduced more unit tests to
137304        test end-to-end drawing using mock graphic context, and added more
137305        test cases to CCLayerTreeHostCommon to verify scissorRect computation.
137306
137307        * platform/graphics/chromium/LayerChromium.h:
137308        (WebCore::LayerChromium::scissorRect):
137309        (WebCore::LayerChromium::setScissorRect):
137310        (LayerChromium):
137311        * platform/graphics/chromium/LayerRendererChromium.cpp:
137312        (WebCore::LayerRendererChromium::clearRenderSurface):
137313        (WebCore::LayerRendererChromium::drawRenderPass):
137314        (WebCore::LayerRendererChromium::drawQuad):
137315        (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
137316        * platform/graphics/chromium/LayerRendererChromium.h:
137317        (LayerRendererChromium):
137318        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
137319        (WebCore::RenderSurfaceChromium::computeRootScissorRectInCurrentSurface):
137320        (WebCore):
137321        * platform/graphics/chromium/RenderSurfaceChromium.h:
137322        (WebCore::RenderSurfaceChromium::scissorRect):
137323        (WebCore::RenderSurfaceChromium::setScissorRect):
137324        (RenderSurfaceChromium):
137325        * platform/graphics/chromium/cc/CCDrawQuad.h:
137326        (WebCore::CCDrawQuad::scissorRect):
137327        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
137328        (WebCore::CCLayerImpl::createSharedQuadState):
137329        * platform/graphics/chromium/cc/CCLayerImpl.h:
137330        (CCLayerImpl):
137331        (WebCore::CCLayerImpl::scissorRect):
137332        (WebCore::CCLayerImpl::setScissorRect):
137333        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
137334        (WebCore::CCLayerTreeHost::updateLayers):
137335        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
137336        (WebCore):
137337        (WebCore::calculateLayerScissorRect):
137338        (WebCore::calculateSurfaceScissorRect):
137339        (WebCore::calculateDrawTransformsInternal):
137340        (WebCore::calculateVisibleAndScissorRectsInternal):
137341        (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
137342        (WebCore::CCLayerTreeHostCommon::calculateVisibleAndScissorRects):
137343        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
137344        (CCLayerTreeHostCommon):
137345        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
137346        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
137347        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
137348        (WebCore::CCLayerTreeHostImpl::drawLayers):
137349        (WebCore::CCLayerTreeHostImpl::swapBuffers):
137350        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
137351        (CCLayerTreeHostImpl):
137352        * platform/graphics/chromium/cc/CCRenderPass.cpp:
137353        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
137354        * platform/graphics/chromium/cc/CCRenderPass.h:
137355        (CCRenderPass):
137356        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
137357        (WebCore::CCRenderSurface::createSharedQuadState):
137358        (WebCore::CCRenderSurface::createReplicaSharedQuadState):
137359        (WebCore):
137360        (WebCore::CCRenderSurface::computeRootScissorRectInCurrentSurface):
137361        (WebCore::CCRenderSurface::appendQuads):
137362        * platform/graphics/chromium/cc/CCRenderSurface.h:
137363        (CCRenderSurface):
137364        (WebCore::CCRenderSurface::setScissorRect):
137365        (WebCore::CCRenderSurface::scissorRect):
137366        * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.cpp:
137367        (WebCore::CCRenderSurfaceDrawQuad::create):
137368        (WebCore::CCRenderSurfaceDrawQuad::CCRenderSurfaceDrawQuad):
137369        * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.h:
137370        (CCRenderSurfaceDrawQuad):
137371        * platform/graphics/chromium/cc/CCRenderer.h:
137372        (CCRenderer):
137373        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
137374        (WebCore::CCSharedQuadState::create):
137375        (WebCore::CCSharedQuadState::CCSharedQuadState):
137376        * platform/graphics/chromium/cc/CCSharedQuadState.h:
137377        (CCSharedQuadState):
137378        (WebCore::CCSharedQuadState::scissorRect):
137379
1373802012-06-04  Kentaro Hara  <haraken@chromium.org>
137381
137382        Remove SelectorQueryCacheEntry from SelectorQuery.h
137383        https://bugs.webkit.org/show_bug.cgi?id=88204
137384
137385        Reviewed by Hajime Morita.
137386
137387        As anttik@ pointed out in https://bugs.webkit.org/show_bug.cgi?id=87942#c15,
137388        we can remove SelectorQueryCacheEntry by having SelectorQuery hold CSSSelectorList.
137389
137390        Tests: fast/dom/SelectorAPI/* No change in test results.
137391
137392        * dom/SelectorQuery.cpp:
137393        (WebCore::SelectorQuery::SelectorQuery):
137394        (WebCore::SelectorQueryCache::add):
137395        * dom/SelectorQuery.h:
137396        (SelectorQuery):
137397        (SelectorQueryCache):
137398
1373992012-06-04  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
137400
137401        [GTK] Memory leak in PasteboardHelper
137402        https://bugs.webkit.org/show_bug.cgi?id=88216
137403
137404        Reviewed by Martin Robinson.
137405
137406        Fixed a memory leak in PasteboardHelper by using adoptRef instead
137407        of just getting a new reference of TargetList.
137408
137409        No new tests because of no behavior changes.
137410
137411        * platform/gtk/PasteboardHelper.cpp:
137412        (WebCore::PasteboardHelper::dropAtomsForContext):
137413
1374142012-06-04  Rob Buis  <rbuis@rim.com>
137415
137416        Hit ASSERT when editing attribute value in Element in SVG Document
137417        https://bugs.webkit.org/show_bug.cgi?id=88179
137418
137419        Reviewed by Pavel Feldman.
137420
137421        Make sure the <span> is created as a HTML Element regardless of document in use.
137422
137423        * inspector/InspectorDOMAgent.cpp:
137424        (WebCore):
137425        (WebCore::InspectorDOMAgent::setAttributesAsText):
137426
1374272012-06-04  Yoshifumi Inoue  <yosin@chromium.org>
137428
137429        [Forms] Change function and variable names independent from "double" type
137430        https://bugs.webkit.org/show_bug.cgi?id=88220
137431
137432        Reviewed by Kent Tamura.
137433
137434        This patch is a part of introducing decimal arithmetic to input type.
137435
137436        This patch renames function and variable names which contain term "double"
137437        to "number" to separate concept and implementation.
137438
137439        No new tests. This patch doesn't change behavior.
137440
137441        * html/BaseDateAndTimeInputType.cpp:
137442        (WebCore::BaseDateAndTimeInputType::valueAsDate): Replace parseToDouble to parseToNumber.
137443        (WebCore::BaseDateAndTimeInputType::valueAsNumber): ditto.
137444        (WebCore::BaseDateAndTimeInputType::parseToNumber): ditto.
137445        * html/BaseDateAndTimeInputType.h:
137446        (BaseDateAndTimeInputType):
137447        * html/DateInputType.cpp:
137448        (WebCore::DateInputType::createStepRange): Replace parseToDouble to parseToNumber.
137449        * html/DateTimeInputType.cpp:
137450        (WebCore::DateTimeInputType::createStepRange): Replace parseToDouble to parseToNumber.
137451        * html/DateTimeLocalInputType.cpp:
137452        (WebCore::DateTimeLocalInputType::createStepRange): Replace parseToDouble to parseToNumber.
137453        * html/InputType.cpp:
137454        (WebCore::InputType::rangeUnderflow): Replace parseToDouble to parseToNumber and doubleValue to numericValue.
137455        (WebCore::InputType::rangeOverflow): ditto.
137456        (WebCore::InputType::isInRange): ditto.
137457        (WebCore::InputType::isOutOfRange): ditto.
137458        (WebCore::InputType::stepMismatch): ditto.
137459        (WebCore::InputType::validationMessage): ditto.
137460        (WebCore::InputType::parseToNumber): ditto.
137461        (WebCore::InputType::parseToDoubleWithDecimalPlaces): ditto.
137462        (WebCore::InputType::stepUpFromRenderer): dttio.
137463        * html/InputType.h:
137464        (InputType):
137465        * html/MonthInputType.cpp:
137466        (WebCore::MonthInputType::createStepRange): Replace parseToDouble to parseToNumber.
137467        (WebCore::MonthInputType::parseToNumber): ditto.
137468        * html/MonthInputType.h:
137469        (MonthInputType):
137470        * html/NumberInputType.cpp:
137471        (WebCore::NumberInputType::valueAsNumber): Replace parseToDouble to parseToNumber.
137472        (WebCore::NumberInputType::createStepRange): ditto.
137473        (WebCore::NumberInputType::parseToNumber): ditto.
137474        * html/NumberInputType.h:
137475        * html/RangeInputType.cpp:
137476        (WebCore::ensureMaximum): Added helper function for createStepRange for avoiding cast in max() and using "const".
137477        (WebCore::RangeInputType::valueAsNumber): Replace parseToDouble to parseToNumber.
137478        (WebCore::RangeInputType::createStepRange): ditto.
137479        (WebCore::RangeInputType::handleKeydownEvent): ditto.
137480        (WebCore::RangeInputType::parseToNumber): ditto.
137481        (WebCore::RangeInputType::sanitizeValue): ditto.
137482        * html/RangeInputType.h:
137483        (RangeInputType):
137484        * html/StepRange.cpp:
137485        (WebCore::StepRange::parseStep): Replace DoubleWithDecimalPlaces to NumberWithDecimalPlaces.
137486        (WebCore::StepRange::stepMismatch): Replace parseToDouble to parseToNumber.
137487        * html/StepRange.h:
137488        (WebCore::StepRange::NumberWithDecimalPlaces): Renamed from DoubleWithDecimalPlaces.
137489        (WebCore::StepRange::NumberWithDecimalPlacesOrMissing): Renamed from DoubleWithDecimalPlacesOrMissing.
137490        * html/TimeInputType.cpp:
137491        (WebCore::TimeInputType::createStepRange): Replace parseToDouble to parseToNumber.
137492        * html/WeekInputType.cpp:
137493        (WebCore::WeekInputType::createStepRange): Replace parseToDouble to parseToNumber.
137494
1374952012-06-04  David Kilzer  <ddkilzer@apple.com>
137496
137497        BUILD FIX: FeatureDefines.xcconfig should match across projects
137498
137499        * Configurations/FeatureDefines.xcconfig:
137500        - Add missing ENABLE_CSS_IMAGE_RESOLUTION.
137501
1375022012-06-04  Justin Novosad  <junov@chromium.org>
137503
137504        Canvas 2D - Source rectangles that overlap the source image boundary, not supported by drawImage
137505        https://bugs.webkit.org/show_bug.cgi?id=66574
137506
137507        Reviewed by Stephen White.
137508
137509        Test: fast/canvas/drawImage-clipped-source.html
137510
137511        When the source rectangle argument to drawImage is not entirely
137512        contatained by the domain of the source image, the source rectangle
137513        is clipped, and the destination rectangle is clipped proportionately
137514        Old behavior was to silently fail, which did not comply with the spec.
137515
137516        * html/canvas/CanvasRenderingContext2D.cpp:
137517        (WebCore::normalizeAndClipRects):
137518        (WebCore):
137519        (WebCore::CanvasRenderingContext2D::drawImage):
137520
1375212012-06-04  Dominik Röttsches  <dominik.rottsches@intel.com>
137522
137523        [Cairo] Implementation of GraphicsContext does not save/restore ImageInterpolation correctly
137524        https://bugs.webkit.org/show_bug.cgi?id=87985
137525
137526        Reviewed by Gustavo Noronha Silva.
137527
137528        Moving image interpolation quality setting into state so that it's saved and restored.
137529
137530        Covered by existing test fast/canvas/canvas-imageSmoothingEnabled.html which is now passing.
137531
137532        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
137533        (GraphicsContextPlatformPrivate): Removing stale member that was never used.
137534        * platform/graphics/cairo/PlatformContextCairo.cpp:
137535        (WebCore::PlatformContextCairo::State::State):
137536        (PlatformContextCairo::State):
137537        (WebCore::PlatformContextCairo::PlatformContextCairo):
137538        (WebCore::PlatformContextCairo::drawSurfaceToContext):
137539        (WebCore::PlatformContextCairo::setImageInterpolationQuality):
137540        (WebCore):
137541        (WebCore::PlatformContextCairo::imageInterpolationQuality):
137542        * platform/graphics/cairo/PlatformContextCairo.h:
137543        (PlatformContextCairo): Moving implementations for image interpolation quality setter into implementation file.
137544
1375452012-06-04  Philip Rogers  <pdr@google.com>
137546
137547        Fix assert in non-scaling strokes in patterns
137548        https://bugs.webkit.org/show_bug.cgi?id=88198
137549
137550        When calculating the CTM for a rect or path in a pattern we need to use
137551        an SVGPatternElement's local transform. Pattern did not expose the transform
137552        because it does not extend from from SVGStyledLocatable or SVGStyledTransformable.
137553        This patch exposes the pattern's transform in localCoordinateSpaceTransform.
137554
137555        SVGGradientElement does not need this special handling because the children
137556        of a gradient element are restricted to not include shape and structural elements
137557        that would need to calculate a CTM.
137558
137559        Before this patch the added test would assert.
137560        This patch is a prerequisite to a major refactoring of RenderSVGShape &
137561        friends, and the test will be unskipped in a followup patch.
137562
137563        Reviewed by Dirk Schulze.
137564
137565        Tests: svg/stroke/non-scaling-stroke-pattern-expected.svg
137566               svg/stroke/non-scaling-stroke-pattern.svg
137567
137568        * svg/SVGPatternElement.cpp:
137569        (WebCore::SVGPatternElement::localCoordinateSpaceTransform):
137570        (WebCore):
137571        * svg/SVGPatternElement.h:
137572        (SVGPatternElement):
137573        * svg/SVGStyledElement.cpp:
137574        (WebCore::SVGStyledElement::localCoordinateSpaceTransform):
137575
1375762012-06-04  Alexei Filippov  <alexeif@chromium.org>
137577
137578        Web Inspector: speed up _calculateRetainedSizes function
137579        https://bugs.webkit.org/show_bug.cgi?id=87863
137580
137581        Reviewed by Yury Semikhatsky.
137582
137583        * inspector/front-end/HeapSnapshot.js:
137584        (WebInspector.HeapSnapshot.prototype._calculateRetainedSizes):
137585
1375862012-06-04  Yury Semikhatsky  <yurys@chromium.org>
137587
137588        Web Inspector: add unknown size to the memory pie-chart legend
137589        https://bugs.webkit.org/show_bug.cgi?id=88081
137590
137591        Reviewed by Pavel Feldman.
137592
137593        Added "Unknown" part size to the memory pie-chart legend.
137594
137595        * inspector/front-end/NativeMemorySnapshotView.js:
137596        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
137597        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
137598        (WebInspector.MemoryBlockViewProperties._initialize):
137599        (WebInspector.NativeMemoryPieChart.prototype._paint):
137600
1376012012-06-04  Mike West  <mkwst@chromium.org>
137602
137603        Adding explicit console error for duplicated CSP directives.
137604        https://bugs.webkit.org/show_bug.cgi?id=88193
137605
137606        This patch adds an explicit error message for duplicated CSP
137607        directives instead of reusing the "unrecognized directive" error.
137608
137609        Reviewed by Adam Barth.
137610
137611        Test: http/tests/security/contentSecurityPolicy/duplicate-directive.html
137612
137613        * page/ContentSecurityPolicy.cpp:
137614        (CSPDirectiveList):
137615        (WebCore::CSPDirectiveList::logDuplicateDirective):
137616        (WebCore):
137617        (WebCore::CSPDirectiveList::parseReportURI):
137618        (WebCore::CSPDirectiveList::setCSPDirective):
137619        (WebCore::CSPDirectiveList::applySandboxPolicy):
137620        (WebCore::CSPDirectiveList::addDirective):
137621
1376222012-06-04  Yoshifumi Inoue  <yosin@chromium.org>
137623
137624        REGRESSION(r117929) [Forms] input type=number thinks 0 is not a number
137625        https://bugs.webkit.org/show_bug.cgi?id=88208
137626
137627        Reviewed by Kent Tamura.
137628
137629        This patch fixes invalid handling of return value of parseToDoubleForNumberType
137630        in NumberInputType::isAcceptableValue to use isfinite() function for checking
137631        whether specified string is valid number or not. Before r117929, return value
137632        of parseToDoubleForNumberType was bool, but after r117929, it is double.
137633
137634        Test: fast/forms/number/input-number-from-renderer.html
137635
137636        * html/NumberInputType.cpp:
137637        (WebCore::NumberInputType::isAcceptableValue): Use isfinite()
137638
1376392012-06-04  Antti Koivisto  <antti@apple.com>
137640
137641        Crash in WebCore::RenderView::getRetainedWidgets
137642        https://bugs.webkit.org/show_bug.cgi?id=88217
137643
137644        Reviewed by Kenneth Rohde Christiansen.
137645        
137646        There is no known repro, the crash has been seen on the field. It is likely that it happens with frame
137647        flattening enabled only.
137648
137649        Null check root renderer in performPostLayoutTasks. The root can legitimely be null for several reasons and
137650        is mostly null checked everywhere else.
137651
137652        * page/FrameView.cpp:
137653        (WebCore::FrameView::performPostLayoutTasks):
137654
1376552012-06-04  Kentaro Hara  <haraken@chromium.org>
137656
137657        Use SelectorQuery in Element::webkitMatchesSelector()
137658        https://bugs.webkit.org/show_bug.cgi?id=88209
137659
137660        Reviewed by Antti Koivisto.
137661
137662        By using SelectorQuery in Element::webkitMatchesSelector(),
137663        we can not only simplify the code but also improve the performance
137664        thanks to the cache mechanism of SelectorQuery which was implemented
137665        in bug 87942.
137666
137667        Tests: fast/dom/SelectorAPI/*. No change in test results.
137668
137669        * dom/Element.cpp:
137670        (WebCore::Element::webkitMatchesSelector):
137671        * dom/SelectorQuery.cpp:
137672        (WebCore::SelectorQuery::matches):
137673        (WebCore):
137674        * dom/SelectorQuery.h:
137675        (SelectorQuery):
137676
1376772012-05-31  Kinuko Yasuda  <kinuko@chromium.org>
137678
137679        [chromium] DataTransferItem.webkitGetAsEntry() should synchronously return entry
137680        https://bugs.webkit.org/show_bug.cgi?id=87969
137681
137682        Reviewed by Tony Chang.
137683
137684        Per discussion on whatwg we should make webkitGetAsEntry synchronous.
137685        http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Apr/0079.html
137686
137687        Tests: editing/pasteboard/data-transfer-items-drag-drop-entry.html
137688               fast/filesystem/cross-filesystem-op.html
137689
137690        * Modules/filesystem/DataTransferItemFileSystem.h:
137691        (DataTransferItemFileSystem):
137692        * Modules/filesystem/DataTransferItemFileSystem.idl:
137693        * Modules/filesystem/chromium/DataTransferItemFileSystemChromium.cpp:
137694        (WebCore::DataTransferItemFileSystem::webkitGetAsEntry): Changed it to synchronously return entry.
137695
1376962012-06-03  Dominic Cooney  <dominicc@chromium.org>
137697
137698        EventTarget.idl should generate JS bindings
137699        https://bugs.webkit.org/show_bug.cgi?id=88120
137700
137701        This is one step in a larger change to expose a constructor for
137702        EventTarget and put EventTarget on the prototype chain of DOM
137703        objects that are event targets, in line with DOM Core. See
137704        <https://bugs.webkit.org/show_bug.cgi?id=67312>
137705
137706        Reviewed by Adam Barth.
137707
137708        No new tests. This change does not change any functionality.
137709
137710        * CMakeLists.txt: Generate JSEventTarget.
137711        * DerivedSources.cpp:
137712        * DerivedSources.make:
137713        * DerivedSources.pri:
137714        * GNUmakefile.list.am:
137715        * Target.pri:
137716        * UseJSC.cmake:
137717        * WebCore.gyp/WebCore.gyp:
137718        * WebCore.gypi:
137719        * WebCore.vcproj/WebCore.vcproj:
137720        * WebCore.xcodeproj/project.pbxproj:
137721        * bindings/js/JSBindingsAllInOne.cpp: JSEventTarget.cpp was renamed.
137722        * bindings/js/JSEventTarget.h: Removed. Generated now.
137723        * bindings/js/JSEventTargetCustom.cpp: Renamed from Source/WebCore/bindings/js/JSEventTarget.cpp.
137724        * bindings/scripts/CodeGeneratorV8.pm:
137725        (GetInternalFields): EventTarget is an EventTarget.
137726        * dom/EventTarget.idl: Defer to toJS, toEventTarget in JSEventTargetCustom.cpp.
137727
1377282012-06-03  Hayato Ito  <hayato@chromium.org>
137729
137730        Supports traversing nodes in an orphaned shadow subtree in ComposedShadowTreeParentWalker.
137731        https://bugs.webkit.org/show_bug.cgi?id=87924
137732
137733        Reviewed by Dimitri Glazkov.
137734
137735        Some events, such as a 'click' event, can be dispatched on nodes in an orphaned shadow subtree.
137736        When resolving a parent node of a shadow root which is not assigned to any shadow insertion point,
137737        we have to return its shadow host as a parent node.
137738
137739        The related shadow DOM spec section is:
137740        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events
137741
137742        Test: fast/dom/shadow/shadow-dom-event-dispatching.html
137743
137744        * dom/ComposedShadowTreeWalker.cpp:
137745        (WebCore::ComposedShadowTreeParentWalker::traverseParentIncludingInsertionPointAndShadowRoot):
137746
1377472012-06-03  Sheriff Bot  <webkit.review.bot@gmail.com>
137748
137749        Unreviewed, rolling out r119359.
137750        http://trac.webkit.org/changeset/119359
137751        https://bugs.webkit.org/show_bug.cgi?id=88189
137752
137753        This broke platform/mac/fast/dom/wrapper-classes-objc.html.
137754        (Requested by dominicc on #webkit).
137755
137756        * bindings/objc/PublicDOMInterfaces.h:
137757        * bindings/scripts/CodeGeneratorObjC.pm:
137758        (GetBaseClass):
137759        * dom/MouseEvent.h:
137760        (MouseEvent):
137761        * dom/WheelEvent.cpp:
137762        (WebCore::WheelEvent::WheelEvent):
137763        * dom/WheelEvent.h:
137764        (WheelEvent):
137765        * dom/WheelEvent.idl:
137766
1377672012-06-03  Dominic Cooney  <dominicc@chromium.org>
137768
137769        WheelEvent should inherit from MouseEvent
137770        https://bugs.webkit.org/show_bug.cgi?id=76104
137771
137772        Reviewed by Kentaro Hara.
137773
137774        The spec for WheelEvent is
137775        <http://www.w3.org/TR/DOM-Level-3-Events/#webidl-events-WheelEvent>
137776
137777        Tests: fast/events/event-creation.html
137778               http://samples.msdn.microsoft.com/ietestcenter/dominheritance/showdominheritancetest.htm?Prototype_WheelEvent
137779
137780        * bindings/objc/PublicDOMInterfaces.h: Remove redundant MouseEvent API from WheelEvent
137781        * bindings/scripts/CodeGeneratorObjC.pm: MouseEvents are Events
137782        * dom/MouseEvent.h: Expose no-arg constructor to WheelEvent
137783        * dom/WheelEvent.cpp:
137784        (WebCore::WheelEvent::WheelEvent): Call MouseEvent superconstructor
137785        * dom/WheelEvent.h: Extend MouseEvent
137786        * dom/WheelEvent.idl: "
137787
1377882012-06-03  Varun Jain  <varunjain@google.com>
137789
137790        [chromium] Add new gesture type (two finger tap) that triggers context menu.
137791        https://bugs.webkit.org/show_bug.cgi?id=88173
137792
137793        Reviewed by Adam Barth.
137794
137795        Test: fast/events/touch/gesture/context-menu-on-two-finger-tap.html
137796
137797        * platform/PlatformEvent.h:
137798
1377992012-06-02  Andy Estes  <aestes@apple.com>
137800
137801        __ZNK7WebCore4Node27traverseNextAncestorSiblingEv should be exported even if ENABLE(FULLSCREEN_API) is false
137802        https://bugs.webkit.org/show_bug.cgi?id=88184
137803
137804        Reviewed by Dan Bernstein.
137805
137806        Node::traverseNextAncestorSibling() is called in several inline
137807        functions defined in ContainerNode.h (a private header), so its symbol
137808        needs to be exported regardless of whether full-screen API is enabled.
137809
137810        * WebCore.exp.in:
137811
1378122012-06-02  Xianzhu Wang  <wangxianzhu@chromium.org>
137813
137814        SVGImageCache leaks image data
137815        https://bugs.webkit.org/show_bug.cgi?id=87792
137816
137817        There are two functions to remove a client from a CachedImage:
137818        - CachedResource::removeClient()
137819        - CachedImage::removeClientForRenderer().
137820        It's easy to make error to call the former which will leak the cached
137821        image buffers in SVGImageCache.
137822
137823        This change combined the two by adding the virtual 
137824        CachedResource::didRemoveClient(). CachedImage will do SVGImageCache
137825        cleanup in the function.
137826
137827        Reviewed by Nikolas Zimmermann.
137828
137829        Test: svg/as-image/svg-image-leak-cached-data.html
137830
137831        * loader/cache/CachedFont.h:
137832        (WebCore::CachedFontClient::resourceClientType): Added 'const'.
137833        * loader/cache/CachedImage.cpp:
137834        (WebCore):
137835        (WebCore::CachedImage::didRemoveClient): Removes the client from SVGImageCache.
137836        (WebCore::CachedImage::lookupOrCreateImageForRenderer):
137837        * loader/cache/CachedImage.h:
137838        (CachedImage):
137839        (WebCore::CachedImageClient::resourceClientType): Added 'const'.
137840        * loader/cache/CachedRawResource.h:
137841        (WebCore::CachedRawResourceClient::resourceClientType): Added 'const'.
137842        * loader/cache/CachedResource.cpp:
137843        (WebCore::CachedResource::removeClient): Added invocation of didRemoveClient().
137844        * loader/cache/CachedResource.h:
137845        (WebCore::CachedResource::didRemoveClient): Added for subclasses to do additional works.
137846        * loader/cache/CachedResourceClient.h:
137847        (WebCore::CachedResourceClient::resourceClientType): Added 'const'.
137848        * loader/cache/CachedSVGDocument.h:
137849        (WebCore::CachedSVGDocumentClient::resourceClientType): Added 'const'.
137850        * loader/cache/CachedStyleSheetClient.h:
137851        (WebCore::CachedStyleSheetClient::resourceClientType): Added 'const'.
137852        * rendering/style/StyleCachedImage.cpp:
137853        (WebCore::StyleCachedImage::removeClient):
137854        * rendering/style/StyleCachedImageSet.cpp:
137855        (WebCore::StyleCachedImageSet::removeClient):
137856        * svg/graphics/SVGImageCache.cpp:
137857        (WebCore::SVGImageCache::~SVGImageCache): Added checking for leaks.
137858        (WebCore::SVGImageCache::removeClientFromCache):
137859        (WebCore::SVGImageCache::setRequestedSizeAndScales): 
137860        (WebCore::SVGImageCache::requestedSizeAndScales):
137861        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForClient):
137862        * svg/graphics/SVGImageCache.h:
137863        (WebCore):
137864        (SVGImageCache):
137865
1378662012-06-02  Ryosuke Niwa  <rniwa@webkit.org>
137867
137868        Windows build fix after r119330. Unnest the class for now.
137869
137870        * dom/SelectorQuery.cpp:
137871        (WebCore::SelectorQueryCacheEntry::SelectorQueryCacheEntry):
137872        (WebCore::SelectorQueryCache::add):
137873        * dom/SelectorQuery.h:
137874        (SelectorQueryCacheEntry):
137875        (WebCore::SelectorQueryCacheEntry::selectorQuery):
137876        (WebCore):
137877        (SelectorQueryCache):
137878
1378792012-06-02  Geoffrey Garen  <ggaren@apple.com>
137880
137881        DOM string cache should hash pointers, not characters
137882        https://bugs.webkit.org/show_bug.cgi?id=88175
137883
137884        Reviewed by Phil Pizlo and Sam Weinig.
137885
137886        Dromaeo DOM Core reports no change.
137887
137888        http://trac.webkit.org/changeset/84934 accidentally changed from hashing
137889        pointers to hashing characters, due to template defaults. Let's change back.
137890
137891        Hashing characters is not so good because:
137892
137893        (1) It's not memory-safe with HashMap::set(). HashMap::set() replaces
137894        the value but not the key. Since our values own our keys, we need to
137895        ensure object identity between key and value, or the key can be freed
137896        prematurely. (This is impossible to demonstrate with our current
137897        eager sweep behavior, but it shows up as crashes in layout tests if you
137898        change to lazy sweep.)
137899
137900        (2) It's slower.
137901
137902        * bindings/js/DOMWrapperWorld.h:
137903        (WebCore): Override the default hash, which hashes based on characters.
137904
1379052012-06-02  Eli Fidler  <efidler@rim.com>
137906
137907        Don't crash if we ask for fonts that don't exist.
137908        https://bugs.webkit.org/show_bug.cgi?id=88106
137909
137910        Reviewed by Dan Bernstein.
137911
137912        RIM PR 161219
137913
137914        If the site doesn't ask for a reasonable font and the system doesn't
137915        provide a good fallback, FontFallBackList::primaryFontData can be 0,
137916        which can cause a crash.
137917
137918        * platform/graphics/skia/FontCacheSkia.cpp:
137919        (WebCore::FontCache::getLastResortFallbackFont):
137920
1379212012-06-02  Kentaro Hara  <haraken@chromium.org>
137922
137923        [Performance] Optimize querySelector() by caching SelectorQuery objects
137924        https://bugs.webkit.org/show_bug.cgi?id=87942
137925
137926        Reviewed by Antti Koivisto.
137927
137928        This patch improves performance of Node::querySelector() by 7.1x in Safari/Mac
137929        and by 8.5x in Chromium/Linux.
137930
137931        Performance test: Parser/query-selector-first.html, Parser/query-selector-last.html
137932
137933        [query-selector-first.html]
137934        Safari/Mac      264.97 runs/s  =>  1872.78 runs/s  (7.06x speed-up)
137935        Chromium/Linux  244.84 runs/s  =>  2071.60 runs/s  (8.46x speed-up)
137936
137937        [query-selector-last.html]
137938        Safari/Mac      393.73 runs/s  =>  466.05 runs/s   (1.18x speed-up)
137939        Chromium/Linux  401.15 runs/s  =>  484.45 runs/s   (1.20x speed-up)
137940
137941        Previously Node::querySelector() and Node::querySelectorAll() had been
137942        parsing CSS queries every time. This patch optimizes the performance by caching
137943        parsed results onto a Document.
137944
137945        The cache is invalidated when any of CSS related variables is updated.
137946        As per the current implementation of CSSParserContext::operator==(), the CSS related
137947        variables are as follows:
137948
137949        - baseURI
137950        - charset
137951        - mode
137952        - isHTMLDocument
137953        - isCSSCustomFilterEnabled
137954        - isCSSRegionsEnabled
137955        - needsSiteSpecificQuirks
137956        - enforcesCSSMIMETypeInNoQuirksMode
137957
137958        Actually, we do not need to watch all of these variables:
137959
137960        - The current implementation does not watch the change of charset.
137961        charset is always set to a null String by CSSParserContext::CSSParserContext().
137962
137963        - isHTMLDocument never changes.
137964
137965        - isCSSCustomFilterEnabled, isCSSRegionsEnabled, needsSiteSpecificQuirks and
137966        enforcesCSSMIMETypeInNoQuirksMode are not flipped in a user scenario.
137967        If someone changes them, it would be reasonable to expect them
137968        to take the effect only on subsequent document loads.
137969        Thus we do not need to invalidate the cache when these variables are updated.
137970
137971        Consequently, the condition under which we have to invalidate the cache is
137972        that any of the following variables is updated:
137973
137974        - baseURI
137975        - mode
137976
137977        Tests: fast/dom/SelectorAPI/*. No change in test results.
137978
137979        * dom/SelectorQuery.h: SelectorQueryCache is a cache from CSS selectors to parsed results.
137980        SelectorQueryCache::Entry is an entry of the cache.
137981        SelectorQueryCache::Entry holds a SelectorQuery object and a CSSSelectorList object.
137982        The reason why SelectorQueryCache::Entry needs to hold the CSSSelectorList object
137983        is that the CSSSelectorList object keeps the lifetime of CSSSelector objects
137984        in the SelectorQuery object. Since the SelectorQuery object just holds pointers
137985        to CSSSelector objects, the CSSSelectorList object must not be destructed
137986        before the SelectorQuery object is destructed.
137987        (WebCore):
137988        (SelectorDataList):
137989        (WebCore::SelectorQuery::SelectorQuery):
137990        (SelectorQuery):
137991        (SelectorQueryCache):
137992        (WebCore::SelectorQueryCache::SelectorQueryCache):
137993        (Entry):
137994        (WebCore::SelectorQueryCache::Entry::selectorQuery):
137995        * dom/SelectorQuery.cpp:
137996        (WebCore::SelectorQuery::initialize):
137997        (WebCore::SelectorQueryCache::Entry::Entry):
137998        (WebCore::SelectorQueryCache::add): Returns a cached SelectorQuery object if any.
137999        Otherwise, parses a given CSS selector, creates a SelectorQuery object,
138000        adds the SelectorQuery object to a new entry in the cache, returns the SelectorQuery
138001        object.
138002        (WebCore::SelectorQueryCache::invalidate): Clears the cache.
138003
138004        * dom/Document.h:
138005        (WebCore):
138006        (Document):
138007        * dom/Document.cpp:
138008        (WebCore::Document::selectorQueryCache):
138009        (WebCore):
138010        (WebCore::Document::setCompatibilityMode): Invalidates the cache
138011        when m_compatibilityMode is updated.
138012        (WebCore::Document::updateBaseURL): Invalidates the cache
138013        when m_baseURL is updated.
138014
138015        * dom/Node.h: Changed String to AtomicString, since the key of the cache
138016        should be AtomicString.
138017        (Node):
138018        * dom/Node.cpp: Optimized the code by using the cache.
138019        (WebCore::Node::querySelector):
138020        (WebCore::Node::querySelectorAll):
138021
1380222012-06-02  Dan Bernstein  <mitz@apple.com>
138023
138024        Reverted the last change.
138025
138026        * WebCore.xcodeproj/project.pbxproj:
138027
1380282012-06-02  Dan Bernstein  <mitz@apple.com>
138029
138030        Stop treating Perl code as private headers.
138031
138032        * WebCore.xcodeproj/project.pbxproj: Removed CodeGenerator.pm, generate-bindings.pl,
138033        IDLParser.pm, IDLStructure.pm, and preprocessor.pm from the Copy Headers build phase.
138034
1380352012-06-02  Zeno Albisser  <zeno@webkit.org>
138036
138037        Fix and enable WebGL for WebKit2 on Qt.
138038        https://bugs.webkit.org/show_bug.cgi?id=86214
138039
138040        Make GraphicsContext3DPrivate use GraphicsSurfaces
138041        for WK2. The GraphicsContext3D then uses the existing
138042        RenderBuffer for multisample rendering.
138043        When WebGraphicsLayer::syncCompositingState is being
138044        executed, the canvas is being synced as well. This means
138045        that the RenderBuffer contents are being blit onto
138046        a GraphicsSurface, and the GraphicsSurface token is
138047        being sent to the UIProcess.
138048        The WebLayerTreeRenderer then creates a
138049        TextureMapperSurfaceBackingStore for the canvas and
138050        passes the GraphicsSurface token as an argument.
138051        The token can then be used to identify the GraphicsSurface
138052        from the UIProcess side.
138053
138054        Reviewed by Noam Rosenthal.
138055
138056        * platform/graphics/GraphicsContext3D.h:
138057        Added createGraphicsSurfaces function. This is currently only
138058        being used by the Qt port.
138059
138060        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
138061        (WebCore::GraphicsContext3D::reshape):
138062        Calling the createGraphicsSurfaces function when the GraphicsContext3D
138063        is reshaped. This is currently only relevant for the Qt port.
138064
138065        * platform/graphics/qt/GraphicsContext3DQt.cpp:
138066        (GraphicsContext3DPrivate):
138067        Added m_frontBufferGraphicsSurface, m_backBufferGraphicsSurface
138068        and m_surfaceFlags members.
138069        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
138070        In case of WK2, create a QOpenGLContext and two GraphicsSurface
138071        for sharing the WebGL content with the UIProcess. One GraphicsSurface
138072        is being used as the front, the other one as the backbuffer.
138073        Creating a QOpenGLContext currently requires showing a QWindow.
138074        For the moment we therefore create a minimal QWindow and place
138075        it offscreen.
138076        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
138077        This new function is called from the WebGraphicsLayer,
138078        to blit the multisample framebuffer and copy its contents
138079        onto the GraphicsSurface.
138080        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
138081        Whenever the GraphicsContext3D is being reshaped,
138082        new GraphicsSurfaces must be created with the updated dimensions.
138083        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
138084
138085        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
138086        Added a new virtual function copyToGraphicsSurface.
138087        (TextureMapperPlatformLayer):
138088        (WebCore::TextureMapperPlatformLayer::copyToGraphicsSurface):
138089
1380902012-06-02  Tony Chang  <tony@chromium.org>
138091
138092        Rename the flexbox CSS propery values from start to flex-start and end to flex-end
138093        https://bugs.webkit.org/show_bug.cgi?id=88152
138094
138095        Reviewed by Ojan Vafai.
138096
138097        The spec changed. This is to differentiate from start/end which will
138098        depend on writing mode direction, rather than flex direction.
138099
138100        No new tests, just updated the existing values.
138101
138102        * css/CSSParser.cpp:
138103        (WebCore::isValidKeywordPropertyAndValue):
138104        * css/CSSPrimitiveValueMappings.h:
138105        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
138106        (WebCore::CSSPrimitiveValue::operator EAlignItems):
138107        (WebCore::CSSPrimitiveValue::operator EJustifyContent):
138108        (WebCore::CSSPrimitiveValue::operator EAlignContent):
138109        * css/CSSValueKeywords.in:
138110        * rendering/RenderFlexibleBox.cpp:
138111        (WebCore::initialJustifyContentOffset):
138112        (WebCore::alignmentForChild):
138113        (WebCore::initialAlignContentOffset):
138114        (WebCore::RenderFlexibleBox::alignFlexLines):
138115        (WebCore::RenderFlexibleBox::alignChildren):
138116        * rendering/style/RenderStyle.h:
138117        * rendering/style/RenderStyleConstants.h:
138118
1381192012-06-01  Alexandre Elias  <aelias@google.com>
138120
138121        [chromium] Software compositor initialization and base classes
138122        https://bugs.webkit.org/show_bug.cgi?id=87920
138123
138124        Reviewed by James Robinson.
138125
138126        This introduces new wrapper class CCGraphicsContext and base class
138127        CCRenderer which will be used for software compositing support.
138128        If no GraphicsContext3D is available, early return for now.
138129
138130        No new tests. (No-op change in 3d mode.)
138131
138132        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
138133        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::updateRect):
138134        (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
138135        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
138136        (Texture):
138137        (BitmapCanvasLayerTextureUpdater):
138138        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
138139        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
138140        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::updateTextureRect):
138141        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
138142        (Texture):
138143        (BitmapSkPictureCanvasLayerTextureUpdater):
138144        * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
138145        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
138146        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
138147        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
138148        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
138149        (Texture):
138150        (FrameBufferSkPictureCanvasLayerTextureUpdater):
138151        * platform/graphics/chromium/ImageLayerChromium.cpp:
138152        (WebCore::ImageLayerTextureUpdater::Texture::updateRect):
138153        (WebCore::ImageLayerTextureUpdater::updateTextureRect):
138154        * platform/graphics/chromium/LayerChromium.h:
138155        (WebCore):
138156        * platform/graphics/chromium/LayerRendererChromium.cpp:
138157        (WebCore::CCRenderer::toGLMatrix):
138158        (WebCore):
138159        (WebCore::LayerRendererChromium::create):
138160        (WebCore::CCRenderer::CCRenderer):
138161        (WebCore::LayerRendererChromium::LayerRendererChromium):
138162        (WebCore::LayerRendererChromium::copyPlaneToTexture):
138163        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
138164        (WebCore::LayerRendererChromium::getFramebufferTexture):
138165        (WebCore::LayerRendererChromium::bindFramebufferToTexture):
138166        * platform/graphics/chromium/LayerRendererChromium.h:
138167        (CCRenderer):
138168        (WebCore::CCRenderer::~CCRenderer):
138169        (WebCore::CCRenderer::ccContext):
138170        (WebCore::CCRenderer::settings):
138171        (WebCore::CCRenderer::viewportSize):
138172        (WebCore::CCRenderer::viewportWidth):
138173        (WebCore::CCRenderer::viewportHeight):
138174        (WebCore::CCRenderer::projectionMatrix):
138175        (WebCore::CCRenderer::windowMatrix):
138176        (WebCore::CCRenderer::sharedGeometryQuad):
138177        (WebCore):
138178        (LayerRendererChromium):
138179        * platform/graphics/chromium/LayerTextureSubImage.cpp:
138180        (WebCore::LayerTextureSubImage::upload):
138181        (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
138182        (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
138183        * platform/graphics/chromium/LayerTextureSubImage.h:
138184        (WebCore):
138185        (LayerTextureSubImage):
138186        * platform/graphics/chromium/LayerTextureUpdater.h:
138187        (WebCore):
138188        (Texture):
138189        * platform/graphics/chromium/ManagedTexture.cpp:
138190        (WebCore::ManagedTexture::bindTexture):
138191        (WebCore::ManagedTexture::framebufferTexture2D):
138192        * platform/graphics/chromium/ManagedTexture.h:
138193        (WebCore):
138194        (ManagedTexture):
138195        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
138196        * platform/graphics/chromium/TextureCopier.cpp:
138197        (WebCore::AcceleratedTextureCopier::copyTexture):
138198        * platform/graphics/chromium/TextureCopier.h:
138199        (TextureCopier):
138200        (AcceleratedTextureCopier):
138201        * platform/graphics/chromium/TextureUploader.h:
138202        (TextureUploader):
138203        * platform/graphics/chromium/ThrottledTextureUploader.cpp:
138204        (WebCore::ThrottledTextureUploader::uploadTexture):
138205        * platform/graphics/chromium/ThrottledTextureUploader.h:
138206        (ThrottledTextureUploader):
138207        * platform/graphics/chromium/cc/CCGraphicsContext.h: Copied from Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.h.
138208        (WebCore):
138209        (CCGraphicsContext):
138210        (WebCore::CCGraphicsContext::create2D):
138211        (WebCore::CCGraphicsContext::create3D):
138212        (WebCore::CCGraphicsContext::context3D):
138213        (WebCore::CCGraphicsContext::CCGraphicsContext):
138214        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
138215        (WebCore::CCHeadsUpDisplay::draw):
138216        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
138217        (WebCore::CCLayerImpl::willDraw):
138218        (WebCore::CCLayerImpl::bindContentsTexture):
138219        * platform/graphics/chromium/cc/CCLayerImpl.h:
138220        (WebCore):
138221        (CCLayerImpl):
138222        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
138223        (WebCore::CCLayerTreeHost::createContext):
138224        (WebCore::CCLayerTreeHost::context):
138225        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
138226        (CCLayerTreeHostClient):
138227        (WebCore::CCSettings::CCSettings):
138228        (CCSettings):
138229        (CCLayerTreeHost):
138230        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
138231        (WebCore::CCLayerTreeHostImpl::context):
138232        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
138233        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
138234        (CCLayerTreeHostImpl):
138235        (WebCore::CCLayerTreeHostImpl::layerRenderer):
138236        * platform/graphics/chromium/cc/CCProxy.h:
138237        (WebCore):
138238        (CCProxy):
138239        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
138240        (WebCore::CCScrollbarLayerImpl::willDraw):
138241        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
138242        (CCScrollbarLayerImpl):
138243        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
138244        (WebCore::CCSingleThreadProxy::context):
138245        (WebCore::CCSingleThreadProxy::initializeContext):
138246        (WebCore::CCSingleThreadProxy::recreateContext):
138247        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
138248        (CCSingleThreadProxy):
138249        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
138250        (WebCore::CCTextureUpdater::update):
138251        * platform/graphics/chromium/cc/CCTextureUpdater.h:
138252        (CCTextureUpdater):
138253        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
138254        (WebCore::CCThreadProxy::context):
138255        (WebCore::CCThreadProxy::initializeContext):
138256        (WebCore::CCThreadProxy::recreateContext):
138257        (WebCore::CCThreadProxy::beginFrame):
138258        (WebCore::CCThreadProxy::initializeContextOnImplThread):
138259        (WebCore::CCThreadProxy::recreateContextOnImplThread):
138260        * platform/graphics/chromium/cc/CCThreadProxy.h:
138261        (CCThreadProxy):
138262        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
138263        (WebCore::CCVideoLayerImpl::willDraw):
138264        (WebCore::CCVideoLayerImpl::willDrawInternal):
138265        (WebCore::CCVideoLayerImpl::reserveTextures):
138266        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
138267        (CCVideoLayerImpl):
138268
1382692012-06-01  Sheriff Bot  <webkit.review.bot@gmail.com>
138270
138271        Unreviewed, rolling out r119283, r119287, and r119291.
138272        http://trac.webkit.org/changeset/119283
138273        http://trac.webkit.org/changeset/119287
138274        http://trac.webkit.org/changeset/119291
138275        https://bugs.webkit.org/show_bug.cgi?id=88159
138276
138277        Not only broke compilation in the initial commit but also
138278        broke LayerChromiumTest.basicCreateAndDestroy (Requested by
138279        rniwa on #webkit).
138280
138281        * WebCore.gypi:
138282        * platform/graphics/chromium/AnimationTranslationUtil.cpp: Removed.
138283        * platform/graphics/chromium/AnimationTranslationUtil.h: Removed.
138284        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
138285        (WebCore::GraphicsLayerChromium::addAnimation):
138286        * platform/graphics/chromium/LayerChromium.cpp:
138287        (WebCore::LayerChromium::addAnimation):
138288        * platform/graphics/chromium/LayerChromium.h:
138289        (LayerChromium):
138290        * platform/graphics/chromium/LinkHighlight.cpp:
138291        (WebCore::LinkHighlight::LinkHighlight):
138292        * platform/graphics/chromium/cc/CCAnimationCurve.h:
138293        (CCTransformAnimationCurve):
138294        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
138295        (WebCore::CCTransformKeyframe::create):
138296        (WebCore::CCTransformKeyframe::CCTransformKeyframe):
138297        (WebCore::CCTransformKeyframe::value):
138298        (WebCore::CCTransformKeyframe::clone):
138299        (WebCore::CCKeyframedTransformAnimationCurve::getValue):
138300        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
138301        (CCTransformKeyframe):
138302        (CCKeyframedTransformAnimationCurve):
138303        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
138304        (WebCore::CCLayerAnimationController::addAnimation):
138305        (WebCore):
138306        (WebCore::CCLayerAnimationController::add):
138307        (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
138308        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
138309        (WebCore::CCLayerAnimationController::tickAnimations):
138310        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
138311        (CCLayerAnimationControllerClient):
138312        (CCLayerAnimationController):
138313        * platform/graphics/chromium/cc/CCLayerImpl.h:
138314
1383152012-06-01  Levi Weintraub  <leviw@chromium.org>
138316
138317        Large number constant in TransformationMatrix::projectPoint overflows FractionalLayoutUnits with sub-pixel layout enabled
138318        https://bugs.webkit.org/show_bug.cgi?id=87896
138319
138320        Reviewed by James Robinson.
138321
138322        kLargeNumber is meant to avoid overflowing when projecting a point through a transform. Unfortunately,
138323        due to FractionalLayoutUnit's diminished range compared to integers, we were overflowing anyways. This
138324        change adjusts our large number by the same value, but adjusted for our denominator.
138325
138326        This was originally missed because transforms/3d is marked as pass/fail in Chromium's test_expectations.txt
138327        https://bugs.webkit.org/show_bug.cgi?id=66989 tracks removing this problem.
138328
138329        No new tests. Covered by transforms/3d/hit-testing/perspective-clipped.html
138330
138331        * platform/graphics/transforms/TransformationMatrix.cpp:
138332        (WebCore::TransformationMatrix::projectPoint):
138333
1383342012-06-01  Tim Horton  <timothy_horton@apple.com>
138335
138336        Cleanup GeneratorGeneratedImage/Gradient changes from r117858
138337        https://bugs.webkit.org/show_bug.cgi?id=88063
138338
138339        Reviewed by Simon Fraser.
138340
138341        No new tests, code cleanup.
138342
138343        * platform/graphics/Generator.h:
138344        (WebCore::Generator::hash): hash() should be const.
138345        * platform/graphics/GeneratorGeneratedImage.cpp:
138346        (WebCore::GeneratorGeneratedImage::drawPattern): Minor cleanup.
138347        * platform/graphics/Gradient.cpp:
138348        (WebCore::Gradient::Gradient): Rename m_hashCache to m_cachedHash.
138349        (WebCore::Gradient::addColorStop): Rename clearHashCache to invalidateHash.
138350        (WebCore::Gradient::sortStopsIfNecessary): Rename clearHashCache to invalidateHash.
138351        (WebCore::Gradient::setSpreadMethod): Rename clearHashCache to invalidateHash.
138352        (WebCore::Gradient::setGradientSpaceTransform): Rename clearHashCache to invalidateHash.
138353        (WebCore::Gradient::hash): Use intHash instead of the pair hasher. Add compile time size checks
138354        for structures being passed to StringHasher.
138355        * platform/graphics/Gradient.h:
138356        (WebCore::Gradient::setP0): Rename clearHashCache to invalidateHash.
138357        (WebCore::Gradient::setP1): Rename clearHashCache to invalidateHash.
138358        (WebCore::Gradient::setStartRadius): Rename clearHashCache to invalidateHash.
138359        (WebCore::Gradient::setEndRadius): Rename clearHashCache to invalidateHash.
138360        (WebCore::Gradient::invalidateHash):  Rename clearHashCache to invalidateHash.
138361        * platform/graphics/GraphicsContext.cpp:
138362        (WebCore::scalesMatch): Added. Determine if the scale of two AffineTransforms match.
138363        (WebCore::GraphicsContext::isCompatibleWithBuffer): Make use of scalesMatch to simplify the logic.
138364
1383652012-06-01  Raymond Toy  <rtoy@google.com>
138366
138367        Remove RefInfo class
138368        https://bugs.webkit.org/show_bug.cgi?id=87904
138369
138370        Reviewed by Chris Rogers.
138371
138372        No new tests; covered by existing tests.
138373
138374        * Modules/webaudio/AudioBufferSourceNode.cpp:
138375        (WebCore::AudioBufferSourceNode::~AudioBufferSourceNode): Clear
138376        panner node.
138377        (WebCore::AudioBufferSourceNode::totalPitchRate):
138378        (WebCore::AudioBufferSourceNode::setPannerNode): Use
138379        RefTypeConnection counting for panner node.
138380        (WebCore):
138381        (WebCore::AudioBufferSourceNode::clearPannerNode): New function to
138382         clear panner node in AudioBufferSourceNode.
138383        (WebCore::AudioBufferSourceNode::finish): Clear panner node when done.
138384        * Modules/webaudio/AudioBufferSourceNode.h:
138385        (AudioBufferSourceNode): Add virtual finish(), m_pannerNode is not
138386        a RefPtr anymore.
138387        * Modules/webaudio/AudioContext.cpp:
138388        (WebCore::AudioContext::addDeferredFinishDeref): Remove unneeded RefTyp.
138389        (WebCore::AudioContext::handleDeferredFinishDerefs): Remove
138390        unneeded RefType.
138391        * Modules/webaudio/AudioContext.h:
138392        (AudioContext): Update addDeferredFinishDeref signature.
138393        * Modules/webaudio/AudioNode.cpp:
138394        (WebCore::AudioNode::deref): Update call to addDeferredFinishDeref. 
138395        * Modules/webaudio/AudioScheduledSourceNode.h:
138396        (AudioScheduledSourceNode): Make finish() virtual.
138397
1383982012-06-01  Tony Chang  <tony@chromium.org>
138399
138400        rename -webkit-flex-pack and -webkit-flex-line-pack to -webkit-justify-content and -webkit-align-content
138401        https://bugs.webkit.org/show_bug.cgi?id=88113
138402
138403        Reviewed by Ojan Vafai.
138404
138405        This recently changed in the spec:
138406        http://dev.w3.org/csswg/css3-flexbox/#justify-content-property
138407        http://dev.w3.org/csswg/css3-flexbox/#align-content-property
138408
138409        No new tests, updated existing tests.
138410
138411        * css/CSSComputedStyleDeclaration.cpp:
138412        (WebCore):
138413        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
138414        * css/CSSParser.cpp:
138415        (WebCore::isValidKeywordPropertyAndValue):
138416        (WebCore::isKeywordPropertyID):
138417        (WebCore::CSSParser::parseValue):
138418        * css/CSSPrimitiveValueMappings.h:
138419        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
138420        (WebCore::CSSPrimitiveValue::operator EJustifyContent):
138421        (WebCore::CSSPrimitiveValue::operator EAlignContent):
138422        * css/CSSProperty.cpp:
138423        (WebCore::CSSProperty::isInheritedProperty):
138424        * css/CSSPropertyNames.in:
138425        * css/StyleBuilder.cpp:
138426        (WebCore::StyleBuilder::StyleBuilder):
138427        * css/StyleResolver.cpp:
138428        (WebCore::StyleResolver::collectMatchingRulesForList):
138429        * rendering/RenderFlexibleBox.cpp:
138430        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
138431        (WebCore::initialJustifyContentOffset):
138432        (WebCore::justifyContentSpaceBetweenChildren):
138433        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
138434        (WebCore::RenderFlexibleBox::layoutColumnReverse):
138435        (WebCore::initialAlignContentOffset):
138436        (WebCore::alignContentSpaceBetweenChildren):
138437        (WebCore::RenderFlexibleBox::alignFlexLines):
138438        * rendering/RenderFlexibleBox.h:
138439        * rendering/style/RenderStyle.h:
138440        * rendering/style/RenderStyleConstants.h:
138441        * rendering/style/StyleFlexibleBoxData.cpp:
138442        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
138443        (WebCore::StyleFlexibleBoxData::operator==):
138444        * rendering/style/StyleFlexibleBoxData.h:
138445        (StyleFlexibleBoxData):
138446        * rendering/style/StyleRareNonInheritedData.cpp:
138447        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
138448        (WebCore::StyleRareNonInheritedData::operator==):
138449        * rendering/style/StyleRareNonInheritedData.h:
138450        (StyleRareNonInheritedData):
138451
1384522012-06-01  Adam Barth  <abarth@webkit.org>
138453
138454        Overflow scrolling doesn't need to create a stacking context is the overflow is hidden
138455        https://bugs.webkit.org/show_bug.cgi?id=88057
138456
138457        Reviewed by James Robinson.
138458
138459        This patch causes us to match the iOS implementation of this feature.
138460
138461        * css/StyleResolver.cpp:
138462        (WebCore::StyleResolver::collectMatchingRulesForList):
138463
1384642012-06-01  James Robinson  <jamesr@chromium.org>
138465
138466        [chromium] Unreviewed compile fix for r119283
138467
138468        For the record, Dana Jensens <danakj@chromium.org> wrote this slightly faster than I did.
138469
138470        * platform/graphics/chromium/LayerChromium.h:
138471        (WebCore::LayerChromium::bounds):
138472        * platform/graphics/chromium/cc/CCLayerImpl.h:
138473        (WebCore::CCLayerImpl::bounds):
138474
1384752012-06-01  Ian Vollick  <vollick@chromium.org>
138476
138477        [chromium] Accelerated animations should use WebTransformOperations
138478        https://bugs.webkit.org/show_bug.cgi?id=87686
138479
138480        Reviewed by James Robinson.
138481
138482        CCTransformKeyframe new owns a WebTransformOperations rather than a
138483        TransformOperations. LayerChromium's API has been changed so that
138484        LayerChromium::addAnimation should take only a CCActiveAnimation.
138485        GraphicsLayerChromium is new responsible for translating to
138486        WebTransformOperations and creating CCActiveAnimations. Tests that use
138487        the public API (that is, they call addAnimation with KeyframeValueList
138488        and Animation arguments) have been moved to GraphicsLayerChromiumTest.
138489
138490        Unit tests:
138491            GraphicsLayerChromiumTest.createOpacityAnimation
138492            GraphicsLayerChromiumTest.createTransformAnimation
138493            GraphicsLayerChromiumTest.createTransformAnimationWithBigRotation
138494            GraphicsLayerChromiumTest.createTransformAnimationWithSingularMatrix
138495            GraphicsLayerChromiumTest.createReversedAnimation
138496            GraphicsLayerChromiumTest.createAlternatingAnimation
138497            GraphicsLayerChromiumTest.createReversedAlternatingAnimation
138498
138499        * WebCore.gypi:
138500        * platform/graphics/chromium/AnimationTranslationUtil.cpp: Added.
138501        (WebCore):
138502        (WebCore::toWebTransformOperations):
138503        (WebCore::appendKeyframe):
138504        (WebCore::CCKeyframedTransformAnimationCurve):
138505        (WebCore::createActiveAnimation):
138506        * platform/graphics/chromium/AnimationTranslationUtil.h: Added.
138507        (WebCore):
138508        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
138509        (WebCore::GraphicsLayerChromium::addAnimation):
138510        * platform/graphics/chromium/LayerChromium.cpp:
138511        (WebCore::LayerChromium::addAnimation):
138512        * platform/graphics/chromium/LayerChromium.h:
138513        (WebCore):
138514        (LayerChromium):
138515        * platform/graphics/chromium/LinkHighlight.cpp:
138516        (WebCore::LinkHighlight::LinkHighlight):
138517        * platform/graphics/chromium/cc/CCAnimationCurve.h:
138518        (CCTransformAnimationCurve):
138519        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
138520        (WebCore::CCTransformKeyframe::create):
138521        (WebCore::CCTransformKeyframe::CCTransformKeyframe):
138522        (WebCore::CCTransformKeyframe::value):
138523        (WebCore::CCTransformKeyframe::clone):
138524        (WebCore::CCKeyframedTransformAnimationCurve::getValue):
138525        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
138526        (CCTransformKeyframe):
138527        (CCKeyframedTransformAnimationCurve):
138528        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
138529        (WebCore::CCLayerAnimationController::removeAnimation):
138530        (WebCore):
138531        (WebCore::CCLayerAnimationController::addAnimation):
138532        (WebCore::CCLayerAnimationController::getActiveAnimation):
138533        (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
138534        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
138535        (WebCore::CCLayerAnimationController::tickAnimations):
138536        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
138537        (CCLayerAnimationControllerClient):
138538        (CCLayerAnimationController):
138539
1385402012-06-01  Mihai Parparita  <mihaip@chromium.org>
138541
138542        Improve synchronous XHR disabling
138543        https://bugs.webkit.org/show_bug.cgi?id=88032
138544
138545        Reviewed by Alexey Proskuryakov.
138546
138547        * testing/InternalSettings.cpp:
138548        (WebCore::InternalSettings::setSyncXHRInDocumentsEnabled): Fix a
138549        copy-and-paste error
138550        * xml/XMLHttpRequest.cpp:
138551        (WebCore::XMLHttpRequest::open): Improves the disabled message, as
138552        suggested in a comment after r118599 was put in the commit queue.
138553
1385542012-06-01  Beth Dakin  <bdakin@apple.com>
138555
138556        https://bugs.webkit.org/show_bug.cgi?id=87774
138557        REGRESSION (r105515): reflection masks are truncated at zoom levels < 1
138558        -and corresponding-
138559        <rdar://problem/11387506>
138560
138561        Reviewed by Simon Fraser.
138562
138563        paintNinePieceImage() expects un-zoomed results from 
138564        calculateImageIntrinsicDimensions(). This was previously addressed by having 
138565        paintNinePieceImage() divide the effective zoom out of the result from 
138566        calculateImageIntrinsicDimensions(). However, that results in buggy behavior for 
138567        generated images and images with percentage sizes. In the end it seems best to 
138568        just send a parameter to calculateImageIntrinsicDimensions() indicating whether 
138569        the caller wants the result to be scaled by the effective zoom when appropriate.
138570
138571        * rendering/RenderBoxModelObject.cpp:
138572        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
138573        (WebCore::RenderBoxModelObject::calculateFillTileSize):
138574        (WebCore::RenderBoxModelObject::paintNinePieceImage):
138575        * rendering/RenderBoxModelObject.h:
138576        (RenderBoxModelObject):
138577
1385782012-06-01  Julien Chaffraix  <jchaffraix@webkit.org>
138579
138580        Prepare table collapsed border computation to support mixed directionality on row group
138581        https://bugs.webkit.org/show_bug.cgi?id=88110
138582
138583        Reviewed by Ojan Vafai.
138584
138585        No expected change in behavior.
138586
138587        One big issue with supporting mixed directionality inside a table is that the start / end
138588        borders don't align between table parts anymore: the start border of a ltr table will have
138589        to match the end border of a rtl row group for the purpose of collapsed border computation.
138590
138591        This change adds the concept of adjoining borders in the table direction so that we can safely
138592        hide which exact borders we pick up for the collapsed border computation.
138593
138594        * rendering/RenderTable.cpp:
138595        (WebCore::RenderTable::calcBorderStart):
138596        (WebCore::RenderTable::calcBorderEnd):
138597        Refactored those functions to use proper naming along with the new APIs. The name 'adjoining' is
138598        used extensively as we cannot make any assumptions on which borders we will get.
138599
138600        (WebCore::RenderTable::recalcBordersInRowDirection):
138601        Added a FIXME found during testing.
138602
138603        * rendering/RenderTableCell.h:
138604        (WebCore::RenderTableCell::borderAdjoiningTableStart):
138605        (WebCore::RenderTableCell::borderAdjoiningTableEnd):
138606        * rendering/RenderTableRow.h:
138607        (WebCore::RenderTableRow::borderAdjoiningTableStart):
138608        (WebCore::RenderTableRow::borderAdjoiningTableEnd):
138609        * rendering/RenderTableSection.h:
138610        (WebCore::RenderTableSection::borderAdjoiningTableStart):
138611        (WebCore::RenderTableSection::borderAdjoiningTableEnd):
138612        Those functions are the same at the moment to match the existing code. They
138613        will be changed to use the proper directionality in a follow up patch.
138614
138615        * rendering/RenderTableSection.cpp:
138616        (WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
138617        (WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
138618        Those functions return the cells that is adjoining a table edge. Due to us flipping
138619        the cells at layout to match the section's direction, those functions will need to
138620        account for mixed direction in determining the right cell to consider.
138621
1386222012-06-01  Shezan Baig  <shezbaig.wk@gmail.com>
138623
138624        Indenting a paragraph that begins with a link 3 times breaks the paragraph into two paragraphs
138625        https://bugs.webkit.org/show_bug.cgi?id=87428
138626
138627        Reviewed by Ryosuke Niwa.
138628
138629        Fix the way lastNode (our insertion point) is updated whenever
138630        traverseNextSibling moves up to a new parent, so that the relative
138631        depth between the next sibling and the original start node is
138632        maintained in the clone. The divergence in depth broke the paragraph
138633        into two paragraphs because the next sibling was inserted outside the
138634        blockquote that was created for the indentation.
138635
138636        Note that the topNode is not required anymore because it is no longer
138637        used anywhere.
138638
138639        Tests: editing/execCommand/indent-nested-inlines-1.html
138640               editing/execCommand/indent-nested-inlines-2.html
138641
138642        * editing/CompositeEditCommand.cpp:
138643        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
138644
1386452012-06-01  Joe Thomas  <joethomas@motorola.com>
138646
138647        getComputedStyle for background shorthand property does not return background-origin and background-clip.
138648        https://bugs.webkit.org/show_bug.cgi?id=86155
138649
138650        Reviewed by Tony Chang.
138651
138652        Added background-origin and background-clip CSS Property values to the background shorthand CSSValueList.
138653
138654        * css/CSSComputedStyleDeclaration.cpp:
138655        (WebCore::CSSComputedStyleDeclaration::getBackgroundShorthandValue):
138656
1386572012-06-01  Mark Pilgrim  <pilgrim@chromium.org>
138658
138659        [Chromium] Call clipboard methods directly
138660        https://bugs.webkit.org/show_bug.cgi?id=88038
138661
138662        Reviewed by Adam Barth.
138663
138664        Part of a refactoring series. See tracking bug 82948.
138665
138666        * WebCore.gypi:
138667        * platform/Pasteboard.h:
138668        (Pasteboard):
138669        * platform/chromium/ChromiumDataObject.cpp:
138670        (WebCore::ChromiumDataObject::createFromPasteboard):
138671        * platform/chromium/ChromiumDataObjectItem.cpp:
138672        (WebCore::ChromiumDataObjectItem::getAsFile):
138673        (WebCore::ChromiumDataObjectItem::internalGetAsString):
138674        * platform/chromium/ClipboardUtilitiesChromium.cpp:
138675        (WebCore::currentPasteboardBuffer):
138676        * platform/chromium/ClipboardUtilitiesChromium.h:
138677        (WebCore):
138678        * platform/chromium/PasteboardChromium.cpp:
138679        (WebCore::Pasteboard::writeSelection):
138680        (WebCore::Pasteboard::writePlainText):
138681        (WebCore::Pasteboard::writeURL):
138682        (WebCore::Pasteboard::writeImage):
138683        (WebCore::Pasteboard::writeClipboard):
138684        (WebCore::Pasteboard::canSmartReplace):
138685        (WebCore::Pasteboard::plainText):
138686        (WebCore::Pasteboard::documentFragment):
138687        * platform/chromium/PasteboardPrivate.h: Removed.
138688        * platform/chromium/PlatformSupport.h:
138689        (WebCore):
138690        (PlatformSupport):
138691
1386922012-06-01  Hugo Parente Lima  <hugo.lima@openbossa.org>
138693
138694        Improve handling of legacy viewport meta tags
138695        https://bugs.webkit.org/show_bug.cgi?id=55874
138696
138697        Reviewed by Adam Barth.
138698
138699        We now support MobileOptimized and HandheldFriendly as well.
138700
138701        We set width equal to device-width for HandheldFriendly and
138702        for MobileOptimized, the content value of MobileOptimized is
138703        ignored and the initial-scale set to 1 to fit Android behavior.
138704
138705        The prioritizing is done the same way as on Windows Phone 7:
138706
138707        XHTML Mobile Profile found
138708        HandheldFriendly
138709        MobileOptimized (overrides HandheldFriendly)
138710        Viewport (overrides all above)
138711
138712        Original patch by Kenneth Rohde Christiansen.
138713
138714        Tests: fast/viewport/viewport-legacy-handheldfriendly.html
138715               fast/viewport/viewport-legacy-mobileoptimized-2.html
138716               fast/viewport/viewport-legacy-mobileoptimized-3.html
138717               fast/viewport/viewport-legacy-mobileoptimized.html
138718               fast/viewport/viewport-legacy-ordering-1.html
138719               fast/viewport/viewport-legacy-ordering-2.html
138720               fast/viewport/viewport-legacy-ordering-3.html
138721               fast/viewport/viewport-legacy-ordering-4.html
138722               fast/viewport/viewport-legacy-ordering-5.html
138723               fast/viewport/viewport-legacy-ordering-6.html
138724               fast/viewport/viewport-legacy-ordering-7.html
138725               fast/viewport/viewport-legacy-ordering-8.html
138726               fast/viewport/viewport-legacy-ordering-9.html
138727
138728        * dom/Document.cpp:
138729        (WebCore::Document::setDocType):
138730        (WebCore::Document::processViewport): Add an origin parameter to
138731        tell what is changing the viewport.
138732        * dom/Document.h:
138733        (Document):
138734        * dom/ViewportArguments.h:
138735        * html/HTMLMetaElement.cpp:
138736        (WebCore::HTMLMetaElement::process):
138737
1387382012-06-01  Tony Chang  <tony@chromium.org>
138739
138740        rename -webkit-flex-order to -webkit-order
138741        https://bugs.webkit.org/show_bug.cgi?id=88104
138742
138743        Reviewed by Ojan Vafai.
138744
138745        This recently changed in the spec:
138746        http://dev.w3.org/csswg/css3-flexbox/#order-property
138747
138748        No new tests, just updated existing results.
138749
138750        * css/CSSComputedStyleDeclaration.cpp:
138751        (WebCore):
138752        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
138753        * css/CSSParser.cpp:
138754        (WebCore::CSSParser::parseValue):
138755        * css/CSSProperty.cpp:
138756        (WebCore::CSSProperty::isInheritedProperty):
138757        * css/CSSPropertyNames.in:
138758        * css/StyleBuilder.cpp:
138759        (WebCore::StyleBuilder::StyleBuilder):
138760        * css/StyleResolver.cpp:
138761        (WebCore::StyleResolver::collectMatchingRulesForList):
138762        * rendering/RenderFlexibleBox.cpp:
138763        (WebCore::RenderFlexibleBox::OrderIterator::OrderIterator):
138764        (WebCore::RenderFlexibleBox::OrderIterator::next):
138765        (WebCore::RenderFlexibleBox::layoutBlock):
138766        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
138767        (WebCore::RenderFlexibleBox::layoutFlexItems):
138768        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
138769        (WebCore::RenderFlexibleBox::computeNextFlexLine):
138770        (WebCore::RenderFlexibleBox::packFlexLines):
138771        (WebCore::RenderFlexibleBox::alignChildren):
138772        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
138773        (WebCore::RenderFlexibleBox::flipForWrapReverse):
138774        * rendering/RenderFlexibleBox.h:
138775        * rendering/style/RenderStyle.h:
138776        * rendering/style/StyleFlexibleBoxData.cpp:
138777        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
138778        (WebCore::StyleFlexibleBoxData::operator==):
138779        * rendering/style/StyleFlexibleBoxData.h:
138780        (StyleFlexibleBoxData):
138781        * rendering/style/StyleRareNonInheritedData.cpp:
138782        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
138783        (WebCore::StyleRareNonInheritedData::operator==):
138784        * rendering/style/StyleRareNonInheritedData.h:
138785        (StyleRareNonInheritedData):
138786
1387872012-06-01  Zeno Albisser  <zeno@webkit.org>
138788
138789        Unreviewed build fix after r119247.
138790
138791        Do not include TextureMapperGL.h when not building
138792        with GRAPHICS_SURFACE.
138793
138794        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
138795
1387962012-06-01  Mario Sanchez Prada  <msanchez@igalia.com>
138797
138798        [GTK] Add a new and reusable Geoclue-based geolocation provider in WebCore
138799        https://bugs.webkit.org/show_bug.cgi?id=87800
138800
138801        Reviewed by Carlos Garcia Campos.
138802
138803        Added new and reusable Geoclue-based geolocation provider to WebCore.
138804
138805        * GNUmakefile.am:
138806        * GNUmakefile.list.am:
138807        * platform/geoclue/GeolocationProviderGeoclue.cpp: Added.
138808        (getPositionCallback):
138809        (positionChangedCallback):
138810        (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
138811        (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
138812        (GeolocationProviderGeoclue::startUpdating):
138813        (GeolocationProviderGeoclue::stopUpdating):
138814        (GeolocationProviderGeoclue::setEnableHighAccuracy):
138815        (GeolocationProviderGeoclue::setGeoclueClient):
138816        (GeolocationProviderGeoclue::setGeocluePosition):
138817        (GeolocationProviderGeoclue::updateClientRequirements):
138818        (GeolocationProviderGeoclue::positionChanged):
138819        (GeolocationProviderGeoclue::errorOccured):
138820        * platform/geoclue/GeolocationProviderGeoclue.h: Added.
138821        (WebCore):
138822        (GeolocationProviderGeoclue):
138823        * platform/geoclue/GeolocationProviderGeoclueClient.h: Added.
138824        (WebCore):
138825        (GeolocationProviderGeoclueClient):
138826
1388272012-06-01  Thiago Marcos P. Santos  <thiago.santos@intel.com>
138828
138829        [Qt] Remove deprecated Q_GLOBAL_STATIC_WITH_INITIALIZER
138830        https://bugs.webkit.org/show_bug.cgi?id=88100
138831
138832        Reviewed by Tor Arne Vestbø.
138833
138834        It will be deprecated on Qt5.
138835
138836        * platform/text/qt/TextBreakIteratorInternalICUQt.cpp:
138837        (WebCore):
138838
1388392012-06-01  Zeno Albisser  <zeno@webkit.org>
138840
138841        Make TextureMapper work with GraphicsSurface.
138842        https://bugs.webkit.org/show_bug.cgi?id=87738
138843
138844        Add TextureMapperSurfaceBackingStore, a new backing store
138845        that allows to import textures from a GraphicsSurface.
138846        On Mac the GraphicsSurface is backed by an IOSurface
138847        which must be used with a GL_TEXTURE_RECTANGLE_ARB texture.
138848        Therefore it is also necessary to add new shader programs
138849        for directly painting these textures on screen.
138850
138851        Reviewed by Noam Rosenthal.
138852
138853        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
138854        Add a new TextureMapperBackingStore implementation that can directly
138855        reuse textures as they are being passed from the GraphicsSurface.
138856        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
138857        (WebCore::TextureMapperSurfaceBackingStore::texture):
138858        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
138859        * platform/graphics/texmap/TextureMapperBackingStore.h:
138860        (GraphicsSurfaceData):
138861        (WebCore::GraphicsSurfaceData::setSurface):
138862        (WebCore::GraphicsSurfaceData::GraphicsSurfaceData):
138863        (TextureMapperSurfaceBackingStore):
138864        (WebCore::TextureMapperSurfaceBackingStore::create):
138865        (WebCore::TextureMapperSurfaceBackingStore::~TextureMapperSurfaceBackingStore):
138866        (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
138867
138868        * platform/graphics/texmap/TextureMapperGL.cpp:
138869        Add a drawing function for textures of type GL_TEXTURE_RECTANGLE_ARB.
138870        (WebCore::TextureMapperGL::drawTextureRectangleARB):
138871        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
138872        (WebCore::TextureMapperShaderManager::getShaderProgram):
138873        (WebCore::TextureMapperShaderProgramSimple::create):
138874        (WebCore::TextureMapperShaderProgramSimple::initialize):
138875        (WebCore::TextureMapperShaderProgramSolidColor::create):
138876        (WebCore::TextureMapperShaderProgramSolidColor::initialize):
138877        (WebCore::TextureMapperShaderProgramRectSimple::create):
138878        (WebCore::TextureMapperShaderProgramRectSimple::fragmentShaderSource):
138879        (WebCore::TextureMapperShaderProgramOpacityAndMask::create):
138880        (WebCore::TextureMapperShaderProgramOpacityAndMask::initialize):
138881        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::create):
138882        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::fragmentShaderSource):
138883
138884        * platform/graphics/texmap/TextureMapperShaderManager.h:
138885        Add new shader programs that can be used with GL_TEXTURE_RECTANGLE_ARB textures.
138886        This is mainly necessary, because this type of texture uses non-normalized coordinates.
138887        Further move the calls to initializeProgram() from the constructor into a separate
138888        initialize() function, as initializeProgram() calls vertexShaderSource() (and friends)
138889        and we should not call virtual functions in the constructor.
138890        (WebCore::TextureMapperShaderProgram::initialize):
138891        (TextureMapperShaderProgramSimple):
138892        (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple):
138893        (TextureMapperShaderProgramRectSimple):
138894        (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
138895        (TextureMapperShaderProgramOpacityAndMask):
138896        (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
138897        (TextureMapperShaderProgramRectOpacityAndMask):
138898        (WebCore::TextureMapperShaderProgramRectOpacityAndMask::TextureMapperShaderProgramRectOpacityAndMask):
138899        (TextureMapperShaderProgramSolidColor):
138900        (WebCore::TextureMapperShaderProgramSolidColor::TextureMapperShaderProgramSolidColor):
138901
1389022012-06-01  Christophe Dumez  <christophe.dumez@intel.com>
138903
138904        [EFL] EFL port does not enable WEB_INTENTS_TAG flag
138905        https://bugs.webkit.org/show_bug.cgi?id=86866
138906
138907        Reviewed by Adam Barth.
138908
138909        Fix compilation error when WEB_INTENTS_TAG flag is enabled.
138910        HTMLElement::insertedInto() takes a ContainerNode* in argument, not a
138911        Node*.
138912
138913        Test: webintents/intent-tag.html
138914
138915        * CMakeLists.txt:
138916        * html/HTMLIntentElement.cpp:
138917        (WebCore::HTMLIntentElement::insertedInto):
138918        * html/HTMLIntentElement.h:
138919        (HTMLIntentElement):
138920
1389212012-06-01  Dominik Röttsches  <dominik.rottsches@intel.com>
138922
138923        [cairo] Pixel artifacts can be seen on reflections
138924        https://bugs.webkit.org/show_bug.cgi?id=85483
138925
138926        Antialiased clipping in the simple rectangular clip method
138927        leads to edge artifacts when transformations are applied to the layer.
138928        Explicitly disabling antialiased clipping for this function solves this issue.
138929        Comparing Cairo GraphicsContext to Qt and Skia GC, it seems that these
138930        backends do not expect the platform context to clip antialiased in this
138931        case either.
138932
138933        Reviewed by Martin Robinson.
138934
138935        No new tests, covered by fast/css/transformed-mask.html.
138936
138937        * platform/graphics/cairo/GraphicsContextCairo.cpp:
138938        (WebCore::GraphicsContext::clip):
138939
1389402012-06-01  Florin Malita  <fmalita@chromium.org>
138941
138942        http://shinydemos.com/clock/ doesn't seem to work
138943        https://bugs.webkit.org/show_bug.cgi?id=79682
138944
138945        Reviewed by Nikolas Zimmermann.
138946
138947        Test: svg/repaint/text-mask-update.svg
138948
138949        Currently, parent resources are not invalidated when SVGInlineText nodes
138950        are added or removed. Adjusting SVGResourcesCache::clientWasAddedToTree()
138951        and SVGResourcesCache::clientWillBeRemovedFromTree() to cover this case.
138952
138953        * rendering/svg/SVGResourcesCache.cpp:
138954        (WebCore::SVGResourcesCache::clientWasAddedToTree):
138955        (WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
138956
1389572012-06-01  John Mellor  <johnme@chromium.org>
138958
138959        Don't set scroll position twice in HistoryController::restoreScrollPositionAndViewState
138960        https://bugs.webkit.org/show_bug.cgi?id=88068
138961
138962        Reviewed by Adam Barth.
138963
138964        In the case where pageScaleFactor changes, we were calling
138965        setScrollPosition with an incorrect scroll position (i.e. a scroll
138966        position scaled by the pageScaleFactor we hadn't yet applied), then
138967        fixing it by setting the pageScaleFactor and scroll position together,
138968        overwriting the old scroll position. It's cleaner to just set the
138969        pageScaleFactor and scroll position together.
138970
138971        No new tests as this isn't expected to change the ultimate behavior, just clean up how it happens.
138972
138973        * loader/HistoryController.cpp:
138974        (WebCore::HistoryController::restoreScrollPositionAndViewState):
138975
1389762012-06-01  Thiago Marcos P. Santos  <thiago.santos@intel.com>
138977
138978        [Qt] Remove deprecated to/fromAscii()
138979        https://bugs.webkit.org/show_bug.cgi?id=88086
138980
138981        Reviewed by Simon Hausmann.
138982
138983        Replacing to/fromAscii with to/fromLatin1 since it
138984        is deprecated on Qt5.
138985
138986        * bridge/qt/qt_class.cpp:
138987        (JSC::Bindings::QtClass::fallbackObject):
138988        * platform/network/qt/ResourceRequestQt.cpp:
138989        (WebCore::ResourceRequest::toNetworkRequest):
138990
1389912012-06-01  Dan Bernstein  <mitz@apple.com>
138992
138993        Layout not updated after setting -webkit-line-clamp to none
138994        https://bugs.webkit.org/show_bug.cgi?id=88049
138995
138996        Reviewed by Abhishek Arya.
138997
138998        Test: fast/flexbox/line-clamp-removed-dynamically.html
138999
139000        * rendering/RenderDeprecatedFlexibleBox.cpp:
139001        (WebCore::RenderDeprecatedFlexibleBox::styleWillChange): Added. Calls clearLineClamp if
139002        line-clamp will change to none.
139003        (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp): Added. Marks possibly-clamped
139004        children for layout and clears truncation from blocks.
139005        * rendering/RenderDeprecatedFlexibleBox.h:
139006
1390072012-06-01  Sheriff Bot  <webkit.review.bot@gmail.com>
139008
139009        Unreviewed, rolling out r119213.
139010        http://trac.webkit.org/changeset/119213
139011        https://bugs.webkit.org/show_bug.cgi?id=88084
139012
139013        This patch broke two tests on all platform except Chromium.
139014        The authors are unavailable. (Requested by zherczeg on
139015        #webkit).
139016
139017        * css/StyleResolver.cpp:
139018        (WebCore::StyleResolver::collectMatchingRulesForList):
139019
1390202012-06-01  Sheriff Bot  <webkit.review.bot@gmail.com>
139021
139022        Unreviewed, rolling out r119219.
139023        http://trac.webkit.org/changeset/119219
139024        https://bugs.webkit.org/show_bug.cgi?id=88088
139025
139026        This patch broke two tests on GTK/Qt. The authors are
139027        unavailable. (Requested by kkristof on #webkit).
139028
139029        * loader/FrameLoader.cpp:
139030        (WebCore::FrameLoader::closeAndRemoveChild):
139031        (WebCore::FrameLoader::detachFromParent):
139032        * page/Frame.cpp:
139033        (WebCore::Frame::willDetachPage):
139034        * page/Frame.h:
139035        (Frame):
139036        (WebCore::Frame::detachFromPage):
139037        (WebCore):
139038        * page/Page.cpp:
139039        (WebCore::Page::~Page):
139040
1390412012-06-01  Alexei Filippov  <alexeif@chromium.org>
139042
139043        Web Inspector: Add Closure compiler annotations to WorkerConsole
139044        https://bugs.webkit.org/show_bug.cgi?id=88073
139045
139046        Reviewed by Yury Semikhatsky.
139047
139048        * inspector/front-end/HeapSnapshotWorker.js:
139049        (WebInspector.WorkerConsole.prototype.log):
139050        (WebInspector.WorkerConsole.prototype.error):
139051        (WebInspector.WorkerConsole.prototype.info):
139052
1390532012-06-01  MORITA Hajime  <morrita@google.com>
139054
139055        Frame::willDetachPage() shouldn't be called more than once.
139056        https://bugs.webkit.org/show_bug.cgi?id=88056
139057
139058        Reviewed by Ryosuke Niwa.
139059
139060        This change moved willDetachPage() to private and calls it from
139061        detachFromParent().  Also, it checks m_page and call
139062        willDetachPage() only once, if m_page is available.
139063
139064        No new tests. Covered by existing suites.
139065
139066        * loader/FrameLoader.cpp:
139067        (WebCore::FrameLoader::closeAndRemoveChild):
139068        (WebCore::FrameLoader::detachFromParent):
139069        * page/Frame.cpp:
139070        (WebCore::Frame::detachFromPage):
139071        (WebCore):
139072        (WebCore::Frame::willDetachPage):
139073        * page/Frame.h:
139074        (Frame):
139075        * page/Page.cpp:
139076        (WebCore::Page::~Page):
139077
1390782012-06-01  Pierre Rossi  <pierre.rossi@gmail.com>
139079
139080        [Qt] Support drawing a pattern with a translation.
139081        https://bugs.webkit.org/show_bug.cgi?id=87025
139082
139083        Drawing an SVG pattern that has its x or y attribute set
139084        works by setting a transform on the Pattern.
139085        We would ignore this by only taking into account the texture and
139086        target rect.
139087
139088        Reviewed by Kenneth Rohde Christiansen.
139089
139090        test: svg/W3C-SVG-1.1-SE/pservers-pattern-04-f.svg
139091
139092        * platform/graphics/qt/GraphicsContextQt.cpp:
139093        (WebCore::drawRepeatPattern): refactored to take into account the translation set on the brush.
139094        (WebCore::GraphicsContext::fillRect):
139095
1390962012-06-01  Yoshifumi Inoue  <yosin@chromium.org>
139097
139098        REGRESSION(r109729) [Form] Rendering of select/optgroup/option combination is too slow.
139099        https://bugs.webkit.org/show_bug.cgi?id=88059
139100
139101        Reviewed by Kent Tamura.
139102
139103        This patch changes to share RenderStyle object among the "option" 
139104        elements to improve rendering performance and reducing memory usage
139105        of RenderStyle.
139106
139107        No new tests. This patch doesn't change behavior but rendering performance.
139108
139109        * css/StyleResolver.cpp:
139110        (WebCore::StyleResolver::canShareStyleWithElement): Check attribute value
139111        mismatching for "option" element.
139112
1391132012-06-01  Alexander Pavlov  <apavlov@chromium.org>
139114
139115        Web Inspector: [REGRESSION] Bad layout of "Override device metrics" controls in the Settings dialog
139116        https://bugs.webkit.org/show_bug.cgi?id=88074
139117
139118        Reviewed by Yury Semikhatsky.
139119
139120        The "Override device metrics" controls are placed in a table, which gets too narrow. Give it a
139121        "white-space: nowrap" to avoid wrapping individual cells.
139122
139123        * inspector/front-end/SettingsScreen.js:
139124        (WebInspector.SettingsScreen.prototype._createDeviceMetricsElement):
139125        * inspector/front-end/elementsPanel.css:
139126        * inspector/front-end/inspector.css:
139127        (.nowrap):
139128
1391292012-06-01  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
139130
139131        [EFL] Implement PlatformStrategies
139132        https://bugs.webkit.org/show_bug.cgi?id=86946
139133
139134        Reviewed by Carlos Garcia Campos.
139135
139136        * PlatformEfl.cmake: Add PlatformStrategies.cpp file to the build system.
139137        Also, remove PluginDataEfl.cpp because the same functionality is now
139138        implemented in PlatformStrategiesEfl.cpp.
139139
1391402012-06-01  Adam Barth  <abarth@webkit.org>
139141
139142        ASSERT(m_fontSelector->document()) is bogus and should be removed
139143        https://bugs.webkit.org/show_bug.cgi?id=88053
139144
139145        Reviewed by Abhishek Arya.
139146
139147        This ASSERT was introduced in http://trac.webkit.org/changeset/97402
139148        together with a branch that handled the case of the ASSERT firing.
139149        This ASSERT fires when running tests on Android (which runs with
139150        ASSERTs enabled). The ASSERT appears to be bogus, so this patch removes
139151        it.
139152
139153        * css/CSSSegmentedFontFace.cpp:
139154        (WebCore::CSSSegmentedFontFace::getFontData):
139155
1391562012-06-01  Yoshifumi Inoue  <yosin@chromium.org>
139157
139158        [Platform][Decimal] UInt128::operator/= calls makeUInt128 with wrong argument order
139159        https://bugs.webkit.org/show_bug.cgi?id=88044
139160
139161        Reviewed by Kent Tamura.
139162
139163        This patch fixed wrong argument of makeUInt128 in UInt128::operator/= to get right
139164        result for decimal multiplication.
139165
139166        Test: WebKit/chromium/tests/DecimalTest.cpp: Add new a new test case.
139167
139168        * platform/Decimal.cpp:
139169        (WebCore::DecimalPrivate::UInt128::operator/=):
139170
1391712012-06-01  Adam Barth  <abarth@webkit.org>
139172
139173        sandbox directive in X-WebKit-CSP header unable to create a unique origin
139174        https://bugs.webkit.org/show_bug.cgi?id=88014
139175
139176        Reviewed by Ryosuke Niwa.
139177
139178        We process the HTTP headers for a response after we create a document
139179        object for the response. Previously, the SecurityOrigin of a document
139180        was determined when the document was created, which meant that the
139181        sandbox directive in CSP couldn't create a unique origin.
139182
139183        In this patch, we transition to a unique origin when we start enforcing
139184        the SandboxOrigin bit. This patch is more complicated than you might
139185        expect because we redundantly store the SecurityOrigin object in
139186        DOMWindow. Removing that redundant state is
139187        https://bugs.webkit.org/show_bug.cgi?id=75793.
139188
139189        The CSP sandbox directive is defined in
139190        http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-1.0-specification.html
139191        by reference to
139192        http://www.whatwg.org/specs/web-apps/current-work/#forced-sandboxing-flag-set.
139193        The relation between sandbox and unique origin arises from
139194        http://www.whatwg.org/specs/web-apps/current-work/#origin-0.
139195
139196        Test: http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control.html
139197              http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header.html
139198              http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control.html
139199              http/tests/security/contentSecurityPolicy/sandbox-in-http-header.html
139200
139201        * dom/Document.cpp:
139202        (WebCore::Document::didUpdateSecurityOrigin):
139203        (WebCore::Document::initContentSecurityPolicy):
139204        * dom/Document.h:
139205        (Document):
139206        * dom/SecurityContext.cpp:
139207        (WebCore::SecurityContext::enforceSandboxFlags):
139208        (WebCore):
139209        (WebCore::SecurityContext::didUpdateSecurityOrigin):
139210        * dom/SecurityContext.h:
139211        (SecurityContext):
139212
1392132012-05-31  Yury Semikhatsky  <yurys@chromium.org>
139214
139215        Web Inspector: expose MemoryCache statistics in the inspector protocol
139216        https://bugs.webkit.org/show_bug.cgi?id=87984
139217
139218        Reviewed by Pavel Feldman.
139219
139220        Added MemoryCache statistics to Memory.getProcessMemoryDistribution command
139221        result. Corresponding sector is added to the memory pie-chart.
139222
139223        * inspector/InspectorMemoryAgent.cpp:
139224        (MemoryBlockName):
139225        (WebCore):
139226        (WebCore::addMemoryBlockFor):
139227        (WebCore::memoryCacheInfo):
139228        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
139229        * inspector/front-end/NativeMemorySnapshotView.js:
139230        (WebInspector.MemoryBlockViewProperties._initialize):
139231
1392322012-05-31  Yury Semikhatsky  <yurys@chromium.org>
139233
139234        Web Inspector: add RenderArena sizes to the memory pie-chart
139235        https://bugs.webkit.org/show_bug.cgi?id=87971
139236
139237        Reviewed by Pavel Feldman.
139238
139239        Added allocated and used sizes of page render arenas to the memory
139240        report returned by the InspectorMemoryAgent. Total allocated size of
139241        the inspected page's render arenas will be displayed on the memory
139242        pie-chart.
139243
139244        * inspector/InspectorMemoryAgent.cpp:
139245        (MemoryBlockName):
139246        (WebCore):
139247        (WebCore::renderTreeInfo):
139248        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
139249        * inspector/front-end/NativeMemorySnapshotView.js:
139250        (WebInspector.MemoryBlockViewProperties._initialize):
139251
1392522012-05-30  Yury Semikhatsky  <yurys@chromium.org>
139253
139254        Web Inspector: change type of injected script id from long to int
139255        https://bugs.webkit.org/show_bug.cgi?id=87837
139256
139257        Reviewed by Pavel Feldman.
139258
139259        Changed injected script id type from long to int so that we don't
139260        lose precision when sending the id over the protocol.
139261
139262        * bindings/js/JSInjectedScriptManager.cpp:
139263        (WebCore::InjectedScriptManager::createInjectedScript):
139264        (WebCore::InjectedScriptManager::injectedScriptFor):
139265        * bindings/v8/custom/V8InjectedScriptManager.cpp:
139266        (WebCore::InjectedScriptManager::createInjectedScript):
139267        (WebCore::InjectedScriptManager::injectedScriptFor):
139268        * inspector/InjectedScriptManager.cpp:
139269        (WebCore::InjectedScriptManager::injectedScriptForId):
139270        (WebCore::InjectedScriptManager::injectedScriptIdFor):
139271        (WebCore::InjectedScriptManager::injectScript):
139272        * inspector/InjectedScriptManager.h:
139273        (InjectedScriptManager):
139274        * inspector/PageRuntimeAgent.cpp:
139275        (WebCore::PageRuntimeAgent::notifyContextCreated):
139276
1392772012-05-29  Yury Semikhatsky  <yurys@chromium.org>
139278
139279        Web Inspector: draw pie-chart based on memory data received from backend
139280        https://bugs.webkit.org/show_bug.cgi?id=87737
139281
139282        Reviewed by Pavel Feldman.
139283
139284        Added pie chart for memory data received from inspector memory agent.
139285
139286        * WebCore.gypi:
139287        * WebCore.vcproj/WebCore.vcproj:
139288        * inspector/front-end/NativeMemorySnapshotView.js:
139289        (WebInspector.NativeMemorySnapshotView):
139290        (WebInspector.NativeMemoryProfileType):
139291        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
139292        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
139293        (WebInspector.NativeMemoryProfileHeader):
139294        (WebInspector.MemoryBlockViewProperties):
139295        (WebInspector.MemoryBlockViewProperties._initialize):
139296        (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
139297        (WebInspector.NativeMemoryPieChart):
139298        (WebInspector.NativeMemoryPieChart.prototype.onResize):
139299        (WebInspector.NativeMemoryPieChart.prototype._updateSize):
139300        (WebInspector.NativeMemoryPieChart.prototype._addBlockLabels):
139301        (WebInspector.NativeMemoryPieChart.prototype._paint.paintPercentAndLabel):
139302        (WebInspector.NativeMemoryPieChart.prototype._paint):
139303        (WebInspector.NativeMemoryPieChart.prototype._clear):
139304        * inspector/front-end/WebKit.qrc:
139305        * inspector/front-end/nativeMemoryProfiler.css: Added.
139306        (.memory-pie-chart-container):
139307        (.memory-pie-chart):
139308        (.memory-blocks-list .swatch):
139309        (.memory-blocks-list):
139310        (.memory-blocks-list .item):
139311
1393122012-05-31  Dominic Cooney  <dominicc@chromium.org>
139313
139314        [V8] Expando properties on attribute nodes disappear
139315        https://bugs.webkit.org/show_bug.cgi?id=87925
139316
139317        Reviewed by Adam Barth.
139318
139319        Test: fast/dom/gc-attribute-node.html
139320
139321        * bindings/v8/V8GCController.cpp:
139322        (WebCore::calculateGroupId): Group attributes like other nodes.
139323
1393242012-05-31  Alexander Shalamov  <alexander.shalamov@intel.com>
139325
139326        [EFL] <input type="number"> is not a spinbutton
139327        https://bugs.webkit.org/show_bug.cgi?id=86846
139328
139329        Reviewed by Kenneth Rohde Christiansen.
139330
139331        Implemented adjustInnerSpinButtonStyle and
139332        paintInnerSpinButton in RenderThemeEfl.
139333
139334        * platform/efl/RenderThemeEfl.cpp:
139335        (WebCore::RenderThemeEfl::applyEdjeStateFromForm):
139336        (WebCore::RenderThemeEfl::edjeGroupFromFormType):
139337        (WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
139338        (WebCore):
139339        (WebCore::RenderThemeEfl::paintInnerSpinButton):
139340        * platform/efl/RenderThemeEfl.h:
139341        (RenderThemeEfl):
139342
1393432012-05-31  Hajime Morrita  <morrita@chromium.org>
139344
139345        REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac
139346        https://bugs.webkit.org/show_bug.cgi?id=86859
139347
139348        Reviewed by Ryosuke Niwa.
139349
139350        The test tries to reach an invalid SpellChecker object. Such an access should be guarded
139351        beforehand.
139352
139353        Asynchronous spellchecking can return results after originated
139354        frame is gone, which triggered an invalid access to the dead spellchecker
139355        object. This chagne prevents it by marking request objects from
139356        the spellchecker as invalid:
139357
139358        - Originally TextCheckerClient API was passed a SpellCheker object.
139359          This change abstracted it behind TextCheckingRequest interface,
139360          didSucceed() and didCancel() method specifically.
139361        - TextCheckingRequest was turned from a plain old object into
139362          a refcounted abstract class, which is now subclassed by SpellCheckRequest.
139363        - SpellChecker now marks pending SpellCheckRequest objects as invalid
139364          on its destructor.
139365
139366        Test: editing/spelling/spellcheck-async-remove-frame.html
139367
139368        * WebCore.exp.in:
139369        * editing/SpellChecker.cpp:
139370        (WebCore::SpellCheckRequest::SpellCheckRequest):
139371        (WebCore::SpellCheckRequest::create):
139372        (WebCore::SpellCheckRequest::didSucceed):
139373        (WebCore):
139374        (WebCore::SpellCheckRequest::didCancel):
139375        (WebCore::SpellCheckRequest::wasRequestedBy):
139376        (WebCore::SpellCheckRequest::requesterDestroyed):
139377        (WebCore::SpellChecker::~SpellChecker):
139378        (WebCore::SpellChecker::requestCheckingFor):
139379        (WebCore::SpellChecker::invokeRequest):
139380        (WebCore::SpellChecker::didCheckSucceed):
139381        (WebCore::SpellChecker::didCheckCancel):
139382        * editing/SpellChecker.h:
139383        (WebCore):
139384        (SpellCheckRequest):
139385        (WebCore::SpellCheckRequest::isStarted):
139386        (SpellChecker):
139387        * loader/EmptyClients.h:
139388        (WebCore::EmptyTextCheckerClient::requestCheckingOfString):
139389        * platform/text/TextCheckerClient.h:
139390        (TextCheckerClient):
139391        * platform/text/TextChecking.h:
139392        (GrammarDetail):
139393        (TextCheckingResult):
139394        (TextCheckingRequest):
139395        (WebCore::TextCheckingRequest::~TextCheckingRequest):
139396
1393972012-05-31  Tony Chang  <tony@chromium.org>
139398
139399        initial flex value should be 1 1 auto
139400        https://bugs.webkit.org/show_bug.cgi?id=86526
139401
139402        Reviewed by Ojan Vafai.
139403
139404        Also, if -webkit-flex is used to set the positive flex to 0 and
139405        the negative flex is omitted, the negative flex is set to 0.
139406
139407        New test cases in: flex-property-parsing.html
139408
139409        * css/CSSParser.cpp:
139410        (WebCore::CSSParser::parseFlex):
139411        * css/StyleBuilder.cpp:
139412        (WebCore::ApplyPropertyFlex::applyValue):
139413        * rendering/style/RenderStyle.h:
139414
1394152012-05-31  Sheriff Bot  <webkit.review.bot@gmail.com>
139416
139417        Unreviewed, rolling out r119146.
139418        http://trac.webkit.org/changeset/119146
139419        https://bugs.webkit.org/show_bug.cgi?id=88035
139420
139421        android breakage fixed in http://crrev.com/139945 (Requested
139422        by fischman on #webkit).
139423
139424        * html/HTMLMediaElement.cpp:
139425        (WebCore::HTMLMediaElement::HTMLMediaElement):
139426        (WebCore::HTMLMediaElement::startProgressEventTimer):
139427        (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
139428        (WebCore::HTMLMediaElement::progressEventTimerFired):
139429        (WebCore::HTMLMediaElement::startPlaybackProgressTimer):
139430        * platform/graphics/MediaPlayer.cpp:
139431        (WebCore::NullMediaPlayerPrivate::didLoadingProgress):
139432        (WebCore::MediaPlayer::didLoadingProgress):
139433        * platform/graphics/MediaPlayer.h:
139434        * platform/graphics/MediaPlayerPrivate.h:
139435        (MediaPlayerPrivateInterface):
139436        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
139437        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
139438        (WebCore::MediaPlayerPrivateAVFoundation::didLoadingProgress):
139439        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
139440        (MediaPlayerPrivateAVFoundation):
139441        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
139442        (WebCore::MediaPlayerPrivate::didLoadingProgress):
139443        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
139444        (MediaPlayerPrivate):
139445        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
139446        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
139447        (WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
139448        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
139449        (MediaPlayerPrivateGStreamer):
139450        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
139451        (MediaPlayerPrivateQTKit):
139452        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
139453        (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
139454        (WebCore::MediaPlayerPrivateQTKit::didLoadingProgress):
139455        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
139456        (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
139457        (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
139458        * platform/graphics/qt/MediaPlayerPrivateQt.h:
139459        (MediaPlayerPrivateQt):
139460        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
139461        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::MediaPlayerPrivateQuickTimeVisualContext):
139462        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::didLoadingProgress):
139463        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
139464        (MediaPlayerPrivateQuickTimeVisualContext):
139465        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
139466        (MediaPlayerPrivate):
139467
1394682012-05-31  Tom Sepez  <tsepez@chromium.org>
139469
139470        XSSAuditor bypass with leading /*///*/ comment
139471        https://bugs.webkit.org/show_bug.cgi?id=88002
139472
139473        Reviewed by Adam Barth.
139474
139475        Fixes issue in xssauditor's parsing of /*/.
139476
139477        Test: http/tests/security/xssAuditor/script-tag-with-trailing-comment4.html
139478
139479        * html/parser/XSSAuditor.cpp:
139480        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
139481
1394822012-05-31  Hans Muller  <hmuller@adobe.com>
139483
139484        Bug: Negative SVG rect rx,ry corner radii values aren't handled correctly
139485        https://bugs.webkit.org/show_bug.cgi?id=87859
139486
139487        Reviewed by Dirk Schulze.
139488
139489        Added the rect element corner radius constraints specified in steps 2-4 of 
139490        http://www.w3.org/TR/SVG/shapes.html#RectElement to Path::addRoundedRect().  
139491        Support for steps 6 and 7 was already included.  Steps 2-4:
139492
139493        2 - If neither rx nor ry are properly specified, then set both rx and ry to 0. (This will result in square corners.)
139494        3 - Otherwise, if a properly specified value is provided for rx, but not for ry then set both rx and ry to the value of rx.
139495        4 - Otherwise, if a properly specified value is provided for ry, but not for rx, then set both rx and ry to the value of ry.
139496
139497        Tests: svg/custom/rect-negative-corner-radii-expected.svg
139498               svg/custom/rect-negative-corner-radii.svg
139499
139500        * platform/graphics/Path.cpp:
139501        (WebCore::Path::addRoundedRect):
139502
1395032012-05-31  Shawn Singh  <shawnsingh@chromium.org>
139504
139505        [chromium] Migrate to WebTransformationMatrix
139506        https://bugs.webkit.org/show_bug.cgi?id=87788
139507
139508        Reviewed by James Robinson.
139509
139510        Covered by all existing layout tests and unit tests.
139511
139512        This patch replaces all occurrences of WebCore::TransformationMatrix
139513        with WebKit::WebTransformationMatrix in the chromium compositor code.
139514
139515        * platform/chromium/support/WebTransformationMatrix.cpp:
139516        (WebKit::WebTransformationMatrix::WebTransformationMatrix):
139517        (WebKit):
139518        * platform/graphics/chromium/LayerChromium.cpp:
139519        (WebCore::LayerChromium::setSublayerTransform):
139520        (WebCore::LayerChromium::setTransform):
139521        (WebCore::LayerChromium::setTransformFromAnimation):
139522        * platform/graphics/chromium/LayerChromium.h:
139523        (LayerChromium):
139524        (WebCore::LayerChromium::sublayerTransform):
139525        (WebCore::LayerChromium::drawTransform):
139526        (WebCore::LayerChromium::setDrawTransform):
139527        (WebCore::LayerChromium::screenSpaceTransform):
139528        (WebCore::LayerChromium::setScreenSpaceTransform):
139529        * platform/graphics/chromium/LayerRendererChromium.cpp:
139530        (WebCore::LayerRendererChromium::drawCheckerboardQuad):
139531        (WebCore::LayerRendererChromium::drawDebugBorderQuad):
139532        (WebCore::LayerRendererChromium::drawBackgroundFilters):
139533        (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
139534        (WebCore::LayerRendererChromium::drawSolidColorQuad):
139535        (WebCore::LayerRendererChromium::drawTileQuad):
139536        (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
139537        (WebCore::LayerRendererChromium::toGLMatrix):
139538        (WebCore::LayerRendererChromium::drawTexturedQuad):
139539        (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
139540        * platform/graphics/chromium/LayerRendererChromium.h:
139541        (WebCore::LayerRendererChromium::projectionMatrix):
139542        (WebCore::LayerRendererChromium::windowMatrix):
139543        (LayerRendererChromium):
139544        * platform/graphics/chromium/LinkHighlight.cpp:
139545        (WebCore::LinkHighlight::LinkHighlight):
139546        * platform/graphics/chromium/RenderSurfaceChromium.h:
139547        (WebCore::RenderSurfaceChromium::drawTransform):
139548        (WebCore::RenderSurfaceChromium::setDrawTransform):
139549        (WebCore::RenderSurfaceChromium::originTransform):
139550        (WebCore::RenderSurfaceChromium::setOriginTransform):
139551        (WebCore::RenderSurfaceChromium::screenSpaceTransform):
139552        (WebCore::RenderSurfaceChromium::setScreenSpaceTransform):
139553        (WebCore::RenderSurfaceChromium::replicaDrawTransform):
139554        (WebCore::RenderSurfaceChromium::setReplicaDrawTransform):
139555        (WebCore::RenderSurfaceChromium::replicaOriginTransform):
139556        (WebCore::RenderSurfaceChromium::setReplicaOriginTransform):
139557        (WebCore::RenderSurfaceChromium::replicaScreenSpaceTransform):
139558        (WebCore::RenderSurfaceChromium::setReplicaScreenSpaceTransform):
139559        (RenderSurfaceChromium):
139560        * platform/graphics/chromium/TiledLayerChromium.cpp:
139561        (WebCore::TiledLayerChromium::updateTiles):
139562        * platform/graphics/chromium/cc/CCAnimationCurve.h:
139563        (WebCore):
139564        (CCTransformAnimationCurve):
139565        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
139566        (WebCore::CCDamageTracker::extendDamageForLayer):
139567        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
139568        * platform/graphics/chromium/cc/CCDrawQuad.h:
139569        (WebCore::CCDrawQuad::quadTransform):
139570        (WebCore::CCDrawQuad::layerTransform):
139571        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
139572        (WebCore::CCTransformKeyframe::clone):
139573        (WebCore::CCKeyframedTransformAnimationCurve::getValue):
139574        * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
139575        (CCKeyframedTransformAnimationCurve):
139576        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
139577        (WebCore::CCLayerAnimationController::tickAnimations):
139578        * platform/graphics/chromium/cc/CCLayerAnimationController.h:
139579        (WebKit):
139580        (WebCore):
139581        (CCLayerAnimationControllerClient):
139582        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
139583        (WebCore::CCLayerImpl::quadTransform):
139584        (WebCore::CCLayerImpl::setTransformFromAnimation):
139585        (WebCore::CCLayerImpl::setSublayerTransform):
139586        (WebCore::CCLayerImpl::setTransform):
139587        * platform/graphics/chromium/cc/CCLayerImpl.h:
139588        (CCLayerImpl):
139589        (WebCore::CCLayerImpl::sublayerTransform):
139590        (WebCore::CCLayerImpl::drawTransform):
139591        (WebCore::CCLayerImpl::setDrawTransform):
139592        (WebCore::CCLayerImpl::screenSpaceTransform):
139593        (WebCore::CCLayerImpl::setScreenSpaceTransform):
139594        * platform/graphics/chromium/cc/CCLayerSorter.cpp:
139595        (WebCore::CCLayerSorter::LayerShape::LayerShape):
139596        (WebCore::CCLayerSorter::createGraphNodes):
139597        * platform/graphics/chromium/cc/CCLayerSorter.h:
139598        (WebKit):
139599        (LayerShape):
139600        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
139601        (WebCore::CCLayerTreeHost::updateLayers):
139602        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
139603        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
139604        (WebCore::CCLayerTreeHostCommon::calculateVisibleRect):
139605        (WebCore::isSurfaceBackFaceVisible):
139606        (WebCore::calculateVisibleLayerRect):
139607        (WebCore::isScaleOrTranslation):
139608        (WebCore::calculateDrawTransformsAndVisibilityInternal):
139609        (WebCore::CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility):
139610        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
139611        (CCLayerTreeHostCommon):
139612        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
139613        (WebCore::damageInSurfaceSpace):
139614        (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
139615        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
139616        (WebCore):
139617        * platform/graphics/chromium/cc/CCMathUtil.cpp:
139618        (WebCore::projectPoint):
139619        (WebCore::mapPoint):
139620        (WebCore::CCMathUtil::mapClippedRect):
139621        (WebCore::CCMathUtil::projectClippedRect):
139622        (WebCore::CCMathUtil::mapClippedQuad):
139623        (WebCore::CCMathUtil::mapQuad):
139624        (WebCore::CCMathUtil::projectQuad):
139625        * platform/graphics/chromium/cc/CCMathUtil.h:
139626        (WebKit):
139627        (WebCore):
139628        (CCMathUtil):
139629        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
139630        (WebCore::transformSurfaceOpaqueRegion):
139631        (WebCore::reduceOcclusionBelowSurface):
139632        (WebCore::contentToScreenSpaceTransform):
139633        (WebCore::contentToTargetSurfaceTransform):
139634        (WebCore::addOcclusionBehindLayer):
139635        (WebCore::::markOccludedBehindLayer):
139636        (WebCore::testContentRectOccluded):
139637        (WebCore::computeUnoccludedContentRect):
139638        (WebCore::::unoccludedContributingSurfaceContentRect):
139639        * platform/graphics/chromium/cc/CCOcclusionTracker.h:
139640        * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
139641        (WebCore::CCOverdrawMetrics::didUpload):
139642        (WebCore::CCOverdrawMetrics::didCullForDrawing):
139643        (WebCore::CCOverdrawMetrics::didDraw):
139644        * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
139645        (WebKit):
139646        (CCOverdrawMetrics):
139647        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
139648        * platform/graphics/chromium/cc/CCRenderPass.cpp:
139649        (WebCore::CCRenderPass::appendQuadsToFillScreen):
139650        * platform/graphics/chromium/cc/CCRenderSurface.h:
139651        (WebCore::CCRenderSurface::setDrawTransform):
139652        (WebCore::CCRenderSurface::drawTransform):
139653        (WebCore::CCRenderSurface::setOriginTransform):
139654        (WebCore::CCRenderSurface::originTransform):
139655        (WebCore::CCRenderSurface::setScreenSpaceTransform):
139656        (WebCore::CCRenderSurface::screenSpaceTransform):
139657        (WebCore::CCRenderSurface::setReplicaDrawTransform):
139658        (WebCore::CCRenderSurface::replicaDrawTransform):
139659        (WebCore::CCRenderSurface::setReplicaOriginTransform):
139660        (WebCore::CCRenderSurface::replicaOriginTransform):
139661        (WebCore::CCRenderSurface::setReplicaScreenSpaceTransform):
139662        (WebCore::CCRenderSurface::replicaScreenSpaceTransform):
139663        (CCRenderSurface):
139664        * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
139665        (WebCore::CCSharedQuadState::create):
139666        (WebCore::CCSharedQuadState::CCSharedQuadState):
139667        * platform/graphics/chromium/cc/CCSharedQuadState.h:
139668        (CCSharedQuadState):
139669        (WebCore::CCSharedQuadState::quadTransform):
139670        (WebCore::CCSharedQuadState::layerTransform):
139671        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
139672        (WebCore::CCSolidColorLayerImpl::quadTransform):
139673        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
139674        (CCSolidColorLayerImpl):
139675        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
139676        (WebCore::CCTiledLayerImpl::quadTransform):
139677        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
139678        (CCTiledLayerImpl):
139679
1396802012-05-31  Ian Vollick  <vollick@chromium.org>
139681
139682        [chromium] Single thread proxy should not tick animations unless the layer renderer has been initialized
139683        https://bugs.webkit.org/show_bug.cgi?id=87873
139684
139685        Reviewed by James Robinson.
139686
139687        When the layer renderer fails to initialize, be sure to stop the animation timer.
139688
139689        Unit test: CCLayerTreeHostTestInitializeLayerRendererFailsAfterAddAnimation.runSingleThread
139690
139691        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
139692        (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
139693        (WebCore::CCSingleThreadProxy::didAddAnimation):
139694        (WebCore::CCSingleThreadProxy::animationTimerDelay):
139695        (WebCore):
139696        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
139697
1396982012-05-31  Simon Fraser  <simon.fraser@apple.com>
139699
139700        RenderLayerCompositor cleanup: make RenderGeometryMap part of the OverlapMap
139701        https://bugs.webkit.org/show_bug.cgi?id=88021
139702
139703        Reviewed by James Robinson.
139704        
139705        We only ever use the RenderGeometryMap when we have an OverlapMap, so make
139706        it a member of the OverlapMap.
139707
139708        No behavior change.
139709
139710        * rendering/RenderLayerCompositor.cpp:
139711        (RenderLayerCompositor::OverlapMap):
139712        (WebCore::RenderLayerCompositor::OverlapMap::geometryMap):
139713        (WebCore::RenderLayerCompositor::updateCompositingLayers):
139714        (WebCore::RenderLayerCompositor::addToOverlapMap):
139715        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
139716        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
139717        * rendering/RenderLayerCompositor.h:
139718        (WebCore):
139719        (RenderLayerCompositor):
139720
1397212012-05-31  Kentaro Hara  <haraken@chromium.org>
139722
139723        [V8] Pass Isolate to v8Boolean()
139724        https://bugs.webkit.org/show_bug.cgi?id=87948
139725
139726        Reviewed by Adam Barth.
139727
139728        The objective is to pass Isolate around in V8 bindings.
139729        This patch passes Isolate to v8Boolean().
139730
139731        No tests. No change in behavior.
139732
139733        * bindings/v8/SerializedScriptValue.cpp:
139734        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
139735        (WebCore::V8DOMStringMap::namedPropertyDeleter):
139736        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
139737        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallback):
139738        * bindings/v8/custom/V8StorageCustom.cpp:
139739        (WebCore::storageDeleter):
139740        * bindings/v8/custom/V8WebSocketCustom.cpp:
139741        (WebCore::V8WebSocket::sendCallback):
139742
1397432012-05-31  Alec Flett  <alecflett@chromium.org>
139744
139745        IndexedDB: Implement IDBTransaction.error and IDBRequest.error
139746        https://bugs.webkit.org/show_bug.cgi?id=87865
139747
139748        Reviewed by Tony Chang.
139749
139750        Added "error" attribute to IDBRequest and IDBTransaction. Update
139751        IDBDatabaseError to honor the IDBDatabaseException behavior
139752        of dealing with IDB-specific throws of DOMException codes,
139753        as per the spec.
139754
139755        Existing tests which previously tested 'errorCode' and
139756        'webkitErrorMessage' have been updated to use the new attribute.
139757
139758        * Modules/indexeddb/IDBCursor.cpp:
139759        (WebCore::IDBCursor::advance):
139760        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
139761        (WebCore::IDBDatabaseBackendImpl::setVersion):
139762        * Modules/indexeddb/IDBDatabaseError.h:
139763        (WebCore::IDBDatabaseError::create):
139764        (WebCore::IDBDatabaseError::code):
139765        (WebCore::IDBDatabaseError::idbCode):
139766        (WebCore::IDBDatabaseError::name):
139767        (WebCore::IDBDatabaseError::IDBDatabaseError):
139768        (IDBDatabaseError):
139769        * Modules/indexeddb/IDBDatabaseException.cpp:
139770        (WebCore):
139771        (WebCore::getErrorEntry):
139772        (WebCore::IDBDatabaseException::initializeDescription):
139773        (WebCore::IDBDatabaseException::getErrorName):
139774        (WebCore::IDBDatabaseException::getLegacyErrorCode):
139775        * Modules/indexeddb/IDBDatabaseException.h:
139776        (IDBDatabaseException):
139777        * Modules/indexeddb/IDBObjectStore.cpp:
139778        (WebCore::IDBObjectStore::createIndex):
139779        * Modules/indexeddb/IDBRequest.cpp:
139780        (WebCore::IDBRequest::error):
139781        (WebCore):
139782        (WebCore::IDBRequest::resetReadyState):
139783        (WebCore::IDBRequest::abort):
139784        (WebCore::IDBRequest::onError):
139785        (WebCore::IDBRequest::onSuccess):
139786        (WebCore::IDBRequest::onSuccessWithContinuation):
139787        (WebCore::IDBRequest::dispatchEvent):
139788        * Modules/indexeddb/IDBRequest.h:
139789        (IDBRequest):
139790        * Modules/indexeddb/IDBRequest.idl:
139791        * Modules/indexeddb/IDBTransaction.cpp:
139792        (WebCore::IDBTransaction::error):
139793        (WebCore):
139794        (WebCore::IDBTransaction::setError):
139795        * Modules/indexeddb/IDBTransaction.h:
139796        (IDBTransaction):
139797        * Modules/indexeddb/IDBTransaction.idl:
139798
1397992012-05-31  James Robinson  <jamesr@chromium.org>
139800
139801        [chromium] Assertion failures during compositor startup in lost context situations
139802        https://bugs.webkit.org/show_bug.cgi?id=87912
139803
139804        Reviewed by Adrienne Walker.
139805
139806        getShaderiv and getProgramiv may return 0 if the context is lost. We correctly recover in this case, so it's
139807        bogus to fail an ASSERT in debug in this case.
139808
139809        Added new unit test in LayerRendererChromiumTest to cover this.
139810
139811        * platform/graphics/chromium/ProgramBinding.cpp:
139812        (WebCore::contextLost):
139813        (WebCore):
139814        (WebCore::ProgramBindingBase::init):
139815        (WebCore::ProgramBindingBase::createShaderProgram):
139816
1398172012-05-31  Ben Murdoch  <benm@google.com>
139818
139819        Fix crash in V8Document::createTouchListCallback.
139820        https://bugs.webkit.org/show_bug.cgi?id=87085
139821
139822        Reviewed by Abhishek Arya.
139823
139824        Test: fast/events/touch/document-create-touch-list-crash.html
139825
139826        * bindings/v8/custom/V8DocumentCustom.cpp:
139827        (WebCore::V8Document::createTouchListCallback): Verify the native type
139828        of the arguments passed to createTouchList are Touches before appending
139829        them to the TouchList. In the case of a non-Touch argument, insert
139830        null into the TouchList. This consolidates V8 and JSC bindings
139831        behaviour.
139832        * dom/Document.cpp: Remove dead code.
139833        * dom/Document.h: ditto.
139834
1398352012-05-31  Simon Fraser  <simon.fraser@apple.com>
139836
139837        Remove some duplicate code in RenderLayerCompositor
139838        https://bugs.webkit.org/show_bug.cgi?id=88009
139839
139840        Reviewed by Anders Carlsson.
139841
139842        RenderLayerCompositor::hasNonAffineTransform() has the same code
139843        as the existing RenderLayer::has3DTransform(), so just use the
139844        RenderLayer method and remove hasNonAffineTransform().
139845
139846        No behavior change.
139847        
139848        * rendering/RenderLayerCompositor.cpp:
139849        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
139850        * rendering/RenderLayerCompositor.h:
139851        (RenderLayerCompositor):
139852
1398532012-05-31  Sheriff Bot  <webkit.review.bot@gmail.com>
139854
139855        Unreviewed, rolling out r119125.
139856        http://trac.webkit.org/changeset/119125
139857        https://bugs.webkit.org/show_bug.cgi?id=88007
139858
139859        Will break android build if rolled (Requested by rafaelw_ on
139860        #webkit).
139861
139862        * html/HTMLMediaElement.cpp:
139863        (WebCore::HTMLMediaElement::HTMLMediaElement):
139864        (WebCore::HTMLMediaElement::startProgressEventTimer):
139865        (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
139866        (WebCore::HTMLMediaElement::progressEventTimerFired):
139867        (WebCore::HTMLMediaElement::startPlaybackProgressTimer):
139868        * platform/graphics/MediaPlayer.cpp:
139869        (WebCore::NullMediaPlayerPrivate::bytesLoaded):
139870        (WebCore::MediaPlayer::bytesLoaded):
139871        * platform/graphics/MediaPlayer.h:
139872        * platform/graphics/MediaPlayerPrivate.h:
139873        (MediaPlayerPrivateInterface):
139874        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
139875        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
139876        (WebCore::MediaPlayerPrivateAVFoundation::bytesLoaded):
139877        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
139878        (MediaPlayerPrivateAVFoundation):
139879        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
139880        (WebCore::MediaPlayerPrivate::bytesLoaded):
139881        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
139882        (MediaPlayerPrivate):
139883        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
139884        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
139885        (WebCore::MediaPlayerPrivateGStreamer::bytesLoaded):
139886        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
139887        (MediaPlayerPrivateGStreamer):
139888        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
139889        (MediaPlayerPrivateQTKit):
139890        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
139891        (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
139892        (WebCore::MediaPlayerPrivateQTKit::bytesLoaded):
139893        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
139894        (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
139895        (WebCore::MediaPlayerPrivateQt::bytesLoaded):
139896        * platform/graphics/qt/MediaPlayerPrivateQt.h:
139897        (MediaPlayerPrivateQt):
139898        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
139899        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::MediaPlayerPrivateQuickTimeVisualContext):
139900        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::bytesLoaded):
139901        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
139902        (MediaPlayerPrivateQuickTimeVisualContext):
139903        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
139904        (MediaPlayerPrivate):
139905
1399062012-05-31  Andy Estes  <aestes@apple.com>
139907
139908        Disentangle code that relies on USE(AUTOMATIC_TEXT_REPLACEMENT) from that which merely relies on PLATFORM(MAC)
139909        https://bugs.webkit.org/show_bug.cgi?id=87933
139910
139911        Reviewed by Dan Bernstein.
139912
139913        * editing/Editor.cpp:
139914        * editing/Editor.h:
139915        * loader/EmptyClients.h:
139916        * page/ContextMenuController.cpp:
139917        (WebCore::ContextMenuController::contextMenuItemSelected):
139918        * page/EditorClient.h:
139919
1399202012-05-31  Dana Jansens  <danakj@chromium.org>
139921
139922        [chromium] Move drawing code for RenderSurfaces into LayerRendererChromium
139923        https://bugs.webkit.org/show_bug.cgi?id=87877
139924
139925        Reviewed by James Robinson.
139926
139927        We add data to CCRenderSurfaceDrawQuad so that the only use of
139928        CCRenderSurface directly from LayerRendererChromium is to
139929        reserve, release, and use the surface's textures, and to set the
139930        scissor rect. Each of these changes will be done independent
139931        of this change.
139932
139933        Covered by existing tests.
139934
139935        * platform/graphics/chromium/LayerRendererChromium.cpp:
139936        (WebCore::applyFilters):
139937        (WebCore):
139938        (WebCore::LayerRendererChromium::drawBackgroundFilters):
139939        (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
139940        (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
139941        * platform/graphics/chromium/LayerRendererChromium.h:
139942        (LayerRendererChromium):
139943        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
139944        (WebCore::CCLayerImpl::contentsTextureId):
139945        * platform/graphics/chromium/cc/CCLayerImpl.h:
139946        (CCLayerImpl):
139947        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
139948        (WebCore::calculateDrawTransformsAndVisibilityInternal):
139949        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
139950        * platform/graphics/chromium/cc/CCQuadCuller.h:
139951        (CCQuadCuller):
139952        * platform/graphics/chromium/cc/CCRenderPass.cpp:
139953        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
139954        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
139955        (WebCore):
139956        (WebCore::CCRenderSurface::CCRenderSurface):
139957        (WebCore::CCRenderSurface::prepareContentsTexture):
139958        (WebCore::CCRenderSurface::releaseContentsTexture):
139959        (WebCore::CCRenderSurface::hasValidContentsTexture):
139960        (WebCore::CCRenderSurface::releaseBackgroundTexture):
139961        (WebCore::CCRenderSurface::hasValidBackgroundTexture):
139962        (WebCore::CCRenderSurface::hasMask):
139963        (WebCore::CCRenderSurface::replicaHasMask):
139964        (WebCore::CCRenderSurface::appendQuads):
139965        * platform/graphics/chromium/cc/CCRenderSurface.h:
139966        (WebCore):
139967        (CCRenderSurface):
139968        * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.cpp:
139969        (WebCore::CCRenderSurfaceDrawQuad::create):
139970        (WebCore::CCRenderSurfaceDrawQuad::CCRenderSurfaceDrawQuad):
139971        * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.h:
139972        (WebKit):
139973        (CCRenderSurfaceDrawQuad):
139974        (WebCore::CCRenderSurfaceDrawQuad::maskTextureId):
139975        (WebCore::CCRenderSurfaceDrawQuad::filters):
139976        (WebCore::CCRenderSurfaceDrawQuad::backgroundFilters):
139977        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
139978        (WebCore::CCTiledLayerImpl::contentsTextureId):
139979        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
139980        (CCTiledLayerImpl):
139981
1399822012-05-31  Brady Eidson  <beidson@apple.com>
139983
139984        <rdar://problem/11544454> and https://bugs.webkit.org/show_bug.cgi?id=87990
139985        Crashes unregistering DOMWindowProperties while releasing CachedPages
139986
139987        Reviewed by Jessie Berlin.
139988
139989        This patch rewrites DOMWindowProperty to always keep direct track of the DOMWindow
139990        it has registered with and to only ever unregister from that very same DOMWindow.
139991
139992        No new tests. (While the direct cause of the crash is understood, reproducing it is not)
139993
139994        * page/DOMWindowProperty.cpp:
139995        (WebCore::DOMWindowProperty::DOMWindowProperty):
139996        (WebCore::DOMWindowProperty::~DOMWindowProperty):
139997        (WebCore::DOMWindowProperty::disconnectFrameForPageCache):
139998        (WebCore::DOMWindowProperty::reconnectFrameFromPageCache):
139999        (WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
140000        (WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):
140001        (WebCore::DOMWindowProperty::willDetachGlobalObjectFromFrame):
140002        * page/DOMWindowProperty.h:
140003        (DOMWindowProperty):
140004
1400052012-05-31  Tony Chang  <tony@chromium.org>
140006
140007        rename flexbox CSS properties from flex-align and flex-item-align to align-items and align-self
140008        https://bugs.webkit.org/show_bug.cgi?id=87907
140009
140010        Reviewed by Ojan Vafai.
140011
140012        This was recently changed in the spec:
140013        http://dev.w3.org/csswg/css3-flexbox/#align-items-property
140014
140015        No new tests, updated the tests to use the new naming.
140016
140017        * css/CSSComputedStyleDeclaration.cpp:
140018        (WebCore):
140019        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
140020        * css/CSSParser.cpp:
140021        (WebCore::isValidKeywordPropertyAndValue):
140022        (WebCore::isKeywordPropertyID):
140023        (WebCore::CSSParser::parseValue):
140024        * css/CSSPrimitiveValueMappings.h:
140025        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
140026        (WebCore::CSSPrimitiveValue::operator EAlignItems):
140027        * css/CSSProperty.cpp:
140028        (WebCore::CSSProperty::isInheritedProperty):
140029        * css/CSSPropertyNames.in:
140030        * css/StyleBuilder.cpp:
140031        (WebCore::StyleBuilder::StyleBuilder):
140032        * css/StyleResolver.cpp:
140033        (WebCore::StyleResolver::collectMatchingRulesForList):
140034        * rendering/RenderBox.cpp:
140035        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
140036        * rendering/RenderFlexibleBox.cpp:
140037        (WebCore::alignmentForChild):
140038        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
140039        (WebCore::RenderFlexibleBox::alignChildren):
140040        * rendering/style/RenderStyle.h:
140041        * rendering/style/RenderStyleConstants.h:
140042        * rendering/style/StyleFlexibleBoxData.cpp:
140043        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
140044        (WebCore::StyleFlexibleBoxData::operator==):
140045        * rendering/style/StyleFlexibleBoxData.h:
140046        (StyleFlexibleBoxData): Move member variables to StyleRareNonInheritedData
140047        because these values will eventually apply to more than just flexbox.
140048        * rendering/style/StyleRareNonInheritedData.cpp:
140049        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
140050        (WebCore::StyleRareNonInheritedData::operator==):
140051        * rendering/style/StyleRareNonInheritedData.h:
140052        (StyleRareNonInheritedData):
140053
1400542012-05-31  Ami Fischman  <fischman@chromium.org>
140055
140056        Replace WebMediaPlayer::bytesLoaded() with an explicit didLoadingProgress()
140057        https://bugs.webkit.org/show_bug.cgi?id=86113
140058
140059        Reviewed by Eric Carlson.
140060
140061        No new functionality, so no new tests.  Loading progress is already tested by existing layouttests.
140062
140063        * html/HTMLMediaElement.cpp:
140064        (WebCore::HTMLMediaElement::HTMLMediaElement):
140065        (WebCore::HTMLMediaElement::startProgressEventTimer):
140066        (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
140067        (WebCore::HTMLMediaElement::progressEventTimerFired):
140068        (WebCore::HTMLMediaElement::startPlaybackProgressTimer):
140069        * platform/graphics/MediaPlayer.cpp:
140070        (WebCore::NullMediaPlayerPrivate::didLoadingProgress):
140071        (WebCore::MediaPlayer::didLoadingProgress):
140072        * platform/graphics/MediaPlayer.h:
140073        * platform/graphics/MediaPlayerPrivate.h:
140074        (MediaPlayerPrivateInterface):
140075        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
140076        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
140077        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
140078        (MediaPlayerPrivateAVFoundation):
140079        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
140080        (WebCore::MediaPlayerPrivate::didLoadingProgress):
140081        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
140082        (MediaPlayerPrivate):
140083        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
140084        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
140085        (WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
140086        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
140087        (MediaPlayerPrivateGStreamer):
140088        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
140089        (MediaPlayerPrivateQTKit):
140090        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
140091        (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
140092        (WebCore::MediaPlayerPrivateQTKit::didLoadingProgress):
140093        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
140094        (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
140095        (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
140096        * platform/graphics/qt/MediaPlayerPrivateQt.h:
140097        (MediaPlayerPrivateQt):
140098        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
140099        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::MediaPlayerPrivateQuickTimeVisualContext):
140100        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::didLoadingProgress):
140101        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
140102        (MediaPlayerPrivateQuickTimeVisualContext):
140103        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
140104        (MediaPlayerPrivate):
140105
1401062012-05-31  Erik Arvidsson  <arv@chromium.org>
140107
140108        Make DOM Exceptions Errors
140109        https://bugs.webkit.org/show_bug.cgi?id=85078
140110
140111        Reviewed by Oliver Hunt.
140112
140113        WebIDL mandates that exceptions should have Error.prototype on its prototype chain.
140114
140115        For JSC we have access to the Error.prototype from the binding code.
140116
140117        For V8 we set a field in the WrapperTypeInfo and when the constructor function is created we
140118        set the prototype as needed.
140119
140120        Updated test: fast/dom/DOMException/prototype-object.html
140121
140122        * ForwardingHeaders/runtime/ErrorPrototype.h: Added.
140123        * bindings/scripts/CodeGeneratorJS.pm:
140124        (GenerateHeader):
140125        (GenerateImplementation):
140126        * bindings/scripts/CodeGeneratorV8.pm:
140127        (GenerateNamedConstructorCallback):
140128        (GenerateImplementation):
140129        * bindings/scripts/test/JS/JSTestException.cpp:
140130        (WebCore::JSTestException::createPrototype):
140131        * bindings/scripts/test/JS/JSTestException.h:
140132        * bindings/scripts/test/V8/V8Float64Array.cpp:
140133        (WebCore):
140134        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
140135        (WebCore):
140136        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
140137        (WebCore):
140138        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
140139        (WebCore):
140140        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
140141        (WebCore):
140142        * bindings/scripts/test/V8/V8TestException.cpp:
140143        (WebCore):
140144        * bindings/scripts/test/V8/V8TestInterface.cpp:
140145        (WebCore):
140146        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
140147        (WebCore):
140148        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
140149        (WebCore):
140150        * bindings/scripts/test/V8/V8TestNode.cpp:
140151        (WebCore):
140152        * bindings/scripts/test/V8/V8TestObj.cpp:
140153        (WebCore):
140154        (WebCore::V8TestObj::installPerContextProperties):
140155        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
140156        (WebCore):
140157        * bindings/v8/NPV8Object.cpp:
140158        (WebCore::npObjectTypeInfo):
140159        * bindings/v8/V8BindingPerContextData.cpp:
140160        (WebCore):
140161        (WebCore::V8BindingPerContextData::init):
140162        (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
140163        (WebCore::V8BindingPerContextData::constructorForTypeSlowCase):
140164        * bindings/v8/V8BindingPerContextData.h:
140165        (V8BindingPerContextData):
140166        * bindings/v8/V8HiddenPropertyName.h:
140167        (WebCore):
140168        * bindings/v8/WrapperTypeInfo.h:
140169        (WebCore):
140170        (WrapperTypeInfo):
140171        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
140172        (WebCore):
140173
1401742012-05-31  Ian Vollick  <vollick@chromium.org>
140175
140176        [chromium] create WebTransformOperation interface for chromium platform
140177        https://bugs.webkit.org/show_bug.cgi?id=87510
140178
140179        Reviewed by James Robinson.
140180
140181        Unit tests:
140182            WebTransformOperationsTest.transformTypesAreUnique
140183            WebTransformOperationsTest.matchesTypesSameLength
140184            WebTransformOperationsTest.matchesTypesDifferentLength
140185            WebTransformOperationsTest.applyTranslate
140186            WebTransformOperationsTest.applyRotate
140187            WebTransformOperationsTest.applyScale
140188            WebTransformOperationsTest.applySkew
140189            WebTransformOperationsTest.applyPerspective
140190            WebTransformOperationsTest.applyMatrix
140191            WebTransformOperationsTest.applyOrder
140192            WebTransformOperationsTest.blendOrder
140193            WebTransformOperationsTest.blendProgress
140194            WebTransformOperationsTest.blendWhenTypesDoNotMatch
140195
140196        * WebCore.gypi:
140197        * platform/chromium/support/WebTransformOperations.cpp: Added.
140198        (WebKit):
140199        (WebTransformOperationsPrivate):
140200        (WebKit::WebTransformOperations::apply):
140201        (WebKit::WebTransformOperations::blend):
140202        (WebKit::WebTransformOperations::matchesTypes):
140203        (WebKit::WebTransformOperations::appendTranslate):
140204        (WebKit::WebTransformOperations::appendRotate):
140205        (WebKit::WebTransformOperations::appendScale):
140206        (WebKit::WebTransformOperations::appendSkew):
140207        (WebKit::WebTransformOperations::appendPerspective):
140208        (WebKit::WebTransformOperations::appendMatrix):
140209        (WebKit::WebTransformOperations::reset):
140210        (WebKit::WebTransformOperations::initialize):
140211
1402122012-05-31  Yury Semikhatsky  <yurys@chromium.org>
140213
140214        m_totalAllocated should be intialized in RenderArena constructor
140215        https://bugs.webkit.org/show_bug.cgi?id=87967
140216
140217        Reviewed by Ojan Vafai.
140218
140219        * rendering/RenderArena.cpp:
140220        (WebCore::RenderArena::RenderArena): added missing initializer.
140221
1402222012-05-31  Julien Chaffraix  <jchaffraix@webkit.org>
140223
140224        The difference between a column and a column group renderer is badly drawn
140225        https://bugs.webkit.org/show_bug.cgi?id=87556
140226
140227        Reviewed by Abhishek Arya.
140228
140229        No expected change in behavior.
140230
140231        This patch tries to draw a better line between those 3 concepts:
140232        - renderer is a RenderTableCol (RenderObject::isRenderTableCol).
140233        - renderer is a column (RenderTableCol::isTableColumn()).
140234        - renderer is a column group (RenderTableCol::isTableColumnGroup()).
140235        (most of the code that needs to know the difference manipulate a RenderTableCol
140236        so there was no need to move the 2 last helpers into RenderObject)
140237
140238        * rendering/AutoTableLayout.cpp:
140239        (WebCore::AutoTableLayout::recalcColumn):
140240        Factored the code to use the column / column group iteration we
140241        set up in the rest of the code. Made the code more self-describing
140242        by using more RenderTableCol functions.
140243
140244        * rendering/RenderObject.cpp:
140245        (WebCore::RenderObject::addChild):
140246        Factored the code to use the isTableColumn() and isTableColumnGroup() to
140247        better underline what we check.
140248
140249        * rendering/RenderObject.h:
140250        (WebCore::RenderObject::isRenderTableCol):
140251        (WebCore::RenderObject::isTablePart):
140252        Renamed isTableCol to isRenderTableCol to match the class as this doesn't
140253        imply that the renderer is actually a column.
140254
140255        * html/HTMLTableColElement.cpp:
140256        (WebCore::HTMLTableColElement::parseAttribute):
140257        * rendering/AutoTableLayout.cpp:
140258        (WebCore::AutoTableLayout::fullRecalc):
140259        * rendering/RenderTable.cpp:
140260        (WebCore::RenderTable::addChild):
140261        (WebCore::RenderTable::layout):
140262        (WebCore::RenderTable::firstColumn):
140263        Updated after the isRenderTableCol rename.
140264
140265        * dom/Text.cpp:
140266        (WebCore::Text::rendererIsNeeded):
140267        * editing/htmlediting.cpp:
140268        (WebCore::isTableStructureNode):
140269        Ditto and renamed some variables.
140270
140271        * html/HTMLFormElement.cpp:
140272        (WebCore::HTMLFormElement::rendererIsNeeded):
140273        Ditto and added a FIXME as the logic doesn't seem very bullet proof.
140274
140275        * rendering/RenderTableCell.cpp:
140276        (WebCore::RenderTableCell::computeCollapsedStartBorder):
140277        (WebCore::RenderTableCell::computeCollapsedEndBorder):
140278        (WebCore::RenderTableCell::computeCollapsedBeforeBorder):
140279        (WebCore::RenderTableCell::computeCollapsedAfterBorder):
140280        Changed to use the enclosingColumnGroup* helpers.
140281
140282        * rendering/RenderTableSection.cpp:
140283        (WebCore::RenderTableSection::paintCell):
140284        * rendering/RenderTableCol.cpp:
140285        (WebCore::RenderTableCol::isChildAllowed):
140286        (WebCore::RenderTableCol::canHaveChildren):
140287        (WebCore::RenderTableCol::enclosingColumnGroup):
140288        (WebCore::RenderTableCol::nextColumn):
140289        Updated to use the new functions.
140290
140291        * rendering/RenderTableCol.h:
140292        (WebCore::RenderTableCol::isTableColumn):
140293        (WebCore::RenderTableCol::isTableColumnGroup):
140294        (WebCore::RenderTableCol::enclosingColumnGroupIfAdjacentBefore):
140295        (WebCore::RenderTableCol::enclosingColumnGroupIfAdjacentAfter):
140296        Added the following new helpers.
140297
1402982012-05-31  Jessie Berlin  <jberlin@apple.com>
140299
140300        Fix Lion build after r119073.
140301
140302        * platform/Decimal.cpp:
140303        (WebCore::Decimal::toString):
140304        Do not attempt to assign a unsigned long long to an int.
140305
1403062012-05-31  Christophe Dumez  <christophe.dumez@intel.com>
140307
140308        [EFL] Enable CSS_IMAGE_SET flag
140309        https://bugs.webkit.org/show_bug.cgi?id=87727
140310
140311        Reviewed by Adam Roben.
140312
140313        Fix CMakeLists.txt so that CSSImageSetValue.cpp gets compiled if
140314        CSS_IMAGE_SET flag is enabled.
140315
140316        * CMakeLists.txt:
140317
1403182012-05-31  Keyar Hood  <keyar@chromium.org>
140319
140320        the imageSmoothingEnabled flag needs to be in the state object
140321        https://bugs.webkit.org/show_bug.cgi?id=87853
140322
140323        Reviewed by Darin Adler.
140324
140325        Updated fast/canvas/canvas-imageSmoothingEnabled.html instead of
140326        adding a new test.
140327
140328        The imageSmoothingEnabled flag is saved in the draw state now.
140329        * html/canvas/CanvasRenderingContext2D.cpp:
140330        (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
140331        (WebCore::CanvasRenderingContext2D::State::State):
140332        (WebCore::CanvasRenderingContext2D::State::operator=):
140333        (WebCore::CanvasRenderingContext2D::webkitImageSmoothingEnabled):
140334        (WebCore::CanvasRenderingContext2D::setWebkitImageSmoothingEnabled):
140335        * html/canvas/CanvasRenderingContext2D.h:
140336        (State):
140337
1403382012-05-31  Eugene Klyuchnikov  <eustas.bug@gmail.com>
140339
140340        Web Inspector: Fix checkbox position on Settings screen.
140341        https://bugs.webkit.org/show_bug.cgi?id=87007
140342
140343        Reviewed by Yury Semikhatsky.
140344
140345        Checkbox seems to be improperly aligned.
140346        It is "shifted" up on 1px on Mac and 2px on Linux.
140347        Also, keyboard-shortcuts screen has "wrapped" key descriptions on Mac.
140348
140349        UI changes, no new tests.
140350
140351        * inspector/front-end/helpScreen.css:
140352        (.help-container): Fixed column width.
140353        (.help-block): Ditto.
140354        (.help-key-cell): Ditto.
140355        (body.platform-mac .help-container): Ditto.
140356        (body.platform-mac .help-block): Ditto.
140357        (body.platform-mac .help-key-cell): Ditto.
140358        (.help-content p): Ajdusted spacing between lines
140359        (.help-content input[type=checkbox]): Fixed alignment.
140360        (body.platform-mac .help-content input[type=checkbox]): Ditto.
140361        (.help-content input[type=radio]): Fixed alignment.
140362        (body.platform-mac .help-content input[type=radio]): Ditto.
140363
1403642012-05-30  Andreas Kling  <kling@webkit.org>
140365
140366        Have StylePropertySet constructor take array/length instead of vector.
140367        <http://webkit.org/b/87876>
140368
140369        Reviewed by Antti Koivisto.
140370
140371        Remove the StylePropertyVector typedef and have StylePropertySet constructors
140372        take CSSProperty*/length since we are copying the data into a tightly packed
140373        array anyway. This frees up the call sites to use whatever storage they please
140374        rather than being restricted to a vector with inlineCapacity=4.
140375
140376        Change said call sites to use an arbitrary high inline capacity (256) for their
140377        stack-allocated temporary vectors.
140378
140379        * css/CSSComputedStyleDeclaration.cpp:
140380        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
140381        * css/CSSParser.cpp:
140382        (WebCore::filterProperties):
140383        (WebCore::CSSParser::createStylePropertySet):
140384        * css/StylePropertySet.cpp:
140385        (WebCore::StylePropertySet::createImmutable):
140386        (WebCore::StylePropertySet::StylePropertySet):
140387        (WebCore::StylePropertySet::removePropertiesInSet):
140388        (WebCore::StylePropertySet::copyPropertiesInSet):
140389        * css/StylePropertySet.h:
140390        (WebCore::StylePropertySet::create):
140391        (StylePropertySet):
140392
1403932012-05-31  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
140394
140395        [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5)
140396        https://bugs.webkit.org/show_bug.cgi?id=87955
140397
140398        Reviewed by Simon Hausmann.
140399
140400        * bridge/qt/qt_class.cpp:
140401        * bridge/qt/qt_instance.cpp:
140402        * bridge/qt/qt_runtime.h:
140403        * page/qt/EventHandlerQt.cpp:
140404        * platform/graphics/GraphicsContext3D.h:
140405        * platform/graphics/OpenGLShims.cpp:
140406        * platform/graphics/OpenGLShims.h:
140407        * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
140408        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
140409        * platform/graphics/qt/GraphicsContext3DQt.cpp:
140410        * platform/graphics/qt/SimpleFontDataQt.cpp:
140411        * platform/graphics/texmap/TextureMapper.h:
140412        * platform/graphics/texmap/TextureMapperGL.cpp:
140413        * platform/qt/DeviceMotionProviderQt.h:
140414        * platform/qt/DeviceOrientationProviderQt.h:
140415        * platform/qt/KURLQt.cpp:
140416        * platform/qt/PlatformScreenQt.cpp:
140417        * platform/qt/QWebPageClient.h:
140418        * plugins/qt/PluginPackageQt.cpp:
140419        * plugins/qt/PluginViewQt.cpp:
140420
1404212012-05-30  Andreas Kling  <kling@webkit.org>
140422
140423        Have StylePropertySet constructor take array/length instead of vector.
140424        <http://webkit.org/b/87876>
140425
140426        Reviewed by Antti Koivisto.
140427
140428        Remove the StylePropertyVector typedef and have StylePropertySet constructors
140429        take CSSProperty*/length since we are copying the data into a tightly packed
140430        array anyway. This frees up the call sites to use whatever storage they please
140431        rather than being restricted to a vector with inlineCapacity=4.
140432
140433        Change said call sites to use an arbitrary high inline capacity (256) for their
140434        stack-allocated temporary vectors.
140435
140436        * css/CSSComputedStyleDeclaration.cpp:
140437        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
140438        * css/CSSParser.cpp:
140439        (WebCore::filterProperties):
140440        (WebCore::CSSParser::createStylePropertySet):
140441        * css/StylePropertySet.cpp:
140442        (WebCore::StylePropertySet::createImmutable):
140443        (WebCore::StylePropertySet::StylePropertySet):
140444        (WebCore::StylePropertySet::removePropertiesInSet):
140445        (WebCore::StylePropertySet::copyPropertiesInSet):
140446        * css/StylePropertySet.h:
140447        (WebCore::StylePropertySet::create):
140448        (StylePropertySet):
140449
1404502012-05-31  Mike West  <mkwst@chromium.org>
140451
140452        Fixing compilation with SVG disabled.
140453        https://bugs.webkit.org/show_bug.cgi?id=87944
140454
140455        This patch adds the missing enumeration value
140456        'CSSPropertyWebkitBoxDecorationBreak' into switch statements to make
140457        clang happy.
140458
140459        Reviewed by Alexis Menard.
140460
140461        * css/CSSParser.cpp:
140462        (WebCore::CSSParser::parseValue):
140463        * css/StyleResolver.cpp:
140464        (WebCore::StyleResolver::collectMatchingRulesForList):
140465
1404662012-05-31  Yoshifumi Inoue  <yosin@chromium.org>
140467
140468        [Platform] Implementation of Decimal(int32_t) isn't portable.
140469        https://bugs.webkit.org/show_bug.cgi?id=87941
140470
140471        Reviewed by Kent Tamura.
140472
140473        This patch changes negation of integer to make unsigned integer
140474        in portable way.
140475
140476        No new tests. This patch doesn't change behavior.
140477
140478        * platform/Decimal.cpp:
140479        (WebCore::Decimal::Decimal): Use uint64_t(-int64_t(i32)) instead of uint64_t(-i32) 
140480
1404812012-05-31  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
140482
140483        [CMAKE][EFL] Remove unneeded include path
140484        https://bugs.webkit.org/show_bug.cgi?id=87927
140485
140486        Reviewed by Kenneth Rohde Christiansen.
140487
140488        Though *wtf* directory was moved to Source/WTF, PlatformEfl.cmake is still including the previous
140489        path. In addition, files on EFL port are using "<wtf/gobject/XXX>" directly in #include line.
140490        So, EFL port doesn't need to include ${JAVASCRIPTCORE_DIR}/wtf/gobject path anymore.
140491
140492        * PlatformEfl.cmake: Remove '${JAVASCRIPTCORE_DIR}/wtf/gobject' path from include path list.
140493
1404942012-05-31  Yoshifumi Inoue  <yosin@chromium.org>
140495
140496        [Platform] Introduce Decimal class for Number/Range input type.
140497        https://bugs.webkit.org/show_bug.cgi?id=87360
140498
140499        Reviewed by Kent Tamura.
140500
140501        This patch added new class Decimal for decimal arithmatic in two
140502        files: platform/Decimal.cpp and Decimal.h with unit test.
140503
140504        Test: WebKit/chromium/tests/DecimalTest.cpp
140505
140506        * CMakeLists.txt:
140507        * GNUmakefile.list.am:
140508        * Target.pri:
140509        * WebCore.gypi:
140510        * WebCore.vcproj/WebCore.vcproj:
140511        * WebCore.xcodeproj/project.pbxproj:
140512        * platform/Decimal.cpp: Added.
140513        (WebCore):
140514        (DecimalPrivate):
140515        (SpecialValueHandler):
140516        (WebCore::DecimalPrivate::SpecialValueHandler::SpecialValueHandler):
140517        (WebCore::DecimalPrivate::SpecialValueHandler::handle):
140518        (WebCore::DecimalPrivate::SpecialValueHandler::value):
140519        (UInt128):
140520        (WebCore::DecimalPrivate::UInt128::UInt128):
140521        (WebCore::DecimalPrivate::UInt128::high):
140522        (WebCore::DecimalPrivate::UInt128::low):
140523        (WebCore::DecimalPrivate::UInt128::multiply):
140524        (WebCore::DecimalPrivate::UInt128::highUInt32):
140525        (WebCore::DecimalPrivate::UInt128::lowUInt32):
140526        (WebCore::DecimalPrivate::UInt128::isZero):
140527        (WebCore::DecimalPrivate::UInt128::makeUInt64):
140528        (WebCore::DecimalPrivate::UInt128::operator/=):
140529        (WebCore::DecimalPrivate::UInt128::multiplyHigh):
140530        (WebCore::DecimalPrivate::countDigits):
140531        (WebCore::DecimalPrivate::scaleDown):
140532        (WebCore::DecimalPrivate::scaleUp):
140533        (WebCore::Decimal::EncodedData::EncodedData):
140534        (WebCore::Decimal::EncodedData::operator==):
140535        (WebCore::Decimal::Decimal):
140536        (WebCore::Decimal::operator=):
140537        (WebCore::Decimal::operator+=):
140538        (WebCore::Decimal::operator-=):
140539        (WebCore::Decimal::operator*=):
140540        (WebCore::Decimal::operator/=):
140541        (WebCore::Decimal::operator-):
140542        (WebCore::Decimal::operator+):
140543        (WebCore::Decimal::operator*):
140544        (WebCore::Decimal::operator/):
140545        (WebCore::Decimal::operator==):
140546        (WebCore::Decimal::operator!=):
140547        (WebCore::Decimal::operator<):
140548        (WebCore::Decimal::operator<=):
140549        (WebCore::Decimal::operator>):
140550        (WebCore::Decimal::operator>=):
140551        (WebCore::Decimal::abs):
140552        (WebCore::Decimal::alignOperands):
140553        (WebCore::Decimal::ceiling):
140554        (WebCore::Decimal::compareTo):
140555        (WebCore::Decimal::floor):
140556        (WebCore::Decimal::fromString):
140557        (WebCore::Decimal::infinity):
140558        (WebCore::Decimal::nan):
140559        (WebCore::Decimal::remainder):
140560        (WebCore::Decimal::round):
140561        (WebCore::Decimal::toString):
140562        (WebCore::Decimal::zero):
140563        * platform/Decimal.h: Added.
140564        (WebCore):
140565        (DecimalPrivate):
140566        (Decimal):
140567        (EncodedData):
140568        (WebCore::Decimal::EncodedData::operator!=):
140569        (WebCore::Decimal::EncodedData::coefficient):
140570        (WebCore::Decimal::EncodedData::exponent):
140571        (WebCore::Decimal::EncodedData::isFinite):
140572        (WebCore::Decimal::EncodedData::isNaN):
140573        (WebCore::Decimal::EncodedData::isSpecial):
140574        (WebCore::Decimal::EncodedData::isZero):
140575        (WebCore::Decimal::EncodedData::sign):
140576        (WebCore::Decimal::EncodedData::setSign):
140577        (WebCore::Decimal::EncodedData::formatClass):
140578        (WebCore::Decimal::isFinite):
140579        (WebCore::Decimal::isNaN):
140580        (WebCore::Decimal::isNegative):
140581        (WebCore::Decimal::isPositive):
140582        (WebCore::Decimal::isSpecial):
140583        (WebCore::Decimal::isZero):
140584        (WebCore::Decimal::value):
140585        (AlignedOperands):
140586        (WebCore::Decimal::invertSign):
140587        (WebCore::Decimal::exponent):
140588        (WebCore::Decimal::sign):
140589
1405902012-05-31  Kentaro Hara  <haraken@chromium.org>
140591
140592        [V8] Pass Isolate to v8String() in custom bindings
140593        https://bugs.webkit.org/show_bug.cgi?id=87825
140594
140595        Reviewed by Adam Barth.
140596
140597        The objective is to pass Isolate around in V8 bindings.
140598        This patch passes Isolate to v8String() in custom bindings.
140599
140600        No tests. No change in behavior.
140601
140602        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
140603        (WebCore::installFastSet):
140604        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
140605        (WebCore):
140606        (WebCore::setWebGLArrayHelper):
140607        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
140608        (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator):
140609        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
140610        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
140611        (WebCore::toV8Object):
140612        * bindings/v8/custom/V8ClipboardCustom.cpp:
140613        (WebCore::V8Clipboard::typesAccessorGetter):
140614        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
140615        (WebCore::V8DOMStringMap::namedPropertyGetter):
140616        (WebCore::V8DOMStringMap::namedPropertyEnumerator):
140617        * bindings/v8/custom/V8FileReaderCustom.cpp:
140618        (WebCore::V8FileReader::resultAccessorGetter):
140619        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
140620        (WebCore::V8HTMLCanvasElement::toDataURLCallback):
140621        * bindings/v8/custom/V8HTMLElementCustom.cpp:
140622        (WebCore::toV8Object):
140623        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
140624        (WebCore::V8HTMLInputElement::selectionDirectionAccessorGetter):
140625        * bindings/v8/custom/V8IDBAnyCustom.cpp:
140626        (WebCore::toV8):
140627        * bindings/v8/custom/V8IDBKeyCustom.cpp:
140628        (WebCore::toV8):
140629        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
140630        (WebCore::V8InjectedScriptHost::databaseIdCallback):
140631        (WebCore::V8InjectedScriptHost::storageIdCallback):
140632        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
140633        (WebCore::V8InspectorFrontendHost::platformCallback):
140634        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
140635        (WebCore::V8JavaScriptCallFrame::typeAccessorGetter):
140636        * bindings/v8/custom/V8LocationCustom.cpp:
140637        (WebCore::V8Location::toStringCallback):
140638        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
140639        (WebCore::V8SQLResultSetRowList::itemCallback):
140640        * bindings/v8/custom/V8StorageCustom.cpp:
140641        (WebCore::V8Storage::namedPropertyEnumerator):
140642        (WebCore::storageGetter):
140643        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
140644        (WebCore::V8XMLHttpRequest::responseTextAccessorGetter):
140645        * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
140646        (WebCore::V8XSLTProcessor::getParameterCallback):
140647
1406482012-05-31  Hayato Ito  <hayato@chromium.org>
140649
140650        ComposedShadowTreeWalker should support traversing nodes in an orphaned shadow subtree.
140651        https://bugs.webkit.org/show_bug.cgi?id=87493
140652
140653        Reviewed by Dimitri Glazkov.
140654
140655        ComposedShadowTreeWalker assumed that a visited shadow root is
140656        always assigned to a shadow insertion point since it only
140657        traverses nodes which are rendered.  But there is an exceptional
140658        use case such as an event dispatching. Some events, such as a
140659        'click' event, may happen in an orphaned shadow subtree.  In such
140660        cases, traversal might start with a node in an orphaned shadow
140661        subtree.  So ComposedShadowTreeWalker can not assume that visited
140662        shadow root is always assigned to a shadow insertion point.
140663
140664        This patch only fixes ComposedShadowTreeWalker.
140665        ComposedShadowTreeParentWalker will be fixed in another patch with
140666        an event dispatching test.
140667
140668        Test: fast/dom/shadow/composed-shadow-tree-walker.html
140669
140670        * dom/ComposedShadowTreeWalker.cpp:
140671        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
140672
140673
1406742012-05-30  Yury Semikhatsky  <yurys@chromium.org>
140675
140676        Web Inspector: add MemoryUsageSupport::processMemorySizesInBytes
140677        https://bugs.webkit.org/show_bug.cgi?id=87830
140678
140679        Reviewed by James Robinson.
140680
140681        Added a method for getting process memory usage in bytes. It is
140682        used in the inspector memory instrumentation to get process total
140683        memory usage.
140684
140685        * inspector/InspectorMemoryAgent.cpp:
140686        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
140687        * platform/MemoryUsageSupport.cpp:
140688        (WebCore::MemoryUsageSupport::processMemorySizesInBytes):
140689        (WebCore):
140690        * platform/MemoryUsageSupport.h:
140691        (MemoryUsageSupport): provided embedders with a way to report WebKit process
140692        memory usage.
140693        * platform/chromium/MemoryUsageSupportChromium.cpp:
140694        (WebCore::MemoryUsageSupport::processMemorySizesInBytes):
140695        (WebCore):
140696
1406972012-05-31  Kent Tamura  <tkent@chromium.org>
140698
140699        Unreviewed, rolling out r119062 and r119064.
140700        http://trac.webkit.org/changeset/119062
140701        http://trac.webkit.org/changeset/119064
140702        https://bugs.webkit.org/show_bug.cgi?id=87360
140703
140704        Broke build on Lion, SnowLoepard, Chromium Windows, and
140705        Chromium Linux 32
140706
140707        * CMakeLists.txt:
140708        * GNUmakefile.list.am:
140709        * Target.pri:
140710        * WebCore.gypi:
140711        * WebCore.vcproj/WebCore.vcproj:
140712        * WebCore.xcodeproj/project.pbxproj:
140713        * platform/Decimal.cpp: Removed.
140714        * platform/Decimal.h: Removed.
140715
1407162012-05-31  Shane Stephens  <shanestephens@google.com>
140717
140718        text-decoration should not be propagated through absolutely positioned elements to <a> tags
140719        https://bugs.webkit.org/show_bug.cgi?id=86517
140720
140721        Reviewed by Darin Adler.
140722
140723        Test: fast/css/text-decoration-in-second-order-descendants.html
140724
140725        * rendering/RenderObject.cpp:
140726        (WebCore::RenderObject::getTextDecorationColors):
140727        Remove fix from 18611 as it doesn't work on second order descendants.
140728
140729        * css/StyleResolver.cpp:
140730        (WebCore::StyleResolver::adjustRenderStyle):
140731        Add floating and positioned checks when deciding whether to avoid propagating text decoration. Move all checks into new method to improve readability.
140732        (WebCore::doesNotInheritTextDecoration): Added
140733
1407342012-05-30  Yoshifumi Inoue  <yosin@chromium.org>
140735
140736        Build fix for Linon/SnowLeopard after r119062
140737
140738        * platform/Decimal.cpp:
140739        (WebCore::Decimal::Decimal):
140740
1407412012-05-30  Yoshifumi Inoue  <yosin@chromium.org>
140742
140743        [Platform] Introduce Decimal class for Number/Range input type.
140744        https://bugs.webkit.org/show_bug.cgi?id=87360
140745
140746        Reviewed by Kent Tamura.
140747
140748        This patch added new class Decimal for decimal arithmatic in two
140749        files: platform/Decimal.cpp and Decimal.h with unit test.
140750
140751        Test: WebKit/chromium/tests/DecimalTest.cpp
140752
140753        * CMakeLists.txt:
140754        * GNUmakefile.list.am:
140755        * Target.pri:
140756        * WebCore.gypi:
140757        * WebCore.vcproj/WebCore.vcproj:
140758        * WebCore.xcodeproj/project.pbxproj:
140759        * platform/Decimal.cpp: Added.
140760        (WebCore):
140761        (DecimalPrivate):
140762        (SpecialValueHandler):
140763        (WebCore::DecimalPrivate::SpecialValueHandler::SpecialValueHandler):
140764        (WebCore::DecimalPrivate::SpecialValueHandler::handle):
140765        (WebCore::DecimalPrivate::SpecialValueHandler::value):
140766        (UInt128):
140767        (WebCore::DecimalPrivate::UInt128::UInt128):
140768        (WebCore::DecimalPrivate::UInt128::high):
140769        (WebCore::DecimalPrivate::UInt128::low):
140770        (WebCore::DecimalPrivate::UInt128::multiply):
140771        (WebCore::DecimalPrivate::UInt128::highUInt32):
140772        (WebCore::DecimalPrivate::UInt128::lowUInt32):
140773        (WebCore::DecimalPrivate::UInt128::isZero):
140774        (WebCore::DecimalPrivate::UInt128::makeUInt64):
140775        (WebCore::DecimalPrivate::UInt128::operator/=):
140776        (WebCore::DecimalPrivate::UInt128::multiplyHigh):
140777        (WebCore::DecimalPrivate::countDigits):
140778        (WebCore::DecimalPrivate::scaleDown):
140779        (WebCore::DecimalPrivate::scaleUp):
140780        (WebCore::Decimal::EncodedData::EncodedData):
140781        (WebCore::Decimal::EncodedData::operator==):
140782        (WebCore::Decimal::Decimal):
140783        (WebCore::Decimal::operator=):
140784        (WebCore::Decimal::operator+=):
140785        (WebCore::Decimal::operator-=):
140786        (WebCore::Decimal::operator*=):
140787        (WebCore::Decimal::operator/=):
140788        (WebCore::Decimal::operator-):
140789        (WebCore::Decimal::operator+):
140790        (WebCore::Decimal::operator*):
140791        (WebCore::Decimal::operator/):
140792        (WebCore::Decimal::operator==):
140793        (WebCore::Decimal::operator!=):
140794        (WebCore::Decimal::operator<):
140795        (WebCore::Decimal::operator<=):
140796        (WebCore::Decimal::operator>):
140797        (WebCore::Decimal::operator>=):
140798        (WebCore::Decimal::abs):
140799        (WebCore::Decimal::alignOperands):
140800        (WebCore::Decimal::ceiling):
140801        (WebCore::Decimal::compareTo):
140802        (WebCore::Decimal::floor):
140803        (WebCore::Decimal::fromString):
140804        (WebCore::Decimal::infinity):
140805        (WebCore::Decimal::nan):
140806        (WebCore::Decimal::remainder):
140807        (WebCore::Decimal::round):
140808        (WebCore::Decimal::toString):
140809        (WebCore::Decimal::zero):
140810        * platform/Decimal.h: Added.
140811        (WebCore):
140812        (DecimalPrivate):
140813        (Decimal):
140814        (EncodedData):
140815        (WebCore::Decimal::EncodedData::operator!=):
140816        (WebCore::Decimal::EncodedData::coefficient):
140817        (WebCore::Decimal::EncodedData::exponent):
140818        (WebCore::Decimal::EncodedData::isFinite):
140819        (WebCore::Decimal::EncodedData::isNaN):
140820        (WebCore::Decimal::EncodedData::isSpecial):
140821        (WebCore::Decimal::EncodedData::isZero):
140822        (WebCore::Decimal::EncodedData::sign):
140823        (WebCore::Decimal::EncodedData::setSign):
140824        (WebCore::Decimal::EncodedData::formatClass):
140825        (WebCore::Decimal::isFinite):
140826        (WebCore::Decimal::isNaN):
140827        (WebCore::Decimal::isNegative):
140828        (WebCore::Decimal::isPositive):
140829        (WebCore::Decimal::isSpecial):
140830        (WebCore::Decimal::isZero):
140831        (WebCore::Decimal::value):
140832        (AlignedOperands):
140833        (WebCore::Decimal::invertSign):
140834        (WebCore::Decimal::exponent):
140835        (WebCore::Decimal::sign):
140836
1408372012-05-30  Patrick Gansterer  <paroga@webkit.org>
140838
140839        Build fix for WinCE after r116723.
140840
140841        * platform/graphics/wince/FontWinCE.cpp:
140842        (WebCore::TextRunComponent::TextRunComponent):
140843
1408442012-05-30  Kentaro Hara  <haraken@chromium.org>
140845
140846        Implement CSSParser::determineNameInNamespace() as a helper function for CSSGrammar.y
140847        https://bugs.webkit.org/show_bug.cgi?id=87799
140848
140849        Reviewed by Darin Adler.
140850
140851        As pointed out by darin@ in https://bugs.webkit.org/show_bug.cgi?id=87627#c12,
140852        we should avoid repeating the following code in CSSGrammar.y:
140853
140854            if (p->m_styleSheet)
140855                $$->setTag(QualifiedName(namespacePrefix, $2, p->m_styleSheet->determineNamespace(namespacePrefix)));
140856            else
140857                $$->setTag(QualifiedName(namespacePrefix, $2, p->m_defaultNamespace));
140858
140859        This patch implements CSSParser::determineNameInNamespace() as a helper function
140860        and replaces the above code.
140861
140862        Tests: fast/dom/SelectorAPI/*. No change in test results.
140863
140864        * css/CSSGrammar.y:
140865        * css/CSSParser.cpp:
140866        (WebCore::CSSParser::determineNameInNamespace):
140867        (WebCore):
140868        * css/CSSParser.h:
140869
1408702012-05-30  Patrick Gansterer  <paroga@webkit.org>
140871
140872        Build fix for WinCE after r117697.
140873
140874        * page/wince/FrameWinCE.cpp:
140875        (WebCore::computePageRectsForFrame):
140876
1408772012-05-30  Shawn Singh  <shawnsingh@chromium.org>
140878
140879        [chromium] Fix min/max bounds error in CCMathUtil.cpp
140880        https://bugs.webkit.org/show_bug.cgi?id=87915
140881
140882        Reviewed by James Robinson.
140883
140884        Two unit tests added to CCMathUtilTest:
140885            CCMathUtilTest.verifyEnclosingClippedRectUsesCorrectInitialBounds
140886            CCMathUtilTest.verifyEnclosingRectOfVerticesUsesCorrectInitialBounds
140887
140888        While computing bounds, the initial values for xmax and ymax are
140889        intended to be set to -float_max. It turns out that
140890        std::numeric_limits<float>::min() actually returns the smallest
140891        positive value close to zero, which is not what was intended. This
140892        patch fixes the code to use -float_max instead, which is the
140893        intended value.
140894
140895        * platform/graphics/chromium/cc/CCMathUtil.cpp:
140896        (WebCore::CCMathUtil::mapClippedRect):
140897        (WebCore::CCMathUtil::projectClippedRect):
140898        (WebCore::CCMathUtil::computeEnclosingRectOfVertices):
140899        (WebCore::CCMathUtil::computeEnclosingClippedRect):
140900        (WebCore):
140901        * platform/graphics/chromium/cc/CCMathUtil.h:
140902        (WebCore::HomogeneousCoordinate::HomogeneousCoordinate):
140903        (HomogeneousCoordinate):
140904        (WebCore::HomogeneousCoordinate::shouldBeClipped):
140905        (WebCore::HomogeneousCoordinate::cartesianPoint2d):
140906        (WebCore):
140907        (CCMathUtil):
140908
1409092012-05-30  Patrick Gansterer  <paroga@webkit.org>
140910
140911        Build fix for WinCE after r118568.
140912
140913        * platform/text/wince/TextBreakIteratorWinCE.cpp:
140914        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator):
140915
1409162012-05-30  Abhishek Arya  <inferno@chromium.org>
140917
140918        Crash in ContainerNode::parserAddChild.
140919        https://bugs.webkit.org/show_bug.cgi?id=87903
140920
140921        Reviewed by Ryosuke Niwa.
140922
140923        Call the ChildNodeInsertionNotifier.notify call at the end since
140924        it can destroy |this| and some of the local pointers like |last|.
140925        This also matches the order of calls - childrenChanged precedes
140926        ChildNodeInsertionNotifier.notify in updateTreeAfterInsertion and
140927        ContainerNode::parserInsertBefore.
140928
140929        Also remove a FIXME since we use ChildNodeInsertionNotifier.notify
140930        instead of ChildNodeInsertionNotifier.notifyInsertedIntoDocument
140931        (as recommended in the FIXME).
140932
140933        Test: fast/dom/child-insertion-notify-crash.html
140934
140935        * dom/ContainerNode.cpp:
140936        (WebCore::ContainerNode::parserAddChild):
140937
1409382012-05-30  Rick Byers  <rbyers@chromium.org>
140939
140940        [chromium] Implement pointer and hover CSS media features
140941        https://bugs.webkit.org/show_bug.cgi?id=87403
140942
140943        Reviewed by Adam Barth.
140944
140945        Add initial support for the pointer and hover media features as defined
140946        here:
140947        http://dev.w3.org/csswg/css4-mediaqueries/#pointer
140948        http://dev.w3.org/csswg/css4-mediaqueries/#hover
140949
140950        For now this only supports the case where we know a touch screen is
140951        available (currently known only for the chromium port on certain
140952        platforms).  All other cases continue to behave exactly as if the media
140953        feature isn't supported.
140954
140955        Tests: fast/media/mq-pointer.html
140956
140957        * css/CSSValueKeywords.in:
140958        * css/MediaFeatureNames.h:
140959        (MediaFeatureNames):
140960        * css/MediaQueryEvaluator.cpp:
140961        (WebCore::getLeastCapablePrimaryPointerDeviceType):
140962        (WebCore):
140963        (WebCore::hoverMediaFeatureEval):
140964        (WebCore::pointerMediaFeatureEval):
140965
140966        * testing/InternalSettings.cpp:
140967        (WebCore::InternalSettings::InternalSettings):
140968        (WebCore::InternalSettings::restoreTo):
140969        (WebCore::InternalSettings::setDeviceSupportsTouch):
140970        (WebCore):
140971        * testing/InternalSettings.h:
140972        (InternalSettings):
140973        * testing/InternalSettings.idl:
140974
1409752012-05-30  Julien Chaffraix  <jchaffraix@webkit.org>
140976
140977        Add an helper function to get the style for a cell's flow computation
140978        https://bugs.webkit.org/show_bug.cgi?id=87902
140979
140980        Reviewed by Ojan Vafai.
140981
140982        No expected change in behavior.
140983
140984        This change introduces styleForCellFlow that unify which function we use
140985        to determine a cell's direction and writing mode.
140986
140987        This unification will make it easier to support direction on table row
140988        group (section in WebKit land).
140989
140990        * rendering/RenderTableCell.h:
140991        (WebCore::RenderTableCell::styleForCellFlow):
140992        Added the new function along with a comment as to its purpose.
140993
140994        * rendering/RenderTableCell.cpp:
140995        (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
140996        (WebCore::RenderTableCell::computeCollapsedStartBorder):
140997        (WebCore::RenderTableCell::computeCollapsedEndBorder):
140998        (WebCore::RenderTableCell::computeCollapsedBeforeBorder):
140999        (WebCore::RenderTableCell::computeCollapsedAfterBorder):
141000        (WebCore::RenderTableCell::borderHalfLeft):
141001        (WebCore::RenderTableCell::borderHalfRight):
141002        (WebCore::RenderTableCell::borderHalfTop):
141003        (WebCore::RenderTableCell::borderHalfBottom):
141004        (WebCore::RenderTableCell::borderHalfStart):
141005        (WebCore::RenderTableCell::borderHalfEnd):
141006        (WebCore::RenderTableCell::borderHalfBefore):
141007        (WebCore::RenderTableCell::borderHalfAfter):
141008        (WebCore::RenderTableCell::paintCollapsedBorders):
141009        Mostly mechanical replacement.
141010
141011        * rendering/RenderTableCell.cpp:
141012        (WebCore::RenderTableCell::cachedCollapsedLeftBorder):
141013        (WebCore::RenderTableCell::cachedCollapsedRightBorder):
141014        (WebCore::RenderTableCell::cachedCollapsedTopBorder):
141015        (WebCore::RenderTableCell::cachedCollapsedBottomBorder):
141016        Made the argument 'const' now.
141017
141018        * rendering/RenderTableSection.cpp:
141019        (WebCore::RenderTableSection::layoutRows):
141020        Added a FIXME to unify with the rest.
141021
1410222012-05-30  Christophe Dumez  <christophe.dumez@intel.com>
141023
141024        [JSC] SerializedScriptValue.create() succeeds even if MessagePort object cannot be found in transferred ports
141025        https://bugs.webkit.org/show_bug.cgi?id=87118
141026
141027        Reviewed by Adam Barth.
141028
141029        Make SerializedScriptValue.create() throw an exception if one of the
141030        MessagePort objects cannot be found in the transferred ports. This
141031        matches the behavior of the V8 implementation.
141032
141033        Test: webintents/web-intents-obj-constructor.html
141034
141035        * bindings/js/SerializedScriptValue.cpp:
141036        (WebCore::CloneSerializer::dumpIfTerminal):
141037
1410382012-05-30  Mark Pilgrim  <pilgrim@chromium.org>
141039
141040        [Chromium] Call fileUtilities methods directly
141041        https://bugs.webkit.org/show_bug.cgi?id=87852
141042
141043        Reviewed by Adam Barth.
141044
141045        Part of a refactoring series. See tracking bug 82948.
141046
141047        * platform/chromium/DragDataChromium.cpp:
141048        (WebCore::DragData::asURL):
141049        * platform/chromium/FileSystemChromium.cpp:
141050        (WebCore::deleteFile):
141051        (WebCore::deleteEmptyDirectory):
141052        (WebCore::getFileSize):
141053        (WebCore::getFileModificationTime):
141054        (WebCore::getFileMetadata):
141055        (WebCore::directoryName):
141056        (WebCore::pathByAppendingComponent):
141057        (WebCore::makeAllDirectories):
141058        (WebCore::openFile):
141059        (WebCore::closeFile):
141060        (WebCore::seekFile):
141061        (WebCore::truncateFile):
141062        (WebCore::readFromFile):
141063        (WebCore::writeToFile):
141064        * platform/chromium/PlatformSupport.h:
141065        (PlatformSupport):
141066
1410672012-05-30  Kent Tamura  <tkent@chromium.org>
141068
141069        Form controls in <fieldset disabled> should not be focusable.
141070        https://bugs.webkit.org/show_bug.cgi?id=87380
141071
141072        Reviewed by Darin Adler.
141073
141074        Test: fast/forms/fieldset/focus-in-fieldset-disabled.html
141075
141076        * html/HTMLFormControlElement.cpp:
141077        (WebCore::HTMLFormControlElement::supportsFocus):
141078        Refer to disabled() instead of m_disabled to take account of wrapping
141079        fieldset elements.
141080
1410812012-05-30  Robin Dunn  <robin@alldunn.com>
141082
141083        [wx] Implement HTML clipboard support.
141084        https://bugs.webkit.org/show_bug.cgi?id=87883
141085
141086        Reviewed by Kevin Ollivier.
141087
141088        * platform/wx/ClipboardWx.cpp:
141089        (WebCore::ClipboardWx::writeRange):
141090        * platform/wx/PasteboardWx.cpp:
141091        (WebCore::Pasteboard::writeSelection):
141092        (WebCore::Pasteboard::documentFragment):
141093
1410942012-05-30  Garrett Casto  <gcasto@chromium.org>
141095
141096        TextFieldDecorationElement should respect style attribute
141097        https://bugs.webkit.org/show_bug.cgi?id=87762
141098
141099        Reviewed by Kent Tamura.
141100
141101        * html/shadow/TextFieldDecorationElement.cpp: Use style set on the
141102        Element when creating rendering style.
141103        (WebCore::TextFieldDecorationElement::customStyleForRenderer):
141104
1411052012-05-30  Ojan Vafai  <ojan@chromium.org>
141106
141107        Avoid second layout for flex-direction:row, flex-basis:auto flex items
141108        https://bugs.webkit.org/show_bug.cgi?id=87901
141109
141110        Reviewed by Tony Chang.
141111
141112        No new tests. This is strictly a performance optimization and has no other
141113        web visible changes.
141114
141115        Also, add FIXMEs for other cases where we could avoid doing layouts. 
141116
141117        * rendering/RenderFlexibleBox.cpp:
141118        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
141119        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
141120        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
141121
1411222012-05-30  Zhenyao Mo  <zmo@google.com>
141123
141124        WebKit incorrectly clears the alpha channel on readPixels, even for Framebuffers
141125        https://bugs.webkit.org/show_bug.cgi?id=87310
141126
141127        Reviewed by Kenneth Russell.
141128
141129        * html/canvas/WebGLRenderingContext.cpp:
141130        (WebCore):
141131        (WebCore::WebGLRenderingContext::getParameter): set DEPTH_BITS/STENCIL_BITS to 0 if related channels are not requested.
141132        (WebCore::WebGLRenderingContext::readPixels): don't do the alpha value fix if the current bound is not the internal drawing buffer.
141133
1411342012-05-30  Sheriff Bot  <webkit.review.bot@gmail.com>
141135
141136        Unreviewed, rolling out r118986.
141137        http://trac.webkit.org/changeset/118986
141138        https://bugs.webkit.org/show_bug.cgi?id=87914
141139
141140        Caused several IndexedDB browser_test failures on Chromium
141141        canary builders (Requested by rafaelw_ on #webkit).
141142
141143        * Modules/indexeddb/IDBCursor.cpp:
141144        (WebCore::IDBCursor::advance):
141145        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
141146        (WebCore::IDBDatabaseBackendImpl::setVersion):
141147        * Modules/indexeddb/IDBDatabaseError.h:
141148        (WebCore::IDBDatabaseError::create):
141149        (IDBDatabaseError):
141150        (WebCore::IDBDatabaseError::createWithoutOffset):
141151        (WebCore::IDBDatabaseError::code):
141152        (WebCore::IDBDatabaseError::setCode):
141153        (WebCore::IDBDatabaseError::setMessage):
141154        (WebCore::IDBDatabaseError::IDBDatabaseError):
141155        * Modules/indexeddb/IDBDatabaseException.cpp:
141156        (WebCore):
141157        (WebCore::IDBDatabaseException::initializeDescription):
141158        * Modules/indexeddb/IDBDatabaseException.h:
141159        (IDBDatabaseException):
141160        * Modules/indexeddb/IDBObjectStore.cpp:
141161        (WebCore::IDBObjectStore::createIndex):
141162        * Modules/indexeddb/IDBRequest.cpp:
141163        (WebCore::IDBRequest::resetReadyState):
141164        (WebCore::IDBRequest::abort):
141165        (WebCore::IDBRequest::onError):
141166        (WebCore::IDBRequest::onSuccess):
141167        (WebCore::IDBRequest::onSuccessWithContinuation):
141168        (WebCore::IDBRequest::dispatchEvent):
141169        * Modules/indexeddb/IDBRequest.h:
141170        (IDBRequest):
141171        * Modules/indexeddb/IDBRequest.idl:
141172        * Modules/indexeddb/IDBTransaction.cpp:
141173        * Modules/indexeddb/IDBTransaction.h:
141174        (IDBTransaction):
141175        * Modules/indexeddb/IDBTransaction.idl:
141176
1411772012-05-30  Dominic Mazzoni  <dmazzoni@chromium.org>
141178
141179        [Chromium] AX: WebAccessibilityObject should check if an AccessibilityObject is detached
141180        https://bugs.webkit.org/show_bug.cgi?id=87778
141181
141182        Reviewed by Adam Barth.
141183
141184        Chromium was never actually using AccessibilityObjectWrapper, so
141185        this change deletes it. Instead, it's replaced with a simple bool
141186        that keeps track of whether an AccessibilityObject was detached or
141187        not. WebKit/chromium/public/WebAccessibilityObject can then use this
141188        to determine if an object is still valid.
141189
141190        Test: accessibility/accessibility-object-detached.html
141191
141192        * WebCore.gypi:
141193        * accessibility/AccessibilityObject.cpp:
141194        (WebCore::AccessibilityObject::AccessibilityObject):
141195        (WebCore::AccessibilityObject::detach):
141196        (WebCore::AccessibilityObject::isDetached):
141197        (WebCore):
141198        * accessibility/AccessibilityObject.h:
141199        (AccessibilityObject):
141200        * accessibility/chromium/AXObjectCacheChromium.cpp:
141201        (WebCore):
141202        (WebCore::AXObjectCache::detachWrapper):
141203        (WebCore::AXObjectCache::attachWrapper):
141204        * accessibility/chromium/AccessibilityObjectWrapper.h: Removed.
141205
1412062012-05-30  Shawn Singh  <shawnsingh@chromium.org>
141207
141208        Simplify TransformationMatrix rotation code to improve precision
141209        https://bugs.webkit.org/show_bug.cgi?id=86666
141210
141211        Reviewed by Adrienne Walker.
141212
141213        Change covered by existing layout tests;
141214        Additional unit tests added.
141215
141216        The original rotation code for WebCore::TransformationMatrix was
141217        using indirect trig identities to compute basic rotation
141218        matrices. As far as I can imagine, this is unnecessary, and brief
141219        informal experiments showed that we can gain a few extra bits of
141220        precision by avoiding that indirection.
141221
141222        Indeed, precision improved such that it revealed a mistake on one
141223        of the unit tests, where the test was actually degenerate so that
141224        the layer was aligned with a viewport boundary. When it was
141225        imprecise, it didnt appear to be aligned. Putting an additional
141226        translation on that test fixes it so it is no longer a degenerate
141227        test.
141228
141229        This patch also revealed a few chinks in the unit testing armor of
141230        this code, an error that should have been caught in unit tests was
141231        luckily caught by SVG layout tests. This chink is fixed by adding
141232        2 extra unit tests.
141233
141234        * platform/graphics/transforms/TransformationMatrix.cpp:
141235        (WebCore::TransformationMatrix::rotate3d):
141236
1412372012-05-30  Alec Flett  <alecflett@chromium.org>
141238
141239        IndexedDB: Remove old get/getKey implementations
141240        https://bugs.webkit.org/show_bug.cgi?id=87879
141241
141242        Reviewed by Ojan Vafai.
141243
141244        Removal of dead code, was scaffolding for a complicated
141245        Chromium landing.
141246
141247        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
141248        (WebCore::IDBIndexBackendImpl::getInternal):
141249        (WebCore::IDBIndexBackendImpl::getKeyInternal):
141250        (WebCore::IDBIndexBackendImpl::get):
141251        (WebCore::IDBIndexBackendImpl::getKey):
141252        * Modules/indexeddb/IDBIndexBackendImpl.h:
141253        (IDBIndexBackendImpl):
141254        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
141255        (WebCore::IDBObjectStoreBackendImpl::get):
141256        (WebCore::IDBObjectStoreBackendImpl::getInternal):
141257        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
141258        (IDBObjectStoreBackendImpl):
141259
1412602012-05-30  Joe Mason  <jmason@rim.com>
141261
141262        [BlackBerry] Fix assertion fail on redirect due to multiple jobs per handle
141263        https://bugs.webkit.org/show_bug.cgi?id=87579
141264
141265        Reviewed by George Staikos.
141266
141267        RIM PR #158892:
141268
141269        When we start a redirect, we now call cancelJob instead of just deleting it immediately to make sure
141270        that all cleanup is performed. However, we also reassign the ResourceHandle to the new job, and
141271        since cancelJob is asynchronous it is now assigned to two jobs simultaneously.
141272
141273        Work around this by only returning handles that have not been cancelled from findJobForHandle.
141274        Cancelled jobs still technically exist in the jobs list, but they're invisible to callers. This is
141275        safe because there is literally nothing that can be done with a cancelled job - it is supposed to
141276        merely consume any notifications that are already in progress and then kill itself off - so no
141277        callers of findJobForHandle are expecting a cancelled job. (All existing callers call methods on the
141278        returned job which are no-ops for cancelled jobs, so there is no behaviour change.)
141279
141280        No new tests because there is no behaviour change (fixes a regression).
141281
141282        * platform/network/blackberry/NetworkManager.cpp:
141283        (WebCore::NetworkManager::findJobForHandle):
141284
1412852012-05-30  Kentaro Hara  <haraken@chromium.org>
141286
141287        [V8][Performance] Optimize DOM attribute getters that return an empty string
141288        https://bugs.webkit.org/show_bug.cgi?id=87820
141289
141290        Reviewed by Adam Barth.
141291
141292        This patch optimizes the performance of DOM attribute getters that return an
141293        empty string by 65.8% (e.g. div.id, div.className, div.title, div.lang ...etc)
141294
141295        Performance test: Bindings/undefined-id-getter.html
141296
141297        [Without the patch]
141298        RESULT Bindings: undefined-id-getter= 441.984669644 runs/s
141299        median= 445.544554455 runs/s, stdev= 11.8406070959 runs/s, min= 405.063291139 runs/s, max= 447.204968944 runs/s
141300
141301        [With the patch]
141302        RESULT Bindings: undefined-id-getter= 738.840460474 runs/s
141303        median= 738.786279683 runs/s, stdev= 2.00249797161 runs/s, min= 733.944954128 runs/s, max= 741.721854305 runs/s
141304
141305        - This patch passes Isolate to v8::String::Empty(), which removes Isolate
141306        look-up inside v8::String::Empty().
141307
141308        - This patch inlines V8Binding::getElementStringAttr() and
141309        V8Binding::setElementStringAttr().
141310
141311        No tests. No change in behavior.
141312
141313        * bindings/scripts/CodeGeneratorV8.pm:
141314        (GenerateNormalAttrGetter):
141315        (GenerateNormalAttrSetter):
141316        * bindings/v8/V8Binding.cpp:
141317        (WebCore::StringCache::v8ExternalStringSlow):
141318        * bindings/v8/V8Binding.h:
141319        (WebCore::StringCache::v8ExternalString):
141320        (StringCache):
141321        (WebCore::v8ExternalString):
141322        (WebCore):
141323
1413242012-05-30  Kentaro Hara  <haraken@chromium.org>
141325
141326        [V8] Implement V8Binding::v8BooleanWithCheck(isolate)
141327        https://bugs.webkit.org/show_bug.cgi?id=87814
141328
141329        Reviewed by Adam Barth.
141330
141331        The objective is to pass Isolate to v8::True() and v8::False().
141332        Similarly to v8NullWithCheck() (bug 87713), this patch implements
141333        V8Binding::v8BooleanWithCheck(isolate), which calls v8::True()/v8::False()
141334        or v8::True(isolate)/v8::False(isolate) depending on whether the
141335        passed isolate is null or not.
141336
141337        This patch also passes Isolate to v8Boolean() in CodeGeneratorV8.pm.
141338
141339        No tests. No behavior change.
141340
141341        * bindings/scripts/CodeGeneratorV8.pm:
141342        (NativeToJSValue):
141343        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
141344        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
141345        * bindings/scripts/test/V8/V8TestObj.cpp:
141346        (WebCore::TestObjV8Internal::createAttrGetter):
141347        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetter):
141348        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetter):
141349        * bindings/v8/V8Binding.h:
141350        (WebCore::v8Boolean):
141351        (WebCore):
141352        (WebCore::v8BooleanWithCheck):
141353
1413542012-05-30  Kentaro Hara  <haraken@chromium.org>
141355
141356        [V8] Replace v8::True() and v8::False() with v8Boolean()
141357        https://bugs.webkit.org/show_bug.cgi?id=87812
141358
141359        Reviewed by Adam Barth.
141360
141361        To avoid implementing all of v8TrueWithCheck(isolate), v8FalseWithCheck(isolate)
141362        and v8BooleanWithCheck(isolate), we can first replace v8::True() and v8::False()
141363        with v8Boolean(). Then we can just implement v8BooleanWithCheck(isolate).
141364
141365        No tests. No change in behavior.
141366
141367        * bindings/v8/SerializedScriptValue.cpp:
141368        * bindings/v8/V8Binding.h:
141369        (WebCore::v8StringOrFalse):
141370        * bindings/v8/V8NPUtils.cpp:
141371        (WebCore::convertNPVariantToV8Object):
141372        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
141373        (WebCore::V8DOMStringMap::namedPropertyDeleter):
141374        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
141375        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallback):
141376        * bindings/v8/custom/V8StorageCustom.cpp:
141377        (WebCore::storageDeleter):
141378
1413792012-05-30  Kentaro Hara  <haraken@chromium.org>
141380
141381        [V8] Replace v8::Null() with v8NullWithCheck(isolate) in custom bindings where isolate can be 0
141382        https://bugs.webkit.org/show_bug.cgi?id=87807
141383
141384        Reviewed by Adam Barth.
141385
141386        The objective is to pass Isolate around in V8 bindings.
141387        This patch replaces v8::Null() with v8NullWithCheck(isolate)
141388        in custom bindings where isolate can be 0.
141389
141390        'where isolate can be 0' means all the places where we cannot
141391        retrieve Isolate directly from AccessorInfo or Arguments.
141392
141393        No tests. No behavior change.
141394
141395        * bindings/v8/custom/V8BlobCustom.cpp:
141396        (WebCore::toV8):
141397        * bindings/v8/custom/V8CSSRuleCustom.cpp:
141398        (WebCore::toV8):
141399        * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
141400        (WebCore::toV8):
141401        * bindings/v8/custom/V8CSSValueCustom.cpp:
141402        (WebCore::toV8):
141403        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
141404        (WebCore::toV8):
141405        * bindings/v8/custom/V8DOMTokenListCustom.cpp:
141406        (WebCore::toV8):
141407        * bindings/v8/custom/V8DOMWindowCustom.cpp:
141408        (WebCore::toV8):
141409        * bindings/v8/custom/V8DataViewCustom.cpp:
141410        (WebCore::toV8):
141411        * bindings/v8/custom/V8DocumentCustom.cpp:
141412        (WebCore::toV8):
141413        * bindings/v8/custom/V8EntryCustom.cpp:
141414        (WebCore::toV8):
141415        * bindings/v8/custom/V8EntrySyncCustom.cpp:
141416        (WebCore::toV8):
141417        * bindings/v8/custom/V8EventCustom.cpp:
141418        (WebCore::toV8):
141419        * bindings/v8/custom/V8Float32ArrayCustom.cpp:
141420        (WebCore::toV8):
141421        * bindings/v8/custom/V8Float64ArrayCustom.cpp:
141422        (WebCore::toV8):
141423        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
141424        (WebCore::toV8):
141425        * bindings/v8/custom/V8HTMLElementCustom.cpp:
141426        (WebCore::toV8):
141427        * bindings/v8/custom/V8IDBAnyCustom.cpp:
141428        (WebCore::toV8):
141429        * bindings/v8/custom/V8IDBKeyCustom.cpp:
141430        (WebCore::toV8):
141431        * bindings/v8/custom/V8ImageDataCustom.cpp:
141432        (WebCore::toV8):
141433        * bindings/v8/custom/V8Int16ArrayCustom.cpp:
141434        (WebCore::toV8):
141435        * bindings/v8/custom/V8Int32ArrayCustom.cpp:
141436        (WebCore::toV8):
141437        * bindings/v8/custom/V8Int8ArrayCustom.cpp:
141438        (WebCore::toV8):
141439        * bindings/v8/custom/V8LocationCustom.cpp:
141440        (WebCore::toV8):
141441        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
141442        (WebCore::toV8):
141443        * bindings/v8/custom/V8NodeCustom.cpp:
141444        (WebCore::toV8Slow):
141445        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
141446        (WebCore::toV8):
141447        * bindings/v8/custom/V8SVGElementCustom.cpp:
141448        (WebCore::toV8):
141449        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
141450        (WebCore::toV8):
141451        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
141452        (WebCore::toV8):
141453        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
141454        (WebCore::toV8):
141455        * bindings/v8/custom/V8StyleSheetCustom.cpp:
141456        (WebCore::toV8):
141457        * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
141458        (WebCore::toV8):
141459        * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
141460        (WebCore::toV8):
141461        * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
141462        (WebCore::toV8):
141463        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
141464        (WebCore::toV8):
141465        * bindings/v8/custom/V8WorkerContextCustom.cpp:
141466        (WebCore::toV8):
141467
1414682012-05-30  Kentaro Hara  <haraken@chromium.org>
141469
141470        [V8] Replace v8::Null() with v8::Null(isolate) or v8NullWithCheck(isolate) in non-custom bindings
141471        https://bugs.webkit.org/show_bug.cgi?id=87810
141472
141473        Reviewed by Adam Barth.
141474
141475        The objective is to pass Isolate around in V8 bindings.
141476        For non-custom bindings, we replace v8::Null() with v8::Null(isolate)
141477        where isolate cannot be 0, and replace v8::Null() with v8NullWithCheck(isolate)
141478        where isolate can be 0.
141479
141480        This will be the final patch for passing Isolate to v8::Null().
141481
141482        No tests. No change in behavior.
141483
141484        * bindings/scripts/CodeGeneratorV8.pm:
141485        (GenerateNormalAttrGetter):
141486        (GenerateFunctionCallback):
141487        * bindings/scripts/test/V8/V8TestObj.cpp:
141488        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
141489        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
141490        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
141491        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
141492        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
141493        * bindings/v8/SerializedScriptValue.cpp:
141494        (WebCore::SerializedScriptValue::deserialize):
141495        * bindings/v8/V8DOMWrapper.cpp:
141496        (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
141497
1414982012-05-30  Kentaro Hara  <haraken@chromium.org>
141499
141500        [V8] Replace v8::Null() with v8::Null(isolate) in custom bindings where isolate shouldn't be 0
141501        https://bugs.webkit.org/show_bug.cgi?id=87809
141502
141503        Reviewed by Adam Barth.
141504
141505        The objective is to pass Isolate around in V8 bindings.
141506        This patch replaces v8::Null() with v8::Null(isolate) in custom bindings
141507        where isolate shouldn't be 0. 'where isolate shouldn't be 0' is the place
141508        where isolate is retrieved directly from AccessorInfo and Arguments.
141509
141510        This patch includes a couple of refactorings:
141511
141512        - Makes V8DeviceMotionEvent::createAccelerationObject() and
141513        V8DeviceMotionEvent::createRotationRateObject() static
141514
141515        - Moves V8HTMLElement::toV8Object() into the existing ENABLE(MICRODATA) flag.
141516
141517        No tests. No change in behavior.
141518
141519        * bindings/v8/custom/V8ClipboardCustom.cpp:
141520        (WebCore::V8Clipboard::typesAccessorGetter):
141521        * bindings/v8/custom/V8CoordinatesCustom.cpp:
141522        (WebCore::V8Coordinates::altitudeAccessorGetter):
141523        (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
141524        (WebCore::V8Coordinates::headingAccessorGetter):
141525        (WebCore::V8Coordinates::speedAccessorGetter):
141526        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
141527        (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
141528        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
141529        (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
141530        (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
141531        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
141532        (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
141533        (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
141534        (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
141535        (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
141536        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
141537        (WebCore::V8Document::locationAccessorGetter):
141538        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
141539        (WebCore::V8HTMLCanvasElement::getContextCallback):
141540        * bindings/v8/custom/V8HTMLElementCustom.cpp:
141541        (WebCore::toV8):
141542        (WebCore):
141543        (WebCore::toV8Object):
141544        * bindings/v8/custom/V8HistoryCustom.cpp:
141545        (WebCore::V8History::stateAccessorGetter):
141546        * bindings/v8/custom/V8MessageEventCustom.cpp:
141547        (WebCore::V8MessageEvent::dataAccessorGetter):
141548        * bindings/v8/custom/V8NodeCustom.cpp:
141549        (WebCore::V8Node::insertBeforeCallback):
141550        (WebCore::V8Node::replaceChildCallback):
141551        (WebCore::V8Node::removeChildCallback):
141552        (WebCore::V8Node::appendChildCallback):
141553        * bindings/v8/custom/V8PopStateEventCustom.cpp:
141554        (WebCore::V8PopStateEvent::stateAccessorGetter):
141555        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
141556        (WebCore::V8SQLResultSetRowList::itemCallback):
141557        * bindings/v8/custom/V8TrackEventCustom.cpp:
141558        (WebCore::V8TrackEvent::trackAccessorGetter):
141559        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
141560        (WebCore::toV8Object):
141561        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
141562        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
141563
1415642012-05-30  Nico Weber  <thakis@chromium.org>
141565
141566        Make the files attribute of HTMLInputElement writable
141567        https://bugs.webkit.org/show_bug.cgi?id=87154
141568
141569        Reviewed by Adam Barth.
141570
141571        whatwg thread:
141572        http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-May/036140.html
141573
141574        * bindings/objc/PublicDOMInterfaces.h:
141575            Remove readonly on files property.
141576        * html/FileInputType.cpp:
141577        (FileInputType):
141578            Add a NULL check to setFiles().
141579        * html/FileInputType.h:
141580        (FileInputType):
141581            Let setFiles() overwrite the base  class's method.
141582        * html/HTMLInputElement.cpp:
141583        (WebCore::HTMLInputElement::setFiles):
141584            Add setFiles() implementation, delegate to input type.
141585        * html/HTMLInputElement.h:
141586        (HTMLInputElement):
141587        * html/HTMLInputElement.idl:
141588        * html/InputType.cpp:
141589        (WebCore::InputType::setFiles):
141590            setFiles() does nothing by default.
141591        * html/InputType.h:
141592        (InputType):
141593            Add a virtual setFiles() method.
141594
1415952012-05-30  Joe Mason  <jmason@rim.com>
141596
141597        [BlackBerry] Remove useless string->char*->string conversion in NetworkJob.
141598        https://bugs.webkit.org/show_bug.cgi?id=87861
141599
141600        Reviewed by Antonio Gomes.
141601
141602        RIM PR #152383: username is a WTF::String.  ResourceHandleInternal::m_user is a string.  Yet they're
141603        assigned with "username = m_user.utf8().data()".  Pointless: "username = m_user" will do.
141604
141605        No new tests since there is no behaviour change.
141606
141607        * platform/network/blackberry/NetworkJob.cpp:
141608        (WebCore::NetworkJob::sendRequestWithCredentials):
141609
1416102012-05-30  Dan Bernstein  <mitz@apple.com>
141611
141612        [Qt] REGRESSION(r118568): It broke fast/forms/textarea-maxlength.html on Qt 4.8
141613        https://bugs.webkit.org/show_bug.cgi?id=87740
141614
141615        Reviewed by Darin Adler.
141616
141617        * platform/text/qt/TextBreakIteratorQt.cpp:
141618        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Changed to use
141619        the return value of setUpIterator.
141620
1416212012-05-30  Zeno Albisser  <zeno@webkit.org>
141622
141623        GraphicsSurface: allow importing and exporting of textures directly on GPU side.
141624        https://bugs.webkit.org/show_bug.cgi?id=87725
141625
141626        Add copyFromFramebuffer function to copy a texture from an FBO
141627        onto the GraphicsSurface.
141628        Add getTextureID function to export the texture ID.
141629        This allows binding/blitting the texture directly on the GPU.
141630
141631        Reviewed by Noam Rosenthal.
141632
141633        * platform/graphics/surfaces/GraphicsSurface.cpp:
141634        (WebCore::GraphicsSurface::getTextureID):
141635        (WebCore):
141636        (WebCore::GraphicsSurface::copyFromFramebuffer):
141637        * platform/graphics/surfaces/GraphicsSurface.h:
141638        (GraphicsSurface):
141639        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
141640        (WebCore::GraphicsSurface::platformGetTextureID):
141641        (WebCore):
141642        (WebCore::GraphicsSurface::platformCopyFromFramebuffer):
141643
1416442012-05-30  Alec Flett  <alecflett@chromium.org>
141645
141646        IndexedDB: Implement IDBTransaction.error and IDBRequest.error
141647        https://bugs.webkit.org/show_bug.cgi?id=87865
141648
141649        Reviewed by Tony Chang.
141650
141651        Added "error" attribute to IDBRequest and IDBTransaction. Update
141652        IDBDatabaseError to honor the IDBDatabaseException behavior
141653        of dealing with IDB-specific throws of DOMException codes,
141654        as per the spec.
141655
141656        Existing tests which previously tested 'errorCode' and
141657        'webkitErrorMessage' have been updated to use the new attribute.
141658
141659        * Modules/indexeddb/IDBCursor.cpp:
141660        (WebCore::IDBCursor::advance):
141661        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
141662        (WebCore::IDBDatabaseBackendImpl::setVersion):
141663        * Modules/indexeddb/IDBDatabaseError.h:
141664        (WebCore::IDBDatabaseError::create):
141665        (WebCore::IDBDatabaseError::code):
141666        (WebCore::IDBDatabaseError::idbCode):
141667        (WebCore::IDBDatabaseError::name):
141668        (WebCore::IDBDatabaseError::IDBDatabaseError):
141669        (IDBDatabaseError):
141670        * Modules/indexeddb/IDBDatabaseException.cpp:
141671        (WebCore):
141672        (WebCore::getErrorEntry):
141673        (WebCore::IDBDatabaseException::initializeDescription):
141674        (WebCore::IDBDatabaseException::getErrorName):
141675        (WebCore::IDBDatabaseException::getLegacyErrorCode):
141676        * Modules/indexeddb/IDBDatabaseException.h:
141677        (IDBDatabaseException):
141678        * Modules/indexeddb/IDBObjectStore.cpp:
141679        (WebCore::IDBObjectStore::createIndex):
141680        * Modules/indexeddb/IDBRequest.cpp:
141681        (WebCore::IDBRequest::error):
141682        (WebCore):
141683        (WebCore::IDBRequest::resetReadyState):
141684        (WebCore::IDBRequest::abort):
141685        (WebCore::IDBRequest::onError):
141686        (WebCore::IDBRequest::onSuccess):
141687        (WebCore::IDBRequest::onSuccessWithContinuation):
141688        (WebCore::IDBRequest::dispatchEvent):
141689        * Modules/indexeddb/IDBRequest.h:
141690        (IDBRequest):
141691        * Modules/indexeddb/IDBRequest.idl:
141692        * Modules/indexeddb/IDBTransaction.cpp:
141693        (WebCore::IDBTransaction::error):
141694        (WebCore):
141695        (WebCore::IDBTransaction::setError):
141696        * Modules/indexeddb/IDBTransaction.h:
141697        (IDBTransaction):
141698        * Modules/indexeddb/IDBTransaction.idl:
141699
1417002012-05-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
141701
141702        [Qt] ImageDecoderQt doesn't support some decoders.
141703        https://bugs.webkit.org/show_bug.cgi?id=87851
141704
141705        Reviewed by Kenneth Rohde Christiansen.
141706
141707        If forced to decode GIF and JPEG, ImageDecoderQt show several
141708        artifacts. This is caused by mismatched decoded image-formats.
141709
141710        Convert mismatched color spaces into ARGB color space, and perform
141711        manual mem-copy when the image has been decoded into a new buffer.
141712
141713        This patch also add support for down-scaling in the decoder.
141714
141715        * platform/graphics/qt/ImageDecoderQt.cpp:
141716        (WebCore::ImageDecoderQt::internalDecodeSize):
141717        (WebCore::ImageDecoderQt::internalHandleCurrentImage):
141718
1417192012-05-30  Emil A Eklund  <eae@chromium.org>
141720
141721        Floats wraps incorrectly when top edge has subpixel precision
141722        https://bugs.webkit.org/show_bug.cgi?id=87688
141723
141724        Reviewed by Levi Weintraub.
141725        
141726        When computing the logical left and right offsets for a float we
141727        incorrectly floored the logical top when passing it to the float search
141728        adapter. This caused it to return incorrect values where the floored and
141729        pixel snapped values are not the same.
141730
141731        Test: fast/sub-pixel/float-wrap-with-subpixel-top.html
141732
141733        * rendering/RenderBlock.cpp:
141734        (WebCore::RenderBlock::logicalLeftOffsetForLine):
141735        (WebCore::RenderBlock::logicalRightOffsetForLine):
141736
1417372012-05-30  Emil A Eklund  <eae@chromium.org>
141738
141739        Inline blocks with margin wrap incorrectly with subpixel layout turned on
141740        https://bugs.webkit.org/show_bug.cgi?id=87897
141741
141742        Reviewed by Levi Weintraub.
141743
141744        Change WebCore::getBorderPaddingMargin and the helper function
141745        getBPMWidth to return a LayoutUnit rather than an int as the padding and
141746        margin values have subpixel precision. This fixes an issue where we would
141747        incorrectly wrap inline blocks with a subpixel padding or margin. 
141748
141749        Test: fast/sub-pixel/inline-block-with-margin.html
141750
141751        * rendering/RenderBlock.cpp:
141752        (WebCore::getBPMWidth):
141753        (WebCore::getBorderPaddingMargin):
141754        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
141755
1417562012-05-30  Tony Chang  <tony@chromium.org>
141757
141758        rename flexbox css values from justify and distribute to space-between and space-around
141759        https://bugs.webkit.org/show_bug.cgi?id=87867
141760
141761        Reviewed by Ojan Vafai.
141762
141763        This was recently changed in the spec:
141764        http://dev.w3.org/csswg/css3-flexbox/#justify-content
141765
141766        No new tests, updated existing tests and expectations.
141767
141768        * css/CSSParser.cpp:
141769        (WebCore::isValidKeywordPropertyAndValue):
141770        * css/CSSPrimitiveValueMappings.h:
141771        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
141772        (WebCore::CSSPrimitiveValue::operator EFlexPack):
141773        (WebCore::CSSPrimitiveValue::operator EFlexLinePack):
141774        * css/CSSValueKeywords.in:
141775        * rendering/RenderFlexibleBox.cpp:
141776        (WebCore::initialPackingOffset):
141777        (WebCore::packingSpaceBetweenChildren):
141778        (WebCore::initialLinePackingOffset):
141779        (WebCore::linePackingSpaceBetweenChildren):
141780        * rendering/style/RenderStyleConstants.h:
141781
1417822012-05-30  Kevin Ollivier  <kevino@theolliviers.com>
141783
141784        [wx] Unreviewed build fix. Make sure we get the file size with the proper native type.
141785
141786        * platform/wx/FileSystemWx.cpp:
141787        (WebCore::getFileMetadata):
141788
1417892012-05-30  Sheriff Bot  <webkit.review.bot@gmail.com>
141790
141791        Unreviewed, rolling out r118913.
141792        http://trac.webkit.org/changeset/118913
141793        https://bugs.webkit.org/show_bug.cgi?id=87891
141794
141795        patch is incorrect (see comments in
141796        https://bugs.webkit.org/show_bug.cgi?id=87889) (Requested by
141797        thorton on #webkit).
141798
141799        * css/CSSFontFaceSrcValue.cpp:
141800        (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
141801        * css/CSSFontFaceSrcValue.h:
141802        (CSSFontFaceSrcValue):
141803        * css/CSSPrimitiveValue.cpp:
141804        (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
141805        * css/CSSPrimitiveValue.h:
141806        (CSSPrimitiveValue):
141807        * css/CSSReflectValue.cpp:
141808        (WebCore::CSSReflectValue::addSubresourceStyleURLs):
141809        * css/CSSReflectValue.h:
141810        (CSSReflectValue):
141811        * css/CSSValue.cpp:
141812        (WebCore::CSSValue::addSubresourceStyleURLs):
141813        * css/CSSValue.h:
141814        (CSSValue):
141815        * css/CSSValueList.cpp:
141816        (WebCore::CSSValueList::addSubresourceStyleURLs):
141817        * css/CSSValueList.h:
141818        (CSSValueList):
141819        * css/StylePropertySet.cpp:
141820        (WebCore::StylePropertySet::addSubresourceStyleURLs):
141821        * css/StylePropertySet.h:
141822        (StylePropertySet):
141823        * css/StyleSheetContents.cpp:
141824        (WebCore::StyleSheetContents::addSubresourceStyleURLs):
141825        * css/StyleSheetContents.h:
141826        (StyleSheetContents):
141827        * dom/Element.h:
141828        * dom/Node.cpp:
141829        (WebCore::Node::getSubresourceURLs):
141830        * dom/Node.h:
141831        (WebCore::Node::addSubresourceAttributeURLs):
141832        (WebCore):
141833        * dom/ProcessingInstruction.cpp:
141834        (WebCore::ProcessingInstruction::addSubresourceAttributeURLs):
141835        * dom/ProcessingInstruction.h:
141836        (ProcessingInstruction):
141837        * dom/StyledElement.cpp:
141838        (WebCore::StyledElement::addSubresourceAttributeURLs):
141839        * dom/StyledElement.h:
141840        (StyledElement):
141841        * html/HTMLBodyElement.cpp:
141842        (WebCore::HTMLBodyElement::addSubresourceAttributeURLs):
141843        * html/HTMLBodyElement.h:
141844        (HTMLBodyElement):
141845        * html/HTMLEmbedElement.cpp:
141846        (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):
141847        * html/HTMLEmbedElement.h:
141848        (HTMLEmbedElement):
141849        * html/HTMLImageElement.cpp:
141850        (WebCore::HTMLImageElement::addSubresourceAttributeURLs):
141851        * html/HTMLImageElement.h:
141852        (HTMLImageElement):
141853        * html/HTMLInputElement.cpp:
141854        (WebCore::HTMLInputElement::addSubresourceAttributeURLs):
141855        * html/HTMLInputElement.h:
141856        (HTMLInputElement):
141857        * html/HTMLLinkElement.cpp:
141858        (WebCore::HTMLLinkElement::addSubresourceAttributeURLs):
141859        * html/HTMLLinkElement.h:
141860        (HTMLLinkElement):
141861        * html/HTMLObjectElement.cpp:
141862        (WebCore::HTMLObjectElement::addSubresourceAttributeURLs):
141863        * html/HTMLObjectElement.h:
141864        (HTMLObjectElement):
141865        * html/HTMLParamElement.cpp:
141866        (WebCore::HTMLParamElement::addSubresourceAttributeURLs):
141867        * html/HTMLParamElement.h:
141868        (HTMLParamElement):
141869        * html/HTMLScriptElement.cpp:
141870        (WebCore::HTMLScriptElement::addSubresourceAttributeURLs):
141871        * html/HTMLScriptElement.h:
141872        (HTMLScriptElement):
141873        * html/HTMLStyleElement.cpp:
141874        (WebCore::HTMLStyleElement::addSubresourceAttributeURLs):
141875        * html/HTMLStyleElement.h:
141876        (HTMLStyleElement):
141877        * html/HTMLTableCellElement.cpp:
141878        (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):
141879        * html/HTMLTableCellElement.h:
141880        (HTMLTableCellElement):
141881        * html/HTMLTableElement.cpp:
141882        (WebCore::HTMLTableElement::addSubresourceAttributeURLs):
141883        * html/HTMLTableElement.h:
141884        (HTMLTableElement):
141885        * svg/SVGCursorElement.cpp:
141886        (WebCore::SVGCursorElement::addSubresourceAttributeURLs):
141887        * svg/SVGCursorElement.h:
141888        (SVGCursorElement):
141889        * svg/SVGFEImageElement.cpp:
141890        (WebCore::SVGFEImageElement::addSubresourceAttributeURLs):
141891        * svg/SVGFEImageElement.h:
141892        (SVGFEImageElement):
141893        * svg/SVGImageElement.cpp:
141894        (WebCore::SVGImageElement::addSubresourceAttributeURLs):
141895        * svg/SVGImageElement.h:
141896        (SVGImageElement):
141897        * svg/SVGScriptElement.cpp:
141898        (WebCore::SVGScriptElement::addSubresourceAttributeURLs):
141899        * svg/SVGScriptElement.h:
141900        (SVGScriptElement):
141901
1419022012-05-30  Shezan Baig  <shezbaig.wk@gmail.com>
141903
141904        Rename offsetTopLeft in RenderBoxModelObject to something better
141905        https://bugs.webkit.org/show_bug.cgi?id=85915
141906
141907        Reviewed by Darin Adler.
141908
141909        Renamed offsetTopLeft in RenderBoxModelObject to
141910        adjustedPositionRelativeToOffsetParent, because it returns the given
141911        startPoint after adjusting it to be relative to the top-left corner of
141912        the offsetParent.  The definition of offsetParent itself is non-trivial
141913        and is documented within the body of RenderObject::offsetParent,
141914        therefore I decided to reuse this term, as-is, in the name of this
141915        function.
141916
141917        No new tests; no functional or visible changes.
141918
141919        * rendering/RenderBox.cpp:
141920        (WebCore::RenderBox::offsetLeft):
141921        (WebCore::RenderBox::offsetTop):
141922        * rendering/RenderBoxModelObject.cpp:
141923        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
141924        (WebCore::RenderBoxModelObject::offsetLeft):
141925        (WebCore::RenderBoxModelObject::offsetTop):
141926        * rendering/RenderBoxModelObject.h:
141927        (RenderBoxModelObject):
141928        * rendering/RenderInline.cpp:
141929        (WebCore::RenderInline::offsetLeft):
141930        (WebCore::RenderInline::offsetTop):
141931
1419322012-05-29  Adrienne Walker  <enne@google.com>
141933
141934        Transformed fixed position layers have an incorrect overlap map entry
141935        https://bugs.webkit.org/show_bug.cgi?id=64201
141936
141937        Reviewed by Darin Adler.
141938
141939        Previously, layers that both had a transform and were fixed position
141940        were not considered as being fixed position in RenderGeometryMap or in
141941        RenderBox::mapLocalToContainer (although this case is not incorrect in
141942        the case of painting, so an external caller likely adjusts for this).
141943
141944        Tests: compositing/layer-creation/fixed-position-and-transform.html
141945               compositing/layer-creation/fixed-position-under-transform.html
141946
141947        * rendering/RenderBox.cpp:
141948        (WebCore::RenderBox::mapLocalToContainer):
141949        * rendering/RenderGeometryMap.cpp:
141950        (WebCore::RenderGeometryMap::mapToAbsolute):
141951
1419522012-05-30  Ulan Degenbaev  <ulan@chromium.org>
141953
141954        [v8] Crash after redefining setter on typed array to a number
141955        https://bugs.webkit.org/show_bug.cgi?id=87862
141956
141957        Reviewed by Kenneth Russell.
141958
141959        Remove calls to typed array set() method from C++.
141960        Store the copying script as a hidden property of a typed array prototype.
141961
141962        Test: fast/canvas/webgl/array-override-set.html
141963
141964        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
141965        (WebCore):
141966        (WebCore::getHiddenCopyMethod):
141967        (WebCore::installHiddenCopyMethod):
141968        (WebCore::copyElements):
141969        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
141970        (WebCore):
141971        (WebCore::constructWebGLArray):
141972        (WebCore::setWebGLArrayHelper):
141973        * bindings/v8/custom/V8ArrayBufferViewCustomScript.js:
141974
1419752012-05-30  David Hyatt  <hyatt@apple.com>
141976
141977        https://bugs.webkit.org/show_bug.cgi?id=87882
141978        
141979        [New Multicolumn] Rename layoutColumns to relayoutForPagination and make it
141980        virtual so that it can be implemented by RenderMultiColumnBlock.
141981
141982        Reviewed by Anders Carlsson.
141983
141984        * rendering/RenderBlock.cpp:
141985        (WebCore::RenderBlock::layoutBlock):
141986        (WebCore::RenderBlock::relayoutForPagination):
141987        * rendering/RenderBlock.h:
141988        (RenderBlock):
141989        * rendering/RenderMultiColumnBlock.cpp:
141990        (WebCore::RenderMultiColumnBlock::relayoutForPagination):
141991        (WebCore):
141992        * rendering/RenderMultiColumnBlock.h:
141993        (RenderMultiColumnBlock):
141994
1419952012-05-30  Daniel Drake  <dsd@laptop.org>
141996
141997        Check for GTK2/GTK3 symbol mismatch earlier
141998        https://bugs.webkit.org/show_bug.cgi?id=87687
141999
142000        Reviewed by Martin Robinson.
142001
142002        No new tests. Regressions in core behavior are covered by existing
142003        plugin tests and the fix deals with particular aspects of the system
142004        environment that are difficult to test.
142005
142006        Detect plugins that would mix GTK+ symbols earlier, so that the
142007        WebKit can skip them and choose a more appropriate plugin module.
142008
142009        * plugins/gtk/PluginPackageGtk.cpp: Move this code from PluginViewGtk.
142010        (WebCore::moduleMixesGtkSymbols):
142011        (WebCore::PluginPackage::load):
142012        * plugins/gtk/PluginViewGtk.cpp: Move this code to PluginPackageGtk.
142013        (WebCore::PluginView::platformStart):
142014
1420152012-05-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
142016
142017        [Qt] Support IMAGE_DECODER_DOWN_SAMPLING flag.
142018        https://bugs.webkit.org/show_bug.cgi?id=87840
142019
142020        Based on patches by Qi Zhang and Jussi Lehto.
142021        Reviewed by Kenneth Rohde Christiansen.
142022
142023        * platform/graphics/Image.cpp:
142024        (WebCore::Image::adjustSourceRectForDownSampling):
142025        * platform/graphics/Image.h:
142026        (Image):
142027        * platform/graphics/openvg/ImageOpenVG.cpp:
142028        (WebCore::BitmapImage::draw):
142029        * platform/graphics/qt/ImageQt.cpp:
142030        (WebCore::Image::drawPattern):
142031        (WebCore::BitmapImage::draw):
142032
1420332012-05-30  Shinya Kawanaka  <shinyak@chromium.org>
142034
142035        comparePositions in htmlediting should consider nested Shadow DOM.
142036        https://bugs.webkit.org/show_bug.cgi?id=87623
142037
142038        Reviewed by Ryosuke Niwa.
142039
142040        comparePositions in htmlediting.cpp didn't consider nested Shadow DOM.
142041        This patch makes it possible to compare the nodes in nested Shadow DOM.
142042
142043        The algorithm is: we calculate the common tree scope of node A and B, and
142044        adjust the nodes to the treeScope, then compare them. If the adjusted nodes
142045        are the same, we check the shadow descendent of each node.
142046
142047        Test: editing/shadow/compare-positions-in-nested-shadow.html
142048
142049        * dom/TreeScope.cpp:
142050        (WebCore::listTreeScopes):
142051        (WebCore):
142052        (WebCore::commonTreeScope):
142053        * dom/TreeScope.h:
142054        (WebCore):
142055        * editing/htmlediting.cpp:
142056        (WebCore::comparePositions):
142057
1420582012-05-30  Erik Arvidsson  <arv@chromium.org>
142059
142060        [V8] Clean up V8LazyEventListener to use one less function call
142061        https://bugs.webkit.org/show_bug.cgi?id=87785
142062
142063        Reviewed by Kentaro Hara.
142064
142065        Instead of relying on 'arguments' we rely on 'this'. 'this' cannot be intercepted by a
142066        with-statement so it is safe to use that to bind the context objects. This allows us to
142067        remove one layer of function indirection in the generated code.
142068
142069        Covered by existing tests.
142070
142071        * bindings/v8/V8LazyEventListener.cpp:
142072        (WebCore::V8LazyEventListener::prepareListenerObject):
142073
1420742012-05-30  Tim Horton  <timothy_horton@apple.com>
142075
142076        Factor DeferrableOneShotTimer out of GraphicsContextCG/GeneratorGeneratedImage
142077        https://bugs.webkit.org/show_bug.cgi?id=87824
142078
142079        Reviewed by Simon Fraser.
142080
142081        DeferrableOneShotTimer is a timer which takes a class and method to call (as Timer does),
142082        and a delay. It exposes restart(), stop(), and isActive(), and none of the rest of
142083        the TimerBase interface. On restart(), the timer is started with the given delay,
142084        unless it's already running, in which case a flag is set to automatically restart
142085        the timer when it fires instead of calling the given method. This provides a
142086        low-overhead way to implement a deferrable timer.
142087
142088        No new tests, refactoring.
142089
142090        * platform/Timer.h:
142091        (DeferrableOneShotTimer):
142092        (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer): New class.
142093        (WebCore::DeferrableOneShotTimer::restart):
142094        (WebCore::DeferrableOneShotTimer::fired):
142095        * platform/graphics/GeneratorGeneratedImage.cpp:
142096        (WebCore::GeneratorGeneratedImage::invalidateCacheTimerFired):
142097        * platform/graphics/GeneratorGeneratedImage.h:
142098        (WebCore::GeneratorGeneratedImage::GeneratorGeneratedImage): Make use of DeferrableOneShotTimer.
142099        * platform/graphics/cg/GraphicsContextCG.cpp:
142100        (WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer): Make use of DeferrableOneShotTimer.
142101        (WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
142102
1421032012-05-30  Xueqing Huang  <huangxueqing@baidu.com>
142104
142105        eventSender.beginDragWithFiles should be implemented in Windows, which blocked drag and drop related tests.
142106        https://bugs.webkit.org/show_bug.cgi?id=86296
142107
142108        Reviewed by Tony Chang.
142109
142110        Test: This change was requirement for eventSender.beginDragWithFiles, update win/Skipped file to remove drag and drop related tests will valiate it. 
142111
142112        * platform/win/DragDataWin.cpp:
142113        (WebCore::DragData::numberOfFiles):
142114
1421152012-05-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
142116
142117        HashTable.h has using directives for std::pair and std::make_pair
142118        https://bugs.webkit.org/show_bug.cgi?id=29919
142119
142120        Reviewed by Darin Adler.
142121
142122        Change code to use std::pair and std::make_pair.
142123
142124        * accessibility/AXObjectCache.cpp:
142125        (WebCore::AXObjectCache::postNotification):
142126        * html/MediaFragmentURIParser.cpp:
142127        (WebCore::MediaFragmentURIParser::parseFragments):
142128        * html/parser/HTMLMetaCharsetParser.cpp:
142129        (WebCore::HTMLMetaCharsetParser::processMeta):
142130        * loader/cache/CachedImage.cpp:
142131        (WebCore::CachedImage::brokenImage):
142132        * page/PageSerializer.cpp:
142133        (WebCore::isCharsetSpecifyingNode):
142134
1421352012-05-30  Peter Rybin  <peter.rybin@gmail.com>
142136
142137        Web Inspector: disable ExactlyInt feature in InspectorTypeBuilder since it breaks release Windows 7 WK2
142138        https://bugs.webkit.org/show_bug.cgi?id=87857
142139
142140        Reviewed by Yury Semikhatsky.
142141
142142        Code generator is patched to support old style of int parameter.
142143
142144        * inspector/CodeGeneratorInspector.py:
142145        (TypeModel.init_class):
142146
1421472012-05-30  Alexei Filippov  <alexeif@chromium.org>
142148
142149        Web Inspector: Add trace() method to the WorkerConsole
142150        https://bugs.webkit.org/show_bug.cgi?id=87656
142151
142152        Reviewed by Yury Semikhatsky.
142153
142154        * inspector/front-end/HeapSnapshotProxy.js:
142155        (WebInspector.HeapSnapshotRealWorker.prototype._messageReceived):
142156        * inspector/front-end/HeapSnapshotWorker.js:
142157        (WebInspector.WorkerConsole.prototype.trace):
142158
1421592012-05-30  Kinuko Yasuda  <kinuko@chromium.org>
142160
142161        File.lastModifiedDate must return null if the modified time info is not available
142162        https://bugs.webkit.org/show_bug.cgi?id=87709
142163
142164        Reviewed by Kentaro Hara.
142165
142166        Per File API spec, File.lastModifiedDate must return null if the
142167        modified time info is not available.
142168        http://dev.w3.org/2006/webapi/FileAPI/#dfn-lastModifiedDate
142169
142170        Test: http/tests/local/fileapi/file-last-modified-after-delete.html
142171
142172        * fileapi/File.cpp:
142173        (WebCore::File::lastModifiedDateForBinding): Added.
142174        (WebCore):
142175        * fileapi/File.h:
142176        (File):
142177        * fileapi/File.idl: Added ImplementedAs=lastModifiedDateForBinding.
142178
1421792012-05-30  Jochen Eisinger  <jochen@chromium.org>
142180
142181        Match Firefox restrictions to window.blur and window.focus
142182        https://bugs.webkit.org/show_bug.cgi?id=86969
142183
142184        Reviewed by Adam Barth.
142185
142186        Disallow window.blur altogether, and only allow window.focus to be
142187        invoked from the context that created this very window.
142188
142189        There's a new setting (windowFocusRestricted) that defaults to true. If
142190        false, the new restrictions are lifted. This can be used by ports that
142191        would prefer to stick with the old behavior.
142192
142193        For tests, this setting is accessible in window.internals.settings
142194
142195        To temporarily allow window.focus(), an object of type
142196        WindowFocusAllowedIndicator can be created. It is currently used to
142197        enable window.focus() during dispatch of the click event for
142198        notifications.
142199
142200        Tests: fast/dom/Window/mozilla-focus-blur.html
142201               fast/notifications/notifications-click-event-focus.html
142202
142203        * CMakeLists.txt:
142204        * GNUmakefile.list.am:
142205        * Target.pri:
142206        * WebCore.gypi:
142207        * WebCore.vcproj/WebCore.vcproj:
142208        * WebCore.xcodeproj/project.pbxproj:
142209        * notifications/Notification.cpp:
142210        (WebCore::Notification::dispatchClickEvent):
142211        * page/DOMWindow.cpp:
142212        (WebCore::DOMWindow::focus):
142213        (WebCore::DOMWindow::blur):
142214        * page/DOMWindow.h:
142215        (DOMWindow):
142216        * page/DOMWindow.idl:
142217        * page/Settings.cpp:
142218        (WebCore::Settings::Settings):
142219        * page/Settings.h:
142220        (Settings):
142221        (WebCore::Settings::setWindowFocusRestricted):
142222        (WebCore::Settings::windowFocusRestricted):
142223        * page/WindowFocusAllowedIndicator.cpp: Added.
142224        (WebCore):
142225        (WebCore::WindowFocusAllowedIndicator::windowFocusAllowed):
142226        (WebCore::WindowFocusAllowedIndicator::WindowFocusAllowedIndicator):
142227        (WebCore::WindowFocusAllowedIndicator::~WindowFocusAllowedIndicator):
142228        * page/WindowFocusAllowedIndicator.h: Added.
142229        (WebCore):
142230        (WindowFocusAllowedIndicator):
142231        * testing/InternalSettings.cpp:
142232        (WebCore::InternalSettings::InternalSettings):
142233        (WebCore::InternalSettings::restoreTo):
142234        (WebCore::InternalSettings::setWindowFocusRestricted):
142235        (WebCore):
142236        * testing/InternalSettings.h:
142237        (InternalSettings):
142238        * testing/InternalSettings.idl:
142239
1422402012-05-30  Mariusz Grzegorczyk  <mariusz.g@samsung.com>, Ryuan Choi  <ryuan.choi@samsung.com>
142241
142242        [EFL][WK2] Fix WebKit2-EFL build
142243        https://bugs.webkit.org/show_bug.cgi?id=83693
142244
142245        Reviewed by Carlos Garcia Campos.
142246
142247        * CMakeLists.txt: Add GestureTapHighlighter.cpp.
142248
1422492012-05-29  Antti Koivisto  <antti@apple.com>
142250
142251        Rename Foo::addSubresourceStyleURLs and Node::addSubresourceAttributeURLs
142252        https://bugs.webkit.org/show_bug.cgi?id=87739
142253
142254        Rubber-stamped by Andreas Kling.
142255
142256        Rename them to collectSubresourceURLs and collectSubresourceURLsFromAttributes to match
142257        the naming conventions.
142258        
142259        Move collectSubresourceURLsFromAttributes from Node to Element as only elements have attributes.
142260
142261        * css/CSSFontFaceSrcValue.cpp:
142262        (WebCore::CSSFontFaceSrcValue::collectSubresourceURLs):
142263        * css/CSSFontFaceSrcValue.h:
142264        (CSSFontFaceSrcValue):
142265        * css/CSSPrimitiveValue.cpp:
142266        (WebCore::CSSPrimitiveValue::collectSubresourceURLs):
142267        * css/CSSPrimitiveValue.h:
142268        (CSSPrimitiveValue):
142269        * css/CSSReflectValue.cpp:
142270        (WebCore::CSSReflectValue::collectSubresourceURLs):
142271        * css/CSSReflectValue.h:
142272        (CSSReflectValue):
142273        * css/CSSValue.cpp:
142274        (WebCore::CSSValue::collectSubresourceURLs):
142275        * css/CSSValue.h:
142276        (CSSValue):
142277        * css/CSSValueList.cpp:
142278        (WebCore::CSSValueList::collectSubresourceURLs):
142279        * css/CSSValueList.h:
142280        (CSSValueList):
142281        * css/StylePropertySet.cpp:
142282        (WebCore::StylePropertySet::collectSubresourceURLs):
142283        * css/StylePropertySet.h:
142284        (StylePropertySet):
142285        * css/StyleSheetContents.cpp:
142286        (WebCore::StyleSheetContents::collectSubresourceURLs):
142287        * css/StyleSheetContents.h:
142288        (StyleSheetContents):
142289        * dom/Element.h:
142290        (WebCore::Element::collectSubresourceURLsFromAttributes):
142291        (Element):
142292        * dom/Node.cpp:
142293        (WebCore::Node::getSubresourceURLs):
142294        * dom/Node.h:
142295        (WebCore):
142296        * dom/ProcessingInstruction.cpp:
142297        (WebCore::ProcessingInstruction::collectSubresourceURLsFromAttributes):
142298        * dom/ProcessingInstruction.h:
142299        (ProcessingInstruction):
142300        * dom/StyledElement.cpp:
142301        (WebCore::StyledElement::collectSubresourceURLsFromAttributes):
142302        * dom/StyledElement.h:
142303        (StyledElement):
142304        * html/HTMLBodyElement.cpp:
142305        (WebCore::HTMLBodyElement::collectSubresourceURLsFromAttributes):
142306        * html/HTMLBodyElement.h:
142307        (HTMLBodyElement):
142308        * html/HTMLEmbedElement.cpp:
142309        (WebCore::HTMLEmbedElement::collectSubresourceURLsFromAttributes):
142310        * html/HTMLEmbedElement.h:
142311        (HTMLEmbedElement):
142312        * html/HTMLImageElement.cpp:
142313        (WebCore::HTMLImageElement::collectSubresourceURLsFromAttributes):
142314        * html/HTMLImageElement.h:
142315        (HTMLImageElement):
142316        * html/HTMLInputElement.cpp:
142317        (WebCore::HTMLInputElement::collectSubresourceURLsFromAttributes):
142318        * html/HTMLInputElement.h:
142319        (HTMLInputElement):
142320        * html/HTMLLinkElement.cpp:
142321        (WebCore::HTMLLinkElement::collectSubresourceURLsFromAttributes):
142322        * html/HTMLLinkElement.h:
142323        (HTMLLinkElement):
142324        * html/HTMLObjectElement.cpp:
142325        (WebCore::HTMLObjectElement::collectSubresourceURLsFromAttributes):
142326        * html/HTMLObjectElement.h:
142327        (HTMLObjectElement):
142328        * html/HTMLParamElement.cpp:
142329        (WebCore::HTMLParamElement::collectSubresourceURLsFromAttributes):
142330        * html/HTMLParamElement.h:
142331        (HTMLParamElement):
142332        * html/HTMLScriptElement.cpp:
142333        (WebCore::HTMLScriptElement::collectSubresourceURLsFromAttributes):
142334        * html/HTMLScriptElement.h:
142335        (HTMLScriptElement):
142336        * html/HTMLStyleElement.cpp:
142337        (WebCore::HTMLStyleElement::collectSubresourceURLsFromAttributes):
142338        * html/HTMLStyleElement.h:
142339        (HTMLStyleElement):
142340        * html/HTMLTableCellElement.cpp:
142341        (WebCore::HTMLTableCellElement::collectSubresourceURLsFromAttributes):
142342        * html/HTMLTableCellElement.h:
142343        (HTMLTableCellElement):
142344        * html/HTMLTableElement.cpp:
142345        (WebCore::HTMLTableElement::collectSubresourceURLsFromAttributes):
142346        * html/HTMLTableElement.h:
142347        (HTMLTableElement):
142348        * svg/SVGCursorElement.cpp:
142349        (WebCore::SVGCursorElement::collectSubresourceURLsFromAttributes):
142350        * svg/SVGCursorElement.h:
142351        (SVGCursorElement):
142352        * svg/SVGFEImageElement.cpp:
142353        (WebCore::SVGFEImageElement::collectSubresourceURLsFromAttributes):
142354        * svg/SVGFEImageElement.h:
142355        (SVGFEImageElement):
142356        * svg/SVGImageElement.cpp:
142357        (WebCore::SVGImageElement::collectSubresourceURLsFromAttributes):
142358        * svg/SVGImageElement.h:
142359        (SVGImageElement):
142360        * svg/SVGScriptElement.cpp:
142361        (WebCore::SVGScriptElement::collectSubresourceURLsFromAttributes):
142362        * svg/SVGScriptElement.h:
142363        (SVGScriptElement):
142364
1423652012-05-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
142366
142367        Web Inspector: Fix JS compiler warning
142368        https://bugs.webkit.org/show_bug.cgi?id=87836
142369
142370        Reviewed by Yury Semikhatsky.
142371
142372        * inspector/front-end/SettingsScreen.js: Fix method annotation.
142373
1423742012-05-30  Zoltan Horvath  <zoltan@webkit.org>
142375
142376        [Qt] Set WebCore imagedecoders as default and add fallback to QImageDecoder
142377        https://bugs.webkit.org/show_bug.cgi?id=80400
142378
142379        This change modifies the default ImageDecoder for Qt-port from QImageDecoder to WebCore ImageDecoder.
142380        The new behavior is to use QImageDecoder only if WebCoreImageDecoder - and the platform - doesn't support 
142381        the requested image type.
142382        The WTF_USE_QT_IMAGE_DECODER macro has been removed, since it is no longer needed.
142383
142384        This change adds build depedency (except Qt-MAC and Qt-WIN platform) for libpng-dev and libjpeg-dev packages, 
142385        because PNG and JPEG imagedecoders need not only these libraries, but their headers also. Qmake-config 
142386        tests for these libraries were introduced in r110045.
142387
142388        Notice: with using libjpeg-turbo as a system library I measured 10% performance improvement on Methanol benchmark
142389        (collection of popular sites, page-loading benchmark) with this patch.
142390
142391        Reviewed by Simon Hausmann.
142392
142393        No new tests needed.
142394
142395        * Target.pri: Move WebCore ImageDecoder files out of guards. Remove ImageFrameQt.cpp from sources.
142396        * WebCore.pri: Move WebCore ImageDecoder include paths out of guards.
142397        * platform/MIMETypeRegistry.cpp:
142398        (WebCore::initializeSupportedImageMIMETypes): Add WebCore supported and Qt supported MIME types.
142399        (WebCore::initializeSupportedImageMIMETypesForEncoding): Use Qt supported MIME types.
142400        * platform/graphics/ImageSource.cpp: Remove unnecessary includes.
142401        * platform/graphics/ImageSource.h: Remove unnecessary typedefs.
142402        (WebCore):
142403        * platform/graphics/qt/ImageDecoderQt.cpp: Remove ImageDecoder::create, since it is no longer needed.
142404        (WebCore::ImageDecoderQt::filenameExtension): Remove unnecessary semicolon.
142405        (WebCore::ImageDecoderQt::internalHandleCurrentImage): Use QImage and ImageFrame instead of QPixmap.
142406        (WebCore):
142407        (WebCore::ImageFrame::asNewNativeImage): Moved here from removed ImageFrameQt.cpp.
142408        * platform/image-decoders/ImageDecoder.cpp: Reorganize the includes of the header.
142409        (WebCore::ImageDecoder::create): Add platform macro guarded fallback case for QImageDecoder. Add guards
142410        for JPEG, PNG, ICO decoder for Qt-MAC and Qt-WIN platform.
142411        * platform/image-decoders/ImageDecoder.h: Remove Qt-specific codes.
142412        (WebCore::ImageFrame::getAddr): Remove Qt-specific case, since it is no longer needed.
142413        (ImageFrame):
142414        * platform/image-decoders/qt/ImageFrameQt.cpp: Removed. Dead code, other code has been moved to
142415        ImageDecoderQt.cpp.
142416
1424172012-05-23  Kinuko Yasuda  <kinuko@chromium.org>
142418
142419        REGRESSION: We should allow null modificationTime when snapshot metadata is given
142420        https://bugs.webkit.org/show_bug.cgi?id=86811
142421
142422        Reviewed by Jian Li.
142423
142424        r117432 has introduced a new File constructor which allows the caller
142425        to pass in a snapshot file metadata. In the change we had considered the
142426        given metadata is valid if "metadata.length >= 0 AND metadata.lastModifiedDate != 0",
142427        but we should drop the latter condition (lastModifiedDate != 0) because
142428
142429        1. the value 0 is used to indicate the time information is unavailable in File, and
142430        2. it is valid per spec (http://dev.w3.org/2006/webapi/FileAPI/#dfn-lastModifiedDate says the UA must return null if the information is not available).
142431
142432        (Note: the current js/v8 binding returns Date(0) for the time value 0,
142433        which is still valid as epoch time but would fail to indicate the
142434        unavailability of the information. In this patch I added FIXME in
142435        File.idl and filed a separate issue http://webkit.org/b/87709)
142436
142437        No new tests as this change does not affect regular files/filesystems behavior.
142438        (Tests in Chrome OS port should be able to verify this)
142439
142440        * fileapi/File.cpp:
142441        (WebCore::File::lastModifiedDate):
142442        (WebCore::File::size):
142443        (WebCore::File::captureSnapshot):
142444        * fileapi/File.h:
142445        (File):
142446
1424472012-05-30  MORITA Hajime  <morrita@google.com>
142448
142449        [Shadow DOM] HTMLContentElement and HTMLShadowElement constructors should be visible.
142450        https://bugs.webkit.org/show_bug.cgi?id=87818
142451
142452        Reviewed by Kentaro Hara.
142453
142454        Added them as DOMWindow properties
142455
142456        Tests: fast/dom/shadow/content-element-api.html
142457               fast/dom/shadow/shadow-element.html
142458
142459        * page/DOMWindow.idl:
142460
1424612012-05-30  Mike Lawther  <mikelawther@chromium.org>
142462
142463        CSS3 calc: Implement CSSOM support
142464        https://bugs.webkit.org/show_bug.cgi?id=84551
142465
142466        Reviewed by Ryosuke Niwa.
142467
142468        Adds a pretty printer for the calc expression tree. 
142469
142470        Test: css3/calc/cssom.html
142471
142472        * css/CSSCalculationValue.cpp:
142473        (WebCore::CSSCalcValue::customCssText):
142474        (WebCore::CSSCalcPrimitiveValue::customCssText):
142475        (WebCore::CSSCalcBinaryOperation::customCssText):
142476        (CSSCalcBinaryOperation):
142477        * css/CSSCalculationValue.h:
142478        (CSSCalcExpressionNode):
142479
1424802012-05-29  Li Yin  <li.yin@intel.com>
142481
142482        [FileAPI] The result attribute of FileReader shuold use null to replace empty string
142483        https://bugs.webkit.org/show_bug.cgi?id=87578
142484
142485        Reviewed by Jian Li.
142486
142487        Spec: http://www.w3.org/TR/FileAPI/#dfn-result
142488        If the readyState is EMPTY (no read method has been called) or an error 
142489        in reading the File or Blob has occurred (using any read method), then the 
142490        result attribute MUST return null.
142491
142492        Currently, Firefox11, Opera and IE 10 follows the spec, but Webkit based
142493        browser doesn't.
142494        WebKit should change the returned value empty string into null to keep
142495        conformance with the spec.
142496
142497        Tests: fast/files/read-file-async.html
142498               fast/files/workers/worker-read-file-async.html
142499
142500        * fileapi/FileReader.cpp:
142501        (WebCore::FileReader::arrayBufferResult):
142502        (WebCore::FileReader::stringResult):
142503
1425042012-05-29  Mark Pilgrim  <pilgrim@chromium.org>
142505
142506        [Chromium] Move fileExists to Platform.h
142507        https://bugs.webkit.org/show_bug.cgi?id=87531
142508
142509        Reviewed by Adam Barth.
142510
142511        Call fileExists through fileUtilities(), not directly.
142512
142513        * platform/chromium/FileSystemChromium.cpp:
142514        (WebCore::fileExists):
142515
1425162012-05-29  Kentaro Hara  <haraken@chromium.org>
142517
142518        Remove a dummy style sheet from CSSParser::parseFlowThread()
142519        https://bugs.webkit.org/show_bug.cgi?id=87715
142520
142521        Reviewed by Darin Adler.
142522
142523        r118736 changed CSSGrammar.y so that it works fine with no style sheet.
142524        r118736 removed a dummy style sheet from CSSParser::parserSelector().
142525        Now we can safely remove a dummy style sheet from parserFlowThread().
142526
142527        Tests: fast/regions. No change in test results.
142528
142529        * css/CSSParser.cpp:
142530        (WebCore::CSSParser::parseFlowThread):
142531
1425322012-05-29  Yoshifumi Inoue  <yosin@chromium.org>
142533
142534        REGRESSION(r111497): The "option" element doesn't match CSS pseudo class :enabled
142535        https://bugs.webkit.org/show_bug.cgi?id=87719
142536
142537        Reviewed by Kent Tamura.
142538
142539        This patch added checking of "option" element for CSS pseudo class :enabled as same as
142540        :disabled to selector checker. Before r111497, it was done by using isFormControlElement.
142541        After that revision, HTMLOptionElement was no longer derived from HTMLFormControlElement.
142542
142543        Test: fast/form/select/optgroup-rendering.html
142544
142545        * css/SelectorChecker.cpp:
142546        (WebCore::SelectorChecker::checkOneSelector): Checking element is option element as same
142547        as PseudoDisabled in PseudoEnabled case.
142548
1425492012-05-29  Hayato Ito  <hayato@chromium.org>
142550
142551        Introduces ComposedShadowTreeParentWalker, extracted from ComposedShadowTreeWalker.
142552        https://bugs.webkit.org/show_bug.cgi?id=87004
142553
142554        Reviewed by Dimitri Glazkov.
142555
142556        Introduces a ComposedShadowTreeParentWalker, which is only used
142557        for traversing a parent node (including shadow roots and insertion
142558        points) and get rid of an equivalent function from
142559        ComposedShadowTreeWalker.
142560
142561        Before this patch, there is an inconsistency inside of
142562        ComposedShadowTreeWalker. The Walker uses 'Policy' to decide
142563        whether it should visit shadow roots or not, but
142564        parentIncludingInsertionPointAndShadowRoot() member function
142565        ignores the policy.  We can not add an assertion in its
142566        constructor due to this inconsistency.  To resolve it, we could
142567        add yet another special policy, but that makes the implementation
142568        complex and may add some overhead in runtime.  So separate the
142569        functionality into another class as ComposedShadowTreeParentWalker.
142570
142571        No new tests, no new functionality except for assertion.
142572
142573        * dom/ComposedShadowTreeWalker.cpp:
142574        (WebCore::ComposedShadowTreeWalker::ComposedShadowTreeWalker):
142575        (WebCore::ComposedShadowTreeParentWalker::ComposedShadowTreeParentWalker):
142576        (WebCore):
142577        (WebCore::ComposedShadowTreeParentWalker::parentIncludingInsertionPointAndShadowRoot):
142578        (WebCore::ComposedShadowTreeParentWalker::traverseParentIncludingInsertionPointAndShadowRoot):
142579        * dom/ComposedShadowTreeWalker.h:
142580        (ComposedShadowTreeWalker):
142581        (WebCore::ComposedShadowTreeWalker::assertPrecondition):
142582        (WebCore):
142583        (ComposedShadowTreeParentWalker):
142584        (WebCore::ComposedShadowTreeParentWalker::get):
142585        * dom/EventDispatcher.cpp:
142586        (WebCore::EventRelatedTargetAdjuster::adjust):
142587        (WebCore::EventDispatcher::ensureEventAncestors):
142588        * page/EventHandler.cpp:
142589        (WebCore::EventHandler::updateMouseEventTargetNode):
142590
1425912012-05-29  Hayato Ito  <hayato@chromium.org>
142592
142593        Add assertions to make sure that event's target and relatedTarget are accessible.
142594        https://bugs.webkit.org/show_bug.cgi?id=87641
142595
142596        Reviewed by Dimitri Glazkov.
142597
142598        No new tests. No new functionality except for assertions.
142599
142600        * dom/EventContext.cpp:
142601        (WebCore::EventContext::EventContext):
142602        * dom/EventContext.h:
142603        (WebCore):
142604        (EventContext):
142605        (WebCore::EventContext::setRelatedTarget):
142606        (WebCore::EventContext::accessible):
142607
1426082012-05-29  Kent Tamura  <tkent@chromium.org>
142609
142610        Fix inefficient usage of traverseNextNode()
142611        https://bugs.webkit.org/show_bug.cgi?id=87804
142612
142613        Reviewed by Ryosuke Niwa.
142614
142615        foo->traverseNextNode(foo) is equivalent to foo->firstChild(), and
142616        firstChild() is more efficient.
142617
142618        No new tests because of no behavior change.
142619
142620        * html/HTMLFieldSetElement.cpp:
142621        (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
142622        Replace traverseNextNode() with firstChild(), and shorten a variable name.
142623        * svg/SVGSVGElement.cpp:
142624        (WebCore::SVGSVGElement::getElementById):
142625        Replace traverseNextNode() with firstChild().
142626
1426272012-05-29  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
142628
142629        [BlackBerry] Loading media data with http authentication
142630        https://bugs.webkit.org/show_bug.cgi?id=84214
142631
142632        Reviewed by George Staikos.
142633
142634        RIM PR: 117618
142635        Implemented http authentication feature for media by implementing
142636        two interface functions in class MediaPlayerPrivate:
142637        onAuthenticationNeeded(): this function is triggered when MMR
142638        engine requires http authentication. We search the CredentialStorage
142639        to see if we have already stored existing credential information,
142640        or challenge user to provide it.
142641        OnAuthenticationAccepted(): this function is triggered when MMR
142642        engine accepts the credential information, and we need to save
142643        it in CredentialStorage for later use.
142644
142645        Internally reviewed by Max Feil <mfeil@qnx.com>.
142646
142647        Manual test case: blackberry/video-load-with-authentication.html
142648
142649        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
142650        (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
142651        (WebCore):
142652        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
142653        (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
142654        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
142655        (MediaPlayerPrivate):
142656
1426572012-05-29  MORITA Hajime  <morrita@google.com>
142658
142659        [Shadow DOM] Node distribution should be orthogonal from node attachment
142660        https://bugs.webkit.org/show_bug.cgi?id=87223
142661
142662        Reviewed by Dimitri Glazkov.
142663
142664        This chagne reorganizes Shadow DOM subtree distribution implementation.
142665
142666        Originally, it was interleaved across attach() of several classes like
142667        InsertionPoint and ShadowRoot. Its invalidation was also mixed as a part of
142668        the style recalculation and detach()-es.
142669
142670        This change extracts these bits of code to a set of ContentDistributor methods, which are
142671        facaded by two ElementShadow API. Following two API are the primary entry points:
142672
142673        - ElementShadow::ensureDistribution()
142674        - ElementShadow::invalidateDistribution()
142675
142676        The actual implementations are ContentDistributor::distribute() and
142677        ContentDistributor::invalidate() respectively.
142678
142679        When clients need to traverse composed tree, before attach() for
142680        example, they should call ensureDistribution() to make sure that
142681        the traversal data structure ("the distribution") is ready.  When
142682        there is any DOM mutation which can result a composed tree
142683        mutation, then clients should call invalidateDistribution() to
142684        mark the distribution being dated.
142685
142686        Here are such DOM mutations:
142687
142688        - The children of any ShadowRoots are changed,
142689        - The children of any InsertionPoints are changed,
142690        - The children of any host elements are changed,
142691        - Any insertion point is inserted to or removed from the shadow tree,
142692        - @select attribute of <content> is modified and
142693        - New ShadowRoot is added to the shadow tree.
142694
142695        Note that the validity of the distribution is tracked and
142696        unnecessary distribution requests are ignored.
142697
142698        After the invalidation, that shadow subtrees are detached once and
142699        request  their  re-attachment  through  the  style  recalculation.
142700        Then,  on the  responding  style recalculation  and attach(),  new
142701        distribution will be computed.
142702
142703        No new tests. Covered by existing tests.
142704
142705        * dom/Element.cpp:
142706        (WebCore::Element::~Element):
142707        (WebCore::Element::childrenChanged):
142708        * dom/ElementShadow.cpp:
142709        (WebCore::ElementShadow::~ElementShadow):
142710        (WebCore::ElementShadow::addShadowRoot):
142711        (WebCore::ElementShadow::removeAllShadowRoots):
142712        (WebCore::ElementShadow::attach):
142713        (WebCore::ElementShadow::recalcStyle):
142714        (WebCore::ElementShadow::ensureDistribution):
142715        (WebCore::ElementShadow::invalidateDistribution):
142716        * dom/ElementShadow.h:
142717        (ElementShadow):
142718        * dom/NodeRenderingContext.cpp:
142719        (WebCore::NodeRenderingContext::NodeRenderingContext):
142720        (WebCore::NodeRendererFactory::createRendererIfNeeded):
142721        * dom/NodeRenderingContext.h:
142722        (NodeRenderingContext):
142723        * dom/ShadowRoot.cpp:
142724        (WebCore::ShadowRoot::setApplyAuthorStyles):
142725        (WebCore::ShadowRoot::attach):
142726        (WebCore::ShadowRoot::childrenChanged):
142727        (WebCore):
142728        * dom/ShadowRoot.h:
142729        (ShadowRoot):
142730        * html/HTMLFormControlElement.cpp:
142731        * html/ValidationMessage.cpp:
142732        (WebCore::ValidationMessage::buildBubbleTree):
142733        * html/shadow/ContentDistributor.cpp:
142734        (WebCore::ContentDistributor::ContentDistributor):
142735        (WebCore::ContentDistributor::~ContentDistributor):
142736        (WebCore::ContentDistributor::findInsertionPointFor):
142737        (WebCore::ContentDistributor::distribute):
142738        (WebCore::ContentDistributor::invalidate):
142739        (WebCore::ContentDistributor::finishInivalidation):
142740        (WebCore::ContentDistributor::distributeSelectionsTo):
142741        (WebCore::ContentDistributor::distributeShadowChildrenTo):
142742        (WebCore::ContentDistributor::invalidateDistributionIn):
142743        * html/shadow/ContentDistributor.h:
142744        (WebCore::ContentDistributor::needsInvalidation):
142745        (ContentDistributor):
142746        (WebCore::ContentDistributor::needsDistribution):
142747        * html/shadow/HTMLContentElement.cpp:
142748        (WebCore::HTMLContentElement::parseAttribute):
142749        * html/shadow/InsertionPoint.cpp:
142750        (WebCore::InsertionPoint::attach):
142751        (WebCore::InsertionPoint::detach):
142752        (WebCore::InsertionPoint::nextTo):
142753        (WebCore::InsertionPoint::previousTo):
142754        (WebCore::InsertionPoint::childrenChanged):
142755        * html/shadow/InsertionPoint.h:
142756        (WebCore::InsertionPoint::setDistribution):
142757        (WebCore::InsertionPoint::clearDistribution):
142758        (InsertionPoint):
142759
1427602012-05-29  Luke Macpherson  <macpherson@chromium.org>
142761
142762        Implement post-landing feedback for WebKitCSSTransformValue::customCSSText().
142763        https://bugs.webkit.org/show_bug.cgi?id=87684
142764
142765        Reviewed by Darin Adler.
142766
142767        Darin provided some style suggesting on https://bugs.webkit.org/show_bug.cgi?id=87462 after it landed.
142768        This patch incorporates those suggestions, namely using 0 instead of empty string for UnknownTransformOperation
142769        and WTF_ARRAY_LENGTH instead of hard coding the array length.
142770
142771        Covered by existing transform tests.
142772
142773        * css/WebKitCSSTransformValue.cpp:
142774        (WebCore):
142775        (WebCore::WebKitCSSTransformValue::customCssText):
142776
1427772012-05-29  Eric Seidel  <eric@webkit.org>
142778
142779        Fix ENABLE_IFRAME_SEAMLESS to actually fully disable <iframe seamless>
142780        https://bugs.webkit.org/show_bug.cgi?id=87646
142781
142782        Reviewed by Adam Barth.
142783
142784        In the process of moving the seamless feature out of github and into bugs.webkit.org
142785        multiple versions of the shouldDisplaySeamlessly function got written
142786        (and moved from HTMLIFrameElement to Document), but only one of them was wrapped
142787        in ENABLE_IFRAME_SEAMLESS.  HTMLIFrameElement was checking mayDisplaySeamlessly
142788        directly (as was my original design), which got around the ENABLE_IFRAME_SEAMLESS check.
142789        I've fixed this oversight, and the feature is now off when we tell it to be off.
142790
142791        This is covered by many existing tests.  I've verified locally that
142792        all tests fail when ENABLE_IFRAME_SEAMLESS is disabled instead of
142793        only some of them.
142794
142795        * dom/SecurityContext.h:
142796        (SecurityContext):
142797        * html/HTMLIFrameElement.cpp:
142798        (WebCore::HTMLIFrameElement::shouldDisplaySeamlessly):
142799
1428002012-05-29  Scott Graham  <scottmg@chromium.org>
142801
142802        Fix warning in preprocessing Source/WebCore/dom/DOMError.idl
142803        https://bugs.webkit.org/show_bug.cgi?id=87763
142804
142805        Reviewed by Adam Barth.
142806
142807        Add newline at end of file to avoid warning:
142808        ../dom/DOMError.idl:35:2: warning: no newline at end of file
142809
142810        * dom/DOMError.idl:
142811
1428122012-05-29  Mark Pilgrim  <pilgrim@chromium.org>
142813
142814        [Chromium] Move fileExists to Platform.h
142815        https://bugs.webkit.org/show_bug.cgi?id=87531
142816
142817        Reviewed by Adam Barth.
142818
142819        Part of a refactoring series. See tracking bug 82948.
142820
142821        * platform/chromium/FileSystemChromium.cpp:
142822        (WebCore::fileExists):
142823        * platform/chromium/PlatformSupport.h:
142824        (PlatformSupport):
142825
1428262012-05-29  Kentaro Hara  <haraken@chromium.org>
142827
142828        [V8] Rename v8Null() to v8NullWithCheck()
142829        https://bugs.webkit.org/show_bug.cgi?id=87713
142830
142831        Reviewed by Adam Barth.
142832
142833        In IRC, cmarcelo@ pointed out that v8::Null() and v8Null()
142834        are confusing. This patch renames v8Null() to v8NullWithCheck().
142835
142836        No tests. No behavior change.
142837
142838        * bindings/scripts/CodeGeneratorV8.pm:
142839        (GenerateHeader):
142840        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
142841        (WebCore::toV8):
142842        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
142843        (WebCore::toV8):
142844        * bindings/scripts/test/V8/V8TestEventConstructor.h:
142845        (WebCore::toV8):
142846        * bindings/scripts/test/V8/V8TestEventTarget.h:
142847        (WebCore::toV8):
142848        * bindings/scripts/test/V8/V8TestException.h:
142849        (WebCore::toV8):
142850        * bindings/scripts/test/V8/V8TestInterface.h:
142851        (WebCore::toV8):
142852        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
142853        (WebCore::toV8):
142854        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
142855        (WebCore::toV8):
142856        * bindings/scripts/test/V8/V8TestNode.h:
142857        (WebCore::toV8):
142858        * bindings/scripts/test/V8/V8TestObj.h:
142859        (WebCore::toV8):
142860        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
142861        (WebCore::toV8):
142862        * bindings/v8/V8Binding.h:
142863        (WebCore::v8NullWithCheck):
142864        (WebCore::v8DateOrNull):
142865
1428662012-05-29  Christophe Dumez  <christophe.dumez@intel.com>
142867
142868        Some Content Security Policy console messages are missing line numbers in JSC
142869        https://bugs.webkit.org/show_bug.cgi?id=87558
142870
142871        Reviewed by Adam Barth.
142872
142873        Make ScriptController::eventHandlerPosition() behave the same way on
142874        JSC than V8. This means that TextPosition::minimumPosition() is
142875        returned if parser is null, instead of
142876        TextPosition::belowRangePosition(). The line numbers are now correctly
142877        printed in the output of Content Security Policy tests.
142878
142879        Tests: http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url.html
142880               http/tests/security/contentSecurityPolicy/javascript-url-blocked.html
142881
142882        * bindings/js/ScriptController.cpp:
142883        (WebCore::ScriptController::eventHandlerPosition):
142884
1428852012-05-29  Shawn Singh  <shawnsingh@chromium.org>
142886
142887        [chromium] make WebTransformationMatrix object usable by non-webkit code
142888        https://bugs.webkit.org/show_bug.cgi?id=87315
142889
142890        Reviewed by James Robinson.
142891
142892        This change is covered by existing tests and by whether it
142893        compiles. There should be no changes in behavior.
142894
142895        * platform/chromium/support/WebTransformationMatrix.cpp:
142896        (WebKit::WebTransformationMatrix::WebTransformationMatrix):
142897        (WebKit::WebTransformationMatrix::operator=):
142898        (WebKit::WebTransformationMatrix::operator==):
142899        (WebKit::WebTransformationMatrix::inverse):
142900        (WebKit::WebTransformationMatrix::to2dTransform):
142901        (WebKit::WebTransformationMatrix::multiply):
142902        (WebKit::WebTransformationMatrix::makeIdentity):
142903        (WebKit::WebTransformationMatrix::translate):
142904        (WebKit::WebTransformationMatrix::translate3d):
142905        (WebKit::WebTransformationMatrix::translateRight3d):
142906        (WebKit::WebTransformationMatrix::scale):
142907        (WebKit::WebTransformationMatrix::scaleNonUniform):
142908        (WebKit::WebTransformationMatrix::scale3d):
142909        (WebKit::WebTransformationMatrix::rotate):
142910        (WebKit::WebTransformationMatrix::rotate3d):
142911        (WebKit::WebTransformationMatrix::skewX):
142912        (WebKit::WebTransformationMatrix::skewY):
142913        (WebKit::WebTransformationMatrix::applyPerspective):
142914        (WebKit::WebTransformationMatrix::blend):
142915        (WebKit::WebTransformationMatrix::hasPerspective):
142916        (WebKit::WebTransformationMatrix::isInvertible):
142917        (WebKit::WebTransformationMatrix::isBackFaceVisible):
142918        (WebKit::WebTransformationMatrix::isIdentity):
142919        (WebKit::WebTransformationMatrix::isIdentityOrTranslation):
142920        (WebKit::WebTransformationMatrix::isIntegerTranslation):
142921        (WebKit::WebTransformationMatrix::m11):
142922        (WebKit::WebTransformationMatrix::setM11):
142923        (WebKit::WebTransformationMatrix::m12):
142924        (WebKit::WebTransformationMatrix::setM12):
142925        (WebKit::WebTransformationMatrix::m13):
142926        (WebKit::WebTransformationMatrix::setM13):
142927        (WebKit::WebTransformationMatrix::m14):
142928        (WebKit::WebTransformationMatrix::setM14):
142929        (WebKit::WebTransformationMatrix::m21):
142930        (WebKit::WebTransformationMatrix::setM21):
142931        (WebKit::WebTransformationMatrix::m22):
142932        (WebKit::WebTransformationMatrix::setM22):
142933        (WebKit::WebTransformationMatrix::m23):
142934        (WebKit::WebTransformationMatrix::setM23):
142935        (WebKit::WebTransformationMatrix::m24):
142936        (WebKit::WebTransformationMatrix::setM24):
142937        (WebKit::WebTransformationMatrix::m31):
142938        (WebKit::WebTransformationMatrix::setM31):
142939        (WebKit::WebTransformationMatrix::m32):
142940        (WebKit::WebTransformationMatrix::setM32):
142941        (WebKit::WebTransformationMatrix::m33):
142942        (WebKit::WebTransformationMatrix::setM33):
142943        (WebKit::WebTransformationMatrix::m34):
142944        (WebKit::WebTransformationMatrix::setM34):
142945        (WebKit::WebTransformationMatrix::m41):
142946        (WebKit::WebTransformationMatrix::setM41):
142947        (WebKit::WebTransformationMatrix::m42):
142948        (WebKit::WebTransformationMatrix::setM42):
142949        (WebKit::WebTransformationMatrix::m43):
142950        (WebKit::WebTransformationMatrix::setM43):
142951        (WebKit::WebTransformationMatrix::m44):
142952        (WebKit::WebTransformationMatrix::setM44):
142953        (WebKit::WebTransformationMatrix::a):
142954        (WebKit::WebTransformationMatrix::setA):
142955        (WebKit::WebTransformationMatrix::b):
142956        (WebKit::WebTransformationMatrix::setB):
142957        (WebKit::WebTransformationMatrix::c):
142958        (WebKit::WebTransformationMatrix::setC):
142959        (WebKit::WebTransformationMatrix::d):
142960        (WebKit::WebTransformationMatrix::setD):
142961        (WebKit::WebTransformationMatrix::e):
142962        (WebKit::WebTransformationMatrix::setE):
142963        (WebKit::WebTransformationMatrix::f):
142964        (WebKit::WebTransformationMatrix::setF):
142965        (WebKit::WebTransformationMatrix::toWebCoreTransform):
142966        (WebKit::WebTransformationMatrix::mapRect):
142967        (WebKit::WebTransformationMatrix::mapPoint):
142968        (WebKit::WebTransformationMatrix::mapQuad):
142969        (WebKit::WebTransformationMatrix::projectPoint):
142970
1429712012-05-29  Alexis Menard  <alexis.menard@openbossa.org>
142972
142973        [CSS3 Backgrounds and Borders] Implement box-decoration-break parsing.
142974        https://bugs.webkit.org/show_bug.cgi?id=87678
142975
142976        Reviewed by Eric Seidel.
142977
142978        Implement the parsing part of box-decoration-break. The specification
142979        is located at http://www.w3.org/TR/css3-background/#box-decoration-break.
142980        So far Opera implements it. This patch only implements the parsing part of
142981        the property. A following patch will implement the rendering part. Despite
142982        the rendering part missing it improves http://css3test.com by 1%.
142983
142984        Test: fast/box-decoration-break/box-decoration-break-parsing.html
142985
142986        * css/CSSComputedStyleDeclaration.cpp:
142987        (WebCore):
142988        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
142989        * css/CSSParser.cpp:
142990        (WebCore::isValidKeywordPropertyAndValue):
142991        (WebCore::isKeywordPropertyID):
142992        * css/CSSPrimitiveValueMappings.h:
142993        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
142994        (WebCore):
142995        (WebCore::CSSPrimitiveValue::operator EBoxDecorationBreak):
142996        * css/CSSProperty.cpp:
142997        (WebCore::CSSProperty::isInheritedProperty):
142998        * css/CSSPropertyNames.in:
142999        * css/CSSValueKeywords.in:
143000        * css/StyleBuilder.cpp:
143001        (WebCore::StyleBuilder::StyleBuilder):
143002        * rendering/style/RenderStyle.h:
143003        * rendering/style/RenderStyleConstants.h:
143004        * rendering/style/StyleBoxData.cpp:
143005        (WebCore::StyleBoxData::StyleBoxData):
143006        (WebCore::StyleBoxData::operator==):
143007        * rendering/style/StyleBoxData.h:
143008        (WebCore::StyleBoxData::boxDecorationBreak):
143009        (StyleBoxData):
143010
1430112012-05-29  David Barr  <davidbarr@chromium.org>
143012
143013        [text-overflow: ellipsis] WebKit should ignore the ellipsis for the purpose of dispatching mouse events
143014        https://bugs.webkit.org/show_bug.cgi?id=63781
143015
143016        Reviewed by Eric Seidel.
143017
143018        "Ellipsing only affects rendering and must not affect layout nor dispatching of pointer events."
143019        http://www.w3.org/TR/2012/WD-css3-ui-20120117/#text-overflow
143020
143021        Test: fast/css/text-overflow-ellipsis-hit-test.html
143022
143023        * rendering/EllipsisBox.cpp:
143024        (WebCore::EllipsisBox::nodeAtPoint): Always return false.
143025
1430262012-05-29  Gavin Peters  <gavinp@chromium.org>
143027
143028        [Chromium] Remove assertions on state in Prerender.cpp
143029        https://bugs.webkit.org/show_bug.cgi?id=87746
143030
143031        Chrome was crashing in the new Prerender API on Google Web Search; this was because the DOM would stop(), setting the
143032        state of the Prerenders in the document to Inactive, but an asyncronous GC would later come come along and trigger the
143033        removedFromDocument behaviour on each element, including the <link> element launching the prerender.  This causes an
143034        assertion failure.
143035
143036        I believe the late-deletion of the DOM, and the HTMLElement::removedFromDocument calls are legal, and it was the
143037        overzealous assertions in Prerender that were inappropriate.
143038
143039        Reviewed by Adam Barth.
143040
143041        No new automated tests, working on a Chromium browser test. Manually test by entering many prerender and non-prerendered
143042        queries into Google Web Search.
143043
143044        * platform/chromium/Prerender.cpp:
143045        (WebCore::Prerender::Prerender):
143046        (WebCore::Prerender::add):
143047        (WebCore::Prerender::cancel):
143048        (WebCore::Prerender::abandon):
143049        * platform/chromium/Prerender.h:
143050        (Prerender):
143051
1430522012-05-29  Victor Carbune  <victor@rosedu.org>
143053
143054        Display cues in the controls area
143055        https://bugs.webkit.org/show_bug.cgi?id=87591
143056
143057        Reviewed by Eric Carlson.
143058
143059        Changed the behaviour to implicitly hide the volume slidebar
143060        if the controls are hidden (due mouse moving out of the video
143061        area or controls are toggled through JS).
143062
143063        This seems to be the simplest fix to this issue, otherwise
143064        on toggling the display:none property on the controls the
143065        volume slidebar might appear below the video.
143066
143067        Re-enabled failing tests for this functionality.
143068
143069        * html/shadow/MediaControlElements.cpp:
143070        (WebCore::MediaControlPanelElement::makeTransparent): Re-enabled
143071        timer to set the display:none property on the controls.
143072        * html/shadow/MediaControlRootElement.cpp:
143073        (WebCore::MediaControlRootElement::hide): Added a call to hide
143074        the volume slider.
143075        (WebCore::MediaControlRootElement::makeTransparent): Same.
143076        * html/shadow/MediaControlRootElementChromium.cpp:
143077        (WebCore::MediaControlRootElementChromium::hide): Same.
143078        (WebCore::MediaControlRootElementChromium::makeTransparent): Same.
143079
1430802012-05-29  Adrienne Walker  <enne@google.com>
143081
143082        Fix transparent iframes with composited contents in WK1 on Mac
143083        https://bugs.webkit.org/show_bug.cgi?id=76478
143084
143085        Reviewed by Simon Fraser.
143086
143087        Test: compositing/iframes/repaint-after-losing-scrollbars.html
143088
143089        * page/FrameView.cpp:
143090        (WebCore::FrameView::useSlowRepaints):
143091
1430922012-05-29  David Hyatt  <hyatt@apple.com>
143093
143094        https://bugs.webkit.org/show_bug.cgi?id=87787
143095        
143096        [New Multicolumn] Refactor the region and flow thread code so that it can pick up the correct column widths
143097        and heights when determining the logical width and height of the flow thread itself.
143098
143099        This patch adds new virtual methods to RenderRegion: logicalWidthForFlowThreadContent and logicalHeightForFlowThreadContent.
143100        For normal regions, these methods return the contentWidth and contentHeight of the regions themselves. For column sets,
143101        however, these methods actually return the column widths and heights.
143102        
143103        This allows the flow thread to properly lay out according to the column width.
143104        
143105        Region invalidation is also done properly by using these new methods.
143106        
143107        In some cases the code is actually simplified, since we can get rid of some isHorizontalWritingMode() switching.
143108        
143109        With this patch the flow thread now actually lays out and paints at the right width (spilling out of the region set in a single unbroken
143110        column).
143111
143112        Reviewed by Dan Bernstein.
143113
143114        * rendering/RenderFlowThread.cpp:
143115        (WebCore::RenderFlowThread::layout):
143116        (WebCore::RenderFlowThread::computeLogicalWidth):
143117        (WebCore::RenderFlowThread::computeLogicalHeight):
143118        * rendering/RenderMultiColumnBlock.cpp:
143119        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
143120        * rendering/RenderMultiColumnBlock.h:
143121        (WebCore::RenderMultiColumnBlock::isRenderMultiColumnBlock):
143122        (RenderMultiColumnBlock):
143123        (WebCore::toRenderMultiColumnBlock):
143124        (WebCore):
143125        * rendering/RenderMultiColumnSet.cpp:
143126        (WebCore::RenderMultiColumnSet::computeLogicalWidth):
143127        (WebCore):
143128        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
143129        * rendering/RenderMultiColumnSet.h:
143130        (WebCore::RenderMultiColumnSet::setColumnWidthAndCount):
143131        (RenderMultiColumnSet):
143132        * rendering/RenderObject.h:
143133        (WebCore::RenderObject::isRenderMultiColumnBlock):
143134        * rendering/RenderRegion.cpp:
143135        (WebCore::RenderRegion::logicalWidthForFlowThreadContent):
143136        (WebCore):
143137        (WebCore::RenderRegion::logicalHeightForFlowThreadContent):
143138        (WebCore::RenderRegion::layout):
143139        * rendering/RenderRegion.h:
143140        (RenderRegion):
143141
1431422012-05-29  Alec Flett  <alecflett@chromium.org>
143143
143144        IndexedDB: Align codes and names for IDB-specific and DOM-specific errors/exceptions
143145        https://bugs.webkit.org/show_bug.cgi?id=87276
143146
143147        Reviewed by Tony Chang.
143148
143149        No new tests. Existing tests have been updated to use the new
143150        exception constant values.
143151
143152        The IDB spec has evolved to DOM4-style DOMExceptions, which are
143153        referred to with MixedCase, string-based style names for
143154        exceptions rather than UNDERSCORE_CONSTANT_ERR codes. Change to
143155        use MixedCase error/exception names, and tease out the
143156        IDB-specific exception/error codes/names from the system-level
143157        codes. Make sure that the legacy IDB-masked exception code values
143158        match the DOM exception values. Make sure that
143159        IDBDatabaseException[exception.name] still works.
143160
143161        * Modules/indexeddb/IDBDatabase.cpp:
143162        (WebCore::IDBDatabase::createObjectStore):
143163        (WebCore::IDBDatabase::transaction):
143164        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
143165        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
143166        (WebCore::IDBDatabaseBackendImpl::setVersion):
143167        (WebCore::IDBDatabaseBackendImpl::transaction):
143168        * Modules/indexeddb/IDBDatabaseException.cpp:
143169        (IDBDatabaseExceptionNameDescription):
143170        (WebCore):
143171        (WebCore::IDBDatabaseException::initializeDescription):
143172        * Modules/indexeddb/IDBDatabaseException.h:
143173        * Modules/indexeddb/IDBDatabaseException.idl:
143174        * Modules/indexeddb/IDBObjectStore.cpp:
143175        (WebCore::IDBObjectStore::createIndex):
143176        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
143177        (WebCore::IDBObjectStoreBackendImpl::index):
143178        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
143179        * Modules/indexeddb/IDBRequest.cpp:
143180        (WebCore::IDBRequest::abort):
143181        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
143182        (WebCore::IDBTransactionBackendImpl::objectStore):
143183
1431842012-05-29  David Hyatt  <hyatt@apple.com>
143185
143186        https://bugs.webkit.org/show_bug.cgi?id=87775
143187
143188        [New Multicolumn] Make sure RenderMultiColumnSets have their own copy of the count, width and height of their columns. 
143189
143190        Reviewed by Anders Carlsson.
143191
143192        * rendering/RenderMultiColumnBlock.cpp:
143193        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
143194        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
143195        * rendering/RenderMultiColumnBlock.h:
143196        (WebCore::RenderMultiColumnBlock::columnWidth):
143197        (WebCore::RenderMultiColumnBlock::columnCount):
143198        (RenderMultiColumnBlock):
143199        * rendering/RenderMultiColumnSet.cpp:
143200        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
143201        * rendering/RenderMultiColumnSet.h:
143202        (WebCore::RenderMultiColumnSet::columnCount):
143203        (WebCore::RenderMultiColumnSet::columnWidth):
143204        (WebCore::RenderMultiColumnSet::columnHeight):
143205        (RenderMultiColumnSet):
143206        (WebCore::RenderMultiColumnSet::setColumnWidthAndCount):
143207        (WebCore::RenderMultiColumnSet::setColumnHeight):
143208
1432092012-05-29  Simon Fraser  <simon.fraser@apple.com>
143210
143211        Incomplete repaint on twitter.com when replying to a tweet
143212        https://bugs.webkit.org/show_bug.cgi?id=87553
143213
143214        Reviewed by Dean Jackson.
143215        
143216        Style changes can cause a compositing layer to change between
143217        requiring its own backing store or not, e.g. with the addition
143218        or removal of a transform.
143219        
143220        When that happens, we need to repaint the ancesetor layer that
143221        this layer was, or will be drawing into.
143222        
143223        Factored some code out of layerWillBeRemoved() to be able to
143224        also call it from setRequiresOwnBackingStore().
143225
143226        New manual test, ManualTests/compositing/requires-backing-change.html.
143227        I was not able to get an automated pixel test to work.
143228
143229        * rendering/RenderLayerBacking.cpp:
143230        (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
143231        * rendering/RenderLayerCompositor.cpp:
143232        (WebCore::RenderLayerCompositor::updateCompositingLayers): Remove trailing whitespace.
143233        (WebCore::RenderLayerCompositor::repaintInCompositedAncestor):
143234        (WebCore::RenderLayerCompositor::layerWillBeRemoved):
143235        * rendering/RenderLayerCompositor.h:
143236
1432372012-05-29  David Hyatt  <hyatt@apple.com>
143238
143239        https://bugs.webkit.org/show_bug.cgi?id=87771
143240        
143241        [New Multicolumn] Make sure we have one column set by default and add it to the flow thread's region list.
143242
143243        Reviewed by Anders Carlsson.
143244
143245        * rendering/RenderMultiColumnBlock.cpp:
143246        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
143247        * rendering/RenderRegion.cpp:
143248        (WebCore::RenderRegion::RenderRegion):
143249
1432502012-05-29  John Sullivan  <sullivan@apple.com>
143251
143252        Update label for blacklisted plug-in
143253        https://bugs.webkit.org/show_bug.cgi?id=87767
143254        rdar://problem/11550048
143255        
143256        Reviewed by Kevin Decker.
143257
143258        * English.lproj/Localizable.strings:
143259        Regenerated.
143260        
143261        * platform/LocalizedStrings.cpp:
143262        (WebCore::insecurePluginVersionText):
143263        Changed this string.
143264
1432652012-05-29  Julien Chaffraix  <jchaffraix@webkit.org>
143266
143267        REGRESSION(r111742): box-sizing: border-box doesn't work on fixed table layout
143268        https://bugs.webkit.org/show_bug.cgi?id=87536
143269
143270        Reviewed by Tony Chang.
143271
143272        Tests: fast/table/fixed-table-layout/cell-box-sizing-fixed-table-layout.html
143273               fast/table/fixed-table-layout/column-box-sizing-fixed-table-layout.html
143274               fast/table/fixed-table-layout/column-group-box-sizing-fixed-table-layout.html
143275               fast/table/fixed-table-layout/column-in-column-group-box-sizing-fixed-table-layout.html
143276
143277        The change in r111742 completely ignored border-sizing (following the table's code lead unfortunately).
143278        The issue is that we would count the borders and paddings twice for the border-box case which would lead
143279        to the content-box including them too. From a web-author, this behavior is equivalent to ignoring box-sizing.
143280
143281        * rendering/FixedTableLayout.cpp:
143282        (WebCore::FixedTableLayout::calcWidthArray):
143283        Reworked the function to properly use computeBorderBoxLogicalWidth() for correctness. This matches
143284        what RenderBox and the rendering code does generally. Also refactored the code to avoid the need
143285        for local variables and make it more readable.
143286
1432872012-05-25  Ojan Vafai  <ojan@chromium.org>
143288
143289        Absolute positioned elements in a relative positioned CSS3 Flexbox fail to display properly
143290        https://bugs.webkit.org/show_bug.cgi?id=58453
143291
143292        Reviewed by Tony Chang.
143293
143294        Test: css3/flexbox/align-absolute-child.html
143295
143296        * rendering/RenderFlexibleBox.cpp:
143297        (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
143298        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
143299        (WebCore::RenderFlexibleBox::adjustAlignmentForChild):
143300        When adjusting positioned items, adjust their static position, not their location.
143301        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
143302        (WebCore::RenderFlexibleBox::flipForWrapReverse):
143303        * rendering/RenderFlexibleBox.h:
143304
1433052012-05-29  Abhishek Arya  <inferno@chromium.org>
143306
143307        Crash due to text fragment destruction when updating first-letter block.
143308        https://bugs.webkit.org/show_bug.cgi?id=87751
143309
143310        Reviewed by Eric Seidel.
143311
143312        Test: fast/text/text-fragment-first-letter-update-crash.html
143313
143314        * rendering/RenderObject.cpp:
143315        (WebCore::RenderObject::setStyle):
143316
1433172012-05-29  David Hyatt  <hyatt@apple.com>
143318
143319        https://bugs.webkit.org/show_bug.cgi?id=87764
143320        
143321        Add implementation of checkForPaginationLogicalHeightChange to RenderMultiColumnBlock.
143322        
143323        Also stub out ensureColumnSets() and write a comment describing how it's going to work.
143324
143325        Reviewed by Anders Carlsson.
143326
143327        * rendering/RenderMultiColumnBlock.cpp:
143328        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
143329        (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
143330        (WebCore):
143331        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
143332        * rendering/RenderMultiColumnBlock.h:
143333        (WebCore::RenderMultiColumnBlock::columnHeight):
143334        (WebCore::RenderMultiColumnBlock::setColumnHeight):
143335        (RenderMultiColumnBlock):
143336
1433372012-05-29  Sheriff Bot  <webkit.review.bot@gmail.com>
143338
143339        Unreviewed, rolling out r118620.
143340        http://trac.webkit.org/changeset/118620
143341        https://bugs.webkit.org/show_bug.cgi?id=87760
143342
143343        This patch causes regression to read an empty file/blob via
143344        FileReader (Requested by jianli on #webkit).
143345
143346        * fileapi/FileReader.cpp:
143347        (WebCore::FileReader::stringResult):
143348
1433492012-05-29  Andreas Kling  <kling@webkit.org>
143350
143351        Make StylePropertySet a variable-sized object to reduce memory use.
143352        <http://webkit.org/b/87506>
143353
143354        Reviewed by Antti Koivisto.
143355
143356        Make immutable StylePropertySet objects variable-sized and allocate exactly
143357        the space needed to hold the CSSProperty objects passed at construction.
143358        This lets us avoid the memory overhead of Vector<CSSProperty, 4>.
143359
143360        Renamed StylePropertySet::adopt* to create and createImmutable since they no
143361        longer adopt the incoming vector. More cleanup will follow in this area.
143362
143363        This reduces memory usage across the board - the more CSS declarations,
143364        the bigger the benefit. As an example, we save around ~0.5MB on wsj.com.
143365
143366        * css/CSSComputedStyleDeclaration.cpp:
143367        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
143368        * css/CSSParser.cpp:
143369        (WebCore::CSSParser::createStylePropertySet):
143370        * css/StylePropertySet.cpp:
143371        (WebCore::StylePropertySet::createImmutable):
143372        (WebCore::StylePropertySet::StylePropertySet):
143373        (WebCore::StylePropertySet::~StylePropertySet):
143374        (WebCore::StylePropertySet::copyPropertiesFrom):
143375        (WebCore::StylePropertySet::removeProperty):
143376        (WebCore::StylePropertySet::setProperty):
143377        (WebCore::StylePropertySet::parseDeclaration):
143378        (WebCore::StylePropertySet::addParsedProperties):
143379        (WebCore::StylePropertySet::asText):
143380        (WebCore::StylePropertySet::merge):
143381        (WebCore::StylePropertySet::addSubresourceStyleURLs):
143382        (WebCore::StylePropertySet::removePropertiesInSet):
143383        (WebCore::StylePropertySet::findPropertyWithId):
143384        (WebCore::StylePropertySet::removeEquivalentProperties):
143385        (WebCore::StylePropertySet::copyPropertiesInSet):
143386        (WebCore::StylePropertySet::averageSizeInBytes):
143387        (SameSizeAsStylePropertySet):
143388        (WebCore::StylePropertySet::append):
143389        * css/StylePropertySet.h:
143390        (WebCore::StylePropertySet::create):
143391        (StylePropertySet):
143392        (WebCore::StylePropertySet::propertyAt):
143393        (WebCore::StylePropertySet::propertyCount):
143394        (WebCore::StylePropertySet::isEmpty):
143395        (WebCore::StylePropertySet::array):
143396        * dom/StyledElement.cpp:
143397        (WebCore::StyledElement::updateAttributeStyle):
143398
1433992012-05-29  David Hyatt  <hyatt@apple.com>
143400
143401        https://bugs.webkit.org/show_bug.cgi?id=87759
143402        
143403        Pull the initial page logical height checking for columns into its own separate function. This
143404        will allow the derived RenderMultiColumnBlock class to do its own setup there. It also has the
143405        effect of cleaning up layoutBlock even for the existing code.
143406
143407        Reviewed by Anders Carlsson.
143408
143409        * rendering/RenderBlock.cpp:
143410        (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
143411        (WebCore):
143412        (WebCore::RenderBlock::layoutBlock):
143413        * rendering/RenderBlock.h:
143414        (RenderBlock):
143415
1434162012-05-29  Victor Carbune  <victor@rosedu.org>
143417
143418        Update cue event dispatching for zero and negative duration cues
143419        https://bugs.webkit.org/show_bug.cgi?id=85143
143420
143421        Reviewed by Eric Carlson.
143422
143423        Updated existing test.
143424
143425        * html/HTMLMediaElement.cpp:
143426        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Explicitly
143427        treated event dispatching for zero and negative duration cues.
143428        (WebCore::HTMLMediaElement::textTrackAddCue): Interval tree doesn't
143429        handle invalid cues with intervals - negative cues need to be treated
143430        as zero-length cues as they are always missed cues anyway.
143431        (WebCore::HTMLMediaElement::textTrackRemoveCue): Same.
143432
1434332012-05-29  MORITA Hajime  <morrita@google.com>
143434
143435        ShadowRoot.getElementById() returns removed node.
143436        https://bugs.webkit.org/show_bug.cgi?id=62184
143437
143438        Deregitration of m_elementsById map is done at Element::removedFrom()
143439        But the tree scope of the removed node is already reset from a shadow root
143440        to a document.
143441
143442        This change lookup the old shadow root through its parent node and
143443        deregitrater the node against it.
143444
143445        Reviewed by Dimitri Glazkov.
143446
143447        Test: fast/dom/shadow/get-element-by-id-in-shadow-mutation.html
143448
143449        * dom/Element.cpp:
143450        (WebCore::treeScopeOfParent):
143451        (WebCore):
143452        (WebCore::Element::removedFrom):
143453        * dom/Element.h:
143454        (Element):
143455        (WebCore::Element::updateId):
143456        (WebCore):
143457
1434582012-05-29  Dana Jansens  <danakj@chromium.org>
143459
143460        [chromium] Unoccluded area in surfaces should always be clipped to the rootScissorRect
143461        https://bugs.webkit.org/show_bug.cgi?id=87677
143462
143463        Reviewed by Adrienne Walker.
143464
143465        When a contributing surface is visited, and we have not visited another
143466        surface, then we know the surface is completely unoccluded. However, the
143467        root scissor rect should still be applied, and anything outside of it
143468        should be considered occluded.
143469
143470        Unit test: WebKitTests::CCOcclusionTrackerTestTopmostSurfaceIsClippedToScissor
143471
143472        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
143473        (WebCore::RenderSurfaceChromium::targetRenderSurface):
143474        (WebCore):
143475        * platform/graphics/chromium/RenderSurfaceChromium.h:
143476        (RenderSurfaceChromium):
143477        * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
143478        (WebCore::::unoccludedContributingSurfaceContentRect):
143479        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
143480        (WebCore::CCRenderSurface::targetRenderSurface):
143481        (WebCore):
143482        * platform/graphics/chromium/cc/CCRenderSurface.h:
143483        (CCRenderSurface):
143484
1434852012-05-29  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
143486
143487        [BlackBerry] Refactoring http/proxy authentication to use authcallback mechanism introduced with libcurl
143488        https://bugs.webkit.org/show_bug.cgi?id=87706
143489
143490        Reviewed by Antonio Gomes.
143491
143492        Because we use authentication callback mechanism of libcurl,
143493        which will take care of all the authentication communication
143494        between UA and server, so the only thing we need to do is to
143495        provide credential information when authentication callback
143496        is triggered. By using this we don't need to process
143497        intermediate headers for each http authentication scheme.
143498
143499        Implemented interface function notifyAuthReceived() in
143500        NetworkJob to handle the authentication notification from
143501        networking thread.
143502        When the authentication callback is triggered, we should
143503        cancel the current loading request and restart a new one with
143504        credential information attached which comes from
143505        credentialStorage or user input.
143506
143507        Internally reviewed by Joe Mason <jmason@rim.com>.
143508
143509        No new tests since there is no behavior change.
143510
143511        * platform/network/blackberry/NetworkJob.cpp:
143512        (WebCore::NetworkJob::notifyAuthReceived):
143513        (WebCore):
143514        (WebCore::NetworkJob::handleNotifyHeaderReceived):
143515        (WebCore::NetworkJob::sendRequestWithCredentials):
143516        * platform/network/blackberry/NetworkJob.h:
143517        (NetworkJob):
143518
1435192012-05-29  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
143520
143521        [BlackBerry] http authentication challenge issue when loading subresource
143522        https://bugs.webkit.org/show_bug.cgi?id=87660
143523
143524        Reviewed by Rob Buis.
143525
143526        We should try to store the credential information as soon as we
143527        receive http status notification which indicates that the
143528        authentication succeeds, instead of storing credentials when the
143529        main resource receives notify done which is too late for loading
143530        subresource.
143531
143532        Internally reviewed by Joe Mason <jmason@rim.com>
143533
143534        No new tests since there is no change in behavior.
143535
143536        * platform/network/blackberry/NetworkJob.cpp:
143537        (WebCore::NetworkJob::handleNotifyStatusReceived):
143538        (WebCore::NetworkJob::handleNotifyClose):
143539
1435402012-05-29  Alexey Proskuryakov  <ap@apple.com>
143541
143542        [Mac] Move DefaultFonts.plist to C++ code
143543        https://bugs.webkit.org/show_bug.cgi?id=87560
143544        <rdar://problem/11466119>
143545
143546        Reviewed by Dan Bernstein.
143547
143548        * DerivedSources.make:
143549        * Resources/DefaultFonts.plist.in: Removed.
143550        * WebCore.xcodeproj/project.pbxproj:
143551        * page/mac/SettingsMac.mm: (WebCore::Settings::initializeDefaultFontFamilies):
143552        Instead of having a separate configuration file, just hardcode the settings in C++.
143553
1435542012-05-29  Alexei Filippov  <alexeif@chromium.org>
143555
143556        Web Inspector: Retainers are missing for all objects
143557        https://bugs.webkit.org/show_bug.cgi?id=87655
143558
143559        Reviewed by Yury Semikhatsky.
143560
143561        * inspector/front-end/HeapSnapshotDataGrids.js:
143562        (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
143563
1435642012-05-29  Philippe Normand  <pnormand@igalia.com>
143565
143566        [GStreamer] Video sink doesn't respect WebKit code style
143567        https://bugs.webkit.org/show_bug.cgi?id=87693
143568
143569        Reviewed by Alexis Menard.
143570
143571        No change in behavior of the sink, this patch only adapts the code
143572        style to WebKit's.
143573
143574        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
143575        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
143576        (_WebKitVideoSinkPrivate):
143577        (webkitVideoSinkTimeoutCallback):
143578        (webkitVideoSinkRender):
143579        (webkitVideoSinkDispose):
143580        (unlockBufferMutex):
143581        (webkitVideoSinkUnlock):
143582        (webkitVideoSinkUnlockStop):
143583        (webkitVideoSinkStop):
143584        (webkitVideoSinkStart):
143585        (webkitVideoSinkMarshalVoidAndMiniObject):
143586        (webkit_video_sink_class_init):
143587        (webkitVideoSinkNew):
143588        * platform/graphics/gstreamer/VideoSinkGStreamer.h:
143589        (_WebKitVideoSink):
143590        (_WebKitVideoSinkClass):
143591
1435922012-05-29  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
143593
143594        [Qt] Uninitialized shader compiler when GLES is used
143595        https://bugs.webkit.org/show_bug.cgi?id=87712
143596
143597        The '#if !defined(QT_OPENGL_ES_2)' has been removed before the initialization
143598        of shader compiler to compile shader codes for ES-platforms as well.
143599
143600        Reviewed by Noam Rosenthal.
143601
143602        * platform/graphics/qt/GraphicsContext3DQt.cpp:
143603        (WebCore::GraphicsContext3D::GraphicsContext3D):
143604
1436052012-05-29  Taiju Tsuiki  <tzik@chromium.org>
143606
143607        Add InspectorFileSystemAgent::FrontendProvider
143608        https://bugs.webkit.org/show_bug.cgi?id=87635
143609
143610        InspectorFileSystemAgent needs weak reference to its frontend to perform
143611        asynchronous operation.
143612
143613        Reviewed by Yury Semikhatsky.
143614
143615        * inspector/InspectorFileSystemAgent.cpp:
143616        (InspectorFileSystemAgent::FrontendProvider):
143617        (WebCore):
143618        (WebCore::InspectorFileSystemAgent::~InspectorFileSystemAgent):
143619        (WebCore::InspectorFileSystemAgent::enable):
143620        (WebCore::InspectorFileSystemAgent::disable):
143621        (WebCore::InspectorFileSystemAgent::setFrontend):
143622        (WebCore::InspectorFileSystemAgent::clearFrontend):
143623        (WebCore::InspectorFileSystemAgent::restore):
143624        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
143625        * inspector/InspectorFileSystemAgent.h:
143626        (InspectorFileSystemAgent):
143627
1436282012-05-29  Yoshifumi Inoue  <yosin@chromium.org>
143629
143630        REGRESSION(r109729): The optgroup element's "disabled" attribute has no effect to rendering and selection
143631        https://bugs.webkit.org/show_bug.cgi?id=87614
143632
143633        Reviewed by Kent Tamura.
143634
143635        This patch adds HTMLOptGroupElement::disabled and isEnabledFormControl
143636        methods which was implemented in HTMLFormControlElement at r109729 and
143637        updates CSS pseudo class checker to check "optgroup" element.
143638
143639        Tests: fast/forms/select/optgroup-clicking.html
143640               fast/forms/select/optgroup-disabled.html
143641               fast/forms/select/optgroup-rendering.html
143642
143643        * css/SelectorChecker.cpp:
143644        (WebCore::SelectorChecker::checkOneSelector): On disabled and enabled pseudo class checker. 
143645        We checked tag name "optgroup" in addition isFormControlElement.
143646        * css/StyleResolver.cpp:
143647        (WebCore::StyleResolver::canShareStyleWithElement): Checks optgroup.disabled.
143648        * html/HTMLOptGroupElement.cpp:
143649        (WebCore::HTMLOptGroupElement::disabled): Added.
143650        * html/HTMLOptGroupElement.h:
143651        (HTMLOptGroupElement): Added isEnabledFormControl.
143652
1436532012-05-29  Alexander Pavlov  <apavlov@chromium.org>
143654
143655        [Chromium] [Regression] SELECT popup misplaced when there is not enough vertical space
143656        https://bugs.webkit.org/show_bug.cgi?id=87735
143657
143658        Reviewed by Kent Tamura.
143659
143660        This change fixes the obsolete WebWidget Y-repositioning code for the insufficient vertical space case, not removed in r113418.
143661
143662        No new tests, as popups are not testable in Chromium.
143663
143664        * platform/chromium/PopupContainer.cpp:
143665        (WebCore::PopupContainer::layoutAndCalculateWidgetRect):
143666
1436672012-05-29  Andrei Bucur  <abucur@adobe.com>
143668
143669        [CSS Regions]Rename NamedFlow::overflow to NamedFlow::overset
143670        https://bugs.webkit.org/show_bug.cgi?id=87491
143671
143672        This patch updates the CSSOM property name overflow to overset. There are no changes in functionality.
143673        Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/
143674
143675        Reviewed by Andreas Kling.
143676
143677        Test: fast/regions/webkit-named-flow-overset.html
143678
143679        * dom/WebKitNamedFlow.cpp:
143680        (WebCore::WebKitNamedFlow::overset):
143681        * dom/WebKitNamedFlow.h:
143682        (WebKitNamedFlow):
143683        * dom/WebKitNamedFlow.idl:
143684        * rendering/RenderFlowThread.cpp:
143685        (WebCore::RenderFlowThread::RenderFlowThread):
143686        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
143687        * rendering/RenderFlowThread.h:
143688
1436892012-05-29  Andreas Kling  <kling@webkit.org>
143690
143691        Give StylePropertySet a proper mutability flag.
143692        <http://webkit.org/b/87675>
143693
143694        Reviewed by Antti Koivisto.
143695
143696        Add a flag to StylePropertySet that determines whether it's mutable or not. Only objects
143697        constructed from the CSS parser (by way of StylePropertySet::adopt()) are made immutable.
143698        This is clean-up and prep work for implementing a more efficient storage scheme for immutable
143699        StylePropertySets (fixed-size array instead of vector) as the vast majority of them are
143700        unlikely to ever mutate during their lifetime.
143701
143702        Sprinkled ASSERT(isMutable()) all over StylePropertySet to catch any attempts to modify
143703        an immutable object.
143704
143705        Also made properties() const on StyleRule and friends, which brought some additional code
143706        churn along with it.
143707
143708        * css/CSSComputedStyleDeclaration.cpp:
143709        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
143710        * css/CSSFontFaceRule.cpp:
143711        (WebCore::CSSFontFaceRule::style):
143712        (WebCore::CSSFontFaceRule::reattach):
143713        * css/CSSFontFaceSrcValue.cpp:
143714        (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
143715        * css/CSSFontFaceSrcValue.h:
143716        (CSSFontFaceSrcValue):
143717        * css/CSSPageRule.cpp:
143718        (WebCore::CSSPageRule::style):
143719        (WebCore::CSSPageRule::reattach):
143720        * css/CSSPrimitiveValue.cpp:
143721        (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
143722        * css/CSSPrimitiveValue.h:
143723        (CSSPrimitiveValue):
143724        * css/CSSReflectValue.cpp:
143725        (WebCore::CSSReflectValue::addSubresourceStyleURLs):
143726        * css/CSSReflectValue.h:
143727        (CSSReflectValue):
143728        * css/CSSStyleRule.cpp:
143729        (WebCore::CSSStyleRule::style):
143730        (WebCore::CSSStyleRule::reattach):
143731        * css/CSSValue.cpp:
143732        (WebCore::CSSValue::addSubresourceStyleURLs):
143733        * css/CSSValue.h:
143734        (CSSValue):
143735        * css/CSSValueList.cpp:
143736        (WebCore::CSSValueList::addSubresourceStyleURLs):
143737        * css/CSSValueList.h:
143738        (CSSValueList):
143739        * css/StylePropertySet.cpp:
143740        (WebCore::StylePropertySet::StylePropertySet):
143741        (WebCore::StylePropertySet::setCSSParserMode):
143742        (WebCore):
143743        (WebCore::StylePropertySet::copyPropertiesFrom):
143744        (WebCore::StylePropertySet::removeShorthandProperty):
143745        (WebCore::StylePropertySet::removeProperty):
143746        (WebCore::StylePropertySet::setProperty):
143747        (WebCore::StylePropertySet::parseDeclaration):
143748        (WebCore::StylePropertySet::addParsedProperties):
143749        (WebCore::StylePropertySet::addParsedProperty):
143750        (WebCore::StylePropertySet::merge):
143751        (WebCore::StylePropertySet::addSubresourceStyleURLs):
143752        (WebCore::StylePropertySet::removePropertiesInSet):
143753        (WebCore::StylePropertySet::findPropertyWithId):
143754        (WebCore::StylePropertySet::removeEquivalentProperties):
143755        (WebCore::StylePropertySet::copyPropertiesInSet):
143756        * css/StylePropertySet.h:
143757        (WebCore::StylePropertySet::adopt):
143758        (WebCore::StylePropertySet::adoptMutable):
143759        (StylePropertySet):
143760        (WebCore::StylePropertySet::isMutable):
143761        * css/StyleResolver.cpp:
143762        (WebCore::StyleResolver::addMatchedProperties):
143763        (WebCore::StyleResolver::collectMatchingRulesForList):
143764        * css/StyleResolver.h:
143765        (StyleResolver):
143766        * css/StyleRule.cpp:
143767        (WebCore::StyleRule::mutableProperties):
143768        (WebCore):
143769        (WebCore::StyleRulePage::mutableProperties):
143770        (WebCore::StyleRuleFontFace::mutableProperties):
143771        * css/StyleRule.h:
143772        (WebCore::StyleRule::properties):
143773        (StyleRule):
143774        (WebCore::StyleRuleFontFace::properties):
143775        (StyleRuleFontFace):
143776        (WebCore::StyleRulePage::properties):
143777        (StyleRulePage):
143778        * dom/ElementAttributeData.cpp:
143779        (WebCore::ElementAttributeData::ensureInlineStyle):
143780        (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
143781        * editing/EditingStyle.cpp:
143782        (WebCore::styleFromMatchedRulesForElement):
143783        * svg/SVGFontFaceElement.cpp:
143784        (WebCore::SVGFontFaceElement::parseAttribute):
143785        (WebCore::SVGFontFaceElement::rebuildFontFace):
143786        (WebCore::SVGFontFaceElement::removedFrom):
143787
1437882012-05-29  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
143789
143790        [EFL] Refactoring. Get rid of unnecessary singleCharacterString() function
143791        https://bugs.webkit.org/show_bug.cgi?id=87654
143792
143793        Reviewed by Csaba Osztrogonác.
143794
143795        Evas key events already provide key string, so no practical need for singleCharacterString() 
143796        evaluating the event string from keyname.
143797        Modified code related functionality is already covered with fast/events and fast/forms tests.
143798
143799        * platform/efl/EflKeyboardUtilities.cpp:
143800        * platform/efl/PlatformKeyboardEventEfl.cpp:
143801        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
143802
1438032012-05-29  Ilya Tikhonovsky  <loislo@chromium.org>
143804
143805        Unreviewed: Web Inspector: single line fix after r118742.
143806
143807        * inspector/front-end/HeapSnapshotView.js:
143808        (WebInspector.HeapProfileHeader.prototype.saveToFile):
143809
1438102012-05-29  Kentaro Hara  <haraken@chromium.org>
143811
143812        Remove m_rootNode and m_selectorChecker from SelectorQuery.h
143813        https://bugs.webkit.org/show_bug.cgi?id=87650
143814
143815        Reviewed by Antti Koivisto.
143816
143817        To avoid parsing CSS selectors every time, I am planning to cache
143818        SelectorQuery objects into a HashMap, which will be defined in
143819        Node::querySelector(). To make the size of SelectorQuery small,
143820        this patch removes m_rootNode and m_selectorChecker from SelectorQuery.h.
143821
143822        Tests: fast/dom/SelectorAPI/*. No change in test results.
143823
143824        * dom/Node.cpp:
143825        (WebCore::Node::querySelector):
143826        (WebCore::Node::querySelectorAll):
143827        * dom/SelectorQuery.cpp:
143828        (WebCore::SelectorQuery::SelectorQuery):
143829        (WebCore):
143830        (WebCore::SelectorQuery::queryAll):
143831        (WebCore::SelectorQuery::queryFirst):
143832        * dom/SelectorQuery.h:
143833        (SelectorQuery):
143834
1438352012-05-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
143836
143837        Web Inspector: Tabbed Settings Screen
143838        https://bugs.webkit.org/show_bug.cgi?id=87497
143839
143840        Reviewed by Yury Semikhatsky.
143841
143842        Combine settings screen and shortcuts screen
143843        to a single tabbed settings screen.
143844        This will make shortcuts screen more discoverable.
143845
143846        * inspector/front-end/HelpScreen.js:
143847        (WebInspector.HelpScreen): Make titled tamplate optional.
143848        (WebInspector.HelpScreen.prototype._createCloseButton): Extract method.
143849        * inspector/front-end/SettingsScreen.js:
143850        (WebInspector.SettingsScreen): Split initialization and UI construction.
143851        (WebInspector.SettingsScreen.prototype._createSettingsTabView.appendSection):
143852        (WebInspector.SettingsScreen.prototype._createSettingsTabView):
143853        Extract GUI construction method.
143854        (WebInspector.SettingsScreen.prototype._getOrCreateTabbedPane):
143855        Make GUI construction lazy.
143856        (WebInspector.SettingsScreen.prototype.selectTab):
143857        Add method for external tab swithching.
143858        (WebInspector.SettingsScreen.prototype.wasShown):
143859        Make GUI construction lazy.
143860        (WebInspector.SettingsScreenTabbedPane):
143861        Extend class to access protected member.
143862        (WebInspector.SettingsController.prototype._buttonClicked):
143863        Change "showSettingsScreen" visibility and parameters.
143864        (WebInspector.SettingsController.prototype._onHideSettingsScreen):
143865        Preserve settings screen state.
143866        (WebInspector.SettingsController.prototype.showSettingsScreen):
143867        Change method visibility and parameters.
143868        * inspector/front-end/ShortcutsScreen.js:
143869        (WebInspector.ShortcutsScreen): Remove inheritance from HelpScreen.
143870        (WebInspector.ShortcutsScreen.prototype._createShortcutsTabView):
143871        Refactoring of GUI construction.
143872        (WebInspector.ShortcutsSection.prototype.renderSection):
143873        Ditto.
143874        * inspector/front-end/helpScreen.css:
143875        (.help-window-main ::-webkit-scrollbar): Rebind scrollbar settings.
143876        (.help-window-main ::-webkit-resizer): Ditto.
143877        (.help-window-main ::-webkit-scrollbar-thumb:vertical): Ditto.
143878        (.help-window-main ::-webkit-scrollbar-thumb:vertical:active): Ditto.
143879        (.help-window-main ::-webkit-scrollbar-track:vertical): Ditto.
143880        (body:not(.compact) #settings-screen .tabbed-pane): Fix container height.
143881        (#settings-screen .tabbed-pane-header): Ditto.
143882        (#settings-screen .tabbed-pane-header-tabs): Adjust spacing.
143883        (#settings-screen .tabbed-pane-header-tab): Adjust style.
143884        (#settings-screen .help-close-button): Adjust spacing.
143885        (#settings-screen .tabbed-pane-header-tab.selected):
143886        Erase line below active tab.
143887        (#settings-screen .tabbed-pane-content): Adjust spacing.
143888        (#settings-screen .help-content): Ditto.
143889        * inspector/front-end/inspector.js:
143890        (WebInspector.documentKeyDown): Use Settings screen to show shortcuts.
143891
1438922012-05-29  Ilya Tikhonovsky  <loislo@chromium.org>
143893
143894        Web Inspector: REGRESSION: load heap snapshot doesn't work.
143895        https://bugs.webkit.org/show_bug.cgi?id=87642
143896
143897        HeapSnapshotReceiver interface was introduced.
143898        It declares the API for HeapSnapshotLoader, HeapSnapshotLoaderProxy and HeapSnapshotSaveToFileReceiver.
143899        The HeapProfileHeader was refactored and tests were added.
143900
143901        Reviewed by Yury Semikhatsky.
143902
143903        * inspector/front-end/HeapSnapshotLoader.js:
143904        (WebInspector.HeapSnapshotLoader):
143905        (WebInspector.HeapSnapshotLoader.prototype.startLoading):
143906        (WebInspector.HeapSnapshotLoader.prototype.dispose):
143907        (WebInspector.HeapSnapshotLoader.prototype._reset):
143908        (WebInspector.HeapSnapshotLoader.prototype.finishLoading):
143909        * inspector/front-end/HeapSnapshotProxy.js:
143910        (WebInspector.HeapSnapshotWorker.prototype.startCheckingForLongRunningCalls):
143911        (WebInspector.HeapSnapshotLoaderProxy.prototype.startLoading):
143912        (WebInspector.HeapSnapshotLoaderProxy.prototype.pushJSONChunk):
143913        (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading):
143914        * inspector/front-end/HeapSnapshotView.js:
143915        (WebInspector.HeapSnapshotReceiver):
143916        (WebInspector.HeapSnapshotReceiver.prototype.startLoading):
143917        (WebInspector.HeapSnapshotReceiver.prototype.pushJSONChunk):
143918        (WebInspector.HeapSnapshotReceiver.prototype.finishLoading):
143919        (WebInspector.HeapSnapshotReceiver.prototype.dispose):
143920        (WebInspector.HeapProfileHeader):
143921        (WebInspector.HeapProfileHeader.prototype.load):
143922        (WebInspector.HeapProfileHeader.prototype._setupWorker):
143923        (WebInspector.HeapProfileHeader.prototype.dispose):
143924        (WebInspector.HeapProfileHeader.prototype._saveStatusUpdate):
143925        (WebInspector.HeapProfileHeader.prototype.pushJSONChunk):
143926        (WebInspector.HeapProfileHeader.prototype._parsed):
143927        (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
143928        (WebInspector.HeapProfileHeader.prototype.saveToFile):
143929        (WebInspector.HeapProfileHeader.prototype.loadFromFile.onLoad):
143930        (WebInspector.HeapProfileHeader.prototype.loadFromFile):
143931        (WebInspector.HeapProfileHeader.prototype._loadNextChunk):
143932        (WebInspector.HeapProfileHeader.prototype._nextChunkLoaded):
143933        (WebInspector.HeapProfileHeader.prototype._createFileReader):
143934        (WebInspector.HeapSnapshotSaveToFileReceiver):
143935        (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.startLoading):
143936        (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.pushJSONChunk):
143937        (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.finishLoading):
143938        (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.dispose):
143939        (WebInspector.HeapSnapshotSaveToFileReceiver.prototype._startSavingSnapshot):
143940        (WebInspector.HeapSnapshotSaveToFileReceiver.prototype._saveStatusUpdate):
143941        * inspector/front-end/ProfilesPanel.js:
143942        (WebInspector.ProfilesPanel.prototype._createFileSelectorElement.onChange):
143943        (WebInspector.ProfilesPanel.prototype._createFileSelectorElement):
143944        (WebInspector.ProfilesPanel.prototype._loadFromFile):
143945
1439462012-05-29  Eric Seidel  <eric@webkit.org>
143947
143948        Add HTMLIFrameElement.seamless property accessor now that seamless is enabled and works
143949        https://bugs.webkit.org/show_bug.cgi?id=87708
143950
143951        Reviewed by Adam Barth.
143952
143953        Lots of tests in fast/frames/seamless cover this property.
143954
143955        * html/HTMLIFrameElement.idl:
143956
1439572012-05-29  Kentaro Hara  <haraken@chromium.org>
143958
143959        [Performance] Optimize querySelector() and querySelectorAll() by removing
143960        redundant dummy style sheet creations
143961        https://bugs.webkit.org/show_bug.cgi?id=87627
143962
143963        Reviewed by Antti Koivisto.
143964
143965        This patch improves performance of querySelector("#id") by 4.2% ~ 17.7%
143966        in Safari and Chromium.
143967
143968        Performance tests: https://bugs.webkit.org/attachment.cgi?id=144288
143969
143970        The performance test results in my desktop:
143971
143972        [Safari/Mac]
143973        document.querySelector("#headId") :               13.60 ms =>  12.40 ms  +9.68%
143974        document.querySelector("#duplicatedId") :         14.80 ms =>  14.20 ms  +4.23%
143975        document.querySelector("#tailId") :               13.80 ms =>  12.20 ms  +13.11%
143976        document.querySelectorAll("#headId") :            17.80 ms =>  14.60 ms  +21.92%
143977        document.querySelectorAll("#duplicatedId") :     513.80 ms => 471.60 ms  +8.95%
143978        document.querySelectorAll("#tailId") :            19.20 ms =>  16.40 ms  +17.07%
143979        document.querySelector("h1") :                    14.40 ms =>  13.60 ms  +5.88%
143980        document.querySelector("h2") :                    14.80 ms =>  13.80 ms  +7.25%
143981        document.querySelector("h3") :                   312.00 ms => 306.60 ms  +1.76%
143982        document.querySelectorAll("h1") :                322.00 ms => 314.60 ms  +2.35%
143983        document.querySelectorAll("h2") :                481.00 ms => 420.60 ms  +14.36%
143984        document.querySelectorAll("h3") :                326.80 ms => 315.80 ms  +3.48%
143985        document.querySelector(".headClass") :            16.20 ms =>  15.40 ms  +5.19%
143986        document.querySelector(".duplicatedClass") :      17.00 ms =>  15.40 ms  +10.39%
143987        document.querySelector(".tailClass") :           369.60 ms => 362.60 ms  +1.93%
143988        document.querySelectorAll(".headClass") :        388.20 ms => 377.60 ms  +2.81%
143989        document.querySelectorAll(".duplicatedClass") :  605.00 ms => 581.20 ms  +4.09%
143990        document.querySelectorAll(".tailClass") :        401.60 ms => 391.40 ms  +2.61%
143991
143992        [Chromium/Linux]
143993        ocument.querySelector("#headId") :                16.00 ms =>  13.60 ms  +17.65%
143994        document.querySelector("#duplicatedId") :         16.80 ms =>  15.40 ms  +9.09%
143995        document.querySelector("#tailId") :               16.00 ms =>  13.60 ms  +17.65%
143996        document.querySelectorAll("#headId") :            29.00 ms =>  25.00 ms  +16.00%
143997        document.querySelectorAll("#duplicatedId") :     561.40 ms => 505.20 ms  +11.12%
143998        document.querySelectorAll("#tailId") :            34.00 ms =>  26.80 ms  +26.87%
143999        document.querySelector("h1") :                    18.20 ms =>  15.80 ms  +15.19%
144000        document.querySelector("h2") :                    19.00 ms =>  16.60 ms  +14.46%
144001        document.querySelector("h3") :                   280.40 ms => 274.00 ms  +2.34%
144002        document.querySelectorAll("h1") :                300.20 ms => 365.20 ms  -17.80%
144003        document.querySelectorAll("h2") :                487.60 ms => 504.20 ms  -3.29%
144004        document.querySelectorAll("h3") :                349.40 ms => 324.00 ms  +7.84%
144005        document.querySelector(".headClass") :            18.40 ms =>  16.00 ms  +15.00%
144006        document.querySelector(".duplicatedClass") :      19.40 ms =>  16.20 ms  +19.75%
144007        document.querySelector(".tailClass") :           349.60 ms => 345.40 ms  +1.22%
144008        document.querySelectorAll(".headClass") :        382.80 ms => 378.20 ms  +1.22%
144009        document.querySelectorAll(".duplicatedClass") :  550.80 ms => 574.20 ms  -4.08%
144010        document.querySelectorAll(".tailClass") :        381.00 ms => 387.00 ms  -1.55%
144011
144012        I've found that StyleSheetInternal::create() in CSSParser::parseSelector()
144013        is a bottleneck of querySelector() and querySelectorAll().
144014
144015        void CSSParser::parseSelector(const String& string, CSSSelectorList& selectorList)
144016        {
144017            RefPtr<StyleSheetInternal> dummyStyleSheet = StyleSheetInternal::create();
144018            setStyleSheet(dummyStyleSheet.get());
144019            ...;
144020        }
144021
144022        This patch removes a dummy style sheet. Previously the dummy style sheet
144023        was needed to avoid null checks of m_styleSheet in CSSGrammer.y.
144024        This patch fixes CSSGrammer.y so that it works fine with a null m_styleSheet.
144025
144026        Tests: fast/dom/SelectorAPI/*. No change in the test results.
144027
144028        * css/CSSGrammar.y:
144029        * css/CSSParser.cpp:
144030        (WebCore::CSSParser::parseSelector):
144031
1440322012-05-29  Nikolas Zimmermann  <nzimmermann@rim.com>
144033
144034        SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented
144035        https://bugs.webkit.org/show_bug.cgi?id=15495
144036
144037        Reviewed by Rob Buis.
144038
144039        Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed:
144040        - SVGViewSpec and all of its contents should be read-only. Enforce that and test it.
144041          Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only.
144042        - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS.
144043        - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces
144044            readonly attribute DOMString viewBoxString;
144045            readonly attribute DOMString preserveAspectRatioString;
144046            readonly attribute DOMString transformString;
144047            readonly attribute DOMString viewTargetString;
144048        - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed.
144049        - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing.
144050        - Create/expose ObjectiveC/JS bindings for SVGViewSpec.
144051        - Enable SVGViewSpec constructor.
144052
144053        Tests: svg/custom/linking-a-03-b-all-expected.svg
144054               svg/dom/SVGViewSpec-defaults.html
144055               svg/dom/SVGViewSpec.html
144056               svg/dom/complex-svgView-specification.html
144057               svg/dom/viewspec-parser.html
144058
144059        * CMakeLists.txt:
144060        * DerivedSources.cpp:
144061        * DerivedSources.make:
144062        * DerivedSources.pri:
144063        * GNUmakefile.list.am:
144064        * Target.pri:
144065        * WebCore.gyp/WebCore.gyp:
144066        * WebCore.gypi:
144067        * WebCore.order:
144068        * WebCore.vcproj/WebCore.vcproj:
144069        * WebCore.xcodeproj/project.pbxproj:
144070        * bindings/js/JSSVGLengthCustom.cpp:
144071        (WebCore::JSSVGLength::setValue):
144072        (WebCore::JSSVGLength::convertToSpecifiedUnits):
144073        * bindings/objc/DOMSVG.h:
144074        * bindings/scripts/CodeGeneratorJS.pm:
144075        (GenerateImplementation):
144076        (NativeToJSValue):
144077        * bindings/scripts/CodeGeneratorObjC.pm:
144078        (GenerateImplementation):
144079        * bindings/scripts/CodeGeneratorV8.pm:
144080        (GenerateNormalAttrGetter):
144081        (GenerateNormalAttrSetter):
144082        (GenerateFunctionCallback):
144083        * bindings/v8/custom/V8SVGLengthCustom.cpp:
144084        (WebCore::V8SVGLength::valueAccessorSetter):
144085        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
144086        * page/DOMWindow.idl:
144087        * rendering/svg/RenderSVGResourcePattern.cpp:
144088        (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
144089        * svg/SVGFitToViewBox.cpp:
144090        * svg/SVGFitToViewBox.h:
144091        (SVGFitToViewBox):
144092        (WebCore::SVGFitToViewBox::parseAttribute):
144093        * svg/SVGMarkerElement.cpp:
144094        (WebCore::SVGMarkerElement::orientTypePropertyInfo):
144095        (WebCore::SVGMarkerElement::parseAttribute):
144096        (WebCore::SVGMarkerElement::synchronizeOrientType):
144097        (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
144098        * svg/SVGPathElement.cpp:
144099        (WebCore::SVGPathElement::dPropertyInfo):
144100        (WebCore::SVGPathElement::svgAttributeChanged):
144101        (WebCore::SVGPathElement::pathByteStream):
144102        (WebCore::SVGPathElement::lookupOrCreateDWrapper):
144103        (WebCore::SVGPathElement::synchronizeD):
144104        * svg/SVGPathSegWithContext.h:
144105        (WebCore::SVGPathSegWithContext::animatedProperty):
144106        * svg/SVGPatternElement.cpp:
144107        (WebCore::SVGPatternElement::parseAttribute):
144108        * svg/SVGPolyElement.cpp:
144109        (WebCore::SVGPolyElement::pointsPropertyInfo):
144110        (WebCore::SVGPolyElement::parseAttribute):
144111        (WebCore::SVGPolyElement::synchronizePoints):
144112        (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
144113        * svg/SVGRect.h:
144114        * svg/SVGSVGElement.cpp:
144115        (WebCore::SVGSVGElement::~SVGSVGElement):
144116        (WebCore::SVGSVGElement::currentView):
144117        (WebCore::SVGSVGElement::parseAttribute):
144118        (WebCore::SVGSVGElement::currentViewBoxRect):
144119        (WebCore::SVGSVGElement::viewBoxToViewTransform):
144120        (WebCore::SVGSVGElement::setupInitialView):
144121        (WebCore::SVGSVGElement::inheritViewAttributes):
144122        * svg/SVGSVGElement.h:
144123        (SVGSVGElement):
144124        * svg/SVGSVGElement.idl:
144125        * svg/SVGSymbolElement.cpp:
144126        (WebCore::SVGSymbolElement::parseAttribute):
144127        * svg/SVGTests.cpp:
144128        (WebCore::SVGTests::requiredFeaturesPropertyInfo):
144129        (WebCore::SVGTests::requiredExtensionsPropertyInfo):
144130        (WebCore::SVGTests::systemLanguagePropertyInfo):
144131        (WebCore::SVGTests::synchronizeRequiredFeatures):
144132        (WebCore::SVGTests::synchronizeRequiredExtensions):
144133        (WebCore::SVGTests::synchronizeSystemLanguage):
144134        * svg/SVGTextContentElement.cpp:
144135        (WebCore::SVGTextContentElement::textLengthPropertyInfo):
144136        (WebCore::SVGTextContentElement::synchronizeTextLength):
144137        (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
144138        * svg/SVGViewElement.cpp:
144139        (WebCore::SVGViewElement::parseAttribute):
144140        * svg/SVGViewElement.h:
144141        * svg/SVGViewSpec.cpp:
144142        (WebCore::SVGViewSpec::viewBoxPropertyInfo):
144143        (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
144144        (WebCore::SVGViewSpec::transformPropertyInfo):
144145        (WebCore::SVGViewSpec::SVGViewSpec):
144146        (WebCore::SVGViewSpec::viewBoxIdentifier):
144147        (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
144148        (WebCore::SVGViewSpec::transformIdentifier):
144149        (WebCore::SVGViewSpec::setZoomAndPan):
144150        (WebCore::SVGViewSpec::setTransformString):
144151        (WebCore::SVGViewSpec::transformString):
144152        (WebCore::SVGViewSpec::viewBoxString):
144153        (WebCore::SVGViewSpec::preserveAspectRatioString):
144154        (WebCore::SVGViewSpec::viewTarget):
144155        (WebCore::SVGViewSpec::transform):
144156        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
144157        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
144158        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
144159        (WebCore::SVGViewSpec::reset):
144160        (WebCore::SVGViewSpec::parseViewSpec):
144161        * svg/SVGViewSpec.h:
144162        (WebCore::SVGViewSpec::~SVGViewSpec):
144163        (SVGViewSpec):
144164        (WebCore::SVGViewSpec::create):
144165        (WebCore::SVGViewSpec::setViewTargetString):
144166        (WebCore::SVGViewSpec::setZoomAndPan):
144167        (WebCore::SVGViewSpec::contextElement):
144168        (WebCore::SVGViewSpec::resetContextElement):
144169        (WebCore::SVGViewSpec::transformBaseValue):
144170        (WebCore::SVGViewSpec::viewBoxAnimated):
144171        (WebCore::SVGViewSpec::viewBox):
144172        (WebCore::SVGViewSpec::viewBoxBaseValue):
144173        (WebCore::SVGViewSpec::setViewBoxBaseValue):
144174        (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
144175        (WebCore::SVGViewSpec::preserveAspectRatio):
144176        (WebCore::SVGViewSpec::preserveAspectRatioBaseValue):
144177        (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue):
144178        * svg/SVGViewSpec.idl:
144179        * svg/properties/SVGAnimatedProperty.h:
144180        (WebCore::SVGAnimatedProperty::isReadOnly):
144181        (WebCore::SVGAnimatedProperty::setIsReadOnly):
144182        (SVGAnimatedProperty):
144183        (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper):
144184        (WebCore::SVGAnimatedProperty::lookupWrapper):
144185        (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
144186        * svg/properties/SVGAnimatedPropertyMacros.h:
144187        (WebCore::SVGSynchronizableAnimatedProperty::synchronize):
144188        (SVGSynchronizableAnimatedProperty):
144189        * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed.
144190        * svg/properties/SVGAttributeToPropertyMap.h:
144191        * svg/properties/SVGListProperty.h:
144192        * svg/properties/SVGListPropertyTearOff.h:
144193        (SVGListPropertyTearOff):
144194        (WebCore::SVGListPropertyTearOff::isReadOnly):
144195        * svg/properties/SVGPathSegListPropertyTearOff.h:
144196        (SVGPathSegListPropertyTearOff):
144197        (WebCore::SVGPathSegListPropertyTearOff::isReadOnly):
144198        * svg/properties/SVGProperty.h:
144199        (SVGProperty):
144200        * svg/properties/SVGPropertyInfo.h:
144201        (WebCore::SVGPropertyInfo::SVGPropertyInfo):
144202        (SVGPropertyInfo):
144203        * svg/properties/SVGPropertyTearOff.h:
144204        (WebCore::SVGPropertyTearOff::isReadOnly):
144205        * svg/properties/SVGStaticListPropertyTearOff.h:
144206        (SVGStaticListPropertyTearOff):
144207        (WebCore::SVGStaticListPropertyTearOff::isReadOnly):
144208
1442092012-05-29  Kent Tamura  <tkent@chromium.org>
144210
144211        REGRESSION (r90971): the cursor is painted “behind” the placeholder text
144212        https://bugs.webkit.org/show_bug.cgi?id=87155
144213
144214        Reviewed by Hajime Morita.
144215
144216        This regression happened only on platforms on which
144217        RenderTheme::shouldShowPlaceholderWhenFocused() returns true.
144218
144219        Because the order of renderers for the editable node and the placeholder
144220        node was:
144221         - A renderer for the editable node
144222         - A renderer for the placeholder node,
144223        The text caret was painted, then the palceholder was painted.
144224
144225        We should not use z-index in the built-in shadow nodes. So the patch
144226        fixes this bug by re-ordering these renderers.
144227
144228        Tests: fast/forms/input-placeholder-paint-order-2.html
144229               fast/forms/input-placeholder-paint-order.html
144230               fast/forms/textarea/textarea-placeholder-paint-order-2.html
144231               fast/forms/textarea/textarea-placeholder-paint-order.html
144232
144233        * html/HTMLTextFormControlElement.cpp:
144234        (WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
144235        Added. Reorder the order of renderers so that the placeholder renderer
144236        precedes the inner text renderer.
144237        * html/HTMLTextFormControlElement.h: Add fixPlaceholderRenderer() declaration.
144238
144239        * html/HTMLTextAreaElement.cpp:
144240        (WebCore::HTMLTextAreaElement::attach): Calls fixPlaceholderRenderer().
144241        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
144242        ditto. Also, use innerTextElement() to improvde code readability.
144243        * html/HTMLTextAreaElement.h:
144244        (HTMLTextAreaElement): Overrides attach().
144245
144246        * html/TextFieldInputType.cpp:
144247        (WebCore::TextFieldInputType::updatePlaceholderText):
144248        Calls fixPlaceholderRenderer().
144249        (WebCore::TextFieldInputType::attach): ditto.
144250        * html/TextFieldInputType.h:
144251        (TextFieldInputType): Overrides attach().
144252
1442532012-05-28  Kentaro Hara  <haraken@chromium.org>
144254
144255        [V8] Implement V8Binding::v8Null(isolate) and use it in CodeGeneratorV8.pm
144256        https://bugs.webkit.org/show_bug.cgi?id=87692
144257
144258        Reviewed by Adam Barth.
144259
144260        Since v8::Null(isolate) crashes if we pass a NULL isolate, we are planning
144261        to pass Isolate to v8::Null() in the following steps:
144262
144263        [1] Implement V8Bindings::v8Null(isolate). v8Null(isolate) does the NULL check.
144264        If isolate is NULL, v8Null(isolate) calls v8::Null(). Otherwise,
144265        v8Null(isolate) calls v8::Null(isolate).
144266
144267        [2] In V8 bindings, we replace v8::Null() with v8::Null(isolate) for a non-optional
144268        'isolate' parameter. (e.g. void foo(..., Isolate* isolate) { v8::Null(); } )
144269
144270        [3] In V8 bindings, we replace v8::Null() with v8Null(isolate) for an optional
144271        'isolate' parameter. (e.g. void foo(..., Isolate* isolate = 0) { v8::Null(); } )
144272
144273        This bug fixes [1] by implementing V8Binding::v8Null(isolate). Also this patch uses
144274        V8Binding::v8Null(isolate) in bindings/v8/*.{h,cpp}.
144275
144276        No tests. No behavior change.
144277
144278        * bindings/scripts/CodeGeneratorV8.pm:
144279        (GenerateHeader):
144280        (NativeToJSValue):
144281        * bindings/scripts/test/V8/V8Float64Array.h:
144282        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
144283        (WebCore::toV8):
144284        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
144285        (WebCore::toV8):
144286        * bindings/scripts/test/V8/V8TestEventConstructor.h:
144287        (WebCore::toV8):
144288        * bindings/scripts/test/V8/V8TestEventTarget.h:
144289        (WebCore::toV8):
144290        * bindings/scripts/test/V8/V8TestException.h:
144291        (WebCore::toV8):
144292        * bindings/scripts/test/V8/V8TestInterface.h:
144293        (WebCore::toV8):
144294        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
144295        (WebCore::toV8):
144296        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
144297        (WebCore::toV8):
144298        * bindings/scripts/test/V8/V8TestNode.h:
144299        (WebCore::toV8):
144300        * bindings/scripts/test/V8/V8TestObj.h:
144301        (WebCore::toV8):
144302        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
144303        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
144304        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
144305        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
144306        (WebCore::toV8):
144307        * bindings/v8/V8Binding.h:
144308        (WebCore::v8Null):
144309        (WebCore):
144310        (WebCore::v8DateOrNull):
144311        * bindings/v8/V8DOMWrapper.cpp:
144312        * bindings/v8/V8DOMWrapper.h:
144313        (WebCore):
144314
1443152012-05-28  Kent Tamura  <tkent@chromium.org>
144316
144317        Fix a crash in HTMLFormControlElement::disabled().
144318        https://bugs.webkit.org/show_bug.cgi?id=86534
144319
144320        Reviewed by Ryosuke Niwa.
144321
144322        Stop to hold pointers of fildset and legend elements. We can avoid it by
144323        holding ancestor's disabled state.
144324
144325        The ancesotr's disabled state should be invalidated when
144326         - fieldset's disabled value is changed.
144327         - fieldset's children is updated because a legend position might be changed.
144328         - A form control is attached to or detached from a tree.
144329
144330        No new tests. It's almost impossible to make a reliable test.
144331
144332        * html/HTMLFieldSetElement.cpp:
144333        (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
144334        Added. Invalidate disabled state of form controls under the specified node.
144335        (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
144336        Uses invalidateDisabledStateUnder().
144337        (WebCore::HTMLFieldSetElement::childrenChanged):
144338        Added new override function. We need invalidate disabled state of form
144339        controls under legend elements.
144340
144341        * html/HTMLFieldSetElement.h:
144342        (HTMLFieldSetElement): Add invalidateDisabledStateUnder() and childrenChanged().
144343
144344        * html/HTMLFormControlElement.cpp:
144345        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
144346        Remove initialization of the removed data members.
144347        Initialize m_ancestorDisabledState.
144348        (WebCore::HTMLFormControlElement::updateAncestorDisabledState):
144349        Update m_ancestorDisabledState. It should be
144350        AncestorDisabledStateDisabled if the control is under a disabled
144351        fieldset and not under the first legend child of the disabled filedset.
144352        (WebCore::HTMLFormControlElement::ancestorDisabledStateWasChanged):
144353        Invalidate m_ancestorDisabledState.
144354        (WebCore::HTMLFormControlElement::insertedInto): ditto.
144355        (WebCore::HTMLFormControlElement::removedFrom): ditto.
144356        (WebCore::HTMLFormControlElement::disabled):
144357        Calls updateAncestorDisabledState() if needed.
144358        (WebCore::HTMLFormControlElement::recalcWillValidate):
144359        Remove unnecessary check for m_legendAncestor.
144360
144361        * html/HTMLFormControlElement.h:
144362        (HTMLFormControlElement):
144363        - Rename updateFieldSetAndLegendAncestor() to updateAncestorDisabledState(), and make it private.
144364        - Remove m_fieldSetAncestor, m_legendAncestor, and m_fieldSetAncestorValid.
144365        - Add m_ancestorDisabledState.
144366
1443672012-05-28  Takashi Toyoshima  <toyoshim@chromium.org>
144368
144369        [WebSocket] Receiving reserved close codes, 1005, 1006, and 1015 must appear as code=1006 and wasClean=false
144370        https://bugs.webkit.org/show_bug.cgi?id=87084
144371
144372        Reviewed by Kent Tamura.
144373
144374        Status codes 1005, 1006, and 1015 are forbidden to be sent in actual close frames.
144375        If a client received these frames, the client should handle them as broken.
144376        Close frames containing invalid body size are the same as these forbidden cases.
144377        Update close-code-and-reason tests to verify this patch.
144378
144379        * Modules/websockets/WebSocket.cpp: Handle AbnormalClosure as wasClean == false
144380        (WebCore::WebSocket::didClose):
144381        * Modules/websockets/WebSocketChannel.cpp: Handle close frames' status code carefully
144382        (WebCore::WebSocketChannel::processFrame):
144383        * Modules/websockets/WebSocketChannel.h: Update on newly defined close event codes
144384
1443852012-05-28  Kentaro Hara  <haraken@chromium.org>
144386
144387        [V8] Avoid passing NULL to an 'isolate' parameter
144388        https://bugs.webkit.org/show_bug.cgi?id=87689
144389
144390        Reviewed by Adam Barth.
144391
144392        v8::Null(isolate) crashes if we pass a NULL isolate.
144393        Thus we are planning to replace v8::Null()s in a following way:
144394
144395        - Implement V8Bindings::v8Null(isolate). v8Null(isolate) does the NULL check.
144396        If isolate is NULL, v8Null(isolate) calls v8::Null(). Otherwise,
144397        v8Null(isolate) calls v8::Null(isolate).
144398
144399        - In V8 bindings, we replace v8::Null() with v8::Null(isolate) for a
144400        non-optional 'isolate' parameter.
144401        (e.g. void foo(..., Isolate* isolate) { v8::Null(); } )
144402
144403        - In V8 bindings, we replace v8::Null() with v8Null(isolate) for an
144404        optional 'isolate' parameter.
144405        (e.g. void foo(..., Isolate* isolate = 0) { v8::Null(); } )
144406
144407        However, currently we cannot do the replacement mechanically, since some code
144408        pass NULL to a non-optional 'isolate' parameter. In other words, currently
144409        "non-optional" does not guarantee that 'isolate' is not NULL.
144410
144411        This patch removes all the code that passes NULL to a non-optional 'isolate'
144412        parameter. This will enable us to achieve the replacement mechanically.
144413
144414        No tests. No behavior change.
144415
144416        * bindings/scripts/CodeGeneratorV8.pm:
144417        (GenerateCallbackImplementation):
144418        (NativeToJSValue):
144419        * bindings/scripts/test/V8/V8TestCallback.cpp:
144420        (WebCore::V8TestCallback::callbackWithClass1Param):
144421        (WebCore::V8TestCallback::callbackWithClass2Param):
144422        (WebCore::V8TestCallback::callbackWithStringList):
144423        (WebCore::V8TestCallback::callbackRequiresThisToPass):
144424        * bindings/scripts/test/V8/V8TestObj.cpp:
144425        (WebCore::V8TestObj::installPerContextProperties):
144426        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
144427        (WebCore::V8SQLStatementErrorCallback::handleEvent):
144428        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
144429        (WebCore::V8MutationCallback::handleEvent):
144430
1444312012-05-28  Kent Tamura  <tkent@chromium.org>
144432
144433        Form controls in <fieldset disabled> should not be validated.
144434        https://bugs.webkit.org/show_bug.cgi?id=87381
144435
144436        Reviewed by Hajime Morita.
144437
144438        We need to use disabeld() instead of m_disabled to calculate
144439        willValidate property. Also, we need to update willValidate if
144440        necessary.
144441
144442        Test: fast/forms/fieldset/validation-in-fieldset.html
144443
144444        * html/HTMLFieldSetElement.cpp:
144445        (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
144446         - Do not traverse this.
144447         - Calls ancestorDisabledStateWasChanged() instead of
144448          setNeedsStyleRecalc() because we'd like to do additional tasks.
144449        * html/HTMLFormControlElement.cpp:
144450        (WebCore::HTMLFormControlElement::ancestorDisabledStateWasChanged):
144451        Added. Just calls disabledAttributeChanged().
144452        (WebCore::HTMLFormControlElement::parseAttribute):
144453        Do not call setNeedsWillValidateCheck() whenever an attribute is updated.
144454        It should be called only if disabled or readonly attribute is updated.
144455        (WebCore::HTMLFormControlElement::disabledAttributeChanged):
144456        Add setNeedsWillValidateCheck(). It was moved from parseAttribute().
144457        (WebCore::HTMLFormControlElement::insertedInto):
144458        Invalidate ancestor information.
144459        (WebCore::HTMLFormControlElement::recalcWillValidate):
144460        Use disabled() instead of m_disabled. disabled() takes care of
144461        ancestor's disabled state.
144462        * html/HTMLFormControlElement.h:
144463        (HTMLFormControlElement):
144464
1444652012-05-28  Rakesh KN  <rakesh.kn@motorola.com>
144466
144467        [Forms] HTMLFieldSetElement.idl doesn't have elements attribute.
144468        https://bugs.webkit.org/show_bug.cgi?id=80110
144469
144470        Reviewed by Kent Tamura.
144471
144472        Implemented elements attribute for HTMLFieldSetElement. This is spec'ed at
144473        http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-fieldset-elements
144474
144475        Tests: fast/forms/fieldset/fieldset-elements.html
144476               fast/forms/fieldset/fieldset-form-collection-radionode-list.html
144477
144478        * dom/Node.cpp:
144479        (WebCore::Node::radioNodeList):
144480        Extended ASSERT to assert if not HTMLFieldSetElement or HTMLFormElement.
144481        * html/HTMLFieldSetElement.cpp:
144482        (WebCore::HTMLFieldSetElement::elements):
144483        Elements attribute implementation.
144484        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
144485        Update the formcontrol elements collections if dom tree got modified.
144486        (WebCore::HTMLFieldSetElement::associatedElements):
144487        FormControl elements collection accessor.
144488        (WebCore::HTMLFieldSetElement::length):
144489        Number of elements in the fieldset group.
144490        * html/HTMLFieldSetElement.h:
144491        Added elements collection member and form control collection members.
144492        * html/HTMLFieldSetElement.idl:
144493        Added elements attribute.
144494        * html/HTMLFormCollection.cpp:
144495        (WebCore::HTMLFormCollection::formControlElements):
144496        Added support for HTMLFieldSetElement, based on base element type gets its associated elements.
144497        (WebCore::HTMLFormCollection::numberOfFormControlElements): Ditto
144498        (WebCore::HTMLFormCollection::getNamedFormItem): Process image elements only for form element.
144499        (WebCore::HTMLFormCollection::updateNameCache): Ditto
144500        * html/RadioNodeList.cpp:
144501        (WebCore::RadioNodeList::RadioNodeList):
144502        DynamicSubTree root element is decided based on the type whether base element is form or fieldset element.
144503        Renamed m_formElement to m_baseElement.
144504        (WebCore::RadioNodeList::~RadioNodeList):
144505        Renamed m_formElement to m_baseElement.
144506        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
144507        Form element specific changes moved under form element check.
144508        * html/RadioNodeList.h:
144509        (WebCore::RadioNodeList::create):
144510        (RadioNodeList):
144511        Renamed m_formElement to m_baseElement.
144512
1445132012-05-28  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
144514
144515        [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
144516        https://bugs.webkit.org/show_bug.cgi?id=80135
144517
144518        Reviewed by Rob Buis.
144519
144520        RIM PR: 145660
144521        Fixed a regression introduced by r111810, we should cancel the new
144522        request when user press cancel button in http authentication challenge
144523        dialog, and we should also allow sending empty username and password
144524        with the request.
144525        Also removed redundant codes which checked the existence of the
144526        FrameLoaderClient pointer, as we've already moved authenticationChallenge()
144527        out of class FrameLoaderClient, it is not needed.
144528
144529        Manual test added. Testing http authentication dialog relies on user interaction.
144530
144531        Resubmit the patch reverted by r115104 after the digest infinite loop
144532        issue for BlackBerry porting get identified and fixed.
144533
144534        Internally reviewed by Joe Mason <jmason@rim.com>
144535
144536        * platform/blackberry/PageClientBlackBerry.h:
144537        * platform/network/blackberry/NetworkJob.cpp:
144538        (WebCore::NetworkJob::sendRequestWithCredentials):
144539
1445402012-05-28  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
144541
144542        [BlackBerry] http authentication challenge issue when loading favicon
144543        https://bugs.webkit.org/show_bug.cgi?id=87665
144544
144545        Reviewed by Rob Buis.
144546
144547        Provide the TargetType when generating a favicon loading
144548        request. Loading favicons is triggered after the main resource
144549        has been loaded and parsed, so if we cancel the authentication
144550        challenge when loading main resource, we should also cancel
144551        loading the favicon when it starts to load. If not we will
144552        receive another challenge after we canceled the main resource
144553        loading, which may confuse the user.
144554
144555        Internally reviewed by Joe Mason <jmason@rim.com>
144556
144557        No new tests because of no behavior changes.
144558
144559        * loader/icon/IconLoader.cpp:
144560        (WebCore::IconLoader::startLoading):
144561        * platform/network/blackberry/NetworkJob.cpp:
144562        (WebCore::NetworkJob::sendRequestWithCredentials):
144563
1445642012-05-28  MORITA Hajime  <morrita@google.com>
144565
144566        Rename FrameLoaderClient::shadowDOMAllowed() to allowShadowDOM()
144567        https://bugs.webkit.org/show_bug.cgi?id=87101
144568
144569        Reviewed by Kentaro Hara.
144570
144571        No new tests. No behavior change.
144572
144573        * bindings/generic/ContextEnabledFeatures.cpp:
144574        (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
144575        * loader/FrameLoaderClient.h:
144576        (WebCore::FrameLoaderClient::allowShadowDOM):
144577
1445782012-05-28  David Barton  <dbarton@mathscribe.com>
144579
144580        mathml/presentation/mo-stretch.html and mroot-pref-width.html tests fail on Mac
144581        https://bugs.webkit.org/show_bug.cgi?id=86786
144582
144583        Reviewed by Darin Adler.
144584
144585        The fix to https://bugs.webkit.org/show_bug.cgi?id=84167 changed inline-table baselines,
144586        including for <mtable>. We therefore have to correct <mtable>'s vertical-align CSS
144587        property.
144588
144589        Tested by existing tests mo-stretch.html, row-alignment.xhtml, and tables.xhtml.
144590
144591        * css/mathml.css:
144592        (mtable):
144593
1445942012-05-28  Luke Macpherson  <macpherson@chromium.org>
144595
144596        Make CSSParser::filteredProperties() O(n) instead of O(n^2) and improve readability.
144597        https://bugs.webkit.org/show_bug.cgi?id=87078
144598
144599        Reviewed by Darin Adler.
144600
144601        This patch implements a number of improvements to filteredProperties:
144602        1) Make the code more linearly readable by separating out handling of important and non-important properties.
144603        2) Eliminate one BitArray instance (reduces hot memory so more cache friendly).
144604        3) Remove O(n^2) behavior caused by scanning for and removing previously encountered definitions of each property.
144605        The key algorithmic change is to add properties in decreasing precedence:
144606        a) Iterating once per (important, !important) so that important properties are visited first.
144607        b) Reverse iteration of m_parsedProperties visits the properties in decreasing precedence.
144608
144609        Covered by loads of existing tests - getting CSS property precedence wrong results in too many errors to list.
144610        In particular fast/css contains test cases for important corner cases like duplicated important properties.
144611
144612        * css/CSSParser.cpp:
144613        (WebCore::CSSParser::createStylePropertySet):
144614        * css/CSSProperty.h:
144615        Add vector traits so that CSSProperty can just be memset by vector without calling constructor.
144616
1446172012-05-28  MORITA Hajime  <morrita@google.com>
144618
144619        Can't edit <input> elements with :first-letter
144620        https://bugs.webkit.org/show_bug.cgi?id=87615
144621
144622        Reviewed by Kent Tamura.
144623
144624        A check using canHaveGeneratedChildren() should cover not only
144625        button and menulist, but also RenderTextControl.
144626        This change pulles canHaveGeneratedChildren() up
144627        from RenderDeprecatedFlexibleBox to RenderObject,
144628        and lets RenderTextControl override it.
144629
144630        Test: fast/forms/input-first-letter-edit.html
144631
144632        * rendering/RenderBlock.cpp:
144633        (WebCore):
144634        (WebCore::RenderBlock::styleDidChange):
144635        (WebCore::RenderBlock::updateFirstLetter):
144636        * rendering/RenderBlock.h: Removed a static function canHaveGeneratedChildren()
144637        (RenderBlock):
144638        * rendering/RenderDeprecatedFlexibleBox.h:
144639        * rendering/RenderObject.cpp:
144640        (WebCore):
144641        (WebCore::RenderObject::canHaveGeneratedChildren): Added.
144642        * rendering/RenderObject.h:
144643        (RenderObject):
144644        * rendering/RenderTextControl.h:
144645
1446462012-05-28  Arvid Nilsson  <anilsson@rim.com>
144647
144648        [BlackBerry] Add support for layers with scale invariant size
144649        https://bugs.webkit.org/show_bug.cgi?id=87601
144650
144651        Reviewed by Rob Buis.
144652
144653        To support layers that have a "floating" appearance, i.e. don't change size
144654        when the web page is drawn at a different scale, we add a new layer property
144655        named "sizeIsScaleInvariant".
144656
144657        The anchor position will still be given in document coordinates for these
144658        "floating" layers, so this is well suited for interface elements like selection
144659        handles whose size is always the same but move with the web page contents.
144660
144661        PR #156812
144662
144663        * platform/graphics/blackberry/LayerCompositingThread.cpp:
144664        (WebCore::LayerCompositingThread::setDrawTransform):
144665        (WebCore::LayerCompositingThread::drawTextures):
144666        (WebCore::LayerCompositingThread::drawMissingTextures):
144667        * platform/graphics/blackberry/LayerCompositingThread.h:
144668        (LayerCompositingThread):
144669        * platform/graphics/blackberry/LayerCompositingThreadClient.h:
144670        (LayerCompositingThreadClient):
144671        (WebCore::LayerCompositingThreadClient::drawMissingTextures):
144672        * platform/graphics/blackberry/LayerData.h:
144673        (WebCore::LayerData::LayerData):
144674        (WebCore::LayerData::sizeIsScaleInvariant):
144675        (LayerData):
144676        * platform/graphics/blackberry/LayerRenderer.cpp:
144677        (WebCore::LayerRenderer::LayerRenderer):
144678        (WebCore::LayerRenderer::compositeLayers):
144679        (WebCore::LayerRenderer::updateLayersRecursive):
144680        (WebCore::LayerRenderer::compositeLayersRecursive):
144681        * platform/graphics/blackberry/LayerRenderer.h:
144682        (LayerRenderer):
144683        * platform/graphics/blackberry/LayerTiler.cpp:
144684        (WebCore::LayerTiler::updateTextureContentsIfNeeded):
144685        (WebCore::LayerTiler::drawTextures):
144686        (WebCore::LayerTiler::drawMissingTextures):
144687        (WebCore::LayerTiler::drawTexturesInternal):
144688        * platform/graphics/blackberry/LayerTiler.h:
144689        (LayerTiler):
144690        * platform/graphics/blackberry/LayerWebKitThread.h:
144691        (WebCore::LayerWebKitThread::setSizeIsScaleInvariant):
144692        (LayerWebKitThread):
144693
1446942012-05-28  Arvid Nilsson  <anilsson@rim.com>
144695
144696        [BlackBerry] Make it possible to manipulate layers on the compositing thread
144697        https://bugs.webkit.org/show_bug.cgi?id=87602
144698
144699        Reviewed by Rob Buis.
144700
144701        Normally, layers are manipulated on the WebKit thread, and the changes are
144702        synced to the compositing thread during the next accelerated compositing commit
144703        operation.
144704
144705        However, for overlay layers the ability to manipulate layers on the compositing
144706        thread is necessary for adequate user interface responsiveness.
144707
144708        Two mechanisms are added:
144709        1. For a layer with a WebKit-thread counterpart, you can temporarily override
144710        attributes or add animations whose output override attributes.
144711        2. For a layer with no WebKit-thread counterpart, you can now directly set the
144712        compositing thread values for attributes. If you attempt to do this for layers
144713        that do have a WebKit-thread counterpart, the compositing thread values will
144714        be overwritten at the time of the next commit, which makes the override
144715        mechanism more useful there.
144716
144717        PR #156812
144718
144719        * platform/graphics/blackberry/LayerCompositingThread.cpp:
144720        (WebCore::LayerCompositingThread::addSublayer):
144721        (WebCore):
144722        (WebCore::LayerCompositingThread::updateAnimations):
144723        (WebCore::LayerCompositingThread::removeAnimation):
144724        (WebCore::LayerCompositingThread::override):
144725        (WebCore::LayerCompositingThread::clearOverride):
144726        * platform/graphics/blackberry/LayerCompositingThread.h:
144727        (LayerOverride):
144728        (WebCore::LayerOverride::create):
144729        (WebCore::LayerOverride::setPosition):
144730        (WebCore::LayerOverride::setAnchorPoint):
144731        (WebCore::LayerOverride::setBounds):
144732        (WebCore::LayerOverride::setTransform):
144733        (WebCore::LayerOverride::setOpacity):
144734        (WebCore::LayerOverride::addAnimation):
144735        (WebCore::LayerOverride::LayerOverride):
144736        (WebCore):
144737        (LayerCompositingThread):
144738        (WebCore::LayerCompositingThread::setPosition):
144739        (WebCore::LayerCompositingThread::setAnchorPoint):
144740        (WebCore::LayerCompositingThread::setBounds):
144741        (WebCore::LayerCompositingThread::setSizeIsScaleInvariant):
144742        (WebCore::LayerCompositingThread::setTransform):
144743        (WebCore::LayerCompositingThread::setOpacity):
144744        (WebCore::LayerCompositingThread::setNeedsTexture):
144745        * platform/graphics/blackberry/LayerWebKitThread.cpp:
144746        (WebCore::LayerWebKitThread::LayerWebKitThread):
144747        (WebCore::LayerWebKitThread::commitOnCompositingThread):
144748        * platform/graphics/blackberry/LayerWebKitThread.h:
144749        (LayerWebKitThread):
144750        (WebCore::LayerWebKitThread::clearOverride):
144751
1447522012-05-28  Rob Flack  <flackr@chromium.org>
144753
144754        [chromium] Only increase size of Combo Box Options when displayed on touch screen
144755        https://bugs.webkit.org/show_bug.cgi?id=85921
144756
144757        Reviewed by Adam Barth.
144758
144759        Adds a flag to set whether the current device is a touch screen, independent of whether touch events are supported and use this for the combo box sizing.
144760
144761        No new tests as this is a flag change and covered by existing tests: WebKit/chromium/tests/PopupMenuTest.cpp
144762
144763        * page/Settings.cpp:
144764        (WebCore::Settings::Settings):
144765        * page/Settings.h:
144766        (WebCore::Settings::setDeviceSupportsTouch):
144767        (WebCore::Settings::deviceSupportsTouch):
144768        (Settings):
144769        * platform/chromium/PopupListBox.cpp:
144770        (WebCore::PopupListBox::getRowHeight):
144771        * platform/chromium/PopupListBox.h:
144772        (PopupContainerSettings):
144773        * platform/chromium/PopupMenuChromium.cpp:
144774        (WebCore::PopupMenuChromium::show):
144775
1447762012-05-28  Arvid Nilsson  <anilsson@rim.com>
144777
144778        [BlackBerry] Make custom compositing thread layers more flexible
144779        https://bugs.webkit.org/show_bug.cgi?id=87600
144780
144781        Reviewed by Rob Buis.
144782
144783        Introduce a LayerCompositingThreadClient that's used to fine tune the
144784        behaviour of custom layers. Let the LayerTiler be a
144785        LayerCompositingThreadClient and thus decouple it from
144786        LayerCompositingThread. Adjust method signatures to allow a one-to-many
144787        relationship between Client and Layer.
144788
144789        Remove the old LayerCompositingThread::drawCustom() in favour of this new
144790        Client interface.
144791
144792        PR #156812
144793
144794        * platform/graphics/blackberry/LayerCompositingThread.cpp:
144795        (WebCore::LayerCompositingThread::create):
144796        (WebCore::LayerCompositingThread::LayerCompositingThread):
144797        (WebCore::LayerCompositingThread::~LayerCompositingThread):
144798        (WebCore::LayerCompositingThread::deleteTextures):
144799        (WebCore::LayerCompositingThread::drawTextures):
144800        (WebCore::LayerCompositingThread::hasMissingTextures):
144801        (WebCore::LayerCompositingThread::drawMissingTextures):
144802        (WebCore::LayerCompositingThread::updateTextureContentsIfNeeded):
144803        (WebCore::LayerCompositingThread::bindContentsTexture):
144804        (WebCore::LayerCompositingThread::setVisible):
144805        (WebCore::LayerCompositingThread::scheduleCommit):
144806        * platform/graphics/blackberry/LayerCompositingThread.h:
144807        (WebCore):
144808        (LayerCompositingThread):
144809        * platform/graphics/blackberry/LayerCompositingThreadClient.h: Added.
144810        (WebCore):
144811        (LayerCompositingThreadClient):
144812        (WebCore::LayerCompositingThreadClient::~LayerCompositingThreadClient):
144813        (WebCore::LayerCompositingThreadClient::bindContentsTexture):
144814        (WebCore::LayerCompositingThreadClient::hasMissingTextures):
144815        (WebCore::LayerCompositingThreadClient::drawMissingTextures):
144816        (WebCore::LayerCompositingThreadClient::scheduleCommit):
144817        * platform/graphics/blackberry/LayerRenderer.cpp:
144818        (WebCore::LayerRenderer::drawDebugBorder):
144819        * platform/graphics/blackberry/LayerTiler.cpp:
144820        (WebCore::LayerTiler::LayerTiler):
144821        (WebCore::LayerTiler::layerCompositingThreadDestroyed):
144822        (WebCore::LayerTiler::layerVisibilityChanged):
144823        (WebCore::LayerTiler::uploadTexturesIfNeeded):
144824        (WebCore::LayerTiler::deleteTextures):
144825        (WebCore::LayerTiler::scheduleCommit):
144826        (WebCore):
144827        (WebCore::LayerTiler::bindContentsTexture):
144828        * platform/graphics/blackberry/LayerTiler.h:
144829        (LayerTiler):
144830        (WebCore::LayerTiler::hasMissingTextures):
144831        * platform/graphics/blackberry/LayerWebKitThread.cpp:
144832        (WebCore::LayerWebKitThread::LayerWebKitThread):
144833        * platform/graphics/blackberry/LayerWebKitThread.h:
144834        (LayerWebKitThread):
144835
1448362012-05-25  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
144837
144838        WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled
144839        https://bugs.webkit.org/show_bug.cgi?id=42328
144840
144841        Reviewed by Eric Seidel.
144842
144843        Add setJavaScriptProfilingEnabled() to window.internals.settings. No new tests, but this
144844        change will allow more tests to run in WebKitTestRunner and DRT for ports that weren't
144845        implementing this function before.
144846        This patch also refactors InspectorController::enableProfiler() and
144847        InspectorController::disableProfiler() to InspectorController::setProfilerEnabled(bool).
144848
144849        * WebCore.exp.in:
144850        * inspector/InspectorController.cpp:
144851        (WebCore::InspectorController::profilerEnabled):
144852        (WebCore::InspectorController::setProfilerEnabled):
144853        * inspector/InspectorController.h:
144854        (InspectorController):
144855        * testing/InternalSettings.cpp:
144856        (WebCore::InternalSettings::InternalSettings):
144857        (WebCore::InternalSettings::restoreTo):
144858        (WebCore::InternalSettings::setJavaScriptProfilingEnabled):
144859        (WebCore):
144860        * testing/InternalSettings.h:
144861        (InternalSettings):
144862        * testing/InternalSettings.idl:
144863
1448642012-05-28  Yong Li  <yoli@rim.com>
144865
144866        Crash on incomplete :not().
144867        https://bugs.webkit.org/show_bug.cgi?id=86673
144868
144869        Reviewed by Antti Koivisto.
144870
144871        Add back null-checks for incomplete :not() class
144872        which were dropped by r81845.
144873
144874        * css/CSSSelector.cpp:
144875        (WebCore::CSSSelector::specificityForOneSelector):
144876        (WebCore::CSSSelector::selectorText):
144877        * css/SelectorChecker.cpp:
144878        (WebCore::SelectorChecker::checkOneSelector):
144879        (WebCore::SelectorChecker::determineLinkMatchType):
144880
1448812012-05-28  Leo Yang  <leo.yang@torchmobile.com.cn>
144882
144883        FileWriterSync binding should have no static table
144884        https://bugs.webkit.org/show_bug.cgi?id=87645
144885
144886        Reviewed by George Staikos.
144887
144888        FileWriterSync could be used in filesystem FileWriter in worker thread, so we should add ProgressEvent in idl file.
144889
144890        Covered by existing test: fast/filesystem/workers/sync-operations.html.
144891
144892        * Modules/filesystem/FileWriterSync.idl:
144893
1448942012-05-28  Arvid Nilsson  <anilsson@rim.com>
144895
144896        [BlackBerry] Add an overlay layer
144897        https://bugs.webkit.org/show_bug.cgi?id=87567
144898
144899        Reviewed by Antonio Gomes.
144900
144901        The overlay layer allows us to have compositing layers even though the
144902        web page is not currently using accelerated compositing.
144903
144904        These layers can be used to implement tap highlight, inspector overlay
144905        and more.
144906
144907        The WebCore changes support the overlay layer functionality in WebKit
144908        by making it possible to add animations from the compositing thread
144909        without them being instantly overwritten during the next commit.
144910
144911        Also a new custom layer type is added, which allow an overlay layer to
144912        draw itself using raw OpenGL calls. An instance of a custom subclass of
144913        LayerCompositingThread must be provided when creating the
144914        LayerWebKitThread. Then, the custom layer can be used as the content
144915        layer of a GraphicsLayer, or by itself.
144916
144917        Reviewed internally by Filip Spacek.
144918
144919        PR #154335
144920
144921        * platform/graphics/blackberry/LayerCompositingThread.cpp:
144922        (WebCore::LayerCompositingThread::~LayerCompositingThread):
144923        (WebCore::LayerCompositingThread::deleteTextures):
144924        (WebCore::LayerCompositingThread::drawTextures):
144925        (WebCore::LayerCompositingThread::drawMissingTextures):
144926        (WebCore::LayerCompositingThread::updateTextureContentsIfNeeded):
144927        (WebCore::LayerCompositingThread::setVisible):
144928        (WebCore::LayerCompositingThread::scheduleCommit):
144929        * platform/graphics/blackberry/LayerCompositingThread.h:
144930        (WebCore::LayerCompositingThread::addAnimation):
144931        (WebCore::LayerCompositingThread::setRunningAnimations):
144932        (WebCore::LayerCompositingThread::setSuspendedAnimations):
144933        (LayerCompositingThread):
144934        (WebCore::LayerCompositingThread::drawCustom):
144935        * platform/graphics/blackberry/LayerData.h:
144936        (LayerData):
144937        * platform/graphics/blackberry/LayerWebKitThread.cpp:
144938        (WebCore::LayerWebKitThread::LayerWebKitThread):
144939        (WebCore):
144940        (WebCore::LayerWebKitThread::~LayerWebKitThread):
144941        (WebCore::LayerWebKitThread::updateTextureContentsIfNeeded):
144942        (WebCore::LayerWebKitThread::startAnimations):
144943        (WebCore::LayerWebKitThread::commitOnCompositingThread):
144944        (WebCore::LayerWebKitThread::setNeedsDisplayInRect):
144945        (WebCore::LayerWebKitThread::setNeedsDisplay):
144946        (WebCore::LayerWebKitThread::setIsMask):
144947        (WebCore::LayerWebKitThread::setRunningAnimations):
144948        (WebCore::LayerWebKitThread::setSuspendedAnimations):
144949        * platform/graphics/blackberry/LayerWebKitThread.h:
144950        (LayerWebKitThread):
144951
1449522012-05-28  Leo Yang  <leo.yang@torchmobile.com.cn>
144953
144954        ProgressEvent JSC binding should have no static table
144955        https://bugs.webkit.org/show_bug.cgi?id=87365
144956
144957        Reviewed by George Staikos.
144958
144959        ProgressEvent could be used in filesystem FileWriter in worker thread, so we should add ProgressEvent in idl file.
144960
144961        Covered by existing test: fast/filesystem/workers/file-writer-events.html.
144962
144963        * dom/ProgressEvent.idl:
144964
1449652012-05-28  Arvid Nilsson  <anilsson@rim.com>
144966
144967        [BlackBerry] Update WebPageCompositor::render() API
144968        https://bugs.webkit.org/show_bug.cgi?id=87565
144969
144970        Reviewed by Rob Buis.
144971
144972        The new API allows the embedder to specify the root transform and many
144973        OpenGL related parameters.
144974
144975        Also refactor the code to allow several sets of layers to be rendered,
144976        and to allow interleaving the rendering of layers with rendering of
144977        buffers and checkerboard.
144978
144979        Reviewed internally by Filip Spacek.
144980
144981        PR #154334
144982
144983        * platform/graphics/blackberry/LayerCompositingThread.cpp:
144984        (WebCore::LayerCompositingThread::drawTextures):
144985        (WebCore::LayerCompositingThread::drawSurface):
144986        * platform/graphics/blackberry/LayerRenderer.cpp:
144987        (WebCore::LayerRenderer::orthoMatrix):
144988        (WebCore::LayerRenderer::LayerRenderer):
144989        (WebCore::LayerRenderer::prepareFrame):
144990        (WebCore):
144991        (WebCore::LayerRenderer::setViewport):
144992        (WebCore::LayerRenderer::compositeLayers):
144993        (WebCore::LayerRenderer::compositeBuffer):
144994        (WebCore::LayerRenderer::drawCheckerboardPattern):
144995        (WebCore::LayerRenderer::drawLayersOnSurfaces):
144996        (WebCore::LayerRenderer::prepareFrameRecursive):
144997        (WebCore::LayerRenderer::updateLayersRecursive):
144998        (WebCore::LayerRenderer::compositeLayersRecursive):
144999        (WebCore::LayerRenderer::updateScissorIfNeeded):
145000        (WebCore::LayerRenderingResults::addHolePunchRect):
145001        * platform/graphics/blackberry/LayerRenderer.h:
145002        (LayerRenderer):
145003
1450042012-05-28  Antti Koivisto  <antti@apple.com>
145005
145006        REGRESSION(r96517): Attribute selector fails to match dynamically modified style attribute
145007        https://bugs.webkit.org/show_bug.cgi?id=87349
145008
145009        Reviewed by Andreas Kling.
145010        
145011        Selector fast path does not trigger lazy style attribute generation. Since attribute selectors matching
145012        style attribute are rare, disallow them from the fast path rather than making it more branchy.
145013
145014        Test: fast/css/dynamic-style-attribute-query.html
145015
145016        * css/SelectorChecker.cpp:
145017        (WebCore::isFastCheckableMatch):
145018
1450192012-05-28  Peter Rybin  <peter.rybin@gmail.com>
145020
145021        Web Inspector: Expose function (closure) scopes in remote protocol
145022        https://bugs.webkit.org/show_bug.cgi?id=86861
145023
145024        Reviewed by Yury Semikhatsky.
145025
145026        A data transfer from V8's FunctionMirror via DebuggerScript.js via InjectedScriptHost is built.
145027        Scope field is added to protocol declaration similar to scopes of stack call frame.
145028        Test for function details is extended.
145029        JSC code binging got fixme for implemting the corresponding feature.
145030
145031        * bindings/js/JSInjectedScriptHostCustom.cpp:
145032        (WebCore::JSInjectedScriptHost::functionDetails):
145033        * bindings/v8/DebuggerScript.js:
145034        * bindings/v8/ScriptDebugServer.cpp:
145035        (WebCore::ScriptDebugServer::functionScopes):
145036        (WebCore):
145037        * bindings/v8/ScriptDebugServer.h:
145038        (ScriptDebugServer):
145039        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
145040        (WebCore::V8InjectedScriptHost::functionDetailsCallback):
145041        * inspector/InjectedScriptHost.cpp:
145042        (WebCore):
145043        (WebCore::InjectedScriptHost::scriptDebugServer):
145044        * inspector/InjectedScriptHost.h:
145045        (WebCore):
145046        (WebCore::InjectedScriptHost::init):
145047        (InjectedScriptHost):
145048        * inspector/InjectedScriptSource.js:
145049        (.):
145050        * inspector/Inspector.json:
145051        * inspector/InspectorController.cpp:
145052        (WebCore::InspectorController::InspectorController):
145053        * inspector/WorkerInspectorController.cpp:
145054        (WebCore::WorkerInspectorController::WorkerInspectorController):
145055
1450562012-05-28  Arvid Nilsson  <anilsson@rim.com>
145057
145058        [BlackBerry] Add a constructor to create a Path from an SkPath
145059        https://bugs.webkit.org/show_bug.cgi?id=87566
145060
145061        Reviewed by Antonio Gomes.
145062
145063        Skia allows the creation of more complex paths than WebCore would
145064        allow. This will be used in the BlackBerry port to implement a default
145065        tap highlight appearance.
145066
145067        Reviewed internally by Mike Lattanzio.
145068
145069        PR #154329
145070
145071        * platform/graphics/Path.h:
145072        (Path):
145073        * platform/graphics/skia/PathSkia.cpp:
145074        (WebCore):
145075        (WebCore::Path::Path):
145076
1450772012-05-28  Alexis Menard  <alexis.menard@openbossa.org>
145078
145079        Unreviewed build fix for Mac on Lion.
145080
145081        * inspector/CodeGeneratorInspector.py:
145082
1450832012-05-28  Keishi Hattori  <keishi@webkit.org>
145084
145085        Expose value localization function of HTMLInputElement
145086        https://bugs.webkit.org/show_bug.cgi?id=84356
145087
145088        Reviewed by Kent Tamura.
145089
145090        No new tests.
145091
145092        We want to localize the values that are defined in the datalist element.
145093        This adds HTMLInputElement::localizeValue() which will localize a given
145094        value.
145095
145096        * html/BaseDateAndTimeInputType.cpp:
145097        (WebCore::BaseDateAndTimeInputType::localizeValue):
145098        (WebCore):
145099        (WebCore::BaseDateAndTimeInputType::visibleValue):
145100        * html/BaseDateAndTimeInputType.h:
145101        (BaseDateAndTimeInputType):
145102        * html/HTMLInputElement.cpp:
145103        (WebCore::HTMLInputElement::localizeValue):
145104        (WebCore):
145105        * html/HTMLInputElement.h:
145106        (HTMLInputElement):
145107        * html/InputType.cpp:
145108        (WebCore::InputType::localizeValue):
145109        (WebCore):
145110        * html/InputType.h:
145111        (InputType):
145112        * html/NumberInputType.cpp:
145113        (WebCore::NumberInputType::localizeValue):
145114        (WebCore):
145115        (WebCore::NumberInputType::visibleValue):
145116        * html/NumberInputType.h:
145117        (NumberInputType):
145118
1451192012-05-28  Yury Semikhatsky  <yurys@chromium.org>
145120
145121        Unreviewed. Test fix after r118670: saved timeline data may
145122        not have DOM counters data and MemoryStatistics object should
145123        take this into account.
145124
145125        * inspector/front-end/MemoryStatistics.js:
145126        (WebInspector.MemoryStatistics.prototype._onRecordAdded):
145127
1451282012-05-28  Sheriff Bot  <webkit.review.bot@gmail.com>
145129
145130        Unreviewed, rolling out r118580.
145131        http://trac.webkit.org/changeset/118580
145132        https://bugs.webkit.org/show_bug.cgi?id=87647
145133
145134        Caused webkit_unit_tests to crash on chromium. (Requested by
145135        bulach on #webkit).
145136
145137        * platform/graphics/chromium/ContentLayerChromium.cpp:
145138        (WebCore::ContentLayerPainter::create):
145139        (WebCore::ContentLayerPainter::paint):
145140        (WebCore::ContentLayerPainter::ContentLayerPainter):
145141        (ContentLayerPainter):
145142        (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
145143        * platform/graphics/chromium/TiledLayerChromium.cpp:
145144        (UpdatableTile):
145145        (WebCore::UpdatableTile::UpdatableTile):
145146        (WebCore::TiledLayerChromium::updateTiles):
145147        * platform/graphics/chromium/TiledLayerChromium.h:
145148        (TiledLayerChromium):
145149        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
145150        (WebCore::CCSettings::CCSettings):
145151        (CCSettings):
145152
1451532012-05-28  Peter Beverloo  <peter@chromium.org>
145154
145155        &AElig doesn't get rendered as U+00C6
145156        https://bugs.webkit.org/show_bug.cgi?id=87465
145157
145158        Reviewed by Adam Barth.
145159
145160        The if-statement to check whether the first entry of a certain letter
145161        already exists in the index used .get(). The very first alphabetical
145162        entry is in position "0", which evaluates to false, causing the first
145163        entry to be ignored. Instead, use a "x not in y" check here.
145164
145165        Also update WebCore.gyp to list the create-html-entity-table script as
145166        an input for the action, to make sure the table will be recreated.
145167
145168        Test: html5lib/resources/entities02.dat
145169
145170        * WebCore.gyp/WebCore.gyp:
145171        * html/parser/create-html-entity-table:
145172
1451732012-05-28  Yury Semikhatsky  <yurys@chromium.org>
145174
145175        Web Inspector: dom counters graphs vanish on switching between timeline views
145176        https://bugs.webkit.org/show_bug.cgi?id=87628
145177
145178        Reviewed by Vsevolod Vlasov.
145179
145180        MemoryStatistics object now listens to the TimelineModel events instead of being
145181        populated by timeline panel. This behavior mathes that of the overview pane.
145182
145183        * inspector/front-end/MemoryStatistics.js:
145184        (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
145185        * inspector/front-end/TimelinePanel.js:
145186        (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
145187        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
145188
1451892012-05-28  Marcus Bulach  <bulach@chromium.org>
145190
145191        [chromium] Buildfix: remove obsolete file from gypi.
145192        https://bugs.webkit.org/show_bug.cgi?id=87643
145193
145194        Reviewed by no-reviewer.
145195
145196        Following http://trac.webkit.org/changeset/118610.
145197        Removes reference to platform/graphics/gstreamer/ImageGStreamerCG.mm
145198
145199        * WebCore.gypi:
145200
1452012012-05-28  MORITA Hajime  <morrita@google.com>
145202
145203        HTMLFormControlElement::m_validationMessage shouldn't be cleared on detach()
145204        https://bugs.webkit.org/show_bug.cgi?id=87608
145205
145206        Reviewed by Kent Tamura.
145207
145208        Moved m_validationMessage clearance from detach() to removedFrom() and
145209        remove detach().
145210
145211        No new tests. This change has no visible difference. Upcoming changes rely on this though.
145212
145213        * html/HTMLFormControlElement.cpp:
145214        (WebCore::HTMLFormControlElement::removedFrom):
145215
1452162012-05-28  Yury Semikhatsky  <yurys@chromium.org>
145217
145218        Web Inspector: "Record CPU profile" button doesn't change its state after finishing profiling
145219        https://bugs.webkit.org/show_bug.cgi?id=87624
145220
145221        Reviewed by Vsevolod Vlasov.
145222
145223        Keep record button state in sync with the current profiling state.
145224
145225        * inspector/front-end/ProfilesPanel.js:
145226        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
145227
1452282012-05-28  Sheriff Bot  <webkit.review.bot@gmail.com>
145229
145230        Unreviewed, rolling out r118650.
145231        http://trac.webkit.org/changeset/118650
145232        https://bugs.webkit.org/show_bug.cgi?id=87639
145233
145234        Patch caused massive failures throughout the builders
145235        (Requested by zdobersek on #webkit).
145236
145237        * css/MediaQuery.cpp:
145238        (WebCore):
145239        (WebCore::MediaQuery::serialize):
145240        (WebCore::MediaQuery::MediaQuery):
145241        (WebCore::MediaQuery::cssText):
145242        * css/MediaQuery.h:
145243        (WebCore::MediaQuery::expressions):
145244        (WebCore::MediaQuery::mediaType):
145245        (MediaQuery):
145246        (WebCore::MediaQuery::copy):
145247        * css/MediaQueryEvaluator.cpp:
145248        (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
145249        (WebCore::MediaQueryEvaluator):
145250        (WebCore::MediaQueryEvaluator::eval):
145251        (WebCore::aspect_ratioMediaFeatureEval):
145252        (WebCore::device_aspect_ratioMediaFeatureEval):
145253        (WebCore::transform_3dMediaFeatureEval):
145254        (WebCore::view_modeMediaFeatureEval):
145255        (WebCore::createFunctionMap):
145256        * css/MediaQueryEvaluator.h:
145257        (WebCore):
145258        (MediaQueryEvaluator):
145259        * css/StyleResolver.cpp:
145260        (WebCore):
145261        (WebCore::StyleResolver::collectMatchingRulesForList):
145262        * css/StyleResolver.h:
145263        (MediaQueryResult):
145264        (WebCore::MediaQueryResult::MediaQueryResult):
145265        (WebCore):
145266        (StyleResolver):
145267
1452682012-05-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
145269
145270        Move allowRoundingHacks to Internals interface
145271        https://bugs.webkit.org/show_bug.cgi?id=87328
145272
145273        Reviewed by Hajime Morita.
145274
145275        Add allowRoundingHacks function, because it is able to work in the
145276        cross-port way by means of the Internals interface.
145277
145278        In addition, a function is added in order to restore default setting values.
145279
145280        No new tests, since we are improving here the infra-structure for testing
145281        a specific method.
145282
145283        * testing/Internals.cpp:
145284        (WebCore::Internals::reset):
145285        (WebCore):
145286        (WebCore::Internals::resetDefaultsToConsistentValues):
145287        (WebCore::Internals::allowRoundingHacks):
145288        * testing/Internals.h:
145289        (Internals):
145290        * testing/Internals.idl:
145291
1452922012-05-28  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
145293
145294        [BlackBerry] http authentication crash the browser when user commit or cancel the http authentication dialog
145295        https://bugs.webkit.org/show_bug.cgi?id=87579
145296
145297        Reviewed by George Staikos.
145298
145299        In function NetworkJob::startNewJobWithRequest, We should cancel the
145300        NetworkJob first before we start a new NetworkJob which reuses the
145301        resource handle of the old one. If we only set the m_handle = 0 of the
145302        old NetworkJob without cancelling itself, it will still receives data
145303        notification from network thread and handles the received data with
145304        the released resource handler, which will cause the crash.
145305
145306        No new tests because no behavior has changed.
145307
145308        * platform/network/blackberry/NetworkJob.cpp:
145309        (WebCore::NetworkJob::startNewJobWithRequest):
145310
1453112012-05-27  MORITA Hajime  <morrita@google.com>
145312
145313        [Refactoring][ShadowDOM] Some ElementShadow methods can be inlined.
145314        https://bugs.webkit.org/show_bug.cgi?id=87617
145315
145316        Reviewed by Kentaro Hara.
145317
145318        Inlined ElementShadow::attachHost(), ElementShadow::detachHost() and
145319        ElementShadow::reattach()
145320
145321        No new tests. No behavior change.
145322
145323        * dom/Element.cpp:
145324        (WebCore::Element::attach):
145325        (WebCore::Element::detach):
145326        * dom/ElementShadow.cpp:
145327        (WebCore::ElememtnShadow::reattachHostChildrenAndShadow):
145328        * dom/ElementShadow.h:
145329        (ElementShadow):
145330
1453312012-05-28  Peter Rybin  <peter.rybin@gmail.com>
145332
145333        Web Inspector: CodeGeneratorInspector.py: protect typed API from C++ implicit float to int cast
145334        https://bugs.webkit.org/show_bug.cgi?id=87183
145335
145336        Reviewed by Yury Semikhatsky.
145337
145338        An intermediate C++ class is introduced that uses C++ template technique to control actual type
145339        of its constructor argument.
145340        All input parameters of type "int" now have type ExactlyInt. 
145341        All usage sites are fixed accordingly.
145342
145343        * inspector/CodeGeneratorInspector.py:
145344        (TypeModel.RefPtrBased):
145345        (TypeModel.Enum):
145346        (TypeModel.ValueType):
145347        (TypeModel.ValueType.get_opt_output_type_):
145348        (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
145349        (TypeModel.ExactlyInt):
145350        (TypeModel.ExactlyInt.__init__):
145351        (TypeModel.ExactlyInt.get_input_param_type_text):
145352        (TypeModel.ExactlyInt.get_opt_output_type_):
145353        (TypeModel.init_class):
145354        (ExactlyInt):
145355        * inspector/InspectorAgent.cpp:
145356        (WebCore::InspectorAgent::enable):
145357        (WebCore::InspectorAgent::didCreateWorker):
145358        (WebCore::InspectorAgent::didDestroyWorker):
145359        (WebCore::InspectorAgent::evaluateForTestInFrontend):
145360        * inspector/InspectorApplicationCacheAgent.cpp:
145361        (WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
145362        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
145363        * inspector/InspectorDOMAgent.cpp:
145364        (WebCore::InspectorDOMAgent::buildObjectForNode):
145365        * inspector/InspectorMemoryAgent.cpp:
145366        (WebCore::jsHeapInfo):
145367        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
145368        * inspector/PageRuntimeAgent.cpp:
145369        (WebCore::PageRuntimeAgent::notifyContextCreated):
145370
1453712012-05-28  Kentaro Hara  <haraken@chromium.org>
145372
145373        Unreviewed. Rebaselined run-binding-tests results.
145374
145375        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
145376        (WebCore::JSTestActiveDOMObjectOwner::finalize):
145377        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
145378        (WebCore::JSTestCustomNamedGetterOwner::finalize):
145379        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
145380        (WebCore::JSTestEventConstructorOwner::finalize):
145381        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
145382        (WebCore::JSTestEventTargetOwner::finalize):
145383        * bindings/scripts/test/JS/JSTestException.cpp:
145384        (WebCore::JSTestExceptionOwner::finalize):
145385        * bindings/scripts/test/JS/JSTestInterface.cpp:
145386        (WebCore::JSTestInterfaceOwner::finalize):
145387        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
145388        (WebCore::JSTestMediaQueryListListenerOwner::finalize):
145389        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
145390        (WebCore::JSTestNamedConstructorOwner::finalize):
145391        * bindings/scripts/test/JS/JSTestObj.cpp:
145392        (WebCore::JSTestObjOwner::finalize):
145393        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
145394        (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
145395        * bindings/scripts/test/V8/V8TestObj.cpp:
145396        (WebCore::V8TestObj::installPerContextProperties):
145397
1453982012-05-28  Darin Adler  <darin@apple.com>
145399
145400        StyleResolver need not allocate each MediaQueryResult on the heap
145401        https://bugs.webkit.org/show_bug.cgi?id=75223
145402
145403        Reviewed by Daniel Bates.
145404
145405        * css/MediaQuery.cpp: Removed some comments that pointed to CSS documents.
145406        There is no guarantee these links will be valid over time.
145407        (WebCore::MediaQuery::MediaQuery): Rewrote for clarity, conventional WebKit coding
145408        style, and simplicity.
145409        (WebCore::MediaQuery::copy): Moved out of line; not performance critical, and this
145410        allows us to cut down header dependencies.
145411        (WebCore::MediaQuery::cssText): Updated for change to data member name.
145412
145413        * css/MediaQuery.h: Removed unneeded includes. Removed non-helpful argument name
145414        "exprs". Changed expressions function to return a reference instead of
145415        a pointer. Changed mediaType and cssText functions to return a reference. Renamed
145416        m_serializationCache to m_serializedQuery. Moved copy function out of header.
145417
145418        * css/MediaQueryEvaluator.cpp: Renamed EvalFunc to MediaFeatureEvaluationFunction.
145419        Broke a FIXME into three and reworded for clarity.
145420        (WebCore::MediaQueryEvaluator): Updated for name changes.
145421        (WebCore::MediaQueryEvaluator::eval): Rewrote this for clarity and to regularize
145422        the logic a bit.
145423        (WebCore::aspect_ratioMediaFeatureEval): Got rid of a != 0 that is contrary to the
145424        normal WebKit style.
145425        (WebCore::device_aspect_ratioMediaFeatureEval): Ditto.
145426        (WebCore::transform_3dMediaFeatureEval): Fixed mangled #if that was here.
145427        (WebCore::view_modeMediaFeatureEval): Replaced UNUSED_PARAM usage with ASSERT_UNUSED.
145428        (WebCore::createFunctionMap): Changed this so it returns the map so we can use a
145429        cleaner style in the caller.
145430        (WebCore::MediaQueryEvaluator::eval): Updated to take a reference and improved the
145431        comments and coding style a bit.
145432
145433        * css/MediaQueryEvaluator.h: Updated comment style. Removed unused constructor.
145434        Removed unneeded destructor declaration. Renamed m_expResult to m_mediaFeatureResult.
145435
145436        * css/StyleResolver.cpp: Moved the MediaQueryResult class into this file
145437        and made it a structure rather than a class.
145438        (WebCore::StyleResolver::addViewportDependentMediaQueryResult): Updated to take
145439        a reference argument instead of a pointer and for the new vector type.
145440        (WebCore::StyleResolver::affectedByViewportChange): Updated for above changes.
145441
145442        * css/StyleResolver.h: Removed many unneeded includes and forward declarations of
145443        classes, including now-unneeded include of MediaQueryExp.h. Replaced MediaQueryResult
145444        definition with a forward declaration. Changed addViewportDependentMediaQueryResult
145445        to take a reference instead of a pointer. Changed m_viewportDependentMediaQueryResults
145446        to be a vector of values rather than of pointers.
145447
1454482012-05-27  Shinya Kawanaka  <shinyak@chromium.org>
145449
145450        cut, copy or paste event won't be fired in Shadow DOM.
145451        https://bugs.webkit.org/show_bug.cgi?id=87352
145452
145453        Reviewed by Dimitri Glazkov.
145454
145455        cut, copy or paste event was not fired in Shadow DOM.
145456        Since event re-targeting has been implemented, it should be safe to fire them in Shadow DOM now.
145457
145458        Tests: fast/dom/shadow/cppevent-in-shadow.html
145459               fast/dom/shadow/cppevent-input-in-shadow.html
145460
145461        * editing/Editor.cpp:
145462        (WebCore::Editor::findEventTargetFrom):
145463
1454642012-05-27  Hayato Ito  <hayato@chromium.org>
145465
145466        Support multiple shadow roots in event dispatching.
145467        https://bugs.webkit.org/show_bug.cgi?id=87470
145468
145469        Reviewed by Dimitri Glazkov.
145470
145471        The current implementation does not set event's target correctly
145472        if an event happens on DOM tree with multiple shadow roots.  So
145473        this patch updates an event re-targeting algorithm so that it
145474        works even if it is applied to multiple shadow roots.
145475
145476        Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
145477
145478        * dom/ComposedShadowTreeWalker.cpp:
145479        (WebCore::ComposedShadowTreeWalker::traverseParentIncludingInsertionPointAndShadowRoot):
145480        * dom/EventDispatcher.cpp:
145481        (WebCore::EventDispatcher::ensureEventAncestors):
145482
1454832012-05-27  Benjamin Poulain  <benjamin@webkit.org>
145484
145485        Minor code cleaning for the interface of MainResourceLoader
145486        https://bugs.webkit.org/show_bug.cgi?id=87607
145487
145488        Reviewed by Darin Adler.
145489
145490        * loader/MainResourceLoader.cpp:
145491        (WebCore::MainResourceLoader::MainResourceLoader):
145492        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
145493        (WebCore::MainResourceLoader::handleSubstituteDataLoadSoon):
145494        * loader/MainResourceLoader.h:
145495        (MainResourceLoader):
145496        -Add the OVERRIDE keyword for the methods inherited from ResourceLoader.
145497        -Remove the useless declaration of handleDataLoad(ResourceRequest&), this method does not exist.
145498        -Rename handleDataLoadNow() to handleSubstituteDataLoadNow() and make the method private. This should
145499         only be used by handleSubstituteDataLoadSoon() and indirectly through the timer.
145500
1455012012-05-27  Yoshifumi Inoue  <yosin@chromium.org>
145502
145503        [WTF] Introduce UINT64_C to MathExtras.h
145504        https://bugs.webkit.org/show_bug.cgi?id=87485
145505
145506        Reviewed by Kent Tamura.
145507
145508        This patch introduces UINT64_C for all platforms to avoid using
145509        conditional compilation.
145510
145511        No new tests. This patch doesn't change behavior.
145512
145513        * Modules/websockets/WebSocketFrame.cpp:
145514        (WebCore::WebSocketFrame::parseFrame): Replace conditional compilation with UINT64_C.
145515
1455162012-05-27  Luke Macpherson  <macpherson@chromium.org>
145517
145518        Use StringBuilder in WebKitCSSTransformValue::customCssText() to allow code reuse with CSS Variables.
145519        https://bugs.webkit.org/show_bug.cgi?id=87462
145520
145521        Reviewed by Dimitri Glazkov.
145522
145523        Factor out strings into a const char* array, and use a StringBuilder instead of String concatenation.
145524        This will allow future code to re-use the array of transform names, and StringBuilder is generally faster.
145525
145526        Covered by existing CSS transform tests.
145527
145528        * css/WebKitCSSTransformValue.cpp:
145529        (WebCore):
145530        (WebCore::WebKitCSSTransformValue::customCssText):
145531
1455322012-05-27  Arvid Nilsson  <anilsson@rim.com>
145533
145534        [BlackBerry] Update color for tap highlight and selection
145535        https://bugs.webkit.org/show_bug.cgi?id=87606
145536
145537        Reviewed by Antonio Gomes.
145538
145539        PR #154813
145540
145541        * platform/blackberry/RenderThemeBlackBerry.cpp:
145542        (WebCore::RenderThemeBlackBerry::platformTapHighlightColor):
145543        (WebCore::RenderThemeBlackBerry::platformActiveSelectionBackgroundColor):
145544
1455452012-05-27  Benjamin Poulain  <bpoulain@apple.com>
145546
145547        When pages are loaded from AppCache with DeferredLoading, willSendRequest() is never called
145548        https://bugs.webkit.org/show_bug.cgi?id=87582
145549
145550        Reviewed by Darin Adler.
145551
145552        Previously, there was a shortcut when a deferred MainResourceLoader is resumed: If the data
145553        was coming from AppCache we could jump directly to startDataLoadTimer().
145554
145555        The problem with the shortcut is willSendRequest() is never called in that particular case
145556        (substituteData + deferred-resume). The imbalance between willSendRequest() and didReceiveResponse()
145557        causes problems.
145558
145559        This patch removes the shortcut so that MainResourceLoader::loadNow() is used regardless of
145560        the deferred loading. The method MainResourceLoader::loadNow() handle the substituteData as if the loading
145561        was not deferred.
145562
145563        Test: http/tests/appcache/load-from-appcache-defer-resume-crash.html
145564
145565        * loader/MainResourceLoader.cpp:
145566        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
145567        (WebCore::MainResourceLoader::handleSubstituteDataLoadSoon):
145568        Rename the method to be consistent with the attribute it uses, making the naming more explicit.
145569        (WebCore::MainResourceLoader::loadNow):
145570        (WebCore::MainResourceLoader::setDefersLoading):
145571        * loader/MainResourceLoader.h:
145572        (MainResourceLoader):
145573
1455742012-05-27  David Kilzer  <ddkilzer@apple.com>
145575
145576        Use xcrun to find gperf path on platforms that use Xcode
145577        <http://webkit.org/b/87587>
145578
145579        Reviewed by Dan Bernstein.
145580
145581        * WebCore.xcodeproj/project.pbxproj:
145582        (Generate Derived Sources): Set GPERF environment variable using
145583        xcrun.
145584        * css/makeprop.pl: Use GPERF environment variable if set, else
145585        "gperf".
145586        * css/makevalues.pl: Ditto.
145587        * make-hash-tools.pl: Ditto.
145588
1455892012-05-27  Li Yin  <li.yin@intel.com>
145590
145591        [FileAPI] FileReader should fire progress event when blob has been completely read into memory
145592        https://bugs.webkit.org/show_bug.cgi?id=87585
145593
145594        Reviewed by Kentaro Hara.
145595
145596        From Spec: http://www.w3.org/TR/FileAPI/#dfn-progress-event
145597        One progress event will fire when blob has been completely read into memory.
145598        Firefox, Opera and IE follows the spec.
145599        Webkit based browser doesn't do that, it only fires progress event at interval of 50ms.
145600        WebKit should add the behavior to make the conformance with the spec.
145601
145602        Tests: fast/files/file-reader-event-listener.html
145603
145604        * fileapi/FileReader.cpp:
145605        (WebCore::FileReader::didFinishLoading):
145606
1456072012-05-26  Li Yin  <li.yin@intel.com>
145608
145609        [FileAPI] The result attribute of FileReader shuold use null to replace empty string
145610        https://bugs.webkit.org/show_bug.cgi?id=87578
145611
145612        Reviewed by Kentaro Hara.
145613
145614        From Spec: http://www.w3.org/TR/FileAPI/#filedata-attr
145615        Before read method has been called or an error in reading has occurred,
145616        the result attribute should be null, not empty string.
145617
145618        Currently, Firefox, Opera and IE 10 follows the spec, but Webkit based 
145619        browser don't.
145620        WebKit should change the returned value empty string into null to keep 
145621        conformance with the spec.
145622
145623        Tests: fast/files/read-file-async.html
145624               fast/files/blob-slice-test.html
145625               fast/files/read-blob-async.html
145626               fast/files/workers/worker-read-blob-async.html
145627               fast/files/workers/worker-read-file-async.html
145628
145629        * fileapi/FileReader.cpp:
145630        (WebCore::FileReader::stringResult):
145631
1456322012-05-26  Andy Estes  <aestes@apple.com>
145633
145634        Fix the build when NETSCAPE_PLUGIN_API is disabled by marking a
145635        parameter as unused.
145636
145637        * plugins/PluginData.cpp:
145638        (WebCore::PluginData::initPlugins):
145639
1456402012-05-26  Nate Chapin  <japhet@chromium.org>
145641
145642        Cancel CachedResource loads when the last client is removed.
145643        https://bugs.webkit.org/show_bug.cgi?id=35377
145644
145645        Reviewed by Darin Adler.
145646
145647        Test: http/tests/cache/cancel-in-progress-load.html
145648
145649        * loader/SubresourceLoader.cpp:
145650        (WebCore::SubresourceLoader::errorLoadingResource):
145651        * loader/cache/CachedCSSStyleSheet.cpp:
145652        (WebCore::CachedCSSStyleSheet::allClientsRemoved):
145653        * loader/cache/CachedFont.cpp:
145654        (WebCore::CachedFont::allClientsRemoved):
145655        * loader/cache/CachedImage.cpp:
145656        (WebCore::CachedImage::allClientsRemoved):
145657        * loader/cache/CachedRawResource.cpp:
145658        (WebCore):
145659        * loader/cache/CachedRawResource.h:
145660        (WebCore::CachedRawResource::shouldIgnoreHTTPStatusCodeErrors):
145661        * loader/cache/CachedResource.cpp:
145662        (WebCore::CachedResource::allClientsRemoved):
145663        (WebCore):
145664        * loader/cache/CachedResource.h:
145665        (CachedResource):
145666        * loader/cache/CachedScript.cpp:
145667        (WebCore::CachedScript::allClientsRemoved):
145668
1456692012-05-26  Simon Fraser  <simon.fraser@apple.com>
145670
145671        fast/block/inline-children-root-linebox-crash.html asserts after r118567
145672        https://bugs.webkit.org/show_bug.cgi?id=87544
145673
145674        Reviewed by Darin Adler.
145675        
145676        RenderInline::offsetFromContainer() set offsetDependsOnPoint to true based
145677        on the container's flipped writing mode. However, offsetFromContainer() would
145678        then overwrite that, since it only checked for columns.
145679        
145680        Fix by having RenderInline::offsetFromContainer() check for flipping on
145681        the container. This fixes the assertion.
145682        
145683        The new testcase exercises fixes another issue; unlike mapLocalToAbsolute(),
145684        RenderGeometryMap::absoluteRect() didn't pass the rect center point through
145685        the mapping, which resulted in a different result in some flipping cases.
145686
145687        Test: compositing/geometry/flipped-blocks-inline-mapping.html
145688
145689        * rendering/RenderGeometryMap.cpp:
145690        (WebCore::RenderGeometryMap::absoluteRect):
145691        * rendering/RenderInline.cpp:
145692        (WebCore::RenderInline::offsetFromContainer):
145693        (WebCore::RenderInline::pushMappingToContainer):
145694
1456952012-05-26  Geoffrey Garen  <ggaren@apple.com>
145696
145697        WebKit should be lazy-finalization-safe (esp. the DOM) v2
145698        https://bugs.webkit.org/show_bug.cgi?id=87581
145699
145700        Reviewed by Oliver Hunt.
145701
145702        * bindings/js/JSDOMGlobalObject.cpp:
145703        (WebCore::JSDOMGlobalObject::destroy):
145704        * bindings/js/JSDOMWindowBase.cpp:
145705        (WebCore::JSDOMWindowBase::destroy):
145706        * bindings/js/JSDOMWindowShell.cpp:
145707        (WebCore::JSDOMWindowShell::destroy):
145708        * bindings/js/JSNodeCustom.cpp:
145709        (WebCore::JSNodeOwner::finalize):
145710        * bindings/js/JSWorkerContextBase.cpp:
145711        (WebCore::JSWorkerContextBase::destroy):
145712        * bindings/scripts/CodeGeneratorJS.pm:
145713        (GenerateImplementation):
145714        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
145715        (WebCore::JSTestActiveDOMObject::destroy):
145716        (WebCore::JSTestActiveDOMObjectOwner::finalize):
145717        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
145718        (WebCore::JSTestCustomNamedGetter::destroy):
145719        (WebCore::JSTestCustomNamedGetterOwner::finalize):
145720        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
145721        (WebCore::JSTestEventConstructor::destroy):
145722        (WebCore::JSTestEventConstructorOwner::finalize):
145723        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
145724        (WebCore::JSTestEventTarget::destroy):
145725        (WebCore::JSTestEventTargetOwner::finalize):
145726        * bindings/scripts/test/JS/JSTestException.cpp:
145727        (WebCore::JSTestException::destroy):
145728        (WebCore::JSTestExceptionOwner::finalize):
145729        * bindings/scripts/test/JS/JSTestInterface.cpp:
145730        (WebCore::JSTestInterface::destroy):
145731        (WebCore::JSTestInterfaceOwner::finalize):
145732        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
145733        (WebCore::JSTestMediaQueryListListener::destroy):
145734        (WebCore::JSTestMediaQueryListListenerOwner::finalize):
145735        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
145736        (WebCore::JSTestNamedConstructor::destroy):
145737        (WebCore::JSTestNamedConstructorOwner::finalize):
145738        * bindings/scripts/test/JS/JSTestObj.cpp:
145739        (WebCore::JSTestObj::destroy):
145740        (WebCore::JSTestObjOwner::finalize):
145741        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
145742        (WebCore::JSTestSerializedScriptValueInterface::destroy):
145743        (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
145744        * bridge/objc/objc_runtime.mm:
145745        (JSC::Bindings::ObjcFallbackObjectImp::destroy):
145746        * bridge/qt/qt_runtime.cpp:
145747        (JSC::Bindings::QtRuntimeMethod::destroy):
145748        * bridge/qt/qt_runtime_qt4.cpp:
145749        (JSC::Bindings::QtRuntimeMethod::destroy):
145750        * bridge/runtime_array.cpp:
145751        (JSC::RuntimeArray::destroy):
145752        * bridge/runtime_method.cpp:
145753        (JSC::RuntimeMethod::destroy):
145754        * bridge/runtime_object.cpp:
145755        (JSC::Bindings::RuntimeObject::destroy):
145756        * bridge/runtime_root.cpp:
145757        (JSC::Bindings::RootObject::finalize): Use static_cast instead of jsCast because
145758        jsCast does Structure-based validation, and our Structure is not guaranteed
145759        to be alive when we get finalized.
145760
1457612012-05-26  Simon Fraser  <simon.fraser@apple.com>
145762
145763        Clip rects assertion when hovering div with transform
145764        https://bugs.webkit.org/show_bug.cgi?id=87580
145765
145766        Reviewed by Eric Seidel.
145767        
145768        Hit testing used to use temporary clip rects in composited documents,
145769        until r118562. Now that we cache clip rects for hit testing, we need
145770        to clear the cache on descendant layers when a layer gains or loses
145771        a transform.
145772
145773        Test: fast/layers/clip-rects-assertion.html
145774
145775        * rendering/RenderLayer.cpp:
145776        (WebCore::RenderLayer::updateTransform):
145777
1457782012-05-25  Dan Bernstein  <mitz@apple.com>
145779
145780        <rdar://problem/11439771> WebProcess sends many synchronous messages to the UI process while scrolling beneath ScrollView::contentsToScreen()
145781        https://bugs.webkit.org/show_bug.cgi?id=87571
145782
145783        Reviewed by Anders Carlsson.
145784
145785        fakeMouseEventTimerFired() uses the last known mouse position for the fake mouse event, but
145786        calls contentsToScreen() to compute a corresponding position in screen coordinates. Avoid
145787        this by also recording the last known mouse position in screen coordinates, and using that
145788        value.
145789
145790        * page/EventHandler.cpp:
145791        (WebCore::EventHandler::clear): Added resetting m_currentMouseGlobalPosition.
145792        (WebCore::EventHandler::handleMousePressEvent): Added updating m_currentMouseGlobalPosition
145793        when updating m_currentMousePosition.
145794        (WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
145795        (WebCore::EventHandler::handleMouseMoveEvent): Ditto.
145796        (WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
145797        (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Changed to use m_currentMouseGlobalPosition
145798        in the fake event instead of calling contentsToScreen().
145799        * page/EventHandler.h: Added m_currentMouseGlobalPosition data member.
145800
1458012012-05-25  Philippe Normand  <pnormand@igalia.com>
145802
145803        [GStreamer] Remove ImageGStreamerCG implementation
145804        https://bugs.webkit.org/show_bug.cgi?id=87559
145805
145806        The ImageGStreamerCG abstraction is being removed until I manage to
145807        port my gst-mac WebKit branch over to the WebKit2 mac port. No
145808        need to update the Xcode project because this file is not
145809        referenced there anyway.
145810
145811        Reviewed by Martin Robinson.
145812
145813        * platform/graphics/gstreamer/ImageGStreamer.h:
145814        (ImageGStreamer):
145815        * platform/graphics/gstreamer/ImageGStreamerCG.mm: Removed.
145816
1458172012-05-26  Rob Buis  <rwlbuis@webkit.org>
145818
145819        Bug 15799: textPath element does not re-render when referenced path changes
145820        https://bugs.webkit.org/show_bug.cgi?id=15799
145821
145822        Reviewed by Nikolas Zimmermann.
145823
145824        Support textPath updating to changes on the referenced path. To make this possible
145825        use the target reference functionality also used by SVGFEImageElement.
145826
145827        Tests: svg/custom/textPath-change-id-expected.svg
145828               svg/custom/textPath-change-id-pattern-expected.svg
145829               svg/custom/textPath-change-id-pattern.svg
145830               svg/custom/textPath-change-id.svg
145831               svg/custom/textPath-change-id2-expected.svg
145832               svg/custom/textPath-change-id2-pattern-expected.svg
145833               svg/custom/textPath-change-id2-pattern.svg
145834               svg/custom/textPath-change-id2.svg
145835               svg/custom/textPath-change-reference-expected.svg
145836               svg/custom/textPath-change-reference-pattern-expected.svg
145837               svg/custom/textPath-change-reference-pattern.svg
145838               svg/custom/textPath-change-reference-using-baseval-expected.svg
145839               svg/custom/textPath-change-reference-using-baseval-pattern-expected.svg
145840               svg/custom/textPath-change-reference-using-baseval-pattern.svg
145841               svg/custom/textPath-change-reference-using-baseval.svg
145842               svg/custom/textPath-change-reference.svg
145843               svg/custom/textPath-change-reference2-expected.svg
145844               svg/custom/textPath-change-reference2-pattern-expected.svg
145845               svg/custom/textPath-change-reference2-pattern.svg
145846               svg/custom/textPath-change-reference2-using-baseval-expected.svg
145847               svg/custom/textPath-change-reference2-using-baseval-pattern-expected.svg
145848               svg/custom/textPath-change-reference2-using-baseval-pattern.svg
145849               svg/custom/textPath-change-reference2-using-baseval.svg
145850               svg/custom/textPath-change-reference2.svg
145851               svg/custom/textPath-insert-path-expected.svg
145852               svg/custom/textPath-insert-path-pattern-expected.svg
145853               svg/custom/textPath-insert-path-pattern.svg
145854               svg/custom/textPath-insert-path.svg
145855               svg/custom/textPath-modify-child-expected.svg
145856               svg/custom/textPath-modify-child-pattern-expected.svg
145857               svg/custom/textPath-modify-child-pattern.svg
145858               svg/custom/textPath-modify-child.svg
145859               svg/custom/textPath-path-change-expected.svg
145860               svg/custom/textPath-path-change-pattern-expected.svg
145861               svg/custom/textPath-path-change-pattern.svg
145862               svg/custom/textPath-path-change-using-svg-dom-expected.svg
145863               svg/custom/textPath-path-change-using-svg-dom-pattern-expected.svg
145864               svg/custom/textPath-path-change-using-svg-dom-pattern.svg
145865               svg/custom/textPath-path-change-using-svg-dom.svg
145866               svg/custom/textPath-path-change.svg
145867               svg/custom/textPath-path-change2-expected.svg
145868               svg/custom/textPath-path-change2-pattern-expected.svg
145869               svg/custom/textPath-path-change2-pattern.svg
145870               svg/custom/textPath-path-change2.svg
145871               svg/custom/textPath-remove-path-expected.svg
145872               svg/custom/textPath-remove-path-pattern-expected.svg
145873               svg/custom/textPath-remove-path-pattern.svg
145874               svg/custom/textPath-remove-path.svg
145875               svg/custom/textPath-set-id-expected.svg
145876               svg/custom/textPath-set-id.svg
145877               svg/custom/textPath-startoffset-expected.svg
145878               svg/custom/textPath-startoffset-pattern-expected.svg
145879               svg/custom/textPath-startoffset-pattern.svg
145880               svg/custom/textPath-startoffset.svg
145881
145882        * svg/SVGTextPathElement.cpp:
145883        (WebCore::SVGTextPathElement::~SVGTextPathElement):
145884        (WebCore):
145885        (WebCore::SVGTextPathElement::clearResourceReferences):
145886        (WebCore::SVGTextPathElement::svgAttributeChanged):
145887        (WebCore::SVGTextPathElement::buildPendingResource):
145888        (WebCore::SVGTextPathElement::insertedInto):
145889        (WebCore::SVGTextPathElement::removedFrom):
145890        * svg/SVGTextPathElement.h:
145891
1458922012-05-26  Nikolas Zimmermann  <nzimmermann@rim.com>
145893
145894        Avoid updateFromElement() usage in SVG
145895        https://bugs.webkit.org/show_bug.cgi?id=87573
145896
145897        Stop relying on updateFromElement() - instead rely on addChild/removeChild, which
145898        allows us to optimize the resources re-fetching. When a child is added to the tree
145899        we don't need to remove existing resources from the SVGResourcesCache - the renderer
145900        can't be in the cache yet. Similary, remove the entry from the cache earlier: as soon
145901        as the renderer is removed from the tree, instead of waiting for willBeDestroyed().
145902
145903        No new tests, refactoring only.
145904
145905        * rendering/svg/RenderSVGBlock.cpp:
145906        * rendering/svg/RenderSVGBlock.h:
145907        (RenderSVGBlock):
145908        * rendering/svg/RenderSVGContainer.cpp:
145909        (WebCore::RenderSVGContainer::addChild):
145910        (WebCore):
145911        (WebCore::RenderSVGContainer::removeChild):
145912        * rendering/svg/RenderSVGContainer.h:
145913        (RenderSVGContainer):
145914        * rendering/svg/RenderSVGInline.cpp:
145915        (WebCore::RenderSVGInline::addChild):
145916        (WebCore::RenderSVGInline::removeChild):
145917        * rendering/svg/RenderSVGInline.h:
145918        (RenderSVGInline):
145919        * rendering/svg/RenderSVGModelObject.cpp:
145920        * rendering/svg/RenderSVGModelObject.h:
145921        (RenderSVGModelObject):
145922        * rendering/svg/RenderSVGResourceContainer.cpp:
145923        (WebCore::RenderSVGResourceContainer::registerResource):
145924        * rendering/svg/RenderSVGRoot.cpp:
145925        (WebCore::RenderSVGRoot::addChild):
145926        (WebCore):
145927        (WebCore::RenderSVGRoot::removeChild):
145928        * rendering/svg/RenderSVGRoot.h:
145929        (RenderSVGRoot):
145930        * rendering/svg/RenderSVGText.cpp:
145931        (WebCore::RenderSVGText::addChild):
145932        (WebCore::RenderSVGText::removeChild):
145933        * rendering/svg/SVGResourcesCache.cpp:
145934        (WebCore::SVGResourcesCache::clientStyleChanged):
145935        (WebCore::rendererCanHaveResources):
145936        (WebCore):
145937        (WebCore::SVGResourcesCache::clientWasAddedToTree):
145938        (WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
145939        * rendering/svg/SVGResourcesCache.h:
145940        (SVGResourcesCache):
145941        * svg/SVGStyledElement.cpp:
145942        * svg/SVGStyledElement.h:
145943        (SVGStyledElement):
145944
1459452012-05-25  Nat Duca  <nduca@chromium.org>
145946
145947        [chromium] Instrument V8 GC with TraceEvent
145948        https://bugs.webkit.org/show_bug.cgi?id=87530
145949
145950        Reviewed by Kentaro Hara.
145951
145952        We sometimes get performance issues where performance stalls can
145953        be attributed to badly timed GC operations, especially ones that
145954        happen just before a frame running. This adds tracing calls around
145955        GC so that we can better understand these kinds of hangs.
145956
145957        * bindings/v8/V8GCController.cpp:
145958        (WebCore::V8GCController::gcPrologue):
145959        (WebCore::V8GCController::gcEpilogue):
145960
1459612012-05-25  Garrett Casto  <gcasto@chromium.org>
145962
145963        Allow WebTextFieldDecoratorClient to see applied decorations.
145964        https://bugs.webkit.org/show_bug.cgi?id=86557
145965
145966        Reviewed by Kent Tamura.
145967
145968        * html/shadow/TextFieldDecorationElement.cpp:
145969        (WebCore::TextFieldDecorationElement::fromShadowRoot): A function
145970        that will extract a TextFielDecorationElement from a ShadowRoot, if
145971        there is one.
145972        * html/shadow/TextFieldDecorationElement.h:
145973        (WebCore):
145974        (TextFieldDecorator):
145975
1459762012-05-25  Tony Chang  <tony@chromium.org>
145977
145978        implement new negative flexing algorithm
145979        https://bugs.webkit.org/show_bug.cgi?id=86528
145980
145981        Reviewed by Ojan Vafai.
145982
145983        Rather than just scale by the negative flexibility, we also take the
145984        flex-basis (preferred size) into consideration.  That means items with
145985        a larger preferred size will shrink faster.
145986
145987        Test: css3/flexbox/flex-algorithm.html (new test cases added)
145988
145989        * rendering/RenderFlexibleBox.cpp:
145990        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): Handle overflow.
145991        (WebCore::RenderFlexibleBox::layoutFlexItems):
145992        (WebCore::RenderFlexibleBox::computeNextFlexLine): Sum weighted negative flex.
145993        (WebCore::RenderFlexibleBox::freezeViolations):
145994        (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Shrink by weighted amount.
145995        Also handle large values by making sure the flex values are finite.
145996        * rendering/RenderFlexibleBox.h:
145997
1459982012-05-25  Mihai Parparita  <mihaip@chromium.org>
145999
146000        Allow synchronous XHRs to be disabled in documents
146001        https://bugs.webkit.org/show_bug.cgi?id=87540
146002
146003        Reviewed by Eric Seidel.
146004
146005        Test: fast/xmlhttprequest/xmlhttprequest-sync-disabled.html
146006
146007        Synchronous XMLHttpRequests are a problematic API, since they result
146008        in blocked UI threads. Some clients may wish to always disable them;
146009        give them a setting to do so (see also r103629 for other cases where
146010        synchronous XHRs are disabled).
146011
146012        * page/Settings.cpp:
146013        (WebCore):
146014        (WebCore::Settings::Settings):
146015        * page/Settings.h:
146016        (Settings):
146017        (WebCore::Settings::setSyncXHRInDocumentsEnabled):
146018        (WebCore::Settings::syncXHRInDocumentsEnabled):
146019        * testing/InternalSettings.cpp:
146020        (WebCore::InternalSettings::InternalSettings):
146021        (WebCore::InternalSettings::restoreTo):
146022        (WebCore::InternalSettings::setSyncXHRInDocumentsEnabled):
146023        (WebCore):
146024        * testing/InternalSettings.h:
146025        (InternalSettings):
146026        * testing/InternalSettings.idl:
146027        * xml/XMLHttpRequest.cpp:
146028        (WebCore::XMLHttpRequest::open):
146029
1460302012-05-25  Kinuko Yasuda  <kinuko@chromium.org>
146031
146032        [chromium] Deprecate FileUtilities::getFileSize and getFileModifiedTime in favor of getFileMetadata
146033        https://bugs.webkit.org/show_bug.cgi?id=87492
146034
146035        Reviewed by Adam Barth.
146036
146037        No new tests: existing tests (http/tests/local/fileapi/* and fast/files/*) should pass.
146038
146039        * platform/chromium/FileSystemChromium.cpp:
146040        (WebCore::getFileSize):
146041        (WebCore::getFileModificationTime):
146042        (WebCore::getFileMetadata):
146043        * platform/chromium/PlatformSupport.h:
146044        (PlatformSupport):
146045
1460462012-05-25  Abhishek Arya  <inferno@chromium.org>
146047
146048        Crash in RenderTableSection::paintCell.
146049        https://bugs.webkit.org/show_bug.cgi?id=87445
146050
146051        Reviewed by Eric Seidel and Julien Chaffraix.
146052
146053        Fix the crash by preventing table parts from being set
146054        as layout root. This prevents us from accessing removed
146055        table cells which can happen if RenderTableSection::layout
146056        is called directly without calling RenderTable::layout first
146057        (in case of cell recalc).
146058
146059        Add ASSERTs to RenderTableSection::layout to prevent
146060        layout to happen when we are already pending cell recalc
146061        or our table is pending section recalc. In those cases,
146062        RenderTable::layout should be called first to relayout
146063        the entire table.
146064
146065        Test: tables/table-section-overflow-clip-crash.html
146066
146067        * rendering/RenderObject.cpp:
146068        (WebCore::objectIsRelayoutBoundary):
146069        * rendering/RenderTableSection.cpp:
146070        (WebCore::RenderTableSection::layout):
146071
1460722012-05-25  Philip Rogers  <pdr@google.com>
146073
146074        Fix for self-closing <use> tags
146075        https://bugs.webkit.org/show_bug.cgi?id=87504
146076
146077        Reviewed by Adam Barth.
146078
146079        This change causes self-closing non-html tags to behave the same
146080        as tags immediately followed by the closing tag.
146081
146082        Test: svg/custom/svg-self-closing-use.html
146083
146084        * html/parser/HTMLConstructionSite.cpp:
146085        (WebCore::HTMLConstructionSite::attachLater):
146086        (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
146087        (WebCore::HTMLConstructionSite::insertForeignElement):
146088        * html/parser/HTMLConstructionSite.h:
146089        (HTMLConstructionSite):
146090
1460912012-05-25  Dan Bernstein  <mitz@apple.com>
146092
146093        Make the ICU-based implementation of NonSharedCharacterBreakIterator work in configurations
146094        that do not have COMPARE_AND_SWAP enabled.
146095
146096        Reviewed by Jessie Berlin.
146097
146098        * platform/text/TextBreakIteratorICU.cpp:
146099        (WebCore::compareAndSwapNonSharedCharacterBreakIterator): Added this helper. It uses
146100        weakCompareAndSwap when COMPARE_AND_SWAP is enabled, and uses a mutex to do the atomic
146101        compare and swap otherwise.
146102        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Changed to use
146103        compareAndSwapNonSharedCharacterBreakIterator().
146104        (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
146105
1461062012-05-25  Tommy Widenflycht  <tommyw@google.com>
146107
146108        MediaStream API: Make sure IceCallback is valid for PeerConnection00
146109        https://bugs.webkit.org/show_bug.cgi?id=87480
146110
146111        Reviewed by Adam Barth.
146112
146113        Existing tests have been extended to cover this change.
146114
146115        * Modules/mediastream/PeerConnection00.cpp:
146116        (WebCore::PeerConnection00::create):
146117        * Modules/mediastream/PeerConnection00.h:
146118        * Modules/mediastream/PeerConnection00.idl:
146119
1461202012-05-25  Mike West  <mkwst@chromium.org>
146121
146122        Inline script and style blocked by Content Security Policy should provide more detailed console errors.
146123        https://bugs.webkit.org/show_bug.cgi?id=86848
146124
146125        Reviewed by Adam Barth.
146126
146127        This change adds a URL and line number for context to each call to
146128        `ContentSecurityPolicy::allowInline*`, and pipes it through to the
146129        console message generation in `CSPDirectiveList::reportViolation`.
146130
146131        Line numbers are not added for injected scripts (`document.write(...)`,
146132        `document.body.appendChild`, and etc.).
146133
146134        Tests: http/tests/security/contentSecurityPolicy/injected-inline-script-allowed.html
146135               http/tests/security/contentSecurityPolicy/injected-inline-script-blocked.html
146136               http/tests/security/contentSecurityPolicy/injected-inline-style-allowed.html
146137               http/tests/security/contentSecurityPolicy/injected-inline-style-blocked.html
146138
146139        * bindings/ScriptControllerBase.cpp:
146140        (WebCore::ScriptController::executeIfJavaScriptURL):
146141        * bindings/js/JSLazyEventListener.cpp:
146142        (WebCore::JSLazyEventListener::initializeJSFunction):
146143        * bindings/v8/V8LazyEventListener.cpp:
146144        (WebCore::V8LazyEventListener::prepareListenerObject):
146145        * dom/ScriptElement.cpp:
146146        (WebCore::ScriptElement::ScriptElement):
146147        (WebCore::ScriptElement::executeScript):
146148        * dom/ScriptElement.h:
146149        (ScriptElement):
146150        * dom/StyleElement.cpp:
146151        (WebCore::StyleElement::StyleElement):
146152        (WebCore::StyleElement::createSheet):
146153        * dom/StyleElement.h:
146154        (StyleElement):
146155        * dom/StyledElement.cpp:
146156        (WebCore::StyledElement::StyledElement):
146157        (WebCore):
146158        (WebCore::StyledElement::style):
146159        (WebCore::StyledElement::styleAttributeChanged):
146160        * dom/StyledElement.h:
146161        (StyledElement):
146162        * page/ContentSecurityPolicy.cpp:
146163        (CSPDirectiveList):
146164        (WebCore::CSPDirectiveList::reportViolation):
146165        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
146166        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
146167        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
146168        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
146169        (WebCore::CSPDirectiveList::allowInlineScript):
146170        (WebCore::CSPDirectiveList::allowInlineStyle):
146171        (WebCore::CSPDirectiveList::allowEval):
146172        (WebCore):
146173        (WebCore::isAllowedByAllWithCallStack):
146174        (WebCore::isAllowedByAllWithContext):
146175        (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
146176        (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
146177        (WebCore::ContentSecurityPolicy::allowInlineScript):
146178        (WebCore::ContentSecurityPolicy::allowInlineStyle):
146179        * page/ContentSecurityPolicy.h:
146180        (WTF):
146181
1461822012-05-25  Tim Horton  <timothy_horton@apple.com>
146183
146184        ENABLE_CSS3_FLEXBOX is insufficient to disable all web-facing bits of the feature
146185        https://bugs.webkit.org/show_bug.cgi?id=87537
146186        <rdar://problem/11524921>
146187
146188        Reviewed by Simon Fraser.
146189
146190        Allow the feature flag to disable more web-facing parts of the CSS3 flexbox
146191        implementation (primarily fallout from hiding it from computed style).
146192
146193        * css/CSSComputedStyleDeclaration.cpp:
146194        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
146195        * css/CSSParser.cpp:
146196        (WebCore::isValidKeywordPropertyAndValue):
146197        (WebCore::isKeywordPropertyID):
146198        (WebCore::CSSParser::parseValue):
146199        * css/CSSPrimitiveValueMappings.h:
146200        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
146201        * css/CSSProperty.cpp:
146202        (WebCore::CSSProperty::isInheritedProperty):
146203        * css/CSSPropertyNames.in:
146204        * css/CSSValueKeywords.in:
146205        * css/StyleBuilder.cpp:
146206        (WebCore::StyleBuilder::StyleBuilder):
146207        * css/StylePropertySet.cpp:
146208        (WebCore::StylePropertySet::getPropertyValue):
146209        (WebCore::StylePropertySet::asText):
146210        * css/StylePropertyShorthand.cpp:
146211        (WebCore::shorthandForProperty):
146212        * css/StylePropertyShorthand.h:
146213        * css/StyleResolver.cpp:
146214        (WebCore::StyleResolver::collectMatchingRulesForList):
146215        * page/animation/CSSPropertyAnimation.cpp:
146216        (WebCore::CSSPropertyAnimation::ensurePropertyMap):
146217        * rendering/RenderObject.cpp:
146218        (WebCore::RenderObject::createObject):
146219        * rendering/style/RenderStyleConstants.h:
146220
1462212012-05-25  Adrienne Walker  <enne@google.com>
146222
146223        [chromium] Add setting for painting debug info onto tiles
146224        https://bugs.webkit.org/show_bug.cgi?id=75763
146225
146226        Reviewed by James Robinson.
146227
146228        Add a compile-time CCSetting to paint debug information onto tiles. This
146229        can help to understand paint counts and layer indices. This setting is
146230        off by default.
146231
146232        * platform/graphics/chromium/ContentLayerChromium.cpp:
146233        (WebCore::ContentLayerPainter::create):
146234        (WebCore::ContentLayerPainter::paint):
146235        (WebCore::ContentLayerPainter::ContentLayerPainter):
146236        (WebCore::ContentLayerChromium::createTextureUpdater):
146237        * platform/graphics/chromium/TiledLayerChromium.cpp:
146238        (WebCore::UpdatableTile::UpdatableTile):
146239        (WebCore::UpdatableTile::setUpdateFrame):
146240        (WebCore::UpdatableTile::incrementPaintCount):
146241        (WebCore::UpdatableTile::updateFrame):
146242        (WebCore::UpdatableTile::paintCount):
146243        (WebCore::TiledLayerChromium::TiledLayerChromium):
146244        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
146245        (WebCore::TiledLayerChromium::paintDebugTileInfo):
146246        * platform/graphics/chromium/TiledLayerChromium.h:
146247        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
146248        (WebCore::CCSettings::CCSettings):
146249
1462502012-05-25  Ami Fischman  <fischman@chromium.org>
146251
146252        [chromium] Default media controls should render only the currentTime-containing buffered range
146253        https://bugs.webkit.org/show_bug.cgi?id=85925
146254
146255        Reviewed by Eric Carlson.
146256
146257        Test: http/tests/media/video-buffered-range-contains-currentTime.html
146258
146259        * rendering/RenderMediaControlsChromium.cpp:
146260        (WebCore::paintMediaSlider):
146261
1462622012-05-25  Simon Fraser  <simon.fraser@apple.com>
146263
146264        Build fix: add TransformationMatrix ctor from an AffineTransform.
146265
146266        * platform/graphics/transforms/TransformationMatrix.cpp:
146267        (WebCore::TransformationMatrix::TransformationMatrix):
146268        (WebCore):
146269        * platform/graphics/transforms/TransformationMatrix.h:
146270        (TransformationMatrix):
146271
1462722012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
146273
146274        createContextualFragment and insertAdjacentHTML should throw syntax error
146275        https://bugs.webkit.org/show_bug.cgi?id=87454
146276
146277        Reviewed by Darin Adler.
146278
146279        Before this patch, createContextualFragment threw NOT_SUPPORTED_ERR and insertAdjacentHTML didn't throw any errors.
146280        Make them throw SYNTAX_ERR to be consistent with the spec and Firefox:
146281        http://html5.org/specs/dom-parsing.html#parsing
146282        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-xhtml-syntax.html#xml-fragment-parsing-algorithm
146283
146284        Also reduced the code duplication.
146285
146286        Test: fast/dom/xhtml-fragment-parsing-exceptions.xhtml
146287
146288        * dom/Range.cpp:
146289        (WebCore::Range::createContextualFragment):
146290        * dom/ShadowRoot.cpp:
146291        (WebCore::ShadowRoot::setInnerHTML): Explicitly pass AllowScriptingContent. 
146292        * editing/markup.cpp:
146293        (WebCore::createFragmentFromMarkup):
146294        (WebCore::createFragmentForInnerOuterHTML): Takes ExceptionCode now.
146295        (WebCore::createContextualFragment): Share code with createFragmentForInnerOuterHTML
146296        and propagate the exception code.
146297        * editing/markup.h:
146298        * html/HTMLElement.cpp:
146299        (WebCore::HTMLElement::setInnerHTML): Explicitly pass AllowScriptingContent.
146300        (WebCore::HTMLElement::setOuterHTML): Ditto.
146301        (WebCore::HTMLElement::insertAdjacentHTML): Ditto; also rename ignoredEc to ignoredEC
146302        per Darin's comment on the bug 87339.
146303
1463042012-05-25  John Knottenbelt  <jknotten@chromium.org>
146305
146306        Body scrollWidth() and scrollHeight() should be page scale-invariant
146307        https://bugs.webkit.org/show_bug.cgi?id=87494
146308
146309        RenderView::documentRect() is calculating the "scaled" document rect by applying
146310        the current transformation matrix to the unscaledDocumentRect() and then
146311        returning the rounded-out IntRect result.
146312
146313        This rounding out is incorrect because it allows the scaled rectangle to
146314        represent an area that is not actually covered by the document.
146315
146316        We fix this by applying the current transform to the document rect
146317        as a FloatRect and then explicitly converting to IntRect, which
146318        takes the floor of the resulting rectangle coordinates instead of
146319        rounding them out.
146320
146321        This is evidenced by the document.body.scrollWidth() and
146322        document.body.scrollHeight() changing under page scale factor when
146323        they are expected to remain invariant.
146324
146325        Reviewed by James Robinson.
146326
146327        Test: fast/dom/window-scroll-scaling.html
146328
146329        * rendering/RenderView.cpp:
146330        (WebCore::RenderView::documentRect):
146331
1463322012-05-25  Dan Bernstein  <mitz@apple.com>
146333
146334        characterBreakIterator() is not safe to use reentrantly or from multiple threads
146335        https://bugs.webkit.org/show_bug.cgi?id=87521
146336
146337        Reviewed by Darin Adler.
146338
146339        Replaced characterBreakIterator() with a NonSharedCharacterBreakIterator class, which
146340        obtains a unique TextBreakIterator. Replaced the global shared instance with a single-entry
146341        cache.
146342
146343        * dom/CharacterData.cpp:
146344        (WebCore::CharacterData::parserAppendData): Changed to use NonSharedCharacterBreakIterator.
146345
146346        * platform/graphics/StringTruncator.cpp:
146347        (WebCore::centerTruncateToBuffer): Ditto.
146348        (WebCore::rightTruncateToBuffer): Ditto.
146349
146350        * platform/text/String.cpp:
146351        (WebCore::numGraphemeClusters): Ditto.
146352        (WebCore::numCharactersInGraphemeClusters): Ditto.
146353
146354        * platform/text/TextBreakIterator.h: Removed the declaration of characterBreakIterator().
146355        (NonSharedCharacterBreakIterator): Added. An instance of this class has a character break
146356        iterator instance that is unique to it for the lifetime of the instance.
146357        (WebCore::NonSharedCharacterBreakIterator::operator TextBreakIterator*): Added.
146358
146359        * platform/text/TextBreakIteratorICU.cpp:
146360        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Added. Tries
146361        to swap the m_iterator member variable with the cached instance. If that fails, initializes
146362        m_iterator to a new character break iterator.
146363        (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Added. Tries
146364        to put the m_iterator member variable back in the cache. If that fails, meaning there is
146365        already something in the cache, destroys m_iterator.
146366
146367        * platform/text/gtk/TextBreakIteratorGtk.cpp:
146368        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
146369        TextBreakIteratorICU.cpp.
146370        (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
146371        (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
146372        here.
146373
146374        * platform/text/qt/TextBreakIteratorQt.cpp:
146375        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
146376        TextBreakIteratorICU.cpp.
146377        (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
146378        (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
146379        here.
146380
146381        * platform/text/wince/TextBreakIteratorWinCE.cpp:
146382        (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
146383        TextBreakIteratorICU.cpp.
146384        (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
146385        (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
146386        here.
146387
1463882012-05-25  Simon Fraser  <simon.fraser@apple.com>
146389
146390        Terrible performance on http://alliances.commandandconquer.com/ and http://www.lordofultima.com/
146391        https://bugs.webkit.org/show_bug.cgi?id=84410
146392
146393        Reviewed by Dave Hyatt.
146394        
146395        First part of fixing O(N^2) issues when walking the RenderLayer tree
146396        for computeCompositingRequirements().
146397        
146398        For each layer that goes into the OverlapMap, we were computing an absolute
146399        layer bounds, which requires walking back to the root of the tree.
146400        Optimize this when possible by storing a stack of offsets as we walk
146401        the tree, and using this stack to do the mapping.
146402        
146403        The stack of offsets and transforms is managed by RenderGeometryMap.
146404        When visiting a RenderLayer, RenderLayerCompositor pushes onto
146405        the geometry map stack data about offsets and transforms between
146406        the current layer and its stacking-parent. RenderGeometryMap handles
146407        the case where the previous renderer pushed is between the current
146408        renderer and its container. RenderGeometryMap can also handle callers
146409        pushing renderers with multiple containers between them.
146410        
146411        RenderGeometryMap stores some flags about whether the set of mapping
146412        steps in the stack involve transforms, fixed position, or special non-uniform
146413        mappings like CSS columns. In some cases, it falls back to mapping via
146414        renderers.
146415
146416        Once constructed, the RenderGeometryMap stack can be used to map multiple
146417        rects or points efficiently. Stacks consisting of simple offsets are
146418        collapsed to a single offset.
146419        
146420        Mappings between renderers and their containers are pushed by pushMappingToContainer()
146421        methods, which are similar to mapLocalToContainer() methods. Having this code
146422        in RenderObjects was deemed preferable to handling columns, transforms etc. all in
146423        RenderLayer code.
146424
146425        Tested by assertions in RenderGeometryMap code that its mapping matches
146426        mapping via localToAbsolute() calls.
146427        
146428        RenderLayerCompositor::updateCompositingLayers() creates a RenderGeometryMap,
146429        and pushes and pops layer renderers as it visits them. The geometry map is used
146430        by RenderLayerCompositor::addToOverlapMap() when computing absolute layer bounds.
146431        
146432        Futher optimizations in RenderGeometryMap are possible, especially with stacks that
146433        have many offsets and a few transforms.
146434
146435        Tests: compositing/geometry/composited-in-columns.html
146436               compositing/geometry/flipped-writing-mode.html
146437
146438        * CMakeLists.txt: Add RenderGeometryMap
146439        * GNUmakefile.list.am: Ditt
146440        * Target.pri: Ditto
146441        * WebCore.gypi: Ditto
146442        * WebCore.vcproj/WebCore.vcproj: Ditto
146443        * WebCore.xcodeproj/project.pbxproj: Ditto
146444        * rendering/RenderBox.cpp:
146445        (WebCore::RenderBox::absoluteContentBox):
146446        (WebCore::RenderBox::pushMappingToContainer):
146447        (WebCore::RenderBox::offsetFromContainer):
146448        * rendering/RenderBox.h:
146449        * rendering/RenderGeometryMap.cpp: Added.
146450        (RenderGeometryMapStep):
146451        (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
146452        (WebCore::RenderGeometryMapStep::mapPoint):
146453        (WebCore::RenderGeometryMapStep::mapQuad):
146454        (WebCore::RenderGeometryMap::RenderGeometryMap):
146455        (WebCore::RenderGeometryMap::~RenderGeometryMap):
146456        (WebCore::RenderGeometryMap::absolutePoint):
146457        (WebCore::RenderGeometryMap::absoluteRect):
146458        (WebCore::RenderGeometryMap::mapToAbsolute):
146459        (WebCore::RenderGeometryMap::pushMappingsToAncestor):
146460        (WebCore::RenderGeometryMap::push):
146461        (WebCore::RenderGeometryMap::pushView):
146462        (WebCore::RenderGeometryMap::popMappingsToAncestor):
146463        (WebCore::RenderGeometryMap::stepInserted):
146464        (WebCore::RenderGeometryMap::stepRemoved):
146465        * rendering/RenderGeometryMap.h: Added.
146466        (RenderGeometryMap):
146467        (WebCore::RenderGeometryMap::hasNonUniformStep):
146468        (WebCore::RenderGeometryMap::hasTransformStep):
146469        (WebCore::RenderGeometryMap::hasFixedPositionStep):
146470        * rendering/RenderInline.cpp:
146471        (WebCore::RenderInline::offsetFromContainer):
146472        (WebCore::RenderInline::pushMappingToContainer):
146473        * rendering/RenderInline.h:
146474        (RenderInline):
146475        * rendering/RenderLayerCompositor.cpp:
146476        (WebCore::RenderLayerCompositor::updateCompositingLayers):
146477        (WebCore::RenderLayerCompositor::addToOverlapMap):
146478        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
146479        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
146480        * rendering/RenderLayerCompositor.h:
146481        (RenderLayerCompositor):
146482        * rendering/RenderObject.cpp:
146483        (WebCore::RenderObject::mapLocalToContainer):
146484        (WebCore::RenderObject::pushMappingToContainer):
146485        (WebCore::RenderObject::offsetFromContainer):
146486        (WebCore::RenderObject::container):
146487        * rendering/RenderObject.h:
146488        * rendering/RenderTableCell.cpp:
146489        (WebCore::RenderTableCell::offsetFromContainer):
146490        * rendering/RenderTableCell.h:
146491        (RenderTableCell):
146492        * rendering/RenderView.cpp:
146493        (WebCore::RenderView::pushMappingToContainer):
146494        * rendering/RenderView.h:
146495        * rendering/svg/RenderSVGForeignObject.cpp:
146496        (WebCore::RenderSVGForeignObject::pushMappingToContainer):
146497        * rendering/svg/RenderSVGForeignObject.h:
146498        (RenderSVGForeignObject):
146499        * rendering/svg/RenderSVGInline.cpp:
146500        (WebCore::RenderSVGInline::pushMappingToContainer):
146501        * rendering/svg/RenderSVGInline.h:
146502        (RenderSVGInline):
146503        * rendering/svg/RenderSVGModelObject.cpp:
146504        (WebCore::RenderSVGModelObject::pushMappingToContainer):
146505        * rendering/svg/RenderSVGModelObject.h:
146506        (RenderSVGModelObject):
146507        * rendering/svg/RenderSVGRoot.cpp:
146508        (WebCore::RenderSVGRoot::pushMappingToContainer):
146509        * rendering/svg/RenderSVGRoot.h:
146510        (RenderSVGRoot):
146511        * rendering/svg/RenderSVGText.cpp:
146512        (WebCore::RenderSVGText::pushMappingToContainer):
146513        * rendering/svg/RenderSVGText.h:
146514        (RenderSVGText):
146515        * rendering/svg/SVGRenderSupport.cpp:
146516        (WebCore::SVGRenderSupport::pushMappingToContainer):
146517        * rendering/svg/SVGRenderSupport.h:
146518        (SVGRenderSupport):
146519
1465202012-05-25  Simon Fraser  <simon.fraser@apple.com>
146521
146522        Cache absolute clip rects on RenderLayer for compositing overlap testing
146523        https://bugs.webkit.org/show_bug.cgi?id=87212
146524
146525        Reviewed by Dave Hyatt.
146526        
146527        Enhance the cache of ClipRects on RenderLayers to store three
146528        different types of ClipRects, rather than just one.
146529        
146530        We need to compute clip rects relative to different layers
146531        for different purposes. For painting, we compute relative to
146532        the compositing layer which is acting as a painting root.
146533        For hit testing, we compute relative to the root, except
146534        for transformed layers. For composting overlap testing, we
146535        compute relative to the root ("absolute"). At other times, we do one-off
146536        computation which we never want to cache ("temporary clip rects").
146537        
146538        This change allows us to cache rects for hit testing, and for
146539        compositing overlap testing. This has huge performance benefits
146540        on some pages (bug 84410).
146541        
146542        This change also makes ClipRects not arena-allocated, so we
146543        can use RefPtr<ClipRect>.
146544
146545        No testable behavior change.
146546
146547        * rendering/RenderBoxModelObject.cpp:
146548        (WebCore::RenderBoxModelObject::willBeDestroyed): No need for the
146549        explicit clipRects teardown, since clipRects don't need a live
146550        RenderObject for arena-based destruction.
146551
146552        * rendering/RenderLayer.cpp: Remove arena-related new and delete.
146553        (WebCore::RenderLayer::RenderLayer): No need to explicitly initialize m_clipRects,
146554        since it's an OwnPtr now.
146555        (WebCore::RenderLayer::~RenderLayer): No explicit clipRect teardown required.
146556        (WebCore::RenderLayer::clippingRootForPainting): Renamed to make its purpose
146557        more obvious.
146558        (WebCore::RenderLayer::paintLayer): Use the TemporaryClipRects type when necessary.
146559        (WebCore::RenderLayer::paintLayerContents): Ditto
146560        (WebCore::RenderLayer::hitTestLayer): No longer need to use temporary clipRects when
146561        hit testing since we cache clip rects for hit testing.
146562        (WebCore::RenderLayer::updateClipRects): Take a ClipRectsType and pass it through.
146563        (WebCore::RenderLayer::calculateClipRects): Ditto
146564        (WebCore::RenderLayer::parentClipRects): Ditto
146565        (WebCore::RenderLayer::backgroundClipRect): Ditto
146566        (WebCore::RenderLayer::calculateRects): Take ClipRectsType, which obviates temporaryClipRects.
146567        (WebCore::RenderLayer::childrenClipRect): Use clippingRootForPainting().
146568        (WebCore::RenderLayer::selfClipRect): Ditto
146569        (WebCore::RenderLayer::localClipRect): Ditto
146570        (WebCore::RenderLayer::clearClipRectsIncludingDescendants): Take a type of clip rect to clear
146571        (include all). Allows us to just clear painting clip rects.
146572        (WebCore::RenderLayer::clearClipRects):
146573
146574        * rendering/RenderLayer.h:
146575        (WebCore::ClipRects::create): We don't use RefCounted<> in order to use a bit in
146576        the refCount for a flag. Add create() method.
146577        (WebCore::ClipRects::deref): No longer arena-allocated.
146578        (WebCore::ClipRectsCache::ClipRectsCache): Struct that holds a small
146579        array of the 3 types of clipRects (and, in debug, the layer relative
146580        to which they were computed).
146581        (WebCore::RenderLayer::clipRects):
146582
146583        * rendering/RenderLayerBacking.cpp:
146584        (WebCore::RenderLayerBacking::updateCompositedBounds): Use AbsoluteClipRects; rootLayer
146585        is always the RenderView's layer here.
146586        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Use TemporaryClipRects.
146587        (WebCore::RenderLayerBacking::setRequiresOwnBackingStore): When this variable changes,
146588        we need to invalidate painting clipRects, since it affects the ancestor relative to which
146589        those rects are computed.
146590
146591        * rendering/RenderLayerBacking.h:
146592        * rendering/RenderLayerCompositor.cpp:
146593        (WebCore::RenderLayerCompositor::updateBacking): When the composited state
146594        of a layer changes, we have to clear all descendant clip rects, since this
146595        can affect the layers relative to which clip rects are computed.
146596        (WebCore::RenderLayerCompositor::addToOverlapMap): Use AbsoluteClipRects.
146597        (WebCore::RenderLayerCompositor::computeCompositingRequirements): No need
146598        to call updateLayerPosition(), since that should have always happened after
146599        layout. That call cleared clip rects, so removing it is very beneficial.
146600        (WebCore::RenderLayerCompositor::clippedByAncestor): Use TemporaryClipRects.
146601
146602        * rendering/RenderTreeAsText.cpp:
146603        (WebCore::writeLayers): Use TemporaryClipRects.
146604
1466052012-05-25  Dean Jackson  <dino@apple.com>
146606
146607        Unreviewed, rolling out r112155.
146608        http://trac.webkit.org/changeset/112155
146609        https://bugs.webkit.org/show_bug.cgi?id=79389
146610        Hitch (due to style recalc?) when starting CSS3 animation
146611
146612        This caused a number of issues, including:
146613        https://bugs.webkit.org/show_bug.cgi?id=87146
146614        https://bugs.webkit.org/show_bug.cgi?id=84194
146615        <rdar://problem/11506629>
146616        <rdar://problem/11267408>
146617        <rdar://problem/11531859>
146618
146619        * dom/Element.cpp:
146620        (WebCore::Element::recalcStyle):
146621
1466222012-05-25  David Hyatt  <hyatt@apple.com>
146623
146624        https://bugs.webkit.org/show_bug.cgi?id=87525
146625        
146626        For the new multi-column layout, create a flow thread and make sure the children get put inside it.
146627
146628        Reviewed by Eric Seidel.
146629
146630        * rendering/RenderMultiColumnBlock.cpp:
146631        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
146632        (WebCore::RenderMultiColumnBlock::addChild):
146633        (WebCore):
146634        * rendering/RenderMultiColumnBlock.h:
146635        (WebCore):
146636        (RenderMultiColumnBlock):
146637        (WebCore::RenderMultiColumnBlock::flowThread):
146638        * rendering/RenderMultiColumnFlowThread.cpp:
146639        (WebCore::RenderMultiColumnFlowThread::~RenderMultiColumnFlowThread):
146640        (WebCore):
146641        * rendering/RenderMultiColumnFlowThread.h:
146642        (RenderMultiColumnFlowThread):
146643        * rendering/RenderMultiColumnSet.h:
146644        * rendering/RenderObject.h:
146645        (RenderObject):
146646        (WebCore::RenderObject::isRenderMultiColumnSet):
146647
1466482012-05-25  Emil A Eklund  <eae@chromium.org>
146649
146650        Change RenderBoxModelObject to compute relativePositionOffset as size
146651        https://bugs.webkit.org/show_bug.cgi?id=87447
146652
146653        Reviewed by Eric Seidel.
146654
146655        Compute relativePositionOffset as size instead of doing one axis at a
146656        time as all call sites uses the size version of the method. This avoids
146657        having to walk the DOM twice to accumulate the offsets.
146658
146659        Also remove the relativePositionOffsetX and Y methods as they are no
146660        longer used.
146661
146662        No new tests, covered by existing tests.
146663
146664        * rendering/RenderBox.cpp:
146665        (WebCore::RenderBox::layoutOverflowRectForPropagation):
146666        * rendering/RenderBoxModelObject.cpp:
146667        (WebCore::accumulateRelativePositionOffsets):
146668        (WebCore::RenderBoxModelObject::relativePositionOffset):
146669        * rendering/RenderBoxModelObject.h:
146670        (RenderBoxModelObject):
146671
1466722012-05-25  Sheriff Bot  <webkit.review.bot@gmail.com>
146673
146674        Unreviewed, rolling out r118395.
146675        http://trac.webkit.org/changeset/118395
146676        https://bugs.webkit.org/show_bug.cgi?id=87526
146677
146678        Breaking sites including GMail and Yahoo mail (Requested by
146679        jsbell on #webkit).
146680
146681        * rendering/RenderBlock.cpp:
146682        (WebCore::RenderBlock::collapseMargins):
146683
1466842012-05-25  Ken Buchanan  <kenrb@chromium.org>
146685
146686        Layout root not getting cleared for anonymous renderers geting destroyed
146687        https://bugs.webkit.org/show_bug.cgi?id=84002
146688
146689        Reviewed by Abhishek Arya.
146690
146691        This is a follow-up to r109406, which added a check to clear layout
146692        roots when they point to a renderer that is being destroyed. The
146693        thinking was that layout roots would never be anonymous renderers,
146694        but there are some cases where this is not true (in particular,
146695        generated content containers with overflow clips can be layout roots).
146696
146697        As in r109406, this patch has no layout test. This is because any test
146698        that exercises this behavior is caused by an existing layout bug where
146699        a child is not properly getting layout (or a renderer is getting dirtied
146700        out of order during layout) and will fail multiple ASSERTs:
146701        in particular, ASSERT(!m_layoutRoot->container() || !m_layoutRoot->
146702        container()->needsLayout()) in FrameView::scheduleRelayoutOfSubtree(),
146703        and ASSERT_NOT_REACHED() in RenderObject::clearLayoutRootIfNeeded().
146704        We are preventing those bugs from manifesting as security issues with
146705        this patch.
146706
146707        This also removes an ASSERT from the RenderObject destructor. This is
146708        redundant with the condition in RenderObject::clearLayoutRootIfNeeded()
146709        which is always called in RenderObject::willBeDestroyed(), so the check 
146710        is not needed. It had to be removed because it fails when I try to
146711        adjust the ASSERT condition by removing the !node()
146712        check, due to RenderWidget clearing its node() during destruction.
146713
146714        * rendering/RenderObject.cpp:
146715        (WebCore::RenderObject::~RenderObject):
146716        (WebCore::RenderObject::willBeDestroyed):
146717
1467182012-05-25  Alexander Pavlov  <apavlov@chromium.org>
146719
146720        Web Inspector: Hangup when continuously changing a css width value in Inspector
146721        https://bugs.webkit.org/show_bug.cgi?id=85802
146722
146723        Reviewed by Vsevolod Vlasov.
146724
146725        An error in the property whitespace prefix detection algorithm would append the previous line trailing whitespace,
146726        thereby enormously increasing the actual prefix during multiple incremental property changes.
146727
146728        * inspector/InspectorStyleSheet.cpp:
146729        (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
146730
1467312012-05-25  Alexander Pavlov  <apavlov@chromium.org>
146732
146733        Web Inspector: Clean up Inspector.json after r118367
146734        https://bugs.webkit.org/show_bug.cgi?id=87499
146735
146736        Reviewed by Yury Semikhatsky.
146737
146738        This cleans up the semantic inconsistencies introduced into type/field names r118367.
146739
146740        No new tests, as this is a refactoring.
146741
146742        * inspector/Inspector.json:
146743        * inspector/InspectorCSSAgent.cpp:
146744        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
146745        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
146746        (WebCore::InspectorCSSAgent::detectOrigin):
146747        * inspector/InspectorCSSAgent.h:
146748        (InspectorCSSAgent):
146749        * inspector/InspectorStyleSheet.cpp:
146750        (WebCore::InspectorStyleSheet::create):
146751        (WebCore::InspectorStyleSheet::InspectorStyleSheet):
146752        (WebCore::InspectorStyleSheet::buildObjectForRule):
146753        (WebCore::InspectorStyleSheet::resourceStyleSheetText):
146754        (WebCore::InspectorStyleSheetForInlineStyle::create):
146755        (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
146756        * inspector/InspectorStyleSheet.h:
146757        (InspectorStyleSheet):
146758        (WebCore::InspectorStyleSheet::canBind):
146759        (InspectorStyleSheetForInlineStyle):
146760
1467612012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
146762
146763        Web Inspector: speed-up HeapSnapshot._bfs method.
146764        https://bugs.webkit.org/show_bug.cgi?id=87502
146765
146766        It had containmentEdges.length call in the loop that forced deoptimization.
146767
146768        Reviewed by Yury Semikhatsky.
146769
146770        * inspector/front-end/HeapSnapshot.js:
146771        (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
146772        (WebInspector.HeapSnapshot.prototype._bfs):
146773
1467742012-05-25  Alexei Filippov  <alexeif@chromium.org>
146775
146776        Web Inspector: Speed up edges iteration in heap profiler
146777        https://bugs.webkit.org/show_bug.cgi?id=87286
146778
146779        Add an extra node to nodes array that points to the end of edges array.
146780        It allows to eliminate a check for the last node in iteration code.
146781
146782        Reviewed by Yury Semikhatsky.
146783
146784        * inspector/front-end/HeapSnapshot.js:
146785        (WebInspector.HeapSnapshotNode.prototype._edgeIndexesStart):
146786        (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
146787        (WebInspector.HeapSnapshotNodeIterator):
146788        (WebInspector.HeapSnapshot.prototype._buildRetainers):
146789        (WebInspector.HeapSnapshot.prototype._bfs):
146790        (WebInspector.HeapSnapshot.prototype._buildAggregates):
146791        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
146792        (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
146793        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
146794
1467952012-05-25  Andrey Kosyakov  <caseq@chromium.org>
146796
146797        Web Inspector: put paint and compositing timeline events in a new category of their own
146798        https://bugs.webkit.org/show_bug.cgi?id=86852
146799
146800        Reviewed by Pavel Feldman.
146801
146802        - add forth timeline category, "Painting"; make it light-purple;
146803        - assign paint and compositing events to Painting category;
146804
146805        * WebCore.gypi: added timelineBarLightPurple.png;
146806        * inspector/front-end/Images/timelineBarLightPurple.png: Added.
146807        * inspector/front-end/Images/timelineCheckmarks.png: added light-purple icon;
146808        * inspector/front-end/Images/timelineDots.png: ditto.
146809        * inspector/front-end/TimelineOverviewPane.js:
146810        (WebInspector.TimelineCategoryStrips.prototype.update.appendRecord): do not merge bars in same raw if these are from different categories;
146811        (WebInspector.TimelineCategoryStrips.prototype.update):
146812        * inspector/front-end/TimelinePresentationModel.js:
146813        (WebInspector.TimelinePresentationModel.categories):
146814        (WebInspector.TimelinePresentationModel.recordStyle):
146815        * inspector/front-end/WebKit.qrc: added timelineBarLightPurple.png;
146816        * inspector/front-end/timelinePanel.css: added styles for painting category;
146817        (.timeline-category-statusbar-item.timeline-category-painting .timeline-category-checkbox):
146818        (.timeline-category-painting .timeline-graph-bar):
146819        (.popover .timeline-painting):
146820        (.timeline-category-scripting .timeline-tree-icon):
146821        (.timeline-category-rendering .timeline-tree-icon):
146822        (.timeline-category-painting .timeline-tree-icon):
146823
1468242012-05-25  W. James MacLean  <wjmaclean@chromium.org>
146825
146826        [chromium] LayerChromium should recognise existing layer active animations when the layer is added.
146827        https://bugs.webkit.org/show_bug.cgi?id=87166
146828
146829        Reviewed by Adrienne Walker.
146830
146831        Unit test added.
146832
146833        LayerChromium needs to correctly recognize if a newly added layer has an existing
146834        active animation.
146835
146836        * platform/graphics/chromium/LayerChromium.cpp:
146837        (WebCore::LayerChromium::setLayerTreeHost):
146838        (WebCore::LayerChromium::notifyAnimationFinished):
146839        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
146840        (CCLayerTreeHost):
146841
1468422012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
146843
146844        Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
146845        https://bugs.webkit.org/show_bug.cgi?id=87393
146846
146847        Reviewed by Yury Semikhatsky.
146848
146849        * inspector/front-end/HeapSnapshotDataGrids.js:
146850        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._aggregatesReceived):
146851        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._populateChildren):
146852
1468532012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
146854
146855        Web Inspector: drop obsolete WebInspector.Uint32Array and adjust snapshot chunk size for better transfer-snapshot metric.
146856        https://bugs.webkit.org/show_bug.cgi?id=87490
146857
146858        Originally WebInspector.Uint32Array was used for dynamic array
146859        reallocation because we had no information about expected arrays sizes.
146860        Now we have these sizes and allocates array precisely.
146861
146862        Reviewed by Yury Semikhatsky.
146863
146864        * bindings/v8/ScriptHeapSnapshot.cpp:
146865        (WebCore):
146866        * inspector/front-end/HeapSnapshot.js:
146867        * inspector/front-end/HeapSnapshotLoader.js:
146868        (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
146869        (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
146870
1468712012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
146872
146873        Web Inspector: drop obsolete WebInspector.Uint32Array and adjust snapshot chunk size for better transfer-snapshot metric.
146874        https://bugs.webkit.org/show_bug.cgi?id=87490
146875
146876        Originally WebInspector.Uint32Array was used for dynamic array
146877        reallocation because we had no information about expected arrays sizes.
146878        Now we have these sizes and allocates array precisely.
146879
146880        Reviewed by Yury Semikhatsky.
146881
146882        * bindings/v8/ScriptHeapSnapshot.cpp:
146883        (WebCore):
146884        * inspector/front-end/HeapSnapshot.js:
146885        * inspector/front-end/HeapSnapshotLoader.js:
146886        (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
146887        (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
146888
1468892012-05-25  Alexander Pavlov  <apavlov@chromium.org>
146890
146891        Web Inspector: cmd-[ shortcut navigates page and is fr-keyboard incompatible
146892        https://bugs.webkit.org/show_bug.cgi?id=85312
146893
146894        Reviewed by Vsevolod Vlasov.
146895
146896        Suppress the handling of panel history navigation events if the corresponding keyboard activities produce
146897        the "keypress" event (which is the case on French keyboards, where AltGr+[ is translated into Ctrl+Alt+[ on Windows).
146898        The event is also told to preventDefault() to avoid browser history navigation on Mac while traversing the Inspector panel history.
146899
146900        * inspector/front-end/InspectorView.js:
146901        (WebInspector.InspectorView):
146902        (WebInspector.InspectorView.prototype._keyPress):
146903        (WebInspector.InspectorView.prototype._keyDown):
146904        (WebInspector.InspectorView.prototype._keyDownInternal):
146905        * inspector/front-end/UIUtils.js:
146906        (WebInspector.isWin):
146907
1469082012-05-25  Yury Semikhatsky  <yurys@google.com>
146909
146910        Unreviewed. Fixed closure compiler warnings.
146911
146912        * inspector/front-end/NativeMemorySnapshotView.js:
146913        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
146914        (WebInspector.NativeMemoryProfileHeader.prototype.createView):
146915
1469162012-05-25  Lu Guanqun  <guanqun.lu@intel.com>
146917
146918        [GTK] fix compilation warning in GtkInputMethodFilter.cpp
146919        https://bugs.webkit.org/show_bug.cgi?id=87475
146920
146921        Reviewed by Martin Robinson.
146922
146923        * platform/gtk/GtkInputMethodFilter.cpp:
146924        (WebCore::GtkInputMethodFilter::setWidget):
146925
1469262012-05-25  Zalan Bujtas  <zbujtas@gmail.com>
146927
146928        [Qt] Broken controls rendering when transform is applied.
146929        https://bugs.webkit.org/show_bug.cgi?id=87483
146930
146931        Reviewed by Simon Hausmann.
146932
146933        Use only the scaling transform value to determine the size of
146934        the control to be drawn. When other transforms present such as
146935        rotate or skew, ignore them, unless scaling also involved. In
146936        that case, calculate the scaling value out of the transformation.
146937
146938        * ManualTests/qt/control_paiting_with_transforms.html: Added.
146939
146940        * platform/qt/RenderThemeQtMobile.cpp:
146941        (WebCore::painterScale):
146942        (WebCore):
146943        (WebCore::StylePainterMobile::sizeForPainterScale):
146944
1469452012-05-17  Andrey Kosyakov  <caseq@chromium.org>
146946
146947        [chromium] add instrumentation for compositing
146948        https://bugs.webkit.org/show_bug.cgi?id=83928
146949
146950        Reviewed by James Robinson.
146951
146952        - plumb willCommit() and didBeginFrame() from CCSingleThreadProxy and CCThreadProxy to inspector instrumentation;
146953        - note for threaded case, didBeginFrame() is invoked upon unblocking of main thread;
146954
146955        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
146956        (CCLayerTreeHostClient):
146957        (WebCore::CCLayerTreeHost::didBeginFrame):
146958        (WebCore::CCLayerTreeHost::willCommit):
146959        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
146960        (WebCore::CCSingleThreadProxy::commitAndComposite):
146961        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
146962        (WebCore::CCThreadProxy::beginFrame):
146963
1469642012-05-25  Taiju Tsuiki  <tzik@chromium.org>
146965
146966        Web Inspector: Drop InspectorFileSystemInstrumentation
146967        https://bugs.webkit.org/show_bug.cgi?id=87460
146968
146969        Inspector does not need to track DOMFileSystem object now. So we can
146970        drop InspectorFileSystemInstrumentation.
146971
146972        Reviewed by Vsevolod Vlasov.
146973
146974        * GNUmakefile.list.am:
146975        * Modules/filesystem/DOMFileSystem.cpp:
146976        (WebCore::DOMFileSystem::create):
146977        * WebCore.gypi:
146978        * WebCore.vcproj/WebCore.vcproj:
146979        * WebCore.xcodeproj/project.pbxproj:
146980        * inspector/InspectorFileSystemAgent.cpp:
146981        (WebCore::InspectorFileSystemAgent::enable):
146982        * inspector/InspectorFileSystemAgent.h:
146983        (InspectorFileSystemAgent):
146984        * inspector/InspectorFileSystemInstrumentation.h: Removed.
146985        * inspector/InspectorInstrumentation.cpp:
146986        (WebCore):
146987        * inspector/InspectorInstrumentation.h:
146988        (WebCore):
146989        (InspectorInstrumentation):
146990
1469912012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
146992
146993        Web Inspector: HeapProfiler: speed-up _calculateClassesRetainedSize and _buildAggregates.
146994        https://bugs.webkit.org/show_bug.cgi?id=87482
146995
146996        Engine didn't inline node's classIndex method because the switch statement in it wasn't inlineable.
146997
146998        Reviewed by Yury Semikhatsky.
146999
147000        * inspector/front-end/HeapSnapshot.js:
147001        (WebInspector.HeapSnapshotNode.prototype.classIndex):
147002
1470032012-05-24  Andreas Kling  <kling@webkit.org>
147004
147005        Dodge style recalc when id attribute is overwritten with same value.
147006        <http://webkit.org/b/87211>
147007
147008        Reviewed by Eric Seidel.
147009
147010        Don't force style recalc when the id attribute is set to the same value it already had.
147011        ~3.5% improvement on Dromaeo's "dom-attr" locally.
147012
147013        * dom/Element.cpp:
147014        (WebCore::Element::attributeChanged):
147015
1470162012-05-24  Yury Semikhatsky  <yurys@chromium.org>
147017
147018        Web Inspector: add profile type for native memory snapshots
147019        https://bugs.webkit.org/show_bug.cgi?id=87400
147020
147021        Reviewed by Vsevolod Vlasov.
147022
147023        Introduced new profile type and view classes for native memory snapshots.
147024        All the stuff is hidden behind an experimental setting.
147025
147026        * WebCore.gypi:
147027        * WebCore.vcproj/WebCore.vcproj:
147028        * inspector/compile-front-end.py:
147029        * inspector/front-end/NativeMemorySnapshotView.js: Added.
147030        (WebInspector.NativeMemorySnapshotView):
147031        (WebInspector.NativeMemorySnapshotView.prototype.dispose):
147032        (WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
147033        (WebInspector.NativeMemorySnapshotView.prototype.get profile):
147034        (WebInspector.NativeMemoryProfileType):
147035        (WebInspector.NativeMemoryProfileType.prototype.get buttonTooltip):
147036        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
147037        (WebInspector.NativeMemoryProfileType.prototype.get treeItemTitle):
147038        (WebInspector.NativeMemoryProfileType.prototype.get description):
147039        (WebInspector.NativeMemoryProfileType.prototype.createTemporaryProfile):
147040        (WebInspector.NativeMemoryProfileType.prototype.createProfile):
147041        (WebInspector.NativeMemoryProfileHeader):
147042        (WebInspector.NativeMemoryProfileHeader.prototype.createSidebarTreeElement):
147043        (WebInspector.NativeMemoryProfileHeader.prototype.createView):
147044        * inspector/front-end/ProfilesPanel.js:
147045        * inspector/front-end/Settings.js:
147046        (WebInspector.ExperimentsSettings):
147047        * inspector/front-end/WebKit.qrc:
147048        * inspector/front-end/inspector.html:
147049
1470502012-05-25  Yury Semikhatsky  <yurys@chromium.org>
147051
147052        Web Inspector: make some profiler methods private
147053        https://bugs.webkit.org/show_bug.cgi?id=87479
147054
147055        Reviewed by Vsevolod Vlasov.
147056
147057        - Removed unused methods.
147058        - Renamed private methods so that their names start with underscore. 
147059        - ProfileLauncherView methods are called directly from ProfilesPanel instead
147060          of sending events.
147061
147062        * inspector/front-end/CPUProfileView.js:
147063        * inspector/front-end/CSSSelectorProfileView.js:
147064        (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
147065        (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
147066        (WebInspector.CSSSelectorProfileType.prototype.createTemporaryProfile):
147067        * inspector/front-end/ProfileLauncherView.js:
147068        (WebInspector.ProfileLauncherView.prototype.profileStarted):
147069        (WebInspector.ProfileLauncherView.prototype.profileFinished):
147070        * inspector/front-end/ProfilesPanel.js:
147071        (WebInspector.ProfileType.prototype.createProfile):
147072        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
147073        (WebInspector.ProfilesPanel.prototype._reset):
147074        (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback.var):
147075        (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback):
147076        (WebInspector.ProfilesPanel.prototype._populateProfiles):
147077        (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
147078        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot.done):
147079        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
147080
1470812012-05-25  Keishi Hattori  <keishi@webkit.org>
147082
147083        Bad checkValidity result on recently "enabled" form fields
147084        https://bugs.webkit.org/show_bug.cgi?id=85704
147085
147086        Reviewed by Kent Tamura.
147087
147088        Test: fast/forms/disabled-attr-checkvalidity.html
147089
147090        We were tripping on the assertion m_isValid == validity()->valid()
147091        inside HTMLFormControlElement::isValidFormControlElement.
147092        m_isValid was becoming stale because setNeedsValidityCheck wasn't called
147093        after m_willValidate changed.
147094
147095        * html/HTMLFormControlElement.cpp:
147096        (WebCore::HTMLFormControlElement::willValidate): We used const_cast
147097        because it was too difficult to remove const. We are checking if the
147098        value from willValidate has changed to avoid an infinite loop.
147099        (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
147100
1471012012-05-24  Kinuko Yasuda  <kinuko@chromium.org>
147102
147103        [chromium] DataTransferItem.webkitGetAsEntry() shouldn't be exposed without flag yet
147104        https://bugs.webkit.org/show_bug.cgi?id=87457
147105
147106        Reviewed by Kent Tamura.
147107
147108        No new tests, marking some tests SKIP as we stop exposing this by default.
147109
147110        * Modules/filesystem/DataTransferItemFileSystem.idl: Removed webkitGetAsEntry
147111
1471122012-05-25  Rakesh KN  <rakesh.kn@motorola.com>
147113
147114        RadioNodeList does not include a object element
147115        https://bugs.webkit.org/show_bug.cgi?id=87371
147116
147117        Reviewed by Kent Tamura.
147118
147119        As per spec http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#category-listed
147120        Object element should also be listed in RadioNodeList object.
147121
147122        Updated existing test.
147123
147124        * html/RadioNodeList.cpp:
147125        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
147126        Compares if test element's name/id  and form matches that of the RadioNodeList filter.
147127        (WebCore::RadioNodeList::nodeMatches):
147128        Added support for Object element, check if object elements name/id matches the RadioNodeList filter.
147129        * html/RadioNodeList.h:
147130        (RadioNodeList): Ditto
147131
1471322012-05-25  Jan Keromnes  <janx@linux.com>
147133
147134        Web Inspector: Resource object has no methods getContent and setContent
147135        https://bugs.webkit.org/show_bug.cgi?id=87424
147136
147137        This fixes the extension API so that it uses the `new Resource()`
147138        constructor, which adds the missing `getContent` and `setContent`
147139        methods to a `Resource` object.
147140
147141        Reviewed by Vsevolod Vlasov.
147142
147143        The tests were fixed accordingly in:
147144        LayoutTests/inspector/extensions/extensions-resources-expected.txt
147145
147146        * inspector/front-end/ExtensionAPI.js:
147147        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
147148        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
147149
1471502012-05-24  Tim Horton  <timothy_horton@apple.com>
147151
147152        Add feature defines for web-facing parts of CSS Regions and Exclusions
147153        https://bugs.webkit.org/show_bug.cgi?id=87442
147154        <rdar://problem/10887709>
147155
147156        Reviewed by Dan Bernstein.
147157
147158        * Configurations/FeatureDefines.xcconfig:
147159        * GNUmakefile.am:
147160        * bindings/generic/RuntimeEnabledFeatures.cpp:
147161        * bindings/generic/RuntimeEnabledFeatures.h:
147162        (RuntimeEnabledFeatures):
147163        (WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled):
147164        (WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled):
147165        * bindings/js/JSCSSRuleCustom.cpp:
147166        (WebCore::toJS):
147167        * bindings/objc/DOMCSS.mm:
147168        (kitClass):
147169        * css/CSSComputedStyleDeclaration.cpp:
147170        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
147171        * css/CSSParser.cpp:
147172        (WebCore::isSimpleLengthPropertyID):
147173        (WebCore::isValidKeywordPropertyAndValue):
147174        (WebCore::isKeywordPropertyID):
147175        (WebCore::CSSParser::parseValue):
147176        (WebCore::CSSParser::detectAtToken):
147177        * css/CSSProperty.cpp:
147178        (WebCore::CSSProperty::isInheritedProperty):
147179        * css/CSSPropertyNames.in:
147180        * css/CSSRule.cpp:
147181        (WebCore::CSSRule::cssText):
147182        (WebCore::CSSRule::destroy):
147183        (WebCore::CSSRule::reattach):
147184        * css/CSSRule.h:
147185        (WebCore::CSSRule::isRegionRule):
147186        * css/CSSRule.idl:
147187        * css/StyleBuilder.cpp:
147188        (WebCore::StyleBuilder::StyleBuilder):
147189        * css/StylePropertySet.cpp:
147190        (WebCore::StylePropertySet::getPropertyValue):
147191        (WebCore::StylePropertySet::asText):
147192        * css/StylePropertyShorthand.cpp:
147193        (WebCore::shorthandForProperty):
147194        * css/StylePropertyShorthand.h:
147195        * css/StyleResolver.cpp:
147196        (WebCore::StyleResolver::collectMatchingRulesForList):
147197        * css/StyleRule.cpp:
147198        (WebCore::StyleRuleBase::destroy):
147199        (WebCore::StyleRuleBase::copy):
147200        (WebCore::StyleRuleBase::createCSSOMWrapper):
147201        * css/WebKitCSSRegionRule.cpp:
147202        * css/WebKitCSSRegionRule.h:
147203        * css/WebKitCSSRegionRule.idl:
147204        * dom/Document.cpp:
147205        * dom/Document.h:
147206        * dom/Document.idl:
147207        * page/DOMWindow.idl:
147208        * page/Settings.cpp:
147209        (WebCore::Settings::Settings):
147210        * page/Settings.h:
147211        (WebCore::Settings::setCSSRegionsEnabled):
147212        (WebCore::Settings::cssRegionsEnabled):
147213
1472142012-05-24  Geoffrey Garen  <ggaren@apple.com>
147215
147216        WebKit should be lazy-finalization-safe (esp. the DOM)
147217        https://bugs.webkit.org/show_bug.cgi?id=87456
147218
147219        Reviewed by Filip Pizlo.
147220
147221        * bindings/js/DOMWrapperWorld.cpp:
147222        (WebCore::JSStringOwner::finalize):
147223        * bindings/js/JSDOMBinding.cpp:
147224        (WebCore::jsStringSlowCase):
147225        * bindings/js/JSDOMBinding.h:
147226        (WebCore::cacheWrapper):
147227        (WebCore::uncacheWrapper): Use the new idioms.
147228
147229        (WebCore::jsString): Use get instead of find because get is simpler in
147230        the case of entries that are logically null.
147231
147232        (WebCore::domObjectWrapperMapFor): Removed, since it was unused.
147233
147234        * bindings/js/ScriptWrappable.h:
147235        (WebCore::ScriptWrappable::clearWrapper): Use the new idioms.
147236
147237        * bridge/runtime_root.cpp:
147238        (JSC::Bindings::RootObject::invalidate): Check for null while iterating,
147239        since that's possible now.
147240
147241        (JSC::Bindings::RootObject::addRuntimeObject):
147242        (JSC::Bindings::RootObject::removeRuntimeObject):
147243        (JSC::Bindings::RootObject::finalize): Use the new idioms.
147244
147245        * bridge/runtime_root.h:
147246        (RootObject): Clarified the word "need".
147247
1472482012-05-24  Kent Tamura  <tkent@chromium.org>
147249
147250        PAGE_POPUP: window.setValueAndClosePopup should be moved to a
147251        per-context property of DOMWindow.
147252        https://bugs.webkit.org/show_bug.cgi?id=87086
147253
147254        Reviewed by Adam Barth.
147255
147256        - Introduce window.pagePagePopupController property as V8EnabledPerContext.
147257        - Move window.setValueAndClosePopup() to window.pagePopupController.
147258        So, we can remove ad-hoc ScriptController::installFunctionsForPagePopup().
147259
147260        No behavior change.
147261
147262        Test: fast/forms/date/no-page-popup-controller.html
147263
147264        * Resources/calendarPicker.js:
147265        (submitValue): Use window.pagePopupController.
147266        (handleCancel): ditto.
147267        * WebCore.gypi: Add new files.
147268        * bindings/generic/ContextEnabledFeatures.cpp:
147269        (WebCore::ContextEnabledFeatures::pagePopupEnabled): Added.
147270        * bindings/generic/ContextEnabledFeatures.h:
147271        (ContextEnabledFeatures): Added.
147272        * bindings/v8/ScriptController.cpp: Remove installFunctionsForPagePopup().
147273        * bindings/v8/ScriptController.h: ditto.
147274        * loader/FrameLoaderClient.h:
147275        (WebCore::FrameLoaderClient::allowPagePopup): Added.
147276        * page/DOMWindowPagePopup.cpp:
147277        (WebCore::DOMWindowPagePopup::DOMWindowPagePopup):
147278        Creates a PagePopupController object for the specified PagePopupClient.
147279        (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
147280        Empty destructor to generate the RefPtr<PagePopupController> destructor.
147281        (WebCore::DOMWindowPagePopup::pagePopupController):
147282        * page/DOMWindowPagePopup.h:
147283        (DOMWindowPagePopup):
147284         - Remove setValueAndClosePopup()
147285         - Add pagePopupController()
147286         - Change the data member from PagePopupClient to PagePopupController.
147287        * page/DOMWindowPagePopup.idl: Supply per-context window.pagePopupController.
147288        * page/PagePopupController.cpp: Added. This object is attached to window.
147289        * page/PagePopupController.h: ditto.
147290        * page/PagePopupController.idl: ditto.
147291
1472922012-05-21  Kinuko Yasuda  <kinuko@chromium.org>
147293
147294        Cleanup: add a file system call which captures the file metadata at once.
147295        https://bugs.webkit.org/show_bug.cgi?id=86995
147296
147297        Reviewed by David Levin.
147298
147299        Current File.slice() (webkitSlice()) implementation calls two separate platform calls,
147300        getFileSize() and getFileModificationTime() [both are defined in platform/FileSystem.h],
147301        to capture the file metadata, but we should have a single file system call to get them at once
147302        for two reasons: 1. save additional system call costs, and 2.  atomically obtain the file metadata.
147303
147304        No new tests: existing tests (http/tests/local/fileapi/* and fast/files/*) should pass.
147305
147306        * fileapi/File.cpp:
147307        (WebCore::File::captureSnapshot):
147308        * platform/FileMetadata.h:
147309        * platform/FileSystem.h:
147310        * platform/chromium/FileSystemChromium.cpp:
147311        (WebCore::getFileMetadata): Added.
147312        * platform/chromium/PlatformSupport.h:
147313        (PlatformSupport):
147314        * platform/gtk/FileSystemGtk.cpp:
147315        (WebCore::getFileMetadata): Added.
147316        * platform/posix/FileSystemPOSIX.cpp:
147317        (WebCore::getFileMetadata): Added.
147318        * platform/qt/FileSystemQt.cpp:
147319        (WebCore::getFileMetadata): Added.
147320        * platform/win/FileSystemWin.cpp:
147321        (WebCore::getFileSizeFromFindData):
147322        (WebCore::getFileModificationTimeFromFindData):
147323        (WebCore::getFileSize):
147324        (WebCore::getFileModificationTime):
147325        (WebCore::getFileMetadata): Added.
147326        * platform/wince/FileSystemWinCE.cpp:
147327        (WebCore::getFileSizeFromFileInfo):
147328        (WebCore::getFileModificationTimeFromFileInfo):
147329        (WebCore::getFileSize):
147330        (WebCore::getFileModificationTime):
147331        (WebCore::getFileMetadata): Added.
147332        * platform/wx/FileSystemWx.cpp:
147333        (WebCore::getFileMetadata): Added.
147334        (WebCore):
147335
1473362012-05-24  Hironori Bono  <hbono@chromium.org>
147337
147338        Enable grammar checking on Chromium when we paste text (Take 2)
147339        https://bugs.webkit.org/show_bug.cgi?id=74393
147340
147341        Reviewed by Ryosuke Niwa.
147342
147343        This change enables grammar checking on Chromium and implements a mock grammar
147344        checker to fix a failing test.
147345
147346        Test: editing/spelling/grammar-markers.html
147347
147348        * platform/graphics/skia/GraphicsContextSkia.cpp:
147349        (WebCore::GraphicsContext::drawLineForDocumentMarker): render grammar markers in gray on Windows and Linux or in green on Mac.
147350
1473512012-05-24  Dominic Mazzoni  <dmazzoni@google.com>
147352
147353        Crash in WebCore::AccessibilityTable::isDataTable
147354        https://bugs.webkit.org/show_bug.cgi?id=87409
147355
147356        Reviewed by Abhishek Arya.
147357
147358        Use Node::rendererIsEditable everywhere rather than
147359        Node::isContentEditable because the latter can trigger a layout
147360        and destroy the renderer. New test covers the change to
147361        AccessibilityTable.cpp, changes to AccessibilityRenderObject.cpp
147362        are covered by existing tests.
147363
147364        Test: accessibility/contenteditable-table-check-causes-crash.html
147365
147366        * accessibility/AccessibilityRenderObject.cpp:
147367        (WebCore::AccessibilityRenderObject::isReadOnly):
147368        (WebCore::AccessibilityRenderObject::contentChanged):
147369        * accessibility/AccessibilityTable.cpp:
147370        (WebCore::AccessibilityTable::isDataTable):
147371
1473722012-05-24  Yoshifumi Inoue  <yosin@chromium.org>
147373
147374        [Forms][TextArea] Too long validation message doesn't count LF as CRLF
147375        https://bugs.webkit.org/show_bug.cgi?id=87458
147376
147377        Reviewed by Kent Tamura.
147378
147379        This patch changes current number of characters in "too long" validation message
147380        parameter to counting newline as 2 characters (CR and LF) as submission data.
147381
147382        No new tests. To have test for this change, we need to change localization
147383        text handling during DRT. We'll try.
147384
147385        * html/HTMLTextAreaElement.cpp:
147386        (WebCore::HTMLTextAreaElement::validationMessage): Use computeLengthForSubmission instead of numGraphmeClusters.
147387
1473882012-05-24  Hayato Ito  <hayato@chromium.org>
147389
147390        Fix crashes caused by a DOMCharacterDataModified event on a text node.
147391        https://bugs.webkit.org/show_bug.cgi?id=86953
147392
147393        Reviewed by Dimitri Glazkov.
147394
147395        TextNode can be released while CharacterData::setData() will dispatch a mutation event.
147396        So protect it.
147397
147398        Mutation event itself should not be dispatched on the test case.
147399        This is being tracked by webkit bug https://bugs.webkit.org/show_bug.cgi?id=87372.
147400
147401        Test: fast/events/dom-character-data-modified-textarea-crash.html
147402
147403        * dom/CharacterData.cpp:
147404        (WebCore::CharacterData::setData):
147405
1474062012-05-24  Philippe Normand  <pnormand@igalia.com>
147407
147408        [GTK] Add --enable-css3-flexbox configure option after r118304.
147409        https://bugs.webkit.org/show_bug.cgi?id=87455
147410
147411        Reviewed by Xan Lopez.
147412
147413        * GNUmakefile.am:
147414
1474152012-05-24  MORITA Hajime  <morrita@google.com>
147416
147417        Scoped stylesheet should be per-document-configurable.
147418        https://bugs.webkit.org/show_bug.cgi?id=86985
147419
147420        Reviewed by Kent Tamura.
147421
147422        This change replaced RuntimeEnabledFeatures::styleScopedEnabled() callsites
147423        with newly introduced ContextEnabledFeatures::styleScopedEnabled().
147424        Clients can override the decision by implementing FrameLoaderClient::allowStyleScoped().
147425
147426        No new tests. This isn't testable on DRT.
147427
147428        * bindings/generic/ContextEnabledFeatures.cpp:
147429        (WebCore):
147430        (WebCore::ContextEnabledFeatures::styleScopedEnabled):
147431        * bindings/generic/ContextEnabledFeatures.h:
147432        (WebCore):
147433        (ContextEnabledFeatures):
147434        * css/StyleResolver.cpp:
147435        (WebCore::StyleResolver::determineScope):
147436        * css/StyleResolver.h:
147437        (StyleResolver):
147438        * html/HTMLStyleElement.cpp:
147439        (WebCore::HTMLStyleElement::registerWithScopingNode):
147440        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
147441        * loader/FrameLoaderClient.h:
147442        (WebCore::FrameLoaderClient::allowStyleScoped):
147443
1474442012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>
147445
147446        Unreviewed, rolling out r118452.
147447        http://trac.webkit.org/changeset/118452
147448        https://bugs.webkit.org/show_bug.cgi?id=87446
147449
147450        Causes many tests to assert on Mac, NRWT bails out (Requested
147451        by sundiamonde on #webkit).
147452
147453        * rendering/RenderObject.cpp:
147454        (WebCore::RenderObject::~RenderObject):
147455        (WebCore::RenderObject::clearLayoutRootIfNeeded):
147456
1474572012-05-24  Kevin Ollivier  <kevino@theolliviers.com>
147458
147459        [wx] Unreviewed build fix. Add contextMenuItemVector stub.
147460
147461        * platform/wx/ContextMenuWx.cpp:
147462        (WebCore):
147463        (WebCore::contextMenuItemVector):
147464
1474652012-05-24  Raymond Toy  <rtoy@google.com>
147466
147467        Use 32-byte alignment in AudioArray if using WEBAUDIO_FFMPEG
147468        https://bugs.webkit.org/show_bug.cgi?id=87430
147469
147470        Reviewed by Chris Rogers.
147471
147472        Covered by existing tests.
147473
147474        * platform/audio/AudioArray.h:
147475        (WebCore::AudioArray::allocate):
147476
1474772012-05-24  Antoine Labour  <piman@chromium.org>
147478
147479        [chromium] Add a setForceRenderSurface to WebLayer for test/bench purpose
147480        https://bugs.webkit.org/show_bug.cgi?id=87436
147481
147482        Reviewed by James Robinson.
147483
147484        Tested by CCLayerTreeHostCommonTest.verifyForceRenderSurface
147485
147486        * platform/graphics/chromium/LayerChromium.cpp:
147487        (WebCore::LayerChromium::LayerChromium):
147488        (WebCore::LayerChromium::setForceRenderSurface):
147489        (WebCore):
147490        (WebCore::LayerChromium::pushPropertiesTo):
147491        * platform/graphics/chromium/LayerChromium.h:
147492        (WebCore::LayerChromium::forceRenderSurface):
147493        (LayerChromium):
147494        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
147495        (WebCore::CCLayerImpl::CCLayerImpl):
147496        * platform/graphics/chromium/cc/CCLayerImpl.h:
147497        (WebCore::CCLayerImpl::forceRenderSurface):
147498        (WebCore::CCLayerImpl::setForceRenderSurface):
147499        (CCLayerImpl):
147500        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
147501        (WebCore::subtreeShouldRenderToSeparateSurface):
147502
1475032012-05-24  Ken Buchanan  <kenrb@chromium.org>
147504
147505        Layout root not getting cleared for anonymous renderers geting destroyed
147506        https://bugs.webkit.org/show_bug.cgi?id=84002
147507
147508        Reviewed by Abhishek Arya.
147509
147510        This is a follow-up to r109406, which added a check to clear layout
147511        roots when they point to a renderer that is being destroyed. The
147512        thinking was that layout roots would never be anonymous renderers,
147513        but there are some cases where this is not true (in particular,
147514        generated content containers with overflow clips can be layout roots).
147515
147516        As in r109406, this patch has no layout test. This is because any test
147517        that exercises this behavior is caused by an existing layout bug where
147518        a child is not properly getting layout (or a renderer is getting dirtied
147519        out of order during layout) and will fail multiple ASSERTs:
147520        in particular, ASSERT(!m_layoutRoot->container() || !m_layoutRoot->
147521        container()->needsLayout()) in FrameView::scheduleRelayoutOfSubtree(),
147522        and ASSERT_NOT_REACHED() in RenderObject::clearLayoutRootIfNeeded().
147523        We are preventing those bugs from manifesting as security issues with
147524        this patch.
147525
147526        * rendering/RenderObject.cpp:
147527        (WebCore::RenderObject::~RenderObject):
147528        (WebCore::RenderObject::willBeDestroyed):
147529
1475302012-05-24  Anders Carlsson  <andersca@apple.com>
147531
147532        Corrupted pages rendering when images are zoomed on Google+
147533        https://bugs.webkit.org/show_bug.cgi?id=87439
147534        <rdar://problem/11503078>
147535
147536        Reviewed by Beth Dakin.
147537
147538        The rect that's given to scrollContentsSlowPath is in frame view coordinates, but if we end up
147539        passing them to RenderLayer::setBackingNeedsRepaintInRect we need to account for the frame scale factor.
147540
147541        * page/FrameView.cpp:
147542        (WebCore::FrameView::scrollContentsSlowPath):
147543
1475442012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
147545
147546        REGRESSION (r112399): insertHTML doesn't respect current selection range and inserts HTML to incorrect position
147547        https://bugs.webkit.org/show_bug.cgi?id=87195
147548
147549        Reviewed by Darin Adler.
147550
147551        The bug was caused by our passing insertionPos.anchorNode() to splitTreeToNode's start node even when
147552        the position's type was an offset in a container. Fixed the bug by passing the node after the insert position
147553        or the container node if the position is at the end of the container.
147554
147555        Test: editing/pasteboard/paste-at-end-of-node-followed-by-inline-element.html
147556
147557        * editing/ReplaceSelectionCommand.cpp:
147558        (WebCore::ReplaceSelectionCommand::doApply):
147559
1475602012-05-24  Emil A Eklund  <eae@chromium.org>
147561
147562        REGRESSION (115573): Incorrect rounding of margins for floats
147563        https://bugs.webkit.org/show_bug.cgi?id=87319
147564
147565        Reviewed by Eric Seidel.
147566
147567        In RenderBlock::computeInlinePreferredLogicalWidths we used a float to
147568        accumulate margins for floating children while the children themselves
147569        represent their margins as LayoutUnits. Due to lack of rounding this can
147570        cause the block to be too small at certain certain zoom levels, causing
147571        unwanted wrapping. 
147572
147573        This patch changes computeInlinePreferredLogicalWidths to use a
147574        LayoutUnit to accumulate the margins and thus ensures that the margin
147575        values are rounded the same way.
147576
147577        Test: fast/block/float/floats-with-margin-should-not-wrap.html
147578
147579        * rendering/RenderBlock.cpp:
147580        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
147581
1475822012-05-24  Christophe Dumez  <christophe.dumez@intel.com>
147583
147584        postMessage and webkitPostMessage should behave the same way
147585        https://bugs.webkit.org/show_bug.cgi?id=87384
147586
147587        Reviewed by Adam Barth.
147588
147589        Make postMessage behave the same way as webkitPostMessage, meaning
147590        that it supports transfer of MessagePorts and ArrayBuffers as per
147591        the spec. Both V8 and JSC implementations have been updated.
147592
147593        Test: fast/dom/Window/window-postmessage-args.html
147594
147595        * bindings/js/JSDOMWindowCustom.cpp:
147596        (WebCore::handlePostMessage):
147597        (WebCore::JSDOMWindow::postMessage):
147598        (WebCore::JSDOMWindow::webkitPostMessage):
147599        * bindings/v8/custom/V8DOMWindowCustom.cpp:
147600        (WebCore::handlePostMessageCallback):
147601        (WebCore::V8DOMWindow::postMessageCallback):
147602        (WebCore::V8DOMWindow::webkitPostMessageCallback):
147603        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
147604        (WebCore::handlePostMessageCallback):
147605        (WebCore::V8DedicatedWorkerContext::postMessageCallback):
147606        (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
147607        * bindings/v8/custom/V8MessagePortCustom.cpp:
147608        (WebCore::handlePostMessageCallback):
147609        (WebCore::V8MessagePort::postMessageCallback):
147610        (WebCore::V8MessagePort::webkitPostMessageCallback):
147611        * bindings/v8/custom/V8WorkerCustom.cpp:
147612        (WebCore::handlePostMessageCallback):
147613        (WebCore::V8Worker::postMessageCallback):
147614        (WebCore::V8Worker::webkitPostMessageCallback):
147615
1476162012-05-24  Pablo Flouret  <pablof@motorola.com>
147617
147618        Submit button doesn't submit the form if the form is wrapped by an anchor tag
147619        https://bugs.webkit.org/show_bug.cgi?id=86719
147620
147621        Reviewed by Ryosuke Niwa.
147622
147623        When a form's button is clicked or activated with the keyboard a
147624        DOMActivate event is dispatched internally and the default handler for
147625        it takes care of processing the form submission, but the underlying
147626        event that prompted it is not set as handled and so it ends up
147627        navigating the anchor, thereby cancelling the form submission.
147628
147629        This patch sets the original click event as handled if the DOMActivate
147630        event was handled. This matches the rest of the browsers for form
147631        controls that submit a form (input type=submit, button type=submit,
147632        input type=image, etc), and matches IE for the rest of the controls
147633        (basically, IE never activates the anchor when clicking on form
147634        controls, Presto and Gecko mostly don't either, except in a few cases.
147635
147636        Test: fast/forms/form-in-anchor-controls-activation.html
147637
147638        * dom/Node.cpp:
147639        (WebCore::Node::dispatchDOMActivateEvent):
147640        (WebCore::Node::defaultEventHandler):
147641        * dom/Node.h:
147642        (Node):
147643        * html/HTMLButtonElement.cpp:
147644        (WebCore::HTMLButtonElement::defaultEventHandler):
147645
1476462012-05-24  Crystal Zhang  <haizhang@rim.com>
147647
147648        [BlackBerry] Implement select popup and remove old hook to air popup
147649        https://bugs.webkit.org/show_bug.cgi?id=87419
147650
147651        Reviewed by Rob Buis.
147652
147653        Add new files to make file, add css file for select popup.
147654
147655        * PlatformBlackBerry.cmake:
147656        * Resources/blackberry/popupControlBlackBerry.css: Added.
147657        (html):
147658        (body):
147659        (.bottombuttonOK):
147660        (.bottombuttonCancel):
147661        (.tablebutton):
147662
1476632012-05-24  Levi Weintraub  <leviw@chromium.org>
147664
147665        Avoid creating InlineBoxes for floating and positioned objects in isolates.
147666        https://bugs.webkit.org/show_bug.cgi?id=87277
147667
147668        Reviewed by Eric Seidel.
147669
147670        We currently will create a placeholder run for the first object we encounter inside an isolate. Then
147671        in RenderBlockLineLayout's constructBidiRuns, we replace that run with the contents of the Isolate.
147672        We run into problems when there are no valid contents in the Isolate. We can't simply remove the
147673        placeholder if there's nothing to replace it with since it may be the logically last run, which we
147674        track but can't rebuild by the time we're handling isolates (we've already shuffled the BidiRuns around).
147675
147676        With this change, we avoid creating a placeholder altogether until we hit contents in the isolate
147677        that would warrant a BidiRun in the first place.
147678
147679        Test: fast/text/international/float-as-only-child-of-isolate-crash.html
147680
147681        * rendering/InlineIterator.h:
147682        (WebCore::IsolateTracker::addFakeRunIfNecessary):
147683        * rendering/RenderBlock.h:
147684        (RenderBlock):
147685        (WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
147686        * rendering/RenderBlockLineLayout.cpp:
147687        (WebCore::RenderBlock::appendRunsForObject):
147688
1476892012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
147690
147691        There are too many poorly named functions to create a fragment from markup
147692        https://bugs.webkit.org/show_bug.cgi?id=87339
147693
147694        Reviewed by Eric Seidel.
147695
147696        Moved all functions that create a fragment from markup to markup.h/cpp.
147697        There should be no behavioral change.
147698
147699        * dom/Range.cpp:
147700        (WebCore::Range::createContextualFragment):
147701        * dom/Range.h: Removed createDocumentFragmentForElement.
147702        * dom/ShadowRoot.cpp:
147703        (WebCore::ShadowRoot::setInnerHTML):
147704        * editing/markup.cpp:
147705        (WebCore::createFragmentFromMarkup):
147706        (WebCore::createFragmentForInnerOuterHTML): Renamed from createFragmentFromSource.
147707        (WebCore::createFragmentForTransformToFragment): Moved from XSLTProcessor.
147708        (WebCore::removeElementPreservingChildren): Moved from Range.
147709        (WebCore::createContextualFragment): Ditto.
147710        * editing/markup.h:
147711        * html/HTMLElement.cpp:
147712        (WebCore::HTMLElement::setInnerHTML):
147713        (WebCore::HTMLElement::setOuterHTML):
147714        (WebCore::HTMLElement::insertAdjacentHTML):
147715        * inspector/DOMPatchSupport.cpp:
147716        (WebCore::DOMPatchSupport::patchNode): Added a FIXME since this code should be using
147717        one of the functions listed in markup.h
147718        * xml/XSLTProcessor.cpp:
147719        (WebCore::XSLTProcessor::transformToFragment):
147720
1477212012-05-24  Jer Noble  <jer.noble@apple.com>
147722
147723        MediaControlTimelineElement is adjusting time 3 times per click
147724        https://bugs.webkit.org/show_bug.cgi?id=58160
147725
147726        Reviewed by Eric Carlson.
147727
147728        No new tests; we intentionally throttle timeupdate events for the same
147729        movie time, so there is no way to write a layout test for this case.
147730
147731        Only call setCurrentTime() on mousedown or mousemove events.
147732
147733        * html/shadow/MediaControlElements.cpp:
147734        (WebCore::MediaControlTimelineElement::defaultEventHandler):
147735
1477362012-05-24  John Mellor  <johnme@chromium.org>
147737
147738        Font Boosting: Add compile flag and runtime setting
147739        https://bugs.webkit.org/show_bug.cgi?id=87394
147740
147741        Reviewed by Adam Barth.
147742
147743        Add ENABLE_FONT_BOOSTING compile flag and fontBoostingEnabled runtime setting.
147744
147745        No functionality yet, so no new tests.
147746
147747        * Configurations/FeatureDefines.xcconfig:
147748        * GNUmakefile.am:
147749        * Target.pri:
147750        * page/Settings.cpp:
147751        (WebCore::Settings::Settings):
147752        (WebCore::Settings::setFontBoostingEnabled):
147753        (WebCore):
147754        * page/Settings.h:
147755        (Settings):
147756        (WebCore::Settings::fontBoostingEnabled):
147757
1477582012-05-24  Greg Spencer  <gspencer@chromium.org>
147759
147760        MHTML files should be loadable from all schemes considered local,
147761        not just "file:"
147762
147763        https://bugs.webkit.org/show_bug.cgi?id=86540
147764
147765        Reviewed by Adam Barth.
147766
147767        Existing tests should verify correct function.
147768
147769        * loader/MainResourceLoader.cpp:
147770        (WebCore::MainResourceLoader::continueAfterContentPolicy):
147771        * loader/archive/mhtml/MHTMLArchive.cpp:
147772        (WebCore::MHTMLArchive::create):
147773
1477742012-05-24  Dana Jansens  <danakj@chromium.org>
147775
147776        [chromium] Remove some leftover references to LayerTilerChromium
147777        https://bugs.webkit.org/show_bug.cgi?id=87405
147778
147779        Reviewed by James Robinson.
147780
147781        * platform/graphics/chromium/LayerChromium.h:
147782        (LayerChromium):
147783        * platform/graphics/chromium/SolidColorLayerChromium.h:
147784
1477852012-05-24  Jessie Berlin  <jberlin@apple.com>
147786
147787        REGRESSION(r109663) All the the dom/html/level2/html/HTMLFrameElement* tests crash on Windows
147788        https://bugs.webkit.org/show_bug.cgi?id=87410
147789
147790        Reviewed by Anders Carlsson.
147791
147792        Do not pass a reference type to va_start (see r75435).
147793
147794        * platform/LocalizedStrings.cpp:
147795        (WebCore::formatLocalizedString):
147796
1477972012-05-24  Yael Aharon  <yael.aharon@nokia.com>
147798
147799        [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT
147800        https://bugs.webkit.org/show_bug.cgi?id=87392
147801
147802        Reviewed by Antonio Gomes.
147803
147804        Remove our dependency on a build flag and use the new setting.
147805
147806        No new tests.
147807
147808        * css/StyleResolver.cpp:
147809
1478102012-05-24  Alexey Proskuryakov  <ap@apple.com>
147811
147812        [WK2] Let the client give local files universal access on a case by case basis
147813        https://bugs.webkit.org/show_bug.cgi?id=87174
147814        <rdar://problem/11024330>
147815
147816        Reviewed by Maciej Stachowiak.
147817
147818        * dom/Document.cpp: (WebCore::Document::initSecurityContext): When settings->allowUniversalAccessFromFileURLs()
147819        is false, also try asking the client for an indulgence.
147820
147821        * loader/FrameLoaderClient.h: (WebCore::FrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
147822        Default implementation doesn't change anything.
147823
1478242012-05-24  Tony Chang  <tony@chromium.org>
147825
147826        improve StyleRareNonInheritedData bit packing on Windows
147827        https://bugs.webkit.org/show_bug.cgi?id=87322
147828
147829        Reviewed by Eric Seidel.
147830
147831        Accessors for m_runningAcceleratedAnimation and m_hasAspectRatio are on RenderStyle already.
147832
147833        Also reorder the variables in operator== to be consistent with the constructor and header file.
147834        This makes it easier to add or remove values.
147835
147836        No new tests, just refactoring.
147837
147838        * rendering/style/StyleRareNonInheritedData.cpp:
147839        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
147840        (WebCore::StyleRareNonInheritedData::operator==):
147841        * rendering/style/StyleRareNonInheritedData.h:
147842        (StyleRareNonInheritedData):
147843
1478442012-05-24  Robert Hogan  <robert@webkit.org>
147845
147846        Negative margin block doesn't properly clear a float enclosed by a previous sibling
147847        https://bugs.webkit.org/show_bug.cgi?id=10900
147848
147849        Reviewed by David Hyatt.
147850
147851        Tests: fast/css/clear-float-sibling.html
147852
147853        Parent blocks keep a list of child floats that extend out of the parent block and
147854        by implication overhang into the parent's siblings. But this doesn't work if the
147855        sibling has collapsing margins - it will not find the float in the previous block's
147856        list so will ignore the float and fail to clear it.
147857
147858        RenderBlock:collapseMargins() needs to check if a child's collapsing margin has 
147859        reduced the height of the parent up past the bottom of its previous sibling's lowest float
147860        and add the now overhanging float to the parent's float list if appropriate.
147861        
147862        * rendering/RenderBlock.cpp:
147863        (WebCore::RenderBlock::collapseMargins):
147864
1478652012-05-24  Kinuko Yasuda  <kinuko@chromium.org>
147866
147867        Cleanup: introduce toFile() to reduce static cast from Blob to File
147868        https://bugs.webkit.org/show_bug.cgi?id=87234
147869
147870        Reviewed by Eric Seidel.
147871
147872        No new tests as this must have no side effect.
147873
147874        * bindings/v8/custom/V8BlobCustom.cpp:
147875        (WebCore::toV8):
147876        * fileapi/Blob.cpp:
147877        (WebCore::Blob::webkitSlice):
147878        * fileapi/Blob.h:
147879        (Blob):
147880        * fileapi/File.h:
147881        (WebCore::toFile): Added.
147882        (WebCore):
147883        * fileapi/FileReader.cpp:
147884        (WebCore::FileReader::readAsArrayBuffer):
147885        (WebCore::FileReader::readAsBinaryString):
147886        (WebCore::FileReader::readAsText):
147887        (WebCore::FileReader::readAsDataURL):
147888        * fileapi/WebKitBlobBuilder.cpp:
147889        (WebCore::WebKitBlobBuilder::append):
147890        * platform/chromium/ClipboardChromium.cpp:
147891        (WebCore::ClipboardChromium::files):
147892        * platform/network/FormData.cpp:
147893        (WebCore::FormData::appendKeyValuePairItems):
147894        * xml/XMLHttpRequest.cpp:
147895        (WebCore::XMLHttpRequest::send):
147896
1478972012-05-24  Darin Adler  <darin@apple.com>
147898
147899        SVGElement::addEventListener has peculiar RefPtr usage
147900        https://bugs.webkit.org/show_bug.cgi?id=86497
147901
147902        Reviewed by Andy Estes.
147903
147904        * svg/SVGElement.cpp:
147905        (WebCore::SVGElement::addEventListener): Switch to a more-standard style of RefPtr usage,
147906        getting rid of some unneeded reference count churn; also removed an unneeded special case
147907        for zero listeners.
147908
1479092012-05-24  Raphael Kubo da Costa  <rakuco@webkit.org>
147910
147911        [EFL] Modify keycode conversion functions to return keycodes with location information after r118001.
147912        https://bugs.webkit.org/show_bug.cgi?id=87203
147913
147914        Reviewed by Andreas Kling.
147915
147916        Add the required changes to make
147917        fast/events/keydown-leftright-keys.html pass after r118001.
147918
147919        * platform/efl/EflKeyboardUtilities.cpp:
147920        (WebCore::createWindowsKeyMap): Translate the keycodes for
147921        "{left,right}{Shift,Alt,Control}" into the right windows keyboard
147922        definitions.
147923
1479242012-05-24  Claudio Saavedra  <csaavedra@igalia.com>
147925
147926        [Gtk] Wrong cursor used for ne-resize
147927        https://bugs.webkit.org/show_bug.cgi?id=87366
147928
147929        Reviewed by Eric Seidel.
147930
147931        * platform/gtk/CursorGtk.cpp:
147932        (WebCore::Cursor::ensurePlatformCursor): Use GDK_TOP_RIGHT_CORNER
147933        for Cursor::NorthEastPanning.
147934
1479352012-05-24  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
147936
147937        [Qt]  Fix Webkit1 + V8 build.
147938        https://bugs.webkit.org/show_bug.cgi?id=87368
147939
147940        Reviewed by Eric Seidel.
147941
147942        No new tests, because this is a buildfix.
147943
147944        * bindings/scripts/CodeGeneratorV8.pm:
147945        (GenerateImplementation):
147946        * bindings/v8/npruntime_impl.h:
147947        * bindings/v8/npruntime_priv.h:
147948
1479492012-05-24  Dana Jansens  <danakj@chromium.org>
147950
147951        [chromium] Only display frames created with memory allocations meant to be displayed
147952        https://bugs.webkit.org/show_bug.cgi?id=85108
147953
147954        Reviewed by Adrienne Walker.
147955
147956        In this patch we remove the setVisible() code paths from CCProxy, and
147957        instead commit visiblity state along with a frame. We also commit a
147958        flag with a frame that indicates if the frame is one that can be drawn.
147959
147960        The impl host is set to visible during commit instead of using a
147961        special channel through the proxy, and the scheduler allows
147962        commits when we are waiting to draw our first frame but blocked on
147963        being non-visible.
147964
147965        canDraw is gated on a new flag that indicates if the frame is one meant
147966        for display. A frame is meant for display if the frame was generated
147967        with a memory allocation meant for display. At this time, any non-zero
147968        memory allocation is considered meant for display.
147969
147970        We prevent races by not changing the memory allocation at any time
147971        except during a commit. So we force a commit when the memory
147972        allocation needs to be adjusted and we are not visible. Similarly,
147973        we force a commit when visibility changes so that we are able to
147974        commit the visibility change to the impl tree.
147975
147976        In order to prevent drawing frames that are not meant for display
147977        with a single thread, we prevent compositing when the impl tree
147978        is not visible, with an early out in CCSingleThreadProxy.
147979
147980        Unit tests: CCLayerTreeHostTestVisibilityAndAllocationControlDrawing
147981
147982        * platform/graphics/chromium/LayerChromium.h:
147983        * platform/graphics/chromium/TiledLayerChromium.cpp:
147984        * platform/graphics/chromium/TiledLayerChromium.h:
147985        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
147986        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
147987        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
147988        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
147989        (WebCore::CCLayerTreeHost::setNeedsCommit):
147990        (WebCore):
147991        (WebCore::CCLayerTreeHost::setNeedsForcedCommit):
147992        (WebCore::CCLayerTreeHost::setVisible):
147993        (WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
147994        (WebCore::CCLayerTreeHost::scheduleComposite):
147995        (WebCore::CCLayerTreeHost::updateLayers):
147996        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
147997        (CCLayerTreeHost):
147998        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
147999        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
148000        (WebCore::CCLayerTreeHostImpl::canDraw):
148001        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
148002        (WebCore::CCLayerTreeHostImpl::sourceFrameCanBeDrawn):
148003        (WebCore::CCLayerTreeHostImpl::setSourceFrameCanBeDrawn):
148004        (CCLayerTreeHostImpl):
148005        * platform/graphics/chromium/cc/CCProxy.h:
148006        (CCProxy):
148007        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
148008        (WebCore::CCSchedulerStateMachine::drawSuspendedUntilCommit):
148009        (WebCore::CCSchedulerStateMachine::scheduledToDraw):
148010        (WebCore::CCSchedulerStateMachine::updateState):
148011        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
148012        (WebCore::CCSingleThreadProxy::doCommit):
148013        (WebCore::CCSingleThreadProxy::setNeedsCommit):
148014        (WebCore):
148015        (WebCore::CCSingleThreadProxy::setNeedsForcedCommit):
148016        (WebCore::CCSingleThreadProxy::doComposite):
148017        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
148018        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
148019        (WebCore::CCThreadProxy::CCThreadProxy):
148020        (WebCore::CCThreadProxy::setNeedsForcedCommit):
148021        (WebCore):
148022        (WebCore::CCThreadProxy::setNeedsForcedCommitOnImplThread):
148023        (WebCore::CCThreadProxy::forceBeginFrameOnImplThread):
148024        (WebCore::CCThreadProxy::beginFrame):
148025        (WebCore::CCThreadProxy::scheduledActionCommit):
148026        * platform/graphics/chromium/cc/CCThreadProxy.h:
148027        (CCThreadProxy):
148028
1480292012-05-24  Pavel Feldman  <pfeldman@chromium.org>
148030
148031        Web Inspector: [regression] search in formatted scripts is broken.
148032        https://bugs.webkit.org/show_bug.cgi?id=87377
148033
148034        Reviewed by Vsevolod Vlasov.
148035
148036        Using formatted content in search.
148037
148038        Test: inspector/debugger/script-formatter-search.html
148039
148040        * inspector/front-end/JavaScriptSource.js:
148041        (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
148042        (WebInspector.JavaScriptSource.prototype.searchInContent.callbackWrapper):
148043        (WebInspector.JavaScriptSource.prototype.searchInContent):
148044
1480452012-05-24  Philip Rogers  <pdr@google.com>
148046
148047        Refactor SVGAnimateTransformElement to avoid expensive determineAnimatedPropertyType call
148048        https://bugs.webkit.org/show_bug.cgi?id=87309
148049
148050        Reviewed by Nikolas Zimmermann.
148051
148052        This is a simple refactor that matches the work done in
148053        https://bugs.webkit.org/show_bug.cgi?id=87309 to avoid an expensive call.
148054
148055        No new tests, no actual effects beyond performance improvement.
148056
148057        * svg/SVGAnimateElement.h:
148058        (SVGAnimateElement):
148059        * svg/SVGAnimateTransformElement.cpp:
148060        (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
148061
1480622012-05-24  Csaba Osztrogonác  <ossy@webkit.org>
148063
148064        [Qt] Unreviewed trvial fixes.
148065
148066        * Target.pri: Typo fix after r118226.
148067        * WebCore.pri: Warning fix after r117291.
148068
1480692012-05-24  Antti Koivisto  <antti@apple.com>
148070
148071        Move StyleRuleImport to a file of its own
148072        https://bugs.webkit.org/show_bug.cgi?id=87386
148073
148074        Rubber-stamped by Andreas Kling.
148075
148076        Move StyleRuleImport out from CSSImportRule.cpp/.h
148077
148078        * CMakeLists.txt:
148079        * GNUmakefile.list.am:
148080        * Target.pri:
148081        * WebCore.gypi:
148082        * WebCore.vcproj/WebCore.vcproj:
148083        * WebCore.xcodeproj/project.pbxproj:
148084        * css/CSSImportRule.cpp:
148085        (WebCore):
148086        (WebCore::CSSImportRule::href):
148087        * css/CSSImportRule.h:
148088        (WebCore):
148089        (CSSImportRule):
148090        * css/CSSParser.cpp:
148091        * css/StyleRuleImport.cpp: Copied from Source/WebCore/css/CSSImportRule.cpp.
148092        (WebCore):
148093        * css/StyleRuleImport.h: Copied from Source/WebCore/css/CSSImportRule.h.
148094        (WebCore):
148095        * css/StyleSheetContents.cpp:
148096
1480972012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>
148098
148099        Unreviewed, rolling out r118352.
148100        http://trac.webkit.org/changeset/118352
148101        https://bugs.webkit.org/show_bug.cgi?id=87390
148102
148103        Caused 6 editing/spelling tests crash/fail on chromium in
148104        debug. (Requested by vsevik on #webkit).
148105
148106        * platform/graphics/skia/GraphicsContextSkia.cpp:
148107        (WebCore::GraphicsContext::drawLineForDocumentMarker):
148108
1481092012-05-24  Alexander Pavlov  <apavlov@chromium.org>
148110
148111        Web Inspector: Support hierarchical context menus
148112        https://bugs.webkit.org/show_bug.cgi?id=86847
148113
148114        Reviewed by Pavel Feldman.
148115
148116        This patch makes use of the WebMenuItemInfo SubMenu type to expose the capability of building submenu items
148117        in the Web Inspector's context menu. ContextMenuItems are also passed/stored by reference/value rather than pointer
148118        in order to be consistent with the PlatformMenuDescription typedef.
148119
148120        * bindings/js/JSInspectorFrontendHostCustom.cpp:
148121        (WebCore::populateContextMenuItems): Enable submenu item population.
148122        (WebCore):
148123        (WebCore::JSInspectorFrontendHost::showContextMenu): Extract the menu population part into populateContextMenuItems().
148124        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
148125        (WebCore::populateContextMenuItems): Enable submenu item population.
148126        (WebCore):
148127        (WebCore::V8InspectorFrontendHost::showContextMenuCallback): Extract the menu population part into populateContextMenuItems().
148128        * inspector/InspectorFrontendHost.cpp:
148129        (WebCore::FrontendMenuProvider::create): Use reference instead of pointer for ContextMenuItems.
148130        (WebCore::FrontendMenuProvider::FrontendMenuProvider): Use reference instead of pointer for ContextMenuItems.
148131        (WebCore::FrontendMenuProvider::populateContextMenu): Use reference instead of pointer for ContextMenuItems.
148132        (WebCore::FrontendMenuProvider::contextMenuCleared):
148133        (FrontendMenuProvider):
148134        (WebCore::InspectorFrontendHost::showContextMenu): Use reference instead of pointer for ContextMenuItems.
148135        * inspector/InspectorFrontendHost.h:
148136        (InspectorFrontendHost):
148137        * inspector/front-end/ContextMenu.js: Support the tree-like structure of context menus.
148138        (WebInspector.ContextMenuItem):
148139        (WebInspector.ContextMenuItem.prototype.id):
148140        (WebInspector.ContextMenuItem.prototype.type):
148141        (WebInspector.ContextMenuItem.prototype._buildDescriptor):
148142        (WebInspector.ContextSubMenuItem):
148143        (WebInspector.ContextSubMenuItem.prototype.appendItem):
148144        (WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
148145        (WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
148146        (WebInspector.ContextSubMenuItem.prototype.appendSeparator):
148147        (WebInspector.ContextSubMenuItem.prototype._buildDescriptor):
148148        (WebInspector.ContextMenu):
148149        (WebInspector.ContextMenu.prototype.nextId):
148150        (WebInspector.ContextMenu.prototype.show):
148151        (WebInspector.ContextMenu.prototype._setHandler):
148152        (WebInspector.ContextMenu.prototype._buildDescriptor):
148153        * inspector/front-end/SoftContextMenu.js:
148154        (.WebInspector.SoftContextMenu): Support sub-menus.
148155        (.WebInspector.SoftContextMenu.prototype.show):
148156        (.WebInspector.SoftContextMenu.prototype._parentGlassPaneElement):
148157        (.WebInspector.SoftContextMenu.prototype._createMenuItem):
148158        (.WebInspector.SoftContextMenu.prototype._createSubMenu):
148159        (.WebInspector.SoftContextMenu.prototype._createSeparator):
148160        (.WebInspector.SoftContextMenu.prototype._menuItemMouseUp):
148161        (.WebInspector.SoftContextMenu.prototype._focus):
148162        (.WebInspector.SoftContextMenu.prototype._triggerAction):
148163        (.WebInspector.SoftContextMenu.prototype._showSubMenu):
148164        (.WebInspector.SoftContextMenu.prototype._buildMouseEventForSubMenu):
148165        (.WebInspector.SoftContextMenu.prototype._hideSubMenu):
148166        (.WebInspector.SoftContextMenu.prototype._menuItemMouseOut):
148167        (.WebInspector.SoftContextMenu.prototype._highlightMenuItem):
148168        (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
148169        (.WebInspector.SoftContextMenu.prototype._glassPaneMouseUp):
148170        (.WebInspector.SoftContextMenu.prototype._discardMenu):
148171        (.WebInspector.SoftContextMenu.prototype._discardSubMenus):
148172        * inspector/front-end/inspector.css: Support for sub-menus, separator improvement.
148173        (.soft-context-menu-separator):
148174        (.soft-context-menu-separator > .separator-line):
148175        (.soft-context-menu-item-submenu-arrow):
148176        * platform/chromium/ContextMenuChromium.cpp:
148177        (WebCore::contextMenuItemVector): Implemented.
148178        (WebCore):
148179
1481802012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>
148181
148182        Web Inspector: Breakpoints Pane should not show context menu with no breakpoints
148183        https://bugs.webkit.org/show_bug.cgi?id=87340
148184
148185        Reviewed by Pavel Feldman.
148186
148187        Removed the method _contextMenu as this would be redundant call
148188        because _breakpointContextMenu would take care of showing the remove
148189        all breakpoints option.
148190
148191        * inspector/front-end/BreakpointsSidebarPane.js:
148192        (WebInspector.JavaScriptBreakpointsSidebarPane):
148193        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
148194
1481952012-05-24  Yury Semikhatsky  <yurys@chromium.org>
148196
148197        Unreviewed. Chromium Mac build fix after r118357.
148198        Use full name specifier instead of "using" directive.
148199
148200        * inspector/InspectorMemoryAgent.cpp:
148201        (WebCore::jsHeapInfo):
148202        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
148203
1482042012-05-24  Pavel Feldman  <pfeldman@chromium.org>
148205
148206        Web Inspector: introduce virtual resource for inspector stylesheet.
148207        https://bugs.webkit.org/show_bug.cgi?id=87357
148208
148209        Reviewed by Vsevolod Vlasov.
148210
148211        This change introduces virtual resource that represents inspector stylesheet (that is added for styles added via inspector).
148212        New resource has url of form "inspector://<page url folder>/inspector-stylesheet. It enables live editing and revision
148213        history of the inspector stylesheet.
148214
148215        Test: inspector/styles/edit-inspector-stylesheet.html
148216
148217        * inspector/Inspector.json:
148218        * inspector/InspectorCSSAgent.cpp:
148219        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
148220        (WebCore::InspectorCSSAgent::bindStyleSheet):
148221        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
148222        (WebCore::InspectorCSSAgent::detectOrigin):
148223        * inspector/InspectorCSSAgent.h:
148224        (InspectorCSSAgent):
148225        * inspector/InspectorDOMAgent.h:
148226        (InspectorDOMAgent):
148227        (WebCore::InspectorDOMAgent::pageAgent):
148228        * inspector/InspectorStyleSheet.cpp:
148229        (WebCore::InspectorStyleSheet::create):
148230        (WebCore::InspectorStyleSheet::InspectorStyleSheet):
148231        (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
148232        (WebCore::InspectorStyleSheet::buildObjectForRule):
148233        (WebCore::InspectorStyleSheet::resourceStyleSheetText):
148234        (WebCore::InspectorStyleSheetForInlineStyle::create):
148235        (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
148236        * inspector/InspectorStyleSheet.h:
148237        (WebCore):
148238        (InspectorStyleSheet):
148239        (WebCore::InspectorStyleSheet::canBind):
148240        (InspectorStyleSheetForInlineStyle):
148241        * inspector/front-end/CSSStyleModel.js:
148242        (WebInspector.CSSStyleModel):
148243        (WebInspector.CSSStyleModel.prototype._undoRedoCompleted):
148244        (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
148245        (WebInspector.CSSStyleModelResourceBinding):
148246        (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
148247        (WebInspector.CSSStyleModelResourceBinding.prototype._inspectedURLChanged):
148248        (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
148249        (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
148250        (WebInspector.CSSStyleModelResourceBinding.prototype._getViaInspectorResource.hadersLoaded):
148251        (WebInspector.CSSStyleModelResourceBinding.prototype._getViaInspectorResource):
148252        (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource.overrideRequestContent.callbackWrapper):
148253        (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource.overrideRequestContent):
148254        (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource):
148255        (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
148256        * inspector/front-end/Resource.js:
148257        (WebInspector.Resource):
148258        (WebInspector.Resource.prototype.isHidden):
148259        * inspector/front-end/ResourceTreeModel.js:
148260        (WebInspector.ResourceTreeModel.prototype._onRequestUpdateDropped):
148261        (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
148262        (WebInspector.ResourceTreeFrame.prototype._navigate):
148263        (WebInspector.ResourceTreeFrame.prototype.addResource):
148264        * inspector/front-end/ResourcesPanel.js:
148265        (WebInspector.FrameTreeElement.prototype.appendResource):
148266        * inspector/front-end/ScriptsPanel.js:
148267        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
148268        * inspector/front-end/StylesPanel.js:
148269        (WebInspector.InspectorStyleSource):
148270        * inspector/front-end/StylesSidebarPane.js:
148271        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
148272        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
148273        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
148274        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
148275
1482762012-05-24  Robin Cao  <robin.cao@torchmobile.com.cn>
148277
148278        [BlackBerry] Possible deadlock in the WebGL code path
148279        https://bugs.webkit.org/show_bug.cgi?id=87375
148280
148281        Reviewed by Rob Buis.
148282
148283        Fix a deadlock happening in the WebGL code path. The mutex is locked
148284        but is not unlocked afterword. Also fix a possible double delete,
148285        the mutex m_frontBufferLock will be destroyed in the base class.
148286
148287        Covered by tests in fast/canvas/webgl.
148288
148289        * platform/graphics/blackberry/LayerCompositingThread.cpp:
148290        (WebCore::LayerCompositingThread::releaseTextureResources):
148291        * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
148292        (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
148293
1482942012-05-24  Ian Vollick  <vollick@chromium.org>
148295
148296        [chromium] Forcibly sync running animations in the waiting state when synchronized start times are needed.
148297        https://bugs.webkit.org/show_bug.cgi?id=87153
148298
148299        Reviewed by James Robinson.
148300
148301        Unit test: CCLayerAnimationControllerTest.ForceSyncWhenSynchronizedStartTimeNeeded
148302
148303        * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
148304        (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
148305
1483062012-05-24  Ilya Tikhonovsky  <loislo@chromium.org>
148307
148308        Web Inspector: convert HeapSnapshotGridNode._provider into getter.
148309        https://bugs.webkit.org/show_bug.cgi?id=87382
148310
148311        I found that we create a provider for child nodes for the each DataGrid node in advance.
148312        It cost us one async call to the HeapSnapshot's worker per each such the node.
148313        I converted the property into the getter which is initializing the provider lazily.
148314
148315        Reviewed by Yury Semikhatsky.
148316
148317        * inspector/front-end/HeapSnapshot.js:
148318        * inspector/front-end/HeapSnapshotGridNodes.js:
148319        (WebInspector.HeapSnapshotGridNode):
148320        (WebInspector.HeapSnapshotGridNode.prototype.createProvider):
148321        (WebInspector.HeapSnapshotGridNode.prototype._provider):
148322        (WebInspector.HeapSnapshotGridNode.prototype.dispose):
148323        (WebInspector.HeapSnapshotGridNode.prototype._populate):
148324        (WebInspector.HeapSnapshotGridNode.prototype.expandWithoutPopulate):
148325        (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.serializeNextChunk):
148326        (WebInspector.HeapSnapshotGridNode.prototype.sort):
148327        (WebInspector.HeapSnapshotGenericObjectNode):
148328        (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren):
148329        (WebInspector.HeapSnapshotObjectNode):
148330        (WebInspector.HeapSnapshotInstanceNode):
148331        (WebInspector.HeapSnapshotConstructorNode):
148332        (WebInspector.HeapSnapshotConstructorNode.prototype.createProvider):
148333        (WebInspector.HeapSnapshotConstructorNode.prototype.revealNodeBySnapshotObjectId):
148334        (WebInspector.HeapSnapshotDiffNode):
148335        (WebInspector.HeapSnapshotDiffNode.prototype.createProvider):
148336        (WebInspector.HeapSnapshotDominatorObjectNode):
148337        (WebInspector.HeapSnapshotDominatorObjectNode.prototype.createProvider):
148338        (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId):
148339
1483402012-05-24  Rakesh KN  <rakesh.kn@motorola.com>
148341
148342        Filter for RadioNodeList should be case sensitive.
148343        https://bugs.webkit.org/show_bug.cgi?id=87369
148344
148345        Reviewed by Kent Tamura.
148346
148347        Element's id/name attribute matching criteria is case sensitive now.
148348
148349        Modified existing test.
148350
148351        * html/RadioNodeList.cpp:
148352        (WebCore::RadioNodeList::nodeMatches):
148353        Element matching criteria is case sensitive.
148354
1483552012-05-23  Yury Semikhatsky  <yurys@chromium.org>
148356
148357        Web Inspector: add a command to InspectorMemoryAgent for getting process memory break down
148358        https://bugs.webkit.org/show_bug.cgi?id=87263
148359
148360        Reviewed by Pavel Feldman.
148361
148362        Introduced new protocol command Memory.getProcessMemoryDistribution which returns
148363        memory distribution for the inspected process. Currently only JS allocated and used
148364        heap size is included.
148365
148366        * inspector/Inspector.json:
148367        * inspector/InspectorMemoryAgent.cpp:
148368        (WebCore::jsHeapInfo):
148369        (WebCore):
148370        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
148371        * inspector/InspectorMemoryAgent.h:
148372        (InspectorMemoryAgent):
148373        * platform/chromium/PlatformSupport.h:
148374        (PlatformSupport):
148375
1483762012-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>
148377
148378        SVGZoomAndPan constants are missing from window object
148379        https://bugs.webkit.org/show_bug.cgi?id=15494
148380
148381        Reviewed by Rob Buis.
148382
148383        Generate the SVGZoomAndPanConstructor, so that the constants defined in the IDL
148384        can be reached from the bindings. Provide a stub-implementation of ref/deref
148385        that's never used, as we don't actually use JSSVGZoomAndPan which needs this, but
148386        only the JSSVGZoomAndPanConstructor.
148387
148388        Add a new IDL flag "SuppressToJSObject" which disables generation of toJS/toV8
148389        methods for classes that are only used in SVGs interfaces via multiple inheritance.
148390        This affects: SVGFitToViewBox, SVGTests, SVGLangSapce, SVGExternalResourcesRequired, etc.
148391
148392        Unlike those classes SVGZoomAndPan defines constants, and thus needs a generated Constructor.
148393        That requires us to build JSSVGZoomAndPan.* (JSSVGFitToViewBox/etc. is generated, but not built!).
148394        Unfortunately this causes compilation problems on Windows, as it builds all sources in a single-file.
148395        MSVC can't decide whether it should call toJS(Node*) or toJS(SVGZoomAndPan*) for a SVGSVGElement.
148396        To avoid these problems stop generating toJS/toV8 completely for all SVG MI types. They were
148397        never used before, so there's no point in actually generating them, as it's now causing problems.
148398
148399        This is a preparation towards bug 15495, which covers implementing
148400        SVGSVGElement.currentView and the SVGViewSpec interface.
148401
148402        No new tests. The SVGZoomAndPan constructor is covered by existing tests, now that its enabled.
148403
148404        * CMakeLists.txt:
148405        * DerivedSources.cpp:
148406        * DerivedSources.pri:
148407        * GNUmakefile.list.am:
148408        * WebCore.gyp/WebCore.gyp:
148409        * WebCore.vcproj/WebCore.vcproj:
148410        * WebCore.xcodeproj/project.pbxproj:
148411        * bindings/scripts/CodeGeneratorJS.pm:
148412        (ShouldGenerateToJSDeclaration):
148413        (ShouldGenerateToJSImplementation):
148414        (GenerateHeader):
148415        (GenerateImplementation):
148416        * bindings/scripts/CodeGeneratorV8.pm:
148417        (GenerateHeader):
148418        * bindings/scripts/IDLAttributes.txt:
148419        * gyp/WebCore.gyp:
148420        * page/DOMWindow.idl:
148421        * svg/SVGDocument.cpp:
148422        (WebCore::SVGDocument::zoomAndPanEnabled):
148423        * svg/SVGExternalResourcesRequired.idl:
148424        * svg/SVGFitToViewBox.idl:
148425        * svg/SVGLangSpace.idl:
148426        * svg/SVGLocatable.idl:
148427        * svg/SVGRenderingIntent.idl:
148428        * svg/SVGSVGElement.cpp:
148429        (WebCore::SVGSVGElement::SVGSVGElement):
148430        (WebCore::SVGSVGElement::parseAttribute):
148431        (WebCore::SVGSVGElement::viewBoxToViewTransform):
148432        (WebCore::SVGSVGElement::setupInitialView):
148433        (WebCore::SVGSVGElement::inheritViewAttributes):
148434        * svg/SVGSVGElement.h:
148435        (SVGSVGElement):
148436        (WebCore::SVGSVGElement::useCurrentView):
148437        (WebCore::SVGSVGElement::setUseCurrentView):
148438        (WebCore::SVGSVGElement::zoomAndPan):
148439        (WebCore::SVGSVGElement::setZoomAndPan):
148440        * svg/SVGStylable.idl:
148441        * svg/SVGTests.idl:
148442        * svg/SVGURIReference.idl:
148443        * svg/SVGUnitTypes.idl:
148444        * svg/SVGViewElement.cpp:
148445        (WebCore::SVGViewElement::SVGViewElement):
148446        (WebCore::SVGViewElement::parseAttribute):
148447        * svg/SVGViewElement.h:
148448        (SVGViewElement):
148449        (WebCore::SVGViewElement::zoomAndPan):
148450        (WebCore::SVGViewElement::setZoomAndPan):
148451        * svg/SVGViewSpec.cpp:
148452        (WebCore::SVGViewSpec::SVGViewSpec):
148453        (WebCore::SVGViewSpec::setTransformString):
148454        (WebCore::SVGViewSpec::parseViewSpec):
148455        * svg/SVGViewSpec.h:
148456        (SVGViewSpec):
148457        (WebCore::SVGViewSpec::transformBaseValue):
148458        (WebCore::SVGViewSpec::zoomAndPan):
148459        (WebCore::SVGViewSpec::setZoomAndPanBaseValue):
148460        * svg/SVGZoomAndPan.cpp:
148461        (WebCore::SVGZoomAndPan::isKnownAttribute):
148462        (WebCore::SVGZoomAndPan::addSupportedAttributes):
148463        (WebCore):
148464        (WebCore::SVGZoomAndPan::parseZoomAndPan):
148465        (WebCore::SVGZoomAndPan::ref):
148466        (WebCore::SVGZoomAndPan::deref):
148467        (WebCore::SVGZoomAndPan::setZoomAndPan):
148468        * svg/SVGZoomAndPan.h:
148469        (SVGZoomAndPan):
148470        (WebCore::SVGZoomAndPan::parseFromNumber):
148471        (WebCore::SVGZoomAndPan::parseAttribute):
148472        (WebCore::SVGZoomAndPan::zoomAndPan):
148473        * svg/SVGZoomAndPan.idl:
148474
1484752012-05-24  Hironori Bono  <hbono@chromium.org>
148476
148477        Enable grammar checking on Chromium when we paste text.
148478        https://bugs.webkit.org/show_bug.cgi?id=74393
148479
148480        Reviewed by Hajime Morita.
148481
148482        This change enables grammar checking on Chromium and implements a mock grammar
148483        checker to fix a failing test.
148484
148485        Test: editing/spelling/grammar-markers.html
148486
148487        * platform/graphics/skia/GraphicsContextSkia.cpp:
148488        (WebCore::GraphicsContext::drawLineForDocumentMarker): render grammar markers in gray on Windows and Linux or in green on Mac.
148489
1484902012-05-17  Andrey Kosyakov  <caseq@chromium.org>
148491
148492        Web Inspector: add inspector instrumentation interface for compositing
148493        https://bugs.webkit.org/show_bug.cgi?id=83842
148494
148495        Reviewed by Pavel Feldman.
148496
148497        - added instrumentation methods to mark start/end of layer compositing;
148498        - added associated timeline record type (CompositeLayers);
148499        - plumbed the calls from instrumentation up to the timeline panel;
148500        - actual call-sites are platform-specific and will come as separate patches.
148501
148502        * inspector/InspectorInstrumentation.cpp:
148503        (WebCore::InspectorInstrumentation::willCompositeImpl):
148504        (WebCore):
148505        (WebCore::InspectorInstrumentation::didCompositeImpl):
148506        * inspector/InspectorInstrumentation.h:
148507        (InspectorInstrumentation):
148508        (WebCore::InspectorInstrumentation::willComposite):
148509        (WebCore):
148510        (WebCore::InspectorInstrumentation::didComposite):
148511        * inspector/InspectorTimelineAgent.cpp:
148512        (TimelineRecordType):
148513        (WebCore::InspectorTimelineAgent::willComposite):
148514        (WebCore):
148515        (WebCore::InspectorTimelineAgent::didComposite):
148516        * inspector/InspectorTimelineAgent.h:
148517        (InspectorTimelineAgent):
148518        * inspector/front-end/TimelineModel.js:
148519        * inspector/front-end/TimelinePresentationModel.js:
148520        (WebInspector.TimelinePresentationModel.recordStyle):
148521
1485222012-05-24  Ilya Tikhonovsky  <loislo@chromium.org>
148523
148524        Unreviewed Web Inspector: remove obsolete isDetailedSnapshot method from HeapSnapshotView.
148525
148526        * inspector/front-end/HeapSnapshotView.js:
148527
1485282012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>
148529
148530        Web Inspector: localStorage items are not updated when the storage changes
148531        https://bugs.webkit.org/show_bug.cgi?id=83012
148532
148533        Reviewed by Pavel Feldman.
148534
148535        Renamed the inspector protocol UpdateDOMStorage to domStorageUpdated.
148536        Instrumented StorageEventDispatcher to send the update event to the
148537        front-end. Also removed the way DOM Storage Agent used to listen for
148538        the storage events. Added new test to verify the update notifications.
148539
148540        Test: inspector/storage-panel-dom-storage-update.html
148541
148542        * dom/EventListener.h:
148543        * inspector/Inspector.json:
148544        * inspector/InspectorDOMStorageAgent.cpp:
148545        (WebCore):
148546        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
148547        (WebCore::InspectorDOMStorageAgent::storageId):
148548        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
148549        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
148550        * inspector/InspectorDOMStorageAgent.h:
148551        (InspectorDOMStorageAgent):
148552        * inspector/InspectorDOMStorageResource.cpp:
148553        (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
148554        (WebCore::InspectorDOMStorageResource::isSameHostAndType):
148555        (WebCore::InspectorDOMStorageResource::unbind):
148556        * inspector/InspectorDOMStorageResource.h:
148557        (WebCore):
148558        (InspectorDOMStorageResource):
148559        (WebCore::InspectorDOMStorageResource::create):
148560        (WebCore::InspectorDOMStorageResource::id):
148561        (WebCore::InspectorDOMStorageResource::storageArea):
148562        (WebCore::InspectorDOMStorageResource::frame):
148563        * inspector/InspectorInstrumentation.cpp:
148564        (WebCore::InspectorInstrumentation::didDispatchDOMStorageEventImpl):
148565        (WebCore):
148566        * inspector/InspectorInstrumentation.h:
148567        (InspectorInstrumentation):
148568        (WebCore::InspectorInstrumentation::didUseDOMStorage):
148569        (WebCore):
148570        (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
148571        * inspector/front-end/DOMStorage.js:
148572        (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
148573        * inspector/front-end/ResourcesPanel.js:
148574        (WebInspector.ResourcesPanel.prototype.domStorageUpdated):
148575        * storage/StorageEventDispatcher.cpp:
148576        (WebCore::StorageEventDispatcher::dispatch):
148577
1485782012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
148579
148580        Web Inspector: introduce console proxy object for HeapSnapshot worker.
148581        https://bugs.webkit.org/show_bug.cgi?id=87346
148582
148583        There is no console object in html5 workers at the moment.
148584        This makes me sad when I'm troubleshooting the HeapSnapshot stuff.
148585        I wrote a simplest proxy object which sends the log, info and error messages
148586        to the WebInspector window.
148587
148588        Reviewed by Pavel Feldman.
148589
148590        * inspector/front-end/HeapSnapshotProxy.js:
148591        (WebInspector.HeapSnapshotRealWorker.prototype._messageReceived):
148592        * inspector/front-end/HeapSnapshotWorker.js:
148593        (WebInspector.WorkerConsole):
148594        (WebInspector.WorkerConsole.prototype.log):
148595        (WebInspector.WorkerConsole.prototype.error):
148596        (WebInspector.WorkerConsole.prototype.info):
148597        (WebInspector.WorkerConsole.prototype._postMessage):
148598
1485992012-05-24  Shinya Kawanaka  <shinyak@chromium.org>
148600
148601        Elements in Shadow DOM are not resizable.
148602        https://bugs.webkit.org/show_bug.cgi?id=87342
148603
148604        Reviewed by Ryosuke Niwa.
148605
148606        In RenderLayer::resize(), shadowAncestorNode() was used but if the ancestor node is used,
148607        it is not possible to resize elements in Shadow DOM.
148608
148609        The comments said it is necessary for textarea, however actually it is not necessary now.
148610        Existing test (fast/css/resize-corner-tracking) covers it.
148611
148612        Test: fast/dom/shadow/resize-in-shadow-dom.html
148613
148614        * rendering/RenderLayer.cpp:
148615        (WebCore::RenderLayer::resize):
148616
1486172012-05-24  Antti Koivisto  <antti@apple.com>
148618
148619        Move StyleSheetContents to a separate file
148620        https://bugs.webkit.org/show_bug.cgi?id=87354
148621
148622        Reviewed by Eric Seidel.
148623
148624        Move StyleSheetContents class to StyleSheetContents.h/cpp.
148625
148626        * CMakeLists.txt:
148627        * GNUmakefile.list.am:
148628        * Target.pri:
148629        * WebCore.gypi:
148630        * WebCore.vcproj/WebCore.vcproj:
148631        * WebCore.xcodeproj/project.pbxproj:
148632        * css/CSSFontFaceSrcValue.cpp:
148633        * css/CSSGrammar.y:
148634        * css/CSSImportRule.cpp:
148635        * css/CSSParser.cpp:
148636        * css/CSSPrimitiveValue.cpp:
148637        * css/CSSRule.cpp:
148638        * css/CSSStyleSheet.cpp:
148639        (WebCore::CSSStyleSheet::create):
148640        (WebCore::CSSStyleSheet::href):
148641        (WebCore):
148642        (WebCore::CSSStyleSheet::baseURL):
148643        (WebCore::CSSStyleSheet::isLoading):
148644        * css/CSSStyleSheet.h:
148645        (WebCore):
148646        (CSSStyleSheet):
148647        * css/StylePropertySet.cpp:
148648        * css/StyleResolver.cpp:
148649        * css/StyleSheetContents.cpp: Copied from css/CSSStyleSheet.cpp.
148650        (WebCore):
148651        * css/StyleSheetContents.h: Copied from css/CSSStyleSheet.h.
148652        (WebCore):
148653        * dom/DOMImplementation.cpp:
148654        (WebCore::XMLMIMETypeRegExp::XMLMIMETypeRegExp):
148655        * dom/Document.cpp:
148656        * dom/ProcessingInstruction.cpp:
148657        * dom/StyleElement.cpp:
148658        * html/HTMLLinkElement.cpp:
148659        * html/HTMLStyleElement.cpp:
148660        * inspector/InspectorStyleSheet.cpp:
148661        * loader/cache/CachedCSSStyleSheet.cpp:
148662        * page/PageSerializer.cpp:
148663
1486642012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
148665
148666        [Qt] Buildfix for the minimal build because the r118197 broke it.
148667        https://bugs.webkit.org/show_bug.cgi?id=87096
148668
148669        Reviewed by Csaba Osztrogonác.
148670
148671        * plugins/PluginData.cpp:
148672        (WebCore):
148673        (WebCore::PluginData::refresh):
148674        (WebCore::PluginData::initPlugins):
148675
1486762012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
148677
148678        Unreviewed: Web Inspector single line fix for r118162.
148679
148680        * inspector/front-end/HeapSnapshotDataGrids.js:
148681        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._populateChildren):
148682
1486832012-05-23  Lu Guanqun  <guanqun.lu@intel.com>
148684
148685        sort the array 'non_wrapper_types'
148686        https://bugs.webkit.org/show_bug.cgi?id=87335
148687
148688        Reviewed by Kentaro Hara.
148689
148690        * bindings/scripts/CodeGeneratorV8.pm:
148691
1486922012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
148693
148694        Document.elementFromPoint exposes inner element of Shadow DOM.
148695        https://bugs.webkit.org/show_bug.cgi?id=87235
148696
148697        Reviewed by Dimitri Glazkov.
148698
148699        Document::elementFromPoint didn't consider nested Shadow DOM.
148700        The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
148701
148702        Test: fast/dom/shadow/element-from-point-in-nested-shadow.html
148703
148704        * dom/Document.cpp:
148705        (WebCore::Document::elementFromPoint):
148706
1487072012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
148708
148709        Unreviewed, rolling out r118297.
148710        http://trac.webkit.org/changeset/118297
148711        https://bugs.webkit.org/show_bug.cgi?id=87338
148712
148713        It caused several layout failures on Mac (Requested by
148714        sundiamonde on #webkit).
148715
148716        * rendering/RenderBlock.cpp:
148717        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
148718
1487192012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
148720
148721        Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
148722        https://bugs.webkit.org/show_bug.cgi?id=87231
148723
148724        Reviewed by Dimitri Glazkov.
148725
148726        Document::caretRangeFromPoint didn't consider nested Shadow DOM.
148727        The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
148728
148729        Test: fast/dom/shadow/caret-range-from-point-in-nested-shadow.html
148730
148731        * dom/Document.cpp:
148732        (WebCore::Document::caretRangeFromPoint):
148733
1487342012-05-23  Julien Chaffraix  <jchaffraix@webkit.org>
148735
148736        Crash in RenderTableCol::nextColumn
148737        https://bugs.webkit.org/show_bug.cgi?id=87314
148738
148739        Reviewed by Abhishek Arya.
148740
148741        Tests: fast/table/canvas-column-in-column-group.html
148742               fast/table/columngroup-inside-columngroup.html
148743
148744        The issue comes from elements not abiding by the display property (e.g. canvas). This means
148745        that any renderer with display: table-column would pass the current isChildAllowed check and
148746        would confuse our algorithm to iterate.
148747
148748        We were getting away with allowing those children as table columns or column groups don't
148749        paint themselves but it's better to just not allow such children in the first place.
148750
148751        * rendering/RenderTableCol.cpp:
148752        (WebCore::RenderTableCol::isChildAllowed):
148753        Fixed the logic to only accept proper column renderer (RenderTableCol with display: column
148754        to ignore column-groups). Also removed an unneeded NULL-check.
148755
1487562012-05-23  Jer Noble  <jer.noble@apple.com>
148757
148758        REGRESSION: compositing/video/video-poster.html fails on Mac
148759        https://bugs.webkit.org/show_bug.cgi?id=87199
148760
148761        Reviewed by Maciej Stachowiak.
148762
148763        No new tests; fixes failing compositing/video/video-poster.html test.
148764
148765        Instead of creating the video layer directly, simply allow the layer
148766        to be created in updateStates() by changing the definition of
148767        isReadyForVideoSetup() to bypass the m_isAllowedToRender check if
148768        the player reports a video track is present.  This causes the video layer
148769        to be created and for future calls to prepareForRendering() to result
148770        in calls to mediaPlayerRenderingModeChanged().
148771
148772        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
148773        (WebCore::MediaPlayerPrivateAVFoundation::isReadyForVideoSetup):
148774        (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded):
148775
1487762012-05-23  Nico Weber  <thakis@chromium.org>
148777
148778        [chromium/mac] Unbreak popup menus.
148779        https://bugs.webkit.org/show_bug.cgi?id=87325
148780
148781        Reviewed by David Levin.
148782
148783        http://svn.webkit.org/repository/webkit/trunk@117607 added this function, but the
148784        Chromium/Mac build doesn't use the file added in that change and hence didn't have
148785        the category method.. Adding it doesn't help, as the category calls a
148786        10.7-only function. Just don't use the category for chromium/mac. Fixes
148787        http://crbug.com/129418
148788
148789        * platform/mac/WebCoreNSCellExtras.h:
148790
1487912012-05-23  Ojan Vafai  <ojan@chromium.org>
148792
148793        add back the ability to disable flexbox
148794        https://bugs.webkit.org/show_bug.cgi?id=87147
148795
148796        Reviewed by Tony Chang.
148797
148798        * Configurations/FeatureDefines.xcconfig:
148799        * css/CSSParser.cpp:
148800        (WebCore::isValidKeywordPropertyAndValue):
148801
1488022012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
148803
148804        [Shadow] mousewheel event isn't fired on nodes in Shadow DOM.
148805        https://bugs.webkit.org/show_bug.cgi?id=87218
148806
148807        Reviewed by Dimitri Glazkov.
148808
148809        EventHander::handleWheelEvent re-targets an event to a shadow ancestor node,
148810        however it should be done by adjusting event target. So we don't need to have it.
148811
148812        Tests: fast/dom/shadow/wheel-event-in-shadow-dom.html
148813               fast/dom/shadow/wheel-event-on-input-in-shadow-dom.html
148814
148815        * page/EventHandler.cpp:
148816        (WebCore::EventHandler::handleWheelEvent):
148817
1488182012-05-23  Huang Dongsung  <luxtella@company100.net>
148819
148820        Remove an unused setter in CachedResource.h.
148821        https://bugs.webkit.org/show_bug.cgi?id=87324
148822
148823        CachedResource::setInLiveDecodedResourcesList was defined in r24925, but it has
148824        been unused.
148825
148826        Reviewed by Darin Adler.
148827
148828        * loader/cache/CachedResource.h:
148829
1488302012-05-23  Hayato Ito  <hayato@chromium.org>
148831
148832        Adjust a target node of a mouse event correctly when a distributed text node is clicked.
148833        https://bugs.webkit.org/show_bug.cgi?id=86999
148834
148835        Reviewed by Dimitri Glazkov.
148836
148837        Make EventHandler::updateMouseEventTargetNode() be aware of shadow dom subtree
148838        so that an insertion point can receive an event when a distributed text node is clicked.
148839
148840        Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
148841
148842        * page/EventHandler.cpp:
148843        (WebCore::EventHandler::updateMouseEventTargetNode):
148844
1488452012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
148846
148847        [Shadow] drop event is not fired on nodes in Shadow DOM
148848        https://bugs.webkit.org/show_bug.cgi?id=85774
148849
148850        Reviewed by Dimitri Glazkov.
148851
148852        EventHander::updateDragAndDrop re-targets an event to a shadow ancestor node,
148853        however it should be done by adjusting event target. So we don't need to have it.
148854
148855        Tests: fast/dom/shadow/drop-event-for-input-in-shadow.html
148856               fast/dom/shadow/drop-event-in-shadow.html
148857
148858        * page/EventHandler.cpp:
148859        (WebCore::EventHandler::updateDragAndDrop):
148860
1488612012-05-23  Emil A Eklund  <eae@chromium.org>
148862
148863        REGRESSION (115573): Incorrect rounding of margins for floats
148864        https://bugs.webkit.org/show_bug.cgi?id=87319
148865
148866        Reviewed by Eric Seidel.
148867
148868        In RenderBlock::computeInlinePreferredLogicalWidths we used a float to
148869        accumulate margins for floating children while the children themselves
148870        represent their margins as LayoutUnits. Due to lack of rounding this can
148871        cause the block to be too small at certain certain zoom levels, causing
148872        unwanted wrapping. 
148873
148874        This patch changes computeInlinePreferredLogicalWidths to use a
148875        LayoutUnit to accumulate the margins and thus ensures that the margin
148876        values are rounded the same way.
148877
148878        Test: fast/block/float/floats-with-margin-should-not-wrap.html
148879
148880        * rendering/RenderBlock.cpp:
148881        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
148882
1488832012-05-23  Huang Dongsung  <luxtella@company100.net>
148884
148885        Remove unused declarations in MemoryCache.h
148886        https://bugs.webkit.org/show_bug.cgi?id=87323
148887
148888        It is originated from r75912.
148889
148890        Reviewed by Darin Adler.
148891
148892        * loader/cache/MemoryCache.h:
148893
1488942012-05-23  Eric Seidel  <eric@webkit.org>
148895
148896        Add seamless layout code (and pass most of the remaining seamless tests)
148897        https://bugs.webkit.org/show_bug.cgi?id=86608
148898
148899        Reviewed by Ojan Vafai.
148900
148901        This patch contains almost all the layout changes needed for seamless iframes.
148902        I removed the scroll-bar avoiding code at the last moment, as it didn't
148903        work for platforms other than mac-lion.  I'll add that, as well as the
148904        HTMLIFrameElement.seamless idl attribute in a follow-up patch.
148905
148906        Seamless iframes piggy-back a bit on the existing frame-flattening
148907        logic, however seamless is different from frame-flattening in a few ways:
148908        - Frame flattening can only ever make an iframe larger (seamless just behaves like a normal div).
148909        - Frame flattening disables scrollbars (seamless frames behave like normal overflow: auto divs).
148910        - Seamless only has to work with iframes (flattening works with frame/frameset as well).
148911        - Seamless support shrink-wrap size negotiation when the iframe is inline.
148912
148913        Test: fast/frames/seamless/seamless-percent-height.html
148914
148915        * css/StyleResolver.cpp:
148916        (WebCore::StyleResolver::adjustRenderStyle): map inline -> inline-block for seamless iframes.
148917        * dom/Document.cpp:
148918        (WebCore::Document::scheduleStyleRecalc):
148919         - Seamless iframes don't manage their own style recalc.
148920        (WebCore::Document::recalcStyle):
148921         - We should make sure our parent is resolved before we are, but currently that causes some tests to crash
148922           I don't have a test to demonstrate this need yet, as presumably it's fulfilled through other codepaths atm.
148923        * page/FrameView.cpp:
148924        (WebCore::FrameView::scheduleRelayout): Do the cheaper check first.
148925        (WebCore::FrameView::isInChildFrameWithFrameFlattening): Make frameview layout abort child layouts like how frame flattening does.
148926        * rendering/RenderBox.h:
148927        (WebCore::RenderBox::stretchesToViewport): Disable the stretch-to-viewport quirk for seamless iframes (it makes no sense and breaks the layout code).
148928        * rendering/RenderIFrame.cpp:
148929        (WebCore::RenderIFrame::computeLogicalHeight):
148930         - This function is needed for the child document to participate in the normal block shrink-wrap algorithm.
148931           Thankfully all the shrink-wrap logic is in RenderBox instead of RenderBlock. In the future we may make
148932           RenderIframe a RenderBlock for the seamless case. We may just split RenderIframe into two renderers.
148933        (WebCore::RenderIFrame::computeLogicalWidth):
148934        (WebCore::RenderIFrame::shouldComputeSizeAsReplaced):
148935         - seamless iframes behave like blocks, not inline replaced elements.
148936        (WebCore):
148937        (WebCore::RenderIFrame::isInlineBlockOrInlineTable):
148938         - Behave like an inline-block when marked inline.
148939        (WebCore::RenderIFrame::minPreferredLogicalWidth):
148940         - When asked for our pref widths, return those of our child document.
148941        (WebCore::RenderIFrame::maxPreferredLogicalWidth):
148942        (WebCore::RenderIFrame::isSeamless): helper function
148943        (WebCore::RenderIFrame::contentRootRenderer): helper function
148944        (WebCore::RenderIFrame::flattenFrame): seamless iframes never use the frame-flattening feature.
148945        (WebCore::RenderIFrame::layoutSeamlessly): The guts of seamless layout.
148946        (WebCore::RenderIFrame::layout):
148947        * rendering/RenderIFrame.h:
148948        (WebCore):
148949        (RenderIFrame):
148950
1489512012-05-23  Rafael Brandao  <rafael.lobo@openbossa.org>
148952
148953        [Qt] GraphicsContext should avoid converting rotation angle to degrees
148954        https://bugs.webkit.org/show_bug.cgi?id=87317
148955
148956        Reviewed by Noam Rosenthal.
148957
148958        The angle for rotate is already in radians, so we should take advantage of it
148959        by using QTransform::rotateRadians, rather than converting it back internally.
148960
148961        * platform/graphics/qt/GraphicsContextQt.cpp:
148962        (WebCore::GraphicsContext::rotate):
148963
1489642012-05-23  David Tseng  <dtseng@google.com>
148965
148966        AX: Prevents assertion from potentially dereferencing null pointer.
148967        https://bugs.webkit.org/show_bug.cgi?id=87290
148968
148969        Reviewed by Chris Fleizach.
148970
148971        Changes to assertions. Coverage by existing tests.
148972
148973        * accessibility/AccessibilityTable.cpp:
148974        (WebCore::AccessibilityTable::cellForColumnAndRow):
148975
1489762012-05-23  Tony Chang  <tony@chromium.org>
148977
148978        auto margins on flexbox should allocate space in the cross direction
148979        https://bugs.webkit.org/show_bug.cgi?id=86913
148980
148981        Reviewed by Ojan Vafai.
148982
148983        Test: css3/flexbox/auto-margins.html
148984
148985        * rendering/RenderFlexibleBox.cpp:
148986        (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis):
148987        (WebCore):
148988        (WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis):
148989        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): If we have flex-align: baseline and auto margins, we ignore flex-align: baseline.
148990        (WebCore::RenderFlexibleBox::alignChildren): auto margins apply before flex-align.
148991        * rendering/RenderFlexibleBox.h:
148992
1489932012-05-23  Kentaro Hara  <haraken@chromium.org>
148994
148995        Unreviewed, rolling out r118120.
148996        http://trac.webkit.org/changeset/118120
148997        https://bugs.webkit.org/show_bug.cgi?id=87193
148998
148999        some LayoutTests crash since the patch passes a NULL to
149000        Null(isolate)
149001
149002        * bindings/scripts/CodeGeneratorV8.pm:
149003        (GenerateHeader):
149004        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
149005        (WebCore::toV8):
149006        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
149007        (WebCore::toV8):
149008        * bindings/scripts/test/V8/V8TestEventConstructor.h:
149009        (WebCore::toV8):
149010        * bindings/scripts/test/V8/V8TestEventTarget.h:
149011        (WebCore::toV8):
149012        * bindings/scripts/test/V8/V8TestException.h:
149013        (WebCore::toV8):
149014        * bindings/scripts/test/V8/V8TestInterface.h:
149015        (WebCore::toV8):
149016        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
149017        (WebCore::toV8):
149018        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
149019        (WebCore::toV8):
149020        * bindings/scripts/test/V8/V8TestNode.h:
149021        (WebCore::toV8):
149022        * bindings/scripts/test/V8/V8TestObj.h:
149023        (WebCore::toV8):
149024        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
149025        (WebCore::toV8):
149026
1490272012-05-23  Kentaro Hara  <haraken@chromium.org>
149028
149029        Unreviewed, rolling out r118129.
149030        http://trac.webkit.org/changeset/118129
149031        https://bugs.webkit.org/show_bug.cgi?id=87202
149032
149033        some LayoutTests crash since the patch passes a NULL to
149034        Null(isolate)
149035
149036        * bindings/scripts/CodeGeneratorV8.pm:
149037        (GenerateNormalAttrGetter):
149038        (GenerateFunctionCallback):
149039        (NativeToJSValue):
149040        * bindings/scripts/test/V8/V8TestObj.cpp:
149041        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
149042        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
149043        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
149044        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
149045        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
149046        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
149047        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
149048
1490492012-05-23  Kentaro Hara  <haraken@chromium.org>
149050
149051        Unreviewed, rolling out r118133.
149052        http://trac.webkit.org/changeset/118133
149053        https://bugs.webkit.org/show_bug.cgi?id=87207
149054
149055        some LayoutTests crash since the patch passes a NULL to
149056        Null(isolate)
149057
149058        * bindings/v8/custom/V8BlobCustom.cpp:
149059        (WebCore::toV8):
149060        * bindings/v8/custom/V8CSSRuleCustom.cpp:
149061        (WebCore::toV8):
149062        * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
149063        (WebCore::toV8):
149064        * bindings/v8/custom/V8CSSValueCustom.cpp:
149065        (WebCore::toV8):
149066        * bindings/v8/custom/V8ClipboardCustom.cpp:
149067        (WebCore::V8Clipboard::typesAccessorGetter):
149068        * bindings/v8/custom/V8CoordinatesCustom.cpp:
149069        (WebCore::V8Coordinates::altitudeAccessorGetter):
149070        (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
149071        (WebCore::V8Coordinates::headingAccessorGetter):
149072        (WebCore::V8Coordinates::speedAccessorGetter):
149073        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
149074        (WebCore::toV8):
149075        * bindings/v8/custom/V8DOMTokenListCustom.cpp:
149076        (WebCore::toV8):
149077        * bindings/v8/custom/V8DOMWindowCustom.cpp:
149078        (WebCore::toV8):
149079        * bindings/v8/custom/V8DataViewCustom.cpp:
149080        (WebCore::toV8):
149081        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
149082        (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
149083        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
149084        (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
149085        (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
149086        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
149087        (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
149088        (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
149089        (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
149090        (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
149091        * bindings/v8/custom/V8DocumentCustom.cpp:
149092        (WebCore::toV8):
149093        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
149094        (WebCore::V8Document::locationAccessorGetter):
149095        * bindings/v8/custom/V8EntryCustom.cpp:
149096        (WebCore::toV8):
149097        * bindings/v8/custom/V8EntrySyncCustom.cpp:
149098        (WebCore::toV8):
149099        * bindings/v8/custom/V8EventCustom.cpp:
149100        (WebCore::toV8):
149101        * bindings/v8/custom/V8Float32ArrayCustom.cpp:
149102        (WebCore::toV8):
149103        * bindings/v8/custom/V8Float64ArrayCustom.cpp:
149104        (WebCore::toV8):
149105        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
149106        (WebCore::V8HTMLCanvasElement::getContextCallback):
149107        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
149108        (WebCore::toV8):
149109
1491102012-05-23  Kentaro Hara  <haraken@chromium.org>
149111
149112        Unreviewed, rolling out r118134.
149113        http://trac.webkit.org/changeset/118134
149114        https://bugs.webkit.org/show_bug.cgi?id=87209
149115
149116        some LayoutTests crash since the patch passes a NULL to
149117        Null(isolate)
149118
149119        * bindings/v8/custom/V8HTMLElementCustom.cpp:
149120        (WebCore::toV8Object):
149121        (WebCore::toV8):
149122        * bindings/v8/custom/V8HistoryCustom.cpp:
149123        (WebCore::V8History::stateAccessorGetter):
149124        * bindings/v8/custom/V8IDBAnyCustom.cpp:
149125        (WebCore::toV8):
149126        * bindings/v8/custom/V8IDBKeyCustom.cpp:
149127        (WebCore::toV8):
149128        * bindings/v8/custom/V8ImageDataCustom.cpp:
149129        (WebCore::toV8):
149130        * bindings/v8/custom/V8Int16ArrayCustom.cpp:
149131        (WebCore::toV8):
149132        * bindings/v8/custom/V8Int32ArrayCustom.cpp:
149133        (WebCore::toV8):
149134        * bindings/v8/custom/V8Int8ArrayCustom.cpp:
149135        (WebCore::toV8):
149136        * bindings/v8/custom/V8LocationCustom.cpp:
149137        (WebCore::toV8):
149138        * bindings/v8/custom/V8MessageEventCustom.cpp:
149139        (WebCore::V8MessageEvent::dataAccessorGetter):
149140        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
149141        (WebCore::toV8):
149142        * bindings/v8/custom/V8NodeCustom.cpp:
149143        (WebCore::V8Node::insertBeforeCallback):
149144        (WebCore::V8Node::replaceChildCallback):
149145        (WebCore::V8Node::removeChildCallback):
149146        (WebCore::V8Node::appendChildCallback):
149147        (WebCore::toV8Slow):
149148        * bindings/v8/custom/V8PopStateEventCustom.cpp:
149149        (WebCore::V8PopStateEvent::stateAccessorGetter):
149150        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
149151        (WebCore::V8SQLResultSetRowList::itemCallback):
149152        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
149153        (WebCore::toV8):
149154        * bindings/v8/custom/V8SVGElementCustom.cpp:
149155        (WebCore::toV8):
149156        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
149157        (WebCore::toV8):
149158        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
149159        (WebCore::toV8):
149160        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
149161        (WebCore::toV8):
149162        * bindings/v8/custom/V8StyleSheetCustom.cpp:
149163        (WebCore::toV8):
149164        * bindings/v8/custom/V8TrackEventCustom.cpp:
149165        (WebCore::V8TrackEvent::trackAccessorGetter):
149166        * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
149167        (WebCore::toV8):
149168        * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
149169        (WebCore::toV8):
149170        * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
149171        (WebCore::toV8):
149172        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
149173        (WebCore::toV8):
149174        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
149175        (WebCore::toV8Object):
149176        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
149177        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
149178        * bindings/v8/custom/V8WorkerContextCustom.cpp:
149179        (WebCore::toV8):
149180
1491812012-05-23  James Robinson  <jamesr@chromium.org>
149182
149183        Add a Setting to make position:fixed form a new stacking context
149184        https://bugs.webkit.org/show_bug.cgi?id=87186
149185
149186        Reviewed by Adam Barth.
149187
149188        position:fixed elements form a new stacking context in several mobile WebKit ports and in the Qt port always. To
149189        be consistent across devices, we want to try turning it on everywhere. This will likely cause compatibility
149190        issues, so we need a runtime setting in order to stage the change carefully.
149191
149192        Tests: fast/block/positioning/fixed-position-stacking-context.html
149193               fast/block/positioning/fixed-position-stacking-context2.html
149194
149195        * css/StyleResolver.cpp:
149196        (WebCore::StyleResolver::collectMatchingRulesForList):
149197        * page/Settings.cpp:
149198        (WebCore::Settings::Settings):
149199        * page/Settings.h:
149200        (WebCore::Settings::setFixedPositionCreatesStackingContext):
149201        (WebCore::Settings::fixedPositionCreatesStackingContext):
149202        (Settings):
149203        * testing/InternalSettings.cpp:
149204        (WebCore::InternalSettings::InternalSettings):
149205        (WebCore::InternalSettings::restoreTo):
149206        (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
149207        (WebCore):
149208        * testing/InternalSettings.h:
149209        (InternalSettings):
149210        * testing/InternalSettings.idl:
149211
1492122012-05-23  Michael Nordman  <michaeln@google.com>
149213
149214        [chromium] DomStorage events handling needs TLC (3)
149215        https://bugs.webkit.org/show_bug.cgi?id=87031
149216        https://code.google.com/p/chromium/issues/detail?id=128482
149217        Create WebCore::Storage instances as a side effect of attaching storage event handlers.
149218        This allows storage events in chromium to be propagated with less IPC chatter.
149219
149220        Worth noting that in non-chromium ports, creation of the localStorage instance can have
149221        an additional side effect of scheduling a background task to read the area's values
149222        from disk, which given the interest in events is probably a beneficial side effect.
149223
149224        Reviewed by Adam Barth.
149225
149226        No new tests. Existing tests cover this.
149227
149228        * page/DOMWindow.cpp:
149229        (WebCore::didAddStorageEventListener):
149230        (WebCore::DOMWindow::addEventListener):
149231
1492322012-05-23  Michael Saboff  <msaboff@apple.com>
149233
149234        Crash in fast/files/read tests during Garbage Collection
149235        https://bugs.webkit.org/show_bug.cgi?id=87165
149236
149237        Reviewed by Alexey Proskuryakov.
149238
149239        Changed hasPendingActivity() processing to use ActiveDOMObject::hasPendingActivity()
149240        and associated setPendingActivity() / unsetPendingActivity().
149241
149242        Fixed two existing tests with change.
149243
149244        * Modules/filesystem/FileWriter.cpp:
149245        (WebCore::FileWriter::stop):
149246        (WebCore::FileWriter::write):
149247        (WebCore::FileWriter::truncate):
149248        (WebCore::FileWriter::signalCompletion):
149249        * Modules/filesystem/FileWriter.h:
149250        * fileapi/FileReader.cpp:
149251        (WebCore::FileReader::readInternal):
149252        (WebCore::FileReader::doAbort):
149253        (WebCore::FileReader::didFinishLoading):
149254        (WebCore::FileReader::didFail):
149255        * fileapi/FileReader.h:
149256
1492572012-05-23  Abhishek Arya  <inferno@chromium.org>
149258
149259        Crash in run-ins with continuations while moving back to original position.
149260        https://bugs.webkit.org/show_bug.cgi?id=87264
149261
149262        Reviewed by Julien Chaffraix.
149263
149264        Run-in that are now placed in sibling block can break up into continuation
149265        chains when new children are added to it. We cannot easily send them back to their
149266        original place since that requires writing integration logic with RenderInline::addChild
149267        and all other places that might cause continuations to be created (without blowing away
149268        |this|). Disabling this feature for now to prevent crashes.
149269
149270        Test: fast/runin/runin-continuations-crash.html
149271
149272        * rendering/RenderBlock.cpp:
149273        (WebCore::RenderBlock::moveRunInToOriginalPosition):
149274
1492752012-05-23  Abhishek Arya  <inferno@chromium.org>
149276
149277        Crash in RenderInline::linesVisualOverflowBoundingBox.
149278        https://bugs.webkit.org/show_bug.cgi?id=85804
149279
149280        Reviewed by Dave Hyatt.
149281
149282        Defer layout of replaced elements to the next line break function.
149283        We shouldn't do it while we are clearing our inline chilren
149284        lineboxes in full layout mode.
149285
149286        Test: fast/block/inline-children-root-linebox-crash.html
149287
149288        * rendering/RenderBlockLineLayout.cpp:
149289        (WebCore::RenderBlock::layoutInlineChildren):
149290        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
149291
1492922012-05-23  Chris Rogers  <crogers@google.com>
149293
149294        AudioParam must support fan-in (multiple audio connections) (take 2)
149295        https://bugs.webkit.org/show_bug.cgi?id=83610
149296
149297        Reviewed by Kenneth Russell.
149298        
149299        This re-lands bug: https://bugs.webkit.org/show_bug.cgi?id=83610
149300        Now that a fix has been landed: http://trac.webkit.org/changeset/118099
149301
149302        Test: webaudio/audioparam-summingjunction.html
149303
149304        * Modules/webaudio/AudioParam.cpp:
149305        * Modules/webaudio/AudioParam.h:
149306        (WebCore::AudioParam::calculateSampleAccurateValues):
149307        (WebCore::AudioParam::calculateAudioRateSignalValues):
149308        Sums intrinsic parameter value with all audio-rate connections.
149309        
149310        (WebCore::AudioParam::connect):
149311        (WebCore::AudioParam::disconnect):
149312        Support multiple connections.
149313        
149314        (WebCore::AudioParam::hasSampleAccurateValues):
149315        If we have one or more audio-rate connections.
149316        
149317        (WebCore::AudioParam::AudioParam):
149318        AudioParam now sub-classes AudioSummingJunction.
149319
1493202012-05-23  Christophe Dumez  <christophe.dumez@intel.com>
149321
149322        [EFL] webintents/web-intents-delivery-reuse.html is failing on EFL port
149323        https://bugs.webkit.org/show_bug.cgi?id=87092
149324
149325        Reviewed by Adam Barth.
149326
149327        Remove readonly keyword from the webkitIntent attribute. This is
149328        needed otherwise the [Replaceable] extended attribute has not effect
149329        with JSC. This is tested by webintents/web-intents-delivery-reuse.html
149330        test case.
149331
149332        * Modules/intents/DOMWindowIntents.idl:
149333
1493342012-05-23  Abhishek Arya  <inferno@chromium.org>
149335
149336        ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
149337        https://bugs.webkit.org/show_bug.cgi?id=87274
149338
149339        Reviewed by Darin Adler.
149340
149341        Progress bar can't run-in. Prevent it from becoming a run-in, leading to an
149342        unworkable RenderInline.
149343
149344        Test: fast/runin/progress-run-in-crash.html
149345
149346        * html/HTMLProgressElement.cpp:
149347        (WebCore::HTMLProgressElement::didElementStateChange):
149348        * rendering/RenderBlock.cpp:
149349        (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
149350
1493512012-05-23  Andrew Lo  <anlo@rim.com>
149352
149353        [BlackBerry] UI thread unnecessarily blocks on WebKit thread when servicing requestAnimationFrames
149354        https://bugs.webkit.org/show_bug.cgi?id=87289
149355
149356        Reviewed by Antonio Gomes.
149357
149358        requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
149359
149360        If UI thread cannot acquire DisplayRefreshMonitor mutex immediately,
149361        avoid blocking on the mutex, it can trigger the frame change on the next
149362        animation tick instead.
149363
149364        * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
149365        (WebCore::DisplayRefreshMonitor::displayLinkFired):
149366
1493672012-05-23  Alec Flett  <alecflett@chromium.org>
149368
149369        Implement DOM4 DOMError
149370        https://bugs.webkit.org/show_bug.cgi?id=87055
149371
149372        Reviewed by Adam Barth.
149373
149374        Implement the DOMError class and it's IDL interface.
149375
149376        No new tests. Not testable yet, as it's not used.
149377
149378        * WebCore.gypi:
149379        * dom/DOMError.cpp: Added.
149380        (WebCore):
149381        (WebCore::DOMError::DOMError):
149382        * dom/DOMError.h: Added.
149383        (WebCore):
149384        (DOMError):
149385        (WebCore::DOMError::create):
149386        (WebCore::DOMError::name):
149387        * dom/DOMError.idl: Added.
149388
1493892012-05-23  Kenneth Russell  <kbr@google.com>
149390
149391        REGRESSION(117918) - 4 webgl/tex-iomage-and-sub-image-2d-with-image tests failing on Mac bots.
149392        https://bugs.webkit.org/show_bug.cgi?id=87136
149393
149394        Reviewed by Stephen White.
149395
149396        Fixed longstanding bug in GraphicsContext3D constructor in Mac
149397        port, and logic error in tracking of texture bound to unit 0. Also
149398        fixed up Cairo port's constructor by code inspection. This code is
149399        ripe for cleanup; Bug 87198 filed for this.
149400
149401        Covered by existing tests.
149402
149403        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
149404        (WebCore::GraphicsContext3D::GraphicsContext3D):
149405            Initialize missing members.
149406        * platform/graphics/mac/GraphicsContext3DMac.mm:
149407        (WebCore::GraphicsContext3D::GraphicsContext3D):
149408            Correctly initialize m_activeTexture.
149409        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
149410        (WebCore::GraphicsContext3D::bindTexture):
149411            Fix logic error in tracking of texture bound to unit 0.
149412
1494132012-05-23  Dana Jansens  <danakj@chromium.org>
149414
149415        [chromium] Layers on main thread should get a RenderSurface for animating transform only if masksToBounds is true also
149416        https://bugs.webkit.org/show_bug.cgi?id=87184
149417
149418        Reviewed by James Robinson.
149419
149420        Layers on main thread get a RenderSurface if their impl counterpart may
149421        have a RenderSurface due to its animating transform. We currently create
149422        a RenderSurface for all layers with an animating transform and
149423        a descendant that drawsContents. But a RenderSurface on impl also
149424        implies that the layer masksToBounds. So only make a RenderSurface on
149425        main thread when the layer also masksToBounds.
149426
149427        Modified unit test CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy.
149428
149429        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
149430        (WebCore::subtreeShouldRenderToSeparateSurface):
149431
1494322012-05-23  Chris Fleizach  <cfleizach@apple.com>
149433
149434        Regression(r112694): Crash in WebCore::AXObjectCache::postNotification 
149435        https://bugs.webkit.org/show_bug.cgi?id=86029
149436
149437        Reviewed by Abhishek Arya.
149438
149439        Test: accessibility/content-changed-notification-causes-crash.html
149440
149441        * accessibility/AccessibilityObject.h:
149442        (WebCore::AccessibilityObject::isDetached):
149443        (AccessibilityObject):
149444        * accessibility/AccessibilityRenderObject.cpp:
149445        (WebCore::AccessibilityRenderObject::contentChanged):
149446
1494472012-05-23  Robin Dunn  <robin@alldunn.com>
149448
149449        [wx] Fix memory leak in FontHolder.
149450        https://bugs.webkit.org/show_bug.cgi?id=87281
149451
149452        Reviewed by Kevin Ollivier.
149453
149454        * platform/graphics/wx/FontPlatformData.h:
149455
1494562012-05-23  Robin Dunn  <robin@alldunn.com>
149457
149458        [wx] Make sure we do not create a substitute font if the facename is not found.
149459        https://bugs.webkit.org/show_bug.cgi?id=87280
149460
149461        Reviewed by Kevin Ollivier.
149462
149463        * platform/graphics/wx/FontCacheWx.cpp:
149464        (WebCore::FontCache::createFontPlatformData):
149465
1494662012-05-23  Robin Dunn  <robin@alldunn.com>
149467
149468        [wx] Implement transparency layer support.
149469        https://bugs.webkit.org/show_bug.cgi?id=87279
149470
149471        Reviewed by Kevin Ollivier.
149472
149473        * platform/graphics/wx/GraphicsContextWx.cpp:
149474        (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
149475        (WebCore::GraphicsContext::endPlatformTransparencyLayer):
149476        (WebCore::GraphicsContext::supportsTransparencyLayers):
149477
1494782012-05-23  Jer Noble  <jer.noble@apple.com>
149479
149480        GenericClock loses precision due to float->double conversion.
149481        https://bugs.webkit.org/show_bug.cgi?id=87227
149482
149483        Reviewed by Darin Adler.
149484
149485        No new tests; fixes media/media-controller-time.html on Chromium.
149486
149487        Only narrow to float after the entire calculation is complete. This requires now() and m_offset
149488        to be double-precision.
149489
149490        * platform/ClockGeneric.cpp:
149491        (ClockGeneric::currentTime): 
149492        (ClockGeneric::now): Make double-precision.
149493        * platform/ClockGeneric.h:
149494        (ClockGeneric): Make m_offset double-precision.
149495
1494962012-05-22  Jer Noble  <jer.noble@apple.com>
149497
149498        PlatformClockCM has uninitialized m_rate member.
149499        https://bugs.webkit.org/show_bug.cgi?id=87217
149500
149501        Reviewed by Eric Carlson.
149502
149503        Test: media/media-controller-time.html
149504
149505        Initialize the m_rate member to a default of 1 (second-per-second), matching the implementation
149506        of ClockGeneric.
149507
149508        * platform/mac/PlatformClockCM.mm:
149509        (PlatformClockCM::PlatformClockCM):
149510
1495112012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
149512
149513        Unreviewed, rolling out r118096.
149514        http://trac.webkit.org/changeset/118096
149515        https://bugs.webkit.org/show_bug.cgi?id=87285
149516
149517        caused multiple crashes on the mac bots (Requested by
149518        jessieberlin on #webkit).
149519
149520        * dom/ContainerNodeAlgorithms.h:
149521
1495222012-05-23  Darin Adler  <darin@apple.com>
149523
149524        Speed up traverseNextNode when called on a ContainerNode or Element
149525        https://bugs.webkit.org/show_bug.cgi?id=87224
149526
149527        Reviewed by Geoffrey Garen.
149528
149529        * dom/ContainerNode.h: Added overrides of traverseNextNode for ContainerNode.
149530        That way, when we know at compile time something is ContainerNode, we can
149531        skip a branch at the start of this hot function.
149532
1495332012-05-23  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
149534
149535        Use PluginDataNone.cpp always when NETSCAPE_PLUGIN_API is OFF
149536        https://bugs.webkit.org/show_bug.cgi?id=87096
149537
149538        Reviewed by Andy Estes.
149539
149540        Fix a build error by adding an extra check in PluginData.cpp to use
149541        PluginStrategy only when NETSCAPE_PLUGIN_API is ON.
149542
149543        No new tests. This is only a build fix.
149544
149545        * plugins/PluginData.cpp:
149546        (WebCore):
149547
1495482012-05-23  Malcolm MacLeod  <malcolm.macleod@tshwanedje.com>
149549
149550        [wx] Fix scrollbar drawing under wxGTK.
149551        https://bugs.webkit.org/show_bug.cgi?id=87150
149552
149553        Reviewed by Kevin Ollivier.
149554
149555        * platform/wx/wxcode/gtk/scrollbar_render.cpp:
149556        (wxRenderer_DrawScrollbar):
149557
1495582012-05-23  Antti Koivisto  <antti@apple.com>
149559
149560        Rename StyleSheetInternal to StyleSheetContents
149561        https://bugs.webkit.org/show_bug.cgi?id=87272
149562
149563        Reviewed by Andreas Kling.
149564
149565        The name is more descriptive and the code reads better.
149566        
149567        Plain "StyleSheet" would be good too but that is a CSSOM type and the name can't be used without
149568        changing idl code generation and resolving bunch of other issues.
149569
149570        * css/CSSFontFaceSrcValue.cpp:
149571        (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
149572        * css/CSSFontFaceSrcValue.h:
149573        (CSSFontFaceSrcValue):
149574        * css/CSSImportRule.cpp:
149575        (WebCore::StyleRuleImport::setCSSStyleSheet):
149576        (WebCore::StyleRuleImport::requestStyleSheet):
149577        * css/CSSImportRule.h:
149578        (WebCore):
149579        (WebCore::StyleRuleImport::parentStyleSheet):
149580        (WebCore::StyleRuleImport::setParentStyleSheet):
149581        (WebCore::StyleRuleImport::styleSheet):
149582        (StyleRuleImport):
149583        * css/CSSMediaRule.cpp:
149584        (WebCore::CSSMediaRule::insertRule):
149585        * css/CSSParser.cpp:
149586        (WebCore::CSSParser::parseSheet):
149587        (WebCore::CSSParser::parseRule):
149588        (WebCore::CSSParser::parseKeyframeRule):
149589        (WebCore::CSSParser::parseValue):
149590        (WebCore::CSSParser::parseSelector):
149591        (WebCore::CSSParser::parseDeclaration):
149592        (WebCore::CSSParser::setStyleSheet):
149593        (WebCore::CSSParser::parseFlowThread):
149594        * css/CSSParser.h:
149595        (WebCore):
149596        (CSSParser):
149597        * css/CSSPrimitiveValue.cpp:
149598        (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
149599        * css/CSSPrimitiveValue.h:
149600        (CSSPrimitiveValue):
149601        * css/CSSReflectValue.cpp:
149602        (WebCore::CSSReflectValue::addSubresourceStyleURLs):
149603        * css/CSSReflectValue.h:
149604        (CSSReflectValue):
149605        * css/CSSRule.cpp:
149606        (WebCore::CSSRule::parserContext):
149607        * css/CSSStyleSheet.cpp:
149608        (WebCore::StyleSheetContents::estimatedSizeInBytes):
149609        (WebCore::StyleSheetContents::StyleSheetContents):
149610        (WebCore::StyleSheetContents::~StyleSheetContents):
149611        (WebCore::StyleSheetContents::isCacheable):
149612        (WebCore::StyleSheetContents::parserAppendRule):
149613        (WebCore::StyleSheetContents::ruleAt):
149614        (WebCore::StyleSheetContents::ruleCount):
149615        (WebCore::StyleSheetContents::clearCharsetRule):
149616        (WebCore::StyleSheetContents::clearRules):
149617        (WebCore::StyleSheetContents::parserSetEncodingFromCharsetRule):
149618        (WebCore::StyleSheetContents::wrapperInsertRule):
149619        (WebCore::StyleSheetContents::wrapperDeleteRule):
149620        (WebCore::StyleSheetContents::parserAddNamespace):
149621        (WebCore::StyleSheetContents::determineNamespace):
149622        (WebCore::StyleSheetContents::parseAuthorStyleSheet):
149623        (WebCore::StyleSheetContents::parseString):
149624        (WebCore::StyleSheetContents::parseStringAtLine):
149625        (WebCore::StyleSheetContents::isLoading):
149626        (WebCore::StyleSheetContents::checkLoaded):
149627        (WebCore::StyleSheetContents::notifyLoadedSheet):
149628        (WebCore::StyleSheetContents::startLoadingDynamicSheet):
149629        (WebCore::StyleSheetContents::rootStyleSheet):
149630        (WebCore::StyleSheetContents::singleOwnerNode):
149631        (WebCore::StyleSheetContents::singleOwnerDocument):
149632        (WebCore::StyleSheetContents::completeURL):
149633        (WebCore::StyleSheetContents::addSubresourceStyleURLs):
149634        (WebCore::StyleSheetContents::parentStyleSheet):
149635        (WebCore::StyleSheetContents::registerClient):
149636        (WebCore::StyleSheetContents::unregisterClient):
149637        (WebCore::StyleSheetContents::addedToMemoryCache):
149638        (WebCore::StyleSheetContents::removedFromMemoryCache):
149639        (WebCore::CSSStyleSheet::createInline):
149640        (WebCore::CSSStyleSheet::CSSStyleSheet):
149641        (WebCore::CSSStyleSheet::~CSSStyleSheet):
149642        (WebCore::CSSStyleSheet::willMutateRules):
149643        (WebCore::CSSStyleSheet::didMutateRules):
149644        (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
149645        (WebCore::CSSStyleSheet::length):
149646        (WebCore::CSSStyleSheet::item):
149647        (WebCore::CSSStyleSheet::rules):
149648        (WebCore::CSSStyleSheet::insertRule):
149649        (WebCore::CSSStyleSheet::deleteRule):
149650        (WebCore::CSSStyleSheet::cssRules):
149651        * css/CSSStyleSheet.h:
149652        (WebCore::StyleSheetContents::create):
149653        (StyleSheetContents):
149654        (WebCore::StyleSheetContents::copy):
149655        (WebCore::CSSStyleSheet::create):
149656        (WebCore::CSSStyleSheet::contents):
149657        (CSSStyleSheet):
149658        * css/CSSValue.cpp:
149659        (WebCore::CSSValue::addSubresourceStyleURLs):
149660        * css/CSSValue.h:
149661        (WebCore):
149662        (CSSValue):
149663        * css/CSSValueList.cpp:
149664        (WebCore::CSSValueList::addSubresourceStyleURLs):
149665        * css/CSSValueList.h:
149666        (CSSValueList):
149667        * css/PropertySetCSSStyleDeclaration.cpp:
149668        (WebCore::PropertySetCSSStyleDeclaration::contextStyleSheet):
149669        * css/PropertySetCSSStyleDeclaration.h:
149670        (WebCore):
149671        (PropertySetCSSStyleDeclaration):
149672        * css/StylePropertySet.cpp:
149673        (WebCore::StylePropertySet::setProperty):
149674        (WebCore::StylePropertySet::parseDeclaration):
149675        (WebCore::StylePropertySet::addSubresourceStyleURLs):
149676        * css/StylePropertySet.h:
149677        (WebCore):
149678        (StylePropertySet):
149679        * css/StyleResolver.cpp:
149680        (RuleSet):
149681        (WebCore):
149682        (WebCore::StyleResolver::StyleResolver):
149683        (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
149684        (WebCore::StyleResolver::appendAuthorStylesheets):
149685        (WebCore::parseUASheet):
149686        (WebCore::StyleResolver::collectMatchingRulesForList):
149687        * css/StyleResolver.h:
149688        (StyleResolver):
149689        * css/WebKitCSSKeyframesRule.cpp:
149690        (WebCore::WebKitCSSKeyframesRule::insertRule):
149691        * dom/DOMImplementation.cpp:
149692        (WebCore::DOMImplementation::createCSSStyleSheet):
149693        * dom/Document.cpp:
149694        (WebCore::Document::recalcStyle):
149695        (WebCore::Document::updateBaseURL):
149696        (WebCore::Document::pageUserSheet):
149697        (WebCore::Document::pageGroupUserSheets):
149698        (WebCore::Document::addUserSheet):
149699        (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
149700        (WebCore::Document::analyzeStylesheetChange):
149701        (WebCore::styleSheetsUseRemUnits):
149702        * dom/Document.h:
149703        (WebCore):
149704        (Document):
149705        * dom/ElementAttributeData.cpp:
149706        (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
149707        * dom/ProcessingInstruction.cpp:
149708        (WebCore::ProcessingInstruction::setCSSStyleSheet):
149709        (WebCore::ProcessingInstruction::parseStyleSheet):
149710        * dom/StyleElement.cpp:
149711        (WebCore::StyleElement::createSheet):
149712        * dom/StyledElement.cpp:
149713        (WebCore::StyledElement::setInlineStyleProperty):
149714        (WebCore::StyledElement::addSubresourceAttributeURLs):
149715        (WebCore::StyledElement::addPropertyToAttributeStyle):
149716        * html/HTMLLinkElement.cpp:
149717        (WebCore::HTMLLinkElement::setCSSStyleSheet):
149718        (WebCore::HTMLLinkElement::styleSheetIsLoading):
149719        (WebCore::HTMLLinkElement::addSubresourceAttributeURLs):
149720        * html/HTMLStyleElement.cpp:
149721        (WebCore::HTMLStyleElement::addSubresourceAttributeURLs):
149722        * inspector/InspectorStyleSheet.cpp:
149723        (WebCore::fillMediaListChain):
149724        (WebCore::InspectorStyle::setPropertyText):
149725        (WebCore::InspectorStyleSheet::styleSheetURL):
149726        (WebCore::InspectorStyleSheet::reparseStyleSheet):
149727        (WebCore::InspectorStyleSheet::ensureSourceData):
149728        (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
149729        * loader/cache/CachedCSSStyleSheet.cpp:
149730        (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
149731        (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
149732        * loader/cache/CachedCSSStyleSheet.h:
149733        (WebCore):
149734        (CachedCSSStyleSheet):
149735        * page/PageSerializer.cpp:
149736        (WebCore::PageSerializer::serializeCSSStyleSheet):
149737
1497382012-05-23  Darin Adler  <darin@apple.com>
149739
149740        Use ContainerNode instead of Node where possible
149741        https://bugs.webkit.org/show_bug.cgi?id=87220
149742
149743        Reviewed by Geoffrey Garen.
149744
149745        It's better to use a more specific type; in some cases we even generate
149746        more efficient code if we have a more specific type. Also, we want any
149747        type casts to be as close as possible to the corresponding type checks,
149748        so eliminating these uses of toContainerNode is a plus, also.
149749
149750        * dom/ContainerNodeAlgorithms.h: Changed insertionPoint to be a ContainerNode
149751        instead of a Node. Fixed spelling error "inseretions". Changed
149752        (WebCore::ChildFrameDisconnector::Target::Target): Changed type of frame owner
149753        element to HTMLFrameOwnerElement from Node.
149754
149755        * dom/DocumentType.cpp:
149756        (WebCore::DocumentType::insertedInto):
149757        (WebCore::DocumentType::removedFrom):
149758        * dom/DocumentType.h:
149759        * dom/Element.cpp:
149760        (WebCore::Element::insertedInto):
149761        (WebCore::Element::removedFrom):
149762        * dom/Element.h:
149763        * dom/Node.cpp:
149764        (WebCore::Node::insertedInto):
149765        (WebCore::Node::removedFrom):
149766        * dom/Node.h:
149767        * dom/ProcessingInstruction.cpp:
149768        (WebCore::ProcessingInstruction::insertedInto):
149769        (WebCore::ProcessingInstruction::removedFrom):
149770        * dom/ProcessingInstruction.h:
149771        * dom/ScriptElement.cpp:
149772        (WebCore::ScriptElement::insertedInto):
149773        * dom/ScriptElement.h:
149774        * html/FormAssociatedElement.cpp:
149775        (WebCore::FormAssociatedElement::insertedInto):
149776        (WebCore::FormAssociatedElement::removedFrom):
149777        * html/FormAssociatedElement.h:
149778        * html/HTMLBaseElement.cpp:
149779        (WebCore::HTMLBaseElement::insertedInto):
149780        (WebCore::HTMLBaseElement::removedFrom):
149781        * html/HTMLBaseElement.h:
149782        * html/HTMLBodyElement.cpp:
149783        (WebCore::HTMLBodyElement::insertedInto):
149784        (WebCore::HTMLBodyElement::didNotifyDescendantInsertions):
149785        * html/HTMLBodyElement.h:
149786        * html/HTMLFormControlElement.cpp:
149787        (WebCore::HTMLFormControlElement::insertedInto):
149788        (WebCore::HTMLFormControlElement::removedFrom):
149789        * html/HTMLFormControlElement.h:
149790        * html/HTMLFormElement.cpp:
149791        (WebCore::HTMLFormElement::insertedInto):
149792        (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
149793        (WebCore::HTMLFormElement::removedFrom):
149794        * html/HTMLFormElement.h:
149795        * html/HTMLFrameElementBase.cpp:
149796        (WebCore::HTMLFrameElementBase::insertedInto):
149797        (WebCore::HTMLFrameElementBase::didNotifyDescendantInsertions):
149798        * html/HTMLFrameElementBase.h:
149799        * html/HTMLFrameSetElement.cpp:
149800        (WebCore::HTMLFrameSetElement::insertedInto):
149801        (WebCore::HTMLFrameSetElement::removedFrom):
149802        * html/HTMLFrameSetElement.h:
149803        * html/HTMLIFrameElement.cpp:
149804        (WebCore::HTMLIFrameElement::insertedInto):
149805        (WebCore::HTMLIFrameElement::removedFrom):
149806        * html/HTMLIFrameElement.h:
149807        * html/HTMLImageElement.cpp:
149808        (WebCore::HTMLImageElement::insertedInto):
149809        (WebCore::HTMLImageElement::removedFrom):
149810        * html/HTMLImageElement.h:
149811        * html/HTMLInputElement.cpp:
149812        (WebCore::HTMLInputElement::insertedInto):
149813        (WebCore::HTMLInputElement::removedFrom):
149814        * html/HTMLInputElement.h:
149815        * html/HTMLLinkElement.cpp:
149816        (WebCore::HTMLLinkElement::insertedInto):
149817        (WebCore::HTMLLinkElement::removedFrom):
149818        * html/HTMLLinkElement.h:
149819        * html/HTMLMapElement.cpp:
149820        (WebCore::HTMLMapElement::insertedInto):
149821        (WebCore::HTMLMapElement::removedFrom):
149822        * html/HTMLMapElement.h:
149823        * html/HTMLMediaElement.cpp:
149824        (WebCore::HTMLMediaElement::insertedInto):
149825        (WebCore::HTMLMediaElement::removedFrom):
149826        * html/HTMLMediaElement.h:
149827        * html/HTMLMetaElement.cpp:
149828        (WebCore::HTMLMetaElement::insertedInto):
149829        * html/HTMLMetaElement.h:
149830        * html/HTMLObjectElement.cpp:
149831        (WebCore::HTMLObjectElement::insertedInto):
149832        (WebCore::HTMLObjectElement::removedFrom):
149833        * html/HTMLObjectElement.h:
149834        * html/HTMLOptionElement.cpp:
149835        (WebCore::HTMLOptionElement::insertedInto):
149836        * html/HTMLOptionElement.h:
149837        * html/HTMLQuoteElement.cpp:
149838        (WebCore::HTMLQuoteElement::insertedInto):
149839        * html/HTMLQuoteElement.h:
149840        * html/HTMLScriptElement.cpp:
149841        (WebCore::HTMLScriptElement::insertedInto):
149842        * html/HTMLScriptElement.h:
149843        * html/HTMLSelectElement.cpp:
149844        (WebCore::HTMLSelectElement::insertedInto):
149845        * html/HTMLSelectElement.h:
149846        * html/HTMLSourceElement.cpp:
149847        (WebCore::HTMLSourceElement::insertedInto):
149848        (WebCore::HTMLSourceElement::removedFrom):
149849        * html/HTMLSourceElement.h:
149850        * html/HTMLStyleElement.cpp:
149851        (WebCore::HTMLStyleElement::insertedInto):
149852        (WebCore::HTMLStyleElement::removedFrom):
149853        * html/HTMLStyleElement.h:
149854        * html/HTMLTextFormControlElement.cpp:
149855        (WebCore::HTMLTextFormControlElement::insertedInto):
149856        * html/HTMLTextFormControlElement.h:
149857        * html/HTMLTitleElement.cpp:
149858        (WebCore::HTMLTitleElement::insertedInto):
149859        (WebCore::HTMLTitleElement::removedFrom):
149860        * html/HTMLTitleElement.h:
149861        * html/HTMLTrackElement.cpp:
149862        (WebCore::HTMLTrackElement::insertedInto):
149863        (WebCore::HTMLTrackElement::removedFrom):
149864        * html/HTMLTrackElement.h:
149865        * mathml/MathMLMathElement.cpp:
149866        (WebCore::MathMLMathElement::insertedInto):
149867        * mathml/MathMLMathElement.h:
149868        * svg/SVGElement.cpp:
149869        (WebCore::SVGElement::removedFrom):
149870        * svg/SVGElement.h:
149871        * svg/SVGFEImageElement.cpp:
149872        (WebCore::SVGFEImageElement::insertedInto):
149873        (WebCore::SVGFEImageElement::removedFrom):
149874        * svg/SVGFEImageElement.h:
149875        * svg/SVGFontFaceElement.cpp:
149876        (WebCore::SVGFontFaceElement::insertedInto):
149877        (WebCore::SVGFontFaceElement::removedFrom):
149878        * svg/SVGFontFaceElement.h:
149879        * svg/SVGFontFaceUriElement.cpp:
149880        (WebCore::SVGFontFaceUriElement::insertedInto):
149881        * svg/SVGFontFaceUriElement.h:
149882        * svg/SVGGlyphElement.cpp:
149883        (WebCore::SVGGlyphElement::insertedInto):
149884        (WebCore::SVGGlyphElement::removedFrom):
149885        * svg/SVGGlyphElement.h:
149886        * svg/SVGHKernElement.cpp:
149887        (WebCore::SVGHKernElement::insertedInto):
149888        (WebCore::SVGHKernElement::removedFrom):
149889        * svg/SVGHKernElement.h:
149890        * svg/SVGImageElement.cpp:
149891        (WebCore::SVGImageElement::insertedInto):
149892        * svg/SVGImageElement.h:
149893        * svg/SVGSVGElement.cpp:
149894        (WebCore::SVGSVGElement::insertedInto):
149895        (WebCore::SVGSVGElement::removedFrom):
149896        * svg/SVGSVGElement.h:
149897        * svg/SVGScriptElement.cpp:
149898        (WebCore::SVGScriptElement::insertedInto):
149899        * svg/SVGScriptElement.h:
149900        * svg/SVGStyleElement.cpp:
149901        (WebCore::SVGStyleElement::insertedInto):
149902        (WebCore::SVGStyleElement::removedFrom):
149903        * svg/SVGStyleElement.h:
149904        * svg/SVGStyledElement.cpp:
149905        (WebCore::SVGStyledElement::insertedInto):
149906        (WebCore::SVGStyledElement::removedFrom):
149907        * svg/SVGStyledElement.h:
149908        * svg/SVGTRefElement.cpp:
149909        (WebCore::SVGTRefElement::insertedInto):
149910        (WebCore::SVGTRefElement::removedFrom):
149911        * svg/SVGTRefElement.h:
149912        * svg/SVGTextPathElement.cpp:
149913        (WebCore::SVGTextPathElement::insertedInto):
149914        * svg/SVGTextPathElement.h:
149915        * svg/SVGTitleElement.cpp:
149916        (WebCore::SVGTitleElement::insertedInto):
149917        (WebCore::SVGTitleElement::removedFrom):
149918        * svg/SVGTitleElement.h:
149919        * svg/SVGUseElement.cpp:
149920        (WebCore::SVGUseElement::insertedInto):
149921        (WebCore::SVGUseElement::removedFrom):
149922        * svg/SVGUseElement.h:
149923        * svg/SVGVKernElement.cpp:
149924        (WebCore::SVGVKernElement::insertedInto):
149925        (WebCore::SVGVKernElement::removedFrom):
149926        * svg/SVGVKernElement.h:
149927        * svg/animation/SVGSMILElement.cpp:
149928        (WebCore::SVGSMILElement::insertedInto):
149929        (WebCore::SVGSMILElement::removedFrom):
149930        * svg/animation/SVGSMILElement.h:
149931        Changed arguments of insertedInto and removedFrom to ContainerNode instead of Node.
149932        Did the same with didNotifyDescendantInsertions, while fixing the typo in its name.
149933
149934        * editing/ReplaceSelectionCommand.cpp:
149935        (WebCore::ReplaceSelectionCommand::doApply): Put a typecast toHTMLElement here.
149936        The check for isListElement and isLegacyAppleStyleSpan takes care of the type checking.
149937        (WebCore::ReplaceSelectionCommand::insertAsListItems): Changed this function to take
149938        an HTMLElement instead of a Node, then we can drop use of the toContainerNode function.
149939        * editing/ReplaceSelectionCommand.h:
149940
149941        * editing/TextIterator.cpp: Fixed a typo in a comment.
149942
1499432012-05-23  Alexei Filippov  <alexeif@chromium.org>
149944
149945        Web Inspector: filter out debugging stuff from the heap class view
149946        https://bugs.webkit.org/show_bug.cgi?id=86723
149947
149948        We mark objects that are accessible from user roots (e.g. Window)
149949        with pageObject attribute. This fix filters out all non-pageObjects
149950        from the classes view.
149951
149952        Reviewed by Yury Semikhatsky.
149953
149954        * inspector/front-end/HeapSnapshot.js:
149955        (WebInspector.HeapSnapshotNode.prototype.isPageObject):
149956        (WebInspector.HeapSnapshot.prototype._buildAggregates):
149957        (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
149958        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
149959        (WebInspector.HeapSnapshot.prototype._markPageOwnedNodes):
149960        (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
149961
1499622012-05-23  Andrei Bucur  <abucur@adobe.com>
149963
149964        [CSSRegions]Implement NamedFlow::name attribute
149965        https://bugs.webkit.org/show_bug.cgi?id=79645
149966
149967        Implementation for the NamedFlow::name attribute per the CSS Regions WD 3-May-2012 recommendation:
149968        http://www.w3.org/TR/2012/WD-css3-regions-20120503/
149969
149970        Reviewed by Andreas Kling.
149971
149972        Test: fast/regions/webkit-named-flow-name.html
149973
149974        * dom/WebKitNamedFlow.cpp:
149975        (WebCore::WebKitNamedFlow::name):
149976        (WebCore):
149977        * dom/WebKitNamedFlow.h:
149978        (WebKitNamedFlow):
149979        * dom/WebKitNamedFlow.idl:
149980
1499812012-05-23  Andreas Kling  <kling@webkit.org>
149982
149983        Let the compiler generate FontFamily's copy ctor and assignment operator.
149984
149985        Blindly rubberstamped by the brave Antti Koivisto.
149986
149987        * platform/graphics/FontFamily.cpp:
149988        * platform/graphics/FontFamily.h:
149989
1499902012-05-23  Andreas Kling  <kling@webkit.org>
149991
149992        CSSParser: Simplify StylePropertySet creation.
149993        <http://webkit.org/b/87259>
149994
149995        Reviewed by Alexis Menard.
149996
149997        Turn CSSParser's filteredProperties() into createStylePropertySet() which filters the parsed
149998        properties and creates a new StylePropertySet, adopting the vector to avoid the Vector copy we
149999        were previously incurring.
150000
150001        Added a StylePropertyVector typedef for Vector<CSSProperty, 4> since we need to pass this type
150002        to the constructor for Vector::swap() to work.
150003
150004        And thus StylePropertySet::create(const Vector<CSSProperty>&, CSSParserMode) became
150005        StylePropertySet::adopt(StylePropertyVector&, CSSParserMode).
150006
150007        * css/CSSComputedStyleDeclaration.cpp:
150008        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
150009        * css/CSSParser.cpp:
150010        (WebCore::CSSParser::createStylePropertySet):
150011        (WebCore::CSSParser::createStyleRule):
150012        (WebCore::CSSParser::createFontFaceRule):
150013        (WebCore::CSSParser::createPageRule):
150014        (WebCore::CSSParser::createKeyframe):
150015        * css/CSSParser.h:
150016        * css/StylePropertySet.cpp:
150017        (WebCore::StylePropertySet::StylePropertySet):
150018        (WebCore::StylePropertySet::removePropertiesInSet):
150019        (WebCore::StylePropertySet::copyPropertiesInSet):
150020        (SameSizeAsStylePropertySet):
150021        * css/StylePropertySet.h:
150022        (WebCore::StylePropertySet::adopt):
150023        (StylePropertySet):
150024
1500252012-05-23  Andreas Kling  <kling@webkit.org>
150026
150027        Kill some frivolous null-checking of Element::m_attributeData.
150028        <http://webkit.org/b/87248>
150029
150030        Reviewed by Antti Koivisto.
150031
150032        Replace unnecessary Element::m_attributeData with assertions where it makes sense.
150033        Others are flat out removed because it should be obvious from context that it's non-null.
150034        E.g if an attribute has changed, we're obviously storing it somewhere.
150035
150036        Also added a short-circuit to Element::normalize() if there are no Attr objects
150037        associated with the element.
150038
150039        * dom/Element.cpp:
150040        (WebCore::Element::~Element):
150041        (WebCore::Element::attributeChanged):
150042        (WebCore::Element::insertedInto):
150043        (WebCore::Element::removedFrom):
150044        (WebCore::Element::removeAttributeNode):
150045        (WebCore::Element::normalizeAttributes):
150046        * dom/StyledElement.cpp:
150047        (WebCore::StyledElement::classAttributeChanged):
150048
1500492012-05-23  Andreas Kling  <kling@webkit.org>
150050
150051        Let Element::detachAttribute() handle removal of the attribute.
150052        <http://webkit.org/b/87242>
150053
150054        Reviewed by Antti Koivisto.
150055
150056        All the call sites were removing the attribute after detaching it, so move
150057        that into detachAttribute(). The function name already made it sound like it
150058        removes the attribute anyway.
150059
150060        Also sprinkle some assertions wrt being called with guaranteed presence of
150061        attributeData() and the provided index in the attribute vector.
150062
150063        * dom/Element.cpp:
150064        (WebCore::Element::detachAttribute):
150065        (WebCore::Element::removeAttributeNode):
150066        * dom/NamedNodeMap.cpp:
150067        (WebCore::NamedNodeMap::removeNamedItem):
150068        (WebCore::NamedNodeMap::removeNamedItemNS):
150069
1500702012-05-23  Andreas Kling  <kling@webkit.org>
150071
150072        Streamline Element teardown for the no-Attr-objects case.
150073        <http://webkit.org/b/87228>
150074
150075        Reviewed by Antti Koivisto.
150076
150077        Dodge one function call in ~Element() if the element has no Attr objects
150078        associated (the typical case.)
150079
150080        Renamed detachAttributes to detachAttrObjectsFromElement to reduce ambiguity.
150081
150082        * dom/Element.cpp:
150083        (WebCore::Element::~Element):
150084        * dom/ElementAttributeData.cpp:
150085        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
150086        (WebCore::ElementAttributeData::clearAttributes):
150087        * dom/ElementAttributeData.h:
150088        (ElementAttributeData):
150089
1500902012-05-23  Jochen Eisinger  <jochen@chromium.org>
150091
150092        Fix incomplete switch statement in CSSParser after r118082
150093        https://bugs.webkit.org/show_bug.cgi?id=87250
150094
150095        Reviewed by Alexis Menard.
150096
150097        * css/CSSParser.cpp:
150098        (WebCore::CSSParser::parseValue):
150099
1501002012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
150101
150102        Unreviewed, rolling out r118105.
150103        http://trac.webkit.org/changeset/118105
150104        https://bugs.webkit.org/show_bug.cgi?id=87255
150105
150106        New LayoutTest is causing several cookie tests to fail on
150107        numerous bots (Requested by steveblock on #webkit).
150108
150109        * platform/blackberry/CookieJarBlackBerry.cpp:
150110        (WebCore::setCookies):
150111        * platform/blackberry/CookieManager.cpp:
150112        (WebCore::CookieManager::setCookies):
150113        (WebCore::CookieManager::checkAndTreatCookie):
150114        (WebCore::CookieManager::addCookieToMap):
150115        (WebCore::CookieManager::setPrivateMode):
150116        (WebCore):
150117        * platform/blackberry/CookieManager.h:
150118        * platform/blackberry/CookieMap.cpp:
150119        (WebCore::CookieMap::addOrReplaceCookie):
150120        (WebCore::CookieMap::removeCookie):
150121        * platform/blackberry/CookieMap.h:
150122        (CookieMap):
150123
1501242012-05-23  Zan Dobersek  <zandobersek@gmail.com>
150125
150126        [Gtk] EventSender should properly handle (left|right)(control|shift|alt) after r118001
150127        https://bugs.webkit.org/show_bug.cgi?id=87221
150128
150129        Reviewed by Martin Robinson.
150130
150131        No new tests - covered by fast/events/keydown-leftright-keys.html.
150132
150133        Windows key code for shift, control and alt keys should respect the
150134        left or right position of that key. This way the DOM location code of
150135        a key event is properly determined for these keys.
150136
150137        * platform/gtk/PlatformKeyboardEventGtk.cpp:
150138        (WebCore::PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode):
150139
1501402012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
150141
150142        Web Inspector: eliminate getters from HeapSnapshot.js
150143        https://bugs.webkit.org/show_bug.cgi?id=87241
150144
150145        getters can't be inlined by engine at the moment.
150146        I found that conversion getters into functions gives us about 600 ms
150147
150148        RESULT heap-snapshot: switch-to-containment-view= 1920 ms
150149        vs
150150        RESULT heap-snapshot: switch-to-containment-view= 1367 ms
150151
150152        Reviewed by Yury Semikhatsky.
150153
150154        * inspector/front-end/HeapSnapshot.js:
150155        (WebInspector.HeapSnapshotEdge.prototype.hasStringName):
150156        (WebInspector.HeapSnapshotEdge.prototype.isElement):
150157        (WebInspector.HeapSnapshotEdge.prototype.isHidden):
150158        (WebInspector.HeapSnapshotEdge.prototype.isWeak):
150159        (WebInspector.HeapSnapshotEdge.prototype.isInternal):
150160        (WebInspector.HeapSnapshotEdge.prototype.isInvisible):
150161        (WebInspector.HeapSnapshotEdge.prototype.isShortcut):
150162        (WebInspector.HeapSnapshotEdge.prototype.name):
150163        (WebInspector.HeapSnapshotEdge.prototype.node):
150164        (WebInspector.HeapSnapshotEdge.prototype.nodeIndex):
150165        (WebInspector.HeapSnapshotEdge.prototype.rawEdges):
150166        (WebInspector.HeapSnapshotEdge.prototype.toString):
150167        (WebInspector.HeapSnapshotEdge.prototype.type):
150168        (WebInspector.HeapSnapshotEdge.prototype._hasStringName):
150169        (WebInspector.HeapSnapshotEdge.prototype._name):
150170        (WebInspector.HeapSnapshotEdge.prototype._nameOrIndex):
150171        (WebInspector.HeapSnapshotEdgeIterator.prototype.index):
150172        (WebInspector.HeapSnapshotEdgeIterator.prototype.setIndex):
150173        (WebInspector.HeapSnapshotEdgeIterator.prototype.item):
150174        (WebInspector.HeapSnapshotRetainerEdge):
150175        (WebInspector.HeapSnapshotRetainerEdge.prototype.clone):
150176        (WebInspector.HeapSnapshotRetainerEdge.prototype.hasStringName):
150177        (WebInspector.HeapSnapshotRetainerEdge.prototype.isElement):
150178        (WebInspector.HeapSnapshotRetainerEdge.prototype.isHidden):
150179        (WebInspector.HeapSnapshotRetainerEdge.prototype.isInternal):
150180        (WebInspector.HeapSnapshotRetainerEdge.prototype.isInvisible):
150181        (WebInspector.HeapSnapshotRetainerEdge.prototype.isShortcut):
150182        (WebInspector.HeapSnapshotRetainerEdge.prototype.isWeak):
150183        (WebInspector.HeapSnapshotRetainerEdge.prototype.name):
150184        (WebInspector.HeapSnapshotRetainerEdge.prototype.node):
150185        (WebInspector.HeapSnapshotRetainerEdge.prototype.nodeIndex):
150186        (WebInspector.HeapSnapshotRetainerEdge.prototype.retainerIndex):
150187        (WebInspector.HeapSnapshotRetainerEdge.prototype.setRetainerIndex):
150188        (WebInspector.HeapSnapshotRetainerEdge.prototype._node):
150189        (WebInspector.HeapSnapshotRetainerEdge.prototype._edge):
150190        (WebInspector.HeapSnapshotRetainerEdge.prototype.toString):
150191        (WebInspector.HeapSnapshotRetainerEdge.prototype.type):
150192        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.first):
150193        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.hasNext):
150194        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.index):
150195        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.setIndex):
150196        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.item):
150197        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.next):
150198        (WebInspector.HeapSnapshotNode.prototype.canBeQueried):
150199        (WebInspector.HeapSnapshotNode.prototype.distanceToWindow):
150200        (WebInspector.HeapSnapshotNode.prototype.className):
150201        (WebInspector.HeapSnapshotNode.prototype.dominatorIndex):
150202        (WebInspector.HeapSnapshotNode.prototype.edges):
150203        (WebInspector.HeapSnapshotNode.prototype.edgesCount):
150204        (WebInspector.HeapSnapshotNode.prototype.flags):
150205        (WebInspector.HeapSnapshotNode.prototype.id):
150206        (WebInspector.HeapSnapshotNode.prototype.isHidden):
150207        (WebInspector.HeapSnapshotNode.prototype.isNative):
150208        (WebInspector.HeapSnapshotNode.prototype.isSynthetic):
150209        (WebInspector.HeapSnapshotNode.prototype.isWindow):
150210        (WebInspector.HeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
150211        (WebInspector.HeapSnapshotNode.prototype.isDetachedDOMTree):
150212        (WebInspector.HeapSnapshotNode.prototype.isRoot):
150213        (WebInspector.HeapSnapshotNode.prototype.name):
150214        (WebInspector.HeapSnapshotNode.prototype.rawEdges):
150215        (WebInspector.HeapSnapshotNode.prototype.retainedSize):
150216        (WebInspector.HeapSnapshotNode.prototype.retainers):
150217        (WebInspector.HeapSnapshotNode.prototype.selfSize):
150218        (WebInspector.HeapSnapshotNode.prototype.type):
150219        (WebInspector.HeapSnapshotNode.prototype._name):
150220        (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
150221        (WebInspector.HeapSnapshotNode.prototype._nextNodeIndex):
150222        (WebInspector.HeapSnapshotNode.prototype._type):
150223        (WebInspector.HeapSnapshotNodeIterator):
150224        (WebInspector.HeapSnapshotNodeIterator.prototype.hasNext):
150225        (WebInspector.HeapSnapshotNodeIterator.prototype.index):
150226        (WebInspector.HeapSnapshotNodeIterator.prototype.setIndex):
150227        (WebInspector.HeapSnapshotNodeIterator.prototype.item):
150228        (WebInspector.HeapSnapshotNodeIterator.prototype.next):
150229        (WebInspector.HeapSnapshot.prototype._allNodes):
150230        (WebInspector.HeapSnapshot.prototype.rootNode):
150231        (WebInspector.HeapSnapshot.prototype.get totalSize):
150232        (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
150233        (WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
150234        (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
150235        (WebInspector.HeapSnapshot.prototype._buildAggregates):
150236        (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
150237        (WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
150238        (WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
150239        (WebInspector.HeapSnapshot.prototype._markDetachedDOMTreeNodes):
150240        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
150241        (WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
150242        (WebInspector.HeapSnapshot.prototype._nodeForSnapshotObjectId):
150243        (WebInspector.HeapSnapshot.prototype.nodeClassName):
150244        (WebInspector.HeapSnapshot.prototype.dominatorIdsForNode):
150245        (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
150246        (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
150247        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype._createIterationOrder):
150248        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.isEmpty):
150249        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.item):
150250        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
150251        (WebInspector.HeapSnapshotEdgesProvider.prototype.serializeItem):
150252        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareEdgeFieldName):
150253        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeField):
150254        (WebInspector.HeapSnapshotNodesProvider):
150255        (WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
150256        (WebInspector.HeapSnapshotNodesProvider.prototype.serializeItem):
150257        (WebInspector.HeapSnapshotNodesProvider.prototype.sort.sortByNodeField):
150258        * inspector/front-end/HeapSnapshotGridNodes.js:
150259        * inspector/front-end/HeapSnapshotProxy.js:
150260        (WebInspector.HeapSnapshotProviderProxy.prototype.isEmpty):
150261
1502622012-05-22  Yury Semikhatsky  <yurys@chromium.org>
150263
150264        Web Inspector: Debugger should correctly show catch scope
150265        https://bugs.webkit.org/show_bug.cgi?id=87197
150266
150267        Reviewed by Vsevolod Vlasov.
150268
150269        * bindings/v8/DebuggerScript.js: In case of Catch scope the scope object
150270        is a synthetic one which means that it contains all standard object properties.
150271        When passing this object further we need to leave only properties available in
150272        the catch block(only variable thar stores the exception in fact).
150273
1502742012-05-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
150275
150276        [Qt] FloatSize Qt Support
150277        https://bugs.webkit.org/show_bug.cgi?id=87237
150278
150279        Reviewed by Andreas Kling.
150280
150281        No new functionality. No new tests.
150282
150283        * Target.pri:
150284        * platform/graphics/FloatSize.h:
150285        (FloatSize):
150286        * platform/graphics/qt/FloatSizeQt.cpp: Added.
150287        (WebCore::FloatSize::FloatSize):
150288        (WebCore::FloatSize::operator QSizeF):
150289
1502902012-05-23  Alexei Filippov  <alexeif@chromium.org>
150291
150292        Web Inspector: Enable HeapSnapshotRealWorker in production mode.
150293        https://bugs.webkit.org/show_bug.cgi?id=87240
150294
150295        Reviewed by Yury Semikhatsky.
150296
150297        * inspector/front-end/HeapSnapshotProxy.js:
150298        (WebInspector.HeapSnapshotWorker):
150299
1503002012-05-23  'Pavel Feldman'  <pfeldman@chromium.org>
150301
150302        Not reviewed: inspector's Find is not consuming event as of r117974.
150303
150304        * inspector/front-end/AdvancedSearchController.js:
150305        (WebInspector.AdvancedSearchController.prototype.handleShortcut):
150306        * inspector/front-end/SearchController.js:
150307        (WebInspector.SearchController.prototype.handleShortcut):
150308
1503092012-05-23  Pavel Feldman  <pfeldman@chromium.org>
150310
150311        Web Inspector: enable drag-an-drop from the navigator panel.
150312        https://bugs.webkit.org/show_bug.cgi?id=87238
150313
150314        Reviewed by Vsevolod Vlasov.
150315
150316        Making tree item draggable.
150317
150318        * inspector/front-end/NavigatorView.js:
150319        (WebInspector.NavigatorSourceTreeElement.prototype.onattach):
150320        (WebInspector.NavigatorSourceTreeElement.prototype._onmousedown.callback):
150321        (WebInspector.NavigatorSourceTreeElement.prototype._onmousedown):
150322        (WebInspector.NavigatorSourceTreeElement.prototype._ondragstart):
150323
1503242012-05-23  Ryosuke Niwa  <rniwa@webkit.org>
150325
150326        WebKit spends ~20% of time in HTMLTextAreaElement::defaultValue() when opening a review page
150327        https://bugs.webkit.org/show_bug.cgi?id=86813
150328
150329        Reviewed by Eric Seidel.
150330
150331        Replace String and calls to String::operator+= by StringBuilder and calls to append respectively.
150332        While there are other optimizations we can implement such as not replacing all nodes in the shadow DOM,
150333        or not serializing the value when detecting whether the value had changed, they require considerable
150334        amount of refactoring and this change alone seems to buy us a lot so let us defer those 'til later time.
150335
150336        Also avoid the redundant call to setValue in childrenChanged when the value is dirty.
150337        This should halve the time we spend in setting the value.
150338
150339        * html/HTMLTextAreaElement.cpp:
150340        (WebCore::HTMLTextAreaElement::childrenChanged):
150341        (WebCore::HTMLTextAreaElement::defaultValue):
150342
1503432012-05-23  Alice Boxhall  <aboxhall@chromium.org>
150344
150345        AX: Contenteditable tables should always be exposed as data tables
150346        https://bugs.webkit.org/show_bug.cgi?id=87052
150347
150348        Reviewed by Chris Fleizach.
150349
150350        Tested in accessibility/table-detection.html.
150351
150352        * accessibility/AccessibilityTable.cpp:
150353        (WebCore::AccessibilityTable::isDataTable): Return true if the node is contenteditable.
150354
1503552012-05-23  Ryosuke Niwa  <rniwa@webkit.org>
150356
150357        Fix a typo per Darin's comment.
150358
150359        * rendering/RenderBlockLineLayout.cpp:
150360        (WebCore::constructBidiRuns):
150361
1503622012-05-23  Kentaro Hara  <haraken@chromium.org>
150363
150364        [V8] Pass Isolate to v8::Null() in custom bindings (Part 2)
150365        https://bugs.webkit.org/show_bug.cgi?id=87209
150366
150367        Reviewed by Adam Barth.
150368
150369        The objective is to pass Isolate around in V8 bindings.
150370        This patch passes Isolate to v8::Null() in custom bindings.
150371
150372        No tests. No change in behavior.
150373
150374        * bindings/v8/custom/V8HTMLElementCustom.cpp:
150375        (WebCore::toV8Object):
150376        (WebCore::toV8):
150377        * bindings/v8/custom/V8HistoryCustom.cpp:
150378        (WebCore::V8History::stateAccessorGetter):
150379        * bindings/v8/custom/V8IDBAnyCustom.cpp:
150380        (WebCore::toV8):
150381        * bindings/v8/custom/V8IDBKeyCustom.cpp:
150382        (WebCore::toV8):
150383        * bindings/v8/custom/V8ImageDataCustom.cpp:
150384        (WebCore::toV8):
150385        * bindings/v8/custom/V8Int16ArrayCustom.cpp:
150386        (WebCore::toV8):
150387        * bindings/v8/custom/V8Int32ArrayCustom.cpp:
150388        (WebCore::toV8):
150389        * bindings/v8/custom/V8Int8ArrayCustom.cpp:
150390        (WebCore::toV8):
150391        * bindings/v8/custom/V8LocationCustom.cpp:
150392        (WebCore::toV8):
150393        * bindings/v8/custom/V8MessageEventCustom.cpp:
150394        (WebCore::V8MessageEvent::dataAccessorGetter):
150395        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
150396        (WebCore::toV8):
150397        * bindings/v8/custom/V8NodeCustom.cpp:
150398        (WebCore::V8Node::insertBeforeCallback):
150399        (WebCore::V8Node::replaceChildCallback):
150400        (WebCore::V8Node::removeChildCallback):
150401        (WebCore::V8Node::appendChildCallback):
150402        (WebCore::toV8Slow):
150403        * bindings/v8/custom/V8PopStateEventCustom.cpp:
150404        (WebCore::V8PopStateEvent::stateAccessorGetter):
150405        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
150406        (WebCore::V8SQLResultSetRowList::itemCallback):
150407        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
150408        (WebCore::toV8):
150409        * bindings/v8/custom/V8SVGElementCustom.cpp:
150410        (WebCore::toV8):
150411        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
150412        (WebCore::toV8):
150413        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
150414        (WebCore::toV8):
150415        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
150416        (WebCore::toV8):
150417        * bindings/v8/custom/V8StyleSheetCustom.cpp:
150418        (WebCore::toV8):
150419        * bindings/v8/custom/V8TrackEventCustom.cpp:
150420        (WebCore::V8TrackEvent::trackAccessorGetter):
150421        * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
150422        (WebCore::toV8):
150423        * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
150424        (WebCore::toV8):
150425        * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
150426        (WebCore::toV8):
150427        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
150428        (WebCore::toV8):
150429        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
150430        (WebCore::toV8Object):
150431        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
150432        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
150433        * bindings/v8/custom/V8WorkerContextCustom.cpp:
150434        (WebCore::toV8):
150435
1504362012-05-23  Kentaro Hara  <haraken@chromium.org>
150437
150438        [V8] Pass Isolate to v8::Null() in custom bindings (Part 1)
150439        https://bugs.webkit.org/show_bug.cgi?id=87207
150440
150441        Reviewed by Adam Barth.
150442
150443        The objective is to pass Isolate around in V8 bindings.
150444        This patch passes Isolate to v8::Null() in custom bindings.
150445
150446        Also this patch makes V8DeviceMotionEventCustom::createAccelerationObject()
150447        and V8DeviceMotionEventCustom::createRotationRateObject() static.
150448
150449        No tests. No change in behavior.
150450
150451        * bindings/v8/custom/V8BlobCustom.cpp:
150452        (WebCore::toV8):
150453        * bindings/v8/custom/V8CSSRuleCustom.cpp:
150454        (WebCore::toV8):
150455        * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
150456        (WebCore::toV8):
150457        * bindings/v8/custom/V8CSSValueCustom.cpp:
150458        (WebCore::toV8):
150459        * bindings/v8/custom/V8ClipboardCustom.cpp:
150460        (WebCore::V8Clipboard::typesAccessorGetter):
150461        * bindings/v8/custom/V8CoordinatesCustom.cpp:
150462        (WebCore::V8Coordinates::altitudeAccessorGetter):
150463        (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
150464        (WebCore::V8Coordinates::headingAccessorGetter):
150465        (WebCore::V8Coordinates::speedAccessorGetter):
150466        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
150467        (WebCore::toV8):
150468        * bindings/v8/custom/V8DOMTokenListCustom.cpp:
150469        (WebCore::toV8):
150470        * bindings/v8/custom/V8DOMWindowCustom.cpp:
150471        (WebCore::toV8):
150472        * bindings/v8/custom/V8DataViewCustom.cpp:
150473        (WebCore::toV8):
150474        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
150475        (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
150476        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
150477        (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
150478        (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
150479        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
150480        (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
150481        (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
150482        (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
150483        (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
150484        * bindings/v8/custom/V8DocumentCustom.cpp:
150485        (WebCore::toV8):
150486        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
150487        (WebCore::V8Document::locationAccessorGetter):
150488        * bindings/v8/custom/V8EntryCustom.cpp:
150489        (WebCore::toV8):
150490        * bindings/v8/custom/V8EntrySyncCustom.cpp:
150491        (WebCore::toV8):
150492        * bindings/v8/custom/V8EventCustom.cpp:
150493        (WebCore::toV8):
150494        * bindings/v8/custom/V8Float32ArrayCustom.cpp:
150495        (WebCore::toV8):
150496        * bindings/v8/custom/V8Float64ArrayCustom.cpp:
150497        (WebCore::toV8):
150498        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
150499        (WebCore::V8HTMLCanvasElement::getContextCallback):
150500        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
150501        (WebCore::toV8):
150502
1505032012-05-22  MORITA Hajime  <morrita@google.com>
150504
150505        [Refactoring] ElementShadow::m_needsRedistributing  should be on ContentDistributor
150506        https://bugs.webkit.org/show_bug.cgi?id=87216
150507
150508        Reviewed by Kentaro Hara.
150509
150510        Moved ElementShadow::m_needsRedistributing to ContentDistributor::m_needsRedistributing
150511
150512        No new tests. No behavior change.
150513
150514        * dom/ElementShadow.cpp:
150515        (WebCore::ElementShadow::recalcStyle):
150516        (WebCore::ElementShadow::needsRedistributing):
150517        (WebCore::ElementShadow::setNeedsRedistributing):
150518        * dom/ElementShadow.h:
150519        (ElementShadow):
150520        * dom/ShadowRoot.h: Removed outdated declarations.
150521        * html/shadow/ContentDistributor.cpp:
150522        (WebCore::ContentDistributor::ContentDistributor):
150523        * html/shadow/ContentDistributor.h:
150524        (WebCore::ContentDistributor::needsRedistributing):
150525        (WebCore::ContentDistributor::setNeedsRedistributing):
150526        (WebCore::ContentDistributor::clearNeedsRedistributing):
150527
1505282012-05-22  Kentaro Hara  <haraken@chromium.org>
150529
150530        [V8] Pass Isolate to v8::Null() in CodeGeneratorV8.pm
150531        https://bugs.webkit.org/show_bug.cgi?id=87202
150532
150533        Reviewed by Adam Barth.
150534
150535        The objective is to pass Isolate around in V8 bindings.
150536        This patch passes Isolate to v8::Null() in CodeGeneratorV8.pm.
150537
150538        No tests. No change in behavior.
150539
150540        * bindings/scripts/CodeGeneratorV8.pm:
150541        (GenerateNormalAttrGetter):
150542        (GenerateFunctionCallback):
150543        (NativeToJSValue):
150544        * bindings/scripts/test/V8/V8TestObj.cpp:
150545        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
150546        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
150547        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
150548        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
150549        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
150550        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
150551        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
150552
1505532012-05-22  Andreas Kling  <kling@webkit.org>
150554
150555        Short-circuit Element::attrIfExists() when the Element has no Attr list.
150556        <http://webkit.org/b/87214>
150557
150558        Reviewed by Ryosuke Niwa.
150559
150560        This function was lukewarm on Dromaeo/dom-attr (0.4% of samples.)
150561        Added an early return if !hasAttrList() to avoid the function call overhead of
150562        ElementAttributeData::attrIfExists().
150563
150564        * dom/Element.cpp:
150565        (WebCore::Element::attrIfExists):
150566
1505672012-05-22  Hayato Ito  <hayato@chromium.org>
150568
150569        Remove an assertion since an event's target might be a shadow root if a text node is clicked.
150570        https://bugs.webkit.org/show_bug.cgi?id=87072
150571
150572        Reviewed by Dimitri Glazkov.
150573
150574        Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
150575
150576        * dom/ComposedShadowTreeWalker.cpp:
150577        (WebCore::ComposedShadowTreeWalker::ComposedShadowTreeWalker):
150578
1505792012-05-22  Dongwoo Im  <dw.im@samsung.com>
150580
150581        [EFL] Implements the registerProtocolHandler method and option.
150582        https://bugs.webkit.org/show_bug.cgi?id=73638
150583
150584        Reviewed by Andreas Kling.
150585
150586        The registerProtocolHandler() method allows Web sites to register themselves
150587        as possible handlers for particular schemes.
150588
150589        http://dev.w3.org/html5/spec/Overview.html#dom-navigator-registerprotocolhandler
150590
150591        * CMakeLists.txt: Add page/NavigatorRegisterProtocolHandler.idl into WebCore_IDL_FILES.
150592
1505932012-05-22  Kentaro Hara  <haraken@chromium.org>
150594
150595        [V8][Performance] Pass Isolate to v8::Null() in V8Node::toV8()
150596        https://bugs.webkit.org/show_bug.cgi?id=87193
150597
150598        Reviewed by Adam Barth.
150599
150600        This patch improves the performance of Bindings/undefined-first-child.html by 58.7%,
150601        Bindings/undefined-get-element-by-id.html by 26.8%,
150602        Dromaeo/dom-query.html(getElementById (not in document)) by 9.8%,
150603        and Dromaeo/dom-query.html(getElementsByName (not in document)) by 2.1%.
150604        These benchmarks test the performance of accessing an undefined Node object.
150605
150606        Performance test results in my Linux desktop:
150607
150608        [Bindings/undefined-first-child.html]
150609          - without my patch
150610          RESULT Bindings: undefined-first-child= 481.843775891 runs/s
150611          median= 474.934036939 runs/s, stdev= 17.7753278263 runs/s, min= 471.204188482 runs/s, max= 534.629404617 runs/s
150612
150613          - with my patch
150614          RESULT Bindings: undefined-first-child= 764.720531908 runs/s
150615          median= 803.515696424 runs/s, stdev= 54.7402312963 runs/s, min= 688.806888069 runs/s, max= 807.061790668 runs/s
150616
150617        [Bindings/undefined-get-element-by-id.html]
150618          - without my patch
150619          RESULT Bindings: undefined-get-element-by-id= 236.642705579 runs/s
150620          median= 234.527786832 runs/s, stdev= 5.77090297761 runs/s, min= 231.362467866 runs/s, max= 246.305418719 runs/s
150621
150622          - with my patch
150623          RESULT Bindings: undefined-get-element-by-id= 300.031032067 runs/s
150624          median= 303.797468354 runs/s, stdev= 6.99060409266 runs/s, min= 287.581699346 runs/s, max= 304.955527319 runs/s
150625
150626        [Dromaeo/dom-query.html(getElementById (not in document))]
150627          - without my patch
150628          2855.80runs/s ±0.30%
150629
150630          - with my patch
150631          3136.20runs/s ±0.22%
150632
150633        [Dromaeo/dom-query.html(getElementsByName (not in document))]
150634          - without my patch
150635          2198.00runs/s ±0.50%
150636
150637          - with my patch
150638          2243.40runs/s ±3.39%
150639
150640        Currently v8::Null() looks up Isolate, which is a bottleneck of
150641        V8Node::toV8() for undefined Nodes. This patch removes the Isolate
150642        look-up by passing Isolate to v8::Null(), like v8::Null(isolate).
150643
150644        * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
150645        (GenerateHeader):
150646
150647        * bindings/scripts/test/V8/V8TestActiveDOMObject.h: Updated run-bindings-tests results.
150648        (WebCore::toV8):
150649        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
150650        (WebCore::toV8):
150651        * bindings/scripts/test/V8/V8TestEventConstructor.h:
150652        (WebCore::toV8):
150653        * bindings/scripts/test/V8/V8TestEventTarget.h:
150654        (WebCore::toV8):
150655        * bindings/scripts/test/V8/V8TestException.h:
150656        (WebCore::toV8):
150657        * bindings/scripts/test/V8/V8TestInterface.h:
150658        (WebCore::toV8):
150659        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
150660        (WebCore::toV8):
150661        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
150662        (WebCore::toV8):
150663        * bindings/scripts/test/V8/V8TestNode.h:
150664        (WebCore::toV8):
150665        * bindings/scripts/test/V8/V8TestObj.h:
150666        (WebCore::toV8):
150667        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
150668        (WebCore::toV8):
150669
1506702012-05-22  MORITA Hajime  <morrita@google.com>
150671
150672        REGRESSION(r116629) tests for <style scoped> is crashing
150673        https://bugs.webkit.org/show_bug.cgi?id=87191
150674
150675        Reviewed by Kent Tamura.
150676
150677        unregisterWithScopingNode() and registerWithScopingNode() doesn't follow
150678        refactoring around removedFrom(), insertedInto() and willRemove().
150679        This change aligns them to such recent changes.
150680
150681        No new tests. Covered by existing tests.
150682
150683        * html/HTMLStyleElement.cpp:
150684        (WebCore::HTMLStyleElement::unregisterWithScopingNode)
150685        (WebCore::HTMLStyleElement::insertedInto):
150686        - Allowed registerWithScopingNode() only for in-document traversal.
150687          That is how it originally did.
150688        (WebCore::HTMLStyleElement::removedFrom):
150689        - Gave ex-parent to unregisterWithScopingNode().
150690        * html/HTMLStyleElement.h:
150691        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
150692        (HTMLStyleElement):
150693
1506942012-05-21  Shawn Singh  <shawnsingh@chromium.org>
150695
150696        Improve W3C conformance of backface-visibility
150697        https://bugs.webkit.org/show_bug.cgi?id=84195
150698
150699        Reviewed by Adrienne Walker.
150700
150701        Tests: compositing/backface-visibility/backface-visibility-3d.html
150702               compositing/backface-visibility/backface-visibility-hierarchical-transform.html
150703               compositing/backface-visibility/backface-visibility-non3d.html
150704               compositing/backface-visibility/backface-visibility-simple.html
150705
150706        Unit Tests: CCLayerTreeHostCommonTest::verifyBackFaceCullingWithoutPreserves3d
150707                    CCLayerTreeHostCommonTest::verifyBackFaceCullingWithPreserves3d
150708
150709        Also updated a few other layout and unit tests.
150710
150711        This patch updates chromium to conform to the W3C spec on CSS
150712        transforms, Section 12 about backface visibility. This patch also
150713        updates layout tests to reflect the latest W3C spec. In
150714        particular, rule #1 on section 12, http://dev.w3.org/csswg/css3-transforms/#backface-visibility-property
150715        states which transforms should be used to determine backface-visibility.
150716
150717        Because chromium has an additional quirk of the concept of render
150718        surfaces, unit tests needed to be updated as well.
150719
150720        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
150721        (WebCore::layerIsRootOfNewRenderingContext):
150722        (WebCore):
150723        (WebCore::isLayerBackFaceVisible):
150724        (WebCore::isSurfaceBackFaceVisible):
150725        (WebCore::calculateVisibleLayerRect):
150726        (WebCore::layerShouldBeSkipped):
150727        (WebCore::calculateDrawTransformsAndVisibilityInternal):
150728
1507292012-05-22  Sheriff Bot  <webkit.review.bot@gmail.com>
150730
150731        Unreviewed, rolling out r118095.
150732        http://trac.webkit.org/changeset/118095
150733        https://bugs.webkit.org/show_bug.cgi?id=87201
150734
150735        "Causing crashes on Mac in
150736        WebCore::StyleResolver::adjustRenderStyle (Requested by
150737        sundiamonde on #webkit).
150738
150739        * css/StyleResolver.cpp:
150740        (WebCore::StyleResolver::collectMatchingRulesForList):
150741        * page/Settings.cpp:
150742        (WebCore::Settings::Settings):
150743        * page/Settings.h:
150744        (Settings):
150745        * testing/InternalSettings.cpp:
150746        (WebCore::InternalSettings::InternalSettings):
150747        (WebCore::InternalSettings::restoreTo):
150748        * testing/InternalSettings.h:
150749        (InternalSettings):
150750        * testing/InternalSettings.idl:
150751
1507522012-05-22  Levi Weintraub  <leviw@chromium.org>
150753
150754        NULL ptr in WebCore::RenderBlock::layoutRunsAndFloatsInRange
150755        https://bugs.webkit.org/show_bug.cgi?id=77786
150756
150757        Reviewed by Ryosuke Niwa.
150758
150759        InlineBidiResolver adds one fake TextRun for isolated inlines in the process of creating the
150760        list of TextRuns to send to the UBA. After the UBA has been run and the TextRuns reordered,
150761        we re-run InlineBidiResolver rooted in the isolate and replace the fake run with those
150762        generated by the subsequent pass by calling the method BidiRunList::replaceRunWithRuns.
150763        This method assumes there are runs to replace the fake run with.
150764
150765        Positioned inline children are ignored when creating TextRuns, so when an isolated inline
150766        has only positioned children we end up with an empty set of runs to pass to replaceRunWithRuns.
150767        Ideally, we'd remove the fake run and not replace it with anything, but BidiRunList keeps
150768        a pointer to the logically last run, which we're unable to easily re-determine after the UBA
150769        has been run. Instead, we leave the fake run in the list and simply avoid calling
150770        replaceRunWithRuns when we don't have any replacement runs.
150771
150772        Test: fast/block/line-layout/crash-in-isolate-with-positioned-child.html
150773
150774        * rendering/RenderBlockLineLayout.cpp:
150775        (WebCore::constructBidiRuns):
150776
1507772012-05-22  Kent Tamura  <tkent@chromium.org>
150778
150779        [V8] Refactor generation code for non-standard functions
150780        https://bugs.webkit.org/show_bug.cgi?id=87185
150781
150782        Reviewed by Kentaro Hara.
150783
150784        No behavior change. Just a refactoring.
150785
150786        * bindings/scripts/CodeGeneratorV8.pm:
150787        (IsStandardFunction): Introduce a new function to check if a
150788        function can be in a batch registration.
150789        (GenerateNonStandardFunction): Factor out a code to generate
150790        non-standard functions.
150791        (GenerateImplementation):
150792        Use IsStandardFunction and GenerateNonStandardFunction.
150793
1507942012-05-22  Hayato Ito  <hayato@chromium.org>
150795
150796        Make ComposedShadowTreeWalker traverse inactive insertion points correctly.
150797        https://bugs.webkit.org/show_bug.cgi?id=86830
150798
150799        Reviewed by Dimitri Glazkov.
150800
150801        Fixed InsertionPoint::isActive() issue, which may return true
150802        wrongly even if the insertion point is not in Shadow DOM subtree.
150803        Now ComposedShadowTreeWalker can traverse inactive insertion
150804        points correctly using InsertionPoint::isActive().
150805
150806        Test: fast/dom/shadow/composed-shadow-tree-walker.html
150807
150808        * dom/ComposedShadowTreeWalker.cpp:
150809        (WebCore::ComposedShadowTreeWalker::traverseNode):
150810        (WebCore::ComposedShadowTreeWalker::escapeFallbackContentElement):
150811        (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
150812        * html/shadow/InsertionPoint.cpp:
150813        (WebCore::InsertionPoint::isActive):
150814        * html/shadow/InsertionPoint.h:
150815        (WebCore::isActiveInsertionPoint):
150816        (WebCore):
150817
1508182012-05-22  Mark Pilgrim  <pilgrim@chromium.org>
150819
150820        [Chromium] Call canAccelerate2dCanvas directly
150821        https://bugs.webkit.org/show_bug.cgi?id=86893
150822
150823        Reviewed by James Robinson.
150824
150825        Part of a refactoring series. See tracking bug 82948.
150826
150827        * html/HTMLCanvasElement.cpp:
150828        (WebCore::HTMLCanvasElement::shouldAccelerate):
150829        * platform/chromium/PlatformSupport.h:
150830
1508312012-05-22  Jason Liu  <jason.liu@torchmobile.com.cn>
150832
150833        [BlackBerry] Possible to clobber httponly cookie.
150834        https://bugs.webkit.org/show_bug.cgi?id=86067
150835
150836        Reviewed by Rob Buis.
150837
150838        If a cookie is set by javaScript and there is already a same httpOnly cookie in cookieManager,
150839        we should reject it. If it has a httpOnly property, we reject it, too.
150840
150841        Test: http/tests/cookies/js-get-and-set-http-only-cookie.php
150842
150843        * platform/blackberry/CookieJarBlackBerry.cpp:
150844        (WebCore::setCookies):
150845        * platform/blackberry/CookieManager.cpp:
150846        (WebCore::CookieManager::setCookies):
150847        (WebCore::CookieManager::shouldRejectNotHttpCookie):
150848        (WebCore):
150849        * platform/blackberry/CookieManager.h:
150850
1508512012-05-22  Dana Jansens  <danakj@chromium.org>
150852
150853        [chromium] Don't drop children of a RenderSurface from the renderSurfaceLayerList when then position of the surface in its clipRect is not known
150854        https://bugs.webkit.org/show_bug.cgi?id=87181
150855
150856        Reviewed by Adrienne Walker.
150857
150858        We want to avoid dropping things from the renderSurfaceLayerList on main
150859        thread when they may be in the renderSurfaceLayerList on impl thread due
150860        to animation. A render surface would drop all its children if its
150861        contentRect was clipped to become empty by its parent. But when the
150862        surface is being animated, then we can't be sure how its parent will
150863        clip the surface's content, so we don't clip it at all.
150864
150865        Chromium bug: http://crbug.com/128739
150866
150867        Unit test: CCLayerTreeHostCommonTest.verifyClipRectCullsSurfaceWithoutVisibleContent
150868
150869        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
150870        (WebCore::calculateDrawTransformsAndVisibilityInternal):
150871
1508722012-05-22  Kangil Han  <kangil.han@samsung.com>
150873
150874        [EFL][DRT] Implement touch event
150875        https://bugs.webkit.org/show_bug.cgi?id=86720
150876
150877        Reviewed by Hajime Morita.
150878
150879        Currently EFL DRT doesn't support touch event.
150880        Therefore, this patch enabled it and implemented some eventSender function callbacks.
150881
150882        * platform/PlatformTouchEvent.h:
150883        (PlatformTouchEvent): Implement meta state.
150884        * platform/efl/PlatformTouchEventEfl.cpp:
150885        (WebCore::PlatformTouchEvent::PlatformTouchEvent): Implement meta state.
150886
1508872012-05-22  Chris Rogers  <crogers@google.com>
150888
150889        AudioNodeOutput::disconnectAllParams() must take care when iterating through its parameter list
150890        https://bugs.webkit.org/show_bug.cgi?id=87190
150891
150892        Reviewed by Kenneth Russell.
150893
150894        No new tests. Covered by existing tests.
150895
150896        * Modules/webaudio/AudioNodeOutput.cpp:
150897        (WebCore::AudioNodeOutput::disconnectAllParams):
150898
1508992012-05-22  MORITA Hajime  <morrita@google.com>
150900
150901        <shadow> and <content> should be hidden behind ContextEnabledFeatures
150902        https://bugs.webkit.org/show_bug.cgi?id=87063
150903
150904        This change repalces "runtimeConditional" tag definition property
150905        with new "contextConditional" property, which refers
150906        ContextEnabledFeatures instead of RuntimeEnabledFeatures.
150907
150908        Reviewed by Dimitri Glazkov.
150909
150910        No new tests. DRT cannot test this. No behaviour change on DRT.
150911
150912        * dom/make_names.pl:
150913        (defaultTagPropertyHash):
150914        (printConstructorInterior):
150915        (printFactoryCppFile):
150916        (printWrapperFunctions):
150917        (printWrapperFactoryCppFile):
150918        * html/HTMLTagNames.in:
150919
1509202012-05-22  Kent Tamura  <tkent@chromium.org>
150921
150922        Fix a crash in HTMLFormControlElement::disabled().
150923        https://bugs.webkit.org/show_bug.cgi?id=86534
150924
150925        Reviewed by Hajime Morita.
150926
150927        Node::removedFrom() was not called in some cases. This patch fixes it.
150928
150929        No new tests. It's almost impossible to make a reliable test.
150930
150931        * dom/ContainerNodeAlgorithms.h:
150932        Remove inDocument() check so that Node::removedFrom() is called even if
150933        a parent node in an orphan tree is deleted but a child node remains,
150934
1509352012-05-22  James Robinson  <jamesr@chromium.org>
150936
150937        Add a Setting to make position:fixed form a new stacking context
150938        https://bugs.webkit.org/show_bug.cgi?id=87186
150939
150940        Reviewed by Adam Barth.
150941
150942        position:fixed elements form a new stacking context in several mobile WebKit ports and in the Qt port always. To
150943        be consistent across devices, we want to try turning it on everywhere. This will likely cause compatibility
150944        issues, so we need a runtime setting in order to stage the change carefully.
150945
150946        Tests: fast/block/positioning/fixed-position-stacking-context.html
150947               fast/block/positioning/fixed-position-stacking-context2.html
150948
150949        * css/StyleResolver.cpp:
150950        (WebCore::StyleResolver::collectMatchingRulesForList):
150951        * page/Settings.cpp:
150952        (WebCore::Settings::Settings):
150953        * page/Settings.h:
150954        (WebCore::Settings::setFixedPositionCreatesStackingContext):
150955        (WebCore::Settings::fixedPositionCreatesStackingContext):
150956        (Settings):
150957        * testing/InternalSettings.cpp:
150958        (WebCore::InternalSettings::InternalSettings):
150959        (WebCore::InternalSettings::restoreTo):
150960        (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
150961        (WebCore):
150962        * testing/InternalSettings.h:
150963        (InternalSettings):
150964        * testing/InternalSettings.idl:
150965
1509662012-05-22  Adam Barth  <abarth@webkit.org>
150967
150968        RenderInline::absoluteRects does some incorrect layout math
150969        https://bugs.webkit.org/show_bug.cgi?id=87036
150970
150971        Reviewed by Eric Seidel.
150972
150973        http://trac.webkit.org/changeset/88297/trunk/Source/WebCore/rendering/RenderInline.cpp
150974        contained a typo.  We should accumulate offsets, not add sizes to
150975        offsets.
150976
150977        Test: fast/inline/boundingBox-with-continuation.html
150978
150979        * rendering/RenderInline.cpp:
150980        (WebCore::RenderInline::absoluteRects):
150981        (WebCore):
150982
1509832012-05-22  Dana Jansens  <danakj@chromium.org>
150984
150985        [chromium] Don't force the visibleLayerRect to be empty for animating layers whose front face is not visible
150986        https://bugs.webkit.org/show_bug.cgi?id=86886
150987
150988        Reviewed by Adrienne Walker.
150989
150990        Previously we would force the visibleLayerRect to be empty for these
150991        animating layers, and then special case the pre-painting code to
150992        paint them if they were within some size limit, to avoid having the
150993        layer steal too much memory.
150994
150995        Instead, just use the visibleLayerRect given to the layer. Since the
150996        transform flips the layer such that its back face is visible, it will
150997        also compute a visibleLayerRect in the front face of the layer, and
150998        its size will be bounded by the viewport. This will cause the
150999        layer to be painted with visible priority instead of prepainted, but
151000        ensures the visible parts of the layer is painted and ready to go when
151001        the animation flips the layer around.
151002
151003        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
151004        (WebCore::calculateVisibleLayerRect):
151005
1510062012-05-22  Jer Noble  <jer.noble@apple.com>
151007
151008        REGRESSION (r98359): Video does not render on http://panic.com/dietcoda/
151009        https://bugs.webkit.org/show_bug.cgi?id=87171
151010
151011        Reviewed by Maciej Stachowiak.
151012
151013        No new tests; behavior is very timing specific and only occurs on a subset of all platforms.
151014
151015        Instead of calling prepareForRendering() from metadataLoaded(), which may fail and cause subsequent
151016        calls to prepareForRendering() to short circuit, call createVideoLayer() directly, which achieves
151017        the original goals of the fix for http://webkit.org/b/70448, but without breaking subsequent calls
151018        to prepareForRendering() if called at the wrong time.
151019
151020        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
151021        (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded):
151022
1510232012-05-22  Tim Horton  <timothy_horton@apple.com>
151024
151025        Add a quirk for applications that depend on the relative ordering of progressCompleted/didFinishLoad
151026        https://bugs.webkit.org/show_bug.cgi?id=87178
151027        <rdar://problem/11468434>
151028
151029        Reviewed by Maciej Stachowiak.
151030
151031        Some applications depend on the relative ordering of progressCompleted/didFinishLoad, which was changed
151032        to be more correct in http://trac.webkit.org/changeset/94105. For applications built before 94105, we can
151033        provide the old behavior. For the time being, this will only apply to Mail.app.
151034
151035        No new tests, will not affect behavior for any application except Mail.
151036
151037        * loader/FrameLoader.cpp:
151038        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
151039        * page/Settings.cpp:
151040        (WebCore::Settings::Settings):
151041        * page/Settings.h:
151042        (WebCore::Settings::setNeedsDidFinishLoadOrderQuirk):
151043        (WebCore::Settings::needsDidFinishLoadOrderQuirk):
151044
1510452012-05-22  Alexis Menard  <alexis.menard@openbossa.org>
151046
151047        Move some CSS regions properties to CSSParser::isValidKeywordPropertyAndValue.
151048        https://bugs.webkit.org/show_bug.cgi?id=87169
151049
151050        Reviewed by Tony Chang.
151051
151052        Move some CSS regions properties to the fast path implemented by
151053        CSSParser::isValidKeywordPropertyAndValue.
151054
151055        No new tests : Existing tests should cover.
151056
151057        * css/CSSParser.cpp:
151058        (WebCore::isValidKeywordPropertyAndValue):
151059        (WebCore::isKeywordPropertyID):
151060        (WebCore::CSSParser::parseValue):
151061
1510622012-05-22  Emil A Eklund  <eae@chromium.org>
151063
151064        Represents margins as box and simplify writing mode logic
151065        https://bugs.webkit.org/show_bug.cgi?id=86952
151066
151067        Reviewed by Eric Seidel.
151068        
151069        Add a new class, FractionalLayoutBox, that represents the four sides of a
151070        box and change RenderBox to use it to represent margins.
151071
151072        The new box class is intended to be used to represent things like
151073        margins, paddings and borders where the current rect class isn't a good
151074        fit. It also encapsulated a lot of the horizontal/vertical writing mode
151075        and bidi logic allowing it to be reused.
151076
151077        No new tests, no change in functionality.
151078
151079        * CMakeLists.txt:
151080        * GNUmakefile.list.am:
151081        * Target.pri:
151082        * WebCore.gypi:
151083        * WebCore.vcproj/WebCore.vcproj:
151084        * WebCore.xcodeproj/project.pbxproj:
151085        * platform/graphics/FractionalLayoutBoxExtent.cpp: Added.
151086        * platform/graphics/FractionalLayoutBoxExtent.h: Added.
151087        * rendering/LayoutTypes.h:
151088        * rendering/RenderBlock.cpp:
151089        * rendering/RenderBox.cpp:
151090        * rendering/RenderBox.h:
151091        * rendering/RenderScrollbarPart.cpp:
151092        * rendering/RenderScrollbarPart.h:
151093
1510942012-05-22  Kentaro Hara  <haraken@chromium.org>
151095
151096        [V8] Replace 'throwTypeError(); return Undefined();' with 'return throwTypeError();'
151097        https://bugs.webkit.org/show_bug.cgi?id=87106
151098
151099        Reviewed by Adam Barth.
151100
151101        This patch replaces
151102
151103            throwTypeError();
151104            return v8::Undefined();
151105
151106        with
151107
151108            return throwTypeError();
151109
151110        No tests. No change in behavior.
151111
151112        * bindings/scripts/CodeGeneratorV8.pm:
151113        (GenerateOverloadedFunctionCallback):
151114        (GenerateParametersCheck):
151115        * bindings/scripts/test/V8/V8TestObj.cpp:
151116        (WebCore::TestObjV8Internal::overloadedMethodCallback):
151117        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
151118
1511192012-05-22  Dan Bernstein  <mitz@apple.com>
151120
151121        REGRESSION (r105513): CSS max-width is not applied to SVG element
151122        https://bugs.webkit.org/show_bug.cgi?id=87050
151123
151124        Reviewed by Darin Adler.
151125
151126        Tests: svg/css/max-height.html
151127               svg/css/max-width.html
151128
151129        * rendering/svg/RenderSVGRoot.cpp:
151130        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Changed to also call into the base
151131        class implementation of this function if max-width was specified.
151132        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Changed to call into the bas class
151133        implementation of this function if either height or max-height were specified.
151134
1511352012-05-22  Kentaro Hara  <haraken@chromium.org>
151136
151137        [V8] Pass Isolate to throwTypeError()
151138        https://bugs.webkit.org/show_bug.cgi?id=87111
151139
151140        Reviewed by Adam Barth.
151141
151142        The objective is to pass Isolate around in V8 bindings.
151143        This patch passes Isolate to throwTypeError() in custom bindings.
151144
151145        No tests. No change in behavior.
151146
151147        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
151148        (WebCore::V8ArrayBuffer::constructorCallback):
151149        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
151150        (WebCore::constructWebGLArrayWithArrayBufferArgument):
151151        (WebCore::constructWebGLArray):
151152        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
151153        (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
151154        * bindings/v8/custom/V8AudioContextCustom.cpp:
151155        (WebCore::V8AudioContext::constructorCallback):
151156        * bindings/v8/custom/V8BlobCustom.cpp:
151157        (WebCore::V8Blob::constructorCallback):
151158        * bindings/v8/custom/V8ClipboardCustom.cpp:
151159        (WebCore::V8Clipboard::setDragImageCallback):
151160        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
151161        (WebCore::V8DOMFormData::constructorCallback):
151162        * bindings/v8/custom/V8DataViewCustom.cpp:
151163        (WebCore::V8DataView::constructorCallback):
151164        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
151165        (WebCore::V8HTMLDocument::openCallback):
151166        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
151167        (WebCore::v8HTMLImageElementConstructorCallback):
151168        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
151169        (WebCore::V8HTMLInputElement::selectionStartAccessorGetter):
151170        (WebCore::V8HTMLInputElement::selectionStartAccessorSetter):
151171        (WebCore::V8HTMLInputElement::selectionEndAccessorGetter):
151172        (WebCore::V8HTMLInputElement::selectionEndAccessorSetter):
151173        (WebCore::V8HTMLInputElement::selectionDirectionAccessorGetter):
151174        (WebCore::V8HTMLInputElement::selectionDirectionAccessorSetter):
151175        (WebCore::V8HTMLInputElement::setSelectionRangeCallback):
151176        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
151177        (WebCore::V8HTMLMediaElement::controllerAccessorSetter):
151178        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
151179        (WebCore::V8InjectedScriptHost::inspectedObjectCallback):
151180        * bindings/v8/custom/V8IntentConstructor.cpp:
151181        (WebCore::V8Intent::constructorCallback):
151182        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
151183        (WebCore::V8MessageChannel::constructorCallback):
151184        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
151185        (WebCore::V8NotificationCenter::requestPermissionCallback):
151186        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
151187        (WebCore::V8SQLResultSetRowList::itemCallback):
151188        * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
151189        (WebCore::V8WebKitMutationObserver::constructorCallback):
151190        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
151191        (WebCore::V8WebKitPoint::constructorCallback):
151192        * bindings/v8/custom/V8WebSocketCustom.cpp:
151193        (WebCore::V8WebSocket::constructorCallback):
151194        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
151195        (WebCore::V8XMLHttpRequest::constructorCallback):
151196
1511972012-05-22  Kentaro Hara  <haraken@chromium.org>
151198
151199        [V8] Replace 'setDOMException(); return Undefined();' with 'return setDOMException();'
151200        https://bugs.webkit.org/show_bug.cgi?id=87102
151201
151202        Reviewed by Adam Barth.
151203
151204        This patch replaces
151205
151206            setDOMException();
151207            return v8::Undefined();
151208
151209        with
151210
151211            return setDOMException();
151212
151213        In addition, just in case, this patch replaces
151214
151215            if (...)
151216                setDOMException();
151217            return v8::Undefined();
151218
151219        with
151220
151221            if (...)
151222                return setDOMException();
151223            return v8::Undefined();
151224
151225        because people might insert some code just above
151226        'return v8::Undefined()' in the future.
151227
151228        No tests. No change in behavior.
151229
151230        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
151231        (WebCore::constructWebGLArrayWithArrayBufferArgument):
151232        (WebCore::setWebGLArrayHelper):
151233        * bindings/v8/custom/V8DOMWindowCustom.cpp:
151234        (WebCore::WindowSetTimeoutImpl):
151235        * bindings/v8/custom/V8DataViewCustom.cpp:
151236        (WebCore::V8DataView::getInt8Callback):
151237        (WebCore::V8DataView::getUint8Callback):
151238        (WebCore::V8DataView::setInt8Callback):
151239        (WebCore::V8DataView::setUint8Callback):
151240        * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
151241        (WebCore::V8DirectoryEntrySync::getDirectoryCallback):
151242        (WebCore::V8DirectoryEntrySync::getFileCallback):
151243        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
151244        (WebCore::V8HTMLOptionsCollection::addCallback):
151245        * bindings/v8/custom/V8NodeCustom.cpp:
151246        (WebCore::V8Node::insertBeforeCallback):
151247        (WebCore::V8Node::replaceChildCallback):
151248        (WebCore::V8Node::removeChildCallback):
151249        (WebCore::V8Node::appendChildCallback):
151250        * bindings/v8/custom/V8SVGLengthCustom.cpp:
151251        (WebCore::V8SVGLength::valueAccessorGetter):
151252        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
151253        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
151254        (WebCore::getObjectParameter):
151255        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
151256        (WebCore::V8WebGLRenderingContext::getParameterCallback):
151257        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
151258        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
151259        (WebCore::V8WebGLRenderingContext::getUniformCallback):
151260        (WebCore::vertexAttribAndUniformHelperf):
151261        (WebCore::uniformHelperi):
151262        (WebCore::uniformMatrixHelper):
151263        * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
151264        (WebCore::V8WebKitMutationObserver::observeCallback):
151265        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
151266        (WebCore::V8XMLHttpRequest::responseAccessorGetter):
151267
1512682012-05-22  Martin Robinson  <mrobinson@igalia.com>
151269
151270        [TextureMapper] [Cairo] Implement repaint counters
151271        https://bugs.webkit.org/show_bug.cgi?id=87062
151272
151273        Reviewed by Gustavo Noronha Silva.
151274
151275        No new tests. This just adds a debugging feature that shouldn't
151276        affect the normal drawing of a page.
151277
151278        * platform/graphics/texmap/TextureMapperLayer.cpp:
151279        (WebCore::TextureMapperLayer::updateBackingStore): Now, if repaint counters are
151280        enabled, increment the repaint count and call drawRepaintCounter.
151281        (WebCore::TextureMapperLayer::drawRepaintCounter): Added.
151282        * platform/graphics/texmap/TextureMapperLayer.h:
151283        (TextureMapperLayer): Added declaration for drawRepaintCounter.
151284
1512852012-05-22  Simon Fraser  <simon.fraser@apple.com>
151286
151287        Use the same animation begin time while updating compositing layers
151288        https://bugs.webkit.org/show_bug.cgi?id=87080
151289
151290        Reviewed by Dean Jackson.
151291        
151292        Tidied up some beginAnimationUpdate/endAnimationUpdate logic,
151293        but further cleaning is required. We currently bracket some calls
151294        to recaclcStyle() with begin/endAnimationUpdate, but not all.
151295        We don't bracket layout, or compositing updates. This patch
151296        adds bracketing around compositing updates, in order to be
151297        able to add some assertions in a later patch that rely on
151298        RenderLayer::currentTransform() giving consistent results,
151299        since currentTransform() depends on the animation begin time.
151300        
151301        Made AnimationController::beginAnimationUpdate() and
151302        AnimationController::endAnimationUpdate() nestable by adding
151303        a counter.
151304        
151305        Added a stack-based class, AnimationUpdateBlock, which
151306        calls begin/endAnimationUpdate.
151307        
151308        Replaced calls to begin/endAnimationUpdate in Document::updateStyleIfNeeded()
151309        and Document::styleResolverChanged() with AnimationUpdateBlock. Filed a bug
151310        to cover other calls to recalcStyle which might need this (87159).
151311        
151312        Removed a call to beginAnimationUpdate() in Document::implicitOpen(),
151313        which was added in r42415. I believe that r57390 makes this unnecessary,
151314        and was not able to reproduce the original bug after removing it. It
151315        was the only unpaired beginAnimationUpdate call.
151316        
151317        Made AnimationControllerPrivate::getAnimatedStyleForRenderer() not 
151318        use a new beginTime each time it was called, so its beginTime now
151319        depends on some earlier beginAnimationUpdate.
151320        
151321        Fixed CSSComputedStyleDeclaration::getPropertyCSSValue() to use
151322        an AnimationUpdateBlock so that calls to computed style do
151323        use the current time to compute an animating value (as before).
151324
151325        Not testable.
151326
151327        * css/CSSComputedStyleDeclaration.cpp:
151328        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
151329        * dom/Document.cpp:
151330        (WebCore::Document::updateStyleIfNeeded):
151331        (WebCore::Document::implicitOpen):
151332        (WebCore::Document::styleResolverChanged):
151333        * page/animation/AnimationController.cpp:
151334        (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
151335        (WebCore::AnimationController::AnimationController):
151336        (WebCore::AnimationController::beginAnimationUpdate):
151337        (WebCore::AnimationController::endAnimationUpdate):
151338        * page/animation/AnimationController.h:
151339        (AnimationController):
151340        (WebCore):
151341        (AnimationUpdateBlock):
151342        (WebCore::AnimationUpdateBlock::AnimationUpdateBlock):
151343        (WebCore::AnimationUpdateBlock::~AnimationUpdateBlock):
151344        * rendering/RenderLayerCompositor.cpp:
151345        (WebCore::RenderLayerCompositor::updateCompositingLayers):
151346
1513472012-05-22  Tony Chang  <tony@chromium.org>
151348
151349        REGRESSION(r117613): Dromaeo/jslib-style-prototype regressed by 20%
151350        https://bugs.webkit.org/show_bug.cgi?id=87142
151351
151352        Reviewed by Alexis Menard.
151353
151354        Move CSSPropertyDisplay back into isValidKeywordPropertyAndValue.
151355        Pass in the parser context so we can check whether we're grid or not.
151356
151357        No new tests. Covered by Dromaeo/jslib-style-prototype perf test.
151358
151359        * css/CSSParser.cpp:
151360        (WebCore::isValidKeywordPropertyAndValue):
151361        (WebCore::isKeywordPropertyID):
151362        (WebCore::parseKeywordValue):
151363        (WebCore::CSSParser::parseValue):
151364        (WebCore::CSSParser::parseFont):
151365
151366== Rolled over to ChangeLog-2012-05-22 ==
151367